[原]jsbsim 自动驾驶c310ap文件改写
<?xml version="1.0"?>
<!-- Author: 南水之源
Date: 1 January 2019
Function: A-320 autopilot test file Note: this file represents a test only of the new autopilot
setup in JSBSim. The same components used in the FCS
can also be used in the autopilot section. There are
some new FCS input and output identifiers directly
related to the autopilot: ap/elevator_cmd,
ap/aileron_cmd,
ap/attitude_hold,
ap/altitude_hold,
ap/heading_hold,
ap/altitude_setpoint,
ap/heading_setpoint -->
<autopilot name="A320 Autopilot"> <!-- INTERFACE PROPERTIES --> <property>ap/attitude_hold</property>
<property>ap/altitude_hold</property>
<property>ap/heading_hold</property>
<property>ap/active-waypoint</property>
<property>ap/altitude_setpoint</property>
<property>ap/heading_setpoint</property>
<property>ap/heading-setpoint-select</property>
<property>ap/aileron_cmd</property>
<property>ap/elevator_cmd</property>
<property>ap/airspeed_setpoint</property>
<property>ap/airspeed_hold</property>
<property>ap/throttle-cmd-norm</property> <!-- <property>attitude/sensor/phi-rad</property> --> <!-- SENSOR -->
<!--
<sensor name="attitude/sensor/phi-rad">
<input> attitude/phi-rad </input>
<lag> 0.5 </lag>
<noise variation="PERCENT"> 0.05 </noise>
<quantization name="attitude/sensor/quantized/phi-rad">
<bits> 12 </bits>
<min> -180 </min>
<max> 180 </max>
</quantization>
<bias> 0.001 </bias>
</sensor>
-->
<!--
=====================================================
ROLL CHANNEL
=====================================================
--> <!-- Wing leveler --> <channel name="AP roll wing leveler"> <switch name="fcs/wing-leveler-ap-on-off">
<default value="-1"/>
<test value="0">
ap/attitude_hold == 1
</test>
</switch> <pid name="fcs/roll-ap-error-pid">
<input>attitude/phi-rad</input>
<kp> ap/roll-pid-kp </kp>
<ki> ap/roll-pid-ki </ki>
<kd> ap/roll-pid-kd </kd>
<trigger> fcs/wing-leveler-ap-on-off </trigger>
</pid> <switch name="fcs/roll-ap-autoswitch">
<default value="0.0"/>
<test value="-fcs/roll-ap-error-pid">
ap/attitude_hold == 1
</test>
</switch> <pure_gain name="fcs/roll-ap-aileron-command-normalizer">
<input>fcs/roll-ap-autoswitch</input>
<gain>-1</gain>
</pure_gain> </channel> <!-- Heading hold --> <channel name="AP Roll Heading Hold"> <!-- The heading setpoint selector selects the heading
command (setpoint), which can either be set directly, or
calculated by the specification of waypoint. If the
heading setpoint selector is 0, then the heading setpoint
is used, if the selector is 1, then the heading calculated
from the waypoint is used. -->
<switch name="fcs/heading-setpoint-selector">
<default value="ap/heading_setpoint"/>
<test value="guidance/wp-heading-deg">
ap/heading-setpoint-select == 1
</test>
</switch> <pure_gain name="fcs/heading-true-degrees">
<input>attitude/heading-true-rad</input>
<gain>57.3</gain> <!-- convert to degrees -->
</pure_gain> <summer name="fcs/heading-error">
<input> -fcs/heading-true-degrees</input>
<input> fcs/heading-setpoint-selector </input>
</summer> <switch name="fcs/heading-error-bias-switch">
<default value="0.0"/>
<test value="360.0">
fcs/heading-error lt -180
</test>
<test value="-360.0">
fcs/heading-error gt 180
</test>
</switch> <summer name="fcs/heading-corrected">
<input> fcs/heading-error-bias-switch </input>
<input> fcs/heading-error </input>
<clipto>
<min>-30</min>
<max> 30</max>
</clipto>
</summer> <pure_gain name="fcs/heading-command">
<input> fcs/heading-corrected </input>
<gain> 0.01745 </gain>
</pure_gain> <lag_filter name="fcs/heading-roll-error-lag">
<input> fcs/heading-command </input>
<c1> 0.50 </c1>
</lag_filter> <summer name="fcs/heading-roll-error">
<input> fcs/heading-roll-error-lag </input>
<input> -attitude/phi-rad </input>
</summer> <switch name="fcs/heading-roll-error-switch">
<default value="0.0"/>
<test value="fcs/heading-roll-error">
ap/heading_hold == 1
</test>
</switch> <pid name="fcs/heading-pi-controller">
<input> fcs/heading-roll-error-switch </input>
<kp> 6.0 </kp>
<ki> 0.13 </ki>
<kd> 6.0 </kd>
</pid> <switch name="fcs/roll-command-selector">
<default value="0.0"/>
<test value="fcs/heading-pi-controller">
ap/heading_hold == 1
gear/unit[2]/WOW == 0
</test>
<test value="fcs/roll-ap-aileron-command-normalizer">
ap/attitude_hold == 1
gear/unit[2]/WOW == 0
</test>
<output>ap/aileron_cmd</output>
</switch> <switch name="fcs/roll-command-selector-steering">
<default value="0.0"/>
<test value="fcs/heading-pi-controller">
ap/heading_hold == 1
gear/unit/WOW == 1
</test>
<output>fcs/steer-cmd-norm</output>
</switch> </channel> <!--
=====================================================
PITCH CHANNEL
=====================================================
--> <!-- Altitude hold --> <!-- The Altitude Error component below computes the altitude error, subtracting
the desired altitude (altitude_setpoint) from the actual altitude above sea
level (_not_ Above Ground Level). This error signal is interpreted as an
hdot command (hdot is time rate of change of altitude, or rate of climb). As
such it is limited to a maximum absolute value of 12 fps here (720 fpm). The
maximum achievable climb rate depends on altitude. The commanded climb rate
is scheduled in the HDot Command component, below. For the given altitude
(left column in the table), the commanded maaximum climb rate divided by 100
is given in the right column.
--> <channel name="AP Pitch Altitude hold"> <!--
The difference between the desired altitude and the actual altitude
is determined, and limited to 100. The output from this component is
the desired climb rate in percent of maximum.
-->
<summer name="fcs/altitude-error">
<input> ap/altitude_setpoint </input>
<input> -position/h-sl-ft </input>
<clipto>
<min>-100</min>
<max> 100</max>
</clipto>
</summer> <!--
The desired climb rate is lagged slightly for stability.
为了稳定性,所需的爬升率略有滞后
-->
<lag_filter name="fcs/alt-error-lag">
<input> fcs/altitude-error </input>
<c1> 1 </c1>
</lag_filter> <!--
Dependent on altitude, the lagged (and limited) altitude error is multipled
by the gain determined from the function, below. The output from this
component is the absolute expected climb rate in feet/second. For example, if
the desired climb rate is 100 percent of maximum and the current altitude is
1000.0 ft., then the output from this component would be 24.5 ft. sec.
The equation representing climb rate for the C-310 is:
取决于高度,滞后(和有限)高度误差乘以从下面的函数确定的增益。 该组件的输出是以英尺/秒为单位的绝对预期爬升率。 例如,如果所需爬升率为最大值的100%且当前海拔高度为1000.0英尺,则此组件的输出将为24.5英尺秒。
表示C-310爬升率的公式为:
ROC(英尺/秒)= 25.7 - h / 833.33
ROC (ft/sec) = 25.7 - h/833.33
--> <fcs_function name="fcs/hdot-command">
<input>fcs/alt-error-lag</input>
<function>
<quotient>
<difference>
<value>25.70</value>
<quotient>
<property>position/h-sl-ft</property>
<value>833.33</value>
</quotient>
</difference>
<value>100.0</value>
</quotient>
</function>
</fcs_function> <!--
This component calculates the climb rate error, taking the difference between
the commanded climb rate (from the previous component) and actual climb rate
in ft./sec.
该组件计算爬升率误差,取命令爬升率(来自前一个组件)与实际爬升率之间的差值,单位为英尺/秒。
-->
<summer name="fcs/hdot-error">
<input>fcs/hdot-command</input>
<input>-velocities/h-dot-fps</input>
</summer> <!--
If the altitude hold autopilot command is ON, then this switch component will
pass through the climb rate error (from the previous component). Otherwise, it
will pass zero.
如果高度保持自动驾驶仪命令为ON,则此开关组件将通过爬升率误差(来自前一个组件)。 否则,它将传递零
-->
<switch name="fcs/ap-alt-hold-switch">
<default value="0.0"/>
<test value="fcs/hdot-error">
ap/altitude_hold == 1
</test>
</switch> <!--
The windup trigger below assumes the elevator will travel +/-23 degrees. The
elevator, however, does not travel symmetrically. This will need to be addressed
in a fix to the deadband component.
-->
<deadband name="fcs/windup-trigger">
<input> fcs/elevator-pos-deg </input>
<width>46.0</width>
</deadband> <!--
The integrator integrates the hdot error (when the switch component passes that
signal through above when the altitude hold is selected ON). In the situation
where the elevator becomes saturated, the integrator ceases to integrate. The
windup protection is indicated below, with the windup-trigger property being
the trigger to halt integration. When the windup trigger is non-zero (when the
elevator position falls outside the range +/- 23 degrees - a deadband of 46
degrees) then the deadband passes a non-zero value, triggering the anti-windup
logic in the integrator.
-->
<integrator name="fcs/integral">
<input> fcs/ap-alt-hold-switch </input>
<trigger> fcs/windup-trigger </trigger>
<c1> 0.001 </c1>
</integrator> <!--
The proportional component multiplies the error signal by a constant, providing
the proportional control action of this PI altitude hold controller.
-->
<pure_gain name="fcs/proportional">
<input> fcs/ap-alt-hold-switch </input>
<gain> 0.03 </gain>
</pure_gain> <!--
The control summer component sums the proprortional and integral control
signals. It clips the sum to +/- 1.0.
-->
<summer name="fcs/control-summer">
<input> fcs/integral </input>
<input> fcs/proportional </input>
<clipto>
<min>-1.0</min>
<max> 1.0</max>
</clipto>
</summer> <!--
The elevator component flips the sign on the output of the control summer
above and sets the ap/elevator_command property.
-->
<pure_gain name="fcs/elevator">
<input> fcs/control-summer </input>
<gain> -1.0 </gain>
<output> ap/elevator_cmd </output>
</pure_gain> </channel> </autopilot>
A320ap
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="http://www.jsbsim.org/JSBSimScript.xsl"?>
<runscript xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://jsbsim.sf.net/JSBSimScript.xsd"
name="A320 takeoff run">
<description>This run is for testing the 747 model.</description>
<use aircraft="A320" initialize="reset00"/>
<run start="0.0" end="200" dt="0.0083333"> <!-- Initialize with brakes on -->
<property> simulation/notify-time-trigger </property>
<property value="1"> simulation/run_id </property>
<property value="1"> fcs/left-brake-cmd-norm </property>
<property value="1"> fcs/right-brake-cmd-norm </property>
<property value="1"> fcs/center-brake-cmd-norm </property>
<property value="3.49"> guidance/specified-heading-rad </property>
<property value="1"> guidance/heading-selector-switch </property> <event name="engine start">
<description>Start the engine and set roll control to heading hold</description>
<condition> sim-time-sec >= 0.25 </condition>
<set name="fcs/throttle-cmd-norm" value="1.0" action="FG_RAMP" tc ="0.5"/>
<set name="fcs/mixture-cmd-norm" value="1.00" action="FG_RAMP" tc ="0.5"/>
<set name="ap/roll-attitude-mode" value="1"/>
<set name="ap/autopilot-roll-on" value="1"/>
<notify>
<property>simulation/run_id</property>
<property>ap/hdg-roll-err-c1</property>
</notify>
</event> <event name="Begin roll">
<description>Release brakes and get rolling with flaps at 10 degrees. </description>
<condition> sim-time-sec >= 2.0 </condition>
<set name="fcs/left-brake-cmd-norm" value="0"/>
<set name="fcs/right-brake-cmd-norm" value="0"/>
<set name="fcs/center-brake-cmd-norm" value="0"/>
<set name="fcs/flap-cmd-norm" value="0.33"/>
</event> <event name="Rotate">
<description>Set Autopilot for 400 ft and rotate at 49 keas. </description>
<notify/>
<condition> velocities/vc-kts >= 49 </condition>
<set name="ap/altitude_setpoint" value="400.0"/>
<set name="ap/altitude_hold" value="1"/>
<set name="ap/roll-attitude-mode" value="1"/>
</event> <event name="Set autopilot for 6000 ft.">
<description>Set Autopilot for 6000 ft after a five second delay. </description>
<notify/>
<condition> velocities/vc-kts >= 49 </condition>
<delay>5.0</delay>
<set name="ap/altitude_setpoint" value="6000.0"/>
</event> <event name="Adjust throttle/flaps">
<description>Remove flaps at 50 ft and set heading to 100; acquire heading.</description>
<notify/>
<condition>
position/h-agl-ft >= 2000
</condition>
<set name="fcs/flap-cmd-norm" value="0"/>
<set name="guidance/specified-heading-rad" value="1.75"/>
<set name="ap/roll-attitude-mode" value="1"/>
</event> <event name="Time Notify" persistent="true">
<description>Output message at 1 minute intervals</description>
<notify>
<property>velocities/vc-kts</property>
<property>position/h-agl-ft</property>
<property>position/lat-geod-deg</property>
<property>position/geod-alt-ft</property>
</notify>
<condition> sim-time-sec >= simulation/notify-time-trigger </condition>
<set name="simulation/notify-time-trigger" value="60" type="FG_DELTA"/>
</event> </run>
</runscript>
A320.xml 执行脚本文件
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="http://jsbsim.sourceforge.net/JSBSim.xsl"?>
<fdm_config name="A320-200" version="2.0" release="BETA"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> <fileheader>
<author> Unknown </author>
<filecreationdate> 2003-01-01 </filecreationdate>
<version> Version </version>
<description> Airbus A320 </description>
</fileheader> <metrics>
<wingarea unit="FT2"> 1317 </wingarea>
<wingspan unit="FT"> 111.3 </wingspan>
<chord unit="FT"> 14.1 </chord>
<htailarea unit="FT2"> 333.6 </htailarea>
<htailarm unit="FT"> 44.4 </htailarm>
<vtailarea unit="FT2"> 231.3 </vtailarea>
<vtailarm unit="FT"> 0 </vtailarm>
<location name="AERORP" unit="IN">
<x> 672 </x>
<y> 0 </y>
<z> 20 </z>
</location>
<location name="EYEPOINT" unit="IN">
<x> 80 </x>
<y> -30 </y>
<z> 70 </z>
</location>
<location name="VRP" unit="IN">
<x> 661.1 </x>
<y> 0 </y>
<z> -37 </z>
</location>
</metrics> <mass_balance>
<ixx unit="SLUG*FT2"> 942877 </ixx>
<iyy unit="SLUG*FT2"> 2.78892e+06 </iyy>
<izz unit="SLUG*FT2"> 3.59757e+06 </izz>
<ixy unit="SLUG*FT2"> -0 </ixy>
<ixz unit="SLUG*FT2"> -10000 </ixz>
<iyz unit="SLUG*FT2"> -0 </iyz>
<emptywt unit="LBS"> 111000 </emptywt>
<location name="CG" unit="IN">
<x> 672 </x>
<y> 0 </y>
<z> -40 </z>
</location>
</mass_balance> <ground_reactions>
<contact type="BOGEY" name="NOSE_LG">
<location unit="IN">
<x> 196.1 </x>
<y> 0 </y>
<z> -138.2 </z>
</location>
<static_friction> 0.5 </static_friction>
<dynamic_friction> 0.8 </dynamic_friction>
<rolling_friction> 0.02 </rolling_friction>
<spring_coeff unit="LBS/FT"> 100000 </spring_coeff>
<damping_coeff unit="LBS/FT/SEC"> 5000 </damping_coeff>
<max_steer unit="DEG"> 5 </max_steer>
<brake_group> NONE </brake_group>
<retractable>1</retractable>
</contact>
<contact type="BOGEY" name="LEFT_MLG">
<location unit="IN">
<x> 688.7 </x>
<y> -144.4 </y>
<z> -142 </z>
</location>
<static_friction> 0.5 </static_friction>
<dynamic_friction> 0.8 </dynamic_friction>
<rolling_friction> 0.02 </rolling_friction>
<spring_coeff unit="LBS/FT"> 150000 </spring_coeff>
<damping_coeff unit="LBS/FT/SEC"> 12000 </damping_coeff>
<max_steer unit="DEG"> 0.0 </max_steer>
<brake_group> LEFT </brake_group>
<retractable>1</retractable>
</contact>
<contact type="BOGEY" name="RIGHT_MLG">
<location unit="IN">
<x> 688.7 </x>
<y> 144.4 </y>
<z> -142 </z>
</location>
<static_friction> 0.5 </static_friction>
<dynamic_friction> 0.8 </dynamic_friction>
<rolling_friction> 0.02 </rolling_friction>
<spring_coeff unit="LBS/FT"> 150000 </spring_coeff>
<damping_coeff unit="LBS/FT/SEC"> 12000 </damping_coeff>
<max_steer unit="DEG"> 0.0 </max_steer>
<brake_group> RIGHT </brake_group>
<retractable>1</retractable>
</contact>
<contact type="BOGEY" name="TAIL_1">
<location unit="IN">
<x> 987 </x>
<y> 0 </y>
<z> -55.7 </z>
</location>
<static_friction> 0.2 </static_friction>
<dynamic_friction> 0.2 </dynamic_friction>
<rolling_friction> 0.02 </rolling_friction>
<spring_coeff unit="LBS/FT"> 1.5e+06 </spring_coeff>
<damping_coeff unit="LBS/FT/SEC"> 60000 </damping_coeff>
<max_steer unit="DEG"> 0.0 </max_steer>
<brake_group> NONE </brake_group>
<retractable>0</retractable>
</contact>
<contact type="BOGEY" name="ENG_1">
<location unit="IN">
<x> 515.4 </x>
<y> 226.2 </y>
<z> -104.3 </z>
</location>
<static_friction> 0.2 </static_friction>
<dynamic_friction> 0.2 </dynamic_friction>
<rolling_friction> 0.02 </rolling_friction>
<spring_coeff unit="LBS/FT"> 1.5e+06 </spring_coeff>
<damping_coeff unit="LBS/FT/SEC"> 60000 </damping_coeff>
<max_steer unit="DEG"> 0.0 </max_steer>
<brake_group> NONE </brake_group>
<retractable>0</retractable>
</contact>
<contact type="BOGEY" name="ENG_2">
<location unit="IN">
<x> 515.4 </x>
<y> -226.2 </y>
<z> -104.3 </z>
</location>
<static_friction> 0.2 </static_friction>
<dynamic_friction> 0.2 </dynamic_friction>
<rolling_friction> 0.02 </rolling_friction>
<spring_coeff unit="LBS/FT"> 1.5e+06 </spring_coeff>
<damping_coeff unit="LBS/FT/SEC"> 60000 </damping_coeff>
<max_steer unit="DEG"> 0.0 </max_steer>
<brake_group> NONE </brake_group>
<retractable>0</retractable>
</contact>
<contact type="BOGEY" name="WING_TIP_1">
<location unit="IN">
<x> 846.1 </x>
<y> -667.6 </y>
<z> -37.4 </z>
</location>
<static_friction> 0.2 </static_friction>
<dynamic_friction> 0.2 </dynamic_friction>
<rolling_friction> 0.02 </rolling_friction>
<spring_coeff unit="LBS/FT"> 1.5e+06 </spring_coeff>
<damping_coeff unit="LBS/FT/SEC"> 60000 </damping_coeff>
<max_steer unit="DEG"> 0.0 </max_steer>
<brake_group> NONE </brake_group>
<retractable>0</retractable>
</contact>
<contact type="BOGEY" name="WING_TIP_2">
<location unit="IN">
<x> 846.1 </x>
<y> 667.6 </y>
<z> -37.4 </z>
</location>
<static_friction> 0.2 </static_friction>
<dynamic_friction> 0.2 </dynamic_friction>
<rolling_friction> 0.02 </rolling_friction>
<spring_coeff unit="LBS/FT"> 1.5e+06 </spring_coeff>
<damping_coeff unit="LBS/FT/SEC"> 60000 </damping_coeff>
<max_steer unit="DEG"> 0.0 </max_steer>
<brake_group> NONE </brake_group>
<retractable>0</retractable>
</contact>
<contact type="BOGEY" name="NOSE_TIP">
<location unit="IN">
<x> 0 </x>
<y> 0 </y>
<z> 0 </z>
</location>
<static_friction> 0.2 </static_friction>
<dynamic_friction> 0.2 </dynamic_friction>
<rolling_friction> 0.02 </rolling_friction>
<spring_coeff unit="LBS/FT"> 1.5e+06 </spring_coeff>
<damping_coeff unit="LBS/FT/SEC"> 60000 </damping_coeff>
<max_steer unit="DEG"> 0.0 </max_steer>
<brake_group> NONE </brake_group>
<retractable>0</retractable>
</contact>
<contact type="BOGEY" name="NOSE_TOP">
<location unit="IN">
<x> 131.6 </x>
<y> 0 </y>
<z> 92.6 </z>
</location>
<static_friction> 0.2 </static_friction>
<dynamic_friction> 0.2 </dynamic_friction>
<rolling_friction> 0.02 </rolling_friction>
<spring_coeff unit="LBS/FT"> 1.5e+06 </spring_coeff>
<damping_coeff unit="LBS/FT/SEC"> 60000 </damping_coeff>
<max_steer unit="DEG"> 0.0 </max_steer>
<brake_group> NONE </brake_group>
<retractable>0</retractable>
</contact>
<contact type="BOGEY" name="TAIL_TOP">
<location unit="IN">
<x> 1382.6 </x>
<y> 0 </y>
<z> 340 </z>
</location>
<static_friction> 0.2 </static_friction>
<dynamic_friction> 0.2 </dynamic_friction>
<rolling_friction> 0.02 </rolling_friction>
<spring_coeff unit="LBS/FT"> 1.5e+06 </spring_coeff>
<damping_coeff unit="LBS/FT/SEC"> 60000 </damping_coeff>
<max_steer unit="DEG"> 0.0 </max_steer>
<brake_group> NONE </brake_group>
<retractable>0</retractable>
</contact>
<contact type="BOGEY" name="TAIL_TIP">
<location unit="IN">
<x> 1476.7 </x>
<y> 0 </y>
<z> 58.9 </z>
</location>
<static_friction> 0.2 </static_friction>
<dynamic_friction> 0.2 </dynamic_friction>
<rolling_friction> 0.02 </rolling_friction>
<spring_coeff unit="LBS/FT"> 1.5e+06 </spring_coeff>
<damping_coeff unit="LBS/FT/SEC"> 60000 </damping_coeff>
<max_steer unit="DEG"> 0.0 </max_steer>
<brake_group> NONE </brake_group>
<retractable>0</retractable>
</contact>
</ground_reactions>
<propulsion>
<engine file="CFM56_5">
<location unit="IN">
<x> 540 </x>
<y> -200 </y>
<z> -45 </z>
</location>
<orient unit="DEG">
<roll> 0.0 </roll>
<pitch> 0 </pitch>
<yaw> 0 </yaw>
</orient>
<feed>0</feed>
<thruster file="direct">
<location unit="IN">
<x> 670 </x>
<y> -200 </y>
<z> -45 </z>
</location>
<orient unit="DEG">
<roll> 0.0 </roll>
<pitch> 0.0 </pitch>
<yaw> 0.0 </yaw>
</orient>
</thruster>
</engine>
<engine file="CFM56_5">
<location unit="IN">
<x> 540 </x>
<y> 200 </y>
<z> -45 </z>
</location>
<orient unit="DEG">
<roll> 0.0 </roll>
<pitch> 0 </pitch>
<yaw> 0 </yaw>
</orient>
<feed>1</feed>
<thruster file="direct">
<location unit="IN">
<x> 670 </x>
<y> 200 </y>
<z> -45 </z>
</location>
<orient unit="DEG">
<roll> 0.0 </roll>
<pitch> 0.0 </pitch>
<yaw> 0.0 </yaw>
</orient>
</thruster>
</engine>
<tank type="FUEL"> <!-- Tank number 0 -->
<location unit="IN">
<x> 600 </x>
<y> -90 </y>
<z> -20 </z>
</location>
<capacity unit="LBS"> 23940 </capacity>
<contents unit="LBS"> 15000 </contents>
</tank>
<tank type="FUEL"> <!-- Tank number 1 -->
<location unit="IN">
<x> 600 </x>
<y> 90 </y>
<z> -20 </z>
</location>
<capacity unit="LBS"> 23940 </capacity>
<contents unit="LBS"> 15000 </contents>
</tank>
</propulsion> <system name="Navigation">
<channel name="Heading">
<sensor name="navigation/actual-heading-rad">
<input> attitude/heading-true-rad </input>
<!-- <lag> 2500 </lag> -->
<!-- <noise variation="PERCENT"> .02 </noise> -->
<bias> 0.003 </bias>
</sensor>
</channel>
</system> <system name="Mixture control">
<!--
E = 1.3 * Mixture * P_std / P_amb Mixture = P_amb / P_std
-->
<channel name="Automatic Mixture Control">
<fcs_function name="systems/mixture-pos-norm">
<function>
<table>
<independentVar lookup="row">atmosphere/P-psf</independentVar>
<tableData>
0 0.0
2117 1.0
</tableData>
</table>
</function>
<output>fcs/mixture-cmd-norm</output>
</fcs_function>
</channel>
</system> <system file="GNCUtilities"/> <system file="Autopilot">
<property value="0.523"> guidance/roll-angle-limit </property>
<property value="0.174"> guidance/roll-rate-limit </property>
</system> <autopilot file="c172ap"/> <flight_control name="FCS: A320">
<channel name="Pitch">
<summer name="Pitch Trim Sum">
<input>ap/elevator_cmd</input>
<input>fcs/elevator-cmd-norm</input>
<input>fcs/pitch-trim-cmd-norm</input>
<clipto>
<min>-1</min>
<max>1</max>
</clipto>
</summer> <aerosurface_scale name="Elevator Control">
<input>fcs/pitch-trim-sum</input>
<gain>0.018</gain>
<range>
<min>-25</min>
<max>35</max>
</range>
<output>fcs/elevator-pos-rad</output>
</aerosurface_scale> <aerosurface_scale name="Elevator position normalized">
<input>fcs/elevator-pos-deg</input>
<domain>
<min>-25</min>
<max>35</max>
</domain>
<range>
<min>-1</min>
<max>1</max>
</range>
<output>fcs/elevator-pos-norm</output>
</aerosurface_scale>
</channel>
<channel name="Roll">
<summer name="Roll Trim Sum">
<input>ap/roll-cmd-norm-output</input>
<input>fcs/aileron-cmd-norm</input>
<input>fcs/roll-trim-cmd-norm</input>
<clipto>
<min>-1</min>
<max>1</max>
</clipto>
</summer> <aerosurface_scale name="Left Aileron Control">
<input>fcs/roll-trim-sum</input>
<gain>0.02</gain>
<range>
<min>-20</min>
<max>15</max>
</range>
<output>fcs/left-aileron-pos-rad</output>
</aerosurface_scale> <aerosurface_scale name="Right Aileron Control">
<input>-fcs/roll-trim-sum</input>
<gain>0.02</gain>
<range>
<min>-20</min>
<max>15</max>
</range>
<output>fcs/right-aileron-pos-rad</output>
</aerosurface_scale> <aerosurface_scale name="Left Aileron position normalized">
<input>fcs/left-aileron-pos-deg</input>
<domain>
<min>-20</min>
<max>15</max>
</domain>
<range>
<min>-0.75</min>
<max>1</max>
</range>
<output>fcs/left-aileron-pos-norm</output>
</aerosurface_scale> <aerosurface_scale name="Right Aileron position normalized">
<input>fcs/right-aileron-pos-deg</input>
<domain>
<min>-20</min>
<max>15</max>
</domain>
<range>
<min>-0.75</min>
<max>1</max>
</range>
<output>fcs/right-aileron-pos-norm</output>
</aerosurface_scale>
</channel>
<channel name="Yaw">
<pure_gain name="Yaw Damper Rate">
<input>velocities/r-rad_sec</input>
<gain>2</gain>
</pure_gain> <pure_gain name="Yaw Damper Beta">
<input>aero/beta-rad</input>
<gain>-5</gain>
</pure_gain> <summer name="Yaw Trim Sum">
<input>fcs/rudder-cmd-norm</input>
<input>fcs/yaw-trim-cmd-norm</input>
<clipto>
<min>-1</min>
<max>1</max>
</clipto>
</summer> <summer name="Rudder Sum">
<input>fcs/yaw-trim-sum</input>
<input>fcs/yaw-damper-rate</input>
<input>fcs/yaw-damper-beta</input>
<clipto>
<min>-1</min>
<max>1</max>
</clipto>
</summer> <aerosurface_scale name="Rudder Control">
<input>fcs/rudder-sum</input>
<gain>0.01745</gain>
<range>
<min>-25</min>
<max>25</max>
</range>
<output>fcs/rudder-pos-rad</output>
</aerosurface_scale> <aerosurface_scale name="Rudder position normalized">
<input>fcs/rudder-pos-deg</input>
<domain>
<min>-25</min>
<max>25</max>
</domain>
<range>
<min>-1</min>
<max>1</max>
</range>
<output>fcs/rudder-pos-norm</output>
</aerosurface_scale>
</channel>
<channel name="Flaps">
<kinematic name="Flaps Control">
<input>fcs/flap-cmd-norm</input>
<traverse>
<setting>
<position>0</position>
<time>0</time>
</setting>
<setting>
<position>1</position>
<time>4</time>
</setting>
<setting>
<position>2</position>
<time>4</time>
</setting>
<setting>
<position>5</position>
<time>3</time>
</setting>
<setting>
<position>10</position>
<time>3</time>
</setting>
<setting>
<position>15</position>
<time>3</time>
</setting>
<setting>
<position>25</position>
<time>3</time>
</setting>
<setting>
<position>30</position>
<time>2</time>
</setting>
<setting>
<position>40</position>
<time>2</time>
</setting>
</traverse>
<output>fcs/flap-pos-deg</output>
</kinematic> <aerosurface_scale name="Flap position normalized">
<input>fcs/flap-pos-deg</input>
<domain>
<min>0</min>
<max>40</max>
</domain>
<range>
<min>0</min>
<max>1</max>
</range>
<output>fcs/flap-pos-norm</output>
</aerosurface_scale>
</channel>
<channel name="Landing Gear">
<kinematic name="Gear Control">
<input>gear/gear-cmd-norm</input>
<traverse>
<setting>
<position>0</position>
<time>0</time>
</setting>
<setting>
<position>1</position>
<time>5</time>
</setting>
</traverse>
<output>gear/gear-pos-norm</output>
</kinematic>
</channel>
<channel name="Speedbrake">
<kinematic name="Speedbrake">
<input>fcs/speedbrake-cmd-norm</input>
<traverse>
<setting>
<position>0</position>
<time>0</time>
</setting>
<setting>
<position>1</position>
<time>2</time>
</setting>
</traverse>
<output>fcs/speedbrake-pos-norm</output>
</kinematic>
</channel>
</flight_control>
<aerodynamics> <axis name="DRAG">
<function name="aero/coefficient/CDo">
<description>Drag_at_zero_lift</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<value>0.016</value>
</product>
</function>
<function name="aero/coefficient/CDalpha">
<description>Drag_due_to_alpha</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<table>
<independentVar lookup="row">aero/alpha-rad</independentVar>
<independentVar lookup="column">fcs/flap-pos-deg</independentVar>
<tableData>
0.0000 1.0000 25.0000 40.0000
-0.0873 0.0041 0.0000 0.0005 0.0014
-0.0698 0.0013 0.0004 0.0025 0.0041
-0.0524 0.0001 0.0023 0.0059 0.0084
-0.0349 0.0003 0.0057 0.0108 0.0141
-0.0175 0.0020 0.0105 0.0172 0.0212
0.0000 0.0052 0.0168 0.0251 0.0399
0.0175 0.0099 0.0248 0.0346 0.0502
0.0349 0.0162 0.0342 0.0457 0.0621
0.0524 0.0240 0.0452 0.0583 0.0755
0.0698 0.0334 0.0577 0.0724 0.0904
0.0873 0.0442 0.0718 0.0881 0.1068
0.1047 0.0566 0.0874 0.1053 0.1248
0.1222 0.0706 0.1045 0.1240 0.1443
0.1396 0.0860 0.1232 0.1442 0.1654
0.1571 0.0962 0.1353 0.1573 0.1790
0.1745 0.1069 0.1479 0.1708 0.1930
0.1920 0.1180 0.1610 0.1849 0.2075
0.2094 0.1298 0.1746 0.1995 0.2226
0.2269 0.1424 0.1892 0.2151 0.2386
0.2443 0.1565 0.2054 0.2323 0.2564
0.2618 0.1727 0.2240 0.2521 0.2767
0.2793 0.1782 0.2302 0.2587 0.2835
0.2967 0.1716 0.2227 0.2507 0.2753
0.3142 0.1618 0.2115 0.2388 0.2631
0.3316 0.1475 0.1951 0.2214 0.2451
0.3491 0.1097 0.1512 0.1744 0.1966
</tableData>
</table>
</product>
</function>
<function name="aero/coefficient/CDde">
<description>Drag_due_to_elevator_Deflection</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>fcs/mag-elevator-pos-rad</property>
<value>0.0500</value>
</product>
</function>
<function name="aero/coefficient/CDbeta">
<description>Drag_due_to_sideslip</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>aero/mag-beta-rad</property>
<value>0.2000</value>
</product>
</function>
<function name="aero/coefficient/CDgear">
<description>Drag_due_to_landing_gear</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>gear/gear-pos-norm</property>
<value>0.0400</value>
</product>
</function>
<function name="aero/coefficient/CDspeedbrake">
<description>Drag_due_to_speedbrake</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>fcs/speedbrake-pos-norm</property>
<value>0.0400</value>
</product>
</function>
</axis> <axis name="SIDE">
<function name="aero/coefficient/CYb">
<description>Side_force_due_to_beta</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<table>
<independentVar>aero/beta-rad</independentVar>
<tableData>
-0.3500 0.5000
0.0000 0.0000
0.3500 -0.5000
</tableData>
</table>
</product>
</function>
</axis> <axis name="LIFT">
<function name="aero/coefficient/CLalpha">
<description>Lift_due_to_alpha</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<table>
<independentVar lookup="row">aero/alpha-rad</independentVar>
<independentVar lookup="column">fcs/flap-pos-deg</independentVar>
<tableData>
0.0000 1.0000 9.0000 10.0000 40.0000
-0.0900 -0.2200 -0.2200 -0.1200 -0.1200 0.3200
0.0000 0.2500 0.2500 0.3500 0.3500 0.7500
0.0900 0.7300 0.7300 0.8300 0.8300 1.2300
0.1000 0.8300 0.8300 0.9300 0.9300 1.3300
0.1200 0.9200 0.9200 1.0200 1.0200 1.4200
0.1400 1.0200 1.0200 1.1200 1.1200 1.5200
0.1600 1.0800 1.0800 1.1800 1.1800 1.5800
0.1700 1.1300 1.1300 1.2300 1.2300 1.6300
0.1900 1.1900 1.1900 1.2900 1.2900 1.6900
0.2100 1.2500 1.2500 1.3500 1.3500 1.7700
0.2400 1.3500 1.3700 1.4700 1.4800 1.9300
0.2600 1.4400 1.4700 1.5700 1.6200 2.1200
0.2800 1.4700 1.5100 1.6100 1.7800 2.4000
0.3000 1.5000 1.5600 1.6600 1.9000 2.3000
0.3200 1.4700 1.6100 1.6000 1.7000 2.0300
0.3400 1.3500 1.5000 1.4100 1.5000 1.5300
0.3600 1.1500 1.2000 1.2000 1.2000 1.2000
</tableData>
</table>
</product>
</function>
<function name="aero/coefficient/CLDe">
<description>Lift_due_to_Elevator_Deflection</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>fcs/elevator-pos-rad</property>
<value>0.1930</value>
</product>
</function>
</axis> <axis name="ROLL">
<function name="aero/coefficient/Clb">
<description>Roll_moment_due_to_beta</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<table>
<independentVar>aero/beta-rad</independentVar>
<tableData>
-0.3500 0.0100
0.0000 0.0000
0.3500 -0.0100
</tableData>
</table>
</product>
</function>
<function name="aero/coefficient/Clp">
<description>Roll_moment_due_to_roll_rate_(roll_damping)</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>aero/bi2vel</property>
<property>velocities/p-aero-rad_sec</property>
<value>-0.5000</value>
</product>
</function>
<function name="aero/coefficient/Clr">
<description>Roll_moment_due_to_yaw_rate</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>aero/bi2vel</property>
<property>velocities/r-aero-rad_sec</property>
<value>0.0050</value>
</product>
</function>
<function name="aero/coefficient/Clda">
<description>Roll_moment_due_to_aileron</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>fcs/left-aileron-pos-rad</property>
<value>0.2000</value>
</product>
</function>
<function name="aero/coefficient/Cldr">
<description>Roll_moment_due_to_rudder</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>fcs/rudder-pos-rad</property>
<value>0.0050</value>
</product>
</function>
</axis> <axis name="PITCH">
<function name="aero/coefficient/Cmo">
<description>Pitching_moment_at_zero_alpha</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/cbarw-ft</property>
<table>
<independentVar>fcs/flap-pos-deg</independentVar>
<tableData>
0.0000 0.0400
40.0000 -0.1000
</tableData>
</table>
</product>
</function>
<function name="aero/coefficient/Cmalpha">
<description>Pitch_moment_due_to_alpha</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/cbarw-ft</property>
<property>aero/alpha-rad</property>
<value>-4.0000</value>
</product>
</function>
<function name="aero/coefficient/CmDe">
<description>Pitch_moment_due_to_elevator_Deflection</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/cbarw-ft</property>
<property>fcs/elevator-pos-rad</property>
<value>-1.5000</value>
</product>
</function>
<function name="aero/coefficient/Cmq">
<description>Pitch_moment_due_to_pitch_rate</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/cbarw-ft</property>
<property>aero/ci2vel</property>
<property>velocities/q-aero-rad_sec</property>
<value>-10.0000</value>
</product>
</function>
<function name="aero/coefficient/Cmadot">
<description>Pitch_moment_due_to_alpha_rate</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/cbarw-ft</property>
<property>aero/ci2vel</property>
<property>aero/alphadot-rad_sec</property>
<value>-12.0000</value>
</product>
</function>
</axis> <axis name="YAW">
<function name="aero/coefficient/Cnr">
<description>Yaw_moment_due_to_yaw_rate</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>aero/bi2vel</property>
<property>velocities/r-aero-rad_sec</property>
<value>-0.0400</value>
</product>
</function>
<function name="aero/coefficient/Cnb">
<description>Yaw_moment_due_to_beta</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>aero/beta-rad</property>
<value>0.2000</value>
</product>
</function>
<function name="aero/coefficient/Cndr">
<description>Yaw_moment_due_to_rudder</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>fcs/rudder-pos-rad</property>
<value>-0.5000</value>
</product>
</function>
</axis>
</aerodynamics>
<input port="8019">
</input> <output name="127.0.0.1" port="8018" type="otVREarthSim" rate="30">
<property> position/long-gc-deg </property>
<property> position/lat-gc-deg </property>
<property> position/h-sl-ft </property>
<property> attitude/roll-rad </property>
<property> attitude/pitch-rad </property>
<property> attitude/heading-true-rad </property> <property> velocities/vc-kts </property>
<property> velocities/h-dot-fps </property>
<property> attitude/theta-deg </property>
<property> attitude/phi-deg </property> <property> velocities/v-north-fps </property>
<property> velocities/v-east-fps </property>
<property> velocities/v-down-fps </property> <property> fcs/throttle-pos-norm </property>
<property> fcs/elevator-pos-deg </property>
<property> fcs/left-aileron-pos-deg </property>
<property> fcs/right-aileron-pos-deg </property>
<property> fcs/rudder-pos-deg </property> <property> inertia/weight-lbs </property>
<property> inertia/empty-weight-lbs </property>
<property> propulsion/total-fuel-lbs </property> <property> forces/fbx-prop-lbs </property>
<property> forces/fby-prop-lbs </property>
<property> forces/fbz-prop-lbs </property> <property> velocities/x-fps </property>
<property> velocities/y-fps </property>
<property> velocities/z-fps </property> <property> accelerations/xdot-ft_sec2 </property>
<property> accelerations/ydot-ft_sec2 </property>
<property> accelerations/zdot-ft_sec2 </property> <property>fcs/left-gear-pos-deg</property>
<property>fcs/right-gear-pos-deg</property>
<property>fcs/head-gear-pos-deg</property>
<property>fcs/left-flap-pos-deg</property>
<property>fcs/right-flap-pos-deg</property>
<property>fcs/left-elevator-deg</property>
<property>fcs/right-elevator-deg</property>
<property>fcs/left-rudder-deg</property>
<property>fcs/right-rudder-deg</property> </output>
</fdm_config>
A320.xml 飞机文件
<?xml version="1.0"?>
<initialize name="reset00">
<!--
This file sets up the aircraft to start off
from the runway in preparation for takeoff.
-->
<ubody unit="FT/SEC"> 0.0 </ubody>
<vbody unit="FT/SEC"> 0.0 </vbody>
<wbody unit="FT/SEC"> 0.0 </wbody>
<longitude unit="DEG"> -95.163839 </longitude>
<latitude unit="DEG"> 29.593978 </latitude>
<phi unit="DEG"> 0.0 </phi>
<theta unit="DEG"> 0.0 </theta>
<psi unit="DEG"> 180 </psi>
<altitude unit="FT"> 8.5 </altitude>
<elevation unit="FT"> 182.43 </elevation>
</initialize>
reset00.xml 飞机初始化文件
[原]jsbsim 自动驾驶c310ap文件改写的更多相关文章
- [原]JSBSim 自动驾驶(浅出)
jsbsim的脚本文件分为几大类: 1.系统脚本: systems 包含通用飞机各部分功能模块组件以及自动飞行控件:Autopilot.xml 和 自动飞行的算法控件:GNCUtilities.x ...
- 百亿级小文件存储,JuiceFS 在自动驾驶行业的最佳实践
自动驾驶是最近几年的热门领域,专注于自动驾驶技术的创业公司.新造车企业.传统车厂都在这个领域投入了大量的资源,推动着 L4.L5 级别自动驾驶体验能尽早进入我们的日常生活. 自动驾驶技术实现的核心环节 ...
- [转]自动驾驶平台Apollo 2.5环境搭建
原文地址:https://blog.csdn.net/jinzhuojun/article/details/80210180,转载主要方便随时查阅,如有版权要求,请及时联系. 我们知道,自动驾驶在学界 ...
- 基于TensorRT 3的自动驾驶快速INT8推理
基于TensorRT 3的自动驾驶快速INT8推理 Fast INT8 Inference for Autonomous Vehicles with TensorRT 3 自主驾驶需要安全性,需要一种 ...
- 基于DRL和TORCS的自动驾驶仿真系统——之环境配置
基于DRL和TORCS的自动驾驶仿真系统 --之环境配置 玩TORCS和DRL差不多有一整年了,开始的摸爬滚打都是不断碰壁过来的,近来在参与CMU的DRL10703课程学习和翻译志愿者工作,也将自己以 ...
- Shell 命令行,写一个自动整理 ~/Downloads/ 文件夹下文件的脚本
Shell 命令行,写一个自动整理 ~/Downloads/ 文件夹下文件的脚本 在 mac 或者 linux 系统中,我们的浏览器或者其他下载软件下载的文件全部都下载再 ~/Downloads/ 文 ...
- julia应用于自动驾驶汽车、机器人、3D 打印、精准医疗、增强现实、基因组学、能源交易、机器学习、金融风控和太空任务设计等多个领域
编程界的新宠 Julia 发布 1.0 正式版本,多种优势集于一身2018-08-14 14:14 公司Julia 的累积下载次数超过 200 万,已被应用于自动驾驶汽车.机器人.3D 打印.精准医疗 ...
- Apollo自动驾驶框架试玩
2017年7月5日,百度举行了AI开发者大会,在会上发布了Apollo项目,并进行了演示,该项目在Github上已经能够被访问.出于一个程序员的好奇,昨天试玩了一把,确实不错. http://apol ...
- zz“老司机”成长之路:自动驾驶车辆调试实践
随着自动驾驶技术的发展,一辆新车从被改装到上路需要经过的调试流程也有了许多提升.今天,我希望结合自己之前的调车经验来跟大家分享一下我们是如何将系统的各个模块逐步上车.调试.集成,进而将一辆“新手”车培 ...
随机推荐
- python逻辑运算符规则
逻辑运算符:or and not 优先级:()>not>and>or 举例子: Print(2>1 and 1<4 or 2<3 and 9>6 or 2&l ...
- Django之中间件&信号&缓存&form上传
中间件 1.中间件是什么? 中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出.因为改变的是全局,所以需要谨慎实用, ...
- git 远程删除文件
git rm -r --cached a/2.txt //删除a目录下的2.txt文件 删除a目录 git rm -r --cached a git commit -m "删除a目录下的2. ...
- python终端打印带颜色的print
原理 实现过程: 终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关. 转义序列是以ESC开头,即用\033来完成(ESC的ASCII码用十进制表示 ...
- 2018年工作终总结&规划
收获满满的2018 收获总结: 1. 换了家有地区牌照的公司,薪酬涨了那么一点点,但是工作压力.强度下降不少,这样有更多时间来学习新知识. 2. 跟同事一起接了维护后台管理系统的私活,每个月多了一点点 ...
- 【UML】NO.51.EBook.5.UML.1.011-【UML 大战需求分析】- 时序图(Timing Diagram)
1.0.0 Summary Tittle:[UML]NO.51.EBook.1.UML.1.011-[UML 大战需求分析]- 时序图(Timing Diagram) Style:DesignPatt ...
- 数据库连接池 maxActive,maxIdle,maxWait参数
maxActive 连接池支持的最大连接数,这里取值为20,表示同时最多有20个数据库连接.设 0 为没有限制.maxIdle 连接池中最多可空闲maxIdle个连接 ,这里取值为20,表示即使没有数 ...
- JavaScript 事件之event.preventDefault()与event.stopPropagation()简单介绍
event.preventDefault()用法介绍: 该方法将通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作). 例如,如果 type 属性是 “submit”,在事件传播的任 ...
- Python之包管理
1.setup.py from distutils.core import setup setup(name='Distutils', version='1.0', description='Pyth ...
- 利用js和JQuery定义一个导航条菜单
利用js和JQuery定义一个导航条 效果: 一.html代码: <div class="Maintenance"> <div class="Title ...