MODULAR HYDRAULICS SYSTEM INFORMATION

This page contains information relating to the different components and connections used by the modular hydraulics system, as defined in the [HYDRAULICS_SYSTEM_EX1] section of the systems.cfg file.

 

The modular hydraulic system works in a similar way to many of the other aircraft systems where you describe the different components and how they should interact. The system simulation then runs on its own to provide hydraulic power to the various actuators in the aircraft. The actuator state (ie: the provision of hydraulic fluid which is under sufficient pressure) is then checked whenever a movement is required, by the brakes, by the landing gear, etc...

 

It should be noted that - unlike the electrical or fuel systems, for example - you do not just define a single hydraulics system. Instead you may define as many individual hydraulics systems as required by the aircraft, with each system having a single reservoir component.

 

The different components available are as follows:

  • Reservoir.N: A hydraulic system is comprised of one or more reservoirs that store hydraulic fluid.
  • Pump.N: This component is used to pressurise the hydraulic system.
  • PTU.N: The PTU (Power Transfer Unit) is a hydraulic pump that uses the fluid under pressure from one circuit to run and pressurize another circuit without exchanging fluid.
  • Actuator.N: This component acts as the link between the hydraulic system and the other aircraft parts.
  • Junction.N: A junction forms a crossroad for various lines to go through.
  • Line.N: These define how all the elements listed above are linked to one another.

 

Additionally, you can add the following line features to the system lines:

  • Accumulator.N: This line feature stores hydraulic fluid under pressure to be able to deliver at least a certain amount of fluid in the case of a system failure.
  • Valve.N: This line feature is used to control the flow of hydraulic fluid through the system.

 

The components listed above can be considered as "active" components (such as reservoirs, pumps, actuators, etc...) and "line" components (lines, valves, junctions, etc...). Each active component will be connected by one or more lines, and each line can have certain "line features" to help control the flow of hydraulic fluid in the system.

 

Many of these components can be checked using SimVars, and you can find information about those here:

 

It should be noted that there are some parameters that can be set in the FLT file to initialise the hydraulic system to specific values for a flight or a mission. You can find more information here:

 

 

Reservoir.N

Each hydraulic system requires at least one reservoir to be defined, and each reservoir is created as a hash map comprised of the following multiple key:value pairs, separated by the # symbol:

Reservoir.N = Name:<reservoir_name> #MaxCapacity:<capacity_litres> #WearAndTearCollision:<damage_profile_name1>,<damage_profile_name2>,<etc...>

Note that you may have more than one hydraulic system, and therefore more than one reservoir. In these cases you would add further Reservoir components and increment the N index, starting from 1. A full example of a single reservoir definition would be like this:

Reservoir.1 = Name:HydraulicReserve #MaxCapacity:1 #WearAndTearCollision:LeftWingLight
Key Value Description Required
Name String This defines the common name for the reservoir, which will be used in all further components that need to refer to it. It will also be used as the reference index for SimVars, and note that the name is the only guaranteed reference to the component due to the fact that the Modular Aircraft Merging process may change the index. Yes
MaxCapacity Float The total capacity of the reservoir, in litres. The amount of fluid it actually contains is set in the FLT file: Reservoir[Name] Yes
WearAndTearCollision String This parameter provides one or more references to a damage profile that has been defined in the [COLLISION_DAMAGE] section of the flight model CFG file. For more information, please see here: Note On Collision Damage / Wear And Tear No

 

 

Pump.N

A hydraulic system needs to be pressurised, and for that you can use the pump component. The pressure build up in a pump is gradual, and as such a pump will never actually reach its target pressure, and instead will simply get closer and closer without actually reaching it. This target pressure depends on a few parameters:

  • for Engine Driven Pumps, the power of the pump will be linked to its associated motor.
  • for Electric Pumps, power will either be "on" or "off" depending on whether the associated circuit has electricity or not.
  • for PTU Pumps, the power of the pump relies on the pressure received by the PTU motor.
  • all pumps may additionally have their effectiveness lowered due to wear and tear or damage.

 

