Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Revision 0:75d9a6364691, committed 2020-04-13
- Comitter:
- Glaxys_finest1
- Date:
- Mon Apr 13 19:08:23 2020 +0000
- Commit message:
- test1
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/S_con1.cpp Mon Apr 13 19:08:23 2020 +0000
@@ -0,0 +1,406 @@
+//
+// File: S_con1.cpp
+//
+// Code generated for Simulink model 'S_con1'.
+//
+// Model version : 1.1
+// Simulink Coder version : 9.1 (R2019a) 23-Nov-2018
+// C/C++ source code generated on : Mon Feb 3 20:42:16 2020
+//
+// Target selection: ert.tlc
+// Embedded hardware selection: ARM Compatible->ARM 7
+// Code generation objectives:
+// 1. Execution efficiency
+// 2. RAM efficiency
+// Validation result: Not run
+//
+#include "S_con1.h"
+
+static void MATLABFunction(real_T rtu_pwm, real_T *rty_y);
+
+//
+// Output and update for atomic system:
+// '<Root>/MATLAB Function'
+// '<Root>/MATLAB Function2'
+// '<Root>/MATLAB Function4'
+//
+static void MATLABFunction(real_T rtu_pwm, real_T *rty_y)
+{
+ *rty_y = (rtu_pwm - 1500.0) / 1000.0;
+}
+
+// Model step function
+void S_con1ModelClass::step()
+{
+ real_T A[4];
+ static const real_T a[16] = { 0.25, 0.25, 0.25, 0.25, 0.0, 2.193, 0.0, -2.193,
+ -2.193, 0.0, 2.193, 0.0, 4.2591, -4.2591, 4.2591, -4.2591 };
+
+ real_T rtb_FilterCoefficient_b;
+ real_T rtb_FilterCoefficient_p;
+ real_T rtb_Integrator_nd;
+ real_T rtb_Integrator_m;
+ real_T rtb_Filter_d;
+ real_T rtb_FilterCoefficient_e;
+ real_T rtb_Add3;
+ real_T rtb_FilterCoefficient_o;
+ int32_T i;
+ real_T rtb_VectorConcatenate_idx_0;
+ real_T rtb_Gain1_idx_1;
+ real_T rtb_VectorConcatenate_idx_1;
+ real_T rtb_VectorConcatenate_idx_2;
+ real_T rtb_VectorConcatenate_idx_3;
+ real_T rtb_TmpSignalConversionAtSFun_0;
+ real_T rtb_TmpSignalConversionAtSFun_1;
+ real_T rtb_angle_des_idx_0;
+
+ // MATLAB Function: '<Root>/MATLAB Function' incorporates:
+ // Inport: '<Root>/pitch'
+
+ MATLABFunction(rtU.pitch, &rtb_Integrator_m);
+
+ // MATLAB Function: '<Root>/MATLAB Function2' incorporates:
+ // Inport: '<Root>/roll'
+
+ MATLABFunction(rtU.roll, &rtb_Filter_d);
+
+ // MATLAB Function: '<Root>/MATLAB Function4' incorporates:
+ // Inport: '<Root>/yaw'
+
+ MATLABFunction(rtU.yaw, &rtb_Add3);
+
+ // Outputs for Atomic SubSystem: '<Root>/small_angle_control'
+ // Gain: '<S7>/Gain1'
+ rtb_Gain1_idx_1 = 0.0066666666666666671 * rtb_Filter_d;
+
+ // Sum: '<S15>/Add1' incorporates:
+ // Gain: '<S7>/Gain1'
+ // Inport: '<Root>/vx'
+
+ rtb_Integrator_m = 0.0066666666666666671 * rtb_Integrator_m - rtU.vx;
+
+ // Gain: '<S137>/Filter Coefficient' incorporates:
+ // DiscreteIntegrator: '<S129>/Filter'
+ // Gain: '<S128>/Derivative Gain'
+ // Sum: '<S129>/SumD'
+
+ rtb_Filter_d = (1.68 * rtb_Integrator_m - rtDW.Filter_DSTATE) * 100.0;
+
+ // Sum: '<S15>/Add2' incorporates:
+ // Inport: '<Root>/vy'
+
+ rtb_Gain1_idx_1 -= rtU.vy;
+
+ // Gain: '<S269>/Filter Coefficient' incorporates:
+ // DiscreteIntegrator: '<S261>/Filter'
+ // Gain: '<S260>/Derivative Gain'
+ // Sum: '<S261>/SumD'
+
+ rtb_FilterCoefficient_b = (1.6832 * rtb_Gain1_idx_1 - rtDW.Filter_DSTATE_p) *
+ 206.264558996617;
+
+ // SignalConversion: '<S14>/TmpSignal ConversionAt SFunction Inport1' incorporates:
+ // DiscreteIntegrator: '<S134>/Integrator'
+ // DiscreteIntegrator: '<S266>/Integrator'
+ // Gain: '<S139>/Proportional Gain'
+ // Gain: '<S271>/Proportional Gain'
+ // MATLAB Function: '<S7>/MATLAB Function4'
+ // Sum: '<S143>/Sum'
+ // Sum: '<S275>/Sum'
+
+ rtb_TmpSignalConversionAtSFun_0 = (0.57 * rtb_Integrator_m +
+ rtDW.Integrator_DSTATE) + rtb_Filter_d;
+ rtb_TmpSignalConversionAtSFun_1 = (0.57 * rtb_Gain1_idx_1 +
+ rtDW.Integrator_DSTATE_c) + rtb_FilterCoefficient_b;
+
+ // MATLAB Function: '<S7>/MATLAB Function4'
+ rtb_FilterCoefficient_p = std::cos(rtb_Add3);
+ rtb_VectorConcatenate_idx_1 = std::sin(rtb_Add3);
+ rtb_angle_des_idx_0 = (rtb_TmpSignalConversionAtSFun_0 *
+ rtb_VectorConcatenate_idx_1 - rtb_TmpSignalConversionAtSFun_1 *
+ rtb_FilterCoefficient_p) * 0.1019367991845056;
+ rtb_TmpSignalConversionAtSFun_1 = (rtb_TmpSignalConversionAtSFun_0 *
+ rtb_FilterCoefficient_p + rtb_TmpSignalConversionAtSFun_1 *
+ rtb_VectorConcatenate_idx_1) * 0.1019367991845056;
+
+ // Saturate: '<S7>/Saturation'
+ rtb_VectorConcatenate_idx_1 = rtb_angle_des_idx_0;
+ if (rtb_angle_des_idx_0 > 0.26179938779914941) {
+ rtb_VectorConcatenate_idx_1 = 0.26179938779914941;
+ } else {
+ if (rtb_angle_des_idx_0 < -0.26179938779914941) {
+ rtb_VectorConcatenate_idx_1 = -0.26179938779914941;
+ }
+ }
+
+ rtb_angle_des_idx_0 = rtb_VectorConcatenate_idx_1;
+ rtb_VectorConcatenate_idx_1 = rtb_TmpSignalConversionAtSFun_1;
+ if (rtb_TmpSignalConversionAtSFun_1 > 0.26179938779914941) {
+ rtb_VectorConcatenate_idx_1 = 0.26179938779914941;
+ } else {
+ if (rtb_TmpSignalConversionAtSFun_1 < -0.26179938779914941) {
+ rtb_VectorConcatenate_idx_1 = -0.26179938779914941;
+ }
+ }
+
+ rtb_TmpSignalConversionAtSFun_1 = rtb_VectorConcatenate_idx_1;
+
+ // MATLAB Function: '<S7>/MATLAB Function4'
+ rtb_VectorConcatenate_idx_1 = rtb_Add3;
+
+ // Saturate: '<S7>/Saturation' incorporates:
+ // MATLAB Function: '<S7>/MATLAB Function4'
+
+ if (rtb_Add3 > 0.26179938779914941) {
+ rtb_VectorConcatenate_idx_1 = 0.26179938779914941;
+ } else {
+ if (rtb_Add3 < -0.26179938779914941) {
+ rtb_VectorConcatenate_idx_1 = -0.26179938779914941;
+ }
+ }
+
+ // Sum: '<S16>/Add1' incorporates:
+ // Inport: '<Root>/phi'
+
+ rtb_angle_des_idx_0 -= rtU.phi;
+
+ // Gain: '<S181>/Filter Coefficient' incorporates:
+ // DiscreteIntegrator: '<S173>/Filter'
+ // Gain: '<S172>/Derivative Gain'
+ // Sum: '<S173>/SumD'
+
+ rtb_TmpSignalConversionAtSFun_0 = (0.171115754916436 * rtb_angle_des_idx_0 -
+ rtDW.Filter_DSTATE_b) * 176.087006843524;
+
+ // Sum: '<S16>/Add2' incorporates:
+ // Inport: '<Root>/theta'
+
+ rtb_TmpSignalConversionAtSFun_1 -= rtU.theta;
+
+ // Gain: '<S49>/Filter Coefficient' incorporates:
+ // DiscreteIntegrator: '<S41>/Filter'
+ // Gain: '<S40>/Derivative Gain'
+ // Sum: '<S41>/SumD'
+
+ rtb_FilterCoefficient_p = (0.171115754916436 * rtb_TmpSignalConversionAtSFun_1
+ - rtDW.Filter_DSTATE_a) * 176.087006843524;
+
+ // Sum: '<S16>/Add3' incorporates:
+ // Inport: '<Root>/psy'
+
+ rtb_Integrator_nd = rtb_VectorConcatenate_idx_1 - rtU.psy;
+
+ // Gain: '<S93>/Filter Coefficient' incorporates:
+ // DiscreteIntegrator: '<S85>/Filter'
+ // Gain: '<S84>/Derivative Gain'
+ // Sum: '<S85>/SumD'
+
+ rtb_FilterCoefficient_e = (0.0490884878345462 * rtb_Integrator_nd -
+ rtDW.Filter_DSTATE_ai) * 270.43836739932;
+
+ // SignalConversion: '<S7>/ConcatBufferAtVector ConcatenateIn2' incorporates:
+ // DiscreteIntegrator: '<S178>/Integrator'
+ // DiscreteIntegrator: '<S46>/Integrator'
+ // DiscreteIntegrator: '<S90>/Integrator'
+ // Gain: '<S183>/Proportional Gain'
+ // Gain: '<S51>/Proportional Gain'
+ // Gain: '<S95>/Proportional Gain'
+ // Sum: '<S187>/Sum'
+ // Sum: '<S55>/Sum'
+ // Sum: '<S99>/Sum'
+
+ rtb_VectorConcatenate_idx_1 = (0.421511657975665 * rtb_angle_des_idx_0 +
+ rtDW.Integrator_DSTATE_p) + rtb_TmpSignalConversionAtSFun_0;
+ rtb_VectorConcatenate_idx_2 = (0.421511657975665 *
+ rtb_TmpSignalConversionAtSFun_1 + rtDW.Integrator_DSTATE_b) +
+ rtb_FilterCoefficient_p;
+ rtb_VectorConcatenate_idx_3 = (0.00309186213155581 * rtb_Integrator_nd +
+ rtDW.Integrator_DSTATE_m) + rtb_FilterCoefficient_e;
+
+ // Sum: '<S15>/Add3' incorporates:
+ // Gain: '<S7>/Gain1'
+ // Inport: '<Root>/altitude'
+ // Inport: '<Root>/r_z'
+ // MATLAB Function: '<Root>/MATLAB Function3'
+
+ rtb_Add3 = (rtU.altitude - 1000.0) * 2.0 / 1000.0 * 0.0066666666666666671 -
+ rtU.r_z;
+
+ // Gain: '<S225>/Filter Coefficient' incorporates:
+ // DiscreteIntegrator: '<S217>/Filter'
+ // Gain: '<S216>/Derivative Gain'
+ // Sum: '<S217>/SumD'
+
+ rtb_FilterCoefficient_o = (3.68 * rtb_Add3 - rtDW.Filter_DSTATE_o) *
+ 19.9677854964375;
+
+ // Sum: '<S7>/Add' incorporates:
+ // DiscreteIntegrator: '<S222>/Integrator'
+ // Gain: '<S227>/Proportional Gain'
+ // Sum: '<S231>/Sum'
+
+ rtb_VectorConcatenate_idx_0 = ((3.1623 * rtb_Add3 + rtDW.Integrator_DSTATE_bz)
+ + rtb_FilterCoefficient_o) + 7.3575;
+
+ // Update for DiscreteIntegrator: '<S134>/Integrator' incorporates:
+ // Gain: '<S131>/Integral Gain'
+
+ rtDW.Integrator_DSTATE += 0.04922 * rtb_Integrator_m * 0.0023;
+
+ // Update for DiscreteIntegrator: '<S129>/Filter'
+ rtDW.Filter_DSTATE += 0.0023 * rtb_Filter_d;
+
+ // Update for DiscreteIntegrator: '<S266>/Integrator' incorporates:
+ // Gain: '<S263>/Integral Gain'
+
+ rtDW.Integrator_DSTATE_c += 0.0492289691165195 * rtb_Gain1_idx_1 * 0.0023;
+
+ // Update for DiscreteIntegrator: '<S261>/Filter'
+ rtDW.Filter_DSTATE_p += 0.0023 * rtb_FilterCoefficient_b;
+
+ // Update for DiscreteIntegrator: '<S178>/Integrator' incorporates:
+ // Gain: '<S175>/Integral Gain'
+
+ rtDW.Integrator_DSTATE_p += 0.0 * rtb_angle_des_idx_0 * 0.0023;
+
+ // Update for DiscreteIntegrator: '<S173>/Filter'
+ rtDW.Filter_DSTATE_b += 0.0023 * rtb_TmpSignalConversionAtSFun_0;
+
+ // Update for DiscreteIntegrator: '<S46>/Integrator' incorporates:
+ // Gain: '<S43>/Integral Gain'
+
+ rtDW.Integrator_DSTATE_b += 0.0 * rtb_TmpSignalConversionAtSFun_1 * 0.0023;
+
+ // Update for DiscreteIntegrator: '<S41>/Filter'
+ rtDW.Filter_DSTATE_a += 0.0023 * rtb_FilterCoefficient_p;
+
+ // Update for DiscreteIntegrator: '<S90>/Integrator' incorporates:
+ // Gain: '<S87>/Integral Gain'
+
+ rtDW.Integrator_DSTATE_m += 0.0 * rtb_Integrator_nd * 0.0023;
+
+ // Update for DiscreteIntegrator: '<S85>/Filter'
+ rtDW.Filter_DSTATE_ai += 0.0023 * rtb_FilterCoefficient_e;
+
+ // Update for DiscreteIntegrator: '<S222>/Integrator' incorporates:
+ // Gain: '<S219>/Integral Gain'
+
+ rtDW.Integrator_DSTATE_bz += 0.0506661578399485 * rtb_Add3 * 0.0023;
+
+ // Update for DiscreteIntegrator: '<S217>/Filter'
+ rtDW.Filter_DSTATE_o += 0.0023 * rtb_FilterCoefficient_o;
+
+ // End of Outputs for SubSystem: '<Root>/small_angle_control'
+
+ // MATLAB Function: '<Root>/MATLAB Function1'
+ for (i = 0; i < 4; i++) {
+ rtb_Integrator_m = a[i + 12] * rtb_VectorConcatenate_idx_3 + (a[i + 8] *
+ rtb_VectorConcatenate_idx_2 + (a[i + 4] * rtb_VectorConcatenate_idx_1 +
+ a[i] * rtb_VectorConcatenate_idx_0));
+ A[i] = rtb_Integrator_m;
+ }
+
+ if (A[0] < 0.0) {
+ A[0] = 0.0;
+ }
+
+ if (A[1] < 0.0) {
+ A[1] = 0.0;
+ }
+
+ if (A[2] < 0.0) {
+ A[2] = 0.0;
+ }
+
+ if (A[3] < 0.0) {
+ A[3] = 0.0;
+ }
+
+ // MATLAB Function: '<Root>/rpm2duty' incorporates:
+ // MATLAB Function: '<Root>/MATLAB Function1'
+
+ rtb_Integrator_m = (3485.3574033876184 * std::sqrt(A[0]) * 0.1865 + 800.0) /
+ 20000.0;
+ rtb_Filter_d = (3485.3574033876184 * std::sqrt(A[1]) * 0.1865 + 800.0) /
+ 20000.0;
+ rtb_Add3 = (3485.3574033876184 * std::sqrt(A[2]) * 0.1865 + 800.0) / 20000.0;
+ rtb_Gain1_idx_1 = (3485.3574033876184 * std::sqrt(A[3]) * 0.1865 + 800.0) /
+ 20000.0;
+
+ // Saturate: '<Root>/Saturation'
+ if (rtb_Integrator_m > 0.1) {
+ // Outport: '<Root>/M1'
+ rtY.M1 = 0.1;
+ } else if (rtb_Integrator_m < 0.05) {
+ // Outport: '<Root>/M1'
+ rtY.M1 = 0.05;
+ } else {
+ // Outport: '<Root>/M1'
+ rtY.M1 = rtb_Integrator_m;
+ }
+
+ if (rtb_Filter_d > 0.1) {
+ // Outport: '<Root>/M2'
+ rtY.M2 = 0.1;
+ } else if (rtb_Filter_d < 0.05) {
+ // Outport: '<Root>/M2'
+ rtY.M2 = 0.05;
+ } else {
+ // Outport: '<Root>/M2'
+ rtY.M2 = rtb_Filter_d;
+ }
+
+ if (rtb_Add3 > 0.1) {
+ // Outport: '<Root>/M3'
+ rtY.M3 = 0.1;
+ } else if (rtb_Add3 < 0.05) {
+ // Outport: '<Root>/M3'
+ rtY.M3 = 0.05;
+ } else {
+ // Outport: '<Root>/M3'
+ rtY.M3 = rtb_Add3;
+ }
+
+ if (rtb_Gain1_idx_1 > 0.1) {
+ // Outport: '<Root>/M4'
+ rtY.M4 = 0.1;
+ } else if (rtb_Gain1_idx_1 < 0.05) {
+ // Outport: '<Root>/M4'
+ rtY.M4 = 0.05;
+ } else {
+ // Outport: '<Root>/M4'
+ rtY.M4 = rtb_Gain1_idx_1;
+ }
+
+ // End of Saturate: '<Root>/Saturation'
+}
+
+// Model initialize function
+void S_con1ModelClass::initialize()
+{
+ // (no initialization code required)
+}
+
+// Constructor
+S_con1ModelClass::S_con1ModelClass()
+{
+ // Currently there is no constructor body generated.
+}
+
+// Destructor
+S_con1ModelClass::~S_con1ModelClass()
+{
+ // Currently there is no destructor body generated.
+}
+
+// Real-Time Model get method
+RT_MODEL * S_con1ModelClass::getRTM()
+{
+ return (&rtM);
+}
+
+//
+// File trailer for generated code.
+//
+// [EOF]
+//
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/S_con1.h Mon Apr 13 19:08:23 2020 +0000
@@ -0,0 +1,506 @@
+//
+// File: S_con1.h
+//
+// Code generated for Simulink model 'S_con1'.
+//
+// Model version : 1.1
+// Simulink Coder version : 9.1 (R2019a) 23-Nov-2018
+// C/C++ source code generated on : Mon Feb 3 20:42:16 2020
+//
+// Target selection: ert.tlc
+// Embedded hardware selection: ARM Compatible->ARM 7
+// Code generation objectives:
+// 1. Execution efficiency
+// 2. RAM efficiency
+// Validation result: Not run
+//
+#ifndef RTW_HEADER_S_con1_h_
+#define RTW_HEADER_S_con1_h_
+#include <cmath>
+#ifndef S_con1_COMMON_INCLUDES_
+# define S_con1_COMMON_INCLUDES_
+#include "rtwtypes.h"
+#endif // S_con1_COMMON_INCLUDES_
+
+// Macros for accessing real-time model data structure
+#ifndef rtmGetErrorStatus
+# define rtmGetErrorStatus(rtm) ((rtm)->errorStatus)
+#endif
+
+#ifndef rtmSetErrorStatus
+# define rtmSetErrorStatus(rtm, val) ((rtm)->errorStatus = (val))
+#endif
+
+// Forward declaration for rtModel
+typedef struct tag_RTM RT_MODEL;
+
+// Block signals and states (default storage) for system '<Root>'
+typedef struct {
+ real_T Integrator_DSTATE; // '<S134>/Integrator'
+ real_T Filter_DSTATE; // '<S129>/Filter'
+ real_T Integrator_DSTATE_c; // '<S266>/Integrator'
+ real_T Filter_DSTATE_p; // '<S261>/Filter'
+ real_T Integrator_DSTATE_p; // '<S178>/Integrator'
+ real_T Filter_DSTATE_b; // '<S173>/Filter'
+ real_T Integrator_DSTATE_b; // '<S46>/Integrator'
+ real_T Filter_DSTATE_a; // '<S41>/Filter'
+ real_T Integrator_DSTATE_m; // '<S90>/Integrator'
+ real_T Filter_DSTATE_ai; // '<S85>/Filter'
+ real_T Integrator_DSTATE_bz; // '<S222>/Integrator'
+ real_T Filter_DSTATE_o; // '<S217>/Filter'
+} DW;
+
+// External inputs (root inport signals with default storage)
+typedef struct {
+ real_T vx; // '<Root>/vx'
+ real_T vy; // '<Root>/vy'
+ real_T r_z; // '<Root>/r_z'
+ real_T pitch; // '<Root>/pitch'
+ real_T roll; // '<Root>/roll'
+ real_T altitude; // '<Root>/altitude'
+ real_T yaw; // '<Root>/yaw'
+ real_T phi; // '<Root>/phi'
+ real_T theta; // '<Root>/theta'
+ real_T psy; // '<Root>/psy'
+} ExtU;
+
+// External outputs (root outports fed by signals with default storage)
+typedef struct {
+ real_T M1; // '<Root>/M1'
+ real_T M2; // '<Root>/M2'
+ real_T M3; // '<Root>/M3'
+ real_T M4; // '<Root>/M4'
+} ExtY;
+
+// Real-time Model Data Structure
+struct tag_RTM {
+ const char_T * volatile errorStatus;
+};
+
+// Class declaration for model S_con1
+class S_con1ModelClass {
+ // public data and function members
+ public:
+ // model initialize function
+ void initialize();
+
+ // model step function
+ void step();
+
+ // Constructor
+ S_con1ModelClass();
+
+ // Destructor
+ ~S_con1ModelClass();
+
+ // Root-level input access methods
+
+ // Root inport: '<Root>/vx' set method
+ void setvx(real_T localArgInput)
+ {
+ rtU.vx = localArgInput;
+ }
+
+ // Root inport: '<Root>/vy' set method
+ void setvy(real_T localArgInput)
+ {
+ rtU.vy = localArgInput;
+ }
+
+ // Root inport: '<Root>/r_z' set method
+ void setr_z(real_T localArgInput)
+ {
+ rtU.r_z = localArgInput;
+ }
+
+ // Root inport: '<Root>/pitch' set method
+ void setpitch(real_T localArgInput)
+ {
+ rtU.pitch = localArgInput;
+ }
+
+ // Root inport: '<Root>/roll' set method
+ void setroll(real_T localArgInput)
+ {
+ rtU.roll = localArgInput;
+ }
+
+ // Root inport: '<Root>/altitude' set method
+ void setaltitude(real_T localArgInput)
+ {
+ rtU.altitude = localArgInput;
+ }
+
+ // Root inport: '<Root>/yaw' set method
+ void setyaw(real_T localArgInput)
+ {
+ rtU.yaw = localArgInput;
+ }
+
+ // Root inport: '<Root>/phi' set method
+ void setphi(real_T localArgInput)
+ {
+ rtU.phi = localArgInput;
+ }
+
+ // Root inport: '<Root>/theta' set method
+ void settheta(real_T localArgInput)
+ {
+ rtU.theta = localArgInput;
+ }
+
+ // Root inport: '<Root>/psy' set method
+ void setpsy(real_T localArgInput)
+ {
+ rtU.psy = localArgInput;
+ }
+
+ // Root-level output access methods
+
+ // Root outport: '<Root>/M1' get method
+ real_T getM1() const
+ {
+ return rtY.M1;
+ }
+
+ // Root outport: '<Root>/M2' get method
+ real_T getM2() const
+ {
+ return rtY.M2;
+ }
+
+ // Root outport: '<Root>/M3' get method
+ real_T getM3() const
+ {
+ return rtY.M3;
+ }
+
+ // Root outport: '<Root>/M4' get method
+ real_T getM4() const
+ {
+ return rtY.M4;
+ }
+
+ // Real-Time Model get method
+ RT_MODEL * getRTM();
+
+ // protected data and function members
+ protected:
+ // External inputs
+ ExtU rtU;
+
+ // External outputs
+ ExtY rtY;
+
+ // private data and function members
+ private:
+ // Block signals and states
+ DW rtDW;
+
+ // Real-Time Model
+ RT_MODEL rtM;
+};
+
+//-
+// The generated code includes comments that allow you to trace directly
+// back to the appropriate location in the model. The basic format
+// is <system>/block_name, where system is the system number (uniquely
+// assigned by Simulink) and block_name is the name of the block.
+//
+// Use the MATLAB hilite_system command to trace the generated code back
+// to the model. For example,
+//
+// hilite_system('<S3>') - opens system 3
+// hilite_system('<S3>/Kp') - opens and selects block Kp which resides in S3
+//
+// Here is the system hierarchy for this model
+//
+// '<Root>' : 'S_con1'
+// '<S1>' : 'S_con1/MATLAB Function'
+// '<S2>' : 'S_con1/MATLAB Function1'
+// '<S3>' : 'S_con1/MATLAB Function2'
+// '<S4>' : 'S_con1/MATLAB Function3'
+// '<S5>' : 'S_con1/MATLAB Function4'
+// '<S6>' : 'S_con1/rpm2duty'
+// '<S7>' : 'S_con1/small_angle_control'
+// '<S8>' : 'S_con1/small_angle_control/Discrete PID Controller1'
+// '<S9>' : 'S_con1/small_angle_control/Discrete PID Controller2'
+// '<S10>' : 'S_con1/small_angle_control/Discrete PID Controller3'
+// '<S11>' : 'S_con1/small_angle_control/Discrete PID Controller4'
+// '<S12>' : 'S_con1/small_angle_control/Discrete PID Controller5'
+// '<S13>' : 'S_con1/small_angle_control/Discrete PID Controller6'
+// '<S14>' : 'S_con1/small_angle_control/MATLAB Function4'
+// '<S15>' : 'S_con1/small_angle_control/Subsystem'
+// '<S16>' : 'S_con1/small_angle_control/Subsystem1'
+// '<S17>' : 'S_con1/small_angle_control/Discrete PID Controller1/Anti-windup'
+// '<S18>' : 'S_con1/small_angle_control/Discrete PID Controller1/D Gain'
+// '<S19>' : 'S_con1/small_angle_control/Discrete PID Controller1/Filter'
+// '<S20>' : 'S_con1/small_angle_control/Discrete PID Controller1/Filter ICs'
+// '<S21>' : 'S_con1/small_angle_control/Discrete PID Controller1/I Gain'
+// '<S22>' : 'S_con1/small_angle_control/Discrete PID Controller1/Ideal P Gain'
+// '<S23>' : 'S_con1/small_angle_control/Discrete PID Controller1/Ideal P Gain Fdbk'
+// '<S24>' : 'S_con1/small_angle_control/Discrete PID Controller1/Integrator'
+// '<S25>' : 'S_con1/small_angle_control/Discrete PID Controller1/Integrator ICs'
+// '<S26>' : 'S_con1/small_angle_control/Discrete PID Controller1/N Copy'
+// '<S27>' : 'S_con1/small_angle_control/Discrete PID Controller1/N Gain'
+// '<S28>' : 'S_con1/small_angle_control/Discrete PID Controller1/P Copy'
+// '<S29>' : 'S_con1/small_angle_control/Discrete PID Controller1/Parallel P Gain'
+// '<S30>' : 'S_con1/small_angle_control/Discrete PID Controller1/Reset Signal'
+// '<S31>' : 'S_con1/small_angle_control/Discrete PID Controller1/Saturation'
+// '<S32>' : 'S_con1/small_angle_control/Discrete PID Controller1/Saturation Fdbk'
+// '<S33>' : 'S_con1/small_angle_control/Discrete PID Controller1/Sum'
+// '<S34>' : 'S_con1/small_angle_control/Discrete PID Controller1/Sum Fdbk'
+// '<S35>' : 'S_con1/small_angle_control/Discrete PID Controller1/Tracking Mode'
+// '<S36>' : 'S_con1/small_angle_control/Discrete PID Controller1/Tracking Mode Sum'
+// '<S37>' : 'S_con1/small_angle_control/Discrete PID Controller1/postSat Signal'
+// '<S38>' : 'S_con1/small_angle_control/Discrete PID Controller1/preSat Signal'
+// '<S39>' : 'S_con1/small_angle_control/Discrete PID Controller1/Anti-windup/Passthrough'
+// '<S40>' : 'S_con1/small_angle_control/Discrete PID Controller1/D Gain/Internal Parameters'
+// '<S41>' : 'S_con1/small_angle_control/Discrete PID Controller1/Filter/Disc. Forward Euler Filter'
+// '<S42>' : 'S_con1/small_angle_control/Discrete PID Controller1/Filter ICs/Internal IC - Filter'
+// '<S43>' : 'S_con1/small_angle_control/Discrete PID Controller1/I Gain/Internal Parameters'
+// '<S44>' : 'S_con1/small_angle_control/Discrete PID Controller1/Ideal P Gain/Passthrough'
+// '<S45>' : 'S_con1/small_angle_control/Discrete PID Controller1/Ideal P Gain Fdbk/Disabled'
+// '<S46>' : 'S_con1/small_angle_control/Discrete PID Controller1/Integrator/Discrete'
+// '<S47>' : 'S_con1/small_angle_control/Discrete PID Controller1/Integrator ICs/Internal IC'
+// '<S48>' : 'S_con1/small_angle_control/Discrete PID Controller1/N Copy/Disabled'
+// '<S49>' : 'S_con1/small_angle_control/Discrete PID Controller1/N Gain/Internal Parameters'
+// '<S50>' : 'S_con1/small_angle_control/Discrete PID Controller1/P Copy/Disabled'
+// '<S51>' : 'S_con1/small_angle_control/Discrete PID Controller1/Parallel P Gain/Internal Parameters'
+// '<S52>' : 'S_con1/small_angle_control/Discrete PID Controller1/Reset Signal/Disabled'
+// '<S53>' : 'S_con1/small_angle_control/Discrete PID Controller1/Saturation/Passthrough'
+// '<S54>' : 'S_con1/small_angle_control/Discrete PID Controller1/Saturation Fdbk/Disabled'
+// '<S55>' : 'S_con1/small_angle_control/Discrete PID Controller1/Sum/Sum_PID'
+// '<S56>' : 'S_con1/small_angle_control/Discrete PID Controller1/Sum Fdbk/Disabled'
+// '<S57>' : 'S_con1/small_angle_control/Discrete PID Controller1/Tracking Mode/Disabled'
+// '<S58>' : 'S_con1/small_angle_control/Discrete PID Controller1/Tracking Mode Sum/Passthrough'
+// '<S59>' : 'S_con1/small_angle_control/Discrete PID Controller1/postSat Signal/Forward_Path'
+// '<S60>' : 'S_con1/small_angle_control/Discrete PID Controller1/preSat Signal/Forward_Path'
+// '<S61>' : 'S_con1/small_angle_control/Discrete PID Controller2/Anti-windup'
+// '<S62>' : 'S_con1/small_angle_control/Discrete PID Controller2/D Gain'
+// '<S63>' : 'S_con1/small_angle_control/Discrete PID Controller2/Filter'
+// '<S64>' : 'S_con1/small_angle_control/Discrete PID Controller2/Filter ICs'
+// '<S65>' : 'S_con1/small_angle_control/Discrete PID Controller2/I Gain'
+// '<S66>' : 'S_con1/small_angle_control/Discrete PID Controller2/Ideal P Gain'
+// '<S67>' : 'S_con1/small_angle_control/Discrete PID Controller2/Ideal P Gain Fdbk'
+// '<S68>' : 'S_con1/small_angle_control/Discrete PID Controller2/Integrator'
+// '<S69>' : 'S_con1/small_angle_control/Discrete PID Controller2/Integrator ICs'
+// '<S70>' : 'S_con1/small_angle_control/Discrete PID Controller2/N Copy'
+// '<S71>' : 'S_con1/small_angle_control/Discrete PID Controller2/N Gain'
+// '<S72>' : 'S_con1/small_angle_control/Discrete PID Controller2/P Copy'
+// '<S73>' : 'S_con1/small_angle_control/Discrete PID Controller2/Parallel P Gain'
+// '<S74>' : 'S_con1/small_angle_control/Discrete PID Controller2/Reset Signal'
+// '<S75>' : 'S_con1/small_angle_control/Discrete PID Controller2/Saturation'
+// '<S76>' : 'S_con1/small_angle_control/Discrete PID Controller2/Saturation Fdbk'
+// '<S77>' : 'S_con1/small_angle_control/Discrete PID Controller2/Sum'
+// '<S78>' : 'S_con1/small_angle_control/Discrete PID Controller2/Sum Fdbk'
+// '<S79>' : 'S_con1/small_angle_control/Discrete PID Controller2/Tracking Mode'
+// '<S80>' : 'S_con1/small_angle_control/Discrete PID Controller2/Tracking Mode Sum'
+// '<S81>' : 'S_con1/small_angle_control/Discrete PID Controller2/postSat Signal'
+// '<S82>' : 'S_con1/small_angle_control/Discrete PID Controller2/preSat Signal'
+// '<S83>' : 'S_con1/small_angle_control/Discrete PID Controller2/Anti-windup/Passthrough'
+// '<S84>' : 'S_con1/small_angle_control/Discrete PID Controller2/D Gain/Internal Parameters'
+// '<S85>' : 'S_con1/small_angle_control/Discrete PID Controller2/Filter/Disc. Forward Euler Filter'
+// '<S86>' : 'S_con1/small_angle_control/Discrete PID Controller2/Filter ICs/Internal IC - Filter'
+// '<S87>' : 'S_con1/small_angle_control/Discrete PID Controller2/I Gain/Internal Parameters'
+// '<S88>' : 'S_con1/small_angle_control/Discrete PID Controller2/Ideal P Gain/Passthrough'
+// '<S89>' : 'S_con1/small_angle_control/Discrete PID Controller2/Ideal P Gain Fdbk/Disabled'
+// '<S90>' : 'S_con1/small_angle_control/Discrete PID Controller2/Integrator/Discrete'
+// '<S91>' : 'S_con1/small_angle_control/Discrete PID Controller2/Integrator ICs/Internal IC'
+// '<S92>' : 'S_con1/small_angle_control/Discrete PID Controller2/N Copy/Disabled'
+// '<S93>' : 'S_con1/small_angle_control/Discrete PID Controller2/N Gain/Internal Parameters'
+// '<S94>' : 'S_con1/small_angle_control/Discrete PID Controller2/P Copy/Disabled'
+// '<S95>' : 'S_con1/small_angle_control/Discrete PID Controller2/Parallel P Gain/Internal Parameters'
+// '<S96>' : 'S_con1/small_angle_control/Discrete PID Controller2/Reset Signal/Disabled'
+// '<S97>' : 'S_con1/small_angle_control/Discrete PID Controller2/Saturation/Passthrough'
+// '<S98>' : 'S_con1/small_angle_control/Discrete PID Controller2/Saturation Fdbk/Disabled'
+// '<S99>' : 'S_con1/small_angle_control/Discrete PID Controller2/Sum/Sum_PID'
+// '<S100>' : 'S_con1/small_angle_control/Discrete PID Controller2/Sum Fdbk/Disabled'
+// '<S101>' : 'S_con1/small_angle_control/Discrete PID Controller2/Tracking Mode/Disabled'
+// '<S102>' : 'S_con1/small_angle_control/Discrete PID Controller2/Tracking Mode Sum/Passthrough'
+// '<S103>' : 'S_con1/small_angle_control/Discrete PID Controller2/postSat Signal/Forward_Path'
+// '<S104>' : 'S_con1/small_angle_control/Discrete PID Controller2/preSat Signal/Forward_Path'
+// '<S105>' : 'S_con1/small_angle_control/Discrete PID Controller3/Anti-windup'
+// '<S106>' : 'S_con1/small_angle_control/Discrete PID Controller3/D Gain'
+// '<S107>' : 'S_con1/small_angle_control/Discrete PID Controller3/Filter'
+// '<S108>' : 'S_con1/small_angle_control/Discrete PID Controller3/Filter ICs'
+// '<S109>' : 'S_con1/small_angle_control/Discrete PID Controller3/I Gain'
+// '<S110>' : 'S_con1/small_angle_control/Discrete PID Controller3/Ideal P Gain'
+// '<S111>' : 'S_con1/small_angle_control/Discrete PID Controller3/Ideal P Gain Fdbk'
+// '<S112>' : 'S_con1/small_angle_control/Discrete PID Controller3/Integrator'
+// '<S113>' : 'S_con1/small_angle_control/Discrete PID Controller3/Integrator ICs'
+// '<S114>' : 'S_con1/small_angle_control/Discrete PID Controller3/N Copy'
+// '<S115>' : 'S_con1/small_angle_control/Discrete PID Controller3/N Gain'
+// '<S116>' : 'S_con1/small_angle_control/Discrete PID Controller3/P Copy'
+// '<S117>' : 'S_con1/small_angle_control/Discrete PID Controller3/Parallel P Gain'
+// '<S118>' : 'S_con1/small_angle_control/Discrete PID Controller3/Reset Signal'
+// '<S119>' : 'S_con1/small_angle_control/Discrete PID Controller3/Saturation'
+// '<S120>' : 'S_con1/small_angle_control/Discrete PID Controller3/Saturation Fdbk'
+// '<S121>' : 'S_con1/small_angle_control/Discrete PID Controller3/Sum'
+// '<S122>' : 'S_con1/small_angle_control/Discrete PID Controller3/Sum Fdbk'
+// '<S123>' : 'S_con1/small_angle_control/Discrete PID Controller3/Tracking Mode'
+// '<S124>' : 'S_con1/small_angle_control/Discrete PID Controller3/Tracking Mode Sum'
+// '<S125>' : 'S_con1/small_angle_control/Discrete PID Controller3/postSat Signal'
+// '<S126>' : 'S_con1/small_angle_control/Discrete PID Controller3/preSat Signal'
+// '<S127>' : 'S_con1/small_angle_control/Discrete PID Controller3/Anti-windup/Passthrough'
+// '<S128>' : 'S_con1/small_angle_control/Discrete PID Controller3/D Gain/Internal Parameters'
+// '<S129>' : 'S_con1/small_angle_control/Discrete PID Controller3/Filter/Disc. Forward Euler Filter'
+// '<S130>' : 'S_con1/small_angle_control/Discrete PID Controller3/Filter ICs/Internal IC - Filter'
+// '<S131>' : 'S_con1/small_angle_control/Discrete PID Controller3/I Gain/Internal Parameters'
+// '<S132>' : 'S_con1/small_angle_control/Discrete PID Controller3/Ideal P Gain/Passthrough'
+// '<S133>' : 'S_con1/small_angle_control/Discrete PID Controller3/Ideal P Gain Fdbk/Disabled'
+// '<S134>' : 'S_con1/small_angle_control/Discrete PID Controller3/Integrator/Discrete'
+// '<S135>' : 'S_con1/small_angle_control/Discrete PID Controller3/Integrator ICs/Internal IC'
+// '<S136>' : 'S_con1/small_angle_control/Discrete PID Controller3/N Copy/Disabled'
+// '<S137>' : 'S_con1/small_angle_control/Discrete PID Controller3/N Gain/Internal Parameters'
+// '<S138>' : 'S_con1/small_angle_control/Discrete PID Controller3/P Copy/Disabled'
+// '<S139>' : 'S_con1/small_angle_control/Discrete PID Controller3/Parallel P Gain/Internal Parameters'
+// '<S140>' : 'S_con1/small_angle_control/Discrete PID Controller3/Reset Signal/Disabled'
+// '<S141>' : 'S_con1/small_angle_control/Discrete PID Controller3/Saturation/Passthrough'
+// '<S142>' : 'S_con1/small_angle_control/Discrete PID Controller3/Saturation Fdbk/Disabled'
+// '<S143>' : 'S_con1/small_angle_control/Discrete PID Controller3/Sum/Sum_PID'
+// '<S144>' : 'S_con1/small_angle_control/Discrete PID Controller3/Sum Fdbk/Disabled'
+// '<S145>' : 'S_con1/small_angle_control/Discrete PID Controller3/Tracking Mode/Disabled'
+// '<S146>' : 'S_con1/small_angle_control/Discrete PID Controller3/Tracking Mode Sum/Passthrough'
+// '<S147>' : 'S_con1/small_angle_control/Discrete PID Controller3/postSat Signal/Forward_Path'
+// '<S148>' : 'S_con1/small_angle_control/Discrete PID Controller3/preSat Signal/Forward_Path'
+// '<S149>' : 'S_con1/small_angle_control/Discrete PID Controller4/Anti-windup'
+// '<S150>' : 'S_con1/small_angle_control/Discrete PID Controller4/D Gain'
+// '<S151>' : 'S_con1/small_angle_control/Discrete PID Controller4/Filter'
+// '<S152>' : 'S_con1/small_angle_control/Discrete PID Controller4/Filter ICs'
+// '<S153>' : 'S_con1/small_angle_control/Discrete PID Controller4/I Gain'
+// '<S154>' : 'S_con1/small_angle_control/Discrete PID Controller4/Ideal P Gain'
+// '<S155>' : 'S_con1/small_angle_control/Discrete PID Controller4/Ideal P Gain Fdbk'
+// '<S156>' : 'S_con1/small_angle_control/Discrete PID Controller4/Integrator'
+// '<S157>' : 'S_con1/small_angle_control/Discrete PID Controller4/Integrator ICs'
+// '<S158>' : 'S_con1/small_angle_control/Discrete PID Controller4/N Copy'
+// '<S159>' : 'S_con1/small_angle_control/Discrete PID Controller4/N Gain'
+// '<S160>' : 'S_con1/small_angle_control/Discrete PID Controller4/P Copy'
+// '<S161>' : 'S_con1/small_angle_control/Discrete PID Controller4/Parallel P Gain'
+// '<S162>' : 'S_con1/small_angle_control/Discrete PID Controller4/Reset Signal'
+// '<S163>' : 'S_con1/small_angle_control/Discrete PID Controller4/Saturation'
+// '<S164>' : 'S_con1/small_angle_control/Discrete PID Controller4/Saturation Fdbk'
+// '<S165>' : 'S_con1/small_angle_control/Discrete PID Controller4/Sum'
+// '<S166>' : 'S_con1/small_angle_control/Discrete PID Controller4/Sum Fdbk'
+// '<S167>' : 'S_con1/small_angle_control/Discrete PID Controller4/Tracking Mode'
+// '<S168>' : 'S_con1/small_angle_control/Discrete PID Controller4/Tracking Mode Sum'
+// '<S169>' : 'S_con1/small_angle_control/Discrete PID Controller4/postSat Signal'
+// '<S170>' : 'S_con1/small_angle_control/Discrete PID Controller4/preSat Signal'
+// '<S171>' : 'S_con1/small_angle_control/Discrete PID Controller4/Anti-windup/Passthrough'
+// '<S172>' : 'S_con1/small_angle_control/Discrete PID Controller4/D Gain/Internal Parameters'
+// '<S173>' : 'S_con1/small_angle_control/Discrete PID Controller4/Filter/Disc. Forward Euler Filter'
+// '<S174>' : 'S_con1/small_angle_control/Discrete PID Controller4/Filter ICs/Internal IC - Filter'
+// '<S175>' : 'S_con1/small_angle_control/Discrete PID Controller4/I Gain/Internal Parameters'
+// '<S176>' : 'S_con1/small_angle_control/Discrete PID Controller4/Ideal P Gain/Passthrough'
+// '<S177>' : 'S_con1/small_angle_control/Discrete PID Controller4/Ideal P Gain Fdbk/Disabled'
+// '<S178>' : 'S_con1/small_angle_control/Discrete PID Controller4/Integrator/Discrete'
+// '<S179>' : 'S_con1/small_angle_control/Discrete PID Controller4/Integrator ICs/Internal IC'
+// '<S180>' : 'S_con1/small_angle_control/Discrete PID Controller4/N Copy/Disabled'
+// '<S181>' : 'S_con1/small_angle_control/Discrete PID Controller4/N Gain/Internal Parameters'
+// '<S182>' : 'S_con1/small_angle_control/Discrete PID Controller4/P Copy/Disabled'
+// '<S183>' : 'S_con1/small_angle_control/Discrete PID Controller4/Parallel P Gain/Internal Parameters'
+// '<S184>' : 'S_con1/small_angle_control/Discrete PID Controller4/Reset Signal/Disabled'
+// '<S185>' : 'S_con1/small_angle_control/Discrete PID Controller4/Saturation/Passthrough'
+// '<S186>' : 'S_con1/small_angle_control/Discrete PID Controller4/Saturation Fdbk/Disabled'
+// '<S187>' : 'S_con1/small_angle_control/Discrete PID Controller4/Sum/Sum_PID'
+// '<S188>' : 'S_con1/small_angle_control/Discrete PID Controller4/Sum Fdbk/Disabled'
+// '<S189>' : 'S_con1/small_angle_control/Discrete PID Controller4/Tracking Mode/Disabled'
+// '<S190>' : 'S_con1/small_angle_control/Discrete PID Controller4/Tracking Mode Sum/Passthrough'
+// '<S191>' : 'S_con1/small_angle_control/Discrete PID Controller4/postSat Signal/Forward_Path'
+// '<S192>' : 'S_con1/small_angle_control/Discrete PID Controller4/preSat Signal/Forward_Path'
+// '<S193>' : 'S_con1/small_angle_control/Discrete PID Controller5/Anti-windup'
+// '<S194>' : 'S_con1/small_angle_control/Discrete PID Controller5/D Gain'
+// '<S195>' : 'S_con1/small_angle_control/Discrete PID Controller5/Filter'
+// '<S196>' : 'S_con1/small_angle_control/Discrete PID Controller5/Filter ICs'
+// '<S197>' : 'S_con1/small_angle_control/Discrete PID Controller5/I Gain'
+// '<S198>' : 'S_con1/small_angle_control/Discrete PID Controller5/Ideal P Gain'
+// '<S199>' : 'S_con1/small_angle_control/Discrete PID Controller5/Ideal P Gain Fdbk'
+// '<S200>' : 'S_con1/small_angle_control/Discrete PID Controller5/Integrator'
+// '<S201>' : 'S_con1/small_angle_control/Discrete PID Controller5/Integrator ICs'
+// '<S202>' : 'S_con1/small_angle_control/Discrete PID Controller5/N Copy'
+// '<S203>' : 'S_con1/small_angle_control/Discrete PID Controller5/N Gain'
+// '<S204>' : 'S_con1/small_angle_control/Discrete PID Controller5/P Copy'
+// '<S205>' : 'S_con1/small_angle_control/Discrete PID Controller5/Parallel P Gain'
+// '<S206>' : 'S_con1/small_angle_control/Discrete PID Controller5/Reset Signal'
+// '<S207>' : 'S_con1/small_angle_control/Discrete PID Controller5/Saturation'
+// '<S208>' : 'S_con1/small_angle_control/Discrete PID Controller5/Saturation Fdbk'
+// '<S209>' : 'S_con1/small_angle_control/Discrete PID Controller5/Sum'
+// '<S210>' : 'S_con1/small_angle_control/Discrete PID Controller5/Sum Fdbk'
+// '<S211>' : 'S_con1/small_angle_control/Discrete PID Controller5/Tracking Mode'
+// '<S212>' : 'S_con1/small_angle_control/Discrete PID Controller5/Tracking Mode Sum'
+// '<S213>' : 'S_con1/small_angle_control/Discrete PID Controller5/postSat Signal'
+// '<S214>' : 'S_con1/small_angle_control/Discrete PID Controller5/preSat Signal'
+// '<S215>' : 'S_con1/small_angle_control/Discrete PID Controller5/Anti-windup/Passthrough'
+// '<S216>' : 'S_con1/small_angle_control/Discrete PID Controller5/D Gain/Internal Parameters'
+// '<S217>' : 'S_con1/small_angle_control/Discrete PID Controller5/Filter/Disc. Forward Euler Filter'
+// '<S218>' : 'S_con1/small_angle_control/Discrete PID Controller5/Filter ICs/Internal IC - Filter'
+// '<S219>' : 'S_con1/small_angle_control/Discrete PID Controller5/I Gain/Internal Parameters'
+// '<S220>' : 'S_con1/small_angle_control/Discrete PID Controller5/Ideal P Gain/Passthrough'
+// '<S221>' : 'S_con1/small_angle_control/Discrete PID Controller5/Ideal P Gain Fdbk/Disabled'
+// '<S222>' : 'S_con1/small_angle_control/Discrete PID Controller5/Integrator/Discrete'
+// '<S223>' : 'S_con1/small_angle_control/Discrete PID Controller5/Integrator ICs/Internal IC'
+// '<S224>' : 'S_con1/small_angle_control/Discrete PID Controller5/N Copy/Disabled'
+// '<S225>' : 'S_con1/small_angle_control/Discrete PID Controller5/N Gain/Internal Parameters'
+// '<S226>' : 'S_con1/small_angle_control/Discrete PID Controller5/P Copy/Disabled'
+// '<S227>' : 'S_con1/small_angle_control/Discrete PID Controller5/Parallel P Gain/Internal Parameters'
+// '<S228>' : 'S_con1/small_angle_control/Discrete PID Controller5/Reset Signal/Disabled'
+// '<S229>' : 'S_con1/small_angle_control/Discrete PID Controller5/Saturation/Passthrough'
+// '<S230>' : 'S_con1/small_angle_control/Discrete PID Controller5/Saturation Fdbk/Disabled'
+// '<S231>' : 'S_con1/small_angle_control/Discrete PID Controller5/Sum/Sum_PID'
+// '<S232>' : 'S_con1/small_angle_control/Discrete PID Controller5/Sum Fdbk/Disabled'
+// '<S233>' : 'S_con1/small_angle_control/Discrete PID Controller5/Tracking Mode/Disabled'
+// '<S234>' : 'S_con1/small_angle_control/Discrete PID Controller5/Tracking Mode Sum/Passthrough'
+// '<S235>' : 'S_con1/small_angle_control/Discrete PID Controller5/postSat Signal/Forward_Path'
+// '<S236>' : 'S_con1/small_angle_control/Discrete PID Controller5/preSat Signal/Forward_Path'
+// '<S237>' : 'S_con1/small_angle_control/Discrete PID Controller6/Anti-windup'
+// '<S238>' : 'S_con1/small_angle_control/Discrete PID Controller6/D Gain'
+// '<S239>' : 'S_con1/small_angle_control/Discrete PID Controller6/Filter'
+// '<S240>' : 'S_con1/small_angle_control/Discrete PID Controller6/Filter ICs'
+// '<S241>' : 'S_con1/small_angle_control/Discrete PID Controller6/I Gain'
+// '<S242>' : 'S_con1/small_angle_control/Discrete PID Controller6/Ideal P Gain'
+// '<S243>' : 'S_con1/small_angle_control/Discrete PID Controller6/Ideal P Gain Fdbk'
+// '<S244>' : 'S_con1/small_angle_control/Discrete PID Controller6/Integrator'
+// '<S245>' : 'S_con1/small_angle_control/Discrete PID Controller6/Integrator ICs'
+// '<S246>' : 'S_con1/small_angle_control/Discrete PID Controller6/N Copy'
+// '<S247>' : 'S_con1/small_angle_control/Discrete PID Controller6/N Gain'
+// '<S248>' : 'S_con1/small_angle_control/Discrete PID Controller6/P Copy'
+// '<S249>' : 'S_con1/small_angle_control/Discrete PID Controller6/Parallel P Gain'
+// '<S250>' : 'S_con1/small_angle_control/Discrete PID Controller6/Reset Signal'
+// '<S251>' : 'S_con1/small_angle_control/Discrete PID Controller6/Saturation'
+// '<S252>' : 'S_con1/small_angle_control/Discrete PID Controller6/Saturation Fdbk'
+// '<S253>' : 'S_con1/small_angle_control/Discrete PID Controller6/Sum'
+// '<S254>' : 'S_con1/small_angle_control/Discrete PID Controller6/Sum Fdbk'
+// '<S255>' : 'S_con1/small_angle_control/Discrete PID Controller6/Tracking Mode'
+// '<S256>' : 'S_con1/small_angle_control/Discrete PID Controller6/Tracking Mode Sum'
+// '<S257>' : 'S_con1/small_angle_control/Discrete PID Controller6/postSat Signal'
+// '<S258>' : 'S_con1/small_angle_control/Discrete PID Controller6/preSat Signal'
+// '<S259>' : 'S_con1/small_angle_control/Discrete PID Controller6/Anti-windup/Passthrough'
+// '<S260>' : 'S_con1/small_angle_control/Discrete PID Controller6/D Gain/Internal Parameters'
+// '<S261>' : 'S_con1/small_angle_control/Discrete PID Controller6/Filter/Disc. Forward Euler Filter'
+// '<S262>' : 'S_con1/small_angle_control/Discrete PID Controller6/Filter ICs/Internal IC - Filter'
+// '<S263>' : 'S_con1/small_angle_control/Discrete PID Controller6/I Gain/Internal Parameters'
+// '<S264>' : 'S_con1/small_angle_control/Discrete PID Controller6/Ideal P Gain/Passthrough'
+// '<S265>' : 'S_con1/small_angle_control/Discrete PID Controller6/Ideal P Gain Fdbk/Disabled'
+// '<S266>' : 'S_con1/small_angle_control/Discrete PID Controller6/Integrator/Discrete'
+// '<S267>' : 'S_con1/small_angle_control/Discrete PID Controller6/Integrator ICs/Internal IC'
+// '<S268>' : 'S_con1/small_angle_control/Discrete PID Controller6/N Copy/Disabled'
+// '<S269>' : 'S_con1/small_angle_control/Discrete PID Controller6/N Gain/Internal Parameters'
+// '<S270>' : 'S_con1/small_angle_control/Discrete PID Controller6/P Copy/Disabled'
+// '<S271>' : 'S_con1/small_angle_control/Discrete PID Controller6/Parallel P Gain/Internal Parameters'
+// '<S272>' : 'S_con1/small_angle_control/Discrete PID Controller6/Reset Signal/Disabled'
+// '<S273>' : 'S_con1/small_angle_control/Discrete PID Controller6/Saturation/Passthrough'
+// '<S274>' : 'S_con1/small_angle_control/Discrete PID Controller6/Saturation Fdbk/Disabled'
+// '<S275>' : 'S_con1/small_angle_control/Discrete PID Controller6/Sum/Sum_PID'
+// '<S276>' : 'S_con1/small_angle_control/Discrete PID Controller6/Sum Fdbk/Disabled'
+// '<S277>' : 'S_con1/small_angle_control/Discrete PID Controller6/Tracking Mode/Disabled'
+// '<S278>' : 'S_con1/small_angle_control/Discrete PID Controller6/Tracking Mode Sum/Passthrough'
+// '<S279>' : 'S_con1/small_angle_control/Discrete PID Controller6/postSat Signal/Forward_Path'
+// '<S280>' : 'S_con1/small_angle_control/Discrete PID Controller6/preSat Signal/Forward_Path'
+
+#endif // RTW_HEADER_S_con1_h_
+
+//
+// File trailer for generated code.
+//
+// [EOF]
+//
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rtwtypes.h Mon Apr 13 19:08:23 2020 +0000 @@ -0,0 +1,102 @@ +// +// File: rtwtypes.h +// +// Code generated for Simulink model 'S_con1'. +// +// Model version : 1.1 +// Simulink Coder version : 9.1 (R2019a) 23-Nov-2018 +// C/C++ source code generated on : Mon Feb 3 20:42:16 2020 +// +// Target selection: ert.tlc +// Embedded hardware selection: ARM Compatible->ARM 7 +// Code generation objectives: +// 1. Execution efficiency +// 2. RAM efficiency +// Validation result: Not run +// + +#ifndef RTWTYPES_H +#define RTWTYPES_H + +// Logical type definitions +#if (!defined(__cplusplus)) +# ifndef false +# define false (0U) +# endif + +# ifndef true +# define true (1U) +# endif +#endif + +//=======================================================================* +// Target hardware information +// Device type: ARM Compatible->ARM 7 +// Number of bits: char: 8 short: 16 int: 32 +// long: 32 long long: 64 +// native word size: 32 +// Byte ordering: LittleEndian +// Signed integer division rounds to: Zero +// Shift right on a signed integer as arithmetic shift: on +// ======================================================================= + +//=======================================================================* +// Fixed width word size data types: * +// int8_T, int16_T, int32_T - signed 8, 16, or 32 bit integers * +// uint8_T, uint16_T, uint32_T - unsigned 8, 16, or 32 bit integers * +// real32_T, real64_T - 32 and 64 bit floating point numbers * +// ======================================================================= +typedef signed char int8_T; +typedef unsigned char uint8_T; +typedef short int16_T; +typedef unsigned short uint16_T; +typedef int int32_T; +typedef unsigned int uint32_T; +typedef long long int64_T; +typedef unsigned long long uint64_T; +typedef float real32_T; +typedef double real64_T; + +//===========================================================================* +// Generic type definitions: boolean_T, char_T, byte_T, int_T, uint_T, * +// real_T, time_T, ulong_T, ulonglong_T. * +// =========================================================================== +typedef double real_T; +typedef double time_T; +typedef unsigned char boolean_T; +typedef int int_T; +typedef unsigned int uint_T; +typedef unsigned long ulong_T; +typedef unsigned long long ulonglong_T; +typedef char char_T; +typedef unsigned char uchar_T; +typedef char_T byte_T; + +//=======================================================================* +// Min and Max: * +// int8_T, int16_T, int32_T - signed 8, 16, or 32 bit integers * +// uint8_T, uint16_T, uint32_T - unsigned 8, 16, or 32 bit integers * +// ======================================================================= +#define MAX_int8_T ((int8_T)(127)) +#define MIN_int8_T ((int8_T)(-128)) +#define MAX_uint8_T ((uint8_T)(255U)) +#define MAX_int16_T ((int16_T)(32767)) +#define MIN_int16_T ((int16_T)(-32768)) +#define MAX_uint16_T ((uint16_T)(65535U)) +#define MAX_int32_T ((int32_T)(2147483647)) +#define MIN_int32_T ((int32_T)(-2147483647-1)) +#define MAX_uint32_T ((uint32_T)(0xFFFFFFFFU)) +#define MAX_int64_T ((int64_T)(9223372036854775807LL)) +#define MIN_int64_T ((int64_T)(-9223372036854775807LL-1LL)) +#define MAX_uint64_T ((uint64_T)(0xFFFFFFFFFFFFFFFFULL)) + +// Block D-Work pointer type +typedef void * pointer_T; + +#endif // RTWTYPES_H + +// +// File trailer for generated code. +// +// [EOF] +//