Jump to content
The simFlight Network Forums

Autopilot Feedback Control Facility


Recommended Posts

Would it be possible to add a 'yaw' control to the feedback control facility? I have the capability to send a third channel (yaw) from my external autopilot, but nothing in the feedback control facility to send it to.

Generally I don't think the rudder isn't used much by autopilots -- there's a sort of "autorudder" mechanism (which you can simulate by enabling it in FS), and a damper of course which operates rudder trim tabs to conteract adverse yaw.

In fact I think in the current code I engage autorudder when the bank feedback control is used, then return it to its original state afterwards. This ensures turns are made with perfect balance without needing any rudder input from the autopilot.

The actual yaw motion of the aircraft is, of course, affected as much if not more by aileron activity as by the little and occasional rudder needed, the main function of the latter being to prevent incorrect yaw rather than cause any -- unless you are a stunt pilot in which case autopilots aren't involved!

Yaw is also caused by throttle changes in prop and turboprop aircraft, but normally the bank and pitch controls will counteract that quite quickly.

Given all this I find it difficult to imagine exactly what I should be checking for yaw and how I should be attempting to control it, and also why I would do all this to start with. What would you suggest?

On top of all this, there is the point of course that even the existing facilities I provided are still "experimental" and I have had almost no feedback at all -- so am I to assume that the existing provisions are not being used, or that they are all perfect?

Regards,

Pete

Link to comment
Share on other sites

You have a valid series of points. The roll and pitch feedbck portions work great. The feedback control facility correctly coordinates the turns with the info it is receiving. I guess all I was asking was that an option be added to stop the feedback facility from performing the calculations necessary to determine rudder input/yaw damp and let that information be supplied from an external source. Now that I better understanding of how you are generating the rudder inputs to null out adverse yaw, it really is not necessary to change the feedback control facility.

Link to comment
Share on other sites

The roll and pitch feedbck portions work great.

Good. It is nice to have that confirmed.

Now that I better understanding of how you are generating the rudder inputs to null out adverse yaw, it really is not necessary to change the feedback control facility.

Great! This is the sort of message I like -- less work instead of more! :wink:

Thanks,

Pete

Link to comment
Share on other sites

Pete,

Before I forget to ask; would you expect there be any noticeable performance difference between using the autopilot feedback facility over a network; ie with normal wideclient/wideserver, or by using it directly on the same computer Flight Sim is running on. In running some tests it seems that the feedback facility does not like running over a 100Mbps network as it appears there is too much of a lag and the roll/pitch axis rock back and forth wildly. In running the same code on the same computer that Flight Sim is resident, the oscillations seem to disappear.

Link to comment
Share on other sites

In running some tests it seems that the feedback facility does not like running over a 100Mbps network as it appears there is too much of a lag and the roll/pitch axis rock back and forth wildly. In running the same code on the same computer that Flight Sim is resident, the oscillations seem to disappear.

It cannot make any difference, because all you do it turn on the facility with a target pitch or roll angle. After that, everything is internal to FSUIPC and FS -- there's nothing on the Network having anything to do with it.

Or are you trying to change the target value all the time? That's not the correct way to use it -- if you are doing so, why?

Regards,

Pete

Link to comment
Share on other sites

I am changing the value at a rate of 10 times per second. I never thought of slowing down the update. What would you recommend as a suitable update rate?

Erwhat are you updating and why?

The pitch/bank control works by itself. You set the taget pitch or bank and FSUIPC operates the elevator and ailerons to achieve and then maintain that pitch or bank. For a turn you'd just set the bank for the turn, eg 25 degrees, then monitor the heading and simply reset the target bank to 0 in good time to achieve that heading. Similarly for airspeed control and climbs/descents by pitch.

You only need to re-affirm the control you are exerting every so many seconds, as indicated in this text from the documentation:

This is 0 for "off", non-zero for "on". FSUIPC reduces this by 1 every 50-55 mSecs, so your program needs to write FF here at intervals not exceeding 14 seconds

I really cannot imagine what you are trying to do changing values every tenth of a second? How to you expect the feedback control in FSUIPC to ever achieve a moving target with any success?

There is evidently something very basic one of us is not understanding here.

Regards,

Pete

Link to comment
Share on other sites

My flight director sends a constant stream of roll and pitch commands at 20 times/second which I am parseing down to 10 times/second and passing on to the feedback facility. I have my flight director successfully driving the feedback facility to fly precision approaches down to touchdown, hence my need for updating probably more than what the feedback facility can handle. It does work quite well at 10 times/second. I've just had to mess with the fiddle factor numbers to get the precision I need. I will try something along the lines of 1 update per second, to see what response I acheive. Would there be a way that instead of the feedback facility being given a target pitch/roll that it would accept a constant streaming pitch/roll input instead and let my external flight director perform all the calculations to acheive the target pitch/roll?

Link to comment
Share on other sites

My flight director sends a constant stream of roll and pitch commands at 20 times/second which I am parseing down to 10 times/second and passing on to the feedback facility.

But if the values are different every time, my feedback system never gets a chance to actually do what it is trying to do -- that is adjust things to achieve a steady given pitch or roll angle.

Surely, what you are doing is acting on the feedback instead of allowing my code to. At 20 times per second you should surely be operaing the ailerons and elevators directly to achieve your ever changing roll and pitch requirements.

hence my need for updating probably more than what the feedback facility can handle.

It isn't really anything to do with what it can "handle". It is altering the elevator and aileron settings to achieve a specific target. It is using a history of past values taken at intevals, like your 55 mSecs, to see how fast the changes in pitch and roll are occurring and modifying the next elevator or aileron position according to complex formulae which attempt to predict where the values will be next time. It's a sort of "weighted extrapolation", like the trend arrows on a glass cockpit PFD.

If the value it is trying to achieve is different every time, then the whole idea is up the creek. The history and adjustments it is making are more or less worthless because they were all based on a target which is now different.

Would there be a way that instead of the feedback facility being given a target pitch/roll that it would accept a constant streaming pitch/roll input instead and let my external flight director perform all the calculations to acheive the target pitch/roll?

What is it doing if it does this? It then isn't doing any feedback checking nor prediction nor anything at all except operating the ailerons and elevators. You say "up/down/left/right" and it does it? Think about it.

Currently it is trying to work out what it needs to do to the aileron and elevator to achieve a specific KNOWN result. It doesn't KNOW what result you are going to want on the next interval, so what is it going to try to do?

What I think you must mean is "Would there be a way that instead of the feedback facility being given a target pitch/roll that it would accept a constant streaming elevator and aileron settings instead and let my external flight director perform all the calculations to acheive the target pitch/roll?"

And of course the answer to that is, "no, but you can stream your aileron and elevator values yourself". Why pass them through something else which is doing nothing but copy your values to a different offset? See offsets 0BB2, 0BB6 and 0BC0 -- these are the places the FSUIPC feedback loop is updating for you.

The only advantage the FSUIPC feedback loops provide is that they are close inside FSUIPC and can synchronise with FS's own updates. They are not doing anything that other programs could not also do, they are simply better placed for precision and smoothness. Some third party autopilots implemented in advanced cockpits do their own, in similar ways, where they think they can do it better, or usually more flexibly, than the built-in FS A/P. But of course they too are better placed, being in gauges inside FS.

Project Magenta's autopilot, almost always run via WideFS, does a good job for an external program, but it currently uses a mixture of parts of FS's A/P and its own controls. It is capable of good autolands on any ILS equipped runways -- but the PM A/P does need configuring for each aircraft, of course, as any A/P would.

Regards,

Pete

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. Guidelines Privacy Policy We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.