bhanu teja / S_con1

Files at this revision

API Documentation at this revision

Comitter:
Glaxys_finest1
Date:
Mon Apr 13 19:08:23 2020 +0000
Commit message:
test1

Changed in this revision

S_con1.cpp Show annotated file Show diff for this revision Revisions of this file
S_con1.h Show annotated file Show diff for this revision Revisions of this file
rtwtypes.h Show annotated file Show diff for this revision Revisions of this file
--- /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]
+//