Profile image

Fly-by-wire

47.3k MOPCKOEDNISHE  7 months ago
3,463 downloads
Version 1.0 Part

SimpleWings modpack V.1.2 contains this mod: LINK
UPD: android version was fixed and tested.
Hello!
I present to you new mod: Fly-by-wire system:

Attention! This description contains big count of pictures and gifs.

EXAMPLE UNSTABLE JAS-39
EXAMPLE UNSTABLE F/A-18 Super Hornet
EXAMPLE UNSTABLE FLANKER VARIANT 1
EXAMPLE UNSTABLE FLANKER VARIANT 2
EXAMPLE UNSTABLE FLANKER FULLY CONTROLLED

Download mod from Google Drive:
PC LINK
Android LINK

This system improve control of stable airplanes and make possible to fly on unstable airplanes in game.
This mod contains 4 parts: Computer block, Slats block, Limiter block and Condition block in Fly-by-wire category.

1. Computer block:

This block need for control surfaces/thrust vector of engine.
There is a two types of fly-by-wire for pitch control (horizontal stabilizers/canard wings/thrust vectoring), same two types for yaw control (vertical stabilizers) and one type of fly-by-wire for roll control.
The first type of control ( for pitch and yaw) is the control by angle of attack (AOA). This type is the most simplify for use. The second type of control (for pitch and yaw) and one type for roll control is the control by angular velocity.

Angle of attack control:
The first action what you should to do - attach computer block to your airplane.
For correct work for pitch axis the rotation of computer block must be (0,0,0):
.
After that select the block, scroll down and find a two input controllers:

The first input controller are usual input controller. The computer block will be process axis value of this input controller.
The second input controller enable of disable fly-by-wire system.
If the value of second input controller = 1, then fly-by-wire will be enabled.
If the value of second input controller = 0, then fly-by-wire will be disabled, but computer block affect to output axis. In this case value of output axis = value of first input controller
If the value of second input controller = -1, then computer block don't affect to output axis. In this case fly-by-wire completely off. You will see later for why it need.
The default axis of this input controller - Activate 8. See the picture:

By default activation group 8 are enabled. This mean that at the start fly-by-wire will work, but you can disable it. You can set any activation group via overload mod(in the Input label, not in Activation group label)
After that scroll up and select "AOA" in "Type of control" attribute:

Then choose your output axis. It's "VTOL" by default. The rotators of stabilizers/canard wings must have the same axis in the input controller:

After that you can see attribute "For AOA:####". This is only title and mean that below attributes is for angle of attack (AOA) control type.
Max AOA, deg - the maximum angle of attack what you want to fly when you pull up/pull off stick control.
Comparison:
You tell to your computer block that you want fly at angle of attack = 15 degrees. And then your computer block answer to you: "Ok, i will try to do it."
Sensitivity - this value responds how hard you computer block trying to fulfill your request.
The very big value of Sensitivity is bad for unstable airplanes:

In this case the airplane will swinging and the good flight will be impossible.
You must find optimal value for your airplane. For unstable airplanes i don't recommend to set it more then 2.
Recommended sensitivity for unstable planes=0.5...2
Damper-this attribute improve the control. He consider speed of angle of attack changing.
Without damper:

With damper:

Recommended damper for unstable planes=1...2
The damper create a jittering.
After that attributes you can see label "Start decrease AOA:####".
You can see a slider below:

This slider set a speed after that "Max AOA,deg" begin decreasing. This can improve comfortable of control on high speed: when your pull up control stick at the 600 km/h the computer block will try to set airplane AOA, for example, 7.5 degrees instead 15 degress.
Mathematics examples:
If you set slider km/h = 400, decrease coefficient= 1, Max AOA,deg=15 then:
While speed of your airplane less then 400 km/h the maximum AOA=15. When speed of your airplane = 600 km/h than maximum AOA=7.5.
See the pictures:

This graphics illustrate mathematical formulas. decrease coefficient-it is the coefficient of incline.

Minimal coefficient-minimal coefficient of AOA.
For yaw control:
For correct work for yaw axis the rotation of computer block must be (0,0,90):

