IPB

Welcome Guest ( Log In | Register )

Heli with new flight Dynamics, formerly "Any chance to improve flight dynamics realism in helos?&
bluehawk112
post Jul 8 2017, 06:27 PM
Post #1


Major
****

Group: Soldiers
Posts: 192
Joined: 5-February 14
From: Planet Mars
Member No.: 10,005



Hey there, any experienced coder out there who can help me?There are some funny effects in real life helo flying: to describe it easy:When you throttle up (which would be pulling the collective pitch lever), the helo should make a yaw movement (yaw momentum) to the right - at least during the phase of throttling up. Same vice versa: throttling down should give a yaw momentum to the left- at least during the phase of throttling down. This happens if the rotor blades are rotating counterclockwise (looking on top of the helicopter)- which is the case at nearly all US helicopters. Of course its possible to counteract with the pedals (rudder/yaw).

This is a rather significant effect, see here between 2min 26 sec - 2min 36 sec (watch the left pedal input with the helicopter still yawing to the right):

https://www.youtube.com/watch?v=N_uGmDRtv2g

Any ideas how to code this effect? Thanks guys




Edit: Its done:

For getting more realistic flight dynamics the following lines must be added in the (any) helicopters tweak file:

(credits to Clivewil for his coding ideas) : The position coordinates must be adjusted, though. The normal tailrotor has the
following position: -0.2757/0.5947/-4.9587. The position of AHE_AH6_Rotorhead1L is therefore 5,2 meters more to the left than the normal tailrotor. Check the position of AHE_AH6_Rotorhead1R, too = 5,3 meters more to the left relative to the normal TailRotor. So do the same with other helicopters...



ObjectTemplate.addTemplate AHE_AH6_Rotorhead1L

ObjectTemplate.setPosition -5.4757/0.5947/-4.9587

ObjectTemplate.setRotation 0/0/-90


ObjectTemplate.addTemplate AHE_AH6_Rotorhead1R

ObjectTemplate.setPosition -5.5757/0.5947/-4.9587

ObjectTemplate.setRotation 0/0/-90


and scrolling down to the end of this tweak file add this (its all in one block):



ObjectTemplate.create RotationalBundle AHE_AH6_Rotorhead1L

ObjectTemplate.modifiedByUser "͇"

ObjectTemplate.setNetworkableInfo BasicInfo

ObjectTemplate.createdInEditor 1

ObjectTemplate.floaterMod 0

ObjectTemplate.hasMobilePhysics 0

rem -------------------------------------

ObjectTemplate.addTemplate AHE_AH6_Rotorhead2L

ObjectTemplate.setPosition 0/-5/0

rem -------------------------------------


ObjectTemplate.create RotationalBundle AHE_AH6_Rotorhead2L

ObjectTemplate.modifiedByUser "͇"

ObjectTemplate.setNetworkableInfo BasicInfo

ObjectTemplate.createdInEditor 1

ObjectTemplate.floaterMod 0

ObjectTemplate.hasMobilePhysics 0

rem -------------------------------------

ObjectTemplate.addTemplate AHE_AH6L_MainEngine

ObjectTemplate.setRotation 0/0/-90

rem -------------------------------------


ObjectTemplate.create Engine AHE_AH6L_MainEngine

ObjectTemplate.modifiedByUser "͇"

ObjectTemplate.setNetworkableInfo BasicInfo

ObjectTemplate.createdInEditor 1

rem ---BeginComp:WindAffector ---

ObjectTemplate.createComponent WindAffector

ObjectTemplate.windType RadialDir

ObjectTemplate.windIsDynamic 1

ObjectTemplate.windDirection 0/0/-1

ObjectTemplate.windSpeed 20

ObjectTemplate.windBlowTime -1

ObjectTemplate.windFalloff 30

ObjectTemplate.windRadialFalloff 20

rem ---EndComp ---

ObjectTemplate.floaterMod 0

ObjectTemplate.hasMobilePhysics 1

ObjectTemplate.hasCollisionPhysics 1

ObjectTemplate.physicsType Mesh

rem -------------------------------------

rem -------------------------------------

ObjectTemplate.setMaxRotation 0/0/10

ObjectTemplate.setMaxSpeed 0/0/10

ObjectTemplate.setAcceleration 0/0/1000

ObjectTemplate.setInputToRoll PIThrottle

ObjectTemplate.setAutomaticReset 1

ObjectTemplate.setEngineType c_ETHelicopter

ObjectTemplate.setTorque 39.9

ObjectTemplate.setDifferential 100

ObjectTemplate.setGearUp 0.1

ObjectTemplate.setGearDown 0.7

ObjectTemplate.setGearChangeTime 0.1

rem ObjectTemplate.noPropellerEffectAtSpeed 1

