Jump to content
The simFlight Network Forums

Control Input Shaping


Recommended Posts

Greetings Pete,

Longtime user of FSUIPC. Have also done a few freeware programs that used it for various helicopter load-carrying options.

In my never ending quest to increase the control response realism for helicopter flight models, I have identified a need that I'm starting to think that only FSUIPC might be able to help me with.

Between FS, Saitek software, and FSUIPC, I have been able to control to a good extent the response time and response curves for a particular helicopter. However, there is one aspect of control input that it would seem that I can not get control over. That is delay.

I would like to delay the control inputs on a given axis by X miliseconds. Currently, all we have at our disposal appears to be null zone type behavior. Which is unfortunately, not what I need. I would like to be able to move the stick a couple of milimeters to the right or left, and actually have to wait a given number of milliseconds before that control response gets passed to the sim. A parameter to control how long that delay would be, would be most powerful for use in helicopters. Although, I would think any aircraft that has a control system with delay behaviors could benefit from a feature such as this.

I know nothing is easy. However, I thought that maybe if I could explain myself well to you, and also describe why I think this would be a valuable feature to many of your users and cockpit builders that you might consider working it into the mix.

This is my first time posting in your forum, so I apologize if this topic has been covered in the past, or if I have missed some way to easily do this that already exists.

In any case, I thank you for all of the great things we have been able to do via FSUIPC in the helicopter community. It has been a wonderful swiss-army knife!

Link to comment
Share on other sites

I would like to be able to move the stick a couple of milimeters to the right or left, and actually have to wait a given number of milliseconds before that control response gets passed to the sim. A parameter to control how long that delay would be, would be most powerful for use in helicopters. Although, I would think any aircraft that has a control system with delay behaviors could benefit from a feature such as this.

Isn't this the sort of response parameter which can and should be attended to in the Aircraft's CFG file? It seems to be that this is the correct and proper place for it, not artificially "slackening the wire".

I've had a quick look in the Bell CFG, and there's not much there (not to say it can't be added), but the Moments of Inertia are one area for experimentation. In most sophisitcated CFGs there are many Scalar parameters which control responsiveness -- I see in the Robinson one there are several in the [Helicopter] section.

Haven't you tried to get the model to your liking first, before trying rather strange external means? I think it would be better, really.

Having a delay in supplied values can be done. It is messy, and I think it would tend to emulate the same effect as being slowed to a very low frame rate in FS -- i.e. you'd overcontrol. I always overcontrol the helos in any case, you must be a top notch pilot if you need it harder than it is already at full realism!

Let me know, either way. I can have a look. But even if I did it I'd probably relegate it to an INI file parameter only -- it's getting far too crowded in the options and User Interfaces are not my forte as you can see!

Regards,

Pete

Link to comment
Share on other sites

Overcontrolling is exactly what the desired result would be.

I know you and I are not in the same circles, but I am a fairly experienced helicopter flight sim developer. For example, I recently released a full twin turbine Bell 412, that utilizes a proper startup/shutdown for both engines using the real-world Bell checklist. You could say I'm obsessed. :o)

I have the know-how to manipulate "responsiveness" as I need it. But what makes the Bell 206 unique, is that it is responsive on the controls, but that response comes on a delay. This isn't true for all helicopters, but the 206 is unique in this regard (a few others as well). It is what makes it such an interesting and challenging helicopter to learn to fly competently.

If you can imagine, you have to make control inputs, and actually wait about 1/4-1/2 second for them to occur. This becomes entirely natural after it is practiced, but it is a very unique aspect that we are most keen to emulate.

All of the other shaping, in terms of responsiveness, and curves, we are already able to achieve. A mix of FS control settings, proper airfile configuration, and proper configuration of what limited parameters are available in the .cfg file for the Bell model in FS. As well as some of the extra capabilities that come with the software of various hardware (X52, X45, CH, etc).

Unfortunately....none of these options gives us the ability to delay the response. Only make it stronger, weaker, or adjust the curve. This is true for fixed wing airfile development as well. Although I don't do much fixed-wing development, I would imagine this feature might come in handy for a few folks on that side of the fence. If they happen to be obsessed with a particular aircraft that shares this unique control behavior.

As far as ini vs. interface. If you were willing to give some attention to my strange request, I would be happy with wherever you put the number. You could hide it in an EXCEL VBscript macro on my P: drive, in an encrypted, password protected gzip file..... if it meant I'd be able to finally crack this nut! lol

Link to comment
Share on other sites

Okay, I attach version 3.539 of FSUIPC, which can apply delays to any axis assigned through its Axis Assignment facilities.

The delay is limited to a minimum of 2 x the axis polling interval (which defaults to 10 mSecs) and a maximum of 200 x this interval (i.e. 2 seconds with the default polling interval).

Incidentally, the polling interval can be changed by a parameter

PollInterval=10

inserted into the main [Axes] section of the INI file (add the section if it isn't there). The units are milliseconds.

Delays for axes have to be edited in the INI file. There is no facility to change them or even see them in the option screens. Sorry -- it is just too crowded and my user interface design skills are limited.

The format of the axis parameters in the INI files [Axes ...] sections is as follows:

For the main axis entry (explanation of values below):

n=ja,®delta(/delay)

where the parentheses merely show optional parts, and

j = joystick # (0 to 18, 16 to 18 being PFC)

a = axis (XYZRUV)

R is only present when "Raw" mode is selected

delta is the delta value (eg 512, or 1 for Raw mode)

/delay is the optional delay, in milliseconds

When axis controls are assigned (the left part of the options), this is extended by the definition of the controls:

n=ja,®delta(/delay),ForD,ctl1,ctl2,ctl3,ctl4

where

ForD is an F for "FS control" or D for "Direct to FSUIPC calibration"

ctl1 to ctl4 are the control numbers, or zero where unassigned. For Direct mode, these are the calibration indices, 1-4 on Page 1 of calibrations, 5-8 on page 2, etc.

Here's an example of an axis assigned to the FSUIPC Spoiler, with a 1 second delay:

0=0Y,256/1000,D,22,0,0,0

If the axis is programmed to send controls based on the axis passing through zones (the right side of the options), there will also be entries for each such assignment, thus:

n=ja,UDorB®,low,high,ctl,param

where

UDorB is U for Up, D for Down or B for Both

R optionally specifies Repeat

low and high give the axis values for the zone

ctl and param are the Control numbers, and Parameter where used.

Here's an example for a Gear lever:

1=0Z,256/500

2=0Z,U,6400,16383,66079,0

3=0Z,D,-16384,-13783,66080,0

Note that the delay option (here half a second) still goes on the main axis entry, the one defining the delta (and "Raw" mode if applicable).

I hope this is clear. You can edit the INI file whilst FS is running, then simply going to the Axis Assignment options page and clicking the reload button at the bottom of the window.

Delays of 200 mSecs or more should be reasonably accurately maintained most of the time, but short ones could vary quite a bit, the smaller you set them, because of the granularity of the polling interval and the sharing of the processor with other things going on in FS.

Please let me know how you get on.

Regards

Pete

FSUIPC3539.zip

Link to comment
Share on other sites

Looking forward to it.

Okay. When you try it, assign axes in the normal way, and Ok out of the Options. Then edit the delay into the appropriate parameters, as shown.

Note that the delays do not occur when in the options -- otherwise it would make assignment changes and calibrations mighty difficult!

Regards,

Pete

Link to comment
Share on other sites

Of course it will take a little testing and playing to get it fine tuned to perfection, but the initial results show that it is working as designed. Right off the bat it started to produce the effects I have been looking for. I'm sure with some tweaking, I can really perfect the "feel".

Pete, thank you, for taking this seriously. It means a lot to those of us working on the 206 in its various forms.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • 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.