The settings for this completely analogous except rotation of the computer block.
In this case vertical stabilizers will try to fly with some angle of drift.
This work like this:

That's all about angle of attack control.

Angular velocity control:
For correct work for pitch/roll/yaw axis the rotation of computer block must be (0,0,0):
The scale of computer block must be (1,1,1).
In this type of control computer block try rotate your airplane with angular speed depending position of control stick:

This type of control have same attributes as control by AOA except "Damper":

This attributes work like attributes of control by AOA, but with reference to angular speed.
Recommended sensitivity for unstable planes=1... 1.5
You can see a new attribute: Set angular axis.
You should to choose axis from which angular velocity values will be taken.
Set X for Pitch, Y for Yaw and Z for Roll.
The rotators of surfaces with this control type will be jittering:

For this reason is not comfortable to use "control by angular velocity" on high speed.

It is possible to use fly-by-wire for each axis and make 3-axis controlled by fly-by-wire airplane:


That'a all about angular velocity control.

There is to possible to use this two systems for one axis. You can toggle from fly-by-wire by angle of attack to fly by wire to angular velocity.
I have write that if value of second input controller=-1 then computer block don't affect to output axis.
So, to use both system is need to set the value of second input controller =-1 of first computer block while the value of second input controllerof another computer block = 1.
If you will create a airplane with both type of control of one axis, make sure that the both computer block have minimal value = -1, maximum value = 1 and one of them are inverted:

The control by anglular velocity it's no comfort for high speed from the reason of control surfacrs jittering. You can toggle to control by angle of attack, if you will use both types of control:

The example flanker airplane in the beginning of the description have a many "fuselage wings" with different leading edge angle. I don't recommed to use it.
But in your own airplane I recommend to use little count of wings with enabled wing physics, like this:


Also, i recommend to use same leading edge angle for main wings and for fuselage wings.

If you already trying to fly of unstable example airplanes, maybe, you have saw a very unpleasant feature of airplanes with rear stabilizers- uncontrollable roll rotation on high angle of attack:

So, it is a negative feature of classic type. Angular velocity control for roll axis can a little bit improve it.
The type of airplane "Canard" like Jas-39, Eurofighter Typhoon or Mig-1.44 controlled better.
The computer block have a last one attribute below title "Other:####".
Nonlinearity-set a nonlinearity dependence output from input. It make a more comfortable control - it's improve accuracy at the little movement of control stick of airplane.


The nonlinearity work even fly-by-wire are disabled(the value of second input control=0). It can increase accuracy of control even if you don't want to use fly-by-wire.

Not each unstable airplane it's possible to improved by computer block.
Obviously that computer block cannot control airplane with this center of mass position:

If you want to know, is it possible to control your unstable airplane by computer block, you should to do these actions:
1.Spawn in air on unstable airplane without fly-by-wire system. Your airplane start to nose up.
2.Pull of the control stick:

If over time your airplane start to nose down and angle of attack become negative (you should to feel it), pull up the control stick:

After that your airplane start to nose up again.
If these actions was successful that's mean that your airplane can "get out" from positive and negative angle of attack. That's mean that your airplane can be controlled by computer block. And after that you will shoud choose control system and optimal values for it.

Also, i recommend to you break the example airplanes and look the computer block's values, values of rotators of stabilizers and its input controllers via overload mod.
That's all about computer block.

2. Slats block:

This block do output axis value = angle of attack.
This need for correct rotation of wing slats:

If you set the input control of slats rotators = output axis of slats block, and range of motion of rotators = Degrees attribute of slats block, then angle of slats rotation will be equal angle of attack:


If you want that slats must rotate only one side, don't forget to limit min/max value in input controller of rotator:

That's all about slats block.

3. Limiter block:

This block limit the maximum values of selected axis depending speed:

The attributes "km/h","decrease coefficient" and "minimal coefficient" works like the same attributes of computer block.
The difference from computer block that limiter_block don't needs in additional axis. This limit the input axis.
This block need for more realistic behaviour of your airplane on high speed.
Limit block simulate that your rotators can not rotate aerodinamics surfaces on its maximum angle of rotation from reason of high speed.
If you set km/h=400, decrease coefficient=1 then:
If speed of your airplane less than 400 km/h, then rotators can rotate aerodynamics surfaces on maximum angle. If airspeed =600 km/h then rotators can rotate aerodynamics surfaces only 50% of maximum angle.

