Jon S. Berndt
2007-03-03 20:15:00 UTC
I've added actuator modeling to JSBSim. To use an actuator, stick an
actuator component in there where the control surface position is calculated
in the <flight_control> section.
The actuator component adds the following mechanisms:
hysteresis
first order lag
rate limiting
position limiting
position bias
malfunctions: fail-to-zero, fail-hardover, fail-stuck
Here is an example of an actuator for a rocket gimbal:
<actuator name="fcs/pitch-actuator-pos">
<input>fcs/pitch-actuator-cmd</input>
<lag> 60 </lag>
<bias> 0.0017 </bias>
<hysteresis_width> 0.0017 </hysteresis_width>
<rate_limit> 0.085 </rate_limit>
<clipto>
<min> -0.17 </min>
<max> 0.17 </max>
</clipto>
<output>propulsion/engine/pitch-angle-rad</output>
</actuator>
In this case, the actuator output is referenced by the property name,
"fcs/pitch-actuator-pos". The input is the value of the property,
"fcs/pitch-actuator-cmd". The input is lagged using the first order transfer
function [60/(s + 60)]. The final output has a bias of 0.0017 (since the
input is in radians, the output is also in radians). The bias simulates a
mounting misalignment. The hysteresis is 0.0017. The actuator is constrained
to move no faster than 0.085 rad/sec (again, since the input is in radians,
the rate limiting is in radians/sec). This equates to 5 degrees/sec. The
final position is limited at +/- 0.17 radians (10 deg). This component is
the last in the series, so the <output> is sent to the property
"propulsion/engine/pitch-angle-rad".
Jon
Jon S. Berndt
Development Coordinator
JSBSim Project
www.JSBSim.org
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
actuator component in there where the control surface position is calculated
in the <flight_control> section.
The actuator component adds the following mechanisms:
hysteresis
first order lag
rate limiting
position limiting
position bias
malfunctions: fail-to-zero, fail-hardover, fail-stuck
Here is an example of an actuator for a rocket gimbal:
<actuator name="fcs/pitch-actuator-pos">
<input>fcs/pitch-actuator-cmd</input>
<lag> 60 </lag>
<bias> 0.0017 </bias>
<hysteresis_width> 0.0017 </hysteresis_width>
<rate_limit> 0.085 </rate_limit>
<clipto>
<min> -0.17 </min>
<max> 0.17 </max>
</clipto>
<output>propulsion/engine/pitch-angle-rad</output>
</actuator>
In this case, the actuator output is referenced by the property name,
"fcs/pitch-actuator-pos". The input is the value of the property,
"fcs/pitch-actuator-cmd". The input is lagged using the first order transfer
function [60/(s + 60)]. The final output has a bias of 0.0017 (since the
input is in radians, the output is also in radians). The bias simulates a
mounting misalignment. The hysteresis is 0.0017. The actuator is constrained
to move no faster than 0.085 rad/sec (again, since the input is in radians,
the rate limiting is in radians/sec). This equates to 5 degrees/sec. The
final position is limited at +/- 0.17 radians (10 deg). This component is
the last in the series, so the <output> is sent to the property
"propulsion/engine/pitch-angle-rad".
Jon
Jon S. Berndt
Development Coordinator
JSBSim Project
www.JSBSim.org
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV