• Which the release of FS2020 we see an explosition of activity on the forun and of course we are very happy to see this. But having all questions about FS2020 in one forum becomes a bit messy. So therefore we would like to ask you all to use the following guidelines when posting your questions:

    • Tag FS2020 specific questions with the MSFS2020 tag.
    • Questions about making 3D assets can be posted in the 3D asset design forum. Either post them in the subforum of the modelling tool you use or in the general forum if they are general.
    • Questions about aircraft design can be posted in the Aircraft design forum
    • Questions about airport design can be posted in the FS2020 airport design forum. Once airport development tools have been updated for FS2020 you can post tool speciifc questions in the subforums of those tools as well of course.
    • Questions about terrain design can be posted in the FS2020 terrain design forum.
    • Questions about SimConnect can be posted in the SimConnect forum.

    Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.

    By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.

Auto Pilot; Auto Throttle issue

Messages
10,158
Country
us-arizona
Hey all,


I have an issue with one of my planes. I have auto pilot in it, but not 'Flight Director'. When I activate 'auto throttle', the speed drops way down. If I increase the stock 90% setting up to say 100 or 120, it gets better, or closer, but never 'right on the mark'. It also seems to have a 'percentage range' that changes. For instance, if I have a setting of 120, it might do 85 knots. If I have a setting of 200, it could be more, like its unfocused or working off of a blind guess point.

Any idea's what is going on? Could it be that I need Flight Director for management of speed? Is this perhaps a bug? Can I code my own auto pilot?

This is the FSX version AP, which works the least best, (horrible).

[autopilot]
autopilot_available= 1
flight_director_available= 1
default_vertical_speed=1000
autothrottle_available= 1
pitch_takeoff_ga=8.0
max_pitch=10.0
max_pitch_acceleration=1.0
max_pitch_velocity_lo_alt=2.0
max_pitch_velocity_hi_alt=1.5
max_pitch_velocity_lo_alt_breakpoint=5000
max_pitch_velocity_hi_alt_breakpoint=10000
max_bank=25.0
max_bank_acceleration=1.8
max_bank_velocity=3.00
max_throttle_rate=0.10
nav_proportional_control=20
nav_integrator_control=0.25
nav_derivative_control=0.0
nav_integrator_boundary=1.5
nav_derivative_boundary=0.0
gs_proportional_control=9.52
gs_integrator_control=0.26
gs_derivative_control=0.00
gs_integrator_boundary=0.70
gs_derivative_boundary=0.00
yaw_damper_gain = 2.0
autothrottle_arming_required=0
autothrottle_takeoff_ga=0
autothrottle_max_rpm=90.00


This is for a single engine, four passenger 4,000 LB aircraft.


Bill
 
Last edited:
Code:
<Click>(A:AUTOPILOT AIRSPEED HOLD,bool) 1 == d (A:AUTOPILOT MACH HOLD,bool) 1 == r || if{ 0 (&gt;K:AUTO_THROTTLE_ARM) 0 (&gt;K:AP_MACH_OFF) 0 (&gt;K:AP_AIRSPEED_OFF) 0 (&gt;L:AT POWER,number) 0 (&gt;L:AT ENABLE,number) } els{ (A:Autopilot throttle arm, bool) 0 == if{ 0 (&gt;K:AUTO_THROTTLE_ARM) } 0 (&gt;K:AP_MACH_OFF) 0 (&gt;K:AP_AIRSPEED_ON) 1 (&gt;L:AT POWER,number) 1 (&gt;L:AT ENABLE,number) }</Click>

Code:
<Gauge Name="Autothrottle" Version="1.0">
   <Image Name="AT.bmp"/>
//---------Initialize-------------------
   <Element>
      <Select>
         <Value>(L:INITIALIZE AIRSPEED,number) 1 &lt; if{ (A:AUTOPILOT AIRSPEED HOLD VAR,knots) 180 &gt; if{ 180 (&gt;K:AP_SPD_VAR_SET) } 1 (&gt;L:INITIALIZE AIRSPEED,number) }</Value>
      </Select>
   </Element>
//---------Initialize if AT already switched on-------------------
   <Element>
      <Select>
         <Value>(A:AUTOPILOT AIRSPEED HOLD,bool) 1 == d (A:AUTOPILOT MACH HOLD,bool) 1 == r || if{ (L:AT ENABLE,number) 1 &lt; d (L:AT POWER,number) 1 &lt; r &amp;&amp; if{ 1 (&gt;L:AT ENABLE,number) } 1 (&gt;L:AT POWER,number) }</Value>
      </Select>
   </Element>
//---------------------
   <Element>
      <Position X="0" Y="0"/>
      <MaskImage Name="AT_MASK.bmp">
         <Axis X="59" Y="48"/>
      </MaskImage>
      <Image Name="NUMBER_ROLL_5.bmp" Luminous="1">
	<Axis X="0" Y="108"/>
      </Image>
      <Shift>
         <Value>(A:AUTOPILOT AIRSPEED HOLD VAR,knots) 100 / 10 % flr</Value>
         <Nonlinearity>
            <Item Value="0" X="0" Y="0"/>
	    <Item Value="10" X="0" Y="108"/>
         </Nonlinearity>
      </Shift>
   </Element>
   <Element>
      <Position X="0" Y="0"/>
      <MaskImage Name="AT_MASK.bmp">
         <Axis X="76" Y="48"/>
      </MaskImage>
      <Image Name="NUMBER_ROLL_5.bmp" Luminous="1">
	<Axis X="0" Y="108"/>
      </Image>
      <Shift>
         <Value>(A:AUTOPILOT AIRSPEED HOLD VAR,knots) 10 / 10 % flr</Value>
         <Nonlinearity>
            <Item Value="0" X="0" Y="0"/>
	    <Item Value="10" X="0" Y="108"/>
         </Nonlinearity>
      </Shift>
   </Element>
   <Element>
      <Position X="0" Y="0"/>
      <MaskImage Name="AT_MASK.bmp">
         <Axis X="93" Y="48"/>
      </MaskImage>
      <Image Name="NUMBER_ROLL_5.bmp" Luminous="1">
	<Axis X="0" Y="108"/>
      </Image>
      <Shift>
         <Value>(A:AUTOPILOT AIRSPEED HOLD VAR,knots) 10 % flr</Value>
         <Nonlinearity>
            <Item Value="0" X="0" Y="0"/>
	    <Item Value="10" X="0" Y="108"/>
         </Nonlinearity>
      </Shift>
   </Element>
//---------------------
   <Element>
      <Position X="24" Y="8"/>
      <Select>
         <Value>(L:AT POWER,number)</Value>
         <Case Value="0">
            <Image Name="AT_OFF.bmp"/>
         </Case>
         <Case Value="1">
            <Image Name="AT_ON.bmp"/>
         </Case>
      </Select>
   </Element>
//---------------------
   <Element>
      <Position X="50" Y="8"/>
      <Select>
         <Value>(L:AT POWER,number)</Value>
         <Case Value="0">
            <Image Name="AT_OFF.bmp"/>
         </Case>
         <Case Value="1">
            <Image Name="AT_ON.bmp"/>
         </Case>
      </Select>
   </Element>
//---------------------
   <Element>
      <Position X="88" Y="8"/>
      <Select>
         <Value>(L:AT POWER,number)</Value>
         <Case Value="0">
            <Image Name="AT_OFF.bmp"/>
         </Case>
         <Case Value="1">
            <Image Name="AT_ON.bmp"/>
         </Case>
      </Select>
   </Element>
//---------------------
   <Element>
      <Position X="114" Y="8"/>
      <Select>
         <Value>(L:AT POWER,number)</Value>
         <Case Value="0">
            <Image Name="AT_OFF.bmp"/>
         </Case>
         <Case Value="1">
            <Image Name="AT_ON.bmp"/>
         </Case>
      </Select>
   </Element>
//---------------------
   <Element>
      <Position X="24" Y="65"/>
      <Select>
         <Value>(L:AT POWER,number)</Value>
         <Case Value="0">
            <Image Name="AT_OFF.bmp"/>
         </Case>
         <Case Value="1">
            <Image Name="AT_ON.bmp"/>
         </Case>
      </Select>
   </Element>
//---------------------
   <Element>
      <Position X="57" Y="77"/>
      <Select>
         <Value>(L:AT ENABLE,number)</Value>
         <Case Value="1">
            <Image Name="AT_ENGAGE_1.bmp"/>
         </Case>
         <Case Value="2">
            <Image Name="AT_ENGAGE_2.bmp"/>
         </Case>
      </Select>
   </Element>
//-------------------------------------------
   <Mouse>
   <Help ID="HELPID_AUTOPILOT_AUTOTHROTTLE"/>
//------
   <Area Left="50" Top="73" Width="30" Height="41">
	<Cursor Type="Hand"/>
	<Click>
(A:AUTOPILOT AIRSPEED HOLD,bool) 1 == d (A:AUTOPILOT MACH HOLD,bool) 1 == r ||
if{ 0 (&gt;K:AUTO_THROTTLE_ARM) 0 (&gt;K:AP_MACH_OFF) 0 (&gt;K:AP_AIRSPEED_OFF) 0 (&gt;L:AT ENABLE,number) }
els{
   (A:Autopilot throttle arm, bool) 0 == if{ 0 (&gt;K:AUTO_THROTTLE_ARM) }
   0 (&gt;K:AP_MACH_OFF) 0 (&gt;K:AP_AIRSPEED_ON) 1 (&gt;L:AT POWER,number) 1 (&gt;L:AT ENABLE,number)
   }
</Click>
   </Area>
//------
   <Area Left="81" Top="73" Width="30" Height="41">
	<Cursor Type="Hand"/>
	<Click>
(A:AUTOPILOT AIRSPEED HOLD,bool) 1 == d (A:AUTOPILOT MACH HOLD,bool) 1 == r ||
if{ 0 (&gt;K:AUTO_THROTTLE_ARM) 0 (&gt;K:AP_MACH_OFF) 0 (&gt;K:AP_AIRSPEED_OFF) 0 (&gt;L:AT ENABLE,number) }
els{
   (A:Autopilot throttle arm, bool) 0 == if{ 0 (&gt;K:AUTO_THROTTLE_ARM) }
   0 (&gt;K:AP_MACH_OFF) 0 (&gt;K:AP_AIRSPEED_ON) 1 (&gt;L:AT POWER,number) 2 (&gt;L:AT ENABLE,number)
   }
</Click>
   </Area>
//------
   <Area Left="52" Top="45" Width="28" Height="18">
	<Cursor Type="DownArrow"/>
	<Click Repeat="Yes" MouseWheelFlip="Yes">(A:AUTOPILOT AIRSPEED HOLD VAR,knots) 180 &gt; if{ 180 (&gt;K:AP_SPD_VAR_SET) } els{ 0 (&gt;K:AP_SPD_VAR_DEC) }</Click>
   </Area>
//------
   <Area Left="80" Top="45" Width="28" Height="18">
	<Cursor Type="UpArrow"/>
        <Click Repeat="Yes" MouseWheelFlip="Yes">(A:AUTOPILOT AIRSPEED HOLD VAR,knots) 180 &lt; if{ 0 (&gt;K:AP_SPD_VAR_INC) }</Click>
   </Area>
//------
   <Area Left="113" Top="60" Width="12" Height="21">
	<Cursor Type="DownArrow"/>
	<Click Repeat="Yes" MouseWheelFlip="Yes">(A:AUTOPILOT AIRSPEED HOLD VAR,knots) 180 &gt; if{ 180 (&gt;K:AP_SPD_VAR_SET) } els{ 0 (&gt;K:AP_SPD_VAR_DEC) }</Click>
   </Area>
//------
   <Area Left="125" Top="60" Width="12" Height="21">
	<Cursor Type="UpArrow"/>
        <Click Repeat="Yes" MouseWheelFlip="Yes">(A:AUTOPILOT AIRSPEED HOLD VAR,knots) 180 &lt; if{ 0 (&gt;K:AP_SPD_VAR_INC) }</Click>
   </Area>
//------
   <Area Left="23" Top="8" Width="114" Height="26">
	<Cursor Type="Hand"/>
        <Click>(L:AT POWER,number) 0 &gt; if{ 0 (&gt;L:AT POWER,number) 0 (&gt;K:AP_MACH_OFF) 0 (&gt;K:AP_AIRSPEED_OFF) 0 (&gt;L:AT ENABLE,number) (A:Autopilot throttle arm, bool) 1 == if{ 0 (&gt;K:AUTO_THROTTLE_ARM) } } els{ 1 (&gt;L:AT POWER,number) }</Click>
   </Area>
//------
   <Area Left="22" Top="64" Width="25" Height="27">
	<Cursor Type="Hand"/>
        <Click>(L:AT POWER,number) 0 &gt; if{ 0 (&gt;L:AT POWER,number) 0 (&gt;K:AP_MACH_OFF) 0 (&gt;K:AP_AIRSPEED_OFF) 0 (&gt;L:AT ENABLE,number) (A:Autopilot throttle arm, bool) 1 == if{ 0 (&gt;K:AUTO_THROTTLE_ARM) } } els{ 1 (&gt;L:AT POWER,number) }</Click>
   </Area>
   </Mouse>
</Gauge>
 
The edit function doesn't work along with other functions :-(

The first code snippet is a clickable AT light. The second is the AT unit.
vololiberista
 
Hey VoloLiberista,

I see you were perhaps having the same issue?

Does this work for your plane, maintaining speed?


I wonder what in the world would trip the system.... It 'should' maintain speed. Why would it hold 90 when its set for 135? And why isnt it constant, that if I reset power percentage for AT that it changes in ratio's rather then speed range?

I do not get it... I havent had this happen before, except with the Boeing 797 flying wing. I believe that one also had lower air speeds from what you would set the speeds to.


Bill
 
I have two issues. The AT is actually only intended for use at 180kts or below but linked to a simple AP with an airspeed dial it will follow any speed dialled up from that source. I have also two APs. One that has a basic airspeed hold and one that is intended to be used in the sim with the GPS etc which has a full range airspeed selector. As the a/c was/is never fitted with GPS (INS instead) I deleted it from the cfg file. So I use the Fs9 AP for part of the flight and the original for landings etc.
vololiberista
 
Which of the many K:events (commands) are you using, Bill? It's been years since I had to look at this, but I seem to recall that one set of commands will "capture the current airspeed and hold" and another set of commands will "accelerate up to the selected (desired) airspeed and hold."

I may actually be able to answer this question myself as I'm about to start scripting an antique (1960's) autopilot & flight director system today... ;)
 
Hey Bill



I was testing it this morning, trying to figure things out, what it might be.


Here is what I am using, 'and' the lock setting display code, which is what the plane is supposed to be doing, per the display. It occurred to me, what if the display lock setting isnt 'true' per what the airspeed is showing... That would be two different readings based on altitude.


Codes;



Code:
<!--  PFD Lock Setting  -->

     <Element>
         <Position X="1110" Y="74"/>
        <Visible>(A:AUTOPILOT AIRSPEED HOLD,bool) 1 ==</Visible>
        <Text Bright="Yes" X="43" Y="40" Length="3" Multiline="No" Fixed="Yes" Font="Nasalization" FontSize="26" Color="#666666" Adjust="Left" VerticalAdjust="Bottom">
        <String>%((A:AUTOPILOT AIRSPEED HOLD VAR, knots) 9999 min 0 max)%!3d!</String>
      </Text>
     </Element>


<!--  MFD Lock Setting (Same)  -->


      <Element>
        <Position X="439" Y="277"/>
    <FormattedText X="120" Y="100" Font="Nasalization" FontSize="64" LineSpacing="0" Adjust="Center" VerticalAdjust="Center" Color="#FF3399" Bright="Yes">
      <Color Value="White"/>
      <String>
        %((A:AUTOPILOT AIRSPEED HOLD,bool) 1 == )
        %{if}
        %((A:AUTOPILOT AIRSPEED HOLD VAR, knots) 999 min 0 max)
        %!3d!
        %{else}
        %\{clr2}
        %((A:AUTOPILOT AIRSPEED HOLD VAR, knots) 999 min 0 max)
        %!3d!
      </String>
    </FormattedText>
  </Element>




<!--  QUICK LOCK SPEED HOLD  -->

                     (&gt;K:AP_AIRSPEED_ON,bool)
                     (&gt;K:AP_MASTER)


<!--  ENTER/ACTIVATE AUTOTHROTTLE & AUTOPILOT  -->

                     (&gt;K:AP_AIRSPEED_ON,bool)
                      1 (&gt;K:AUTOPILOT_ON)


Also, I noted this morning that I have AP_AIRSPEED_ON as the activator for both buttons. One should lock, and one should 'activate' or arm. <sigh...>
 
Hey Roy,

Roger that, but as you can see, everything is in 'knots'. That does sound like you would be right if it 'were' in KPH readout.



My proper 'enter' button code for on/off should be AP_AIRSPEED_SET

The other two which effect this same 'activate' code is
AP_AIRSPEED_ON
AP_AIRSPEED_OFF


As I am testing this, it is working right... heh... FSX is really trying to strain me.

Oddly, it doesnt seem to want to hold airspeed constant if the font for speed setting (lock setting) isnt showing.
Thus, if the locked setting isnt showing, the speed will begin dropping.

Mind you, this only happens in FSX. In FS9, it all functions properly.
 
Last edited:
I found the issue.

Shift-Z on the readout in the upper left in FSX revealed that KIAS was exactly the same as the 'indicated locked airspeed setting' which means 'actual airspeed' wasnt the right thing to use, so I changed it to indicated. Testing now.

arrgh... All that...
 
None of my FS2004 'command' codes will work to 'turn on' the preset speed setting. Either they do not turn on AT, or they turn on and lock the present airspeed. I have tried them all.

Off to search the FSX SDK to see if there is a new AT command.
 
I.... I.. um.. cannot find 'Parameters' or 'EventID's' in the FSX SDK... @!? Did they get rid of those, or place them in a new location?
 
If you open this it has most of the links you need to the other documents:

C:/Program Files/Microsoft Games/Microsoft Flight Simulator X SDK/SDK/sdk overview.html


C:/Program Files/Microsoft Games/Microsoft Flight Simulator X SDK/SDK/Core Utilities Kit/Variables/Simulation Variables.html

C:/Program Files/Microsoft Games/Microsoft Flight Simulator X SDK/SDK/Core Utilities Kit/Variables/Event IDs.htm

Hope this helps,
 
If you open this it has most of the links you need to the other documents:

C:/Program Files/Microsoft Games/Microsoft Flight Simulator X SDK/SDK/sdk overview.html


C:/Program Files/Microsoft Games/Microsoft Flight Simulator X SDK/SDK/Core Utilities Kit/Variables/Simulation Variables.html

C:/Program Files/Microsoft Games/Microsoft Flight Simulator X SDK/SDK/Core Utilities Kit/Variables/Event IDs.htm

Hope this helps,



Whewww... Yes, this helps Tom. You would think they would be in the gauges department.


Bill
 
Last edited:
None of my FS2004 'command' codes will work to 'turn on' the preset speed setting. Either they do not turn on AT, or they turn on and lock the present airspeed. I have tried them all.

Off to search the FSX SDK to see if there is a new AT command.

I just wrote earlier that there are two sets of "SPEED_HOLD" events...

Try:

AP_PANEL_SPEED_ON
AP_PANEL_SPEED_OFF

This event captures current airspeed:
AP_PANEL_SPEED_HOLD_TOGGLE

This event will hold preselected airspeed:
AP_AIRSPEED_HOLD
 
I just wrote earlier that there are two sets of "SPEED_HOLD" events...

Try:

AP_PANEL_SPEED_ON
AP_PANEL_SPEED_OFF

This event captures current airspeed:
AP_PANEL_SPEED_HOLD_TOGGLE

This event will hold preselected airspeed:
AP_AIRSPEED_HOLD


Hey Bill,

Took me all day to find that out, and just discovered it about 30 mins ago. But, many thanks. This will be good archive material for others in building AP's for FSX that will feature AT.


So many AT on's and only one that works with presettings... A long day.

Bill
 
Back
Top