Since fluid displacement is critical to the hydraulics system (fluid moves to an actuator, displacing the fluid it contains already, and this displaced fluid goes back to the reservoir to be displaced again) the pump must be able to renew the same quantity that the actuator displaced in order to keep them pressurized. If the pump provides less fluid than what is required, the system can oscillate, causing actuators to "bump" periodically, or it may be that a sweet spot can be found where the actuator will work fine, but with a reduced efficiency.

 

Each pump is created as a hash map comprised of the following multiple key:value pairs, separated by the # symbol:

Pump.N = Name:<pump_name> #NormalPressure:<pressure> #NominalDisplacement:<displacement> #Type:<pump_type> #Index:<value> #Circuit:<circuit_name> #Mode:<auto_onoff> #PressureThresholdPct:<pct_pressure> #WearAndTearCollision:<damage_profile_name1>,<damage_profile_name2>,<etc...>

Note that you may have more than one pump, so for each one you should increment the N index, starting from 1. A full example of a single pump definition would be like this:

Pump.1 = Name:Pump_ENG_1 #NormalPressure:3000 #NominalDisplacement:2400 #Type:EngineDriven #Index:1 #WearAndTearCollision:BodyHeavy,BodyMedium
Key Value Description Required
Name String

This is a name string that is used as an alias to identify the pump. It will also be used as the reference index for SimVars, and note that the name is the only guaranteed reference to the component due to the fact that the Modular Aircraft Merging process may change the index.

Yes
NormalPressure Float This is used to define the pressure (in psi) that will be reached by the system, or at least by the pump output. Yes
NominalDisplacement Float This value indicates the amount of fluid (in millilitres / second) that the pump can inject into the system to pressurize the lines. The higher the number the quicker the normal pressure will be reached and the more actuators that can be operated in parallel. Yes
Type Constant

The type of hydraulic pump being defined. Can be one of the following:

  1. EngineDriven: The output of the pump is directly linked to the speed of the engine it is connected to. Will also require that an Index is set to drive the pump.
  2. Electric: The output of the pump depends on the state of its associated electrical circuit. Will also require that a Circuit name is given to drive the pump otherwise you will get an error.
  3. Manual: The pump runs for one iteration only and then must be re-triggered.
  4. RATDriven: The pump output depends on whether the RAT is deployed the speed at which it is running.
    NOTE: Not currently available in the simulation.
  5. AirDriven: The pump is run by pressurized air flow.
  6. NOTE: Not currently available in the simulation.
Yes
Index Integer

The index of the engine to use (starting at 1) for engine driven pumps.

Note that this key is not required for manual pumps, and is only used when no engine Circuit has been supplied.

No
Circuit String

If the pump is electrically driven, this parameter specifies the name of the circuit that has been defined in the electrical system as the CIRCUIT_HYDRAULIC_PUMP which controls it.

Note that this key is not required for manual pumps, and is only used when no engine Index has been supplied. Also note that this is the preferred method for identifying a circuit, but if you have supplied a CircuitIndex, then you should not be supplying a circuit name. Finally, you should ensure that you only have one circuit per-pump as you cannot control multiple pumps off a single circuit.

Default value is "".

No
CircuitIndex Integer

If the pump is electrically driven, this parameter specifies the index of the circuit that has been defined in the electrical system as the CIRCUIT_HYDRAULIC_PUMP which controls it.

Note that this method for identifying a circuit is not reliable due to the way the Modular SimObject Merging process works and so you should be supplying a Circuit name instead.

Default value is 0.

No
Mode Constant

This parameter is used only when the pump Type is set to Electric. If this parameter is set to Auto, the pump will run (switch on an off) automatically to achieve the pressure set by the Pressure To Reach parameter. This is used on those aircraft that do not feature controls for their pumps. Use Default if you are not using an electric pump, or you do not wish to use Auto.