rem ObjectTemplate.noPropellerEffectAtSpeed 1

ObjectTemplate.horizontalSpeedMagnifier 1

ObjectTemplate.horizontalDampAngle 0.1

ObjectTemplate.horizontalDampAngleFactor 0.001

ObjectTemplate.defaultAngleOfAttack 1.5

ObjectTemplate.maxAngleOfAttack 15

ObjectTemplate.attackSpeed 6.5

ObjectTemplate.setAcceleration 0/0/100

ObjectTemplate.setDeAcceleration 0/0/8

ObjectTemplate.canReverse 1

ObjectTemplate.setAutomaticReset 0

ObjectTemplate.setUseDeAcceleration 1

beginrem

ObjectTemplate.decreaseAngleToZeroVerticalVel 0.5

ObjectTemplate.dampHorizontalVel 5

ObjectTemplate.dampHorizontalVelFactor -0.7

endrem

ObjectTemplate.canReverse 0

ObjectTemplate.audio.transformationRelativeRoot 1


ObjectTemplate.create RotationalBundle AHE_AH6_Rotorhead1R

ObjectTemplate.modifiedByUser "͇"

ObjectTemplate.setNetworkableInfo BasicInfo

ObjectTemplate.createdInEditor 1

ObjectTemplate.floaterMod 0

ObjectTemplate.hasMobilePhysics 0

rem -------------------------------------

ObjectTemplate.addTemplate AHE_AH6_Rotorhead2R

ObjectTemplate.setPosition 0/-5/0

rem -------------------------------------


ObjectTemplate.create RotationalBundle AHE_AH6_Rotorhead2R

ObjectTemplate.modifiedByUser "͇"

ObjectTemplate.setNetworkableInfo BasicInfo

ObjectTemplate.createdInEditor 1

ObjectTemplate.floaterMod 0

ObjectTemplate.hasMobilePhysics 0

rem -------------------------------------

ObjectTemplate.addTemplate AHE_AH6R_MainEngine

ObjectTemplate.setRotation 0/0/-90

rem -------------------------------------


ObjectTemplate.create Engine AHE_AH6R_MainEngine

ObjectTemplate.modifiedByUser "͇"

ObjectTemplate.setNetworkableInfo BasicInfo

ObjectTemplate.createdInEditor 1

rem ---BeginComp:WindAffector ---

ObjectTemplate.createComponent WindAffector

ObjectTemplate.windType RadialDir

ObjectTemplate.windIsDynamic 1

ObjectTemplate.windDirection 0/0/-1

ObjectTemplate.windSpeed 20

ObjectTemplate.windBlowTime -1

ObjectTemplate.windFalloff 30

ObjectTemplate.windRadialFalloff 20

rem ---EndComp ---

ObjectTemplate.floaterMod 0

ObjectTemplate.hasMobilePhysics 1

ObjectTemplate.hasCollisionPhysics 1

ObjectTemplate.physicsType Mesh

rem -------------------------------------

rem -------------------------------------

ObjectTemplate.setMaxRotation 0/0/10

ObjectTemplate.setMaxSpeed 0/0/10

ObjectTemplate.setAcceleration 0/0/1000

ObjectTemplate.setInputToRoll PIThrottle

ObjectTemplate.setAutomaticReset 1

ObjectTemplate.setEngineType c_ETHelicopter

ObjectTemplate.setTorque 39.9

ObjectTemplate.setDifferential 100

ObjectTemplate.setGearUp 0.1

ObjectTemplate.setGearDown 0.7

ObjectTemplate.setGearChangeTime 0.1

rem ObjectTemplate.noPropellerEffectAtSpeed 1

rem ObjectTemplate.noPropellerEffectAtSpeed 1

ObjectTemplate.horizontalSpeedMagnifier 1

ObjectTemplate.horizontalDampAngle 0.1

ObjectTemplate.horizontalDampAngleFactor 0.001

ObjectTemplate.defaultAngleOfAttack -1.5

ObjectTemplate.maxAngleOfAttack -15

ObjectTemplate.attackSpeed 0.75

ObjectTemplate.setDeAcceleration 0/0/100

ObjectTemplate.setAcceleration 0/0/8

ObjectTemplate.canReverse 1

ObjectTemplate.setAutomaticReset 0

ObjectTemplate.setUseDeAcceleration 1

beginrem

ObjectTemplate.decreaseAngleToZeroVerticalVel 0.5

ObjectTemplate.dampHorizontalVel 5

ObjectTemplate.dampHorizontalVelFactor -0.7

endrem

rem ObjectTemplate.canReverse 0

ObjectTemplate.audio.transformationRelativeRoot 1


This post has been edited by bluehawk112: Today, 11:05 AM
Go to the top of the page
 
