UNPKG

jsbsim.js

Version:

JSBSim flight dynamics model ported to JavaScript

157 lines (125 loc) 3.99 kB
<?xml version="1.0"?> <!-- $Id: Submarine_Scout_crew_ap.xml,v 1.1 2009/04/14 19:33:22 andgi Exp $ --> <!-- Submarine Scout airship flight model for JSBSim. Copyright (C) 2007 - 2009 Anders Gidenstam (anders(at)gidenstam.org) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA --> <system name="Submarine Scout Crew Autopilot"> <!-- INTERFACE PROPERTIES --> <property>ap/yaw-damper-active</property> <property>ap/pitch-setpoint-degrees</property> <property>ap/pitch-hold-active</property> <!-- SENSORS --> <!-- CHANNELS --> <channel name="Rudder"> <pid name="ap/yaw-damper-pid"> <input> aero/beta-deg </input> <kp> -2.000 </kp> <ki> 0.000 </ki> <kd> 0.000 </kd> <clipto> <min>-1.0</min> <max> 1.0</max> </clipto> </pid> <summer name="ap/heading-sum"> <input> ap/yaw-damper-pid </input> </summer> <switch name="ap/heading-switch"> <default value="0.0"/> <test logic="AND" value="ap/heading-sum"> ap/yaw-damper-active == 1 fcs/rudder-cmd-norm gt -0.1 fcs/rudder-cmd-norm lt 0.1 </test> <output>ap/rudder-cmd-norm</output> </switch> </channel> <channel name="Elevator"> <pure_gain name="ap/pitch-setpoint-rad"> <input> ap/pitch-setpoint-degrees </input> <gain> 0.017453 </gain> </pure_gain> <summer name="ap/pitch-error-rad"> <input> attitude/theta-rad</input> <input> -ap/pitch-setpoint-rad </input> </summer> <pid name="ap/elevator-pid"> <input> ap/pitch-error-rad </input> <kp> 5.00 </kp> <ki> 0.00 </ki> <kd> 0.01 </kd> <clipto> <min>-1.0</min> <max> 1.0</max> </clipto> </pid> <switch name="ap/elevator-switch"> <default value="0.0"/> <test logic="AND" value="ap/elevator-pid"> ap/pitch-hold-active == 1 </test> <output>ap/elevator-cmd-norm</output> </switch> </channel> <channel name="Static trim via ballonets"> <pid name="ap/ballonet-trim-pid"> <input> ap/pitch-error-rad </input> <kp> 40.00 </kp> <ki> 0.00 </ki> <kd> 0.00 </kd> <clipto> <min>-1.0</min> <max> 1.0</max> </clipto> </pid> <switch name="ap/ballonet-switch"> <!-- greater than 0 means trim towards nose heavy. --> <default value="0.0"/> <test logic="AND" value="ap/ballonet-trim-pid"> ap/pitch-hold-active == 1 </test> <output>ap/ballonet-trim-cmd-norm</output> </switch> <fcs_function name="ap/ballonet-valve-cmd-norm[0]"> <function> <product> <value>-1.0</value> <min> <value> 0.0 </value> <property>ap/ballonet-trim-cmd-norm</property> </min> </product> </function> </fcs_function> <fcs_function name="ap/ballonet-valve-cmd-norm[1]"> <function> <product> <value>1.0</value> <max> <value> 0.0 </value> <property>ap/ballonet-trim-cmd-norm</property> </max> </product> </function> </fcs_function> </channel> <channel name="Envelope pressure"> <fcs_function name="ap/gas-valve-cmd-norm"> <function> <value>0.0</value> </function> </fcs_function> </channel> </system>