Default value is Default.

No
PressureThresholdPct Float

This parameter is used only when the pump Type is set to Electric, and the Mode is Auto. The parameter sets the percentage of normal pressure under which the pump will activate. Value is a Percent Over 100.

Default value is 0.9.

No
WearAndTearCollision String This parameter provides one or more references to a damage profile that has been defined in the [COLLISION_DAMAGE] section of the flight model CFG file. For more information, please see here: Note On Collision Damage / Wear And Tear No

 

It should be notes that pumps have an additional port connection for the pressure relief port. This connection is named Relief, and is used as follows:

Line.1 = Name:pumpToTankRelief #Inputs:PumpA.Relief #Outputs:Tank1

For more information, please see here: Note On Port Connections

 

 

PTU.N

The PTU (Power Transfer Unit) is a hydraulic pump that uses the fluid under pressure from one hydraulic circuit (A) to pressurise another hydraulic circuit (B) without exchanging fluid. In reality a PTU is composed of two parts: a Motor and a Pump. The motor of the PTU powers system A and also spins the pump, which powers system B, without the two systems exchanging any fluids. The image below is a schematic view of the complex PTU component and its 6 input/output ports:

Schematic Of A Hydraulic System PTUIt should be noted that PTU's can be reversible or non-reversible. A non-reversible PTU is one way only, meaning the system connected to the pump cannot provide pressure to the system connected to the motor. A reversible PTU means that any of the two systems connected can power the other, and when reversed, the motor behaves as a pump and the pump behaves as a motor. The PTU Port MotorRelief is only used for reversible PTUs.

 

A PTU is created as a hash map comprised of the following multiple key:value pairs, separated by the # symbol:

PTU.N = Name:<ptu_name> #NormalPressure:<pressure_psi> #NominalDisplacement:<displacement> #Reversible:<yes_no>

Note that you may have more than one PTU, so for each one you should increment the N index, starting from 1. A full example of a single PTU definition would be like this:

PTU.1 = Name:PTU #NormalPressure:3000 #NominalDisplacement:1200 #MotorLine:PumpsToActuatorsA #PumpLine:PumpsBToPTUActuatorsB_Valve #ReservoirLine:TankBToPumpElec_Valve
Key Value Description Required
Name String This is a name string that is used as an alias to identify the PTU. It will also be used as the reference index for SimVars, and note that the name is the only guaranteed reference to the component due to the fact that the Modular Aircraft Merging process may change the index. Yes
NormalPressure Float This parameter gives the pressure (in psi) that will be reached by the pump, and the pressure required by the motor to reach 100% spin speed (and thus 100% activity on the linked pump). Yes
NominalDisplacement Float This value indicates the amount of fluid (in millilitres / second) that the PTU can inject into the system to pressurise the lines. The higher the number the quicker the normal pressure (as defined by the NormalPressure parameter) will be reached. Yes
Reversible Constant

This indicates whether the PTU is reversible (Yes) or not (No). If the PTU is reversible, then fluid/pressure can be added from both connected systems.

Default value is No.

No

 

It should be notes that PTUs have additional port connections for the pressure relief ports, and for the motor and pump inputs (and outputs, if required). These connections are specified by the Line.N component that is going to link to it, and they are named as follows:

 

  • MotorInput - Required. This is the hydraulic fluid input port for the motor and should be connected to a reservoir.

 

  • MotorOutput - The connections from this port will depend on whether the PTU is reversible or not:
    • Non-Reversible - Optional. The motor cannot be a pump, so it will never provide hydraulic power, and as such the output port should be connected directly to a reservoir. If not specified then the system will create the connection automatically if required (see Automatic Generation of Lines for details).
    • Reversible - Required. The motor can also be a pump and provide hydraulic power to actuator components. This means that the port connections cannot be created automatically and instead should be setup in the same way as those from the PumpOutput port (see below for details)

 

  • MotorRelief - Optional. This is the hydraulic fluid relief port for the motor and would normally be connected to a reservoir. If the PTU is reversible and no line is specified, then the system will create the connection automatically if required (see Automatic Generation of Lines for details). This port is not used in non-reversible PTUs.

 

  • PumpInput - Required. This is the hydraulic fluid input port for the pump and should be connected to a reservoir.

 

  • PumpOutput - Required. This is the hydraulic fluid output port for the pump and should be connected to at least one actuator. In general it is rare that the output will be directly connected to a single actuator, however, and it is more normal that the output will be used to control several actuators connected through the use of various junction and valve components, all connected by various line components.

 

  • PumpRelief - Optional. This is the hydraulic fluid relief port for the pump and would normally be connected to a reservoir. If not included then the system will create the connection automatically if required (see Automatic Generation of Lines for details).

 

The line example below shows one of these ports being referenced:

Line.1 = Name:JunctionAToPTUMotor #Inputs:JunctionA #Outputs:PTU.MotorInput #Valves:ValvePTU

For more information, please see here: Note On Port Connections

 

 

Actuator.N

An actuator is a link between the hydraulic system and the other aircraft parts that require hydraulic pressure to function correctly. To determine whether the actuator can move, the pressure in the line must be superior to the Minimum Pressure parameter and an available fluid source must be found. Accumulators with enough contained fluid, or that are connected to a Pump.N/PTU.N with enough fluid displacement, or a combination of both, will work correctly. Each actuator is created as a hash map comprised of the following multiple key:value pairs, separated by the # symbol:

Actuator.N = Name:<actuator_name> #FluidVolume:<volume> #MinimalPressure:<min_psi> #Type:<type_string> #MasterCylinder:<true_false> #Redundancy:<redundancy_num> #WearAndTearCollision:<damage_profile_name1>,<damage_profile_name2>,<etc...>

Note that you may have more than one actuator, so for each one you should increment the N index, starting from 1. A full example of a single actuator definition would be like this:

Actuator.1 = Name:LandingGear #Fluidvolume:300 #Minimalpressure:1300 #Type:LandingGear
Key Value Description Required
Name String This is a name string that is used as an alias to identify the actuator. It will also be used as the reference index for SimVars, and note that the name is the only guaranteed reference to the component due to the fact that the Modular Aircraft Merging process may change the index. Yes
FluidVolume Float

This specifies the amount of fluid (in milliliters) that is used when moving the actuator and before being returned to the reservoir.

Yes
MinimalPressure Float

This specifies the minimum pressure (in psi) needed in the line for the actuator to be deemed healthy and able to move at 100% speed. Half of this pressure will result in halved speed, and if the pressure drops to below 10% of this value, the actuator cannot move at all.

Yes
Type String

This is used to link the hydraulic system to the actual plane control surfaces and hydraulic dependent systems. It can be one of the following:

Elevator LeftAilerons RightAilerons Rudder Spoilers Brakes Flaps LandingGear Hoist TailRotorPitch CyclicLeftRoll CyclicRightRoll CyclicPitch CyclicMixed RotorCollective LaunchBar AntiSkid TailHook

NOTE: Currently CyclicLeftRoll and CyclicRightRoll are not differentiated in the simulation. Both are always used, as the extension of one would be the retraction of the other.

Yes
MasterCylinder Boolean

If the actuator is linked to a master cylinder (usually in the case of brakes), then this parameter can be set to "True". When true, hydraulic pressure from a pump is not used to indicate whether the actuator can move, and pressure is directly linked to the force put into the command lever. Only the quantity of hydraulic fluid in the system/reservoir is necessary to calculate the force of the hydraulic pressure.

Default value is False.

No
Redundancy Integer This lets define how many actuators should be associated with this definition, permitting redundancy in the simulation. See the Note On Redundancy for more information. No
WearAndTearCollision String This parameter provides one or more references to a damage profile that has been defined in the [COLLISION_DAMAGE] section of the flight model CFG file. For more information, please see here: Note On Collision Damage / Wear And Tear No

 

 

Junction.N

This component can be used to connect various lines together. It is a very simple component created as a hash map comprised of the following multiple key:value pairs, separated by the # symbol:

Junction.N = Name:<line_name> #WearAndTearCollision:<damage_profile_name1>,<damage_profile_name2>,<etc...>

Note that you may have more than one junction, so for each one you should increment the N index, starting from 1. A full example of a single jungle definition would be like this:

Junction.1 = Name:JunctionA
Line.4 = Name:JunctionAToActuators #Inputs:JunctionA #Outputs:LandingGear,Elevator,Rudder,AileronsL
Key Value Description Required
Name String This is a name string that is used as an alias to identify the junction. It will also be used as the reference index for SimVars, and note that the name is the only guaranteed reference to the component due to the fact that the Modular Aircraft Merging process may change the index. Yes
WearAndTearCollision String This parameter provides one or more references to a damage profile that has been defined in the [COLLISION_DAMAGE] section of the flight model CFG file. For more information, please see here: Note On Collision Damage / Wear And Tear No

 

 

Line.N

The line component defines how all the other components within a hydraulic system are linked to one another. Within the simulation, a line will always be considered as having the same basic structure:

  • One or more Inputs
  • One or more Outputs
  • Zero, one, or more Valves
  • Zero or one Accumulators

 

The simulation will also process all the lines in a specific way when a flight is started:

  • All Inputs are merged
  • All valves are in placed in series
  • The accumulator is added
  • The line is split to reach all the outputs

 

The schematic below shows how a line "looks" to the simulation when compiled:

Be aware that having the lines behave this way can have the following effects:

  • A line closed by valves can still have its accumulator pressurize the output components.
  • Inputs to a closed line can be pressurized by other input components.

Some of these issues can be avoided by using junctions. For example if you want to have the accumulator before a valve on a line going to some output components, you can create two lines joined by a junction. The first has the input components, the accumulator and the junction (as the output). The second would then have the junction as the input, then the valves, and finally connect to the outputs.

 

Each line is created as a hash map comprised of the following multiple key:value pairs, separated by the # symbol:

Line.N = Name:<line_name> #Inputs:<input_1>,<input_2>,... #Outputs:<output_1>,<output_2>,... #Accumulator:<accumulator_name> #Valves:<valve_1>,<valve_2>,... #NonReturn:<bool>

Note that you may have more than one line, so for each one you should increment the N index, starting from 1. A full example of a single line definition would be like this:

Line.1 = Name:PumpsBToPTUActuatorsB_Valve #Inputs:PTU,Pump_ENG_2,Pump_ELEC_2 #Outputs:Flaps,ValveNonReturnBrakes,Spoilers,AileronsR,FlapsTrail

It should be noted that many of the lines that make up the hydraulic system are auto-generated. Please see here for more details:

 

Key Value Description Required
Name String This is a name string that is used as an alias to identify the line. It will also be used as the reference index for SimVars, and note that the name is the only guaranteed reference to the component due to the fact that the Modular Aircraft Merging process may change the index. Yes
Inputs

Array

(Strings)

This is a comma separated array that is used to add one or more components which input into the line being defined. Yes
Outputs Array (Strings) This is a comma separated array that is used to define the components that the line being defined will output to. Yes
Accumulator String The name of an accumulator that is connected to this line. Only one accumulator can be connected to any given line. No
Valves Array (Strings) This is a comma separated array that is used to define one or more valves that the line being defined will have. You may have multiple valves per line. No
NonReturn Boolean

This parameter specifies whether fluid can travel backward through the line (False) or if the fluid can only run from input to output (True).

Default value is False.

No

 

 

Accumulator.N

The accumulator line feature stores hydraulic fluid under pressure to be able to deliver at least a certain amount of fluid into the system in case of system failure. Accumulators work by having a pressurised gas within that permits it to push the fluid out of the accumulator when pressure drops. At low pressure, the gas is expanded and no fluid is inside, but as the pressure rises, the gas compresses and fluid is allowed in.

 

