Advertisement
sim1

SimCopter int_cmpl_quat

Jul 16th, 2015
308
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 9.63 KB | None | 0 0
  1. <!DOCTYPE airframe SYSTEM "airframe.dtd">
  2.  
  3.  
  4. <airframe name="Quadrotor LisaMX_2.1 pwm">
  5.  
  6.   <firmware name="rotorcraft">
  7.     <target name="ap" board="lisa_mx_2.1">
  8.     </target>
  9.  
  10.     <target name="nps" board="pc">
  11.       <subsystem name="fdm" type="jsbsim"/>
  12.       <subsystem name="radio_control" type="ppm"/>
  13.     </target>
  14.  
  15.     <subsystem name="radio_control" type="ppm"/>
  16.  
  17.     <subsystem name="motor_mixing"/>
  18.     <subsystem name="actuators"     type="pwm">
  19.       <define name="SERVO_HZ" value="400"/>
  20.     </subsystem>
  21.  
  22.     <subsystem name="telemetry"     type="transparent"/>
  23.     <subsystem name="imu"           type="lisa_mx_v2.1"/>
  24.     <subsystem name="gps"           type="ublox"/>
  25.     <subsystem name="stabilization" type="int_quat"/>
  26.     <subsystem name="ahrs"          type="int_cmpl_quat"/>
  27.     <subsystem name="ins" type="hff"/>
  28.  
  29.     <define name="KILL_ON_GROUND_DETECT" value="TRUE"/>
  30.    
  31.    
  32.     <configure name="FLASH_MODE" value="SWD"/>
  33.     <configure name="BMP_PORT" value="/dev/paparazzi/bmp-gdb"/>
  34.    
  35.   </firmware>
  36.  
  37.   <firmware name="test_progs">
  38.     <target name="test_sys_time_timer" board="lisa_mx_2.1"/>
  39.     <target name="test_adc" board="lisa_mx_2.1"/>
  40.     <target name="test_telemetry" board="lisa_mx_2.1"/>
  41.     <target name="test_baro_board" board="lisa_mx_2.1">
  42.     </target>
  43.     <target name="test_radio_control" board="lisa_mx_2.1">
  44.       <subsystem name="radio_control" type="ppm">
  45.       </subsystem>
  46.     </target>
  47.     <target name="test_imu" board="lisa_mx_2.1">
  48.       <subsystem name="imu" type="lisa_mx_v2.1"/>
  49.     </target>
  50.     <target name="test_ahrs" board="lisa_mx_2.1">
  51.       <subsystem name="imu" type="lisa_mx_v2.1"/>
  52.       <subsystem name="ahrs" type="int_cmpl_quat"/>
  53.     </target>
  54.   </firmware>
  55.  
  56.   <autopilot name="rotorcraft_autopilot.xml" freq="512"/>
  57.  
  58.   <modules main_freq="512">
  59.     <load name="adc_generic.xml">
  60.       <configure name="ADC_CHANNEL_GENERIC1" value="ADC_1"/>
  61.       <configure name="ADC_CHANNEL_GENERIC2" value="ADC_2"/>
  62.     </load>
  63.     <load name="gps_ubx_ucenter.xml"/>
  64.     <load name="geo_mag.xml"/>
  65.     <load name="air_data.xml"/>
  66.     <load name="send_imu_mag_current.xml"/>
  67.   </modules>
  68.  
  69.   <servos driver="Pwm">
  70.     <servo name="NE"   no="0" min="1000" neutral="1150" max="1900"/>
  71.     <servo name="SE"   no="1" min="1000" neutral="1150" max="1900"/>
  72.     <servo name="SW"   no="2" min="1000" neutral="1150" max="1900"/>
  73.     <servo name="NW"   no="3" min="1000" neutral="1150" max="1900"/>
  74.   </servos>
  75.  
  76.   <commands>
  77.     <axis name="ROLL"   failsafe_value="0"/>
  78.     <axis name="PITCH"  failsafe_value="0"/>
  79.     <axis name="YAW"    failsafe_value="0"/>
  80.     <axis name="THRUST" failsafe_value="0"/>
  81.   </commands>
  82.  
  83.   <section name="MIXING" prefix="MOTOR_MIXING_">
  84.     <define name="TRIM_ROLL" value="0"/>
  85.     <define name="TRIM_PITCH" value="0"/>
  86.     <define name="TRIM_YAW" value="0"/>
  87.     <define name="NB_MOTOR"    value="4"/>
  88.     <define name="SCALE"       value="256"/>
  89.     <!-- ne/sw turning CW, se/nw CCW -->
  90.     <define name="ROLL_COEF"   value="{ -256, -256,  256,  256 }"/>
  91.     <define name="PITCH_COEF"  value="{  256, -256, -256,  256 }"/>
  92.     <define name="YAW_COEF"    value="{ -256,  256, -256,  256 }"/>
  93.     <define name="THRUST_COEF" value="{  256,  256,  256,  256 }"/>
  94.   </section>
  95.  
  96.  
  97.   <command_laws>
  98.     <call fun="motor_mixing_run(autopilot_motors_on,FALSE,values)"/>
  99.     <set servo="NE"  value="motor_mixing.commands[0]"/>
  100.     <set servo="SE"  value="motor_mixing.commands[1]"/>
  101.     <set servo="SW"  value="motor_mixing.commands[2]"/>
  102.     <set servo="NW"  value="motor_mixing.commands[3]"/>
  103.   </command_laws>
  104.  
  105.   <section name="IMU" prefix="IMU_">
  106.     <!-- place your ACCEL calibration here -->
  107.     <define name="ACCEL_X_NEUTRAL" value="10"/>
  108.     <define name="ACCEL_Y_NEUTRAL" value="13"/>
  109.     <define name="ACCEL_Z_NEUTRAL" value="39"/>
  110.     <define name="ACCEL_X_SENS" value="4.89071409874" integer="16"/>
  111.     <define name="ACCEL_Y_SENS" value="4.908889704" integer="16"/>
  112.     <define name="ACCEL_Z_SENS" value="4.83206493402" integer="16"/>
  113.    
  114.    
  115.     <!-- place your MAG calibration here -->    
  116.     <define name="MAG_X_NEUTRAL" value="-4"/>
  117.     <define name="MAG_Y_NEUTRAL" value="85"/>
  118.     <define name="MAG_Z_NEUTRAL" value="-89"/>
  119.     <define name="MAG_X_SENS" value="3.84700028233" integer="16"/>
  120.     <define name="MAG_Y_SENS" value="3.94061075732" integer="16"/>
  121.     <define name="MAG_Z_SENS" value="4.55722362183" integer="16"/>
  122.    
  123.     <!-- Test am 08.07.2015 -->
  124.     <define name= "MAG_X_CURRENT_COEF" value="-0.00664329358469"/>
  125.     <define name= "MAG_Y_CURRENT_COEF" value="-0.00235994051271"/>
  126.     <define name= "MAG_Z_CURRENT_COEF" value="0.00958083178462"/>
  127.  
  128.     <define name="BODY_TO_IMU_PHI"   value="0." unit="deg"/>
  129.     <define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
  130.     <define name="BODY_TO_IMU_PSI"   value="0." unit="deg"/>
  131.   </section>
  132.  
  133.   <section name="AHRS" prefix="AHRS_">
  134.     <define name="H_X" value="0.376076"/>
  135.     <define name="H_Y" value="0.022276"/>
  136.     <define name="H_Z" value="0.926321"/>
  137.   </section>
  138.  
  139.   <section name="STABILIZATION_RATE" prefix="STABILIZATION_RATE_">
  140.     <!-- setpoints -->
  141.     <define name="SP_MAX_P" value="10000"/>
  142.     <define name="SP_MAX_Q" value="10000"/>
  143.     <define name="SP_MAX_R" value="10000"/>
  144.     <define name="DEADBAND_P" value="20"/>
  145.     <define name="DEADBAND_Q" value="20"/>
  146.     <define name="DEADBAND_R" value="200"/>
  147.     <define name="REF_TAU" value="4"/>
  148.  
  149.     <!-- feedback -->
  150.     <define name="GAIN_P" value="400"/>
  151.     <define name="GAIN_Q" value="400"/>
  152.     <define name="GAIN_R" value="350"/>
  153.  
  154.     <define name="IGAIN_P" value="75"/>
  155.     <define name="IGAIN_Q" value="75"/>
  156.     <define name="IGAIN_R" value="50"/>
  157.  
  158.     <!-- feedforward -->
  159.     <define name="DDGAIN_P" value="300"/>
  160.     <define name="DDGAIN_Q" value="300"/>
  161.     <define name="DDGAIN_R" value="300"/>
  162.   </section>
  163.  
  164.  
  165.   <section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
  166.     <!-- setpoints -->
  167.     <define name="SP_MAX_PHI"     value="45." unit="deg"/>
  168.     <define name="SP_MAX_THETA"   value="45." unit="deg"/>
  169.     <define name="SP_MAX_R"       value="90." unit="deg/s"/>
  170.     <define name="DEADBAND_A"     value="0"/>
  171.     <define name="DEADBAND_E"     value="0"/>
  172.     <define name="DEADBAND_R"     value="250"/>
  173.  
  174.     <!-- reference -->
  175.     <define name="REF_OMEGA_P"  value="400" unit="deg/s"/>
  176.     <define name="REF_ZETA_P"   value="0.85"/>
  177.     <define name="REF_MAX_P"    value="400." unit="deg/s"/>
  178.     <define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>
  179.  
  180.     <define name="REF_OMEGA_Q"  value="400" unit="deg/s"/>
  181.     <define name="REF_ZETA_Q"   value="0.85"/>
  182.     <define name="REF_MAX_Q"    value="400." unit="deg/s"/>
  183.     <define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>
  184.  
  185.     <define name="REF_OMEGA_R"  value="250" unit="deg/s"/>
  186.     <define name="REF_ZETA_R"   value="0.85"/>
  187.     <define name="REF_MAX_R"    value="180." unit="deg/s"/>
  188.     <define name="REF_MAX_RDOT" value="RadOfDeg(1800.)"/>
  189.  
  190.     <!-- feedback -->
  191.     <define name="PHI_PGAIN"  value="850"/>
  192.     <define name="PHI_DGAIN"  value="350"/>
  193.     <define name="PHI_IGAIN"  value="200"/>
  194.  
  195.     <define name="THETA_PGAIN"  value="850"/>
  196.     <define name="THETA_DGAIN"  value="350"/>
  197.     <define name="THETA_IGAIN"  value="200"/>
  198.  
  199.     <define name="PSI_PGAIN"  value="500"/>
  200.     <define name="PSI_DGAIN"  value="300"/>
  201.     <define name="PSI_IGAIN"  value="10"/>
  202.  
  203.     <!-- feedforward -->
  204.     <define name="PHI_DDGAIN"   value="540"/>
  205.     <define name="THETA_DDGAIN" value="540"/>
  206.     <define name="PSI_DDGAIN"   value="300"/>
  207.   </section>
  208.  
  209.   <section name="GUIDANCE_V" prefix="GUIDANCE_V_">
  210.     <define name="MIN_ERR_Z"   value="POS_BFP_OF_REAL(-10.)"/>
  211.     <define name="MAX_ERR_Z"   value="POS_BFP_OF_REAL( 10.)"/>
  212.     <define name="MIN_ERR_ZD"  value="SPEED_BFP_OF_REAL(-10.)"/>
  213.     <define name="MAX_ERR_ZD"  value="SPEED_BFP_OF_REAL( 10.)"/>
  214.     <define name="MAX_SUM_ERR" value="2000000"/>
  215.     <define name="HOVER_KP"    value="150"/>
  216.     <define name="HOVER_KD"    value="80"/>
  217.     <define name="HOVER_KI"    value="20"/>
  218.     <define name="ADAPT_NOISE_FACTOR" value="0.7"/>
  219.     <define name="ADAPT_THROTTLE_ENABLED" value="TRUE"/>
  220.   </section>
  221.  
  222.   <section name="GUIDANCE_H" prefix="GUIDANCE_H_">
  223.     <define name="MAX_BANK" value="20" unit="deg"/>
  224.     <define name="USE_SPEED_REF" value="TRUE"/>
  225.     <define name="REF_MAX_SPEED" value="2.0" unit="m/s"/>
  226.     <define name="PGAIN" value="50"/>
  227.     <define name="DGAIN" value="100"/>
  228.     <define name="AGAIN" value="70"/>
  229.     <define name="IGAIN" value="20"/>
  230.     <!--<define name="GUIDANCE_H_APPROX_FORCE_BY_THRUST" value="TRUE"/>-->
  231.   </section>
  232.  
  233.   <section name="SIMULATOR" prefix="NPS_">
  234.     <define name="ACTUATOR_NAMES"  value="{&quot;ne_motor&quot;, &quot;se_motor&quot;, &quot;sw_motor&quot;, &quot;nw_motor&quot;}"/>
  235.     <define name="JSBSIM_MODEL" value="&quot;simple_x_quad_ccw&quot;"/>
  236.     <define name="SENSORS_PARAMS" value="&quot;nps_sensors_params_default.h&quot;"/>
  237.     <define name="JS_AXIS_MODE" value="3"/>
  238.   </section>
  239.  
  240.   <section name="AUTOPILOT">
  241.     <define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
  242.     <define name="MODE_AUTO1"  value="AP_MODE_HOVER_Z_HOLD"/>
  243.     <define name="MODE_AUTO2"  value="AP_MODE_NAV"/>
  244.   </section>
  245.  
  246.   <section name="BAT">
  247.     <define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
  248.     <define name="CRITIC_BAT_LEVEL" value="9.6" unit="V"/>
  249.     <define name="LOW_BAT_LEVEL" value="10.1" unit="V"/>
  250.     <define name="MAX_BAT_LEVEL" value="12.4" unit="V"/>
  251.     <define name="MILLIAMP_AT_FULL_THROTTLE" value="54000"/>
  252.   </section>
  253.  
  254. </airframe>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement