Jump to content
The simFlight Network Forums

Recommended Posts

Posted

Arggghhhhh, I've tried to reinvent the wheel, I'm an idiot and schould read more documentation :oops:

In a recent post I've read about the (experimental) feedback control facility and the feature to control KIAS with throttle via FSUIPC. Well, that is a similar thing I'm trying to do myself - some kind of ground speed control, a bit more 'intelligent' than the stuff currently out there.

I've tried some classic feedback control algorithms (P,I,PI,PID), but only with limited success. Fiddling around with the factors of these algorithms is a very hard and time consuming task. Results are: aicraft never reaches target speed, overshoot target speed, oscillates around target speed (etc). And that different for every type of aircraft, weight, ...

If the FSUIPC (speed) control facility works if the aircarft is on the ground (?), that means ...

1) You have already done the work for me

2) Every FSUIPC user has a "ground speed control" for free via the hotkey settings

I'm currently at my work location, but be sure that I will test these new controls when I'm at home ...

Bye,

Holger

Posted

If the FSUIPC (speed) control facility works if the aircarft is on the ground (?), that means ...

1) You have already done the work for me

2) Every FSUIPC user has a "ground speed control" for free via the hotkey settings

Well, two things of note. First is that of the three controls provided (pitch, bank, speed), the first two are working well but the third needs some work on "tuning" the values I am using -- they are adjustable in the interface, but I haven't found values which suit all aircraft.

Second is that the speed control is based on either Airspeed or Mach, not Ground Speed. You are okay on the ground as long as there's either no wind or the wind is lateral (cross) only. If there's any head wind you'll go too slow (if at all), and if any tailwind youl may go too fast.

I would have thought doing a simple ground speed control would have been relatively easy, especially if you don't mind dabbing the brakes now and then too. After all the range of speeds is very small, as is the usable range of throttle you'd consider.

Regards,

Pete

Posted
Well, two things of note. First is that of the three controls provided (pitch, bank, speed), the first two are working well but the third needs some work on "tuning" the values I am using -- they are adjustable in the interface, but I haven't found values which suit all aircraft.

That didn't surprise me. It's the same problem I have. I think at least there must be different values for prop, turbo prop, jet, etc. depending on weight, engine power and moment of inertia of the aircraft.

Second is that the speed control is based on either Airspeed or Mach, not Ground Speed. You are okay on the ground as long as there's either no wind or the wind is lateral (cross) only. If there's any head wind you'll go too slow (if at all), and if any tailwind youl may go too fast.

Yes, I already noticed that you've used KIAS as reference. But schould'nt be a big problem to calculate a +/- error correction value for given KIAS and GS. Or you are so polite and provide kts GS as target in bytes 0-7I know you are a nice guy ;)

I would have thought doing a simple ground speed control would have been relatively easy, especially if you don't mind dabbing the brakes now and then too. After all the range of speeds is very small, as is the usable range of throttle you'd consider.

I also thought that, but it is not so easy. You see it at your own speed control. Dabbing the brakes is a solution, but not the most elegant one and I doubt that a real pilot often uses this method. Yes, the range of speed is very small, but I think the usable range of throttle is not so small as you and me might think.

First problem is to get the a/c moving (moment of inertia) with a certain amount of N1/RPM and then reducing N1/RPM to the right "taxi value" (eg some 737 models implement idle taxi, some not, depending on vendor/author - the secerets in the air-file!). Controling against disturbance, like the pilot hitting left brake to do a left turn. Perhaps I'm wrong in my thoughts or with my program design, but my results show that it is not too easy if it should fit for more than one special aircraft.

Holger

Posted

Yes, I already noticed that you've used KIAS as reference. But schould'nt be a big problem to calculate a +/- error correction value for given KIAS and GS. Or you are so polite and provide kts GS as target in bytes 0-7I know you are a nice guy ;)

Too nice, and I shouldn't do this. :wink: But try the attached interim test version 3.457. If you set flag 2^3 for the speed control it uses GS as the reference instead of ASI. Still in knots -- I do the conversions for you.

This is untested. Let me know how your experiments go!