Each accumulator is created as a hash map comprised of the following multiple key:value pairs, separated by the # symbol:

Accumulator.N = Name:<accumulator_name> #NormalPressure:<pressure_psi> #InitialPressure:<pressure_psi> #Capacity:<litres>

Note that you may have more than one accumulator, so for each one you should increment the N index, starting from 1. A full example of a single accumulator definition would be like this:

Accumulator.1 = Name:AccumulatorBrakes #NormalPressure:3000 #InitialPressure:1080 #Capacity:3
Key Value Description Required
Name String This is a name string that is used as an alias to identify the accumulator. It will also be used as the reference index for SimVars, and note that the name is the only guaranteed reference to the component due to the fact that the Modular Aircraft Merging process may change the index. Yes
NormalPressure Float This is the pressure at which the accumulator will contain its capacity in fluid, in psi. Yes
InitialPressure Float This defines the initial gas pressure (in psi) within the accumulator, and the accumulator will not store fluid/pressure while the external line pressure is below this value. Yes
Capacity Float The capacity of fluid that the accumulator can hold (in litres) when at normal pressure. Yes

 

 

Valve.N

The valve line feature is used for hydraulic fluid flow control. Each valve is created as a hash map comprised of the following multiple key:value pairs, separated by the # symbol:

Valve.N = Name:<valve_name> #Type:<valve_type> #PressureThreshold:<threshold_psi> #Circuit:<circuit_name> #RestPosition:<value>

Note that you may have more than one valve defined in a system, so for each one you should increment the N index, starting from 1. A full example of a single valve definition would be like this:

Valve.1 = Name:ValveSO_A #Type:ShutOff #Circuit:C_HYDRAULIC
Key Value Description Required
Name String This is a name string that is used as an alias to identify the valve. It will also be used as the reference index for SimVars, and note that the name is the only guaranteed reference to the component due to the fact that the Modular Aircraft Merging process may change the index. Yes
Type String

The type of valve being defined. Can be one of the following:

  1. ShutOff: a shutoff valve is one that can close a line.
  2. PressureRelief: this valve type will open when the input line pressure is in excess of the limit pressure defined by the Pressure Threshold.
  3. PressureReducer: This valve type will adjust it's size to reduce the output line pressure so that it doesn't exceed the limit pressure defined by the Pressure Threshold.
  4. Priority: this valve type will close the associated line if the input pressure drops below the limit pressure defined by the Pressure Threshold. This permits you to keep fluid/pressure available for critical systems.
Yes
PressureThreshold Float

This is the pressure threshold value (in psi) that will be used for Pressure Relief, Pressure Reducer, and Priority valves. It defines defines the limit value that triggers the valve action.

Default value is 0.9.

No
Circuit String

If the valve is electrically driven, this parameter specifies the name of the circuit that has been defined in the electrical system as the CIRCUIT_HYDRAULIC_VALVE which controls it.

Note that this is the preferred method for identifying a circuit, but if you have supplied a CircuitIndex, then you should not be supplying a circuit name. Also note that it's one circuit per-valve as you cannot control multiple valves off a single circuit.

Default value is "".

No
CircuitIndex Integer

If the valve is electrically driven, this parameter specifies the index of the circuit that has been defined in the electrical system as the CIRCUIT_HYDRAULIC_VALVE which controls it.

Note that this method for identifying a circuit is only supposed to be used for backwards compatibility with legacy aircraft, and you should be supplying a Circuit name instead.

Default value is 0.

No
RestPosition Float

This will set the unpowered behavior of valves of the ShutOff Type. When unpowered, the valve will go to a position defined using a Percent Over 100 value, where 0 is fully closed, and 1 is fully open (all in-between values will be varying degrees of open). If this is set to -1 then the valve will be shut off at it's current position with no change.

Default value is 0.

No