From c860d2e31117c58ba67413918d24b7e20ea60a19 Mon Sep 17 00:00:00 2001 From: user_gly Date: Wed, 2 Jul 2025 16:17:51 +0800 Subject: [PATCH] change control parameters --- CMakeLists.txt | 2 +- missions/alpha/alpha.moos | 10 +- missions/alpha/alpha_shoreside.moos | 10 +- src/pAUV150/Controler/Controler.cpp | 864 +++++++--------------- src/pAUV150/Controler/Controler.h | 431 +++++------ src/pAUV150/Controler/Controler_data.cpp | 52 +- src/pAUV150/Controler/Controler_private.h | 4 +- src/pAUV150/Controler/Controler_types.h | 4 +- src/pAUV150/Controler/rtGetNaN.cpp | 4 +- src/pAUV150/Controler/rtGetNaN.h | 4 +- src/pAUV150/Controler/rt_nonfinite.cpp | 4 +- src/pAUV150/Controler/rt_nonfinite.h | 4 +- src/pAUV150/Controler/rtmodel.h | 44 -- src/pAUV150/Controler/rtwtypes.h | 4 +- 14 files changed, 510 insertions(+), 931 deletions(-) delete mode 100644 src/pAUV150/Controler/rtmodel.h diff --git a/CMakeLists.txt b/CMakeLists.txt index e93c78d..68ce141 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,7 +10,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.0) PROJECT( IVP_EXTEND ) set (CMAKE_CXX_STANDARD 11) -# set (MOOSIVP_SOURCE_TREE_BASE "/home/zjk/software/moos-ivp-main") +set (MOOSIVP_SOURCE_TREE_BASE "/home/jima/moos-ivp") #======================================================================= # Set the output directories for the binary and library files diff --git a/missions/alpha/alpha.moos b/missions/alpha/alpha.moos index c7e3422..3d7f09e 100644 --- a/missions/alpha/alpha.moos +++ b/missions/alpha/alpha.moos @@ -165,8 +165,8 @@ ProcessConfig = pNodeReporter AppTick = 2 CommsTick = 2 - platform_length = 1.5 // meters - //platform_beam = 0.2 // meters + platform_length = 2 // meters + platform_beam = 2 // meters platform_type = auv platform_color = dodger_blue //vessel_type = auv @@ -179,7 +179,9 @@ ProcessConfig = pAUV150 //server_host = 10.127.0.18 //server_host = 127.0.0.1 - server_host = 192.168.137.1 + //server_host = 192.168.137.1 + //server_host = 192.168.220.1 + server_host = 192.168.43.131 LatOrigin = 43.825300 LongOrigin = -70.330400 @@ -213,4 +215,4 @@ ProcessConfig = pLogger WildCardOmitPattern = *_STATUS WildCardOmitPattern = DB_VARSUMMARY WildCardOmitPattern = DB_RWSUMMARY -} \ No newline at end of file +} diff --git a/missions/alpha/alpha_shoreside.moos b/missions/alpha/alpha_shoreside.moos index e34d6b6..b7682c2 100644 --- a/missions/alpha/alpha_shoreside.moos +++ b/missions/alpha/alpha_shoreside.moos @@ -28,15 +28,15 @@ ProcessConfig = pShare CommsTick = 10 input = route = localhost:8085 - output = src_name=APPCAST_REQ, route=192.168.137.148:8082 + output = src_name=APPCAST_REQ, route=192.168.0.101:8082 //输出有两个端口,8081和8082,选择用1或者2 //发送消息看以下格式 //output = src_name=Y, dest_name=B, route=host:port - output = src_name=uMission_action_cmd,route=192.168.137.148:8082 - output = src_name=DEPLOY, route=192.168.137.148:8082 - output = src_name=RETURN, route=192.168.137.148:8082 - output = src_name=MOOS_MANUAL_OVERIDE, route=192.168.137.148:8082 + output = src_name=uMission_action_cmd,route=192.168.0.101:8082 + output = src_name=DEPLOY, route=192.168.0.101:8082 + output = src_name=RETURN, route=192.168.0.101:8082 + output = src_name=MOOS_MANUAL_OVERIDE, route=192.168.0.101:8082 } //------------------------------------------ diff --git a/src/pAUV150/Controler/Controler.cpp b/src/pAUV150/Controler/Controler.cpp index 4580e04..6f8de9d 100644 --- a/src/pAUV150/Controler/Controler.cpp +++ b/src/pAUV150/Controler/Controler.cpp @@ -7,9 +7,9 @@ // // Code generated for Simulink model 'Controler'. // -// Model version : 5.77 +// Model version : 5.95 // Simulink Coder version : 24.2 (R2024b) 21-Jun-2024 -// C/C++ source code generated on : Thu Jun 26 20:56:30 2025 +// C/C++ source code generated on : Tue Jul 1 15:26:11 2025 // // Target selection: ert.tlc // Embedded hardware selection: Intel->x86-64 (Linux 64) @@ -27,365 +27,27 @@ void Controler::step() { real_T mod_error; - real_T rtb_Delay1; - real_T rtb_Delay1_d; - real_T rtb_Delay5; - real_T rtb_Delay6; - real_T rtb_Delay6_c; - real_T rtb_Delay7; - real_T rtb_Delay7_c; real_T rtb_FilterCoefficient; - real_T rtb_FilterCoefficient_g; - real_T rtb_FilterCoefficient_l; - real_T rtb_Filter_k; + real_T rtb_FilterCoefficient_a; + real_T rtb_FilterCoefficient_lc; + real_T rtb_Filter_b; real_T rtb_IntegralGain; - real_T rtb_Integrator_d; + real_T rtb_Integrator_l; + real_T rtb_Integrator_p; + real_T rtb_Sum; real_T rtb_Switch; real_T rtb_depth_error; - real_T rtb_pitch_error; - real_T rtb_pos_i1; - real_T rtb_pos_i1_k; - real_T rtb_pos_i2; - real_T rtb_pos_i2_l; - real_T rtb_pos_i3; - real_T rtb_ref_i1; - real_T rtb_ref_i1_p; - real_T rtb_ref_i2; - real_T rtb_ref_i2_d; - real_T rtb_ref_i3; int8_T rtb_Switch1; int8_T tmp; - int8_T tmp_0; boolean_T rtb_RelationalOperator; boolean_T rtb_fixforDTpropagationissue; // Outputs for Atomic SubSystem: '/Controler' - // Delay: '/pos_i-1' - rtb_pos_i1 = rtDW.pos_i1_DSTATE; - - // Delay: '/pos_i-2' - rtb_pos_i2 = rtDW.pos_i2_DSTATE; - - // Delay: '/pos_i-3' - rtb_pos_i3 = rtDW.pos_i3_DSTATE; - - // Delay: '/ref_i-1' - rtb_ref_i1 = rtDW.ref_i1_DSTATE; - - // Delay: '/ref_i-2' - rtb_ref_i2 = rtDW.ref_i2_DSTATE; - - // Delay: '/ref_i-3' - rtb_ref_i3 = rtDW.ref_i3_DSTATE; - - // Delay: '/Delay1' - rtb_Delay1 = rtDW.Delay1_DSTATE; - - // Delay: '/Delay6' - rtb_Delay6 = rtDW.Delay6_DSTATE; - - // Delay: '/Delay7' - rtb_Delay7 = rtDW.Delay7_DSTATE; - - // Delay: '/Delay5' - rtb_Delay5 = rtDW.Delay5_DSTATE; - - // Sum: '/Sum1' incorporates: - // Delay: '/Delay1' - // Delay: '/Delay10' - // Delay: '/Delay2' - // Delay: '/Delay3' - // Delay: '/Delay4' - // Delay: '/Delay5' - // Delay: '/Delay6' - // Delay: '/Delay7' - // Delay: '/Delay8' - // Delay: '/Delay9' - // Delay: '/pos_i-1' - // Delay: '/pos_i-2' - // Delay: '/pos_i-3' - // Delay: '/pos_i-4' - // Delay: '/ref_i-1' - // Delay: '/ref_i-2' - // Delay: '/ref_i-3' - // Delay: '/ref_i-4' - // Gain: '/Gain1' - // Gain: '/Gain10' - // Gain: '/Gain11' - // Gain: '/Gain2' - // Gain: '/Gain3' - // Gain: '/Gain4' - // Gain: '/Gain5' - // Gain: '/Gain6' - // Gain: '/Gain7' - // Gain: '/Gain9' - // Gain: '/Compensation Gain' - // Gain: '/Gain' - // Gain: '/Gain1' - // Gain: '/Gain10' - // Gain: '/Gain11' - // Gain: '/Gain12' - // Gain: '/Gain13' - // Gain: '/Gain14' - // Gain: '/Gain15' - // Gain: '/Gain16' - // Gain: '/Gain17' - // Gain: '/Gain18' - // Gain: '/Gain19' - // Gain: '/Gain2' - // Gain: '/Gain3' - // Gain: '/Gain4' - // Gain: '/Gain5' - // Gain: '/Gain6' - // Gain: '/Gain7' - // Gain: '/Gain8' - // Gain: '/Gain9' - // Inport: '/depth_cmd' - // Inport: '/z' - // Sum: '/Add2' - // Sum: '/Add' - // Sum: '/Add' - // Sum: '/Add1' - // Sum: '/predict_error_(i+2)' - - rtb_depth_error = rtU.z - ((rtU.depth_cmd - ((((((((((((((((((((rtU.z - - 4.96546716 * rtDW.Delay1_DSTATE) - -9.86401854 * rtDW.Delay6_DSTATE) - - 9.7928555 * rtDW.Delay7_DSTATE) - -4.85552402 * rtDW.Delay5_DSTATE) - - 0.9612199 * rtDW.Delay8_DSTATE) - -0.0031985800000000021 * - rtDW.Delay10_DSTATE) - 0.0095957400000000071 * rtDW.Delay9_DSTATE) - - -0.0031985800000000073 * rtDW.Delay4_DSTATE) - -0.0095957399999999984 * - rtDW.Delay3_DSTATE) - 0.0063971600000000007 * rtDW.Delay2_DSTATE) + - (((((((((4.96546716 * rtU.z + -9.86401854 * rtDW.pos_i1_DSTATE) + 9.7928555 * - rtDW.pos_i2_DSTATE) + -4.85552402 * rtDW.pos_i3_DSTATE) + 0.9612199 * - rtDW.pos_i4_DSTATE) + 0.0063971600000000007 * rtU.depth_cmd) + - -0.0095957399999999984 * rtDW.ref_i1_DSTATE) + -0.0031985800000000073 * - rtDW.ref_i2_DSTATE) + 0.0095957400000000071 * rtDW.ref_i3_DSTATE) + - -0.0031985800000000021 * rtDW.ref_i4_DSTATE)) * 4.96546716 + -9.86401854 * - rtU.z) + 9.7928555 * rtDW.pos_i1_DSTATE) + -4.85552402 * rtDW.pos_i2_DSTATE) - + 0.9612199 * rtDW.pos_i3_DSTATE) + 0.0063971600000000007 * rtU.depth_cmd) + - -0.0095957399999999984 * rtU.depth_cmd) + -0.0031985800000000073 * - rtDW.ref_i1_DSTATE) + 0.0095957400000000071 * rtDW.ref_i2_DSTATE) + - -0.0031985800000000021 * rtDW.ref_i3_DSTATE)) * rtP.gamma_depth + - rtU.depth_cmd); - - // Gain: '/Filter Coefficient' incorporates: - // DiscreteIntegrator: '/Filter' - // Gain: '/Derivative Gain' - // Sum: '/SumD' - - rtb_FilterCoefficient = (rtP.pid_depth.D * rtb_depth_error - - rtDW.Filter_DSTATE) * rtP.pid_depth.N; - - // Sum: '/Sum' incorporates: - // DiscreteIntegrator: '/Integrator' - // Gain: '/Proportional Gain' - - rtb_Filter_k = (rtP.pid_depth.P * rtb_depth_error + rtDW.Integrator_DSTATE) + - rtb_FilterCoefficient; - - // Saturate: '/Saturation' - if (rtb_Filter_k > 30.0) { - rtb_pitch_error = 30.0; - } else if (rtb_Filter_k < -30.0) { - rtb_pitch_error = -30.0; - } else { - rtb_pitch_error = rtb_Filter_k; - } - - // Sum: '/Sum2' incorporates: - // Inport: '/theta' - // Saturate: '/Saturation' - - rtb_pitch_error -= rtU.theta; - - // Gain: '/Filter Coefficient' incorporates: - // DiscreteIntegrator: '/Filter' - // Gain: '/Derivative Gain' - // Sum: '/SumD' - - rtb_FilterCoefficient_g = (rtP.pid_pitch.D * rtb_pitch_error - - rtDW.Filter_DSTATE_l) * rtP.pid_pitch.N; - - // Sum: '/Sum' incorporates: - // DiscreteIntegrator: '/Integrator' - // Gain: '/Proportional Gain' - - rtb_Integrator_d = (rtP.pid_pitch.P * rtb_pitch_error + - rtDW.Integrator_DSTATE_f) + rtb_FilterCoefficient_g; - - // Saturate: '/Saturation' incorporates: - // DeadZone: '/DeadZone' - - if (rtb_Integrator_d > 35.0) { - // Outport: '/DirectLeftRudderServoAngleCmd' - rtY.DirectLeftRudderServoAngleCmd = 35.0; - rtb_Integrator_d -= 35.0; - } else { - if (rtb_Integrator_d < -35.0) { - // Outport: '/DirectLeftRudderServoAngleCmd' - rtY.DirectLeftRudderServoAngleCmd = -35.0; - } else { - // Outport: '/DirectLeftRudderServoAngleCmd' - rtY.DirectLeftRudderServoAngleCmd = rtb_Integrator_d; - } - - if (rtb_Integrator_d >= -35.0) { - rtb_Integrator_d = 0.0; - } else { - rtb_Integrator_d -= -35.0; - } - } - - // End of Saturate: '/Saturation' - - // RelationalOperator: '/Relational Operator' incorporates: - // Constant: '/Clamping_zero' - - rtb_RelationalOperator = (rtb_Integrator_d != 0.0); - - // RelationalOperator: '/fix for DT propagation issue' incorporates: - // Constant: '/Clamping_zero' - - rtb_fixforDTpropagationissue = (rtb_Integrator_d > 0.0); - - // Gain: '/Integral Gain' - rtb_Integrator_d = rtP.pid_pitch.I * rtb_pitch_error; - - // Switch: '/Switch1' incorporates: - // Constant: '/Constant' - // Constant: '/Constant2' - - if (rtb_fixforDTpropagationissue) { - tmp = 1; - } else { - tmp = -1; - } - - // Switch: '/Switch2' incorporates: - // Constant: '/Clamping_zero' - // Constant: '/Constant3' - // Constant: '/Constant4' - // RelationalOperator: '/fix for DT propagation issue1' - - if (rtb_Integrator_d > 0.0) { - tmp_0 = 1; - } else { - tmp_0 = -1; - } - - // Switch: '/Switch' incorporates: - // Constant: '/Constant1' - // Logic: '/AND3' - // RelationalOperator: '/Equal1' - // Switch: '/Switch1' - // Switch: '/Switch2' - - if (rtb_RelationalOperator && (tmp == tmp_0)) { - rtb_Switch = 0.0; - } else { - rtb_Switch = rtb_Integrator_d; - } - - // End of Switch: '/Switch' - - // DeadZone: '/DeadZone' - if (rtb_Filter_k > 30.0) { - rtb_Filter_k -= 30.0; - } else if (rtb_Filter_k >= -30.0) { - rtb_Filter_k = 0.0; - } else { - rtb_Filter_k -= -30.0; - } - - // End of DeadZone: '/DeadZone' - - // Gain: '/Integral Gain' - rtb_Integrator_d = rtP.pid_depth.I * rtb_depth_error; - - // Delay: '/pos_i-1' - rtb_pos_i1_k = rtDW.pos_i1_DSTATE_f; - - // Delay: '/pos_i-2' - rtb_pos_i2_l = rtDW.pos_i2_DSTATE_n; - - // Delay: '/ref_i-1' - rtb_ref_i1_p = rtDW.ref_i1_DSTATE_c; - - // Delay: '/ref_i-2' - rtb_ref_i2_d = rtDW.ref_i2_DSTATE_m; - - // Delay: '/Delay1' - rtb_Delay1_d = rtDW.Delay1_DSTATE_o; - - // Delay: '/Delay6' - rtb_Delay6_c = rtDW.Delay6_DSTATE_k; - - // Delay: '/Delay7' - rtb_Delay7_c = rtDW.Delay7_DSTATE_o; - - // MATLAB Function: '/MATLAB Function' incorporates: - // Delay: '/Delay1' - // Delay: '/Delay2' - // Delay: '/Delay3' - // Delay: '/Delay4' - // Delay: '/Delay5' - // Delay: '/Delay6' - // Delay: '/Delay7' - // Delay: '/Delay9' - // Delay: '/pos_i-1' - // Delay: '/pos_i-2' - // Delay: '/pos_i-3' - // Delay: '/ref_i-1' - // Delay: '/ref_i-2' - // Delay: '/ref_i-3' - // Gain: '/Gain1' - // Gain: '/Gain10' - // Gain: '/Gain11' - // Gain: '/Gain2' - // Gain: '/Gain3' - // Gain: '/Gain4' - // Gain: '/Gain7' - // Gain: '/Gain9' - // Gain: '/Compensation Gain' - // Gain: '/Gain' - // Gain: '/Gain1' - // Gain: '/Gain10' - // Gain: '/Gain11' - // Gain: '/Gain12' - // Gain: '/Gain14' - // Gain: '/Gain15' - // Gain: '/Gain16' - // Gain: '/Gain2' - // Gain: '/Gain3' - // Gain: '/Gain4' - // Gain: '/Gain5' - // Gain: '/Gain6' - // Gain: '/Gain7' - // Gain: '/Gain8' - // Gain: '/Gain9' + // MATLAB Function: '/MATLAB Function1' incorporates: // Inport: '/heading_cmd' // Inport: '/psi' - // Sum: '/Add2' - // Sum: '/Add1' - // Sum: '/Add' - // Sum: '/Add1' - // Sum: '/predict_error_(i+2)' - mod_error = ((rtU.heading_cmd - ((((((((((((((((rtU.psi - 3.828503 * - rtDW.Delay1_DSTATE_o) - -5.5210193 * rtDW.Delay6_DSTATE_k) - 3.5572363 * - rtDW.Delay7_DSTATE_o) - -0.86472 * rtDW.Delay5_DSTATE_d) - - -7.589415207398531E-19 * rtDW.Delay9_DSTATE_m) - -0.0032962999999999985 * - rtDW.Delay4_DSTATE_a) - 0.0072993 * rtDW.Delay3_DSTATE_f) - - -0.0040030000000000005 * rtDW.Delay2_DSTATE_g) + (((((((3.828503 * rtU.psi + - -5.5210193 * rtDW.pos_i1_DSTATE_f) + 3.5572363 * rtDW.pos_i2_DSTATE_n) + - -0.86472 * rtDW.pos_i3_DSTATE_b) + -0.0040030000000000005 * rtU.heading_cmd) - + 0.0072993 * rtDW.ref_i1_DSTATE_c) + -0.0032962999999999985 * - rtDW.ref_i2_DSTATE_m) + -7.589415207398531E-19 * rtDW.ref_i3_DSTATE_i)) * - 3.828503 + -5.5210193 * rtU.psi) + 3.5572363 * rtDW.pos_i1_DSTATE_f) + - -0.86472 * rtDW.pos_i2_DSTATE_n) + -0.0040030000000000005 * rtU.heading_cmd) - + 0.0072993 * rtU.heading_cmd) + -0.0032962999999999985 * - rtDW.ref_i1_DSTATE_c) + -7.589415207398531E-19 * rtDW.ref_i2_DSTATE_m)) * - rtP.gamma_heading + rtU.heading_cmd) - rtU.psi; + mod_error = rtU.psi - rtU.heading_cmd; if (!std::isnan(mod_error)) { if (std::isinf(mod_error)) { mod_error = (rtNaN); @@ -405,58 +67,218 @@ void Controler::step() mod_error -= 360.0; } - // End of MATLAB Function: '/MATLAB Function' + // End of MATLAB Function: '/MATLAB Function1' - // Gain: '/Filter Coefficient' incorporates: - // DiscreteIntegrator: '/Filter' - // Gain: '/Derivative Gain' - // Sum: '/SumD' + // Gain: '/Filter Coefficient' incorporates: + // DiscreteIntegrator: '/Filter' + // Gain: '/Derivative Gain' + // Sum: '/SumD' - rtb_FilterCoefficient_l = (rtP.pid_heading.D * mod_error - - rtDW.Filter_DSTATE_m) * rtP.pid_heading.N; + rtb_FilterCoefficient = (rtP.pid_heading.D * mod_error - rtDW.Filter_DSTATE) * + rtP.pid_heading.N; - // Sum: '/Sum' incorporates: - // DiscreteIntegrator: '/Integrator' - // Gain: '/Proportional Gain' + // Sum: '/Sum' incorporates: + // DiscreteIntegrator: '/Integrator' + // Gain: '/Proportional Gain' - rtb_IntegralGain = (rtP.pid_heading.P * mod_error + rtDW.Integrator_DSTATE_b) - + rtb_FilterCoefficient_l; + rtb_Integrator_l = (rtP.pid_heading.P * mod_error + rtDW.Integrator_DSTATE) + + rtb_FilterCoefficient; - // Saturate: '/Saturation' incorporates: - // DeadZone: '/DeadZone' - - if (rtb_IntegralGain > 35.0) { - // Outport: '/DirectUpperRudderServoAngleCmd' - rtY.DirectUpperRudderServoAngleCmd = 35.0; - rtb_IntegralGain -= 35.0; + // DeadZone: '/DeadZone' + if (rtb_Integrator_l > 35.0) { + rtb_Sum = rtb_Integrator_l - 35.0; + } else if (rtb_Integrator_l >= -35.0) { + rtb_Sum = 0.0; } else { - if (rtb_IntegralGain < -35.0) { - // Outport: '/DirectUpperRudderServoAngleCmd' - rtY.DirectUpperRudderServoAngleCmd = -35.0; - } else { - // Outport: '/DirectUpperRudderServoAngleCmd' - rtY.DirectUpperRudderServoAngleCmd = rtb_IntegralGain; - } - - if (rtb_IntegralGain >= -35.0) { - rtb_IntegralGain = 0.0; - } else { - rtb_IntegralGain -= -35.0; - } + rtb_Sum = rtb_Integrator_l - -35.0; } - // End of Saturate: '/Saturation' + // End of DeadZone: '/DeadZone' - // RelationalOperator: '/Relational Operator' incorporates: - // Constant: '/Clamping_zero' + // RelationalOperator: '/Relational Operator' incorporates: + // Constant: '/Clamping_zero' + + rtb_RelationalOperator = (rtb_Sum != 0.0); + + // RelationalOperator: '/fix for DT propagation issue' incorporates: + // Constant: '/Clamping_zero' + + rtb_fixforDTpropagationissue = (rtb_Sum > 0.0); + + // Gain: '/Integral Gain' + rtb_Sum = rtP.pid_heading.I * mod_error; + + // Switch: '/Switch1' incorporates: + // Constant: '/Constant' + // Constant: '/Constant2' + + if (rtb_fixforDTpropagationissue) { + tmp = 1; + } else { + tmp = -1; + } + + // Switch: '/Switch2' incorporates: + // Constant: '/Clamping_zero' + // Constant: '/Constant3' + // Constant: '/Constant4' + // RelationalOperator: '/fix for DT propagation issue1' + + if (rtb_Sum > 0.0) { + rtb_Switch1 = 1; + } else { + rtb_Switch1 = -1; + } + + // Switch: '/Switch' incorporates: + // Constant: '/Constant1' + // Logic: '/AND3' + // RelationalOperator: '/Equal1' + // Switch: '/Switch1' + // Switch: '/Switch2' + + if (rtb_RelationalOperator && (tmp == rtb_Switch1)) { + rtb_Switch = 0.0; + } else { + rtb_Switch = rtb_Sum; + } + + // End of Switch: '/Switch' + + // Saturate: '/Saturation' + if (rtb_Integrator_l > 35.0) { + rtb_Integrator_l = 35.0; + } else if (rtb_Integrator_l < -35.0) { + rtb_Integrator_l = -35.0; + } + + // End of Saturate: '/Saturation' + + // Sum: '/Sum1' incorporates: + // Inport: '/depth_cmd' + // Inport: '/z' + + rtb_depth_error = rtU.z - rtU.depth_cmd; + + // Gain: '/Integral Gain' + rtb_Sum = rtP.pid_depth.I * rtb_depth_error; + + // Gain: '/Filter Coefficient' incorporates: + // DiscreteIntegrator: '/Filter' + // Gain: '/Derivative Gain' + // Sum: '/SumD' + + rtb_FilterCoefficient_lc = (rtP.pid_depth.D * rtb_depth_error - + rtDW.Filter_DSTATE_m) * rtP.pid_depth.N; + + // Sum: '/Sum' incorporates: + // DiscreteIntegrator: '/Integrator' + // Gain: '/Proportional Gain' + + rtb_Filter_b = (rtP.pid_depth.P * rtb_depth_error + rtDW.Integrator_DSTATE_o) + + rtb_FilterCoefficient_lc; + + // DeadZone: '/DeadZone' + if (rtb_Filter_b > 30.0) { + rtb_Integrator_p = rtb_Filter_b - 30.0; + + // Switch: '/Switch1' incorporates: + // Constant: '/Constant' + + tmp = 1; + } else { + if (rtb_Filter_b >= -30.0) { + rtb_Integrator_p = 0.0; + } else { + rtb_Integrator_p = rtb_Filter_b - -30.0; + } + + // Switch: '/Switch1' incorporates: + // Constant: '/Constant2' + + tmp = -1; + } + + // End of DeadZone: '/DeadZone' + + // Switch: '/Switch2' incorporates: + // Constant: '/Clamping_zero' + // Constant: '/Constant3' + // Constant: '/Constant4' + // RelationalOperator: '/fix for DT propagation issue1' + + if (rtb_Sum > 0.0) { + rtb_Switch1 = 1; + } else { + rtb_Switch1 = -1; + } + + // Switch: '/Switch' incorporates: + // Constant: '/Clamping_zero' + // Constant: '/Constant1' + // Logic: '/AND3' + // RelationalOperator: '/Equal1' + // RelationalOperator: '/Relational Operator' + // Switch: '/Switch1' + // Switch: '/Switch2' + + if ((rtb_Integrator_p != 0.0) && (tmp == rtb_Switch1)) { + rtb_Integrator_p = 0.0; + } else { + rtb_Integrator_p = rtb_Sum; + } + + // End of Switch: '/Switch' + + // Saturate: '/Saturation' + if (rtb_Filter_b > 30.0) { + rtb_Filter_b = 30.0; + } else if (rtb_Filter_b < -30.0) { + rtb_Filter_b = -30.0; + } + + // Sum: '/Sum2' incorporates: + // Inport: '/theta' + // Saturate: '/Saturation' + + rtb_Filter_b = rtU.theta - rtb_Filter_b; + + // Gain: '/Filter Coefficient' incorporates: + // DiscreteIntegrator: '/Filter' + // Gain: '/Derivative Gain' + // Sum: '/SumD' + + rtb_FilterCoefficient_a = (rtP.pid_pitch.D * rtb_Filter_b - + rtDW.Filter_DSTATE_l) * rtP.pid_pitch.N; + + // Sum: '/Sum' incorporates: + // DiscreteIntegrator: '/Integrator' + // Gain: '/Proportional Gain' + + rtb_Sum = (rtP.pid_pitch.P * rtb_Filter_b + rtDW.Integrator_DSTATE_f) + + rtb_FilterCoefficient_a; + + // DeadZone: '/DeadZone' + if (rtb_Sum > 35.0) { + rtb_IntegralGain = rtb_Sum - 35.0; + } else if (rtb_Sum >= -35.0) { + rtb_IntegralGain = 0.0; + } else { + rtb_IntegralGain = rtb_Sum - -35.0; + } + + // End of DeadZone: '/DeadZone' + + // RelationalOperator: '/Relational Operator' incorporates: + // Constant: '/Clamping_zero' rtb_RelationalOperator = (rtb_IntegralGain != 0.0); - // Switch: '/Switch1' incorporates: - // Constant: '/Clamping_zero' - // Constant: '/Constant' - // Constant: '/Constant2' - // RelationalOperator: '/fix for DT propagation issue' + // Switch: '/Switch1' incorporates: + // Constant: '/Clamping_zero' + // Constant: '/Constant' + // Constant: '/Constant2' + // RelationalOperator: '/fix for DT propagation issue' if (rtb_IntegralGain > 0.0) { rtb_Switch1 = 1; @@ -464,207 +286,51 @@ void Controler::step() rtb_Switch1 = -1; } - // End of Switch: '/Switch1' + // End of Switch: '/Switch1' - // Gain: '/Integral Gain' - rtb_IntegralGain = rtP.pid_heading.I * mod_error; + // Gain: '/Integral Gain' + rtb_IntegralGain = rtP.pid_pitch.I * rtb_Filter_b; - // Update for Delay: '/pos_i-1' incorporates: - // Inport: '/z' - - rtDW.pos_i1_DSTATE = rtU.z; - - // Update for Delay: '/pos_i-2' - rtDW.pos_i2_DSTATE = rtb_pos_i1; - - // Update for Delay: '/pos_i-3' - rtDW.pos_i3_DSTATE = rtb_pos_i2; - - // Update for Delay: '/pos_i-4' - rtDW.pos_i4_DSTATE = rtb_pos_i3; - - // Update for Delay: '/ref_i-1' incorporates: - // Inport: '/depth_cmd' - - rtDW.ref_i1_DSTATE = rtU.depth_cmd; - - // Update for Delay: '/ref_i-2' - rtDW.ref_i2_DSTATE = rtb_ref_i1; - - // Update for Delay: '/ref_i-3' - rtDW.ref_i3_DSTATE = rtb_ref_i2; - - // Update for Delay: '/ref_i-4' - rtDW.ref_i4_DSTATE = rtb_ref_i3; - - // Update for Delay: '/Delay1' incorporates: - // Inport: '/z' - - rtDW.Delay1_DSTATE = rtU.z; - - // Update for Delay: '/Delay6' - rtDW.Delay6_DSTATE = rtb_Delay1; - - // Update for Delay: '/Delay7' - rtDW.Delay7_DSTATE = rtb_Delay6; - - // Update for Delay: '/Delay5' - rtDW.Delay5_DSTATE = rtb_Delay7; - - // Update for Delay: '/Delay8' - rtDW.Delay8_DSTATE = rtb_Delay5; - - // Update for Delay: '/Delay10' incorporates: - // Delay: '/Delay9' - - rtDW.Delay10_DSTATE = rtDW.Delay9_DSTATE; - - // Update for Delay: '/Delay9' incorporates: - // Delay: '/Delay4' - - rtDW.Delay9_DSTATE = rtDW.Delay4_DSTATE; - - // Update for Delay: '/Delay4' incorporates: - // Delay: '/Delay3' - - rtDW.Delay4_DSTATE = rtDW.Delay3_DSTATE; - - // Update for Delay: '/Delay3' incorporates: - // Delay: '/Delay2' - - rtDW.Delay3_DSTATE = rtDW.Delay2_DSTATE; - - // Update for Delay: '/Delay2' incorporates: - // Inport: '/depth_cmd' - - rtDW.Delay2_DSTATE = rtU.depth_cmd; - - // Switch: '/Switch1' incorporates: - // Constant: '/Clamping_zero' - // Constant: '/Constant' - // Constant: '/Constant2' - // RelationalOperator: '/fix for DT propagation issue' - - if (rtb_Filter_k > 0.0) { - tmp = 1; - } else { - tmp = -1; + // Saturate: '/Saturation' + if (rtb_Sum > 35.0) { + rtb_Sum = 35.0; + } else if (rtb_Sum < -35.0) { + rtb_Sum = -35.0; } - // Switch: '/Switch2' incorporates: - // Constant: '/Clamping_zero' - // Constant: '/Constant3' - // Constant: '/Constant4' - // RelationalOperator: '/fix for DT propagation issue1' + // End of Saturate: '/Saturation' - if (rtb_Integrator_d > 0.0) { - tmp_0 = 1; - } else { - tmp_0 = -1; + // Update for DiscreteIntegrator: '/Integrator' + rtDW.Integrator_DSTATE += rtb_Switch; + if (rtDW.Integrator_DSTATE > 15.0) { + rtDW.Integrator_DSTATE = 15.0; + } else if (rtDW.Integrator_DSTATE < -15.0) { + rtDW.Integrator_DSTATE = -15.0; } - // Switch: '/Switch' incorporates: - // Constant: '/Clamping_zero' - // Constant: '/Constant1' - // Logic: '/AND3' - // RelationalOperator: '/Equal1' - // RelationalOperator: '/Relational Operator' - // Switch: '/Switch1' - // Switch: '/Switch2' + // End of Update for DiscreteIntegrator: '/Integrator' - if ((rtb_Filter_k != 0.0) && (tmp == tmp_0)) { - rtb_Integrator_d = 0.0; - } - - // Update for DiscreteIntegrator: '/Integrator' incorporates: - // Switch: '/Switch' - - rtDW.Integrator_DSTATE += rtb_Integrator_d; - if (rtDW.Integrator_DSTATE > 10.0) { - rtDW.Integrator_DSTATE = 10.0; - } else if (rtDW.Integrator_DSTATE < -10.0) { - rtDW.Integrator_DSTATE = -10.0; - } - - // End of Update for DiscreteIntegrator: '/Integrator' - - // Update for DiscreteIntegrator: '/Filter' + // Update for DiscreteIntegrator: '/Filter' rtDW.Filter_DSTATE += 0.1 * rtb_FilterCoefficient; - // Update for DiscreteIntegrator: '/Integrator' - rtDW.Integrator_DSTATE_f += rtb_Switch; - if (rtDW.Integrator_DSTATE_f > 15.0) { - rtDW.Integrator_DSTATE_f = 15.0; - } else if (rtDW.Integrator_DSTATE_f < -15.0) { - rtDW.Integrator_DSTATE_f = -15.0; + // Update for DiscreteIntegrator: '/Integrator' + rtDW.Integrator_DSTATE_o += rtb_Integrator_p; + if (rtDW.Integrator_DSTATE_o > 10.0) { + rtDW.Integrator_DSTATE_o = 10.0; + } else if (rtDW.Integrator_DSTATE_o < -10.0) { + rtDW.Integrator_DSTATE_o = -10.0; } - // End of Update for DiscreteIntegrator: '/Integrator' + // End of Update for DiscreteIntegrator: '/Integrator' - // Update for DiscreteIntegrator: '/Filter' - rtDW.Filter_DSTATE_l += 0.1 * rtb_FilterCoefficient_g; + // Update for DiscreteIntegrator: '/Filter' + rtDW.Filter_DSTATE_m += 0.1 * rtb_FilterCoefficient_lc; - // Update for Delay: '/pos_i-1' incorporates: - // Inport: '/psi' - - rtDW.pos_i1_DSTATE_f = rtU.psi; - - // Update for Delay: '/pos_i-2' - rtDW.pos_i2_DSTATE_n = rtb_pos_i1_k; - - // Update for Delay: '/pos_i-3' - rtDW.pos_i3_DSTATE_b = rtb_pos_i2_l; - - // Update for Delay: '/ref_i-1' incorporates: - // Inport: '/heading_cmd' - - rtDW.ref_i1_DSTATE_c = rtU.heading_cmd; - - // Update for Delay: '/ref_i-2' - rtDW.ref_i2_DSTATE_m = rtb_ref_i1_p; - - // Update for Delay: '/ref_i-3' - rtDW.ref_i3_DSTATE_i = rtb_ref_i2_d; - - // Update for Delay: '/Delay1' incorporates: - // Inport: '/psi' - - rtDW.Delay1_DSTATE_o = rtU.psi; - - // Update for Delay: '/Delay6' - rtDW.Delay6_DSTATE_k = rtb_Delay1_d; - - // Update for Delay: '/Delay7' - rtDW.Delay7_DSTATE_o = rtb_Delay6_c; - - // Update for Delay: '/Delay5' - rtDW.Delay5_DSTATE_d = rtb_Delay7_c; - - // Update for Delay: '/Delay9' incorporates: - // Delay: '/Delay4' - - rtDW.Delay9_DSTATE_m = rtDW.Delay4_DSTATE_a; - - // Update for Delay: '/Delay4' incorporates: - // Delay: '/Delay3' - - rtDW.Delay4_DSTATE_a = rtDW.Delay3_DSTATE_f; - - // Update for Delay: '/Delay3' incorporates: - // Delay: '/Delay2' - - rtDW.Delay3_DSTATE_f = rtDW.Delay2_DSTATE_g; - - // Update for Delay: '/Delay2' incorporates: - // Inport: '/heading_cmd' - - rtDW.Delay2_DSTATE_g = rtU.heading_cmd; - - // Switch: '/Switch2' incorporates: - // Constant: '/Clamping_zero' - // Constant: '/Constant3' - // Constant: '/Constant4' - // RelationalOperator: '/fix for DT propagation issue1' + // Switch: '/Switch2' incorporates: + // Constant: '/Clamping_zero' + // Constant: '/Constant3' + // Constant: '/Constant4' + // RelationalOperator: '/fix for DT propagation issue1' if (rtb_IntegralGain > 0.0) { tmp = 1; @@ -672,53 +338,55 @@ void Controler::step() tmp = -1; } - // Switch: '/Switch' incorporates: - // Constant: '/Constant1' - // Logic: '/AND3' - // RelationalOperator: '/Equal1' - // Switch: '/Switch2' + // Switch: '/Switch' incorporates: + // Constant: '/Constant1' + // Logic: '/AND3' + // RelationalOperator: '/Equal1' + // Switch: '/Switch2' if (rtb_RelationalOperator && (rtb_Switch1 == tmp)) { rtb_IntegralGain = 0.0; } - // Update for DiscreteIntegrator: '/Integrator' incorporates: - // Switch: '/Switch' + // Update for DiscreteIntegrator: '/Integrator' incorporates: + // Switch: '/Switch' - rtDW.Integrator_DSTATE_b += rtb_IntegralGain; - if (rtDW.Integrator_DSTATE_b > 15.0) { - rtDW.Integrator_DSTATE_b = 15.0; - } else if (rtDW.Integrator_DSTATE_b < -15.0) { - rtDW.Integrator_DSTATE_b = -15.0; + rtDW.Integrator_DSTATE_f += rtb_IntegralGain; + if (rtDW.Integrator_DSTATE_f > 15.0) { + rtDW.Integrator_DSTATE_f = 15.0; + } else if (rtDW.Integrator_DSTATE_f < -15.0) { + rtDW.Integrator_DSTATE_f = -15.0; } - // End of Update for DiscreteIntegrator: '/Integrator' + // End of Update for DiscreteIntegrator: '/Integrator' - // Update for DiscreteIntegrator: '/Filter' - rtDW.Filter_DSTATE_m += 0.1 * rtb_FilterCoefficient_l; + // Update for DiscreteIntegrator: '/Filter' + rtDW.Filter_DSTATE_l += 0.1 * rtb_FilterCoefficient_a; // End of Outputs for SubSystem: '/Controler' // Outport: '/MainThrusterSpeedCmd' incorporates: - // Constant: '/Constant' + // Constant: '/Constant1' rtY.MainThrusterSpeedCmd = 100.0; - // Outport: '/DirectLowerRudderServoAngleCmd' incorporates: - // Constant: '/Constant2' + // Outport: '/DirectUpperRudderServoAngleCmd' + rtY.DirectUpperRudderServoAngleCmd = rtb_Integrator_l; - rtY.DirectLowerRudderServoAngleCmd = 1.0; + // Outport: '/DirectLowerRudderServoAngleCmd' + rtY.DirectLowerRudderServoAngleCmd = rtb_Integrator_l; - // Outport: '/DirectRightRudderServoAngleCmd' incorporates: - // Constant: '/Constant4' + // Outport: '/DirectLeftRudderServoAngleCmd' + rtY.DirectLeftRudderServoAngleCmd = rtb_Sum; - rtY.DirectRightRudderServoAngleCmd = 1.0; + // Outport: '/DirectRightRudderServoAngleCmd' + rtY.DirectRightRudderServoAngleCmd = rtb_Sum; // Outport: '/heading_error' rtY.heading_error = mod_error; // Outport: '/pitch_error' - rtY.pitch_error = rtb_pitch_error; + rtY.pitch_error = rtb_Filter_b; // Outport: '/depth_error' rtY.depth_error = rtb_depth_error; diff --git a/src/pAUV150/Controler/Controler.h b/src/pAUV150/Controler/Controler.h index d8a9292..becc9c8 100644 --- a/src/pAUV150/Controler/Controler.h +++ b/src/pAUV150/Controler/Controler.h @@ -7,9 +7,9 @@ // // Code generated for Simulink model 'Controler'. // -// Model version : 5.77 +// Model version : 5.95 // Simulink Coder version : 24.2 (R2024b) 21-Jun-2024 -// C/C++ source code generated on : Thu Jun 26 20:56:30 2025 +// C/C++ source code generated on : Tue Jul 1 15:26:11 2025 // // Target selection: ert.tlc // Embedded hardware selection: Intel->x86-64 (Linux 64) @@ -32,8 +32,6 @@ extern "C" } -#define Controler_M (rtM) - // Class declaration for model Controler class Controler final { @@ -41,44 +39,12 @@ class Controler final public: // Block signals and states (default storage) for system '' struct DW { - real_T pos_i1_DSTATE; // '/pos_i-1' - real_T pos_i2_DSTATE; // '/pos_i-2' - real_T pos_i3_DSTATE; // '/pos_i-3' - real_T pos_i4_DSTATE; // '/pos_i-4' - real_T ref_i1_DSTATE; // '/ref_i-1' - real_T ref_i2_DSTATE; // '/ref_i-2' - real_T ref_i3_DSTATE; // '/ref_i-3' - real_T ref_i4_DSTATE; // '/ref_i-4' - real_T Delay1_DSTATE; // '/Delay1' - real_T Delay6_DSTATE; // '/Delay6' - real_T Delay7_DSTATE; // '/Delay7' - real_T Delay5_DSTATE; // '/Delay5' - real_T Delay8_DSTATE; // '/Delay8' - real_T Delay10_DSTATE; // '/Delay10' - real_T Delay9_DSTATE; // '/Delay9' - real_T Delay4_DSTATE; // '/Delay4' - real_T Delay3_DSTATE; // '/Delay3' - real_T Delay2_DSTATE; // '/Delay2' - real_T Integrator_DSTATE; // '/Integrator' - real_T Filter_DSTATE; // '/Filter' - real_T Integrator_DSTATE_f; // '/Integrator' - real_T Filter_DSTATE_l; // '/Filter' - real_T pos_i1_DSTATE_f; // '/pos_i-1' - real_T pos_i2_DSTATE_n; // '/pos_i-2' - real_T pos_i3_DSTATE_b; // '/pos_i-3' - real_T ref_i1_DSTATE_c; // '/ref_i-1' - real_T ref_i2_DSTATE_m; // '/ref_i-2' - real_T ref_i3_DSTATE_i; // '/ref_i-3' - real_T Delay1_DSTATE_o; // '/Delay1' - real_T Delay6_DSTATE_k; // '/Delay6' - real_T Delay7_DSTATE_o; // '/Delay7' - real_T Delay5_DSTATE_d; // '/Delay5' - real_T Delay9_DSTATE_m; // '/Delay9' - real_T Delay4_DSTATE_a; // '/Delay4' - real_T Delay3_DSTATE_f; // '/Delay3' - real_T Delay2_DSTATE_g; // '/Delay2' - real_T Integrator_DSTATE_b; // '/Integrator' - real_T Filter_DSTATE_m; // '/Filter' + real_T Integrator_DSTATE; // '/Integrator' + real_T Filter_DSTATE; // '/Filter' + real_T Integrator_DSTATE_o; // '/Integrator' + real_T Filter_DSTATE_m; // '/Filter' + real_T Integrator_DSTATE_f; // '/Integrator' + real_T Filter_DSTATE_l; // '/Filter' }; // External inputs (root inport signals with default storage) @@ -120,30 +86,24 @@ class Controler final struct P { struct_n3jlyiLoC0PV1TieyhpPwD pid_depth;// Variable: pid_depth // Referenced by: - // '/Derivative Gain' - // '/Integral Gain' - // '/Filter Coefficient' - // '/Proportional Gain' + // '/Derivative Gain' + // '/Integral Gain' + // '/Filter Coefficient' + // '/Proportional Gain' struct_n3jlyiLoC0PV1TieyhpPwD pid_heading;// Variable: pid_heading // Referenced by: - // '/Derivative Gain' - // '/Integral Gain' - // '/Filter Coefficient' - // '/Proportional Gain' + // '/Derivative Gain' + // '/Integral Gain' + // '/Filter Coefficient' + // '/Proportional Gain' struct_n3jlyiLoC0PV1TieyhpPwD pid_pitch;// Variable: pid_pitch // Referenced by: - // '/Derivative Gain' - // '/Integral Gain' - // '/Filter Coefficient' - // '/Proportional Gain' - - real_T gamma_depth; // Variable: gamma_depth - // Referenced by: '/Compensation Gain' - - real_T gamma_heading; // Variable: gamma_heading - // Referenced by: '/Compensation Gain' + // '/Derivative Gain' + // '/Integral Gain' + // '/Filter Coefficient' + // '/Proportional Gain' }; @@ -199,6 +159,13 @@ class Controler final RT_MODEL rtM; }; +//- +// These blocks were eliminated from the model due to optimizations: +// +// Block '/Gain' : Eliminated nontunable gain of 1 +// Block '/Gain1' : Eliminated nontunable gain of 1 + + //- // The generated code includes comments that allow you to trace directly // back to the appropriate location in the model. The basic format @@ -211,183 +178,179 @@ class Controler final // MATLAB hilite_system command to trace the generated code back // to the parent model. For example, // -// hilite_system('SimModel0621/Controler') - opens subsystem SimModel0621/Controler -// hilite_system('SimModel0621/Controler/Kp') - opens and selects block Kp +// hilite_system('SimModel0621_S3/Controler') - opens subsystem SimModel0621_S3/Controler +// hilite_system('SimModel0621_S3/Controler/Kp') - opens and selects block Kp // // Here is the system hierarchy for this model // -// '' : 'SimModel0621' -// '' : 'SimModel0621/Controler' -// '' : 'SimModel0621/Controler/MATLAB Function' -// '' : 'SimModel0621/Controler/PID Controller' -// '' : 'SimModel0621/Controler/PID Controller1' -// '' : 'SimModel0621/Controler/PID Controller2' -// '' : 'SimModel0621/Controler/Pred_Depth' -// '' : 'SimModel0621/Controler/Pred_Steering' -// '' : 'SimModel0621/Controler/PID Controller/Anti-windup' -// '' : 'SimModel0621/Controler/PID Controller/D Gain' -// '' : 'SimModel0621/Controler/PID Controller/External Derivative' -// '' : 'SimModel0621/Controler/PID Controller/Filter' -// '' : 'SimModel0621/Controler/PID Controller/Filter ICs' -// '' : 'SimModel0621/Controler/PID Controller/I Gain' -// '' : 'SimModel0621/Controler/PID Controller/Ideal P Gain' -// '' : 'SimModel0621/Controler/PID Controller/Ideal P Gain Fdbk' -// '' : 'SimModel0621/Controler/PID Controller/Integrator' -// '' : 'SimModel0621/Controler/PID Controller/Integrator ICs' -// '' : 'SimModel0621/Controler/PID Controller/N Copy' -// '' : 'SimModel0621/Controler/PID Controller/N Gain' -// '' : 'SimModel0621/Controler/PID Controller/P Copy' -// '' : 'SimModel0621/Controler/PID Controller/Parallel P Gain' -// '' : 'SimModel0621/Controler/PID Controller/Reset Signal' -// '' : 'SimModel0621/Controler/PID Controller/Saturation' -// '' : 'SimModel0621/Controler/PID Controller/Saturation Fdbk' -// '' : 'SimModel0621/Controler/PID Controller/Sum' -// '' : 'SimModel0621/Controler/PID Controller/Sum Fdbk' -// '' : 'SimModel0621/Controler/PID Controller/Tracking Mode' -// '' : 'SimModel0621/Controler/PID Controller/Tracking Mode Sum' -// '' : 'SimModel0621/Controler/PID Controller/Tsamp - Integral' -// '' : 'SimModel0621/Controler/PID Controller/Tsamp - Ngain' -// '' : 'SimModel0621/Controler/PID Controller/postSat Signal' -// '' : 'SimModel0621/Controler/PID Controller/preInt Signal' -// '' : 'SimModel0621/Controler/PID Controller/preSat Signal' -// '' : 'SimModel0621/Controler/PID Controller/Anti-windup/Disc. Clamping Parallel' -// '' : 'SimModel0621/Controler/PID Controller/Anti-windup/Disc. Clamping Parallel/Dead Zone' -// '' : 'SimModel0621/Controler/PID Controller/Anti-windup/Disc. Clamping Parallel/Dead Zone/Enabled' -// '' : 'SimModel0621/Controler/PID Controller/D Gain/Internal Parameters' -// '' : 'SimModel0621/Controler/PID Controller/External Derivative/Error' -// '' : 'SimModel0621/Controler/PID Controller/Filter/Disc. Forward Euler Filter' -// '' : 'SimModel0621/Controler/PID Controller/Filter ICs/Internal IC - Filter' -// '' : 'SimModel0621/Controler/PID Controller/I Gain/Internal Parameters' -// '' : 'SimModel0621/Controler/PID Controller/Ideal P Gain/Passthrough' -// '' : 'SimModel0621/Controler/PID Controller/Ideal P Gain Fdbk/Disabled' -// '' : 'SimModel0621/Controler/PID Controller/Integrator/Discrete' -// '' : 'SimModel0621/Controler/PID Controller/Integrator ICs/Internal IC' -// '' : 'SimModel0621/Controler/PID Controller/N Copy/Disabled' -// '' : 'SimModel0621/Controler/PID Controller/N Gain/Internal Parameters' -// '' : 'SimModel0621/Controler/PID Controller/P Copy/Disabled' -// '' : 'SimModel0621/Controler/PID Controller/Parallel P Gain/Internal Parameters' -// '' : 'SimModel0621/Controler/PID Controller/Reset Signal/Disabled' -// '' : 'SimModel0621/Controler/PID Controller/Saturation/Enabled' -// '' : 'SimModel0621/Controler/PID Controller/Saturation Fdbk/Disabled' -// '' : 'SimModel0621/Controler/PID Controller/Sum/Sum_PID' -// '' : 'SimModel0621/Controler/PID Controller/Sum Fdbk/Disabled' -// '' : 'SimModel0621/Controler/PID Controller/Tracking Mode/Disabled' -// '' : 'SimModel0621/Controler/PID Controller/Tracking Mode Sum/Passthrough' -// '' : 'SimModel0621/Controler/PID Controller/Tsamp - Integral/TsSignalSpecification' -// '' : 'SimModel0621/Controler/PID Controller/Tsamp - Ngain/Passthrough' -// '' : 'SimModel0621/Controler/PID Controller/postSat Signal/Forward_Path' -// '' : 'SimModel0621/Controler/PID Controller/preInt Signal/Internal PreInt' -// '' : 'SimModel0621/Controler/PID Controller/preSat Signal/Forward_Path' -// '' : 'SimModel0621/Controler/PID Controller1/Anti-windup' -// '' : 'SimModel0621/Controler/PID Controller1/D Gain' -// '' : 'SimModel0621/Controler/PID Controller1/External Derivative' -// '' : 'SimModel0621/Controler/PID Controller1/Filter' -// '' : 'SimModel0621/Controler/PID Controller1/Filter ICs' -// '' : 'SimModel0621/Controler/PID Controller1/I Gain' -// '' : 'SimModel0621/Controler/PID Controller1/Ideal P Gain' -// '' : 'SimModel0621/Controler/PID Controller1/Ideal P Gain Fdbk' -// '' : 'SimModel0621/Controler/PID Controller1/Integrator' -// '' : 'SimModel0621/Controler/PID Controller1/Integrator ICs' -// '' : 'SimModel0621/Controler/PID Controller1/N Copy' -// '' : 'SimModel0621/Controler/PID Controller1/N Gain' -// '' : 'SimModel0621/Controler/PID Controller1/P Copy' -// '' : 'SimModel0621/Controler/PID Controller1/Parallel P Gain' -// '' : 'SimModel0621/Controler/PID Controller1/Reset Signal' -// '' : 'SimModel0621/Controler/PID Controller1/Saturation' -// '' : 'SimModel0621/Controler/PID Controller1/Saturation Fdbk' -// '' : 'SimModel0621/Controler/PID Controller1/Sum' -// '' : 'SimModel0621/Controler/PID Controller1/Sum Fdbk' -// '' : 'SimModel0621/Controler/PID Controller1/Tracking Mode' -// '' : 'SimModel0621/Controler/PID Controller1/Tracking Mode Sum' -// '' : 'SimModel0621/Controler/PID Controller1/Tsamp - Integral' -// '' : 'SimModel0621/Controler/PID Controller1/Tsamp - Ngain' -// '' : 'SimModel0621/Controler/PID Controller1/postSat Signal' -// '' : 'SimModel0621/Controler/PID Controller1/preInt Signal' -// '' : 'SimModel0621/Controler/PID Controller1/preSat Signal' -// '' : 'SimModel0621/Controler/PID Controller1/Anti-windup/Disc. Clamping Parallel' -// '' : 'SimModel0621/Controler/PID Controller1/Anti-windup/Disc. Clamping Parallel/Dead Zone' -// '' : 'SimModel0621/Controler/PID Controller1/Anti-windup/Disc. Clamping Parallel/Dead Zone/Enabled' -// '' : 'SimModel0621/Controler/PID Controller1/D Gain/Internal Parameters' -// '' : 'SimModel0621/Controler/PID Controller1/External Derivative/Error' -// '' : 'SimModel0621/Controler/PID Controller1/Filter/Disc. Forward Euler Filter' -// '' : 'SimModel0621/Controler/PID Controller1/Filter ICs/Internal IC - Filter' -// '' : 'SimModel0621/Controler/PID Controller1/I Gain/Internal Parameters' -// '' : 'SimModel0621/Controler/PID Controller1/Ideal P Gain/Passthrough' -// '' : 'SimModel0621/Controler/PID Controller1/Ideal P Gain Fdbk/Disabled' -// '' : 'SimModel0621/Controler/PID Controller1/Integrator/Discrete' -// '' : 'SimModel0621/Controler/PID Controller1/Integrator ICs/Internal IC' -// '' : 'SimModel0621/Controler/PID Controller1/N Copy/Disabled' -// '' : 'SimModel0621/Controler/PID Controller1/N Gain/Internal Parameters' -// '' : 'SimModel0621/Controler/PID Controller1/P Copy/Disabled' -// '' : 'SimModel0621/Controler/PID Controller1/Parallel P Gain/Internal Parameters' -// '' : 'SimModel0621/Controler/PID Controller1/Reset Signal/Disabled' -// '' : 'SimModel0621/Controler/PID Controller1/Saturation/Enabled' -// '' : 'SimModel0621/Controler/PID Controller1/Saturation Fdbk/Disabled' -// '' : 'SimModel0621/Controler/PID Controller1/Sum/Sum_PID' -// '' : 'SimModel0621/Controler/PID Controller1/Sum Fdbk/Disabled' -// '' : 'SimModel0621/Controler/PID Controller1/Tracking Mode/Disabled' -// '' : 'SimModel0621/Controler/PID Controller1/Tracking Mode Sum/Passthrough' -// '' : 'SimModel0621/Controler/PID Controller1/Tsamp - Integral/TsSignalSpecification' -// '' : 'SimModel0621/Controler/PID Controller1/Tsamp - Ngain/Passthrough' -// '' : 'SimModel0621/Controler/PID Controller1/postSat Signal/Forward_Path' -// '' : 'SimModel0621/Controler/PID Controller1/preInt Signal/Internal PreInt' -// '' : 'SimModel0621/Controler/PID Controller1/preSat Signal/Forward_Path' -// '' : 'SimModel0621/Controler/PID Controller2/Anti-windup' -// '' : 'SimModel0621/Controler/PID Controller2/D Gain' -// '' : 'SimModel0621/Controler/PID Controller2/External Derivative' -// '' : 'SimModel0621/Controler/PID Controller2/Filter' -// '' : 'SimModel0621/Controler/PID Controller2/Filter ICs' -// '' : 'SimModel0621/Controler/PID Controller2/I Gain' -// '' : 'SimModel0621/Controler/PID Controller2/Ideal P Gain' -// '' : 'SimModel0621/Controler/PID Controller2/Ideal P Gain Fdbk' -// '' : 'SimModel0621/Controler/PID Controller2/Integrator' -// '' : 'SimModel0621/Controler/PID Controller2/Integrator ICs' -// '' : 'SimModel0621/Controler/PID Controller2/N Copy' -// '' : 'SimModel0621/Controler/PID Controller2/N Gain' -// '' : 'SimModel0621/Controler/PID Controller2/P Copy' -// '' : 'SimModel0621/Controler/PID Controller2/Parallel P Gain' -// '' : 'SimModel0621/Controler/PID Controller2/Reset Signal' -// '' : 'SimModel0621/Controler/PID Controller2/Saturation' -// '' : 'SimModel0621/Controler/PID Controller2/Saturation Fdbk' -// '' : 'SimModel0621/Controler/PID Controller2/Sum' -// '' : 'SimModel0621/Controler/PID Controller2/Sum Fdbk' -// '' : 'SimModel0621/Controler/PID Controller2/Tracking Mode' -// '' : 'SimModel0621/Controler/PID Controller2/Tracking Mode Sum' -// '' : 'SimModel0621/Controler/PID Controller2/Tsamp - Integral' -// '' : 'SimModel0621/Controler/PID Controller2/Tsamp - Ngain' -// '' : 'SimModel0621/Controler/PID Controller2/postSat Signal' -// '' : 'SimModel0621/Controler/PID Controller2/preInt Signal' -// '' : 'SimModel0621/Controler/PID Controller2/preSat Signal' -// '' : 'SimModel0621/Controler/PID Controller2/Anti-windup/Disc. Clamping Parallel' -// '' : 'SimModel0621/Controler/PID Controller2/Anti-windup/Disc. Clamping Parallel/Dead Zone' -// '' : 'SimModel0621/Controler/PID Controller2/Anti-windup/Disc. Clamping Parallel/Dead Zone/Enabled' -// '' : 'SimModel0621/Controler/PID Controller2/D Gain/Internal Parameters' -// '' : 'SimModel0621/Controler/PID Controller2/External Derivative/Error' -// '' : 'SimModel0621/Controler/PID Controller2/Filter/Disc. Forward Euler Filter' -// '' : 'SimModel0621/Controler/PID Controller2/Filter ICs/Internal IC - Filter' -// '' : 'SimModel0621/Controler/PID Controller2/I Gain/Internal Parameters' -// '' : 'SimModel0621/Controler/PID Controller2/Ideal P Gain/Passthrough' -// '' : 'SimModel0621/Controler/PID Controller2/Ideal P Gain Fdbk/Disabled' -// '' : 'SimModel0621/Controler/PID Controller2/Integrator/Discrete' -// '' : 'SimModel0621/Controler/PID Controller2/Integrator ICs/Internal IC' -// '' : 'SimModel0621/Controler/PID Controller2/N Copy/Disabled' -// '' : 'SimModel0621/Controler/PID Controller2/N Gain/Internal Parameters' -// '' : 'SimModel0621/Controler/PID Controller2/P Copy/Disabled' -// '' : 'SimModel0621/Controler/PID Controller2/Parallel P Gain/Internal Parameters' -// '' : 'SimModel0621/Controler/PID Controller2/Reset Signal/Disabled' -// '' : 'SimModel0621/Controler/PID Controller2/Saturation/Enabled' -// '' : 'SimModel0621/Controler/PID Controller2/Saturation Fdbk/Disabled' -// '' : 'SimModel0621/Controler/PID Controller2/Sum/Sum_PID' -// '' : 'SimModel0621/Controler/PID Controller2/Sum Fdbk/Disabled' -// '' : 'SimModel0621/Controler/PID Controller2/Tracking Mode/Disabled' -// '' : 'SimModel0621/Controler/PID Controller2/Tracking Mode Sum/Passthrough' -// '' : 'SimModel0621/Controler/PID Controller2/Tsamp - Integral/TsSignalSpecification' -// '' : 'SimModel0621/Controler/PID Controller2/Tsamp - Ngain/Passthrough' -// '' : 'SimModel0621/Controler/PID Controller2/postSat Signal/Forward_Path' -// '' : 'SimModel0621/Controler/PID Controller2/preInt Signal/Internal PreInt' -// '' : 'SimModel0621/Controler/PID Controller2/preSat Signal/Forward_Path' -// '' : 'SimModel0621/Controler/Pred_Depth/gamma' -// '' : 'SimModel0621/Controler/Pred_Steering/gamma' +// '' : 'SimModel0621_S3' +// '' : 'SimModel0621_S3/Controler' +// '' : 'SimModel0621_S3/Controler/MATLAB Function1' +// '' : 'SimModel0621_S3/Controler/PID Controller1' +// '' : 'SimModel0621_S3/Controler/PID Controller2' +// '' : 'SimModel0621_S3/Controler/PID Controller3' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Anti-windup' +// '' : 'SimModel0621_S3/Controler/PID Controller1/D Gain' +// '' : 'SimModel0621_S3/Controler/PID Controller1/External Derivative' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Filter' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Filter ICs' +// '' : 'SimModel0621_S3/Controler/PID Controller1/I Gain' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Ideal P Gain' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Ideal P Gain Fdbk' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Integrator' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Integrator ICs' +// '' : 'SimModel0621_S3/Controler/PID Controller1/N Copy' +// '' : 'SimModel0621_S3/Controler/PID Controller1/N Gain' +// '' : 'SimModel0621_S3/Controler/PID Controller1/P Copy' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Parallel P Gain' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Reset Signal' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Saturation' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Saturation Fdbk' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Sum' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Sum Fdbk' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Tracking Mode' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Tracking Mode Sum' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Tsamp - Integral' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Tsamp - Ngain' +// '' : 'SimModel0621_S3/Controler/PID Controller1/postSat Signal' +// '' : 'SimModel0621_S3/Controler/PID Controller1/preInt Signal' +// '' : 'SimModel0621_S3/Controler/PID Controller1/preSat Signal' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Anti-windup/Disc. Clamping Parallel' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Anti-windup/Disc. Clamping Parallel/Dead Zone' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Anti-windup/Disc. Clamping Parallel/Dead Zone/Enabled' +// '' : 'SimModel0621_S3/Controler/PID Controller1/D Gain/Internal Parameters' +// '' : 'SimModel0621_S3/Controler/PID Controller1/External Derivative/Error' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Filter/Disc. Forward Euler Filter' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Filter ICs/Internal IC - Filter' +// '' : 'SimModel0621_S3/Controler/PID Controller1/I Gain/Internal Parameters' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Ideal P Gain/Passthrough' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Ideal P Gain Fdbk/Disabled' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Integrator/Discrete' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Integrator ICs/Internal IC' +// '' : 'SimModel0621_S3/Controler/PID Controller1/N Copy/Disabled' +// '' : 'SimModel0621_S3/Controler/PID Controller1/N Gain/Internal Parameters' +// '' : 'SimModel0621_S3/Controler/PID Controller1/P Copy/Disabled' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Parallel P Gain/Internal Parameters' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Reset Signal/Disabled' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Saturation/Enabled' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Saturation Fdbk/Disabled' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Sum/Sum_PID' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Sum Fdbk/Disabled' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Tracking Mode/Disabled' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Tracking Mode Sum/Passthrough' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Tsamp - Integral/TsSignalSpecification' +// '' : 'SimModel0621_S3/Controler/PID Controller1/Tsamp - Ngain/Passthrough' +// '' : 'SimModel0621_S3/Controler/PID Controller1/postSat Signal/Forward_Path' +// '' : 'SimModel0621_S3/Controler/PID Controller1/preInt Signal/Internal PreInt' +// '' : 'SimModel0621_S3/Controler/PID Controller1/preSat Signal/Forward_Path' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Anti-windup' +// '' : 'SimModel0621_S3/Controler/PID Controller2/D Gain' +// '' : 'SimModel0621_S3/Controler/PID Controller2/External Derivative' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Filter' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Filter ICs' +// '' : 'SimModel0621_S3/Controler/PID Controller2/I Gain' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Ideal P Gain' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Ideal P Gain Fdbk' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Integrator' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Integrator ICs' +// '' : 'SimModel0621_S3/Controler/PID Controller2/N Copy' +// '' : 'SimModel0621_S3/Controler/PID Controller2/N Gain' +// '' : 'SimModel0621_S3/Controler/PID Controller2/P Copy' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Parallel P Gain' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Reset Signal' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Saturation' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Saturation Fdbk' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Sum' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Sum Fdbk' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Tracking Mode' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Tracking Mode Sum' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Tsamp - Integral' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Tsamp - Ngain' +// '' : 'SimModel0621_S3/Controler/PID Controller2/postSat Signal' +// '' : 'SimModel0621_S3/Controler/PID Controller2/preInt Signal' +// '' : 'SimModel0621_S3/Controler/PID Controller2/preSat Signal' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Anti-windup/Disc. Clamping Parallel' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Anti-windup/Disc. Clamping Parallel/Dead Zone' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Anti-windup/Disc. Clamping Parallel/Dead Zone/Enabled' +// '' : 'SimModel0621_S3/Controler/PID Controller2/D Gain/Internal Parameters' +// '' : 'SimModel0621_S3/Controler/PID Controller2/External Derivative/Error' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Filter/Disc. Forward Euler Filter' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Filter ICs/Internal IC - Filter' +// '' : 'SimModel0621_S3/Controler/PID Controller2/I Gain/Internal Parameters' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Ideal P Gain/Passthrough' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Ideal P Gain Fdbk/Disabled' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Integrator/Discrete' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Integrator ICs/Internal IC' +// '' : 'SimModel0621_S3/Controler/PID Controller2/N Copy/Disabled' +// '' : 'SimModel0621_S3/Controler/PID Controller2/N Gain/Internal Parameters' +// '' : 'SimModel0621_S3/Controler/PID Controller2/P Copy/Disabled' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Parallel P Gain/Internal Parameters' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Reset Signal/Disabled' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Saturation/Enabled' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Saturation Fdbk/Disabled' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Sum/Sum_PID' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Sum Fdbk/Disabled' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Tracking Mode/Disabled' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Tracking Mode Sum/Passthrough' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Tsamp - Integral/TsSignalSpecification' +// '' : 'SimModel0621_S3/Controler/PID Controller2/Tsamp - Ngain/Passthrough' +// '' : 'SimModel0621_S3/Controler/PID Controller2/postSat Signal/Forward_Path' +// '' : 'SimModel0621_S3/Controler/PID Controller2/preInt Signal/Internal PreInt' +// '' : 'SimModel0621_S3/Controler/PID Controller2/preSat Signal/Forward_Path' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Anti-windup' +// '' : 'SimModel0621_S3/Controler/PID Controller3/D Gain' +// '' : 'SimModel0621_S3/Controler/PID Controller3/External Derivative' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Filter' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Filter ICs' +// '' : 'SimModel0621_S3/Controler/PID Controller3/I Gain' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Ideal P Gain' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Ideal P Gain Fdbk' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Integrator' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Integrator ICs' +// '' : 'SimModel0621_S3/Controler/PID Controller3/N Copy' +// '' : 'SimModel0621_S3/Controler/PID Controller3/N Gain' +// '' : 'SimModel0621_S3/Controler/PID Controller3/P Copy' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Parallel P Gain' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Reset Signal' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Saturation' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Saturation Fdbk' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Sum' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Sum Fdbk' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Tracking Mode' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Tracking Mode Sum' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Tsamp - Integral' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Tsamp - Ngain' +// '' : 'SimModel0621_S3/Controler/PID Controller3/postSat Signal' +// '' : 'SimModel0621_S3/Controler/PID Controller3/preInt Signal' +// '' : 'SimModel0621_S3/Controler/PID Controller3/preSat Signal' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Anti-windup/Disc. Clamping Parallel' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Anti-windup/Disc. Clamping Parallel/Dead Zone' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Anti-windup/Disc. Clamping Parallel/Dead Zone/Enabled' +// '' : 'SimModel0621_S3/Controler/PID Controller3/D Gain/Internal Parameters' +// '' : 'SimModel0621_S3/Controler/PID Controller3/External Derivative/Error' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Filter/Disc. Forward Euler Filter' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Filter ICs/Internal IC - Filter' +// '' : 'SimModel0621_S3/Controler/PID Controller3/I Gain/Internal Parameters' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Ideal P Gain/Passthrough' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Ideal P Gain Fdbk/Disabled' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Integrator/Discrete' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Integrator ICs/Internal IC' +// '' : 'SimModel0621_S3/Controler/PID Controller3/N Copy/Disabled' +// '' : 'SimModel0621_S3/Controler/PID Controller3/N Gain/Internal Parameters' +// '' : 'SimModel0621_S3/Controler/PID Controller3/P Copy/Disabled' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Parallel P Gain/Internal Parameters' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Reset Signal/Disabled' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Saturation/Enabled' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Saturation Fdbk/Disabled' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Sum/Sum_PID' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Sum Fdbk/Disabled' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Tracking Mode/Disabled' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Tracking Mode Sum/Passthrough' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Tsamp - Integral/TsSignalSpecification' +// '' : 'SimModel0621_S3/Controler/PID Controller3/Tsamp - Ngain/Passthrough' +// '' : 'SimModel0621_S3/Controler/PID Controller3/postSat Signal/Forward_Path' +// '' : 'SimModel0621_S3/Controler/PID Controller3/preInt Signal/Internal PreInt' +// '' : 'SimModel0621_S3/Controler/PID Controller3/preSat Signal/Forward_Path' #endif // Controler_h_ diff --git a/src/pAUV150/Controler/Controler_data.cpp b/src/pAUV150/Controler/Controler_data.cpp index 7126152..c795973 100644 --- a/src/pAUV150/Controler/Controler_data.cpp +++ b/src/pAUV150/Controler/Controler_data.cpp @@ -7,9 +7,9 @@ // // Code generated for Simulink model 'Controler'. // -// Model version : 5.77 +// Model version : 5.95 // Simulink Coder version : 24.2 (R2024b) 21-Jun-2024 -// C/C++ source code generated on : Thu Jun 26 20:56:30 2025 +// C/C++ source code generated on : Tue Jul 1 15:26:11 2025 // // Target selection: ert.tlc // Embedded hardware selection: Intel->x86-64 (Linux 64) @@ -24,55 +24,45 @@ Controler::P Controler::rtP{ // Variable: pid_depth // Referenced by: - // '/Derivative Gain' - // '/Integral Gain' - // '/Filter Coefficient' - // '/Proportional Gain' + // '/Derivative Gain' + // '/Integral Gain' + // '/Filter Coefficient' + // '/Proportional Gain' { - 2.0, - 0.5, + 10.0, + 0.1, 0.1, 10.0 }, // Variable: pid_heading // Referenced by: - // '/Derivative Gain' - // '/Integral Gain' - // '/Filter Coefficient' - // '/Proportional Gain' + // '/Derivative Gain' + // '/Integral Gain' + // '/Filter Coefficient' + // '/Proportional Gain' { - 5.0, - 0.8, + 1, 0.01, + 0.1, 10.0 }, // Variable: pid_pitch // Referenced by: - // '/Derivative Gain' - // '/Integral Gain' - // '/Filter Coefficient' - // '/Proportional Gain' + // '/Derivative Gain' + // '/Integral Gain' + // '/Filter Coefficient' + // '/Proportional Gain' { - 0.5, - 0.0, + 10.0, + 0.01, 0.1, 10.0 - }, - - // Variable: gamma_depth - // Referenced by: '/Compensation Gain' - - 5.0, - - // Variable: gamma_heading - // Referenced by: '/Compensation Gain' - - 1.0 + } }; // diff --git a/src/pAUV150/Controler/Controler_private.h b/src/pAUV150/Controler/Controler_private.h index 3da9a0a..9e37c98 100644 --- a/src/pAUV150/Controler/Controler_private.h +++ b/src/pAUV150/Controler/Controler_private.h @@ -7,9 +7,9 @@ // // Code generated for Simulink model 'Controler'. // -// Model version : 5.77 +// Model version : 5.95 // Simulink Coder version : 24.2 (R2024b) 21-Jun-2024 -// C/C++ source code generated on : Thu Jun 26 20:56:30 2025 +// C/C++ source code generated on : Tue Jul 1 15:26:11 2025 // // Target selection: ert.tlc // Embedded hardware selection: Intel->x86-64 (Linux 64) diff --git a/src/pAUV150/Controler/Controler_types.h b/src/pAUV150/Controler/Controler_types.h index 0a3df34..cde007a 100644 --- a/src/pAUV150/Controler/Controler_types.h +++ b/src/pAUV150/Controler/Controler_types.h @@ -7,9 +7,9 @@ // // Code generated for Simulink model 'Controler'. // -// Model version : 5.77 +// Model version : 5.95 // Simulink Coder version : 24.2 (R2024b) 21-Jun-2024 -// C/C++ source code generated on : Thu Jun 26 20:56:30 2025 +// C/C++ source code generated on : Tue Jul 1 15:26:11 2025 // // Target selection: ert.tlc // Embedded hardware selection: Intel->x86-64 (Linux 64) diff --git a/src/pAUV150/Controler/rtGetNaN.cpp b/src/pAUV150/Controler/rtGetNaN.cpp index 52704a1..03691d9 100644 --- a/src/pAUV150/Controler/rtGetNaN.cpp +++ b/src/pAUV150/Controler/rtGetNaN.cpp @@ -7,9 +7,9 @@ // // Code generated for Simulink model 'Controler'. // -// Model version : 5.77 +// Model version : 5.95 // Simulink Coder version : 24.2 (R2024b) 21-Jun-2024 -// C/C++ source code generated on : Thu Jun 26 20:56:30 2025 +// C/C++ source code generated on : Tue Jul 1 15:26:11 2025 // // Target selection: ert.tlc // Embedded hardware selection: Intel->x86-64 (Linux 64) diff --git a/src/pAUV150/Controler/rtGetNaN.h b/src/pAUV150/Controler/rtGetNaN.h index 8d070a1..a6b8249 100644 --- a/src/pAUV150/Controler/rtGetNaN.h +++ b/src/pAUV150/Controler/rtGetNaN.h @@ -7,9 +7,9 @@ // // Code generated for Simulink model 'Controler'. // -// Model version : 5.77 +// Model version : 5.95 // Simulink Coder version : 24.2 (R2024b) 21-Jun-2024 -// C/C++ source code generated on : Thu Jun 26 20:56:30 2025 +// C/C++ source code generated on : Tue Jul 1 15:26:11 2025 // // Target selection: ert.tlc // Embedded hardware selection: Intel->x86-64 (Linux 64) diff --git a/src/pAUV150/Controler/rt_nonfinite.cpp b/src/pAUV150/Controler/rt_nonfinite.cpp index 8d33e43..91c0cbb 100644 --- a/src/pAUV150/Controler/rt_nonfinite.cpp +++ b/src/pAUV150/Controler/rt_nonfinite.cpp @@ -7,9 +7,9 @@ // // Code generated for Simulink model 'Controler'. // -// Model version : 5.77 +// Model version : 5.95 // Simulink Coder version : 24.2 (R2024b) 21-Jun-2024 -// C/C++ source code generated on : Thu Jun 26 20:56:30 2025 +// C/C++ source code generated on : Tue Jul 1 15:26:11 2025 // // Target selection: ert.tlc // Embedded hardware selection: Intel->x86-64 (Linux 64) diff --git a/src/pAUV150/Controler/rt_nonfinite.h b/src/pAUV150/Controler/rt_nonfinite.h index 77e59dc..765697d 100644 --- a/src/pAUV150/Controler/rt_nonfinite.h +++ b/src/pAUV150/Controler/rt_nonfinite.h @@ -7,9 +7,9 @@ // // Code generated for Simulink model 'Controler'. // -// Model version : 5.77 +// Model version : 5.95 // Simulink Coder version : 24.2 (R2024b) 21-Jun-2024 -// C/C++ source code generated on : Thu Jun 26 20:56:30 2025 +// C/C++ source code generated on : Tue Jul 1 15:26:11 2025 // // Target selection: ert.tlc // Embedded hardware selection: Intel->x86-64 (Linux 64) diff --git a/src/pAUV150/Controler/rtmodel.h b/src/pAUV150/Controler/rtmodel.h deleted file mode 100644 index 817ce1a..0000000 --- a/src/pAUV150/Controler/rtmodel.h +++ /dev/null @@ -1,44 +0,0 @@ -// -// Academic License - for use in teaching, academic research, and meeting -// course requirements at degree granting institutions only. Not for -// government, commercial, or other organizational use. -// -// File: rtmodel.h -// -// Code generated for Simulink model 'Controler'. -// -// Model version : 5.77 -// Simulink Coder version : 24.2 (R2024b) 21-Jun-2024 -// C/C++ source code generated on : Thu Jun 26 20:56:30 2025 -// -// Target selection: ert.tlc -// Embedded hardware selection: Intel->x86-64 (Linux 64) -// Code generation objectives: -// 1. Execution efficiency -// 2. RAM efficiency -// Validation result: Not run -// -#ifndef rtmodel_h_ -#define rtmodel_h_ -#include "Controler.h" -#define MODEL_CLASSNAME Controler -#define MODEL_STEPNAME step - -// -// ROOT_IO_FORMAT: 0 (Individual arguments) -// ROOT_IO_FORMAT: 1 (Structure reference) -// ROOT_IO_FORMAT: 2 (Part of model data structure) - -#define ROOT_IO_FORMAT 1 - -// Macros generated for backwards compatibility -#ifndef rtmGetStopRequested -#define rtmGetStopRequested(rtm) ((void*) 0) -#endif -#endif // rtmodel_h_ - -// -// File trailer for generated code. -// -// [EOF] -// diff --git a/src/pAUV150/Controler/rtwtypes.h b/src/pAUV150/Controler/rtwtypes.h index c607d90..cd90efa 100644 --- a/src/pAUV150/Controler/rtwtypes.h +++ b/src/pAUV150/Controler/rtwtypes.h @@ -7,9 +7,9 @@ // // Code generated for Simulink model 'Controler'. // -// Model version : 5.77 +// Model version : 5.95 // Simulink Coder version : 24.2 (R2024b) 21-Jun-2024 -// C/C++ source code generated on : Thu Jun 26 20:56:30 2025 +// C/C++ source code generated on : Tue Jul 1 15:26:11 2025 // // Target selection: ert.tlc // Embedded hardware selection: Intel->x86-64 (Linux 64)