Also, it can simulate controls of fighter airplanes of WWII, when pilot was hard to pull on control stick on high speed.
The attribute Nonlinearityworks like same parameter in computer block.
I recommend do not use limiter block with computer block. And recommed use or limiter block, or computer block on your airplane.
That's all about Limit block.

4. Condition block:

This block need for automatic toggle activation groups depend different conditions:

The default values mean this:
If
speed of your airplane >= 100 km\h
and
speed of your airplane <= 400 km/h
and
angle of attack of your airplane >= 15 degrees
and
angle of attack of your airplane <= 30 degrees
then
activation group 1 will enabled
in all other cases
activation group 1 will disabled.

If you want to use only one condition, then you need set other conditions which always will be fulfilled.
For example:
You want that activation group 1 will enabled if angle of attack more than 20 degrees, in all other cases activation group 1 will disabled.
In this case your should set values like this:

You can read this like:
If
speed of your airplane < 10000 km\h (First conditon)
and
speed of your airplane < 10000 km/h (Second conditon)
and
angle of attack of your airplane < 20 degrees (Third conditon)
and
angle of attack of your airplane < 20 degrees (Fourth conditon)
then
activation group 1 will enabled
in all other cases
activation group 1 will disabled.

You can see that first condition are equal second condition. And third condition are equal fourth condition.
If your airplane can not fly on speed = 10000 km/h this mean that first and second condition always will fulfilled.
The third and fourth condition will fullfilled if angle of attack less than 20 degrees. In this case AG1 will enabled. If angle of attack more than 20 degrees then AG1 will disabled:

But i dont recommend to you set first condition like "< 10000 km\h", but set like ">10 km/h". It is no possible to correctly identify angle of attack if speed of your airplane =0. If you set first condition like "< 10000 km\h" then selected activation group will always toggle if your airplane dont fly:

If "then set" Activation Group are equal "else set" Activation Group this mean than selected activation group are fully controlled by conditon block. In this case you can not toggle selected activation group by yourself: condition block do it instead you.
But if you set "then set" Activation Group are not equal "else set" Activation Group this mean that "then set" Activation Group are not controlled by condition block if conditions not fulfilled.
In this case you can toggle selected activation group by yourself.
But i not recommend to set "then set" Activation Group not equal "else set" Activation Group.
There is a bug: if the AI-controlled airplane have a same condition block with same select activation group, and "then set" or "else set" selected group are not controlled by your conditon block then possible situation when AI-condition block can toggle activation group on your airplane.
From this reason i recommend to set "then set" Activation Group are equal "else set" Activation Group. It this case selected activation group will fully controlled by your condition block.
You can use many condition blocks for each activation group.

In third/fourth condition you can select Ang.vel (angular velocity) instead AOA(angle of attack).
In this case you should to select axis of angular velocity- X,Y or Z.

If you use AOA then slider below means degrees of angle of attack.
If you use Ang.vel. (angular velocity) then slider below means degrees per second.

You can see the axes of angular speed on the picture:

Axis X mean rotate around red axis.
Axis Y mean rotate around green axis.
Axis Z mean rotate around green axis.

The rotations counterclockwise are considered as negative. Clockwise-as positive.
If you use conditions of angular velocity the rotation of condition block must be (0,0,0).

About angle of attack:
If you want to use condition of angle of attack, then rotation of condition block must be (0,0,0).
In this case AOA considered positive when nose of your airplane rises:

If you want to use condition of angle of drift, then rotation of condition block must be (0,0,90).
In this case AOA considered positive when nose of your airplane "turn left":

Also, values of angular velocity and angle of attack you can see in game if select condition block attribute "Show aoa":

It can help you if you want to check values.

Also, you with condition block you can automatically toggle between angle of attack control and angular velocity control in computer block .
That's all about condition block.

I hope this mod allow you to create a very interesting control systems on your airplane.