+Quote Post
 
Start new topic
Replies (1 - 14)
clivewil
post Jul 8 2017, 10:09 PM
Post #2


meh.
Group Icon

Group: Mr. Admin
Posts: 2,008,251
Joined: 24-July 07
From: Perth, Western Australia
Member No.: 3,545



there would be a way of doing it, but how complex do you want your heli to be?

just off the top of my head, you could have 2 extra yaw engines, acting in opposing directions, both with different power curves. during throttle up engine A has more authority than B and causes yaw, but at full throttle both A and B are producing the same force and cancel each other out

there may be side effects you'd need to work around and setting it up might take a while to fine tune it correctly, but there would be a way of doing what you want

bear in mind that engines need networkable components added to them, so you wouldn't want to go sticking too many of them all over the place

force-objects, wings, creative use of rotational-bundles... there could be several ways of achieving a similar result

----------------------------------------------------------------------------------------------------------

one thing i've had on my mind re BF2 helis (unrelated to your issue) for a long time but never got around to playing with, is that engine-wise they behave more like a plane or a car, i.e. more engine revs equals more power, whereas in a real heli you'd keep the engines at full revs the whole time and feed in more rotor blade angle as needed to gain the required lift, sort of like letting the clutch out on a car with a manual trans.

with a lot of collective added, the engine revs would reduce slightly under the load but the sound of the rotor blades biting would be loudest, instead of the linear way that BF2 handles it, i.e. the more power you add the faster the engine runs. one day maybe i'll try to simulate it...


--------------------
Go to the top of the page
 
+Quote Post
bluehawk112
post Jul 10 2017, 05:01 PM
Post #3


Major
****

Group: Soldiers
Posts: 192
Joined: 5-February 14
From: Planet Mars
Member No.: 10,005



edited: not important anymore

This post has been edited by bluehawk112: Yesterday, 11:56 AM
Go to the top of the page
 
+Quote Post
Fastj@ck
post Jul 15 2017, 10:49 AM
Post #4


Major
****

Group: Soldiers
Posts: 249
Joined: 24-August 08
From: Germany
Member No.: 5,523



QUOTE
just off the top of my head, you could have 2 extra yaw engines, acting in opposing directions, both with different power curves. during throttle up engine A has more authority than B and causes yaw, but at full throttle both A and B are producing the same force and cancel each other out


You can add additional engines??
Is it possible to add a AIRBRAKE to jets like when you throttle down to 0 an force-object is added that works in the opposite direction you fly and it works only for a short time like 2 seconds (quick drop of the force-objects power)???

Go to the top of the page
 
+Quote Post
bluehawk112
post Jul 15 2017, 12:22 PM
Post #5


Major
****

Group: Soldiers
Posts: 192
Joined: 5-February 14
From: Planet Mars
Member No.: 10,005



edited: not important anymore

This post has been edited by bluehawk112: Yesterday, 11:56 AM
Go to the top of the page
 
+Quote Post
clivewil
post Jul 16 2017, 09:45 PM
Post #6


meh.
Group Icon

Group: Mr. Admin
Posts: 2,008,251
Joined: 24-July 07
From: Perth, Western Australia
Member No.: 3,545



QUOTE (bluehawk112 @ Jul 16 2017, 02:22 AM) *
( laugh.gif Clive...?)

i'll give you some more pointers but i won't actually code it for you, that could take hours i don't have spare, sorry - and the whole thing could turn out to be a bad idea or an anticlimax

for orientation and placement, look at a heli's tail rotor engine, and AIX has a Harrier and Forger with stand-alone yaw engines - you want two nearly identical ones but acting in opposite directions

input will be via PIThrottle

i have no idea exactly how it will pan out because i've never done what you're trying to do, but the first thing i'd try would be to give the engines slightly different acceleration values, i.e. they both produce the same power and run at the same speed but vary in how long they take to achieve that power.

remember that there's also a property called setDeAcceleration, so along with setAcceleration you should be able to adjust both ends of the power curve. my memory is a bit hazy but i think you might need to include ObjectTemplate.setUseDeAcceleration 1 (or something like that) in order to use deceleration (but maybe that's only for RotBundles? i dunno. experiment.)

start with one engine and gauge exactly how much effect it has and adjust it to be the bare minimum you can get away with - then clone it and flip it for the second engine. remember that even though the net effect is zero, these things are still producing power and sometimes that has side effects so watch your flight characteristics for anything weird

have fun


--------------------
Go to the top of the page
 
+Quote Post
bluehawk112
post Jul 17 2017, 02:21 AM
Post #7


Major
****

Group: Soldiers
Posts: 192
Joined: 5-February 14
From: Planet Mars
Member No.: 10,005



