Hi fellow wiki editors!

To help newly registered users get more familiar with the wiki (and maybe older users too) there is now a {{Welcome to the wiki}} template. Have a look at it and feel free to add it to new users discussion pages (and perhaps your own).

I have tried to keep the template short, but meaningful. /Johan G

User talk:Katzmárek

From FlightGear wiki
Jump to: navigation, search

KAP-140 Autopilot

Hallo Jomo

Also ich habe mich auch schon in den Autopiloten eingearbeitet und ihn (zumindest den gesamten Pitch-Teil) entsprechend der Anleitung (http://wiki.flightgear.org/Howto:Design_an_autopilot) umprogrammiert. Das hat soweit auch funktioniert. Es gibt da aber im NAV-Modus noch ein Problem zu lösen, welches dort nicht weiter thematisiert wurde...

Andererseits hab ich mir die Bedienungsanleitung vom KAP-140 angeschaut (http://www.g1000.info/Download-Dateien/KAP140.pdf) und festgestellt, daß einige Funktionen nicht richtig übertragen wurden.
Nämlich:

NAV/REV/APR arm

Die Bedienungsanleitung sagt:

  • 3. Mit dem Heading-Drehknopf Heading-Bug auf den gewünschten Anschneidewinkel setzen.
  • 4. NAV-Taste drücken: »NAV ARM« wird angezeigt.
  • 5. Falls die CDI-Nadel mehr als 2–3 Punkte Ablage zeigt, wird das Flugzeug im HDG-Mode (oder ROL-Mode, falls HDG nicht angewählt wurde) mit »NAV ARM«-Anzeige weiterfliegen. Wird der berechnete Schnittpunkt erreicht, wird HDG abgeschaltet, die ARM-Anzeige verlischt und der gewählte Kurs wird automatisch abgeflogen.

Ich lege also selbst fest, mit welchem Winkel ich bis zum Radial hin fliege. Der AP übernimmt es nur, auf das Radial einzuschwenken und es dann zu halten. Der automatische Anflugwinkel von 45° (aus der obigen Anleitung) ist also für uns nicht interessant. Hab ich das so richtig verstanden? (Es wäre natürlich gut, wenn jemand wüßte, wie es in der Realität funktioniert.)
Das war bisher so nicht realisiert - das läßt sich aber leicht machen.


Hi
wenn du die Bildchen in der englischen Version anschaust siehst Du folgendes: Er hält das heading bis die dev-needl <3.0 - dann geht es auf 45°. Je nachdem in :welcher Entfernung du zum VOR anflegst merkst Du das evt nicht !
jomo 8.11.2013
Naja, grad das macht er eben nicht: Er hielt ROL bzw. HDG nicht bei sondern ging eben sofort in den NAV-Modus (auch wenn er noch NAVarm anzeigt). Ausgewertet wird z.Zt. eher die Stellung der Knöpfe (/autopilot/KAP140/locks/nav-hold - der wird aber schon true, wenn eigentlich noch der NAVarm-Mode aktiv ist). Insgesamt läßt sich das aus der locks-Abteilung schlecht ableiten - besser eignet sich wahrscheinlich /autopilot/KAP140/annunciators/...
Ich wollte aber hauptsächlich wissen, ob ich es richtig verstanden habe, daß George HDG (bzw. ROL) halten soll - damit ich da keine falsche Idee umsetze...--Katzmárek (talk) 13:56, 11 November 2013 (UTC)

Problem mit der automatischen Regelung

Mal davon ab, daß ich noch nicht ganz (also eigentlich ganz und gar nicht) verstanden habe, was die einzelnen Parameter der PI- bzw. PID-Controller so regeln gibt es ein weiteres Problem:
Der Regler wertet ja letztlich aus, wie schnell sich die Änderung des Sollwerts (Abweichung CDI-Nadel) vollzieht. Die Änderungsgeschwindigkeit ist aber direkt von der Entfernung abhängig. (Bin ich weit weg, muß ich weit nach rechts oder links fliegen, um eine bestimmte Abweichung von z.B. 1° zu überwinden - bin ich nah am Sender, sind es für den gleichen Winkel nur wenige Meter.) Das führt aber dazu, daß ich den Regler nur auf einen bestimmten Entfernungsbereich justieren kann - im Landeanflug darf ich ja tortz relativ großen Abweichungen nur relativ sanft gegensteuern. Entweder wird es im Nahbereich also extrem instabil oder ist im Fernbereich viel zu träge.
Ich bin der Meinung, das ist ein grundsätzliches Problem!?...

Die Empfindlichkeit kann man gut über der Parameter kp regeln. Um so näher man kommt, um so kleiner müßte kp werden. (Ich hab mal beim AP der 707 geschaut - da ist kp offenbar eine Variable.) Es ist sicher leicht möglich, dies Entfernungsabhängig zu machen - nur: realistischerweise hat der Autopilot diese Angabe ja nicht zur Verfügung. Wäre es trotzdem legitim, es so zu regeln? Und wie ist das in der Wirklichkeit?
Man könnte auch kp für NAV und APR anders abstimmen (aber darauf findet sich in der Bedienungsanleitung kein Hinweis und auch im NAV-Modus fliegt man ja u.U. direkt über den Sender hinweg).

NAV/APR/REV deaktivieren

Die Bedienungsanleitung sagt da nichts Konkretes zu aus... Wenn man die NAV-Modi ausschaltet, wird der HDG-Mode aktiviert (auch unabhängig davon, was vorher eingestellt war). Das ist eigentlich recht ungünstig! Ist das im Original auch so?
Ungünstig finde ich es deswegen, weil man hin und wieder vergißt (ich bei meinen "Testflügen" fast immer!) den HDG-Kurs-Marker vorher einzustellen und das Flugzeug in dem Fall sofort vom eingestellten Kurs abdreht. Auch kann man sich ja Fälle vorstellen, wo man den NAV-Modus schnell wieder deaktivieren will/muß. Praktischer wäre doch, wenn in den ROL-Modus gewechselt würde und man somit erstmal geradeaus weiter fliegt - HDG kann man ja wenn gewollt sofort aktivieren...
Z.B. wenn man im Landeanflug zwischen NAV und APR wechseln will oder dann auf REV - direkt wechseln geht ja nicht, zwischendurch muß man also HDG aktivieren. Am wirklichen KAP-140 auch?...

Dateiaustausch

Wie kann ich Dir meine .xml Datei zukommen lassen?
Einfach hierher und dann ändern wir die entsprechenden Sachen hier aus?--Katzmárek (talk) 17:28, 8 November 2013 (UTC)

Hier mal das, was ich bisher gemacht hab:
  <!-- =============================================================== -->
  <!-- Roll Axis Modes                                                 -->
  <!-- =============================================================== -->
  
  

  <!-- Nav hold (NAV) Mode & APR Mode																					-->
  <!--		NAV und APR unterscheiden sich nicht, lediglich wird im APR-Mode zusätzlich dem Gleitpfad gefolgt			-->
  <!--		Denkbar wäre, für NAV & APR eine vrschiedene Charakteristiken zu wählen:									-->
  <!--			NAV - weite Entfernung zum Sender -> langsame Änderung der Abweichung vom Radial -> "flinker" Regler	-->
  <!--			APR - normalerweise nah am Sender -> schnelle Änderung der Abweichung vom Radial -> "träger" Regler		-->
  
  <!-- 1. Stage -->
  <!-- CDI-Integrator										-->
  <!-- compute Target-Course-Error 							-->
  <!-- 		angel to intersect (and than hold) the Radial  	-->
  <!-- 		from CDI-Needle-Deflection						-->
  <pi-simple-controller>
	  <name>cdiIntegrator</name>
	  <debug>false</debug>
	  <input>
		   <condition>
				  <property>/autopilot/KAP140/annunciators/rev</property> 		<!-- REV-Mode:		-->
		   </condition>														
		   <property>/instrumentation/nav/heading-needle-deflection</property>	<!--	same Input	-->
		   <scale>-1.0</scale>							<!-- 	...negetad	-->
	  </input>
	  <input>/instrumentation/nav/heading-needle-deflection</input>
	  <output>/autopilot/KAP140/settings/target-course-error-deg</output>
	  <config>
	   <Kp>15.0</Kp> <!-- Der Wert passt nicht universell!!! Mit schrumpfender Entfernung muß er kleiner werden, sonst wird es instabil -->
                         <!-- Evtl. abhängig von der Entfernung machen?!... -->
	   <Ki>0.1</Ki>
	  </config>
	  <min>-45.0</min>
	  <max>45.0</max>
  </pi-simple-controller>
  
  
  
  <filter>
	  <name>InterceptHeadingComputer</name>
	  <debug>false</debug>
	  <type>gain</type>
	  <gain>1.0</gain>
	  <input>/autopilot/internal/nav1-course-error</input>
	  <reference>/autopilot/KAP140/settings/target-course-error-deg</reference>
	  <output>/autopilot/internal/intercept-heading-deg</output>
	  <period>
	   <min>0</min>
	   <max>360</max>
	  </period>
  </filter>
  
  
  <!-- Heading Select (HDG) Mode -->
  <!-- 2 stage controller -->
  
	<!-- 1. Stage: HeadingOffsetComputer					-->
	<!-- computing Heading-Offset from heading error		-->
	<!-- (diff. between actual heading and desired heading) -->
	<!--													-->
	<!--	desired heading:								-->
	<!-- 		heading-bug-error	- HDG-mode			-->
	<!--		interxept-heading-deg	- NAV/REV/APR-mode	-->
	  <filter>
		  <name>HeadingOffsetComputer</name>
		  <debug>false</debug>
		  <enable>
		  <condition>
			<greater-than>
			  <property>/autopilot/KAP140/locks/roll-mode</property> 	<!-- roll-mode: 1-ROL, 2-HDG, 3-NAV, 4-REV, 5-APR	-->
			  <value>1</value>						<!-- HDG/NAV/REV/APR								-->
			</greater-than>
		  </condition>
		  </enable>
		  <type>gain</type>
		  <gain>1.0</gain>
		  <input>
		   <condition>
				<or>														<!-- if one of this 3 modes:						-->
				  <property>/autopilot/KAP140/annunciators/nav</property> 	<!-- 		NAV or									-->
				  <property>/autopilot/KAP140/annunciators/rev</property> 	<!-- 		REV or									-->
				  <property>/autopilot/KAP140/annunciators/apr</property> 	<!-- 		APR 									-->
				</or>
		   </condition>														<!-- than:											-->
		   <property>/autopilot/internal/intercept-heading-deg</property>	<!-- 		take InterceptHeadingComputer's value	-->
		  </input>															<!-- 											-->
		  <input>/autopilot/internal/heading-bug-error-deg</input>			<!-- else:	take HeadingBugErrorComputer's value	-->
		  <reference>0.0</reference>
		  <output>/autopilot/internal/heading-offset-deg</output>
		  <period>
		   <min>-180</min>
		   <max> 180</max>
		  </period>
	 </filter>
	 
 
 
	<!-- 2. Stage: TargetRollComputer				-->
	<!-- computing Turn-Rate from Heading Offset	-->
	<!--	(computed in 1. Stage)					-->
	<filter>
	  <name>TargetRollComputer</name>
	  <debug>false</debug>
	  <enable>
		
		  <property>/autopilot/KAP140/locks/hdg-hold</property> 	<!-- true, HDG,NAV,REV,APR (false ROL, ROL/NAVarm -->
		 
	  </enable>
	  <type>gain</type>
	  <input>/autopilot/internal/heading-offset-deg</input>
	  <output>/autopilot/KAP140/settings/target-turn-rate</output>
	  <gain>0.04</gain>										<!-- regelt, ab welchem HeadingError der BankAngel wieder zurückgeregelt wird: --> 
	  <min>-1.0</min>										<!-- 	bei ca. 25° (1.0/0.04) 													-->
	  <max> 1.0</max>										<!--    Kleinere Werte bewirken größeres Überschießen!  						-->
	</filter>

  
  
  
  
  <!-- Wing leveler (ROL) Mode 	--> 
  <!-- Turn-Indicator based		-->
  <pid-controller>
    <name>Wing Leveler (ROL) Mode</name>
    <debug>false</debug>
    <enable>
      <prop>/autopilot/KAP140/locks/roll-axis</prop>	<!-- true, when AP on -->
      <value type="bool">true</value>
    </enable>
    <input>/instrumentation/turn-indicator/indicated-turn-rate</input>
    <reference>
		<condition>
			<greater-than>
			  <property>/autopilot/KAP140/locks/roll-mode</property> 	<!-- roll-mode: 1-ROL, 2-HDG, 3-NAV, 4-REV, 5-APR	-->
			  <value>1</value>											<!-- HDG/NAV/REV/APR								-->
			</greater-than>
		</condition>
		<property>/autopilot/KAP140/settings/target-turn-rate</property>	<!-- 0.0 in ROL-Mode! -  else output from TargetRollComputer -->
	</reference>
	<reference>0.0</reference>
    <output>/autopilot/internal/target-aileron-rate</output>
    <config>
      <Kp>0.06</Kp>        <!-- proportional gain -->
      <Ti>20.0</Ti>       <!-- integrator time -->
      <Td>0.0</Td>    <!-- derivator time -->
      <u_min>-1.0</u_min> <!-- minimum output clamp -->
      <u_max> 1.0</u_max>  <!-- maximum output clamp -->
    </config>
  </pid-controller>
  
  <!-- Aileron-Servo -->
  <!-- evtl. ohne Auswirkung, da "target-ailron-rate" aeusserst gering -->
  <filter>
  <name>SERVO-DRIVER:aileron</name>
  <debug>false</debug>
  <feedback-if-disabled>true</feedback-if-disabled>
  <enable>
	<prop>/autopilot/KAP140/locks/roll-axis</prop>	<!-- true, when AP on -->
    <value type="bool">true</value>
  </enable>
  <input>/autopilot/internal/target-aileron-rate</input>
  <output>/controls/flight/aileron</output>
  <type>noise-spike</type>
  <max-rate-of-change>0.2</max-rate-of-change>		<!-- aprx. 4s from 0 to maximum-output-clamp (1.0) 1.0/4=0.2 -->
  </filter>

Das folgt weitestgehend der erwähnten Anleitung. Ich hab versucht, die Steuerbewegungen eher sanft zu gestalten und Korrekturbewegungen zu vermeiden (ich denke, so eine Charakteristik würde ich bevorzugen, vorher war es recht ruppig). Natürlich wird dadurch die Sache auch träger.

Ich wollte versuchen, den kp-Wert des CDI-Integrators von der Entfernung zum Sender abhängig zu machen. Auf die kann man ja jederzeit über instrumentation/nav/nav-distance zugreifen - hab aber noch nicht geprüft, ob die tatsächlich stimmt und ob das brauchbar ist.--Katzmárek (talk) 14:22, 11 November 2013 (UTC)

Ich hab übrigens als Referenz den Turn-Indicator genommen, weil der in der Bedienungsanleitung als anzuschließendes Instrument angegeben wird.

Eigentlich funktionieren ROL- und HDG-Mode recht gut, allerdings...
Nach dem Start bzw. nach dem ersten Einschalten funktioniert ROL überhaupt nicht - obwohl ich alle Daten soweit überprüft hab. Ich habe jetzt extra noch eine Bedingung eingebaut, um im ROL-Mode tatsächlich sicher als Zielwert eine 0 zu haben, ohne Erfolg... Nach ein paar mal hin- und herschalten geht es irgendwann. Sonderbar...--Katzmárek (talk) 17:29, 12 November 2013 (UTC)

FGPlot?...

btw...

Im wiki steht, FGPlot soll ab Version 2.11 in FlightGear integriert sein, da steht aber nicht, wie man es startet?!...
Mehr Informationen dazu hab ich auch nicht gefunden. Irgendwie stelle ich mir unter integriert vor, es würde da einen Menü-Eintrag geben oder so. Vielleicht geht es nicht unter Windows? Geht es z.B. unter Ubuntu?--Katzmárek (talk) 18:28, 12 November 2013 (UTC)