Really the only advantage having this code in FSUIPC rather than in an external application program is that it is closer to the simulation and, in theory, can react faster and therefore, hopefully, obtain more accurate control. This certainly seems to be the case for pitch and bank which give great results, but speedugh!

I'd like to improve the default parameters for the speed and mach controls, so if you find better ones for specific aircraft, let me know. I could build in a table for the defaults, making selections based on gross weight, engine type, etc.

Regards,

Pete

FSUIPC3457test.zip

Posted

Hi Pete,

you make me cry and feel like a rookie. As first step I've tested your feedback control facility with FSUIPC 3.440 (yea, I know that it is not the current version ;)) as described in the SDK documentation. I've enabled the feature (logging=32) and assinged some hotkeys. Your speed algorithm is working like charm with the a/c on ground!

I've done some quick test with the default 734, 744, Cessnas and the Payware SF.260. Everytime the aircarft stays within the speed limit of 20 knots (IAS) and accelerates very smoothly up to that speed. Even turning with differential brakes works with a little speed penalty of about +2 knots. Your initial settings are really good, at least for ground handling.

Problems are still that it takes a longer time to reach the target speed (>20 seconds) and that excessive use of (differential) brakes make N1 go wild up to the coded limits. But it should be possible to produce some code to work around this, depedning on the current taxi situation.

Conclusion is that you are a genius (no doubt you are) and/or me too stupid to implement a smooth program to handle that ground speed problem .... or my speed control timing (external FSUIPC application) is too slow. I've tried 200 and 500 milliseconds interval and never get a satisfactory result. And I change the throttle lever position, not the engine settings (N1/RPM) directly (like you do????).

Anyway, your feature seems to fit my needs (on ground) and I hope that it will stay in FSUIPC (in final, not experimental state). I'll try your interim version and the GC flag with a little C program as soon as possible. I think playing around with the R value, parameter 1 and 2 will improve results regarding acceleration time and brakes usage.

Thanks,

Holger

Posted

As first step I've tested your feedback control facility with FSUIPC 3.440 (yea, I know that it is not the current version ;))

HmmmWhy did I send 3.457, above, then?

Your initial settings are really good, at least for ground handling.

I never tested them for ground handling, of course. they were only meant to be for use in an external autopilot.

... my speed control timing (external FSUIPC application) is too slow. I've tried 200 and 500 milliseconds interval and never get a satisfactory result.

That's probably a bit slow. Add to that the extra latency (by the time you see the values they've already changed) and you'd have some difficulty getting smooth control and avoiding over-compensation.

And I change the throttle lever position, not the engine settings (N1/RPM) directly (like you do????).

No, there's no way to change turbine or prop speeds directly. My control is only throttle, nothing else. Similarly the pitch is elevator (optionally trim, but normally only trim after pitch is achieved) and bank is aileron.

Regards,

Pete

Posted
HmmmWhy did I send 3.457, above, then?

Sorry, I had only 15 minutes time so I only did a quick test with my default installation. Will do some C code for testing purposes as soon as I find a bit time.

Holger

Posted

Did a quick C hack to test the interim 3.457 you provided, target speed (on ground) was 10 knots.

If I set the new GC flag (2^3) to 0, I get the "normal" speed control via KIAS. Everything fine like doing it via FSUIPC hotkeys (see ias.log).

Setting the GC flag (2^3) to 1, the feedback control brings the engines up to 90% N1 and the aircarft accellerates beyond 100 knots. Looks like the upper limit of 10 knots didn't count this time (see gs.log).

Just for the case the problem is my little program I've attached the structure definition I use to read and write to/from FSUIPC (struct.txt).

Nice weekend,

Holger

3457_test.zip

Posted

Setting the GC flag (2^3) to 1, the feedback control brings the engines up to 90% N1 and the aircarft accellerates beyond 100 knots. Looks like the upper limit of 10 knots didn't count this time (see gs.log).

Just for the case the problem is my little program I've attached the structure definition I use to read and write to/from FSUIPC (struct.txt).

Told you it wasn't tested!

I'll look at it over the weekend if you send me the test program. Otherwise it will have to wait until I have time to write my own. Send to petedowson@btconnect.com.

Regards,

Pete

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.