Wow, thank you very much, Clive! Youre very helpful- as usual wink.gif ! Very intelligent thoughts. Gonna check it out tongue.gif ...will take a while, I guess. Ill report back



This post has been edited by bluehawk112: Jul 17 2017, 02:26 AM
Go to the top of the page
 
+Quote Post
bluehawk112
post Jul 18 2017, 06:30 PM
Post #8


Major
****

Group: Soldiers
Posts: 192
Joined: 5-February 14
From: Planet Mars
Member No.: 10,005



edited: not important anymore

This post has been edited by bluehawk112: Yesterday, 11:57 AM
Go to the top of the page
 
+Quote Post
clivewil
post Jul 18 2017, 07:13 PM
Post #9


meh.
Group Icon

Group: Mr. Admin
Posts: 2,008,251
Joined: 24-July 07
From: Perth, Western Australia
Member No.: 3,545



QUOTE
only appears during the spool up time of these extra yaw engines.

i thought that was what you wanted. do you want it to occur constantly? e.g. slowly yawing while hovering?

---> i went back and read your OP again, ok my bad. i saw 'throttle up' and only focused on that. keep the same setup but with PIPitch as the input. you might need an additional pair of engines, one pair for pitch up, one pair for pitch down IF you can't make it work properly with a single pair - but with ObjectTemplate.canReverse 1 working, you *should* be able to get by with just a single pair. pitch up, they push one way, pitch down, they push the other way

oops, etc.


--------------------
Go to the top of the page
 
+Quote Post
bluehawk112
post Jul 19 2017, 04:02 AM
Post #10


Major
****

Group: Soldiers
Posts: 192
Joined: 5-February 14
From: Planet Mars
Member No.: 10,005



edited: not important anymore

This post has been edited by bluehawk112: Yesterday, 11:57 AM
Go to the top of the page
 
+Quote Post
clivewil
post Jul 19 2017, 09:50 AM
Post #11


meh.
Group Icon

Group: Mr. Admin
Posts: 2,008,251
Joined: 24-July 07
From: Perth, Western Australia
Member No.: 3,545



i just had a horrible thought... what do you use to control your heli? my setup probably won't work with anything other than a joystick, i.e. mouse+keys won't give the correct input to the engines


--------------------
Go to the top of the page
 
+Quote Post
bluehawk112
post Jul 19 2017, 01:15 PM
Post #12


Major
****

Group: Soldiers
Posts: 192
Joined: 5-February 14
From: Planet Mars
Member No.: 10,005



edited: not important anymore

This post has been edited by bluehawk112: Yesterday, 11:57 AM
Go to the top of the page
 
+Quote Post
bluehawk112
post Jul 19 2017, 06:10 PM
Post #13


Major
****

Group: Soldiers
Posts: 192
Joined: 5-February 14
From: Planet Mars
Member No.: 10,005



Okay, now here we go tongue.gif !
I tried something else: instead of using the coding structure of the tail engine for my yaw engines I used the coding structure of
main engines.
Furthermore, I did not put the 2 yaw engines in opposite directions but in the same direction. One of them has negative angle of attack, though.

Thank you very much, Clive laugh.gif !! As usual, you supported me with your brilliant idea!

The helicopter has improved flight physics now. Its the best I could do.
According this page here

http://www.dodosim.com/fsx206dynamics.html

it has now (roughly, not too realistic though..):
-Torque-Induced Yaw (our topic here!)
-Loss of Tail Rotor Effectiveness when flying fast (weather vane effect)
-Dissymmetry of Lift (at very high speed helo tends to bank to the left)
-Flap Back ( weak, but existent cool.gif )
Here are the additions that I made to the helicopters tweak file:

see post no. 1



Have fun, any improvements are welcome!

This post has been edited by bluehawk112: Yesterday, 11:58 AM
Go to the top of the page
 
+Quote Post
MasterChiefRulZ
post Jul 20 2017, 08:01 PM
Post #14


You know the drill...
Group Icon

Group: Mr. Admin
Posts: 10,332
Joined: 31-December 03
From: Home
Member No.: 48



Topic moved and renamed per poster's request.


--------------------
Go to the top of the page
 
+Quote Post
bluehawk112
post Jul 21 2017, 04:13 AM
Post #15


Major
****

Group: Soldiers
Posts: 192
Joined: 5-February 14
From: Planet Mars
Member No.: 10,005



QUOTE (MasterChiefRulZ @ Jul 21 2017, 04:01 AM) *
Topic moved and renamed per poster's request.

Thank you, MCR! happy.gif

This post has been edited by bluehawk112: Yesterday, 11:48 AM
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
2 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
1 Members: bluehawk112

 



RSS Lo-Fi Version Time is now: 23rd July 2017 - 04:45 PM