ENJOY!

  • Log in to leave a comment
  • Profile image

    @Brields95 wingspan, wingloading and wing length does not tell my anything. If you give me a link to your airplane, a try to set it, I can only say that angular velocity control is recommended to use at speed < 1000 kmh, angle of attack control can be used on any speed.

    3 months ago
  • Profile image
    10.9k Brields95

    I have an aircraft that weighs 167,327 lbs and has a thrust to weight ratio of .081, and a wing loading of 27.8 lbs per foot squared. it has a wingspan of 161.1 feet and a length of 203.5 feet and is in a canard setup with a rear main wing. it takes 8 of your engines. how should I best setup the flyby wire? It has a tendency to flip on it's axis at around 5000 mph.

    3 months ago
  • Profile image

    @TheStapler link

    5 months ago
  • Profile image
    2,988 TheStapler

    @MOPCKOEDNISHE https://www.simpleplanes.com/a/t4tuP5/aaaawyv-gear
    That's the one. Still partly unfinished, but I wanted to get the stability sorted before wasting time on gear etc

    5 months ago
  • Profile image
    180 Altmztrn

    @MOPCKOEDNISHE it didn't work on my phone somehow

    5 months ago
  • Profile image

    @Altmztrn I don't understand the question. What do you mean?

    5 months ago
  • Profile image

    @TheStapler Thanks! Can you upload your aircaft on site? If i see the problem, i will try to fix it

    5 months ago
  • Profile image
    2,988 TheStapler

    Excellent work, really makes unstable aircraft flyable. I've got one issue though. No matter what damper and sensitivity settings I use in AOA pitch, the aircraft gets an uncontrollable rapid pitch up and down at high speed (800mph plus). Any ideas how to fix it? Ive tried reducing the inputs at speed too but no joy.

    5 months ago
  • Profile image

    post it on steam pls?

    5 months ago
  • Profile image
    180 Altmztrn

    Minimum requirements?

    5 months ago
  • Profile image
    10.6k Nerfaddict

    @MOPCKOEDNISHE I swear to god the SU 33 is my SPIRIT ANIMAL!!!!

    5 months ago
  • Profile image
    10.6k Nerfaddict

    @MOPCKOEDNISHE proceeds to do a 270° backflip to take out the krakobla convoy and then lands on the destroyer helipad like a heinkel lerche

    6 months ago
  • Profile image

    @lolibomber No, sorry.

    6 months ago
  • Profile image

    hi! i'm really impressed by this mod! such a great job!
    I'm studing about aeronatical engineering, and i wonder if i can see the code of this mod. May i have your permission?

    6 months ago
  • Profile image
    1,695 Akhtar04

    I feel so stupid after reading whole description.

    +3 6 months ago
  • Profile image

    @Lego787 Yes. The all block have a same model.

    6 months ago
  • Profile image
    153 Lego787

    Anyone else having issues with the slats block not being textured or modeled? every block for me looks the same.

    6 months ago
  • Profile image

    Someone should make a G force mod that’s would be EPIC

    6 months ago
  • Profile image
    6,294 JamesBoA

    @MOPCKOEDNISHE oh, ok

    6 months ago
  • Profile image

    @JamesBoA i thought about this many times :) I have try to create this (when i created helicopter and tank aiming mods). But my first attempt was unsuccessful.

    6 months ago
  • Profile image
    6,294 JamesBoA

    @MOPCKOEDNISHE can you make a mod that changes the plane aiming like war thunder? (it's possible?)

    +1 6 months ago
  • Profile image
    15.1k Gameboi14

    im not good at math, why am i here

    6 months ago
  • Profile image
    609 Sovjetair

    and here i am, still trying to make something out of this. I think its just me thats not good at making the correct settings, but im trying to make my brothers flanker fly (has center of lift on center of mass).

    6 months ago
  • Profile image

    @Nerfaddict Thanks. I spent more energy to create this description than mod:)

    +3 6 months ago
  • Profile image
    10.6k Nerfaddict

    @MOPCKOEDNISHE this is in my opinion a mod where reading the description is very useful

    +3 6 months ago
  • Log in to see more comments