Przeglądaj źródła

update simulink module & smo c code

Signed-off-by: huhui <huhui@sharkgulf.com>
huhui 3 lat temu
rodzic
commit
a10cf6e4d3
82 zmienionych plików z 11328 dodań i 15547 usunięć
  1. 4 6
      Applications/app/app.c
  2. 9 0
      Applications/bsp/delay.c
  3. 1 0
      Applications/bsp/delay.h
  4. 1 1
      Applications/foc/core/foc_observer.c
  5. 32 16
      Applications/foc/core/smo_observer.c
  6. 0 1
      Applications/foc/core/smo_observer.h
  7. 4 4
      Applications/foc/foc_config.h
  8. 1 0
      Applications/math/sin_table.c
  9. BIN
      Simulink/A1_motor_flux_data.mat
  10. BIN
      Simulink/FEM_PMSM.slx
  11. BIN
      Simulink/FEM_PMSM.slxc
  12. BIN
      Simulink/FEM_PMSM0_sfcn_rtw/build_exception.mat
  13. BIN
      Simulink/FOC_ADRC.slx
  14. BIN
      Simulink/FOC_ADRC.slxc
  15. BIN
      Simulink/FOC_FEM_PMSM.slx
  16. BIN
      Simulink/FOC_FEM_PMSM.slxc
  17. BIN
      Simulink/FOC_FEM_PMSM_sfun.mexw64
  18. 0 26
      Simulink/Fir_angle.m
  19. 0 26
      Simulink/Fir_angle2.m
  20. 0 26
      Simulink/Fir_angle2_1.m
  21. 0 26
      Simulink/Fir_angle3.m
  22. 0 26
      Simulink/Fir_angle4.m
  23. BIN
      Simulink/MotorController_FOC_samples.slx
  24. 101 0
      Simulink/Motor_A1_dq_t_data.m
  25. 16 0
      Simulink/SMO_arctan_PLL_ert_rtw/SMO_arctan_PLL.bat
  26. 495 0
      Simulink/SMO_arctan_PLL_ert_rtw/SMO_arctan_PLL.c
  27. 410 0
      Simulink/SMO_arctan_PLL_ert_rtw/SMO_arctan_PLL.h
  28. 406 0
      Simulink/SMO_arctan_PLL_ert_rtw/SMO_arctan_PLL.mk
  29. 2 0
      Simulink/SMO_arctan_PLL_ert_rtw/SMO_arctan_PLL.rsp
  30. 7 0
      Simulink/SMO_arctan_PLL_ert_rtw/SMO_arctan_PLL_comp.rsp
  31. 0 0
      Simulink/SMO_arctan_PLL_ert_rtw/SMO_arctan_PLL_ref.rsp
  32. BIN
      Simulink/SMO_arctan_PLL_ert_rtw/buildInfo.mat
  33. BIN
      Simulink/SMO_arctan_PLL_ert_rtw/codeInfo.mat
  34. BIN
      Simulink/SMO_arctan_PLL_ert_rtw/codedescriptor.dmr
  35. BIN
      Simulink/SMO_arctan_PLL_ert_rtw/compileInfo.mat
  36. 14 0
      Simulink/SMO_arctan_PLL_ert_rtw/defines.txt
  37. 124 0
      Simulink/SMO_arctan_PLL_ert_rtw/ert_main.c
  38. 1008 0
      Simulink/SMO_arctan_PLL_ert_rtw/html/SMO_arctan_PLL_c.html
  39. 33 0
      Simulink/SMO_arctan_PLL_ert_rtw/html/SMO_arctan_PLL_codegen_rpt.html
  40. 245 0
      Simulink/SMO_arctan_PLL_ert_rtw/html/SMO_arctan_PLL_coderassumptions.html
  41. 259 0
      Simulink/SMO_arctan_PLL_ert_rtw/html/SMO_arctan_PLL_contents.html
  42. 838 0
      Simulink/SMO_arctan_PLL_ert_rtw/html/SMO_arctan_PLL_h.html
  43. 495 0
      Simulink/SMO_arctan_PLL_ert_rtw/html/SMO_arctan_PLL_interface.html
  44. 18 0
      Simulink/SMO_arctan_PLL_ert_rtw/html/SMO_arctan_PLL_metrics.html
  45. 1749 0
      Simulink/SMO_arctan_PLL_ert_rtw/html/SMO_arctan_PLL_reducedblocks.html
  46. 18 0
      Simulink/SMO_arctan_PLL_ert_rtw/html/SMO_arctan_PLL_replacements.html
  47. 87 0
      Simulink/SMO_arctan_PLL_ert_rtw/html/SMO_arctan_PLL_subsystems.html
  48. 177 0
      Simulink/SMO_arctan_PLL_ert_rtw/html/SMO_arctan_PLL_survey.html
  49. 7 0
      Simulink/SMO_arctan_PLL_ert_rtw/html/SMO_arctan_PLL_trace.html
  50. 184 0
      Simulink/SMO_arctan_PLL_ert_rtw/html/css/coder_app.css
  51. 90 0
      Simulink/SMO_arctan_PLL_ert_rtw/html/define.js
  52. 266 0
      Simulink/SMO_arctan_PLL_ert_rtw/html/ert_main_c.html
  53. BIN
      Simulink/SMO_arctan_PLL_ert_rtw/html/hilite_warning.png
  54. 33 0
      Simulink/SMO_arctan_PLL_ert_rtw/html/inspect.html
  55. 525 0
      Simulink/SMO_arctan_PLL_ert_rtw/html/js/coder_app.js
  56. 14 0
      Simulink/SMO_arctan_PLL_ert_rtw/html/nav.html
  57. 69 0
      Simulink/SMO_arctan_PLL_ert_rtw/html/navToolbar.html
  58. 2091 0
      Simulink/SMO_arctan_PLL_ert_rtw/html/rtwhilite.js
  59. 31 0
      Simulink/SMO_arctan_PLL_ert_rtw/html/rtwmsg.html
  60. 257 0
      Simulink/SMO_arctan_PLL_ert_rtw/html/rtwreport.css
  61. 92 0
      Simulink/SMO_arctan_PLL_ert_rtw/html/rtwreport_utils.js
  62. 210 0
      Simulink/SMO_arctan_PLL_ert_rtw/html/rtwshrink.js
  63. 222 0
      Simulink/SMO_arctan_PLL_ert_rtw/html/rtwtypes_h.html
  64. 559 0
      Simulink/SMO_arctan_PLL_ert_rtw/html/search.js
  65. BIN
      Simulink/SMO_arctan_PLL_ert_rtw/html/spinner.gif
  66. 2 0
      Simulink/SMO_arctan_PLL_ert_rtw/modelsources.txt
  67. 4 0
      Simulink/SMO_arctan_PLL_ert_rtw/rtw_proj.tmw
  68. 102 0
      Simulink/SMO_arctan_PLL_ert_rtw/rtwtypes.h
  69. BIN
      Simulink/SMO_arctan_PLL_ert_rtw/rtwtypeschksum.mat
  70. 2 0
      Simulink/SMO_arctan_PLL_ert_rtw/setup_msvc.bat
  71. 0 3072
      Simulink/angle.csv
  72. 0 3072
      Simulink/angle2.csv
  73. 0 3072
      Simulink/angle3.csv
  74. 0 3072
      Simulink/angle4.csv
  75. 0 3072
      Simulink/angle5.csv
  76. BIN
      Simulink/dataset.mat
  77. BIN
      Simulink/ee_asm_drive_sensor_control.slxc
  78. BIN
      Simulink/ee_motor_pmsm_drive.slxc
  79. BIN
      Simulink/fir_new3.fda
  80. 14 3
      Simulink/foc_adrc.m
  81. BIN
      Simulink/matlab.mat
  82. 0 26
      Simulink/untitled.m

+ 4 - 6
Applications/app/app.c

@@ -147,15 +147,13 @@ static u32 _app_report_task(void *p) {
 	}
 	return 200;
 }
-int plot_type = 4;
+int plot_type = 3;
 static void plot_smo_angle(void) {
 	float smo_angle = foc_observer_smo_angle();
 	float delta = smo_angle - PMSM_FOC_Get()->in.s_hallAngle;
-	if (delta > 180) {
-		delta -= 360;
-	}else if (delta < -180) {
-		delta += 360;
-	}
+	float s, c;
+	arm_sin_cos_f32(delta, &s, &c);
+	delta = fast_atan2(s, c)/PI*180.0f;
 	can_plot3(PMSM_FOC_Get()->in.s_hallAngle, smo_angle, delta);
 
 }

+ 9 - 0
Applications/bsp/delay.c

@@ -38,6 +38,15 @@ void task_udelay(uint32_t delay)
 }
 
 
+u32 task_delta_ticks(u32 count) {
+	u32 now = task_ticks_abs();
+	u32 delta = now - count;
+	if (now < count) { //wrap
+		delta = 0xFFFFFFFF - count + now + 1;
+	}
+	return (delta);
+}
+
 void delay_us(uint16_t cnt)
 {
 	task_udelay(cnt);

+ 1 - 0
Applications/bsp/delay.h

@@ -7,6 +7,7 @@ extern uint32_t utc_seconds;
 void task_ticks_enable(void);
 uint32_t task_ticks_abs(void);
 uint32_t task_ticks_rel(uint32_t start);
+uint32_t task_delta_ticks(uint32_t count);
 void systick_close(void);
 void delay_ms(uint32_t count);
 void delay_us(uint16_t cnt);

+ 1 - 1
Applications/foc/core/foc_observer.c

@@ -22,7 +22,7 @@ void foc_observer_init(void) {
 
 #define RPM_2_degree(rpm)  ((rpm) * 60.0f * nv_get_motor_params()->poles * FOC_CTRL_US)
 
-#if 0
+#if 1
 float foc_observer_update(float uAlp, float uBeta, float iAlp, float iBeta){
 	float prev_enc_angle = foc_obser.enc_angle;
 	float prev_enc_speed = foc_obser.enc_speed;

+ 32 - 16
Applications/foc/core/smo_observer.c

@@ -3,7 +3,7 @@
 #include "PMSM_FOC_Core.h"
 #include "smo_observer.h"
 
-#define USE_ARCTAN 1
+//#define USE_ARCTAN 1
 static smo_observer_t smo;
 static void smo_observer(float uAlpha, float uBeta, float iAlpha, float iBeta);
 #ifdef USE_ARCTAN
@@ -15,10 +15,10 @@ void smo_observer_init(float pll_bandwith, float lpf_wc, float Ksmo, float Ksta)
 	smo.ts = FOC_CTRL_US;
 	smo.bandwith = pll_bandwith;
 	smo.pll_kp = pll_bandwith * 2;
-	smo.pll_ki = 0.25f * SQ(smo.pll_kp);
+	smo.pll_ki = SQ(smo.pll_kp);
 	smo.pll_max_rad_pers = CONFIG_MAX_MOT_RPM/30.0f * M_PI * nv_get_motor_params()->poles;
 	smo.lpf_wc = lpf_wc;
-	smo.lpf_ceof = (lpf_wc*2*M_PI*FOC_CTRL_US);
+	smo.lpf_ceof = (lpf_wc*FOC_CTRL_US);
 	smo.Ksmo = Ksmo;
 	smo.Ksta = Ksta;
 	smo.motor_r = nv_get_motor_params()->r;
@@ -26,7 +26,6 @@ void smo_observer_init(float pll_bandwith, float lpf_wc, float Ksmo, float Ksta)
 	smo.motor_lq = nv_get_motor_params()->lq;
 	smo.motor_poles = nv_get_motor_params()->poles;
 	smo.dir_ccw = true;
-	smo.ldq_diff_dm = (smo.motor_ld-smo.motor_lq);
 	smo.ld_inv = 1.0f / smo.motor_ld;
 	smo.lq_inv = 1.0f / smo.motor_lq;
 	smo.pll.DT = smo.ts;
@@ -48,27 +47,44 @@ smo_observer_t *get_smo(void) {
 	return &smo;
 }
 
+static __INLINE float line_func(float err, float max, float slide) {
+	float err_abs = ABS(err);
+
+	if (err_abs > max) {
+		return (err>0)?slide:-slide;
+	}else {
+		return (err * slide)/max;
+	}
+}
+
 static void smo_observer(float uAlpha, float uBeta, float iAlpha, float iBeta) {
-	float est_ab = smo.ldq_diff_dm * smo.est_rad_pers;//(smo.motor_ld-smo.motor_lq)/smo.motor_lq * smo.est_rad_pers;
+	float est_ab = smo.est_rad_pers_filted;
 
 	/* est alpha back emf */
-	float calc_alpha = (uAlpha - smo.Ialpha_hat*smo.motor_r - smo.est_eAlpha - est_ab * smo.IBeta_hat) * smo.ld_inv;
+	float Ialpha_hat = smo.Ialpha_hat;
+	float calc_alpha = (uAlpha - smo.Ialpha_hat*smo.motor_r - smo.est_eAlpha ) * smo.lq_inv - est_ab * smo.IBeta_hat;
 	smo.Ialpha_hat += calc_alpha * smo.ts; //积分
 
 	float err_iAlpha = smo.Ialpha_hat - iAlpha;
 	
-	smo.est_eAlpha = fclamp(err_iAlpha, -smo.Ksta, smo.Ksta) * smo.Ksmo;
+	smo.est_eAlpha = line_func(err_iAlpha, smo.Ksta, smo.Ksmo);//fclamp(err_iAlpha, -smo.Ksta, smo.Ksta) * smo.Ksmo;
+#ifdef USE_ARCTAN
 	smo.est_eAlpha_Filted = do_lpf(smo.est_eAlpha_Filted, smo.est_eAlpha, smo.lpf_ceof);
-
+#else
+	smo.est_eAlpha_Filted = smo.est_eAlpha;
+#endif
 	/* est beta back emf */
-	float calc_beta = (uBeta - smo.IBeta_hat*smo.motor_r - smo.est_eBeta + est_ab * smo.Ialpha_hat) * smo.lq_inv;
+	float calc_beta = (uBeta - smo.IBeta_hat*smo.motor_r - smo.est_eBeta) * smo.lq_inv  + est_ab * Ialpha_hat;
 	smo.IBeta_hat += calc_beta * smo.ts; //积分
 	
 	float err_iBeta = smo.IBeta_hat - iBeta;
 	
-	smo.est_eBeta = fclamp(err_iBeta, -smo.Ksta, smo.Ksta) * smo.Ksmo;
+	smo.est_eBeta = line_func(err_iBeta, smo.Ksta, smo.Ksmo);//fclamp(err_iBeta, -smo.Ksta, smo.Ksta) * smo.Ksmo;
+#ifdef USE_ARCTAN
 	smo.est_eBeta_Filted = do_lpf(smo.est_eBeta_Filted, smo.est_eBeta, smo.lpf_ceof);
-
+#else
+	smo.est_eBeta_Filted = smo.est_eBeta;
+#endif
 }
 #define angle_clamp(a) {while (a >= M_PI*2) a-=M_PI*2;while (a < 0) a +=M_PI*2;};
 #ifdef USE_ARCTAN
@@ -116,12 +132,14 @@ static void smo_pll(void) {
 	arm_sin_cos_f32(angle_rad, &sin, &cos);
 	float pi_err = cos * ealpha_in - sin * ebeta_in;
 	float perr = pi_err * smo.pll_kp;
-	smo.est_rad_pers = perr + smo.pll_integrator; //计算角速度
 	if (smo.pll_integrator < smo.pll_max_rad_pers) {
 		smo.pll_integrator += smo.ts * pi_err * smo.pll_ki; //更新pll的pi的积分xiang
 	}
-	smo.est_rad_pers_filted = do_lpf(smo.est_rad_pers_filted, smo.est_rad_pers, smo.lpf_ceof); //对速度低通滤波
+	smo.est_rad_pers = perr + smo.pll_integrator; //计算角速度
 	smo.est_angle += smo.ts * smo.est_rad_pers; //角速度积分
+	
+	smo.est_rad_pers_filted = do_lpf(smo.est_rad_pers_filted, smo.est_rad_pers, smo.lpf_ceof); //对速度低通滤波
+	
 	angle_clamp(smo.est_angle);
 	smo.est_rpm = (30.0f * smo.est_rad_pers_filted/M_PI/smo.motor_poles);
 	if (smo.est_rpm > CONFIG_MAX_MOT_RPM) {
@@ -129,9 +147,7 @@ static void smo_pll(void) {
 	}else if (smo.est_rpm < 0) {
 		smo.est_rpm = 0;
 	}
-	/* 对低通进行角度补偿 */
-	smo.est_angle_out = smo.est_angle + fast_atan_2(smo.est_rad_pers_filted, smo.lpf_wc*2*M_PI);
-	//smo.est_angle_out = fast_atan_2(ealpha_in, ebeta_in) + fast_atan_2(smo.est_rad_pers_filted, smo.lpf_wc*2*M_PI);
+	smo.est_angle_out = smo.est_angle;
 	angle_clamp(smo.est_angle_out);
 }
 #endif

+ 0 - 1
Applications/foc/core/smo_observer.h

@@ -35,7 +35,6 @@ typedef struct {
 	float motor_lq;
 	float motor_poles;
 
-	float ldq_diff_dm; //(lq-ld)
 	float ld_inv; //1/ld
 	float lq_inv;
 }smo_observer_t;

+ 4 - 4
Applications/foc/foc_config.h

@@ -67,10 +67,10 @@
 #ifdef CONFIG_SMO_OBSERVER
 	#define CONFIG_SMO_MIN_SPEED    1000 //RPM
 	//#define CONFIG_SMO_PLL_BANDWITH 2000.0f //计算角度和速度的pll
-	#define CONFIG_SMO_PLL_BANDWITH 100.0f //计算速度的pll
-	#define CONFIG_SMO_LFP_WC       100.0F
-	#define CONFIG_SMO_GAIN_K        0.5F
-	#define CONFIG_SMO_SIGMOID_MAX   100.0F
+	#define CONFIG_SMO_PLL_BANDWITH (1000.0f * 2 * PI) //计算速度的pll
+	#define CONFIG_SMO_LFP_WC        (50.0F * 2* PI)
+	#define CONFIG_SMO_GAIN_K        100.0f
+	#define CONFIG_SMO_SIGMOID_MAX   120.0F
 #endif
 #endif /* _FOC_CONFIG_H__ */
 

+ 1 - 0
Applications/math/sin_table.c

@@ -63,6 +63,7 @@ void SinCos_Lut(float angle, float *s, float *c) {
 	*c = S16Q14toF(sinTable[angle_degree]);
 }
 #else
+/*120Mhz mcu, use 1.14us */
 void SinCos_Lut(float angle, float *s, float *c) {
 	arm_sin_cos_f32(angle, s, c);
 }

BIN
Simulink/A1_motor_flux_data.mat


BIN
Simulink/FEM_PMSM.slx


BIN
Simulink/FEM_PMSM.slxc


BIN
Simulink/FEM_PMSM0_sfcn_rtw/build_exception.mat


BIN
Simulink/FOC_ADRC.slx


BIN
Simulink/FOC_ADRC.slxc


BIN
Simulink/FOC_FEM_PMSM.slx


BIN
Simulink/FOC_FEM_PMSM.slxc


BIN
Simulink/FOC_FEM_PMSM_sfun.mexw64


+ 0 - 26
Simulink/Fir_angle.m

@@ -1,26 +0,0 @@
-function Hd = Fir_angle
-%FIR_ANGLE 返回离散时间滤波器对象。
-
-% MATLAB Code
-% Generated by MATLAB(R) 9.9 and Signal Processing Toolbox 8.5.
-% Generated on: 09-Oct-2022 15:50:58
-
-% Equiripple Lowpass filter designed using the FIRPM function.
-
-% All frequency values are in Hz.
-Fs = 500;  % Sampling Frequency
-
-Fpass = 0.5;               % Passband Frequency
-Fstop = 3;                 % Stopband Frequency
-Dpass = 5.7564627261e-05;  % Passband Ripple
-Dstop = 0.0001;            % Stopband Attenuation
-dens  = 20;                % Density Factor
-
-% Calculate the order from the parameters using FIRPMORD.
-[N, Fo, Ao, W] = firpmord([Fpass, Fstop]/(Fs/2), [1 0], [Dpass, Dstop]);
-
-% Calculate the coefficients using the FIRPM function.
-b  = firpm(N, Fo, Ao, W, {dens});
-Hd = dfilt.dffir(b);
-
-% [EOF]

+ 0 - 26
Simulink/Fir_angle2.m

@@ -1,26 +0,0 @@
-function Hd = Fir_angle2
-%FIR_ANGLE2 返回离散时间滤波器对象。
-
-% MATLAB Code
-% Generated by MATLAB(R) 9.9 and DSP System Toolbox 9.11.
-% Generated on: 19-Oct-2022 15:26:02
-
-% Equiripple Lowpass filter designed using the FIRPM function.
-
-% All frequency values are in Hz.
-Fs = 500;  % Sampling Frequency
-
-Fpass = 1;                % Passband Frequency
-Fstop = 4;                % Stopband Frequency
-Dpass = 0.0057563991496;  % Passband Ripple
-Dstop = 0.0001;           % Stopband Attenuation
-dens  = 20;               % Density Factor
-
-% Calculate the order from the parameters using FIRPMORD.
-[N, Fo, Ao, W] = firpmord([Fpass, Fstop]/(Fs/2), [1 0], [Dpass, Dstop]);
-
-% Calculate the coefficients using the FIRPM function.
-b  = firpm(N, Fo, Ao, W, {dens});
-Hd = dfilt.dffir(b);
-
-% [EOF]

+ 0 - 26
Simulink/Fir_angle2_1.m

@@ -1,26 +0,0 @@
-function Hd = Fir_angle2
-%FIR_ANGLE2 返回离散时间滤波器对象。
-
-% MATLAB Code
-% Generated by MATLAB(R) 9.9 and Signal Processing Toolbox 8.5.
-% Generated on: 18-Oct-2022 11:51:46
-
-% Equiripple Lowpass filter designed using the FIRPM function.
-
-% All frequency values are in Hz.
-Fs = 500;  % Sampling Frequency
-
-Fpass = 1;               % Passband Frequency
-Fstop = 5;               % Stopband Frequency
-Dpass = 0.057501127785;  % Passband Ripple
-Dstop = 0.0001;          % Stopband Attenuation
-dens  = 20;              % Density Factor
-
-% Calculate the order from the parameters using FIRPMORD.
-[N, Fo, Ao, W] = firpmord([Fpass, Fstop]/(Fs/2), [1 0], [Dpass, Dstop]);
-
-% Calculate the coefficients using the FIRPM function.
-b  = firpm(N, Fo, Ao, W, {dens});
-Hd = dfilt.dffir(b);
-
-% [EOF]

+ 0 - 26
Simulink/Fir_angle3.m

@@ -1,26 +0,0 @@
-function Hd = Fir_angle3
-%FIR_ANGLE3 返回离散时间滤波器对象。
-
-% MATLAB Code
-% Generated by MATLAB(R) 9.9 and Signal Processing Toolbox 8.5.
-% Generated on: 26-Oct-2022 17:32:33
-
-% Equiripple Lowpass filter designed using the FIRPM function.
-
-% All frequency values are in Hz.
-Fs = 500;  % Sampling Frequency
-
-Fpass = 0.2;             % Passband Frequency
-Fstop = 3;               % Stopband Frequency
-Dpass = 0.057501127785;  % Passband Ripple
-Dstop = 0.0001;          % Stopband Attenuation
-dens  = 20;              % Density Factor
-
-% Calculate the order from the parameters using FIRPMORD.
-[N, Fo, Ao, W] = firpmord([Fpass, Fstop]/(Fs/2), [1 0], [Dpass, Dstop]);
-
-% Calculate the coefficients using the FIRPM function.
-b  = firpm(N, Fo, Ao, W, {dens});
-Hd = dfilt.dffir(b);
-
-% [EOF]

+ 0 - 26
Simulink/Fir_angle4.m

@@ -1,26 +0,0 @@
-function Hd = Fir_angle3
-%FIR_ANGLE3 返回离散时间滤波器对象。
-
-% MATLAB Code
-% Generated by MATLAB(R) 9.9 and Signal Processing Toolbox 8.5.
-% Generated on: 26-Oct-2022 17:32:33
-
-% Equiripple Lowpass filter designed using the FIRPM function.
-
-% All frequency values are in Hz.
-Fs = 500;  % Sampling Frequency
-
-Fpass = 0.2;             % Passband Frequency
-Fstop = 3;               % Stopband Frequency
-Dpass = 0.057501127785;  % Passband Ripple
-Dstop = 0.0001;          % Stopband Attenuation
-dens  = 20;              % Density Factor
-
-% Calculate the order from the parameters using FIRPMORD.
-[N, Fo, Ao, W] = firpmord([Fpass, Fstop]/(Fs/2), [1 0], [Dpass, Dstop]);
-
-% Calculate the coefficients using the FIRPM function.
-b  = firpm(N, Fo, Ao, W, {dens});
-Hd = dfilt.dffir(b);
-
-% [EOF]

BIN
Simulink/MotorController_FOC_samples.slx


+ 101 - 0
Simulink/Motor_A1_dq_t_data.m

@@ -0,0 +1,101 @@
+% This MATLAB script was used to extract the PMSM flux linkage data and
+% other parameters from Motor-CAD that are required by example model
+% ee_import_fem_motorcad.slx. Lines that call Motor-CAD are commented
+% out and return data loaded from a previously-created mat file.
+
+% Copyright 2018 The MathWorks, Inc. Portions Copyright Motor Design Ltd 2018.
+
+%% Start MotorCAD ActiveX server and load design data
+%mcad = actxserver('motorcad.appautomation');
+%invoke (mcad,'LoadFromFile','C:\PMSM.mot' );
+clear;
+
+% Clear workspace
+close all
+clear
+clc
+
+% Load model parameters
+Ts                  = 5e-7;                         % [s] Model sampling time (200 KHz)
+Ts_ctrl             = 2e-5;                     % [s] Controller sampling time (50us)5e-5
+f_speed_ctrl        = 500;                          % [Hz] Speed/torque Controller frequency = (500 Hz)
+Ts_Spd_ctl          = 1/f_speed_ctrl;
+PWM_Cnt             = 6000;
+PWM_Half_Cnt        = PWM_Cnt/2;
+
+Torque_Mode = 1;
+Speed_Mode = 2;
+Ctrl_Mode = Torque_Mode;
+%Simulink provider Motor parameters
+n_polePairs  = 4;        % [-] Number of motor pole pairs
+PM           = 0.01688;   % Permanent magnet flux linkage, 
+Ld           = 0.07e-3;% d-axis inductance, 
+Lq           = 0.178e-3; % q-axis inductance,
+Rs           = 0.011;   % Stator resistance,
+J            = 0.03945; % Moment of inertia,
+bandwith     = 1600*2*pi;
+i_Udc        = 96;      % DCbus max voltage
+
+%Current=xlsread('E:\works\项目\MC100\电机仿真数据\PhiD-I230405.xlsx','Sheet1','B2:N2');
+%FluxD = xlsread('E:\works\项目\MC100\电机仿真数据\PhiD-I230405.xlsx','Sheet1','B4:N40');
+%FluxQ = xlsread('E:\works\项目\MC100\电机仿真数据\PhiQ-I230405.xlsx','Sheet1','B4:N40');
+%Torque = xlsread('E:\works\项目\MC100\电机仿真数据\T-I230405.xlsx','Sheet1','B4:N40');
+
+%% Define operating point and flux linkage table breakpoints
+PointsPerCycle = 36;    % Number of angle data points
+Shaft_Speed = 3500;     % Nominal shaft speed (RPM)
+DCBusVoltage = 96;     % DC bus voltage
+magVec   = linspace(0,300,13);                  % Current magnitude vector
+gammaVec  = linspace(0,360,PointsPerCycle+1); % Current advance angle
+angleVec = linspace(0,360/n_polePairs,PointsPerCycle+1);  % Rotor angle vector
+
+nMag = length(magVec);
+nGamma = length(gammaVec);
+nAngle = length(angleVec);
+fluxDmat = zeros(nMag,nGamma,nAngle);
+fluxQmat = zeros(nMag,nGamma,nAngle);
+torqueMat = zeros(nMag,nGamma,nAngle);
+%for i = 1:nMag
+%    for j = 1:nGamma
+%        for m = 1:nAngle
+%            fluxDmat(i,j,m)    = FluxD(j, i);
+%            fluxQmat(i,j,m)    = FluxQ(j, i);
+%            torqueMat(i,j,m)   = Torque(j, i);
+%        end
+%    end
+%end
+load A1_motor_flux_data
+%% Extract flux linkdage data from Motor-CAD
+% nMag = length(magVec);
+% nGamma = length(gammaVec);
+% nX = length(angleVec);
+% fluxDmat = zeros(nMag,nGamma,nX);
+% fluxQmat = zeros(nMag,nGamma,nX);
+% torqueMat = zeros(nMag,nGamma,nX);
+% fluxAmat = zeros(nMag,nGamma,nX);
+% for i = 1:nMag
+%     for j = 1:nGamma
+%         invoke(mcad,'SetVariable','PeakCurrent',magVec(i));
+%         invoke(mcad,'SetVariable','DCBusVoltage',DCBusVoltage);
+%         invoke(mcad,'SetVariable','Shaft_Speed_[RPM]',Shaft_Speed);
+%         invoke(mcad,'SetVariable','TorqueCalculation',1);
+%         invoke(mcad,'SetVariable','TorquePointsPerCycle',PointsPerCycle);
+%         invoke(mcad,'SetVariable','PhaseAdvance',gammaVec(j));
+%         invoke(mcad,'DoMagneticCalculation');
+%         for m = 1:nX % Loop over rotor angles
+%             xe = N*angleVec(m)*pi/180; % Electrical angle in radians
+%             [res1, x1, torque] = invoke(mcad, 'GetMagneticGraphPoint', 'TorqueVW',m-1);
+%             [res2, x2, fluxD]  = invoke(mcad, 'GetMagneticGraphPoint', 'FluxLinkageLoadTotalD',m-1); 
+%             [res3, x3, fluxQ]  = invoke(mcad, 'GetMagneticGraphPoint', 'FluxLinkageLoadTotalQ',m-1); 
+%             fluxDmat(i,j,m)    = fluxD;
+%             fluxQmat(i,j,m)    = fluxQ;
+%             torqueMat(i,j,m)   = torque;
+%             % Optional calculation of A-phase flux linkage. Note Park's
+%             % transform for MotorCAD is Q leads D, rotor angle measured
+%             % from A-phase flux axis to Q-axis.
+%             invP = [sin(xe+[0;-2*pi/3;2*pi/3]),cos(xe+[0;-2*pi/3;2*pi/3])];
+%             fluxes = invP*[fluxD;fluxQ];
+%             fluxAmat(i,j,m) = fluxes(1);
+%         end
+%     end
+% end

+ 16 - 0
Simulink/SMO_arctan_PLL_ert_rtw/SMO_arctan_PLL.bat

@@ -0,0 +1,16 @@
+
+call "setup_msvc.bat"
+
+
+call  "\\DESKTOP-C3O4FD7\D$\Program Files\R2020b\bin\win64\checkMATLABRootForDriveMap.exe" "\\DESKTOP-C3O4FD7\D$\Program Files\R2020b"  > mlEnv.txt
+for /f %%a in (mlEnv.txt) do set "%%a"\n
+cd .
+
+if "%1"=="" (nmake MATLAB_ROOT=%MATLAB_ROOT% ALT_MATLAB_ROOT=%ALT_MATLAB_ROOT% MATLAB_BIN=%MATLAB_BIN% ALT_MATLAB_BIN=%ALT_MATLAB_BIN%  -f SMO_arctan_PLL.mk all) else (nmake MATLAB_ROOT=%MATLAB_ROOT% ALT_MATLAB_ROOT=%ALT_MATLAB_ROOT% MATLAB_BIN=%MATLAB_BIN% ALT_MATLAB_BIN=%ALT_MATLAB_BIN%  -f SMO_arctan_PLL.mk %1)
+@if errorlevel 1 goto error_exit
+
+exit 0
+
+:error_exit
+echo The make command returned an error of %errorlevel%
+exit 1

+ 495 - 0
Simulink/SMO_arctan_PLL_ert_rtw/SMO_arctan_PLL.c

@@ -0,0 +1,495 @@
+/*
+ * File: SMO_arctan_PLL.c
+ *
+ * Code generated for Simulink model 'SMO_arctan_PLL'.
+ *
+ * Model version                  : 1.812
+ * Simulink Coder version         : 9.4 (R2020b) 29-Jul-2020
+ * C/C++ source code generated on : Tue Apr 11 20:18:35 2023
+ *
+ * Target selection: ert.tlc
+ * Embedded hardware selection: ARM Compatible->ARM Cortex-M
+ * Code generation objectives:
+ *    1. Execution efficiency
+ *    2. RAM efficiency
+ * Validation result: Not run
+ */
+
+#include "SMO_arctan_PLL.h"
+#define NumBitsPerChar                 8U
+
+extern real_T rt_remd_snf(real_T u0, real_T u1);
+static real_T rtGetNaN(void);
+static real32_T rtGetNaNF(void);
+extern real_T rtInf;
+extern real_T rtMinusInf;
+extern real_T rtNaN;
+extern real32_T rtInfF;
+extern real32_T rtMinusInfF;
+extern real32_T rtNaNF;
+static void rt_InitInfAndNaN(size_t realSize);
+static boolean_T rtIsInf(real_T value);
+static boolean_T rtIsInfF(real32_T value);
+static boolean_T rtIsNaN(real_T value);
+static boolean_T rtIsNaNF(real32_T value);
+typedef struct {
+  struct {
+    uint32_T wordH;
+    uint32_T wordL;
+  } words;
+} BigEndianIEEEDouble;
+
+typedef struct {
+  struct {
+    uint32_T wordL;
+    uint32_T wordH;
+  } words;
+} LittleEndianIEEEDouble;
+
+typedef struct {
+  union {
+    real32_T wordLreal;
+    uint32_T wordLuint;
+  } wordL;
+} IEEESingle;
+
+real_T rtInf;
+real_T rtMinusInf;
+real_T rtNaN;
+real32_T rtInfF;
+real32_T rtMinusInfF;
+real32_T rtNaNF;
+static real_T rtGetInf(void);
+static real32_T rtGetInfF(void);
+static real_T rtGetMinusInf(void);
+static real32_T rtGetMinusInfF(void);
+
+/*===========*
+ * Constants *
+ *===========*/
+#define RT_PI                          3.14159265358979323846
+#define RT_PIF                         3.1415927F
+#define RT_LN_10                       2.30258509299404568402
+#define RT_LN_10F                      2.3025851F
+#define RT_LOG10E                      0.43429448190325182765
+#define RT_LOG10EF                     0.43429449F
+#define RT_E                           2.7182818284590452354
+#define RT_EF                          2.7182817F
+
+/*
+ * UNUSED_PARAMETER(x)
+ *   Used to specify that a function parameter (argument) is required but not
+ *   accessed by the function body.
+ */
+#ifndef UNUSED_PARAMETER
+#if defined(__LCC__)
+#define UNUSED_PARAMETER(x)                                      /* do nothing */
+#else
+
+/*
+ * This is the semi-ANSI standard way of indicating that an
+ * unused function parameter is required.
+ */
+#define UNUSED_PARAMETER(x)            (void) (x)
+#endif
+#endif
+
+/*
+ * Initialize rtNaN needed by the generated code.
+ * NaN is initialized as non-signaling. Assumes IEEE.
+ */
+static real_T rtGetNaN(void)
+{
+  size_t bitsPerReal = sizeof(real_T) * (NumBitsPerChar);
+  real_T nan = 0.0;
+  if (bitsPerReal == 32U) {
+    nan = rtGetNaNF();
+  } else {
+    union {
+      LittleEndianIEEEDouble bitVal;
+      real_T fltVal;
+    } tmpVal;
+
+    tmpVal.bitVal.words.wordH = 0xFFF80000U;
+    tmpVal.bitVal.words.wordL = 0x00000000U;
+    nan = tmpVal.fltVal;
+  }
+
+  return nan;
+}
+
+/*
+ * Initialize rtNaNF needed by the generated code.
+ * NaN is initialized as non-signaling. Assumes IEEE.
+ */
+static real32_T rtGetNaNF(void)
+{
+  IEEESingle nanF = { { 0 } };
+
+  nanF.wordL.wordLuint = 0xFFC00000U;
+  return nanF.wordL.wordLreal;
+}
+
+/*
+ * Initialize the rtInf, rtMinusInf, and rtNaN needed by the
+ * generated code. NaN is initialized as non-signaling. Assumes IEEE.
+ */
+static void rt_InitInfAndNaN(size_t realSize)
+{
+  (void) (realSize);
+  rtNaN = rtGetNaN();
+  rtNaNF = rtGetNaNF();
+  rtInf = rtGetInf();
+  rtInfF = rtGetInfF();
+  rtMinusInf = rtGetMinusInf();
+  rtMinusInfF = rtGetMinusInfF();
+}
+
+/* Test if value is infinite */
+static boolean_T rtIsInf(real_T value)
+{
+  return (boolean_T)((value==rtInf || value==rtMinusInf) ? 1U : 0U);
+}
+
+/* Test if single-precision value is infinite */
+static boolean_T rtIsInfF(real32_T value)
+{
+  return (boolean_T)(((value)==rtInfF || (value)==rtMinusInfF) ? 1U : 0U);
+}
+
+/* Test if value is not a number */
+static boolean_T rtIsNaN(real_T value)
+{
+  boolean_T result = (boolean_T) 0;
+  size_t bitsPerReal = sizeof(real_T) * (NumBitsPerChar);
+  if (bitsPerReal == 32U) {
+    result = rtIsNaNF((real32_T)value);
+  } else {
+    union {
+      LittleEndianIEEEDouble bitVal;
+      real_T fltVal;
+    } tmpVal;
+
+    tmpVal.fltVal = value;
+    result = (boolean_T)((tmpVal.bitVal.words.wordH & 0x7FF00000) == 0x7FF00000 &&
+                         ( (tmpVal.bitVal.words.wordH & 0x000FFFFF) != 0 ||
+                          (tmpVal.bitVal.words.wordL != 0) ));
+  }
+
+  return result;
+}
+
+/* Test if single-precision value is not a number */
+static boolean_T rtIsNaNF(real32_T value)
+{
+  IEEESingle tmp;
+  tmp.wordL.wordLreal = value;
+  return (boolean_T)( (tmp.wordL.wordLuint & 0x7F800000) == 0x7F800000 &&
+                     (tmp.wordL.wordLuint & 0x007FFFFF) != 0 );
+}
+
+/*
+ * Initialize rtInf needed by the generated code.
+ * Inf is initialized as non-signaling. Assumes IEEE.
+ */
+static real_T rtGetInf(void)
+{
+  size_t bitsPerReal = sizeof(real_T) * (NumBitsPerChar);
+  real_T inf = 0.0;
+  if (bitsPerReal == 32U) {
+    inf = rtGetInfF();
+  } else {
+    union {
+      LittleEndianIEEEDouble bitVal;
+      real_T fltVal;
+    } tmpVal;
+
+    tmpVal.bitVal.words.wordH = 0x7FF00000U;
+    tmpVal.bitVal.words.wordL = 0x00000000U;
+    inf = tmpVal.fltVal;
+  }
+
+  return inf;
+}
+
+/*
+ * Initialize rtInfF needed by the generated code.
+ * Inf is initialized as non-signaling. Assumes IEEE.
+ */
+static real32_T rtGetInfF(void)
+{
+  IEEESingle infF;
+  infF.wordL.wordLuint = 0x7F800000U;
+  return infF.wordL.wordLreal;
+}
+
+/*
+ * Initialize rtMinusInf needed by the generated code.
+ * Inf is initialized as non-signaling. Assumes IEEE.
+ */
+static real_T rtGetMinusInf(void)
+{
+  size_t bitsPerReal = sizeof(real_T) * (NumBitsPerChar);
+  real_T minf = 0.0;
+  if (bitsPerReal == 32U) {
+    minf = rtGetMinusInfF();
+  } else {
+    union {
+      LittleEndianIEEEDouble bitVal;
+      real_T fltVal;
+    } tmpVal;
+
+    tmpVal.bitVal.words.wordH = 0xFFF00000U;
+    tmpVal.bitVal.words.wordL = 0x00000000U;
+    minf = tmpVal.fltVal;
+  }
+
+  return minf;
+}
+
+/*
+ * Initialize rtMinusInfF needed by the generated code.
+ * Inf is initialized as non-signaling. Assumes IEEE.
+ */
+static real32_T rtGetMinusInfF(void)
+{
+  IEEESingle minfF;
+  minfF.wordL.wordLuint = 0xFF800000U;
+  return minfF.wordL.wordLreal;
+}
+
+real_T rt_remd_snf(real_T u0, real_T u1)
+{
+  real_T q;
+  real_T y;
+  if (rtIsNaN(u0) || rtIsNaN(u1) || rtIsInf(u0)) {
+    y = (rtNaN);
+  } else if (rtIsInf(u1)) {
+    y = u0;
+  } else if ((u1 != 0.0) && (u1 != trunc(u1))) {
+    q = fabs(u0 / u1);
+    if (!(fabs(q - floor(q + 0.5)) > DBL_EPSILON * q)) {
+      y = 0.0 * u0;
+    } else {
+      y = fmod(u0, u1);
+    }
+  } else {
+    y = fmod(u0, u1);
+  }
+
+  return y;
+}
+
+/* Model step function */
+void SMO_arctan_PLL_step(RT_MODEL *const rtM, real_T rtU_Ialfabeta[2], real_T
+  rtU_Ualfabeta[2], real_T *rtY_theta, real_T *rtY_we)
+{
+  DW *rtDW = rtM->dwork;
+  real_T rtb_Add1;
+  real_T rtb_Add1_h;
+  real_T rtb_Product4;
+  real_T rtb_Sum;
+  real_T rtb_Sum2;
+  real_T rtb_Sum5;
+  real_T rtb_Switch_e;
+
+  /* Sum: '<S7>/Sum2' incorporates:
+   *  DiscreteIntegrator: '<S7>/Discrete-Time Integrator'
+   *  Inport: '<Root>/Ialfa,beta'
+   */
+  rtb_Sum2 = rtDW->DiscreteTimeIntegrator_DSTATE_e - rtU_Ialfabeta[0];
+
+  /* Switch: '<S58>/Switch' incorporates:
+   *  Abs: '<S58>/Abs'
+   *  Constant: '<S7>/Constant1'
+   *  Constant: '<S7>/Constant3'
+   *  Product: '<S58>/Divide'
+   *  Product: '<S58>/Divide1'
+   *  Product: '<S58>/Divide2'
+   *  Sum: '<S58>/Add'
+   */
+  if (fabs(rtb_Sum2) - 120.0 > 0.0) {
+    /* Signum: '<S58>/Sign' */
+    if (rtb_Sum2 < 0.0) {
+      rtb_Sum2 = -1.0;
+    } else if (rtb_Sum2 > 0.0) {
+      rtb_Sum2 = 1.0;
+    } else if (rtb_Sum2 == 0.0) {
+      rtb_Sum2 = 0.0;
+    } else {
+      rtb_Sum2 = (rtNaN);
+    }
+
+    /* End of Signum: '<S58>/Sign' */
+    rtb_Sum2 *= 100.0;
+  } else {
+    rtb_Sum2 = rtb_Sum2 / 120.0 * 100.0;
+  }
+
+  /* End of Switch: '<S58>/Switch' */
+
+  /* Sum: '<S7>/Sum5' incorporates:
+   *  DiscreteIntegrator: '<S7>/Discrete-Time Integrator1'
+   *  Inport: '<Root>/Ialfa,beta'
+   */
+  rtb_Sum5 = rtDW->DiscreteTimeIntegrator1_DSTATE - rtU_Ialfabeta[1];
+
+  /* Switch: '<S57>/Switch' incorporates:
+   *  Abs: '<S57>/Abs'
+   *  Constant: '<S7>/Constant4'
+   *  Constant: '<S7>/Constant5'
+   *  Product: '<S57>/Divide'
+   *  Product: '<S57>/Divide1'
+   *  Product: '<S57>/Divide2'
+   *  Sum: '<S57>/Add'
+   */
+  if (fabs(rtb_Sum5) - 120.0 > 0.0) {
+    /* Signum: '<S57>/Sign' */
+    if (rtb_Sum5 < 0.0) {
+      rtb_Sum5 = -1.0;
+    } else if (rtb_Sum5 > 0.0) {
+      rtb_Sum5 = 1.0;
+    } else if (rtb_Sum5 == 0.0) {
+      rtb_Sum5 = 0.0;
+    } else {
+      rtb_Sum5 = (rtNaN);
+    }
+
+    /* End of Signum: '<S57>/Sign' */
+    rtb_Switch_e = rtb_Sum5 * 100.0;
+  } else {
+    rtb_Switch_e = rtb_Sum5 / 120.0 * 100.0;
+  }
+
+  /* End of Switch: '<S57>/Switch' */
+
+  /* Sqrt: '<S6>/Sqrt' incorporates:
+   *  Constant: '<S6>/Constant'
+   *  Math: '<S6>/Math Function'
+   *  Math: '<S6>/Math Function1'
+   *  Sum: '<S6>/Add'
+   */
+  rtb_Sum5 = sqrt((rtb_Sum2 * rtb_Sum2 + rtb_Switch_e * rtb_Switch_e) + 1.0E-6);
+
+  /* Sum: '<S6>/Sum' incorporates:
+   *  DiscreteIntegrator: '<S6>/Discrete-Time Integrator'
+   *  Gain: '<S6>/Gain'
+   *  Product: '<S6>/Divide'
+   *  Product: '<S6>/Divide2'
+   *  Product: '<S6>/Product'
+   *  Product: '<S6>/Product1'
+   *  Trigonometry: '<S6>/Trigonometric Function'
+   *  Trigonometry: '<S6>/Trigonometric Function1'
+   */
+  rtb_Sum5 = -(rtb_Sum2 / rtb_Sum5) * cos(rtDW->DiscreteTimeIntegrator_DSTATE) -
+    rtb_Switch_e / rtb_Sum5 * sin(rtDW->DiscreteTimeIntegrator_DSTATE);
+
+  /* Sum: '<S49>/Sum' incorporates:
+   *  DiscreteIntegrator: '<S40>/Integrator'
+   *  Gain: '<S45>/Proportional Gain'
+   */
+  rtb_Sum = 12566.370614359172 * rtb_Sum5 + rtDW->Integrator_DSTATE;
+
+  /* Sum: '<S5>/Add1' incorporates:
+   *  Constant: '<S5>/Filter_Constant'
+   *  Constant: '<S5>/One'
+   *  Product: '<S5>/Product'
+   *  Product: '<S5>/Product1'
+   *  UnitDelay: '<S5>/Unit Delay'
+   */
+  rtb_Add1 = rtb_Sum * 0.01885 + 0.98115 * rtDW->UnitDelay_DSTATE;
+
+  /* Sum: '<S4>/Add1' incorporates:
+   *  Constant: '<S4>/Filter_Constant'
+   *  Constant: '<S4>/One'
+   *  Product: '<S4>/Product'
+   *  Product: '<S4>/Product1'
+   *  UnitDelay: '<S4>/Unit Delay'
+   */
+  rtb_Add1_h = rtb_Add1 * 0.1 + 0.9 * rtDW->UnitDelay_DSTATE_h;
+
+  /* Outport: '<Root>/we' incorporates:
+   *  Constant: '<S1>/P'
+   *  Gain: '<S1>/Gain3'
+   *  Product: '<S1>/Divide1'
+   */
+  *rtY_we = 9.5492965855137211 * rtb_Add1_h / 4.0;
+
+  /* Product: '<S7>/Product4' incorporates:
+   *  Constant: '<S7>/Constant2'
+   */
+  rtb_Product4 = rtb_Add1 * 0.000178;
+
+  /* Sum: '<S7>/   ' incorporates:
+   *  DiscreteIntegrator: '<S7>/Discrete-Time Integrator'
+   *  DiscreteIntegrator: '<S7>/Discrete-Time Integrator1'
+   *  Gain: '<S7>/ 1//L'
+   *  Gain: '<S7>/ 1//L '
+   *  Gain: '<S7>/Gain5'
+   *  Gain: '<S7>/R//L '
+   *  Inport: '<Root>/Ualfa,beta'
+   *  Product: '<S7>/Product3'
+   */
+  rtb_Switch_e = ((5617.9775280898875 * rtU_Ualfabeta[1] - 61.797752808988761 *
+                   rtDW->DiscreteTimeIntegrator1_DSTATE) - 5617.9775280898875 *
+                  rtb_Switch_e) + 5617.9775280898875 * rtb_Product4 *
+    rtDW->DiscreteTimeIntegrator_DSTATE_e;
+
+  /* Outport: '<Root>/theta' incorporates:
+   *  Constant: '<S2>/Constant1'
+   *  DiscreteIntegrator: '<S6>/Discrete-Time Integrator'
+   *  Math: '<S2>/Rem1'
+   *  Sum: '<S2>/Add1'
+   */
+  *rtY_theta = rt_remd_snf(rtDW->DiscreteTimeIntegrator_DSTATE +
+    6.2831853071795862, 6.2831853071795862);
+
+  /* Update for DiscreteIntegrator: '<S6>/Discrete-Time Integrator' */
+  rtDW->DiscreteTimeIntegrator_DSTATE += 6.0E-5 * rtb_Sum;
+
+  /* Update for DiscreteIntegrator: '<S7>/Discrete-Time Integrator' incorporates:
+   *  DiscreteIntegrator: '<S7>/Discrete-Time Integrator1'
+   *  Gain: '<S7>/1//L'
+   *  Gain: '<S7>/1//L '
+   *  Gain: '<S7>/Gain4'
+   *  Gain: '<S7>/R//L'
+   *  Inport: '<Root>/Ualfa,beta'
+   *  Product: '<S7>/Product2'
+   *  Sum: '<S7>/ '
+   */
+  rtDW->DiscreteTimeIntegrator_DSTATE_e += (((5617.9775280898875 *
+    rtU_Ualfabeta[0] - 61.797752808988761 *
+    rtDW->DiscreteTimeIntegrator_DSTATE_e) - 5617.9775280898875 * rtb_Sum2) -
+    5617.9775280898875 * rtb_Product4 * rtDW->DiscreteTimeIntegrator1_DSTATE) *
+    6.0E-5;
+
+  /* Update for DiscreteIntegrator: '<S7>/Discrete-Time Integrator1' */
+  rtDW->DiscreteTimeIntegrator1_DSTATE += 6.0E-5 * rtb_Switch_e;
+
+  /* Update for DiscreteIntegrator: '<S40>/Integrator' incorporates:
+   *  Gain: '<S37>/Integral Gain'
+   */
+  rtDW->Integrator_DSTATE += 3.9478417604357429E+7 * rtb_Sum5 * 6.0E-5;
+
+  /* Update for UnitDelay: '<S5>/Unit Delay' */
+  rtDW->UnitDelay_DSTATE = rtb_Add1;
+
+  /* Update for UnitDelay: '<S4>/Unit Delay' */
+  rtDW->UnitDelay_DSTATE_h = rtb_Add1_h;
+}
+
+/* Model initialize function */
+void SMO_arctan_PLL_initialize(RT_MODEL *const rtM)
+{
+  /* Registration code */
+
+  /* initialize non-finites */
+  rt_InitInfAndNaN(sizeof(real_T));
+  UNUSED_PARAMETER(rtM);
+}
+
+/*
+ * File trailer for generated code.
+ *
+ * [EOF]
+ */

+ 410 - 0
Simulink/SMO_arctan_PLL_ert_rtw/SMO_arctan_PLL.h

@@ -0,0 +1,410 @@
+/*
+ * File: SMO_arctan_PLL.h
+ *
+ * Code generated for Simulink model 'SMO_arctan_PLL'.
+ *
+ * Model version                  : 1.812
+ * Simulink Coder version         : 9.4 (R2020b) 29-Jul-2020
+ * C/C++ source code generated on : Tue Apr 11 20:18:35 2023
+ *
+ * Target selection: ert.tlc
+ * Embedded hardware selection: ARM Compatible->ARM Cortex-M
+ * Code generation objectives:
+ *    1. Execution efficiency
+ *    2. RAM efficiency
+ * Validation result: Not run
+ */
+
+#ifndef RTW_HEADER_SMO_arctan_PLL_h_
+#define RTW_HEADER_SMO_arctan_PLL_h_
+#include <stddef.h>
+#include <float.h>
+#include <math.h>
+#ifndef SMO_arctan_PLL_COMMON_INCLUDES_
+#define SMO_arctan_PLL_COMMON_INCLUDES_
+#include "rtwtypes.h"
+#endif                                 /* SMO_arctan_PLL_COMMON_INCLUDES_ */
+
+/* Model Code Variants */
+
+/* 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 DiscreteTimeIntegrator_DSTATE;/* '<S6>/Discrete-Time Integrator' */
+  real_T DiscreteTimeIntegrator_DSTATE_e;/* '<S7>/Discrete-Time Integrator' */
+  real_T DiscreteTimeIntegrator1_DSTATE;/* '<S7>/Discrete-Time Integrator1' */
+  real_T Integrator_DSTATE;            /* '<S40>/Integrator' */
+  real_T UnitDelay_DSTATE;             /* '<S5>/Unit Delay' */
+  real_T UnitDelay_DSTATE_h;           /* '<S4>/Unit Delay' */
+} DW;
+
+/* Real-time Model Data Structure */
+struct tag_RTM {
+  const char_T * volatile errorStatus;
+  DW *dwork;
+};
+
+/* Model entry point functions */
+extern void SMO_arctan_PLL_initialize(RT_MODEL *const rtM);
+extern void SMO_arctan_PLL_step(RT_MODEL *const rtM, real_T rtU_Ialfabeta[2],
+  real_T rtU_Ualfabeta[2], real_T *rtY_theta, real_T *rtY_we);
+
+/*-
+ * These blocks were eliminated from the model due to optimizations:
+ *
+ * Block '<S2>/Constant' : Unused code path elimination
+ * Block '<S2>/Display' : Unused code path elimination
+ * Block '<S4>/Data Type Duplicate' : Unused code path elimination
+ * Block '<S5>/Data Type Duplicate' : Unused code path elimination
+ * Block '<S6>/Scope1' : Unused code path elimination
+ * Block '<S7>/Scope1' : Unused code path elimination
+ * Block '<S7>/Scope2' : Unused code path elimination
+ * Block '<S2>/Scope' : Unused code path elimination
+ * Block '<S2>/Scope1' : Unused code path elimination
+ * Block '<S2>/Scope3' : Unused code path elimination
+ * Block '<S3>/Add' : Unused code path elimination
+ * Block '<S3>/Add1' : Unused code path elimination
+ * Block '<S3>/Atan1' : Unused code path elimination
+ * Block '<S3>/Constant' : Unused code path elimination
+ * Block '<S3>/Constant1' : Unused code path elimination
+ * Block '<S3>/Constant4' : Unused code path elimination
+ * Block '<S59>/Add1' : Unused code path elimination
+ * Block '<S59>/Data Type Duplicate' : Unused code path elimination
+ * Block '<S59>/Filter_Constant' : Unused code path elimination
+ * Block '<S59>/One' : Unused code path elimination
+ * Block '<S59>/Product' : Unused code path elimination
+ * Block '<S59>/Product1' : Unused code path elimination
+ * Block '<S59>/Unit Delay' : Unused code path elimination
+ * Block '<S60>/Add' : Unused code path elimination
+ * Block '<S60>/Constant' : Unused code path elimination
+ * Block '<S60>/Discrete-Time Integrator' : Unused code path elimination
+ * Block '<S60>/Divide' : Unused code path elimination
+ * Block '<S60>/Divide2' : Unused code path elimination
+ * Block '<S60>/Gain' : Unused code path elimination
+ * Block '<S64>/1//T' : Unused code path elimination
+ * Block '<S66>/Avoid Divide by Zero' : Unused code path elimination
+ * Block '<S69>/Compare' : Unused code path elimination
+ * Block '<S69>/Constant' : Unused code path elimination
+ * Block '<S66>/Max' : Unused code path elimination
+ * Block '<S66>/Probe' : Unused code path elimination
+ * Block '<S66>/Sum1' : Unused code path elimination
+ * Block '<S66>/Time constant' : Unused code path elimination
+ * Block '<S71>/Integrator' : Unused code path elimination
+ * Block '<S71>/Saturation' : Unused code path elimination
+ * Block '<S64>/K' : Unused code path elimination
+ * Block '<S64>/Sum1' : Unused code path elimination
+ * Block '<S60>/Math Function' : Unused code path elimination
+ * Block '<S60>/Math Function1' : Unused code path elimination
+ * Block '<S100>/Integral Gain' : Unused code path elimination
+ * Block '<S103>/Integrator' : Unused code path elimination
+ * Block '<S108>/Proportional Gain' : Unused code path elimination
+ * Block '<S112>/Sum' : Unused code path elimination
+ * Block '<S60>/Product' : Unused code path elimination
+ * Block '<S60>/Product1' : Unused code path elimination
+ * Block '<S60>/Scope1' : Unused code path elimination
+ * Block '<S60>/Sqrt' : Unused code path elimination
+ * Block '<S60>/Sum' : Unused code path elimination
+ * Block '<S60>/Trigonometric Function' : Unused code path elimination
+ * Block '<S60>/Trigonometric Function1' : Unused code path elimination
+ * Block '<S3>/Rem1' : Unused code path elimination
+ * Block '<S61>/ ' : Unused code path elimination
+ * Block '<S61>/   ' : Unused code path elimination
+ * Block '<S61>/ 1//L' : Unused code path elimination
+ * Block '<S61>/ 1//L ' : Unused code path elimination
+ * Block '<S61>/1//L' : Unused code path elimination
+ * Block '<S61>/1//L ' : Unused code path elimination
+ * Block '<S61>/Constant' : Unused code path elimination
+ * Block '<S61>/Constant1' : Unused code path elimination
+ * Block '<S61>/Constant2' : Unused code path elimination
+ * Block '<S61>/Constant3' : Unused code path elimination
+ * Block '<S61>/Constant4' : Unused code path elimination
+ * Block '<S61>/Discrete-Time Integrator' : Unused code path elimination
+ * Block '<S61>/Discrete-Time Integrator1' : Unused code path elimination
+ * Block '<S61>/Gain4' : Unused code path elimination
+ * Block '<S61>/Gain5' : Unused code path elimination
+ * Block '<S61>/Product2' : Unused code path elimination
+ * Block '<S61>/Product3' : Unused code path elimination
+ * Block '<S61>/Product4' : Unused code path elimination
+ * Block '<S61>/R//L' : Unused code path elimination
+ * Block '<S61>/R//L ' : Unused code path elimination
+ * Block '<S61>/Scope1' : Unused code path elimination
+ * Block '<S61>/Scope2' : Unused code path elimination
+ * Block '<S120>/Abs' : Unused code path elimination
+ * Block '<S120>/Add' : Unused code path elimination
+ * Block '<S120>/Divide' : Unused code path elimination
+ * Block '<S120>/Divide1' : Unused code path elimination
+ * Block '<S120>/Divide2' : Unused code path elimination
+ * Block '<S120>/Scope' : Unused code path elimination
+ * Block '<S120>/Scope1' : Unused code path elimination
+ * Block '<S120>/Scope2' : Unused code path elimination
+ * Block '<S120>/Sign' : Unused code path elimination
+ * Block '<S120>/Switch' : Unused code path elimination
+ * Block '<S121>/Abs' : Unused code path elimination
+ * Block '<S121>/Add' : Unused code path elimination
+ * Block '<S121>/Divide' : Unused code path elimination
+ * Block '<S121>/Divide1' : Unused code path elimination
+ * Block '<S121>/Divide2' : Unused code path elimination
+ * Block '<S121>/Scope' : Unused code path elimination
+ * Block '<S121>/Scope1' : Unused code path elimination
+ * Block '<S121>/Scope2' : Unused code path elimination
+ * Block '<S121>/Sign' : Unused code path elimination
+ * Block '<S121>/Switch' : Unused code path elimination
+ * Block '<S61>/Sum2' : Unused code path elimination
+ * Block '<S61>/Sum5' : Unused code path elimination
+ * Block '<S62>/ ' : Unused code path elimination
+ * Block '<S62>/   ' : Unused code path elimination
+ * Block '<S62>/ 1//L' : Unused code path elimination
+ * Block '<S62>/ 1//L ' : Unused code path elimination
+ * Block '<S62>/1//L' : Unused code path elimination
+ * Block '<S62>/1//L ' : Unused code path elimination
+ * Block '<S62>/Constant' : Unused code path elimination
+ * Block '<S62>/Constant1' : Unused code path elimination
+ * Block '<S62>/Constant2' : Unused code path elimination
+ * Block '<S62>/Constant3' : Unused code path elimination
+ * Block '<S62>/Constant4' : Unused code path elimination
+ * Block '<S62>/Constant5' : Unused code path elimination
+ * Block '<S62>/Discrete-Time Integrator' : Unused code path elimination
+ * Block '<S62>/Discrete-Time Integrator1' : Unused code path elimination
+ * Block '<S122>/Divide3' : Unused code path elimination
+ * Block '<S122>/Sum2' : Unused code path elimination
+ * Block '<S122>/Sum3' : Unused code path elimination
+ * Block '<S122>/UnitDelay1' : Unused code path elimination
+ * Block '<S123>/Divide3' : Unused code path elimination
+ * Block '<S123>/Sum2' : Unused code path elimination
+ * Block '<S123>/Sum3' : Unused code path elimination
+ * Block '<S123>/UnitDelay1' : Unused code path elimination
+ * Block '<S62>/Product2' : Unused code path elimination
+ * Block '<S62>/Product3' : Unused code path elimination
+ * Block '<S62>/Product4' : Unused code path elimination
+ * Block '<S62>/R//L' : Unused code path elimination
+ * Block '<S62>/R//L ' : Unused code path elimination
+ * Block '<S62>/Scope' : Unused code path elimination
+ * Block '<S124>/Abs' : Unused code path elimination
+ * Block '<S124>/Add' : Unused code path elimination
+ * Block '<S124>/Divide' : Unused code path elimination
+ * Block '<S124>/Divide1' : Unused code path elimination
+ * Block '<S124>/Divide2' : Unused code path elimination
+ * Block '<S124>/Sign' : Unused code path elimination
+ * Block '<S124>/Switch' : Unused code path elimination
+ * Block '<S125>/Abs' : Unused code path elimination
+ * Block '<S125>/Add' : Unused code path elimination
+ * Block '<S125>/Divide' : Unused code path elimination
+ * Block '<S125>/Divide1' : Unused code path elimination
+ * Block '<S125>/Divide2' : Unused code path elimination
+ * Block '<S125>/Sign' : Unused code path elimination
+ * Block '<S125>/Switch' : Unused code path elimination
+ * Block '<S62>/Sum2' : Unused code path elimination
+ * Block '<S62>/Sum5' : Unused code path elimination
+ * Block '<S3>/Scope' : Unused code path elimination
+ * Block '<S3>/Scope1' : Unused code path elimination
+ * Block '<S3>/Scope2' : Unused code path elimination
+ * Block '<S3>/Scope3' : Unused code path elimination
+ * Block '<S63>/Add' : Unused code path elimination
+ * Block '<S63>/Constant' : Unused code path elimination
+ * Block '<S63>/Constant1' : Unused code path elimination
+ * Block '<S63>/Constant2' : Unused code path elimination
+ * Block '<S63>/Constant3' : Unused code path elimination
+ * Block '<S63>/Constant4' : Unused code path elimination
+ * Block '<S63>/Constant5' : Unused code path elimination
+ * Block '<S63>/Constant6' : Unused code path elimination
+ * Block '<S63>/Constant7' : Unused code path elimination
+ * Block '<S63>/Data Type Conversion' : Unused code path elimination
+ * Block '<S63>/Gain' : Unused code path elimination
+ * Block '<S63>/Gain1' : Unused code path elimination
+ * Block '<S63>/Gain2' : Unused code path elimination
+ * Block '<S63>/Logical Operator' : Unused code path elimination
+ * Block '<S63>/Relational Operator' : Unused code path elimination
+ * Block '<S63>/Relational Operator1' : Unused code path elimination
+ * Block '<S63>/Relational Operator2' : Unused code path elimination
+ * Block '<S63>/Rem' : Unused code path elimination
+ * Block '<S63>/Scope' : Unused code path elimination
+ * Block '<S63>/Scope1' : Unused code path elimination
+ * Block '<S63>/Sin' : Unused code path elimination
+ * Block '<S63>/Square' : Unused code path elimination
+ * Block '<S126>/Add' : Unused code path elimination
+ * Block '<S126>/Add1' : Unused code path elimination
+ * Block '<S126>/Add2' : Unused code path elimination
+ * Block '<S126>/Add3' : Unused code path elimination
+ * Block '<S126>/Add4' : Unused code path elimination
+ * Block '<S126>/Add5' : Unused code path elimination
+ * Block '<S126>/Divide' : Unused code path elimination
+ * Block '<S126>/Divide1' : Unused code path elimination
+ * Block '<S126>/Divide2' : Unused code path elimination
+ * Block '<S126>/Gain' : Unused code path elimination
+ * Block '<S127>/Data Type Duplicate' : Unused code path elimination
+ * Block '<S127>/Data Type Propagation' : Unused code path elimination
+ * Block '<S127>/LowerRelop1' : Unused code path elimination
+ * Block '<S127>/Switch' : Unused code path elimination
+ * Block '<S127>/Switch2' : Unused code path elimination
+ * Block '<S127>/UpperRelop' : Unused code path elimination
+ * Block '<S126>/Switch' : Unused code path elimination
+ * Block '<S126>/Unit Delay' : Unused code path elimination
+ * Block '<S126>/Unit Delay1' : Unused code path elimination
+ * Block '<S63>/Switch' : Unused code path elimination
+ * Block '<S63>/Unit Delay' : Unused code path elimination
+ */
+
+/*-
+ * 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.
+ *
+ * Note that this particular code originates from a subsystem build,
+ * and has its own system numbers different from the parent model.
+ * Refer to the system hierarchy for this subsystem below, and use the
+ * MATLAB hilite_system command to trace the generated code back
+ * to the parent model.  For example,
+ *
+ * hilite_system('FOC_ADRC/PMSM_Controller/SMO_arctan_PLL')    - opens subsystem FOC_ADRC/PMSM_Controller/SMO_arctan_PLL
+ * hilite_system('FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/Kp') - opens and selects block Kp
+ *
+ * Here is the system hierarchy for this model
+ *
+ * '<Root>' : 'FOC_ADRC/PMSM_Controller'
+ * '<S1>'   : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL'
+ * '<S2>'   : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1'
+ * '<S3>'   : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2'
+ * '<S4>'   : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/IIR Filter'
+ * '<S5>'   : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/IIR Filter1'
+ * '<S6>'   : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2'
+ * '<S7>'   : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/SMO'
+ * '<S8>'   : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL'
+ * '<S9>'   : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Anti-windup'
+ * '<S10>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/D Gain'
+ * '<S11>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Filter'
+ * '<S12>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Filter ICs'
+ * '<S13>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/I Gain'
+ * '<S14>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Ideal P Gain'
+ * '<S15>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Ideal P Gain Fdbk'
+ * '<S16>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Integrator'
+ * '<S17>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Integrator ICs'
+ * '<S18>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/N Copy'
+ * '<S19>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/N Gain'
+ * '<S20>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/P Copy'
+ * '<S21>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Parallel P Gain'
+ * '<S22>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Reset Signal'
+ * '<S23>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Saturation'
+ * '<S24>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Saturation Fdbk'
+ * '<S25>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Sum'
+ * '<S26>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Sum Fdbk'
+ * '<S27>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Tracking Mode'
+ * '<S28>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Tracking Mode Sum'
+ * '<S29>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Tsamp - Integral'
+ * '<S30>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Tsamp - Ngain'
+ * '<S31>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/postSat Signal'
+ * '<S32>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/preSat Signal'
+ * '<S33>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Anti-windup/Passthrough'
+ * '<S34>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/D Gain/Disabled'
+ * '<S35>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Filter/Disabled'
+ * '<S36>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Filter ICs/Disabled'
+ * '<S37>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/I Gain/Internal Parameters'
+ * '<S38>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Ideal P Gain/Passthrough'
+ * '<S39>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Ideal P Gain Fdbk/Disabled'
+ * '<S40>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Integrator/Discrete'
+ * '<S41>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Integrator ICs/Internal IC'
+ * '<S42>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/N Copy/Disabled wSignal Specification'
+ * '<S43>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/N Gain/Disabled'
+ * '<S44>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/P Copy/Disabled'
+ * '<S45>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Parallel P Gain/Internal Parameters'
+ * '<S46>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Reset Signal/Disabled'
+ * '<S47>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Saturation/Passthrough'
+ * '<S48>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Saturation Fdbk/Disabled'
+ * '<S49>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Sum/Sum_PI'
+ * '<S50>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Sum Fdbk/Disabled'
+ * '<S51>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Tracking Mode/Disabled'
+ * '<S52>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Tracking Mode Sum/Passthrough'
+ * '<S53>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Tsamp - Integral/Passthrough'
+ * '<S54>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Tsamp - Ngain/Passthrough'
+ * '<S55>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/postSat Signal/Forward_Path'
+ * '<S56>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/preSat Signal/Forward_Path'
+ * '<S57>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/SMO/Subsystem1'
+ * '<S58>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/SMO/Subsystem2'
+ * '<S59>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/IIR Filter'
+ * '<S60>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2'
+ * '<S61>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/SMO'
+ * '<S62>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/SMO1'
+ * '<S63>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/arctan_PLL1'
+ * '<S64>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/Low-Pass Filter (Discrete or Continuous)'
+ * '<S65>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL'
+ * '<S66>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/Low-Pass Filter (Discrete or Continuous)/Enable//disable time constant'
+ * '<S67>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/Low-Pass Filter (Discrete or Continuous)/Initialization'
+ * '<S68>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/Low-Pass Filter (Discrete or Continuous)/Integrator (Discrete or Continuous)'
+ * '<S69>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/Low-Pass Filter (Discrete or Continuous)/Enable//disable time constant/Compare To Zero'
+ * '<S70>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/Low-Pass Filter (Discrete or Continuous)/Initialization/Init_u'
+ * '<S71>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/Low-Pass Filter (Discrete or Continuous)/Integrator (Discrete or Continuous)/Discrete'
+ * '<S72>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Anti-windup'
+ * '<S73>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/D Gain'
+ * '<S74>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Filter'
+ * '<S75>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Filter ICs'
+ * '<S76>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/I Gain'
+ * '<S77>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Ideal P Gain'
+ * '<S78>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Ideal P Gain Fdbk'
+ * '<S79>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Integrator'
+ * '<S80>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Integrator ICs'
+ * '<S81>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/N Copy'
+ * '<S82>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/N Gain'
+ * '<S83>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/P Copy'
+ * '<S84>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Parallel P Gain'
+ * '<S85>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Reset Signal'
+ * '<S86>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Saturation'
+ * '<S87>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Saturation Fdbk'
+ * '<S88>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Sum'
+ * '<S89>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Sum Fdbk'
+ * '<S90>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Tracking Mode'
+ * '<S91>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Tracking Mode Sum'
+ * '<S92>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Tsamp - Integral'
+ * '<S93>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Tsamp - Ngain'
+ * '<S94>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/postSat Signal'
+ * '<S95>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/preSat Signal'
+ * '<S96>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Anti-windup/Passthrough'
+ * '<S97>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/D Gain/Disabled'
+ * '<S98>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Filter/Disabled'
+ * '<S99>'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Filter ICs/Disabled'
+ * '<S100>' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/I Gain/Internal Parameters'
+ * '<S101>' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Ideal P Gain/Passthrough'
+ * '<S102>' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Ideal P Gain Fdbk/Disabled'
+ * '<S103>' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Integrator/Discrete'
+ * '<S104>' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Integrator ICs/Internal IC'
+ * '<S105>' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/N Copy/Disabled wSignal Specification'
+ * '<S106>' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/N Gain/Disabled'
+ * '<S107>' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/P Copy/Disabled'
+ * '<S108>' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Parallel P Gain/Internal Parameters'
+ * '<S109>' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Reset Signal/Disabled'
+ * '<S110>' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Saturation/Passthrough'
+ * '<S111>' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Saturation Fdbk/Disabled'
+ * '<S112>' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Sum/Sum_PI'
+ * '<S113>' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Sum Fdbk/Disabled'
+ * '<S114>' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Tracking Mode/Disabled'
+ * '<S115>' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Tracking Mode Sum/Passthrough'
+ * '<S116>' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Tsamp - Integral/Passthrough'
+ * '<S117>' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Tsamp - Ngain/Passthrough'
+ * '<S118>' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/postSat Signal/Forward_Path'
+ * '<S119>' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/preSat Signal/Forward_Path'
+ * '<S120>' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/SMO/Subsystem1'
+ * '<S121>' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/SMO/Subsystem2'
+ * '<S122>' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/SMO1/LFP'
+ * '<S123>' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/SMO1/LFP1'
+ * '<S124>' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/SMO1/Subsystem1'
+ * '<S125>' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/SMO1/Subsystem2'
+ * '<S126>' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/arctan_PLL1/Subsystem'
+ * '<S127>' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/arctan_PLL1/Subsystem/Saturation Dynamic'
+ */
+#endif                                 /* RTW_HEADER_SMO_arctan_PLL_h_ */
+
+/*
+ * File trailer for generated code.
+ *
+ * [EOF]
+ */

+ 406 - 0
Simulink/SMO_arctan_PLL_ert_rtw/SMO_arctan_PLL.mk

@@ -0,0 +1,406 @@
+###########################################################################
+## Makefile generated for component 'SMO_arctan_PLL'. 
+## 
+## Makefile     : SMO_arctan_PLL.mk
+## Generated on : Tue Apr 11 20:18:45 2023
+## Final product: $(RELATIVE_PATH_TO_ANCHOR)\SMO_arctan_PLL.exe
+## Product type : executable
+## 
+###########################################################################
+
+###########################################################################
+## MACROS
+###########################################################################
+
+# Macro Descriptions:
+# PRODUCT_NAME            Name of the system to build
+# MAKEFILE                Name of this makefile
+# COMPILER_COMMAND_FILE   Compiler command listing model reference header paths
+# CMD_FILE                Command file
+
+PRODUCT_NAME              = SMO_arctan_PLL
+MAKEFILE                  = SMO_arctan_PLL.mk
+MATLAB_ROOT               = D:\Program Files\R2020b
+MATLAB_BIN                = D:\Program Files\R2020b\bin
+MATLAB_ARCH_BIN           = $(MATLAB_BIN)\win64
+START_DIR                 = E:\works\mcu\MC100\Simulink
+SOLVER                    = 
+SOLVER_OBJ                = 
+CLASSIC_INTERFACE         = 0
+TGT_FCN_LIB               = ISO_C
+MODEL_HAS_DYNAMICALLY_LOADED_SFCNS = 0
+RELATIVE_PATH_TO_ANCHOR   = ..
+COMPILER_COMMAND_FILE     = SMO_arctan_PLL_comp.rsp
+CMD_FILE                  = SMO_arctan_PLL.rsp
+C_STANDARD_OPTS           = 
+CPP_STANDARD_OPTS         = 
+NODEBUG                   = 1
+
+###########################################################################
+## TOOLCHAIN SPECIFICATIONS
+###########################################################################
+
+# Toolchain Name:          Microsoft Visual C++ 2019 v16.0 | nmake (64-bit Windows)
+# Supported Version(s):    16.0
+# ToolchainInfo Version:   2020b
+# Specification Revision:  1.0
+# 
+#-------------------------------------------
+# Macros assumed to be defined elsewhere
+#-------------------------------------------
+
+# NODEBUG
+# cvarsdll
+# cvarsmt
+# conlibsmt
+# ldebug
+# conflags
+# cflags
+
+#-----------
+# MACROS
+#-----------
+
+MW_EXTERNLIB_DIR    = $(MATLAB_ROOT)\extern\lib\win64\microsoft
+MW_LIB_DIR          = $(MATLAB_ROOT)\lib\win64
+CPU                 = AMD64
+APPVER              = 5.02
+CVARSFLAG           = $(cvarsmt)
+CFLAGS_ADDITIONAL   = -D_CRT_SECURE_NO_WARNINGS
+CPPFLAGS_ADDITIONAL = -EHs -D_CRT_SECURE_NO_WARNINGS /wd4251
+LIBS_TOOLCHAIN      = $(conlibs)
+
+TOOLCHAIN_SRCS = 
+TOOLCHAIN_INCS = 
+TOOLCHAIN_LIBS = 
+
+#------------------------
+# BUILD TOOL COMMANDS
+#------------------------
+
+# C Compiler: Microsoft Visual C Compiler
+CC = cl
+
+# Linker: Microsoft Visual C Linker
+LD = link
+
+# C++ Compiler: Microsoft Visual C++ Compiler
+CPP = cl
+
+# C++ Linker: Microsoft Visual C++ Linker
+CPP_LD = link
+
+# Archiver: Microsoft Visual C/C++ Archiver
+AR = lib
+
+# MEX Tool: MEX Tool
+MEX_PATH = $(MATLAB_ARCH_BIN)
+MEX = "$(MEX_PATH)\mex"
+
+# Download: Download
+DOWNLOAD =
+
+# Execute: Execute
+EXECUTE = $(PRODUCT)
+
+# Builder: NMAKE Utility
+MAKE = nmake
+
+
+#-------------------------
+# Directives/Utilities
+#-------------------------
+
+CDEBUG              = -Zi
+C_OUTPUT_FLAG       = -Fo
+LDDEBUG             = /DEBUG
+OUTPUT_FLAG         = -out:
+CPPDEBUG            = -Zi
+CPP_OUTPUT_FLAG     = -Fo
+CPPLDDEBUG          = /DEBUG
+OUTPUT_FLAG         = -out:
+ARDEBUG             =
+STATICLIB_OUTPUT_FLAG = -out:
+MEX_DEBUG           = -g
+RM                  = @del
+ECHO                = @echo
+MV                  = @ren
+RUN                 = @cmd /C
+
+#----------------------------------------
+# "Faster Builds" Build Configuration
+#----------------------------------------
+
+ARFLAGS              = /nologo
+CFLAGS               = $(cflags) $(CVARSFLAG) $(CFLAGS_ADDITIONAL) \
+                       /Od /Oy-
+CPPFLAGS             = /TP $(cflags) $(CVARSFLAG) $(CPPFLAGS_ADDITIONAL) \
+                       /Od /Oy-
+CPP_LDFLAGS          = $(ldebug) $(conflags) $(LIBS_TOOLCHAIN)
+CPP_SHAREDLIB_LDFLAGS  = $(ldebug) $(conflags) $(LIBS_TOOLCHAIN) \
+                         -dll -def:$(DEF_FILE)
+DOWNLOAD_FLAGS       =
+EXECUTE_FLAGS        =
+LDFLAGS              = $(ldebug) $(conflags) $(LIBS_TOOLCHAIN)
+MEX_CPPFLAGS         =
+MEX_CPPLDFLAGS       =
+MEX_CFLAGS           =
+MEX_LDFLAGS          =
+MAKE_FLAGS           = -f $(MAKEFILE)
+SHAREDLIB_LDFLAGS    = $(ldebug) $(conflags) $(LIBS_TOOLCHAIN) \
+                       -dll -def:$(DEF_FILE)
+
+
+
+###########################################################################
+## OUTPUT INFO
+###########################################################################
+
+PRODUCT = $(RELATIVE_PATH_TO_ANCHOR)\SMO_arctan_PLL.exe
+PRODUCT_TYPE = "executable"
+BUILD_TYPE = "Top-Level Standalone Executable"
+
+###########################################################################
+## INCLUDE PATHS
+###########################################################################
+
+INCLUDES_BUILDINFO = 
+
+INCLUDES = $(INCLUDES_BUILDINFO)
+
+###########################################################################
+## DEFINES
+###########################################################################
+
+DEFINES_BUILD_ARGS = -DCLASSIC_INTERFACE=0 -DALLOCATIONFCN=0 -DTERMFCN=0 -DONESTEPFCN=1 -DMAT_FILE=0 -DMULTI_INSTANCE_CODE=1 -DINTEGER_CODE=0 -DMT=0
+DEFINES_CUSTOM = 
+DEFINES_OPTS = -DTID01EQ=0
+DEFINES_STANDARD = -DMODEL=SMO_arctan_PLL -DNUMST=1 -DNCSTATES=0 -DHAVESTDIO -DMODEL_HAS_DYNAMICALLY_LOADED_SFCNS=0
+
+DEFINES = $(DEFINES_BUILD_ARGS) $(DEFINES_CUSTOM) $(DEFINES_OPTS) $(DEFINES_STANDARD)
+
+###########################################################################
+## SOURCE FILES
+###########################################################################
+
+SRCS = $(START_DIR)\SMO_arctan_PLL_ert_rtw\SMO_arctan_PLL.c
+
+MAIN_SRC = $(START_DIR)\SMO_arctan_PLL_ert_rtw\ert_main.c
+
+ALL_SRCS = $(SRCS) $(MAIN_SRC)
+
+###########################################################################
+## OBJECTS
+###########################################################################
+
+OBJS = SMO_arctan_PLL.obj
+
+MAIN_OBJ = ert_main.obj
+
+ALL_OBJS = $(OBJS) $(MAIN_OBJ)
+
+###########################################################################
+## PREBUILT OBJECT FILES
+###########################################################################
+
+PREBUILT_OBJS = 
+
+###########################################################################
+## LIBRARIES
+###########################################################################
+
+LIBS = 
+
+###########################################################################
+## SYSTEM LIBRARIES
+###########################################################################
+
+SYSTEM_LIBS = 
+
+###########################################################################
+## ADDITIONAL TOOLCHAIN FLAGS
+###########################################################################
+
+#---------------
+# C Compiler
+#---------------
+
+CFLAGS_BASIC = $(DEFINES) @$(COMPILER_COMMAND_FILE)
+
+CFLAGS = $(CFLAGS) $(CFLAGS_BASIC)
+
+#-----------------
+# C++ Compiler
+#-----------------
+
+CPPFLAGS_BASIC = $(DEFINES) @$(COMPILER_COMMAND_FILE)
+
+CPPFLAGS = $(CPPFLAGS) $(CPPFLAGS_BASIC)
+
+###########################################################################
+## INLINED COMMANDS
+###########################################################################
+
+
+!include $(MATLAB_ROOT)\rtw\c\tools\vcdefs.mak
+
+
+###########################################################################
+## PHONY TARGETS
+###########################################################################
+
+.PHONY : all build buildobj clean info prebuild download execute set_environment_variables
+
+
+all : build
+	@cmd /C "@echo ### Successfully generated all binary outputs."
+
+
+build : set_environment_variables prebuild $(PRODUCT)
+
+
+buildobj : set_environment_variables prebuild $(OBJS) $(PREBUILT_OBJS)
+	@cmd /C "@echo ### Successfully generated all binary outputs."
+
+
+prebuild : 
+
+
+download : $(PRODUCT)
+
+
+execute : download
+	@cmd /C "@echo ### Invoking postbuild tool "Execute" ..."
+	$(EXECUTE) $(EXECUTE_FLAGS)
+	@cmd /C "@echo ### Done invoking postbuild tool."
+
+
+set_environment_variables : 
+	@set INCLUDE=$(INCLUDES);$(INCLUDE)
+	@set LIB=$(LIB)
+
+
+###########################################################################
+## FINAL TARGET
+###########################################################################
+
+#-------------------------------------------
+# Create a standalone executable            
+#-------------------------------------------
+
+$(PRODUCT) : $(OBJS) $(PREBUILT_OBJS) $(MAIN_OBJ)
+	@cmd /C "@echo ### Creating standalone executable "$(PRODUCT)" ..."
+	$(LD) $(LDFLAGS) -out:$(PRODUCT) @$(CMD_FILE) $(SYSTEM_LIBS) $(TOOLCHAIN_LIBS)
+	@cmd /C "@echo ### Created: $(PRODUCT)"
+
+
+###########################################################################
+## INTERMEDIATE TARGETS
+###########################################################################
+
+#---------------------
+# SOURCE-TO-OBJECT
+#---------------------
+
+.c.obj :
+	$(CC) $(CFLAGS) -Fo"$@" "$<"
+
+
+.cpp.obj :
+	$(CPP) $(CPPFLAGS) -Fo"$@" "$<"
+
+
+{$(RELATIVE_PATH_TO_ANCHOR)}.c.obj :
+	$(CC) $(CFLAGS) -Fo"$@" "$<"
+
+
+{$(RELATIVE_PATH_TO_ANCHOR)}.cpp.obj :
+	$(CPP) $(CPPFLAGS) -Fo"$@" "$<"
+
+
+{$(START_DIR)}.c.obj :
+	$(CC) $(CFLAGS) -Fo"$@" "$<"
+
+
+{$(START_DIR)}.cpp.obj :
+	$(CPP) $(CPPFLAGS) -Fo"$@" "$<"
+
+
+{$(START_DIR)\SMO_arctan_PLL_ert_rtw}.c.obj :
+	$(CC) $(CFLAGS) -Fo"$@" "$<"
+
+
+{$(START_DIR)\SMO_arctan_PLL_ert_rtw}.cpp.obj :
+	$(CPP) $(CPPFLAGS) -Fo"$@" "$<"
+
+
+{$(MATLAB_ROOT)\rtw\c\src}.c.obj :
+	$(CC) $(CFLAGS) -Fo"$@" "$<"
+
+
+{$(MATLAB_ROOT)\rtw\c\src}.cpp.obj :
+	$(CPP) $(CPPFLAGS) -Fo"$@" "$<"
+
+
+{$(MATLAB_ROOT)\simulink\src}.c.obj :
+	$(CC) $(CFLAGS) -Fo"$@" "$<"
+
+
+{$(MATLAB_ROOT)\simulink\src}.cpp.obj :
+	$(CPP) $(CPPFLAGS) -Fo"$@" "$<"
+
+
+SMO_arctan_PLL.obj : $(START_DIR)\SMO_arctan_PLL_ert_rtw\SMO_arctan_PLL.c
+	$(CC) $(CFLAGS) -Fo"$@" $(START_DIR)\SMO_arctan_PLL_ert_rtw\SMO_arctan_PLL.c
+
+
+ert_main.obj : $(START_DIR)\SMO_arctan_PLL_ert_rtw\ert_main.c
+	$(CC) $(CFLAGS) -Fo"$@" $(START_DIR)\SMO_arctan_PLL_ert_rtw\ert_main.c
+
+
+###########################################################################
+## DEPENDENCIES
+###########################################################################
+
+$(ALL_OBJS) : rtw_proj.tmw $(COMPILER_COMMAND_FILE) $(MAKEFILE)
+
+
+###########################################################################
+## MISCELLANEOUS TARGETS
+###########################################################################
+
+info : 
+	@cmd /C "@echo ### PRODUCT = $(PRODUCT)"
+	@cmd /C "@echo ### PRODUCT_TYPE = $(PRODUCT_TYPE)"
+	@cmd /C "@echo ### BUILD_TYPE = $(BUILD_TYPE)"
+	@cmd /C "@echo ### INCLUDES = $(INCLUDES)"
+	@cmd /C "@echo ### DEFINES = $(DEFINES)"
+	@cmd /C "@echo ### ALL_SRCS = $(ALL_SRCS)"
+	@cmd /C "@echo ### ALL_OBJS = $(ALL_OBJS)"
+	@cmd /C "@echo ### LIBS = $(LIBS)"
+	@cmd /C "@echo ### MODELREF_LIBS = $(MODELREF_LIBS)"
+	@cmd /C "@echo ### SYSTEM_LIBS = $(SYSTEM_LIBS)"
+	@cmd /C "@echo ### TOOLCHAIN_LIBS = $(TOOLCHAIN_LIBS)"
+	@cmd /C "@echo ### CFLAGS = $(CFLAGS)"
+	@cmd /C "@echo ### LDFLAGS = $(LDFLAGS)"
+	@cmd /C "@echo ### SHAREDLIB_LDFLAGS = $(SHAREDLIB_LDFLAGS)"
+	@cmd /C "@echo ### CPPFLAGS = $(CPPFLAGS)"
+	@cmd /C "@echo ### CPP_LDFLAGS = $(CPP_LDFLAGS)"
+	@cmd /C "@echo ### CPP_SHAREDLIB_LDFLAGS = $(CPP_SHAREDLIB_LDFLAGS)"
+	@cmd /C "@echo ### ARFLAGS = $(ARFLAGS)"
+	@cmd /C "@echo ### MEX_CFLAGS = $(MEX_CFLAGS)"
+	@cmd /C "@echo ### MEX_CPPFLAGS = $(MEX_CPPFLAGS)"
+	@cmd /C "@echo ### MEX_LDFLAGS = $(MEX_LDFLAGS)"
+	@cmd /C "@echo ### MEX_CPPLDFLAGS = $(MEX_CPPLDFLAGS)"
+	@cmd /C "@echo ### DOWNLOAD_FLAGS = $(DOWNLOAD_FLAGS)"
+	@cmd /C "@echo ### EXECUTE_FLAGS = $(EXECUTE_FLAGS)"
+	@cmd /C "@echo ### MAKE_FLAGS = $(MAKE_FLAGS)"
+
+
+clean : 
+	$(ECHO) "### Deleting all derived files..."
+	@if exist $(PRODUCT) $(RM) $(PRODUCT)
+	$(RM) $(ALL_OBJS)
+	$(ECHO) "### Deleted all derived files."
+
+

+ 2 - 0
Simulink/SMO_arctan_PLL_ert_rtw/SMO_arctan_PLL.rsp

@@ -0,0 +1,2 @@
+SMO_arctan_PLL.obj
+ert_main.obj

+ 7 - 0
Simulink/SMO_arctan_PLL_ert_rtw/SMO_arctan_PLL_comp.rsp

@@ -0,0 +1,7 @@
+-IE:\works\mcu\MC100\Simulink
+-IE:\works\mcu\MC100\Simulink\SMO_arctan_PLL_ert_rtw
+-I"D:\Program Files\R2020b\extern\include"
+-I"D:\Program Files\R2020b\simulink\include"
+-I"D:\Program Files\R2020b\rtw\c\src"
+-I"D:\Program Files\R2020b\rtw\c\src\ext_mode\common"
+-I"D:\Program Files\R2020b\rtw\c\ert"

+ 0 - 0
Simulink/SMO_arctan_PLL_ert_rtw/SMO_arctan_PLL_ref.rsp


BIN
Simulink/SMO_arctan_PLL_ert_rtw/buildInfo.mat


BIN
Simulink/SMO_arctan_PLL_ert_rtw/codeInfo.mat


BIN
Simulink/SMO_arctan_PLL_ert_rtw/codedescriptor.dmr


BIN
Simulink/SMO_arctan_PLL_ert_rtw/compileInfo.mat


+ 14 - 0
Simulink/SMO_arctan_PLL_ert_rtw/defines.txt

@@ -0,0 +1,14 @@
+MODEL=SMO_arctan_PLL
+NUMST=1
+NCSTATES=0
+HAVESTDIO
+MODEL_HAS_DYNAMICALLY_LOADED_SFCNS=0
+CLASSIC_INTERFACE=0
+ALLOCATIONFCN=0
+TID01EQ=0
+TERMFCN=0
+ONESTEPFCN=1
+MAT_FILE=0
+MULTI_INSTANCE_CODE=1
+INTEGER_CODE=0
+MT=0

+ 124 - 0
Simulink/SMO_arctan_PLL_ert_rtw/ert_main.c

@@ -0,0 +1,124 @@
+/*
+ * File: ert_main.c
+ *
+ * Code generated for Simulink model 'SMO_arctan_PLL'.
+ *
+ * Model version                  : 1.812
+ * Simulink Coder version         : 9.4 (R2020b) 29-Jul-2020
+ * C/C++ source code generated on : Tue Apr 11 20:18:35 2023
+ *
+ * Target selection: ert.tlc
+ * Embedded hardware selection: ARM Compatible->ARM Cortex-M
+ * Code generation objectives:
+ *    1. Execution efficiency
+ *    2. RAM efficiency
+ * Validation result: Not run
+ */
+
+#include <stddef.h>
+#include <stdio.h>              /* This ert_main.c example uses printf/fflush */
+#include "SMO_arctan_PLL.h"            /* Model's header file */
+#include "rtwtypes.h"
+
+static RT_MODEL rtM_;
+static RT_MODEL *const rtMPtr = &rtM_; /* Real-time model */
+static DW rtDW;                        /* Observable states */
+
+/* '<Root>/Ialfa,beta' */
+static real_T rtU_Ialfabeta[2];
+
+/* '<Root>/Ualfa,beta' */
+static real_T rtU_Ualfabeta[2];
+
+/* '<Root>/theta' */
+static real_T rtY_theta;
+
+/* '<Root>/we' */
+static real_T rtY_we;
+
+/*
+ * Associating rt_OneStep with a real-time clock or interrupt service routine
+ * is what makes the generated code "real-time".  The function rt_OneStep is
+ * always associated with the base rate of the model.  Subrates are managed
+ * by the base rate from inside the generated code.  Enabling/disabling
+ * interrupts and floating point context switches are target specific.  This
+ * example code indicates where these should take place relative to executing
+ * the generated code step function.  Overrun behavior should be tailored to
+ * your application needs.  This example simply sets an error status in the
+ * real-time model and returns from rt_OneStep.
+ */
+void rt_OneStep(RT_MODEL *const rtM);
+void rt_OneStep(RT_MODEL *const rtM)
+{
+  static boolean_T OverrunFlag = false;
+
+  /* Disable interrupts here */
+
+  /* Check for overrun */
+  if (OverrunFlag) {
+    rtmSetErrorStatus(rtM, "Overrun");
+    return;
+  }
+
+  OverrunFlag = true;
+
+  /* Save FPU context here (if necessary) */
+  /* Re-enable timer or interrupt here */
+  /* Set model inputs here */
+
+  /* Step the model */
+  SMO_arctan_PLL_step(rtM, rtU_Ialfabeta, rtU_Ualfabeta, &rtY_theta, &rtY_we);
+
+  /* Get model outputs here */
+
+  /* Indicate task complete */
+  OverrunFlag = false;
+
+  /* Disable interrupts here */
+  /* Restore FPU context here (if necessary) */
+  /* Enable interrupts here */
+}
+
+/*
+ * The example "main" function illustrates what is required by your
+ * application code to initialize, execute, and terminate the generated code.
+ * Attaching rt_OneStep to a real-time clock is target specific.  This example
+ * illustrates how you do this relative to initializing the model.
+ */
+int_T main(int_T argc, const char *argv[])
+{
+  RT_MODEL *const rtM = rtMPtr;
+
+  /* Unused arguments */
+  (void)(argc);
+  (void)(argv);
+
+  /* Pack model data into RTM */
+  rtM->dwork = &rtDW;
+
+  /* Initialize model */
+  SMO_arctan_PLL_initialize(rtM);
+
+  /* Attach rt_OneStep to a timer or interrupt service routine with
+   * period 6.0E-5 seconds (the model's base sample time) here.  The
+   * call syntax for rt_OneStep is
+   *
+   *  rt_OneStep(rtM);
+   */
+  printf("Warning: The simulation will run forever. "
+         "Generated ERT main won't simulate model step behavior. "
+         "To change this behavior select the 'MAT-file logging' option.\n");
+  fflush((NULL));
+  while (rtmGetErrorStatus(rtM) == (NULL)) {
+    /*  Perform other application tasks here */
+  }
+
+  /* Disable rt_OneStep() here */
+  return 0;
+}
+
+/*
+ * File trailer for generated code.
+ *
+ * [EOF]
+ */

+ 1008 - 0
Simulink/SMO_arctan_PLL_ert_rtw/html/SMO_arctan_PLL_c.html

@@ -0,0 +1,1008 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script type="text/javascript" src="./js/coder_app.js"></script>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<script type="text/javascript" src="./rtwreport_utils.js"></script>
+<script type="text/javascript" src="./rtwannotate.js"></script>
+<link rel="stylesheet" type="text/css" href="./css/coder_app.css"/>
+</head>
+<body onload="srcFileOnload();">
+<pre id="code">
+<table class="code" id="codeTbl">
+<tr name="1" id="1">
+<td><a id="l1" class='ln'>1</a></td><td><span class="ct">/*</span></td></tr>
+<tr name="2" id="2">
+<td><a id="l2" class='ln'>2</a></td><td><span class="ct"> * File: SMO_arctan_PLL.c</span></td></tr>
+<tr name="3" id="3">
+<td><a id="l3" class='ln'>3</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="4" id="4">
+<td><a id="l4" class='ln'>4</a></td><td><span class="ct"> * Code generated for Simulink model 'SMO_arctan_PLL'.</span></td></tr>
+<tr name="5" id="5">
+<td><a id="l5" class='ln'>5</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="6" id="6">
+<td><a id="l6" class='ln'>6</a></td><td><span class="ct"> * Model version                  : 1.812</span></td></tr>
+<tr name="7" id="7">
+<td><a id="l7" class='ln'>7</a></td><td><span class="ct"> * Simulink Coder version         : 9.4 (R2020b) 29-Jul-2020</span></td></tr>
+<tr name="8" id="8">
+<td><a id="l8" class='ln'>8</a></td><td><span class="ct"> * C/C++ source code generated on : Tue Apr 11 20:18:35 2023</span></td></tr>
+<tr name="9" id="9">
+<td><a id="l9" class='ln'>9</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="10" id="10">
+<td><a id="l10" class='ln'>10</a></td><td><span class="ct"> * Target selection: ert.tlc</span></td></tr>
+<tr name="11" id="11">
+<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Embedded hardware selection: ARM Compatible-&gt;ARM Cortex-M</span></td></tr>
+<tr name="12" id="12">
+<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * Code generation objectives:</span></td></tr>
+<tr name="13" id="13">
+<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> *    1. Execution efficiency</span></td></tr>
+<tr name="14" id="14">
+<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> *    2. RAM efficiency</span></td></tr>
+<tr name="15" id="15">
+<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
+<tr name="16" id="16">
+<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="17" id="17">
+<td><a id="l17" class='ln'>17</a></td><td></td></tr>
+<tr name="18" id="18">
+<td><a id="l18" class='ln'>18</a></td><td><span class="pp">#include "SMO_arctan_PLL.h"</span></td></tr>
+<tr name="19" id="19">
+<td><a id="l19" class='ln'>19</a></td><td><span class="pp">#define</span> <a id="19c9" class="tk">NumBitsPerChar</a>                 8U</td></tr>
+<tr name="20" id="20">
+<td><a id="l20" class='ln'>20</a></td><td></td></tr>
+<tr name="21" id="21">
+<td><a id="l21" class='ln'>21</a></td><td><span class="kw">extern</span> <a id="21c8" class="tk">real_T</a> <a id="21c15" class="tk">rt_remd_snf</a>(<a id="21c27" class="tk">real_T</a> <a id="21c34" class="tk">u0</a>, <a id="21c38" class="tk">real_T</a> <a id="21c45" class="tk">u1</a>);</td></tr>
+<tr name="22" id="22">
+<td><a id="l22" class='ln'>22</a></td><td><span class="kw">static</span> <a id="22c8" class="tk">real_T</a> <a id="22c15" class="tk">rtGetNaN</a>(<span class="kw">void</span>);</td></tr>
+<tr name="23" id="23">
+<td><a id="l23" class='ln'>23</a></td><td><span class="kw">static</span> <a id="23c8" class="tk">real32_T</a> <a id="23c17" class="tk">rtGetNaNF</a>(<span class="kw">void</span>);</td></tr>
+<tr name="24" id="24">
+<td><a id="l24" class='ln'>24</a></td><td><span class="kw">extern</span> <a id="24c8" class="tk">real_T</a> <a id="24c15" class="tk">rtInf</a>;</td></tr>
+<tr name="25" id="25">
+<td><a id="l25" class='ln'>25</a></td><td><span class="kw">extern</span> <a id="25c8" class="tk">real_T</a> <a id="25c15" class="tk">rtMinusInf</a>;</td></tr>
+<tr name="26" id="26">
+<td><a id="l26" class='ln'>26</a></td><td><span class="kw">extern</span> <a id="26c8" class="tk">real_T</a> <a id="26c15" class="tk">rtNaN</a>;</td></tr>
+<tr name="27" id="27">
+<td><a id="l27" class='ln'>27</a></td><td><span class="kw">extern</span> <a id="27c8" class="tk">real32_T</a> <a id="27c17" class="tk">rtInfF</a>;</td></tr>
+<tr name="28" id="28">
+<td><a id="l28" class='ln'>28</a></td><td><span class="kw">extern</span> <a id="28c8" class="tk">real32_T</a> <a id="28c17" class="tk">rtMinusInfF</a>;</td></tr>
+<tr name="29" id="29">
+<td><a id="l29" class='ln'>29</a></td><td><span class="kw">extern</span> <a id="29c8" class="tk">real32_T</a> <a id="29c17" class="tk">rtNaNF</a>;</td></tr>
+<tr name="30" id="30">
+<td><a id="l30" class='ln'>30</a></td><td><span class="kw">static</span> <span class="kw">void</span> <a id="30c13" class="tk">rt_InitInfAndNaN</a>(<a id="30c30" class="tk">size_t</a> <a id="30c37" class="tk">realSize</a>);</td></tr>
+<tr name="31" id="31">
+<td><a id="l31" class='ln'>31</a></td><td><span class="kw">static</span> <a id="31c8" class="tk">boolean_T</a> <a id="31c18" class="tk">rtIsInf</a>(<a id="31c26" class="tk">real_T</a> <a id="31c33" class="tk">value</a>);</td></tr>
+<tr name="32" id="32">
+<td><a id="l32" class='ln'>32</a></td><td><span class="kw">static</span> <a id="32c8" class="tk">boolean_T</a> <a id="32c18" class="tk">rtIsInfF</a>(<a id="32c27" class="tk">real32_T</a> <a id="32c36" class="tk">value</a>);</td></tr>
+<tr name="33" id="33">
+<td><a id="l33" class='ln'>33</a></td><td><span class="kw">static</span> <a id="33c8" class="tk">boolean_T</a> <a id="33c18" class="tk">rtIsNaN</a>(<a id="33c26" class="tk">real_T</a> <a id="33c33" class="tk">value</a>);</td></tr>
+<tr name="34" id="34">
+<td><a id="l34" class='ln'>34</a></td><td><span class="kw">static</span> <a id="34c8" class="tk">boolean_T</a> <a id="34c18" class="tk">rtIsNaNF</a>(<a id="34c27" class="tk">real32_T</a> <a id="34c36" class="tk">value</a>);</td></tr>
+<tr name="35" id="35">
+<td><a id="l35" class='ln'>35</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="36" id="36">
+<td><a id="l36" class='ln'>36</a></td><td>  <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="37" id="37">
+<td><a id="l37" class='ln'>37</a></td><td>    <a id="37c5" class="tk">uint32_T</a> <a id="37c14" class="tk">wordH</a>;</td></tr>
+<tr name="38" id="38">
+<td><a id="l38" class='ln'>38</a></td><td>    <a id="38c5" class="tk">uint32_T</a> <a id="38c14" class="tk">wordL</a>;</td></tr>
+<tr name="39" id="39">
+<td><a id="l39" class='ln'>39</a></td><td>  <span class="br">}</span> <a id="39c5" class="tk">words</a>;</td></tr>
+<tr name="40" id="40">
+<td><a id="l40" class='ln'>40</a></td><td><span class="br">}</span> <a id="40c3" class="tk">BigEndianIEEEDouble</a>;</td></tr>
+<tr name="41" id="41">
+<td><a id="l41" class='ln'>41</a></td><td></td></tr>
+<tr name="42" id="42">
+<td><a id="l42" class='ln'>42</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="43" id="43">
+<td><a id="l43" class='ln'>43</a></td><td>  <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="44" id="44">
+<td><a id="l44" class='ln'>44</a></td><td>    <a id="44c5" class="tk">uint32_T</a> <a id="44c14" class="tk">wordL</a>;</td></tr>
+<tr name="45" id="45">
+<td><a id="l45" class='ln'>45</a></td><td>    <a id="45c5" class="tk">uint32_T</a> <a id="45c14" class="tk">wordH</a>;</td></tr>
+<tr name="46" id="46">
+<td><a id="l46" class='ln'>46</a></td><td>  <span class="br">}</span> <a id="46c5" class="tk">words</a>;</td></tr>
+<tr name="47" id="47">
+<td><a id="l47" class='ln'>47</a></td><td><span class="br">}</span> <a id="47c3" class="tk">LittleEndianIEEEDouble</a>;</td></tr>
+<tr name="48" id="48">
+<td><a id="l48" class='ln'>48</a></td><td></td></tr>
+<tr name="49" id="49">
+<td><a id="l49" class='ln'>49</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="50" id="50">
+<td><a id="l50" class='ln'>50</a></td><td>  <span class="kw">union</span> <span class="br">{</span></td></tr>
+<tr name="51" id="51">
+<td><a id="l51" class='ln'>51</a></td><td>    <a id="51c5" class="tk">real32_T</a> <a id="51c14" class="tk">wordLreal</a>;</td></tr>
+<tr name="52" id="52">
+<td><a id="l52" class='ln'>52</a></td><td>    <a id="52c5" class="tk">uint32_T</a> <a id="52c14" class="tk">wordLuint</a>;</td></tr>
+<tr name="53" id="53">
+<td><a id="l53" class='ln'>53</a></td><td>  <span class="br">}</span> <a id="53c5" class="tk">wordL</a>;</td></tr>
+<tr name="54" id="54">
+<td><a id="l54" class='ln'>54</a></td><td><span class="br">}</span> <a id="54c3" class="tk">IEEESingle</a>;</td></tr>
+<tr name="55" id="55">
+<td><a id="l55" class='ln'>55</a></td><td></td></tr>
+<tr name="56" id="56">
+<td><a id="l56" class='ln'>56</a></td><td><a id="56c1" class="tk">real_T</a> <a id="56c8" class="tk">rtInf</a>;</td></tr>
+<tr name="57" id="57">
+<td><a id="l57" class='ln'>57</a></td><td><a id="57c1" class="tk">real_T</a> <a id="57c8" class="tk">rtMinusInf</a>;</td></tr>
+<tr name="58" id="58">
+<td><a id="l58" class='ln'>58</a></td><td><a id="58c1" class="tk">real_T</a> <a id="58c8" class="tk">rtNaN</a>;</td></tr>
+<tr name="59" id="59">
+<td><a id="l59" class='ln'>59</a></td><td><a id="59c1" class="tk">real32_T</a> <a id="59c10" class="tk">rtInfF</a>;</td></tr>
+<tr name="60" id="60">
+<td><a id="l60" class='ln'>60</a></td><td><a id="60c1" class="tk">real32_T</a> <a id="60c10" class="tk">rtMinusInfF</a>;</td></tr>
+<tr name="61" id="61">
+<td><a id="l61" class='ln'>61</a></td><td><a id="61c1" class="tk">real32_T</a> <a id="61c10" class="tk">rtNaNF</a>;</td></tr>
+<tr name="62" id="62">
+<td><a id="l62" class='ln'>62</a></td><td><span class="kw">static</span> <a id="62c8" class="tk">real_T</a> <a id="62c15" class="tk">rtGetInf</a>(<span class="kw">void</span>);</td></tr>
+<tr name="63" id="63">
+<td><a id="l63" class='ln'>63</a></td><td><span class="kw">static</span> <a id="63c8" class="tk">real32_T</a> <a id="63c17" class="tk">rtGetInfF</a>(<span class="kw">void</span>);</td></tr>
+<tr name="64" id="64">
+<td><a id="l64" class='ln'>64</a></td><td><span class="kw">static</span> <a id="64c8" class="tk">real_T</a> <a id="64c15" class="tk">rtGetMinusInf</a>(<span class="kw">void</span>);</td></tr>
+<tr name="65" id="65">
+<td><a id="l65" class='ln'>65</a></td><td><span class="kw">static</span> <a id="65c8" class="tk">real32_T</a> <a id="65c17" class="tk">rtGetMinusInfF</a>(<span class="kw">void</span>);</td></tr>
+<tr name="66" id="66">
+<td><a id="l66" class='ln'>66</a></td><td></td></tr>
+<tr name="67" id="67">
+<td><a id="l67" class='ln'>67</a></td><td><span class="ct">/*===========*</span></td></tr>
+<tr name="68" id="68">
+<td><a id="l68" class='ln'>68</a></td><td><span class="ct"> * Constants *</span></td></tr>
+<tr name="69" id="69">
+<td><a id="l69" class='ln'>69</a></td><td><span class="ct"> *===========*/</span></td></tr>
+<tr name="70" id="70">
+<td><a id="l70" class='ln'>70</a></td><td><span class="pp">#define</span> <a id="70c9" class="tk">RT_PI</a>                          3.14159265358979323846</td></tr>
+<tr name="71" id="71">
+<td><a id="l71" class='ln'>71</a></td><td><span class="pp">#define</span> <a id="71c9" class="tk">RT_PIF</a>                         3.1415927F</td></tr>
+<tr name="72" id="72">
+<td><a id="l72" class='ln'>72</a></td><td><span class="pp">#define</span> <a id="72c9" class="tk">RT_LN_10</a>                       2.30258509299404568402</td></tr>
+<tr name="73" id="73">
+<td><a id="l73" class='ln'>73</a></td><td><span class="pp">#define</span> <a id="73c9" class="tk">RT_LN_10F</a>                      2.3025851F</td></tr>
+<tr name="74" id="74">
+<td><a id="l74" class='ln'>74</a></td><td><span class="pp">#define</span> <a id="74c9" class="tk">RT_LOG10E</a>                      0.43429448190325182765</td></tr>
+<tr name="75" id="75">
+<td><a id="l75" class='ln'>75</a></td><td><span class="pp">#define</span> <a id="75c9" class="tk">RT_LOG10EF</a>                     0.43429449F</td></tr>
+<tr name="76" id="76">
+<td><a id="l76" class='ln'>76</a></td><td><span class="pp">#define</span> <a id="76c9" class="tk">RT_E</a>                           2.7182818284590452354</td></tr>
+<tr name="77" id="77">
+<td><a id="l77" class='ln'>77</a></td><td><span class="pp">#define</span> <a id="77c9" class="tk">RT_EF</a>                          2.7182817F</td></tr>
+<tr name="78" id="78">
+<td><a id="l78" class='ln'>78</a></td><td></td></tr>
+<tr name="79" id="79">
+<td><a id="l79" class='ln'>79</a></td><td><span class="ct">/*</span></td></tr>
+<tr name="80" id="80">
+<td><a id="l80" class='ln'>80</a></td><td><span class="ct"> * UNUSED_PARAMETER(x)</span></td></tr>
+<tr name="81" id="81">
+<td><a id="l81" class='ln'>81</a></td><td><span class="ct"> *   Used to specify that a function parameter (argument) is required but not</span></td></tr>
+<tr name="82" id="82">
+<td><a id="l82" class='ln'>82</a></td><td><span class="ct"> *   accessed by the function body.</span></td></tr>
+<tr name="83" id="83">
+<td><a id="l83" class='ln'>83</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="84" id="84">
+<td><a id="l84" class='ln'>84</a></td><td><span class="pp">#ifndef</span> <a id="84c9" class="tk">UNUSED_PARAMETER</a></td></tr>
+<tr name="85" id="85">
+<td><a id="l85" class='ln'>85</a></td><td><span class="pp">#if</span> <a id="85c5" class="tk">defined</a>(<a id="85c13" class="tk">__LCC__</a>)</td></tr>
+<tr name="86" id="86">
+<td><a id="l86" class='ln'>86</a></td><td><span class="pp">#define</span> <a id="86c9" class="tk">UNUSED_PARAMETER</a>(<a id="86c26" class="tk">x</a>)                                      <span class="ct">/* do nothing */</span></td></tr>
+<tr name="87" id="87">
+<td><a id="l87" class='ln'>87</a></td><td><span class="pp">#else</span></td></tr>
+<tr name="88" id="88">
+<td><a id="l88" class='ln'>88</a></td><td></td></tr>
+<tr name="89" id="89">
+<td><a id="l89" class='ln'>89</a></td><td><span class="ct">/*</span></td></tr>
+<tr name="90" id="90">
+<td><a id="l90" class='ln'>90</a></td><td><span class="ct"> * This is the semi-ANSI standard way of indicating that an</span></td></tr>
+<tr name="91" id="91">
+<td><a id="l91" class='ln'>91</a></td><td><span class="ct"> * unused function parameter is required.</span></td></tr>
+<tr name="92" id="92">
+<td><a id="l92" class='ln'>92</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="93" id="93">
+<td><a id="l93" class='ln'>93</a></td><td><span class="pp">#define</span> <a id="93c9" class="tk">UNUSED_PARAMETER</a>(<a id="93c26" class="tk">x</a>)            (<span class="kw">void</span>) (<a id="93c48" class="tk">x</a>)</td></tr>
+<tr name="94" id="94">
+<td><a id="l94" class='ln'>94</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="95" id="95">
+<td><a id="l95" class='ln'>95</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="96" id="96">
+<td><a id="l96" class='ln'>96</a></td><td></td></tr>
+<tr name="97" id="97">
+<td><a id="l97" class='ln'>97</a></td><td><span class="ct">/*</span></td></tr>
+<tr name="98" id="98">
+<td><a id="l98" class='ln'>98</a></td><td><span class="ct"> * Initialize rtNaN needed by the generated code.</span></td></tr>
+<tr name="99" id="99">
+<td><a id="l99" class='ln'>99</a></td><td><span class="ct"> * NaN is initialized as non-signaling. Assumes IEEE.</span></td></tr>
+<tr name="100" id="100">
+<td><a id="l100" class='ln'>100</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="101" id="101">
+<td><a id="l101" class='ln'>101</a></td><td><span class="kw">static</span> <a id="101c8" class="tk">real_T</a> <a id="101c15" class="tk">rtGetNaN</a>(<span class="kw">void</span>)</td></tr>
+<tr name="102" id="102">
+<td><a id="l102" class='ln'>102</a></td><td><span class="br">{</span></td></tr>
+<tr name="103" id="103">
+<td><a id="l103" class='ln'>103</a></td><td>  <a id="103c3" class="tk">size_t</a> <a id="103c10" class="tk">bitsPerReal</a> = <span class="kw">sizeof</span>(<a id="103c31" class="tk">real_T</a>) <a id="103c39" class="tk">*</a> (<a id="103c42" class="tk">NumBitsPerChar</a>);</td></tr>
+<tr name="104" id="104">
+<td><a id="l104" class='ln'>104</a></td><td>  <a id="104c3" class="tk">real_T</a> <a id="104c10" class="tk">nan</a> = 0.0;</td></tr>
+<tr name="105" id="105">
+<td><a id="l105" class='ln'>105</a></td><td>  <span class="kw">if</span> (<a id="105c7" class="tk">bitsPerReal</a> <a id="105c19" class="tk">==</a> 32U) <span class="br">{</span></td></tr>
+<tr name="106" id="106">
+<td><a id="l106" class='ln'>106</a></td><td>    <a id="106c5" class="tk">nan</a> = <a id="106c11" class="tk">rtGetNaNF</a>();</td></tr>
+<tr name="107" id="107">
+<td><a id="l107" class='ln'>107</a></td><td>  <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="108" id="108">
+<td><a id="l108" class='ln'>108</a></td><td>    <span class="kw">union</span> <span class="br">{</span></td></tr>
+<tr name="109" id="109">
+<td><a id="l109" class='ln'>109</a></td><td>      <a id="109c7" class="tk">LittleEndianIEEEDouble</a> <a id="109c30" class="tk">bitVal</a>;</td></tr>
+<tr name="110" id="110">
+<td><a id="l110" class='ln'>110</a></td><td>      <a id="110c7" class="tk">real_T</a> <a id="110c14" class="tk">fltVal</a>;</td></tr>
+<tr name="111" id="111">
+<td><a id="l111" class='ln'>111</a></td><td>    <span class="br">}</span> <a id="111c7" class="tk">tmpVal</a>;</td></tr>
+<tr name="112" id="112">
+<td><a id="l112" class='ln'>112</a></td><td></td></tr>
+<tr name="113" id="113">
+<td><a id="l113" class='ln'>113</a></td><td>    <a id="113c5" class="tk">tmpVal</a>.<a id="113c12" class="tk">bitVal</a>.<a id="113c19" class="tk">words</a>.<a id="113c25" class="tk">wordH</a> = 0xFFF80000U;</td></tr>
+<tr name="114" id="114">
+<td><a id="l114" class='ln'>114</a></td><td>    <a id="114c5" class="tk">tmpVal</a>.<a id="114c12" class="tk">bitVal</a>.<a id="114c19" class="tk">words</a>.<a id="114c25" class="tk">wordL</a> = 0x00000000U;</td></tr>
+<tr name="115" id="115">
+<td><a id="l115" class='ln'>115</a></td><td>    <a id="115c5" class="tk">nan</a> = <a id="115c11" class="tk">tmpVal</a>.<a id="115c18" class="tk">fltVal</a>;</td></tr>
+<tr name="116" id="116">
+<td><a id="l116" class='ln'>116</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="117" id="117">
+<td><a id="l117" class='ln'>117</a></td><td></td></tr>
+<tr name="118" id="118">
+<td><a id="l118" class='ln'>118</a></td><td>  <span class="kw">return</span> <a id="118c10" class="tk">nan</a>;</td></tr>
+<tr name="119" id="119">
+<td><a id="l119" class='ln'>119</a></td><td><span class="br">}</span></td></tr>
+<tr name="120" id="120">
+<td><a id="l120" class='ln'>120</a></td><td></td></tr>
+<tr name="121" id="121">
+<td><a id="l121" class='ln'>121</a></td><td><span class="ct">/*</span></td></tr>
+<tr name="122" id="122">
+<td><a id="l122" class='ln'>122</a></td><td><span class="ct"> * Initialize rtNaNF needed by the generated code.</span></td></tr>
+<tr name="123" id="123">
+<td><a id="l123" class='ln'>123</a></td><td><span class="ct"> * NaN is initialized as non-signaling. Assumes IEEE.</span></td></tr>
+<tr name="124" id="124">
+<td><a id="l124" class='ln'>124</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="125" id="125">
+<td><a id="l125" class='ln'>125</a></td><td><span class="kw">static</span> <a id="125c8" class="tk">real32_T</a> <a id="125c17" class="tk">rtGetNaNF</a>(<span class="kw">void</span>)</td></tr>
+<tr name="126" id="126">
+<td><a id="l126" class='ln'>126</a></td><td><span class="br">{</span></td></tr>
+<tr name="127" id="127">
+<td><a id="l127" class='ln'>127</a></td><td>  <a id="127c3" class="tk">IEEESingle</a> <a id="127c14" class="tk">nanF</a> = <span class="br">{</span> <span class="br">{</span> 0 <span class="br">}</span> <span class="br">}</span>;</td></tr>
+<tr name="128" id="128">
+<td><a id="l128" class='ln'>128</a></td><td></td></tr>
+<tr name="129" id="129">
+<td><a id="l129" class='ln'>129</a></td><td>  <a id="129c3" class="tk">nanF</a>.<a id="129c8" class="tk">wordL</a>.<a id="129c14" class="tk">wordLuint</a> = 0xFFC00000U;</td></tr>
+<tr name="130" id="130">
+<td><a id="l130" class='ln'>130</a></td><td>  <span class="kw">return</span> <a id="130c10" class="tk">nanF</a>.<a id="130c15" class="tk">wordL</a>.<a id="130c21" class="tk">wordLreal</a>;</td></tr>
+<tr name="131" id="131">
+<td><a id="l131" class='ln'>131</a></td><td><span class="br">}</span></td></tr>
+<tr name="132" id="132">
+<td><a id="l132" class='ln'>132</a></td><td></td></tr>
+<tr name="133" id="133">
+<td><a id="l133" class='ln'>133</a></td><td><span class="ct">/*</span></td></tr>
+<tr name="134" id="134">
+<td><a id="l134" class='ln'>134</a></td><td><span class="ct"> * Initialize the rtInf, rtMinusInf, and rtNaN needed by the</span></td></tr>
+<tr name="135" id="135">
+<td><a id="l135" class='ln'>135</a></td><td><span class="ct"> * generated code. NaN is initialized as non-signaling. Assumes IEEE.</span></td></tr>
+<tr name="136" id="136">
+<td><a id="l136" class='ln'>136</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="137" id="137">
+<td><a id="l137" class='ln'>137</a></td><td><span class="kw">static</span> <span class="kw">void</span> <a id="137c13" class="tk">rt_InitInfAndNaN</a>(<a id="137c30" class="tk">size_t</a> <a id="137c37" class="tk">realSize</a>)</td></tr>
+<tr name="138" id="138">
+<td><a id="l138" class='ln'>138</a></td><td><span class="br">{</span></td></tr>
+<tr name="139" id="139">
+<td><a id="l139" class='ln'>139</a></td><td>  (<span class="kw">void</span>) (<a id="139c11" class="tk">realSize</a>);</td></tr>
+<tr name="140" id="140">
+<td><a id="l140" class='ln'>140</a></td><td>  <a id="140c3" class="tk">rtNaN</a> = <a id="140c11" class="tk">rtGetNaN</a>();</td></tr>
+<tr name="141" id="141">
+<td><a id="l141" class='ln'>141</a></td><td>  <a id="141c3" class="tk">rtNaNF</a> = <a id="141c12" class="tk">rtGetNaNF</a>();</td></tr>
+<tr name="142" id="142">
+<td><a id="l142" class='ln'>142</a></td><td>  <a id="142c3" class="tk">rtInf</a> = <a id="142c11" class="tk">rtGetInf</a>();</td></tr>
+<tr name="143" id="143">
+<td><a id="l143" class='ln'>143</a></td><td>  <a id="143c3" class="tk">rtInfF</a> = <a id="143c12" class="tk">rtGetInfF</a>();</td></tr>
+<tr name="144" id="144">
+<td><a id="l144" class='ln'>144</a></td><td>  <a id="144c3" class="tk">rtMinusInf</a> = <a id="144c16" class="tk">rtGetMinusInf</a>();</td></tr>
+<tr name="145" id="145">
+<td><a id="l145" class='ln'>145</a></td><td>  <a id="145c3" class="tk">rtMinusInfF</a> = <a id="145c17" class="tk">rtGetMinusInfF</a>();</td></tr>
+<tr name="146" id="146">
+<td><a id="l146" class='ln'>146</a></td><td><span class="br">}</span></td></tr>
+<tr name="147" id="147">
+<td><a id="l147" class='ln'>147</a></td><td></td></tr>
+<tr name="148" id="148">
+<td><a id="l148" class='ln'>148</a></td><td><span class="ct">/* Test if value is infinite */</span></td></tr>
+<tr name="149" id="149">
+<td><a id="l149" class='ln'>149</a></td><td><span class="kw">static</span> <a id="149c8" class="tk">boolean_T</a> <a id="149c18" class="tk">rtIsInf</a>(<a id="149c26" class="tk">real_T</a> <a id="149c33" class="tk">value</a>)</td></tr>
+<tr name="150" id="150">
+<td><a id="l150" class='ln'>150</a></td><td><span class="br">{</span></td></tr>
+<tr name="151" id="151">
+<td><a id="l151" class='ln'>151</a></td><td>  <span class="kw">return</span> (<a id="151c11" class="tk">boolean_T</a>)((<a id="151c23" class="tk">value</a><a id="151c28" class="tk">==</a><a id="151c30" class="tk">rtInf</a> <a id="151c36" class="tk">||</a> <a id="151c39" class="tk">value</a><a id="151c44" class="tk">==</a><a id="151c46" class="tk">rtMinusInf</a>) <a id="151c58" class="tk">?</a> 1U <a id="151c63" class="tk">:</a> 0U);</td></tr>
+<tr name="152" id="152">
+<td><a id="l152" class='ln'>152</a></td><td><span class="br">}</span></td></tr>
+<tr name="153" id="153">
+<td><a id="l153" class='ln'>153</a></td><td></td></tr>
+<tr name="154" id="154">
+<td><a id="l154" class='ln'>154</a></td><td><span class="ct">/* Test if single-precision value is infinite */</span></td></tr>
+<tr name="155" id="155">
+<td><a id="l155" class='ln'>155</a></td><td><span class="kw">static</span> <a id="155c8" class="tk">boolean_T</a> <a id="155c18" class="tk">rtIsInfF</a>(<a id="155c27" class="tk">real32_T</a> <a id="155c36" class="tk">value</a>)</td></tr>
+<tr name="156" id="156">
+<td><a id="l156" class='ln'>156</a></td><td><span class="br">{</span></td></tr>
+<tr name="157" id="157">
+<td><a id="l157" class='ln'>157</a></td><td>  <span class="kw">return</span> (<a id="157c11" class="tk">boolean_T</a>)(((<a id="157c24" class="tk">value</a>)<a id="157c30" class="tk">==</a><a id="157c32" class="tk">rtInfF</a> <a id="157c39" class="tk">||</a> (<a id="157c43" class="tk">value</a>)<a id="157c49" class="tk">==</a><a id="157c51" class="tk">rtMinusInfF</a>) <a id="157c64" class="tk">?</a> 1U <a id="157c69" class="tk">:</a> 0U);</td></tr>
+<tr name="158" id="158">
+<td><a id="l158" class='ln'>158</a></td><td><span class="br">}</span></td></tr>
+<tr name="159" id="159">
+<td><a id="l159" class='ln'>159</a></td><td></td></tr>
+<tr name="160" id="160">
+<td><a id="l160" class='ln'>160</a></td><td><span class="ct">/* Test if value is not a number */</span></td></tr>
+<tr name="161" id="161">
+<td><a id="l161" class='ln'>161</a></td><td><span class="kw">static</span> <a id="161c8" class="tk">boolean_T</a> <a id="161c18" class="tk">rtIsNaN</a>(<a id="161c26" class="tk">real_T</a> <a id="161c33" class="tk">value</a>)</td></tr>
+<tr name="162" id="162">
+<td><a id="l162" class='ln'>162</a></td><td><span class="br">{</span></td></tr>
+<tr name="163" id="163">
+<td><a id="l163" class='ln'>163</a></td><td>  <a id="163c3" class="tk">boolean_T</a> <a id="163c13" class="tk">result</a> = (<a id="163c23" class="tk">boolean_T</a>) 0;</td></tr>
+<tr name="164" id="164">
+<td><a id="l164" class='ln'>164</a></td><td>  <a id="164c3" class="tk">size_t</a> <a id="164c10" class="tk">bitsPerReal</a> = <span class="kw">sizeof</span>(<a id="164c31" class="tk">real_T</a>) <a id="164c39" class="tk">*</a> (<a id="164c42" class="tk">NumBitsPerChar</a>);</td></tr>
+<tr name="165" id="165">
+<td><a id="l165" class='ln'>165</a></td><td>  <span class="kw">if</span> (<a id="165c7" class="tk">bitsPerReal</a> <a id="165c19" class="tk">==</a> 32U) <span class="br">{</span></td></tr>
+<tr name="166" id="166">
+<td><a id="l166" class='ln'>166</a></td><td>    <a id="166c5" class="tk">result</a> = <a id="166c14" class="tk">rtIsNaNF</a>((<a id="166c24" class="tk">real32_T</a>)<a id="166c33" class="tk">value</a>);</td></tr>
+<tr name="167" id="167">
+<td><a id="l167" class='ln'>167</a></td><td>  <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="168" id="168">
+<td><a id="l168" class='ln'>168</a></td><td>    <span class="kw">union</span> <span class="br">{</span></td></tr>
+<tr name="169" id="169">
+<td><a id="l169" class='ln'>169</a></td><td>      <a id="169c7" class="tk">LittleEndianIEEEDouble</a> <a id="169c30" class="tk">bitVal</a>;</td></tr>
+<tr name="170" id="170">
+<td><a id="l170" class='ln'>170</a></td><td>      <a id="170c7" class="tk">real_T</a> <a id="170c14" class="tk">fltVal</a>;</td></tr>
+<tr name="171" id="171">
+<td><a id="l171" class='ln'>171</a></td><td>    <span class="br">}</span> <a id="171c7" class="tk">tmpVal</a>;</td></tr>
+<tr name="172" id="172">
+<td><a id="l172" class='ln'>172</a></td><td></td></tr>
+<tr name="173" id="173">
+<td><a id="l173" class='ln'>173</a></td><td>    <a id="173c5" class="tk">tmpVal</a>.<a id="173c12" class="tk">fltVal</a> = <a id="173c21" class="tk">value</a>;</td></tr>
+<tr name="174" id="174">
+<td><a id="l174" class='ln'>174</a></td><td>    <a id="174c5" class="tk">result</a> = (<a id="174c15" class="tk">boolean_T</a>)((<a id="174c27" class="tk">tmpVal</a>.<a id="174c34" class="tk">bitVal</a>.<a id="174c41" class="tk">words</a>.<a id="174c47" class="tk">wordH</a> <a id="174c53" class="tk">&amp;</a> 0x7FF00000) <a id="174c67" class="tk">==</a> 0x7FF00000 <a id="174c81" class="tk">&amp;&amp;</a></td></tr>
+<tr name="175" id="175">
+<td><a id="l175" class='ln'>175</a></td><td>                         ( (<a id="175c29" class="tk">tmpVal</a>.<a id="175c36" class="tk">bitVal</a>.<a id="175c43" class="tk">words</a>.<a id="175c49" class="tk">wordH</a> <a id="175c55" class="tk">&amp;</a> 0x000FFFFF) <a id="175c69" class="tk">!=</a> 0 <a id="175c74" class="tk">||</a></td></tr>
+<tr name="176" id="176">
+<td><a id="l176" class='ln'>176</a></td><td>                          (<a id="176c28" class="tk">tmpVal</a>.<a id="176c35" class="tk">bitVal</a>.<a id="176c42" class="tk">words</a>.<a id="176c48" class="tk">wordL</a> <a id="176c54" class="tk">!=</a> 0) ));</td></tr>
+<tr name="177" id="177">
+<td><a id="l177" class='ln'>177</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="178" id="178">
+<td><a id="l178" class='ln'>178</a></td><td></td></tr>
+<tr name="179" id="179">
+<td><a id="l179" class='ln'>179</a></td><td>  <span class="kw">return</span> <a id="179c10" class="tk">result</a>;</td></tr>
+<tr name="180" id="180">
+<td><a id="l180" class='ln'>180</a></td><td><span class="br">}</span></td></tr>
+<tr name="181" id="181">
+<td><a id="l181" class='ln'>181</a></td><td></td></tr>
+<tr name="182" id="182">
+<td><a id="l182" class='ln'>182</a></td><td><span class="ct">/* Test if single-precision value is not a number */</span></td></tr>
+<tr name="183" id="183">
+<td><a id="l183" class='ln'>183</a></td><td><span class="kw">static</span> <a id="183c8" class="tk">boolean_T</a> <a id="183c18" class="tk">rtIsNaNF</a>(<a id="183c27" class="tk">real32_T</a> <a id="183c36" class="tk">value</a>)</td></tr>
+<tr name="184" id="184">
+<td><a id="l184" class='ln'>184</a></td><td><span class="br">{</span></td></tr>
+<tr name="185" id="185">
+<td><a id="l185" class='ln'>185</a></td><td>  <a id="185c3" class="tk">IEEESingle</a> <a id="185c14" class="tk">tmp</a>;</td></tr>
+<tr name="186" id="186">
+<td><a id="l186" class='ln'>186</a></td><td>  <a id="186c3" class="tk">tmp</a>.<a id="186c7" class="tk">wordL</a>.<a id="186c13" class="tk">wordLreal</a> = <a id="186c25" class="tk">value</a>;</td></tr>
+<tr name="187" id="187">
+<td><a id="l187" class='ln'>187</a></td><td>  <span class="kw">return</span> (<a id="187c11" class="tk">boolean_T</a>)( (<a id="187c24" class="tk">tmp</a>.<a id="187c28" class="tk">wordL</a>.<a id="187c34" class="tk">wordLuint</a> <a id="187c44" class="tk">&amp;</a> 0x7F800000) <a id="187c58" class="tk">==</a> 0x7F800000 <a id="187c72" class="tk">&amp;&amp;</a></td></tr>
+<tr name="188" id="188">
+<td><a id="l188" class='ln'>188</a></td><td>                     (<a id="188c23" class="tk">tmp</a>.<a id="188c27" class="tk">wordL</a>.<a id="188c33" class="tk">wordLuint</a> <a id="188c43" class="tk">&amp;</a> 0x007FFFFF) <a id="188c57" class="tk">!=</a> 0 );</td></tr>
+<tr name="189" id="189">
+<td><a id="l189" class='ln'>189</a></td><td><span class="br">}</span></td></tr>
+<tr name="190" id="190">
+<td><a id="l190" class='ln'>190</a></td><td></td></tr>
+<tr name="191" id="191">
+<td><a id="l191" class='ln'>191</a></td><td><span class="ct">/*</span></td></tr>
+<tr name="192" id="192">
+<td><a id="l192" class='ln'>192</a></td><td><span class="ct"> * Initialize rtInf needed by the generated code.</span></td></tr>
+<tr name="193" id="193">
+<td><a id="l193" class='ln'>193</a></td><td><span class="ct"> * Inf is initialized as non-signaling. Assumes IEEE.</span></td></tr>
+<tr name="194" id="194">
+<td><a id="l194" class='ln'>194</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="195" id="195">
+<td><a id="l195" class='ln'>195</a></td><td><span class="kw">static</span> <a id="195c8" class="tk">real_T</a> <a id="195c15" class="tk">rtGetInf</a>(<span class="kw">void</span>)</td></tr>
+<tr name="196" id="196">
+<td><a id="l196" class='ln'>196</a></td><td><span class="br">{</span></td></tr>
+<tr name="197" id="197">
+<td><a id="l197" class='ln'>197</a></td><td>  <a id="197c3" class="tk">size_t</a> <a id="197c10" class="tk">bitsPerReal</a> = <span class="kw">sizeof</span>(<a id="197c31" class="tk">real_T</a>) <a id="197c39" class="tk">*</a> (<a id="197c42" class="tk">NumBitsPerChar</a>);</td></tr>
+<tr name="198" id="198">
+<td><a id="l198" class='ln'>198</a></td><td>  <a id="198c3" class="tk">real_T</a> <a id="198c10" class="tk">inf</a> = 0.0;</td></tr>
+<tr name="199" id="199">
+<td><a id="l199" class='ln'>199</a></td><td>  <span class="kw">if</span> (<a id="199c7" class="tk">bitsPerReal</a> <a id="199c19" class="tk">==</a> 32U) <span class="br">{</span></td></tr>
+<tr name="200" id="200">
+<td><a id="l200" class='ln'>200</a></td><td>    <a id="200c5" class="tk">inf</a> = <a id="200c11" class="tk">rtGetInfF</a>();</td></tr>
+<tr name="201" id="201">
+<td><a id="l201" class='ln'>201</a></td><td>  <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="202" id="202">
+<td><a id="l202" class='ln'>202</a></td><td>    <span class="kw">union</span> <span class="br">{</span></td></tr>
+<tr name="203" id="203">
+<td><a id="l203" class='ln'>203</a></td><td>      <a id="203c7" class="tk">LittleEndianIEEEDouble</a> <a id="203c30" class="tk">bitVal</a>;</td></tr>
+<tr name="204" id="204">
+<td><a id="l204" class='ln'>204</a></td><td>      <a id="204c7" class="tk">real_T</a> <a id="204c14" class="tk">fltVal</a>;</td></tr>
+<tr name="205" id="205">
+<td><a id="l205" class='ln'>205</a></td><td>    <span class="br">}</span> <a id="205c7" class="tk">tmpVal</a>;</td></tr>
+<tr name="206" id="206">
+<td><a id="l206" class='ln'>206</a></td><td></td></tr>
+<tr name="207" id="207">
+<td><a id="l207" class='ln'>207</a></td><td>    <a id="207c5" class="tk">tmpVal</a>.<a id="207c12" class="tk">bitVal</a>.<a id="207c19" class="tk">words</a>.<a id="207c25" class="tk">wordH</a> = 0x7FF00000U;</td></tr>
+<tr name="208" id="208">
+<td><a id="l208" class='ln'>208</a></td><td>    <a id="208c5" class="tk">tmpVal</a>.<a id="208c12" class="tk">bitVal</a>.<a id="208c19" class="tk">words</a>.<a id="208c25" class="tk">wordL</a> = 0x00000000U;</td></tr>
+<tr name="209" id="209">
+<td><a id="l209" class='ln'>209</a></td><td>    <a id="209c5" class="tk">inf</a> = <a id="209c11" class="tk">tmpVal</a>.<a id="209c18" class="tk">fltVal</a>;</td></tr>
+<tr name="210" id="210">
+<td><a id="l210" class='ln'>210</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="211" id="211">
+<td><a id="l211" class='ln'>211</a></td><td></td></tr>
+<tr name="212" id="212">
+<td><a id="l212" class='ln'>212</a></td><td>  <span class="kw">return</span> <a id="212c10" class="tk">inf</a>;</td></tr>
+<tr name="213" id="213">
+<td><a id="l213" class='ln'>213</a></td><td><span class="br">}</span></td></tr>
+<tr name="214" id="214">
+<td><a id="l214" class='ln'>214</a></td><td></td></tr>
+<tr name="215" id="215">
+<td><a id="l215" class='ln'>215</a></td><td><span class="ct">/*</span></td></tr>
+<tr name="216" id="216">
+<td><a id="l216" class='ln'>216</a></td><td><span class="ct"> * Initialize rtInfF needed by the generated code.</span></td></tr>
+<tr name="217" id="217">
+<td><a id="l217" class='ln'>217</a></td><td><span class="ct"> * Inf is initialized as non-signaling. Assumes IEEE.</span></td></tr>
+<tr name="218" id="218">
+<td><a id="l218" class='ln'>218</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="219" id="219">
+<td><a id="l219" class='ln'>219</a></td><td><span class="kw">static</span> <a id="219c8" class="tk">real32_T</a> <a id="219c17" class="tk">rtGetInfF</a>(<span class="kw">void</span>)</td></tr>
+<tr name="220" id="220">
+<td><a id="l220" class='ln'>220</a></td><td><span class="br">{</span></td></tr>
+<tr name="221" id="221">
+<td><a id="l221" class='ln'>221</a></td><td>  <a id="221c3" class="tk">IEEESingle</a> <a id="221c14" class="tk">infF</a>;</td></tr>
+<tr name="222" id="222">
+<td><a id="l222" class='ln'>222</a></td><td>  <a id="222c3" class="tk">infF</a>.<a id="222c8" class="tk">wordL</a>.<a id="222c14" class="tk">wordLuint</a> = 0x7F800000U;</td></tr>
+<tr name="223" id="223">
+<td><a id="l223" class='ln'>223</a></td><td>  <span class="kw">return</span> <a id="223c10" class="tk">infF</a>.<a id="223c15" class="tk">wordL</a>.<a id="223c21" class="tk">wordLreal</a>;</td></tr>
+<tr name="224" id="224">
+<td><a id="l224" class='ln'>224</a></td><td><span class="br">}</span></td></tr>
+<tr name="225" id="225">
+<td><a id="l225" class='ln'>225</a></td><td></td></tr>
+<tr name="226" id="226">
+<td><a id="l226" class='ln'>226</a></td><td><span class="ct">/*</span></td></tr>
+<tr name="227" id="227">
+<td><a id="l227" class='ln'>227</a></td><td><span class="ct"> * Initialize rtMinusInf needed by the generated code.</span></td></tr>
+<tr name="228" id="228">
+<td><a id="l228" class='ln'>228</a></td><td><span class="ct"> * Inf is initialized as non-signaling. Assumes IEEE.</span></td></tr>
+<tr name="229" id="229">
+<td><a id="l229" class='ln'>229</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="230" id="230">
+<td><a id="l230" class='ln'>230</a></td><td><span class="kw">static</span> <a id="230c8" class="tk">real_T</a> <a id="230c15" class="tk">rtGetMinusInf</a>(<span class="kw">void</span>)</td></tr>
+<tr name="231" id="231">
+<td><a id="l231" class='ln'>231</a></td><td><span class="br">{</span></td></tr>
+<tr name="232" id="232">
+<td><a id="l232" class='ln'>232</a></td><td>  <a id="232c3" class="tk">size_t</a> <a id="232c10" class="tk">bitsPerReal</a> = <span class="kw">sizeof</span>(<a id="232c31" class="tk">real_T</a>) <a id="232c39" class="tk">*</a> (<a id="232c42" class="tk">NumBitsPerChar</a>);</td></tr>
+<tr name="233" id="233">
+<td><a id="l233" class='ln'>233</a></td><td>  <a id="233c3" class="tk">real_T</a> <a id="233c10" class="tk">minf</a> = 0.0;</td></tr>
+<tr name="234" id="234">
+<td><a id="l234" class='ln'>234</a></td><td>  <span class="kw">if</span> (<a id="234c7" class="tk">bitsPerReal</a> <a id="234c19" class="tk">==</a> 32U) <span class="br">{</span></td></tr>
+<tr name="235" id="235">
+<td><a id="l235" class='ln'>235</a></td><td>    <a id="235c5" class="tk">minf</a> = <a id="235c12" class="tk">rtGetMinusInfF</a>();</td></tr>
+<tr name="236" id="236">
+<td><a id="l236" class='ln'>236</a></td><td>  <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="237" id="237">
+<td><a id="l237" class='ln'>237</a></td><td>    <span class="kw">union</span> <span class="br">{</span></td></tr>
+<tr name="238" id="238">
+<td><a id="l238" class='ln'>238</a></td><td>      <a id="238c7" class="tk">LittleEndianIEEEDouble</a> <a id="238c30" class="tk">bitVal</a>;</td></tr>
+<tr name="239" id="239">
+<td><a id="l239" class='ln'>239</a></td><td>      <a id="239c7" class="tk">real_T</a> <a id="239c14" class="tk">fltVal</a>;</td></tr>
+<tr name="240" id="240">
+<td><a id="l240" class='ln'>240</a></td><td>    <span class="br">}</span> <a id="240c7" class="tk">tmpVal</a>;</td></tr>
+<tr name="241" id="241">
+<td><a id="l241" class='ln'>241</a></td><td></td></tr>
+<tr name="242" id="242">
+<td><a id="l242" class='ln'>242</a></td><td>    <a id="242c5" class="tk">tmpVal</a>.<a id="242c12" class="tk">bitVal</a>.<a id="242c19" class="tk">words</a>.<a id="242c25" class="tk">wordH</a> = 0xFFF00000U;</td></tr>
+<tr name="243" id="243">
+<td><a id="l243" class='ln'>243</a></td><td>    <a id="243c5" class="tk">tmpVal</a>.<a id="243c12" class="tk">bitVal</a>.<a id="243c19" class="tk">words</a>.<a id="243c25" class="tk">wordL</a> = 0x00000000U;</td></tr>
+<tr name="244" id="244">
+<td><a id="l244" class='ln'>244</a></td><td>    <a id="244c5" class="tk">minf</a> = <a id="244c12" class="tk">tmpVal</a>.<a id="244c19" class="tk">fltVal</a>;</td></tr>
+<tr name="245" id="245">
+<td><a id="l245" class='ln'>245</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="246" id="246">
+<td><a id="l246" class='ln'>246</a></td><td></td></tr>
+<tr name="247" id="247">
+<td><a id="l247" class='ln'>247</a></td><td>  <span class="kw">return</span> <a id="247c10" class="tk">minf</a>;</td></tr>
+<tr name="248" id="248">
+<td><a id="l248" class='ln'>248</a></td><td><span class="br">}</span></td></tr>
+<tr name="249" id="249">
+<td><a id="l249" class='ln'>249</a></td><td></td></tr>
+<tr name="250" id="250">
+<td><a id="l250" class='ln'>250</a></td><td><span class="ct">/*</span></td></tr>
+<tr name="251" id="251">
+<td><a id="l251" class='ln'>251</a></td><td><span class="ct"> * Initialize rtMinusInfF needed by the generated code.</span></td></tr>
+<tr name="252" id="252">
+<td><a id="l252" class='ln'>252</a></td><td><span class="ct"> * Inf is initialized as non-signaling. Assumes IEEE.</span></td></tr>
+<tr name="253" id="253">
+<td><a id="l253" class='ln'>253</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="254" id="254">
+<td><a id="l254" class='ln'>254</a></td><td><span class="kw">static</span> <a id="254c8" class="tk">real32_T</a> <a id="254c17" class="tk">rtGetMinusInfF</a>(<span class="kw">void</span>)</td></tr>
+<tr name="255" id="255">
+<td><a id="l255" class='ln'>255</a></td><td><span class="br">{</span></td></tr>
+<tr name="256" id="256">
+<td><a id="l256" class='ln'>256</a></td><td>  <a id="256c3" class="tk">IEEESingle</a> <a id="256c14" class="tk">minfF</a>;</td></tr>
+<tr name="257" id="257">
+<td><a id="l257" class='ln'>257</a></td><td>  <a id="257c3" class="tk">minfF</a>.<a id="257c9" class="tk">wordL</a>.<a id="257c15" class="tk">wordLuint</a> = 0xFF800000U;</td></tr>
+<tr name="258" id="258">
+<td><a id="l258" class='ln'>258</a></td><td>  <span class="kw">return</span> <a id="258c10" class="tk">minfF</a>.<a id="258c16" class="tk">wordL</a>.<a id="258c22" class="tk">wordLreal</a>;</td></tr>
+<tr name="259" id="259">
+<td><a id="l259" class='ln'>259</a></td><td><span class="br">}</span></td></tr>
+<tr name="260" id="260">
+<td><a id="l260" class='ln'>260</a></td><td></td></tr>
+<tr name="261" id="261">
+<td><a id="l261" class='ln'>261</a></td><td><a id="261c1" class="tk">real_T</a> <a id="261c8" class="tk">rt_remd_snf</a>(<a id="261c20" class="tk">real_T</a> <a id="261c27" class="tk">u0</a>, <a id="261c31" class="tk">real_T</a> <a id="261c38" class="tk">u1</a>)</td></tr>
+<tr name="262" id="262">
+<td><a id="l262" class='ln'>262</a></td><td><span class="br">{</span></td></tr>
+<tr name="263" id="263">
+<td><a id="l263" class='ln'>263</a></td><td>  <a id="263c3" class="tk">real_T</a> <a id="263c10" class="tk">q</a>;</td></tr>
+<tr name="264" id="264">
+<td><a id="l264" class='ln'>264</a></td><td>  <a id="264c3" class="tk">real_T</a> <a id="264c10" class="tk">y</a>;</td></tr>
+<tr name="265" id="265">
+<td><a id="l265" class='ln'>265</a></td><td>  <span class="kw">if</span> (<a id="265c7" class="tk">rtIsNaN</a>(<a id="265c15" class="tk">u0</a>) <a id="265c19" class="tk">||</a> <a id="265c22" class="tk">rtIsNaN</a>(<a id="265c30" class="tk">u1</a>) <a id="265c34" class="tk">||</a> <a id="265c37" class="tk">rtIsInf</a>(<a id="265c45" class="tk">u0</a>)) <span class="br">{</span></td></tr>
+<tr name="266" id="266">
+<td><a id="l266" class='ln'>266</a></td><td>    <a id="266c5" class="tk">y</a> = (<a id="266c10" class="tk">rtNaN</a>);</td></tr>
+<tr name="267" id="267">
+<td><a id="l267" class='ln'>267</a></td><td>  <span class="br">}</span> <span class="kw">else</span> <span class="kw">if</span> (<a id="267c14" class="tk">rtIsInf</a>(<a id="267c22" class="tk">u1</a>)) <span class="br">{</span></td></tr>
+<tr name="268" id="268">
+<td><a id="l268" class='ln'>268</a></td><td>    <a id="268c5" class="tk">y</a> = <a id="268c9" class="tk">u0</a>;</td></tr>
+<tr name="269" id="269">
+<td><a id="l269" class='ln'>269</a></td><td>  <span class="br">}</span> <span class="kw">else</span> <span class="kw">if</span> ((<a id="269c15" class="tk">u1</a> <a id="269c18" class="tk">!=</a> 0.0) <a id="269c26" class="tk">&amp;&amp;</a> (<a id="269c30" class="tk">u1</a> <a id="269c33" class="tk">!=</a> <a id="269c36" class="tk">trunc</a>(<a id="269c42" class="tk">u1</a>))) <span class="br">{</span></td></tr>
+<tr name="270" id="270">
+<td><a id="l270" class='ln'>270</a></td><td>    <a id="270c5" class="tk">q</a> = <a id="270c9" class="tk">fabs</a>(<a id="270c14" class="tk">u0</a> <a id="270c17" class="tk">/</a> <a id="270c19" class="tk">u1</a>);</td></tr>
+<tr name="271" id="271">
+<td><a id="l271" class='ln'>271</a></td><td>    <span class="kw">if</span> (<a id="271c9" class="tk">!</a>(<a id="271c11" class="tk">fabs</a>(<a id="271c16" class="tk">q</a> <a id="271c18" class="tk">-</a> <a id="271c20" class="tk">floor</a>(<a id="271c26" class="tk">q</a> <a id="271c28" class="tk">+</a> 0.5)) <a id="271c36" class="tk">&gt;</a> <a id="271c38" class="tk">DBL_EPSILON</a> <a id="271c50" class="tk">*</a> <a id="271c52" class="tk">q</a>)) <span class="br">{</span></td></tr>
+<tr name="272" id="272">
+<td><a id="l272" class='ln'>272</a></td><td>      <a id="272c7" class="tk">y</a> = 0.0 <a id="272c15" class="tk">*</a> <a id="272c17" class="tk">u0</a>;</td></tr>
+<tr name="273" id="273">
+<td><a id="l273" class='ln'>273</a></td><td>    <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="274" id="274">
+<td><a id="l274" class='ln'>274</a></td><td>      <a id="274c7" class="tk">y</a> = <a id="274c11" class="tk">fmod</a>(<a id="274c16" class="tk">u0</a>, <a id="274c20" class="tk">u1</a>);</td></tr>
+<tr name="275" id="275">
+<td><a id="l275" class='ln'>275</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="276" id="276">
+<td><a id="l276" class='ln'>276</a></td><td>  <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="277" id="277">
+<td><a id="l277" class='ln'>277</a></td><td>    <a id="277c5" class="tk">y</a> = <a id="277c9" class="tk">fmod</a>(<a id="277c14" class="tk">u0</a>, <a id="277c18" class="tk">u1</a>);</td></tr>
+<tr name="278" id="278">
+<td><a id="l278" class='ln'>278</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="279" id="279">
+<td><a id="l279" class='ln'>279</a></td><td></td></tr>
+<tr name="280" id="280">
+<td><a id="l280" class='ln'>280</a></td><td>  <span class="kw">return</span> <a id="280c10" class="tk">y</a>;</td></tr>
+<tr name="281" id="281">
+<td><a id="l281" class='ln'>281</a></td><td><span class="br">}</span></td></tr>
+<tr name="282" id="282">
+<td><a id="l282" class='ln'>282</a></td><td></td></tr>
+<tr name="283" id="283">
+<td><a id="l283" class='ln'>283</a></td><td><span class="ct">/* Model step function */</span></td></tr>
+<tr name="284" id="284">
+<td><a id="l284" class='ln'>284</a></td><td><span class="kw">void</span> <a id="284c6" class="tk">SMO_arctan_PLL_step</a>(<a id="284c26" class="tk">RT_MODEL</a> <a id="284c35" class="tk">*</a><span class="kw">const</span> <a id="284c42" class="tk">rtM</a>, <a id="284c47" class="tk">real_T</a> <a id="284c54" class="tk">rtU_Ialfabeta</a>[2], <a id="284c72" class="tk">real_T</a></td></tr>
+<tr name="285" id="285">
+<td><a id="l285" class='ln'>285</a></td><td>  <a id="285c3" class="tk">rtU_Ualfabeta</a>[2], <a id="285c21" class="tk">real_T</a> <a id="285c28" class="tk">*</a><a id="285c29" class="tk">rtY_theta</a>, <a id="285c40" class="tk">real_T</a> <a id="285c47" class="tk">*</a><a id="285c48" class="tk">rtY_we</a>)</td></tr>
+<tr name="286" id="286">
+<td><a id="l286" class='ln'>286</a></td><td><span class="br">{</span></td></tr>
+<tr name="287" id="287">
+<td><a id="l287" class='ln'>287</a></td><td>  <a id="287c3" class="tk">DW</a> <a id="287c6" class="tk">*</a><a id="287c7" class="tk">rtDW</a> = <a id="287c14" class="tk">rtM</a>-&gt;<a id="287c19" class="tk">dwork</a>;</td></tr>
+<tr name="288" id="288">
+<td><a id="l288" class='ln'>288</a></td><td>  <a id="288c3" class="tk">real_T</a> <a id="288c10" class="tk">rtb_Add1</a>;</td></tr>
+<tr name="289" id="289">
+<td><a id="l289" class='ln'>289</a></td><td>  <a id="289c3" class="tk">real_T</a> <a id="289c10" class="tk">rtb_Add1_h</a>;</td></tr>
+<tr name="290" id="290">
+<td><a id="l290" class='ln'>290</a></td><td>  <a id="290c3" class="tk">real_T</a> <a id="290c10" class="tk">rtb_Product4</a>;</td></tr>
+<tr name="291" id="291">
+<td><a id="l291" class='ln'>291</a></td><td>  <a id="291c3" class="tk">real_T</a> <a id="291c10" class="tk">rtb_Sum</a>;</td></tr>
+<tr name="292" id="292">
+<td><a id="l292" class='ln'>292</a></td><td>  <a id="292c3" class="tk">real_T</a> <a id="292c10" class="tk">rtb_Sum2</a>;</td></tr>
+<tr name="293" id="293">
+<td><a id="l293" class='ln'>293</a></td><td>  <a id="293c3" class="tk">real_T</a> <a id="293c10" class="tk">rtb_Sum5</a>;</td></tr>
+<tr name="294" id="294">
+<td><a id="l294" class='ln'>294</a></td><td>  <a id="294c3" class="tk">real_T</a> <a id="294c10" class="tk">rtb_Switch_e</a>;</td></tr>
+<tr name="295" id="295">
+<td><a id="l295" class='ln'>295</a></td><td></td></tr>
+<tr name="296" id="296">
+<td><a id="l296" class='ln'>296</a></td><td>  <span class="ct">/* Sum: '&lt;S7&gt;/Sum2' incorporates:</span></td></tr>
+<tr name="297" id="297">
+<td><a id="l297" class='ln'>297</a></td><td><span class="ct">   *  DiscreteIntegrator: '&lt;S7&gt;/Discrete-Time Integrator'</span></td></tr>
+<tr name="298" id="298">
+<td><a id="l298" class='ln'>298</a></td><td><span class="ct">   *  Inport: '&lt;Root&gt;/Ialfa,beta'</span></td></tr>
+<tr name="299" id="299">
+<td><a id="l299" class='ln'>299</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="300" id="300">
+<td><a id="l300" class='ln'>300</a></td><td>  <a id="300c3" class="tk">rtb_Sum2</a> = <a id="300c14" class="tk">rtDW</a>-&gt;<a id="300c20" class="tk">DiscreteTimeIntegrator_DSTATE_e</a> <a id="300c52" class="tk">-</a> <a id="300c54" class="tk">rtU_Ialfabeta</a>[0];</td></tr>
+<tr name="301" id="301">
+<td><a id="l301" class='ln'>301</a></td><td></td></tr>
+<tr name="302" id="302">
+<td><a id="l302" class='ln'>302</a></td><td>  <span class="ct">/* Switch: '&lt;S58&gt;/Switch' incorporates:</span></td></tr>
+<tr name="303" id="303">
+<td><a id="l303" class='ln'>303</a></td><td><span class="ct">   *  Abs: '&lt;S58&gt;/Abs'</span></td></tr>
+<tr name="304" id="304">
+<td><a id="l304" class='ln'>304</a></td><td><span class="ct">   *  Constant: '&lt;S7&gt;/Constant1'</span></td></tr>
+<tr name="305" id="305">
+<td><a id="l305" class='ln'>305</a></td><td><span class="ct">   *  Constant: '&lt;S7&gt;/Constant3'</span></td></tr>
+<tr name="306" id="306">
+<td><a id="l306" class='ln'>306</a></td><td><span class="ct">   *  Product: '&lt;S58&gt;/Divide'</span></td></tr>
+<tr name="307" id="307">
+<td><a id="l307" class='ln'>307</a></td><td><span class="ct">   *  Product: '&lt;S58&gt;/Divide1'</span></td></tr>
+<tr name="308" id="308">
+<td><a id="l308" class='ln'>308</a></td><td><span class="ct">   *  Product: '&lt;S58&gt;/Divide2'</span></td></tr>
+<tr name="309" id="309">
+<td><a id="l309" class='ln'>309</a></td><td><span class="ct">   *  Sum: '&lt;S58&gt;/Add'</span></td></tr>
+<tr name="310" id="310">
+<td><a id="l310" class='ln'>310</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="311" id="311">
+<td><a id="l311" class='ln'>311</a></td><td>  <span class="kw">if</span> (<a id="311c7" class="tk">fabs</a>(<a id="311c12" class="tk">rtb_Sum2</a>) <a id="311c22" class="tk">-</a> 120.0 <a id="311c30" class="tk">&gt;</a> 0.0) <span class="br">{</span></td></tr>
+<tr name="312" id="312">
+<td><a id="l312" class='ln'>312</a></td><td>    <span class="ct">/* Signum: '&lt;S58&gt;/Sign' */</span></td></tr>
+<tr name="313" id="313">
+<td><a id="l313" class='ln'>313</a></td><td>    <span class="kw">if</span> (<a id="313c9" class="tk">rtb_Sum2</a> <a id="313c18" class="tk">&lt;</a> 0.0) <span class="br">{</span></td></tr>
+<tr name="314" id="314">
+<td><a id="l314" class='ln'>314</a></td><td>      <a id="314c7" class="tk">rtb_Sum2</a> = <a id="314c18" class="tk">-</a>1.0;</td></tr>
+<tr name="315" id="315">
+<td><a id="l315" class='ln'>315</a></td><td>    <span class="br">}</span> <span class="kw">else</span> <span class="kw">if</span> (<a id="315c16" class="tk">rtb_Sum2</a> <a id="315c25" class="tk">&gt;</a> 0.0) <span class="br">{</span></td></tr>
+<tr name="316" id="316">
+<td><a id="l316" class='ln'>316</a></td><td>      <a id="316c7" class="tk">rtb_Sum2</a> = 1.0;</td></tr>
+<tr name="317" id="317">
+<td><a id="l317" class='ln'>317</a></td><td>    <span class="br">}</span> <span class="kw">else</span> <span class="kw">if</span> (<a id="317c16" class="tk">rtb_Sum2</a> <a id="317c25" class="tk">==</a> 0.0) <span class="br">{</span></td></tr>
+<tr name="318" id="318">
+<td><a id="l318" class='ln'>318</a></td><td>      <a id="318c7" class="tk">rtb_Sum2</a> = 0.0;</td></tr>
+<tr name="319" id="319">
+<td><a id="l319" class='ln'>319</a></td><td>    <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="320" id="320">
+<td><a id="l320" class='ln'>320</a></td><td>      <a id="320c7" class="tk">rtb_Sum2</a> = (<a id="320c19" class="tk">rtNaN</a>);</td></tr>
+<tr name="321" id="321">
+<td><a id="l321" class='ln'>321</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="322" id="322">
+<td><a id="l322" class='ln'>322</a></td><td></td></tr>
+<tr name="323" id="323">
+<td><a id="l323" class='ln'>323</a></td><td>    <span class="ct">/* End of Signum: '&lt;S58&gt;/Sign' */</span></td></tr>
+<tr name="324" id="324">
+<td><a id="l324" class='ln'>324</a></td><td>    <a id="324c5" class="tk">rtb_Sum2</a> <a id="324c14" class="tk">*=</a> 100.0;</td></tr>
+<tr name="325" id="325">
+<td><a id="l325" class='ln'>325</a></td><td>  <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="326" id="326">
+<td><a id="l326" class='ln'>326</a></td><td>    <a id="326c5" class="tk">rtb_Sum2</a> = <a id="326c16" class="tk">rtb_Sum2</a> <a id="326c25" class="tk">/</a> 120.0 <a id="326c33" class="tk">*</a> 100.0;</td></tr>
+<tr name="327" id="327">
+<td><a id="l327" class='ln'>327</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="328" id="328">
+<td><a id="l328" class='ln'>328</a></td><td></td></tr>
+<tr name="329" id="329">
+<td><a id="l329" class='ln'>329</a></td><td>  <span class="ct">/* End of Switch: '&lt;S58&gt;/Switch' */</span></td></tr>
+<tr name="330" id="330">
+<td><a id="l330" class='ln'>330</a></td><td></td></tr>
+<tr name="331" id="331">
+<td><a id="l331" class='ln'>331</a></td><td>  <span class="ct">/* Sum: '&lt;S7&gt;/Sum5' incorporates:</span></td></tr>
+<tr name="332" id="332">
+<td><a id="l332" class='ln'>332</a></td><td><span class="ct">   *  DiscreteIntegrator: '&lt;S7&gt;/Discrete-Time Integrator1'</span></td></tr>
+<tr name="333" id="333">
+<td><a id="l333" class='ln'>333</a></td><td><span class="ct">   *  Inport: '&lt;Root&gt;/Ialfa,beta'</span></td></tr>
+<tr name="334" id="334">
+<td><a id="l334" class='ln'>334</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="335" id="335">
+<td><a id="l335" class='ln'>335</a></td><td>  <a id="335c3" class="tk">rtb_Sum5</a> = <a id="335c14" class="tk">rtDW</a>-&gt;<a id="335c20" class="tk">DiscreteTimeIntegrator1_DSTATE</a> <a id="335c51" class="tk">-</a> <a id="335c53" class="tk">rtU_Ialfabeta</a>[1];</td></tr>
+<tr name="336" id="336">
+<td><a id="l336" class='ln'>336</a></td><td></td></tr>
+<tr name="337" id="337">
+<td><a id="l337" class='ln'>337</a></td><td>  <span class="ct">/* Switch: '&lt;S57&gt;/Switch' incorporates:</span></td></tr>
+<tr name="338" id="338">
+<td><a id="l338" class='ln'>338</a></td><td><span class="ct">   *  Abs: '&lt;S57&gt;/Abs'</span></td></tr>
+<tr name="339" id="339">
+<td><a id="l339" class='ln'>339</a></td><td><span class="ct">   *  Constant: '&lt;S7&gt;/Constant4'</span></td></tr>
+<tr name="340" id="340">
+<td><a id="l340" class='ln'>340</a></td><td><span class="ct">   *  Constant: '&lt;S7&gt;/Constant5'</span></td></tr>
+<tr name="341" id="341">
+<td><a id="l341" class='ln'>341</a></td><td><span class="ct">   *  Product: '&lt;S57&gt;/Divide'</span></td></tr>
+<tr name="342" id="342">
+<td><a id="l342" class='ln'>342</a></td><td><span class="ct">   *  Product: '&lt;S57&gt;/Divide1'</span></td></tr>
+<tr name="343" id="343">
+<td><a id="l343" class='ln'>343</a></td><td><span class="ct">   *  Product: '&lt;S57&gt;/Divide2'</span></td></tr>
+<tr name="344" id="344">
+<td><a id="l344" class='ln'>344</a></td><td><span class="ct">   *  Sum: '&lt;S57&gt;/Add'</span></td></tr>
+<tr name="345" id="345">
+<td><a id="l345" class='ln'>345</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="346" id="346">
+<td><a id="l346" class='ln'>346</a></td><td>  <span class="kw">if</span> (<a id="346c7" class="tk">fabs</a>(<a id="346c12" class="tk">rtb_Sum5</a>) <a id="346c22" class="tk">-</a> 120.0 <a id="346c30" class="tk">&gt;</a> 0.0) <span class="br">{</span></td></tr>
+<tr name="347" id="347">
+<td><a id="l347" class='ln'>347</a></td><td>    <span class="ct">/* Signum: '&lt;S57&gt;/Sign' */</span></td></tr>
+<tr name="348" id="348">
+<td><a id="l348" class='ln'>348</a></td><td>    <span class="kw">if</span> (<a id="348c9" class="tk">rtb_Sum5</a> <a id="348c18" class="tk">&lt;</a> 0.0) <span class="br">{</span></td></tr>
+<tr name="349" id="349">
+<td><a id="l349" class='ln'>349</a></td><td>      <a id="349c7" class="tk">rtb_Sum5</a> = <a id="349c18" class="tk">-</a>1.0;</td></tr>
+<tr name="350" id="350">
+<td><a id="l350" class='ln'>350</a></td><td>    <span class="br">}</span> <span class="kw">else</span> <span class="kw">if</span> (<a id="350c16" class="tk">rtb_Sum5</a> <a id="350c25" class="tk">&gt;</a> 0.0) <span class="br">{</span></td></tr>
+<tr name="351" id="351">
+<td><a id="l351" class='ln'>351</a></td><td>      <a id="351c7" class="tk">rtb_Sum5</a> = 1.0;</td></tr>
+<tr name="352" id="352">
+<td><a id="l352" class='ln'>352</a></td><td>    <span class="br">}</span> <span class="kw">else</span> <span class="kw">if</span> (<a id="352c16" class="tk">rtb_Sum5</a> <a id="352c25" class="tk">==</a> 0.0) <span class="br">{</span></td></tr>
+<tr name="353" id="353">
+<td><a id="l353" class='ln'>353</a></td><td>      <a id="353c7" class="tk">rtb_Sum5</a> = 0.0;</td></tr>
+<tr name="354" id="354">
+<td><a id="l354" class='ln'>354</a></td><td>    <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="355" id="355">
+<td><a id="l355" class='ln'>355</a></td><td>      <a id="355c7" class="tk">rtb_Sum5</a> = (<a id="355c19" class="tk">rtNaN</a>);</td></tr>
+<tr name="356" id="356">
+<td><a id="l356" class='ln'>356</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="357" id="357">
+<td><a id="l357" class='ln'>357</a></td><td></td></tr>
+<tr name="358" id="358">
+<td><a id="l358" class='ln'>358</a></td><td>    <span class="ct">/* End of Signum: '&lt;S57&gt;/Sign' */</span></td></tr>
+<tr name="359" id="359">
+<td><a id="l359" class='ln'>359</a></td><td>    <a id="359c5" class="tk">rtb_Switch_e</a> = <a id="359c20" class="tk">rtb_Sum5</a> <a id="359c29" class="tk">*</a> 100.0;</td></tr>
+<tr name="360" id="360">
+<td><a id="l360" class='ln'>360</a></td><td>  <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="361" id="361">
+<td><a id="l361" class='ln'>361</a></td><td>    <a id="361c5" class="tk">rtb_Switch_e</a> = <a id="361c20" class="tk">rtb_Sum5</a> <a id="361c29" class="tk">/</a> 120.0 <a id="361c37" class="tk">*</a> 100.0;</td></tr>
+<tr name="362" id="362">
+<td><a id="l362" class='ln'>362</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="363" id="363">
+<td><a id="l363" class='ln'>363</a></td><td></td></tr>
+<tr name="364" id="364">
+<td><a id="l364" class='ln'>364</a></td><td>  <span class="ct">/* End of Switch: '&lt;S57&gt;/Switch' */</span></td></tr>
+<tr name="365" id="365">
+<td><a id="l365" class='ln'>365</a></td><td></td></tr>
+<tr name="366" id="366">
+<td><a id="l366" class='ln'>366</a></td><td>  <span class="ct">/* Sqrt: '&lt;S6&gt;/Sqrt' incorporates:</span></td></tr>
+<tr name="367" id="367">
+<td><a id="l367" class='ln'>367</a></td><td><span class="ct">   *  Constant: '&lt;S6&gt;/Constant'</span></td></tr>
+<tr name="368" id="368">
+<td><a id="l368" class='ln'>368</a></td><td><span class="ct">   *  Math: '&lt;S6&gt;/Math Function'</span></td></tr>
+<tr name="369" id="369">
+<td><a id="l369" class='ln'>369</a></td><td><span class="ct">   *  Math: '&lt;S6&gt;/Math Function1'</span></td></tr>
+<tr name="370" id="370">
+<td><a id="l370" class='ln'>370</a></td><td><span class="ct">   *  Sum: '&lt;S6&gt;/Add'</span></td></tr>
+<tr name="371" id="371">
+<td><a id="l371" class='ln'>371</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="372" id="372">
+<td><a id="l372" class='ln'>372</a></td><td>  <a id="372c3" class="tk">rtb_Sum5</a> = <a id="372c14" class="tk">sqrt</a>((<a id="372c20" class="tk">rtb_Sum2</a> <a id="372c29" class="tk">*</a> <a id="372c31" class="tk">rtb_Sum2</a> <a id="372c40" class="tk">+</a> <a id="372c42" class="tk">rtb_Switch_e</a> <a id="372c55" class="tk">*</a> <a id="372c57" class="tk">rtb_Switch_e</a>) <a id="372c71" class="tk">+</a> 1.0E-6);</td></tr>
+<tr name="373" id="373">
+<td><a id="l373" class='ln'>373</a></td><td></td></tr>
+<tr name="374" id="374">
+<td><a id="l374" class='ln'>374</a></td><td>  <span class="ct">/* Sum: '&lt;S6&gt;/Sum' incorporates:</span></td></tr>
+<tr name="375" id="375">
+<td><a id="l375" class='ln'>375</a></td><td><span class="ct">   *  DiscreteIntegrator: '&lt;S6&gt;/Discrete-Time Integrator'</span></td></tr>
+<tr name="376" id="376">
+<td><a id="l376" class='ln'>376</a></td><td><span class="ct">   *  Gain: '&lt;S6&gt;/Gain'</span></td></tr>
+<tr name="377" id="377">
+<td><a id="l377" class='ln'>377</a></td><td><span class="ct">   *  Product: '&lt;S6&gt;/Divide'</span></td></tr>
+<tr name="378" id="378">
+<td><a id="l378" class='ln'>378</a></td><td><span class="ct">   *  Product: '&lt;S6&gt;/Divide2'</span></td></tr>
+<tr name="379" id="379">
+<td><a id="l379" class='ln'>379</a></td><td><span class="ct">   *  Product: '&lt;S6&gt;/Product'</span></td></tr>
+<tr name="380" id="380">
+<td><a id="l380" class='ln'>380</a></td><td><span class="ct">   *  Product: '&lt;S6&gt;/Product1'</span></td></tr>
+<tr name="381" id="381">
+<td><a id="l381" class='ln'>381</a></td><td><span class="ct">   *  Trigonometry: '&lt;S6&gt;/Trigonometric Function'</span></td></tr>
+<tr name="382" id="382">
+<td><a id="l382" class='ln'>382</a></td><td><span class="ct">   *  Trigonometry: '&lt;S6&gt;/Trigonometric Function1'</span></td></tr>
+<tr name="383" id="383">
+<td><a id="l383" class='ln'>383</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="384" id="384">
+<td><a id="l384" class='ln'>384</a></td><td>  <a id="384c3" class="tk">rtb_Sum5</a> = <a id="384c14" class="tk">-</a>(<a id="384c16" class="tk">rtb_Sum2</a> <a id="384c25" class="tk">/</a> <a id="384c27" class="tk">rtb_Sum5</a>) <a id="384c37" class="tk">*</a> <a id="384c39" class="tk">cos</a>(<a id="384c43" class="tk">rtDW</a>-&gt;<a id="384c49" class="tk">DiscreteTimeIntegrator_DSTATE</a>) <a id="384c80" class="tk">-</a></td></tr>
+<tr name="385" id="385">
+<td><a id="l385" class='ln'>385</a></td><td>    <a id="385c5" class="tk">rtb_Switch_e</a> <a id="385c18" class="tk">/</a> <a id="385c20" class="tk">rtb_Sum5</a> <a id="385c29" class="tk">*</a> <a id="385c31" class="tk">sin</a>(<a id="385c35" class="tk">rtDW</a>-&gt;<a id="385c41" class="tk">DiscreteTimeIntegrator_DSTATE</a>);</td></tr>
+<tr name="386" id="386">
+<td><a id="l386" class='ln'>386</a></td><td></td></tr>
+<tr name="387" id="387">
+<td><a id="l387" class='ln'>387</a></td><td>  <span class="ct">/* Sum: '&lt;S49&gt;/Sum' incorporates:</span></td></tr>
+<tr name="388" id="388">
+<td><a id="l388" class='ln'>388</a></td><td><span class="ct">   *  DiscreteIntegrator: '&lt;S40&gt;/Integrator'</span></td></tr>
+<tr name="389" id="389">
+<td><a id="l389" class='ln'>389</a></td><td><span class="ct">   *  Gain: '&lt;S45&gt;/Proportional Gain'</span></td></tr>
+<tr name="390" id="390">
+<td><a id="l390" class='ln'>390</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="391" id="391">
+<td><a id="l391" class='ln'>391</a></td><td>  <a id="391c3" class="tk">rtb_Sum</a> = 12566.370614359172 <a id="391c32" class="tk">*</a> <a id="391c34" class="tk">rtb_Sum5</a> <a id="391c43" class="tk">+</a> <a id="391c45" class="tk">rtDW</a>-&gt;<a id="391c51" class="tk">Integrator_DSTATE</a>;</td></tr>
+<tr name="392" id="392">
+<td><a id="l392" class='ln'>392</a></td><td></td></tr>
+<tr name="393" id="393">
+<td><a id="l393" class='ln'>393</a></td><td>  <span class="ct">/* Sum: '&lt;S5&gt;/Add1' incorporates:</span></td></tr>
+<tr name="394" id="394">
+<td><a id="l394" class='ln'>394</a></td><td><span class="ct">   *  Constant: '&lt;S5&gt;/Filter_Constant'</span></td></tr>
+<tr name="395" id="395">
+<td><a id="l395" class='ln'>395</a></td><td><span class="ct">   *  Constant: '&lt;S5&gt;/One'</span></td></tr>
+<tr name="396" id="396">
+<td><a id="l396" class='ln'>396</a></td><td><span class="ct">   *  Product: '&lt;S5&gt;/Product'</span></td></tr>
+<tr name="397" id="397">
+<td><a id="l397" class='ln'>397</a></td><td><span class="ct">   *  Product: '&lt;S5&gt;/Product1'</span></td></tr>
+<tr name="398" id="398">
+<td><a id="l398" class='ln'>398</a></td><td><span class="ct">   *  UnitDelay: '&lt;S5&gt;/Unit Delay'</span></td></tr>
+<tr name="399" id="399">
+<td><a id="l399" class='ln'>399</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="400" id="400">
+<td><a id="l400" class='ln'>400</a></td><td>  <a id="400c3" class="tk">rtb_Add1</a> = <a id="400c14" class="tk">rtb_Sum</a> <a id="400c22" class="tk">*</a> 0.01885 <a id="400c32" class="tk">+</a> 0.98115 <a id="400c42" class="tk">*</a> <a id="400c44" class="tk">rtDW</a>-&gt;<a id="400c50" class="tk">UnitDelay_DSTATE</a>;</td></tr>
+<tr name="401" id="401">
+<td><a id="l401" class='ln'>401</a></td><td></td></tr>
+<tr name="402" id="402">
+<td><a id="l402" class='ln'>402</a></td><td>  <span class="ct">/* Sum: '&lt;S4&gt;/Add1' incorporates:</span></td></tr>
+<tr name="403" id="403">
+<td><a id="l403" class='ln'>403</a></td><td><span class="ct">   *  Constant: '&lt;S4&gt;/Filter_Constant'</span></td></tr>
+<tr name="404" id="404">
+<td><a id="l404" class='ln'>404</a></td><td><span class="ct">   *  Constant: '&lt;S4&gt;/One'</span></td></tr>
+<tr name="405" id="405">
+<td><a id="l405" class='ln'>405</a></td><td><span class="ct">   *  Product: '&lt;S4&gt;/Product'</span></td></tr>
+<tr name="406" id="406">
+<td><a id="l406" class='ln'>406</a></td><td><span class="ct">   *  Product: '&lt;S4&gt;/Product1'</span></td></tr>
+<tr name="407" id="407">
+<td><a id="l407" class='ln'>407</a></td><td><span class="ct">   *  UnitDelay: '&lt;S4&gt;/Unit Delay'</span></td></tr>
+<tr name="408" id="408">
+<td><a id="l408" class='ln'>408</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="409" id="409">
+<td><a id="l409" class='ln'>409</a></td><td>  <a id="409c3" class="tk">rtb_Add1_h</a> = <a id="409c16" class="tk">rtb_Add1</a> <a id="409c25" class="tk">*</a> 0.1 <a id="409c31" class="tk">+</a> 0.9 <a id="409c37" class="tk">*</a> <a id="409c39" class="tk">rtDW</a>-&gt;<a id="409c45" class="tk">UnitDelay_DSTATE_h</a>;</td></tr>
+<tr name="410" id="410">
+<td><a id="l410" class='ln'>410</a></td><td></td></tr>
+<tr name="411" id="411">
+<td><a id="l411" class='ln'>411</a></td><td>  <span class="ct">/* Outport: '&lt;Root&gt;/we' incorporates:</span></td></tr>
+<tr name="412" id="412">
+<td><a id="l412" class='ln'>412</a></td><td><span class="ct">   *  Constant: '&lt;S1&gt;/P'</span></td></tr>
+<tr name="413" id="413">
+<td><a id="l413" class='ln'>413</a></td><td><span class="ct">   *  Gain: '&lt;S1&gt;/Gain3'</span></td></tr>
+<tr name="414" id="414">
+<td><a id="l414" class='ln'>414</a></td><td><span class="ct">   *  Product: '&lt;S1&gt;/Divide1'</span></td></tr>
+<tr name="415" id="415">
+<td><a id="l415" class='ln'>415</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="416" id="416">
+<td><a id="l416" class='ln'>416</a></td><td>  <a id="416c3" class="tk">*</a><a id="416c4" class="tk">rtY_we</a> = 9.5492965855137211 <a id="416c32" class="tk">*</a> <a id="416c34" class="tk">rtb_Add1_h</a> <a id="416c45" class="tk">/</a> 4.0;</td></tr>
+<tr name="417" id="417">
+<td><a id="l417" class='ln'>417</a></td><td></td></tr>
+<tr name="418" id="418">
+<td><a id="l418" class='ln'>418</a></td><td>  <span class="ct">/* Product: '&lt;S7&gt;/Product4' incorporates:</span></td></tr>
+<tr name="419" id="419">
+<td><a id="l419" class='ln'>419</a></td><td><span class="ct">   *  Constant: '&lt;S7&gt;/Constant2'</span></td></tr>
+<tr name="420" id="420">
+<td><a id="l420" class='ln'>420</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="421" id="421">
+<td><a id="l421" class='ln'>421</a></td><td>  <a id="421c3" class="tk">rtb_Product4</a> = <a id="421c18" class="tk">rtb_Add1</a> <a id="421c27" class="tk">*</a> 0.000178;</td></tr>
+<tr name="422" id="422">
+<td><a id="l422" class='ln'>422</a></td><td></td></tr>
+<tr name="423" id="423">
+<td><a id="l423" class='ln'>423</a></td><td>  <span class="ct">/* Sum: '&lt;S7&gt;/   ' incorporates:</span></td></tr>
+<tr name="424" id="424">
+<td><a id="l424" class='ln'>424</a></td><td><span class="ct">   *  DiscreteIntegrator: '&lt;S7&gt;/Discrete-Time Integrator'</span></td></tr>
+<tr name="425" id="425">
+<td><a id="l425" class='ln'>425</a></td><td><span class="ct">   *  DiscreteIntegrator: '&lt;S7&gt;/Discrete-Time Integrator1'</span></td></tr>
+<tr name="426" id="426">
+<td><a id="l426" class='ln'>426</a></td><td><span class="ct">   *  Gain: '&lt;S7&gt;/ 1//L'</span></td></tr>
+<tr name="427" id="427">
+<td><a id="l427" class='ln'>427</a></td><td><span class="ct">   *  Gain: '&lt;S7&gt;/ 1//L '</span></td></tr>
+<tr name="428" id="428">
+<td><a id="l428" class='ln'>428</a></td><td><span class="ct">   *  Gain: '&lt;S7&gt;/Gain5'</span></td></tr>
+<tr name="429" id="429">
+<td><a id="l429" class='ln'>429</a></td><td><span class="ct">   *  Gain: '&lt;S7&gt;/R//L '</span></td></tr>
+<tr name="430" id="430">
+<td><a id="l430" class='ln'>430</a></td><td><span class="ct">   *  Inport: '&lt;Root&gt;/Ualfa,beta'</span></td></tr>
+<tr name="431" id="431">
+<td><a id="l431" class='ln'>431</a></td><td><span class="ct">   *  Product: '&lt;S7&gt;/Product3'</span></td></tr>
+<tr name="432" id="432">
+<td><a id="l432" class='ln'>432</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="433" id="433">
+<td><a id="l433" class='ln'>433</a></td><td>  <a id="433c3" class="tk">rtb_Switch_e</a> = ((5617.9775280898875 <a id="433c39" class="tk">*</a> <a id="433c41" class="tk">rtU_Ualfabeta</a>[1] <a id="433c58" class="tk">-</a> 61.797752808988761 <a id="433c79" class="tk">*</a></td></tr>
+<tr name="434" id="434">
+<td><a id="l434" class='ln'>434</a></td><td>                   <a id="434c20" class="tk">rtDW</a>-&gt;<a id="434c26" class="tk">DiscreteTimeIntegrator1_DSTATE</a>) <a id="434c58" class="tk">-</a> 5617.9775280898875 <a id="434c79" class="tk">*</a></td></tr>
+<tr name="435" id="435">
+<td><a id="l435" class='ln'>435</a></td><td>                  <a id="435c19" class="tk">rtb_Switch_e</a>) <a id="435c33" class="tk">+</a> 5617.9775280898875 <a id="435c54" class="tk">*</a> <a id="435c56" class="tk">rtb_Product4</a> <a id="435c69" class="tk">*</a></td></tr>
+<tr name="436" id="436">
+<td><a id="l436" class='ln'>436</a></td><td>    <a id="436c5" class="tk">rtDW</a>-&gt;<a id="436c11" class="tk">DiscreteTimeIntegrator_DSTATE_e</a>;</td></tr>
+<tr name="437" id="437">
+<td><a id="l437" class='ln'>437</a></td><td></td></tr>
+<tr name="438" id="438">
+<td><a id="l438" class='ln'>438</a></td><td>  <span class="ct">/* Outport: '&lt;Root&gt;/theta' incorporates:</span></td></tr>
+<tr name="439" id="439">
+<td><a id="l439" class='ln'>439</a></td><td><span class="ct">   *  Constant: '&lt;S2&gt;/Constant1'</span></td></tr>
+<tr name="440" id="440">
+<td><a id="l440" class='ln'>440</a></td><td><span class="ct">   *  DiscreteIntegrator: '&lt;S6&gt;/Discrete-Time Integrator'</span></td></tr>
+<tr name="441" id="441">
+<td><a id="l441" class='ln'>441</a></td><td><span class="ct">   *  Math: '&lt;S2&gt;/Rem1'</span></td></tr>
+<tr name="442" id="442">
+<td><a id="l442" class='ln'>442</a></td><td><span class="ct">   *  Sum: '&lt;S2&gt;/Add1'</span></td></tr>
+<tr name="443" id="443">
+<td><a id="l443" class='ln'>443</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="444" id="444">
+<td><a id="l444" class='ln'>444</a></td><td>  <a id="444c3" class="tk">*</a><a id="444c4" class="tk">rtY_theta</a> = <a id="444c16" class="tk">rt_remd_snf</a>(<a id="444c28" class="tk">rtDW</a>-&gt;<a id="444c34" class="tk">DiscreteTimeIntegrator_DSTATE</a> <a id="444c64" class="tk">+</a></td></tr>
+<tr name="445" id="445">
+<td><a id="l445" class='ln'>445</a></td><td>    6.2831853071795862, 6.2831853071795862);</td></tr>
+<tr name="446" id="446">
+<td><a id="l446" class='ln'>446</a></td><td></td></tr>
+<tr name="447" id="447">
+<td><a id="l447" class='ln'>447</a></td><td>  <span class="ct">/* Update for DiscreteIntegrator: '&lt;S6&gt;/Discrete-Time Integrator' */</span></td></tr>
+<tr name="448" id="448">
+<td><a id="l448" class='ln'>448</a></td><td>  <a id="448c3" class="tk">rtDW</a>-&gt;<a id="448c9" class="tk">DiscreteTimeIntegrator_DSTATE</a> <a id="448c39" class="tk">+=</a> 6.0E-5 <a id="448c49" class="tk">*</a> <a id="448c51" class="tk">rtb_Sum</a>;</td></tr>
+<tr name="449" id="449">
+<td><a id="l449" class='ln'>449</a></td><td></td></tr>
+<tr name="450" id="450">
+<td><a id="l450" class='ln'>450</a></td><td>  <span class="ct">/* Update for DiscreteIntegrator: '&lt;S7&gt;/Discrete-Time Integrator' incorporates:</span></td></tr>
+<tr name="451" id="451">
+<td><a id="l451" class='ln'>451</a></td><td><span class="ct">   *  DiscreteIntegrator: '&lt;S7&gt;/Discrete-Time Integrator1'</span></td></tr>
+<tr name="452" id="452">
+<td><a id="l452" class='ln'>452</a></td><td><span class="ct">   *  Gain: '&lt;S7&gt;/1//L'</span></td></tr>
+<tr name="453" id="453">
+<td><a id="l453" class='ln'>453</a></td><td><span class="ct">   *  Gain: '&lt;S7&gt;/1//L '</span></td></tr>
+<tr name="454" id="454">
+<td><a id="l454" class='ln'>454</a></td><td><span class="ct">   *  Gain: '&lt;S7&gt;/Gain4'</span></td></tr>
+<tr name="455" id="455">
+<td><a id="l455" class='ln'>455</a></td><td><span class="ct">   *  Gain: '&lt;S7&gt;/R//L'</span></td></tr>
+<tr name="456" id="456">
+<td><a id="l456" class='ln'>456</a></td><td><span class="ct">   *  Inport: '&lt;Root&gt;/Ualfa,beta'</span></td></tr>
+<tr name="457" id="457">
+<td><a id="l457" class='ln'>457</a></td><td><span class="ct">   *  Product: '&lt;S7&gt;/Product2'</span></td></tr>
+<tr name="458" id="458">
+<td><a id="l458" class='ln'>458</a></td><td><span class="ct">   *  Sum: '&lt;S7&gt;/ '</span></td></tr>
+<tr name="459" id="459">
+<td><a id="l459" class='ln'>459</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="460" id="460">
+<td><a id="l460" class='ln'>460</a></td><td>  <a id="460c3" class="tk">rtDW</a>-&gt;<a id="460c9" class="tk">DiscreteTimeIntegrator_DSTATE_e</a> <a id="460c41" class="tk">+=</a> (((5617.9775280898875 <a id="460c66" class="tk">*</a></td></tr>
+<tr name="461" id="461">
+<td><a id="l461" class='ln'>461</a></td><td>    <a id="461c5" class="tk">rtU_Ualfabeta</a>[0] <a id="461c22" class="tk">-</a> 61.797752808988761 <a id="461c43" class="tk">*</a></td></tr>
+<tr name="462" id="462">
+<td><a id="l462" class='ln'>462</a></td><td>    <a id="462c5" class="tk">rtDW</a>-&gt;<a id="462c11" class="tk">DiscreteTimeIntegrator_DSTATE_e</a>) <a id="462c44" class="tk">-</a> 5617.9775280898875 <a id="462c65" class="tk">*</a> <a id="462c67" class="tk">rtb_Sum2</a>) <a id="462c77" class="tk">-</a></td></tr>
+<tr name="463" id="463">
+<td><a id="l463" class='ln'>463</a></td><td>    5617.9775280898875 <a id="463c24" class="tk">*</a> <a id="463c26" class="tk">rtb_Product4</a> <a id="463c39" class="tk">*</a> <a id="463c41" class="tk">rtDW</a>-&gt;<a id="463c47" class="tk">DiscreteTimeIntegrator1_DSTATE</a>) <a id="463c79" class="tk">*</a></td></tr>
+<tr name="464" id="464">
+<td><a id="l464" class='ln'>464</a></td><td>    6.0E-5;</td></tr>
+<tr name="465" id="465">
+<td><a id="l465" class='ln'>465</a></td><td></td></tr>
+<tr name="466" id="466">
+<td><a id="l466" class='ln'>466</a></td><td>  <span class="ct">/* Update for DiscreteIntegrator: '&lt;S7&gt;/Discrete-Time Integrator1' */</span></td></tr>
+<tr name="467" id="467">
+<td><a id="l467" class='ln'>467</a></td><td>  <a id="467c3" class="tk">rtDW</a>-&gt;<a id="467c9" class="tk">DiscreteTimeIntegrator1_DSTATE</a> <a id="467c40" class="tk">+=</a> 6.0E-5 <a id="467c50" class="tk">*</a> <a id="467c52" class="tk">rtb_Switch_e</a>;</td></tr>
+<tr name="468" id="468">
+<td><a id="l468" class='ln'>468</a></td><td></td></tr>
+<tr name="469" id="469">
+<td><a id="l469" class='ln'>469</a></td><td>  <span class="ct">/* Update for DiscreteIntegrator: '&lt;S40&gt;/Integrator' incorporates:</span></td></tr>
+<tr name="470" id="470">
+<td><a id="l470" class='ln'>470</a></td><td><span class="ct">   *  Gain: '&lt;S37&gt;/Integral Gain'</span></td></tr>
+<tr name="471" id="471">
+<td><a id="l471" class='ln'>471</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="472" id="472">
+<td><a id="l472" class='ln'>472</a></td><td>  <a id="472c3" class="tk">rtDW</a>-&gt;<a id="472c9" class="tk">Integrator_DSTATE</a> <a id="472c27" class="tk">+=</a> 3.9478417604357429E+7 <a id="472c52" class="tk">*</a> <a id="472c54" class="tk">rtb_Sum5</a> <a id="472c63" class="tk">*</a> 6.0E-5;</td></tr>
+<tr name="473" id="473">
+<td><a id="l473" class='ln'>473</a></td><td></td></tr>
+<tr name="474" id="474">
+<td><a id="l474" class='ln'>474</a></td><td>  <span class="ct">/* Update for UnitDelay: '&lt;S5&gt;/Unit Delay' */</span></td></tr>
+<tr name="475" id="475">
+<td><a id="l475" class='ln'>475</a></td><td>  <a id="475c3" class="tk">rtDW</a>-&gt;<a id="475c9" class="tk">UnitDelay_DSTATE</a> = <a id="475c28" class="tk">rtb_Add1</a>;</td></tr>
+<tr name="476" id="476">
+<td><a id="l476" class='ln'>476</a></td><td></td></tr>
+<tr name="477" id="477">
+<td><a id="l477" class='ln'>477</a></td><td>  <span class="ct">/* Update for UnitDelay: '&lt;S4&gt;/Unit Delay' */</span></td></tr>
+<tr name="478" id="478">
+<td><a id="l478" class='ln'>478</a></td><td>  <a id="478c3" class="tk">rtDW</a>-&gt;<a id="478c9" class="tk">UnitDelay_DSTATE_h</a> = <a id="478c30" class="tk">rtb_Add1_h</a>;</td></tr>
+<tr name="479" id="479">
+<td><a id="l479" class='ln'>479</a></td><td><span class="br">}</span></td></tr>
+<tr name="480" id="480">
+<td><a id="l480" class='ln'>480</a></td><td></td></tr>
+<tr name="481" id="481">
+<td><a id="l481" class='ln'>481</a></td><td><span class="ct">/* Model initialize function */</span></td></tr>
+<tr name="482" id="482">
+<td><a id="l482" class='ln'>482</a></td><td><span class="kw">void</span> <a id="482c6" class="tk">SMO_arctan_PLL_initialize</a>(<a id="482c32" class="tk">RT_MODEL</a> <a id="482c41" class="tk">*</a><span class="kw">const</span> <a id="482c48" class="tk">rtM</a>)</td></tr>
+<tr name="483" id="483">
+<td><a id="l483" class='ln'>483</a></td><td><span class="br">{</span></td></tr>
+<tr name="484" id="484">
+<td><a id="l484" class='ln'>484</a></td><td>  <span class="ct">/* Registration code */</span></td></tr>
+<tr name="485" id="485">
+<td><a id="l485" class='ln'>485</a></td><td></td></tr>
+<tr name="486" id="486">
+<td><a id="l486" class='ln'>486</a></td><td>  <span class="ct">/* initialize non-finites */</span></td></tr>
+<tr name="487" id="487">
+<td><a id="l487" class='ln'>487</a></td><td>  <a id="487c3" class="tk">rt_InitInfAndNaN</a>(<span class="kw">sizeof</span>(<a id="487c27" class="tk">real_T</a>));</td></tr>
+<tr name="488" id="488">
+<td><a id="l488" class='ln'>488</a></td><td>  <a id="488c3" class="tk">UNUSED_PARAMETER</a>(<a id="488c20" class="tk">rtM</a>);</td></tr>
+<tr name="489" id="489">
+<td><a id="l489" class='ln'>489</a></td><td><span class="br">}</span></td></tr>
+<tr name="490" id="490">
+<td><a id="l490" class='ln'>490</a></td><td></td></tr>
+<tr name="491" id="491">
+<td><a id="l491" class='ln'>491</a></td><td><span class="ct">/*</span></td></tr>
+<tr name="492" id="492">
+<td><a id="l492" class='ln'>492</a></td><td><span class="ct"> * File trailer for generated code.</span></td></tr>
+<tr name="493" id="493">
+<td><a id="l493" class='ln'>493</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="494" id="494">
+<td><a id="l494" class='ln'>494</a></td><td><span class="ct"> * [EOF]</span></td></tr>
+<tr name="495" id="495">
+<td><a id="l495" class='ln'>495</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="496" id="496">
+<td><a id="l496" class='ln'>496</a></td><td></td></tr>
+</table>
+</pre>
+</body>
+</html>

+ 33 - 0
Simulink/SMO_arctan_PLL_ert_rtw/html/SMO_arctan_PLL_codegen_rpt.html

@@ -0,0 +1,33 @@
+<html>
+<head>
+<meta http-equiv="X-UA-Compatible" content="IE=edge" ><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="stylesheet" type="text/css" href="rtwreport.css" /><script language="JavaScript" type="text/javascript" src="rtwhilite.js"></script><script language="JavaScript" type="text/javascript" src="rtwshrink.js"></script><script language="JavaScript" type="text/javascript">var reportModel = "FOC_ADRC:3275"; </script><script type="text/javascript">var TargetLang = "C"; </script><script language="JavaScript" type="text/javascript" src="define.js"></script><script language="JavaScript" type="text/javascript" src="traceInfo_flag.js"></script><title>
+SMO_arctan_PLL Code Generation Report
+</title>
+
+</head>
+<frameset cols="25%,75%,0%" id="main" border="2">
+<frame scrolling="auto" src="SMO_arctan_PLL_contents.html" name="rtwreport_contents_frame" id="rtwreport_contents_frame" onLoad="loadDocFrameSource('SMO_arctan_PLL')">
+
+</frame>
+<frameset rows="0%,100%,0%" id="rtw_midFrame">
+<frame scrolling="no" src="navToolbar.html" name="rtwreport_navToolbar_frame" id="rtwreport_navToolbar_frame" noresize="noresize">
+
+</frame>
+<frame scrolling="auto" name="rtwreport_document_frame" id="rtwreport_document_frame" style="background-color: white;">
+
+</frame>
+<frame scrolling="no" src="inspect.html" name="rtwreport_inspect_frame" id="rtwreport_inspect_frame" noresize="noresize">
+
+</frame>
+
+</frameset>
+<frame scrolling="no" src="nav.html" name="rtwreport_nav_frame" id="rtwreport_nav_frame" noresize="noresize">
+
+</frame>
+
+</frameset>
+<body>
+
+</body>
+
+</html>

+ 245 - 0
Simulink/SMO_arctan_PLL_ert_rtw/html/SMO_arctan_PLL_coderassumptions.html

@@ -0,0 +1,245 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="stylesheet" type="text/css" href="rtwreport.css" /><title>
+Coder Assumptions for 'SMO_arctan_PLL'
+</title>
+
+</head>
+<body onload="try {if (top) {if (top.rtwPageOnLoad) top.rtwPageOnLoad('rtwIdCoderAssumptionsPage'); else local_onload();}} catch(err) {};">
+<h1>
+Coder Assumptions for 'SMO_arctan_PLL'
+</h1>
+<div>
+<p>
+List of assumptions that you can check and expected results for selected target environment. For more information see, <a href="matlab:helpview(fullfile(docroot,'toolbox','ecoder','helptargets.map'),'verif_of_code_generation_assumptions')">Verification of Code Generation Assumptions</a>.
+</p>
+</div>
+<div>
+
+</div>
+<h3 name="sec_C_Language_Configuration_for_ARM_Compatible->ARM_Cortex-M_Target_Hardware" id="sec_target_hardware">
+C Language Configuration for ARM Compatible->ARM Cortex-M Target Hardware
+</h3>
+<table width="100%" border="0">
+<tr>
+<td align="left" valign="top">
+<p>
+<table class="AltRow" cellspacing="0">
+<tr class="even">
+<td align="left" valign="top">
+BitPerChar
+</td>
+<td align="left" valign="top">
+8
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+BitPerShort
+</td>
+<td align="left" valign="top">
+16
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+BitPerInt
+</td>
+<td align="left" valign="top">
+32
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+BitPerLong
+</td>
+<td align="left" valign="top">
+32
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+BitPerLongLong
+</td>
+<td align="left" valign="top">
+64
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+BitPerFloat
+</td>
+<td align="left" valign="top">
+32
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+BitPerDouble
+</td>
+<td align="left" valign="top">
+64
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+BitPerPointer
+</td>
+<td align="left" valign="top">
+32
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+BitPerSizeT
+</td>
+<td align="left" valign="top">
+32
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+BitPerPtrDiffT
+</td>
+<td align="left" valign="top">
+32
+</td>
+
+</tr>
+
+</table>
+<br /><table class="AltRow" cellspacing="0">
+<tr class="even">
+<td align="left" valign="top">
+Endianess
+</td>
+<td align="left" valign="top">
+LittleEndian
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+Shift right for signed integer is arithmetic shift
+</td>
+<td align="left" valign="top">
+True
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+Signed integer division rounds to
+</td>
+<td align="left" valign="top">
+Zero
+</td>
+
+</tr>
+
+</table>
+
+</p>
+
+</td>
+
+</tr>
+
+</table>
+<h3 name="sec_C_Language_Standard" id="sec_lang_standard">
+C Language Standard
+</h3>
+<table width="100%" border="0">
+<tr>
+<td align="left" valign="top">
+<p>
+Zero initialization code has been optimized for model 'SMO_arctan_PLL'.
+</p>
+<p>
+<table class="AltRow" cellspacing="0">
+<tr class="even">
+<td align="left" valign="top">
+Initial value of a global integer variable is zero
+</td>
+<td align="left" valign="top">
+True
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+Initial value of each element of dynamically allocated int array is zero
+</td>
+<td align="left" valign="top">
+True
+</td>
+
+</tr>
+
+</table>
+
+</p>
+<p>
+If the assumption is not correct, remove the optimization through the <a href="matlab:rtw.report.CoderAssumptions.showMemZeroInitParams('SMO_arctan_PLL')">Configuration Parameters > Code Generation > Optimization</a> settings. Alternatively, configure your target environment to make the assumption hold.
+</p>
+
+</td>
+
+</tr>
+
+</table>
+<h3 name="sec_Floating-Point_Numbers" id="sec_floating_point_num">
+Floating-Point Numbers
+</h3>
+<table width="100%" border="0">
+<tr>
+<td align="left" valign="top">
+<p>
+Code generation is configured to support floating-point numbers, therefore your target environment might perform subnormal number calculations.
+</p>
+<p>
+<table class="AltRow" cellspacing="0">
+<tr class="even">
+<td align="left" valign="top">
+Flush-to-zero computed subnormal values (FTZ)
+</td>
+<td align="left" valign="top">
+False
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+Flush-to-zero incoming subnormal values (DAZ)
+</td>
+<td align="left" valign="top">
+False
+</td>
+
+</tr>
+
+</table>
+
+</p>
+<p>
+If the assumptions are not correct, subnormal numbers might cause mismatches between model and generated code simulation results.  For more information see, <a href="matlab:helpview(fullfile(docroot,'toolbox','ecoder','helptargets.map'),'subnormal_numbers_performance')">Subnormal Number Performance</a>.
+</p>
+
+</td>
+
+</tr>
+
+</table>
+
+</body>
+
+</html>

+ 259 - 0
Simulink/SMO_arctan_PLL_ert_rtw/html/SMO_arctan_PLL_contents.html

@@ -0,0 +1,259 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="stylesheet" type="text/css" href="rtwreport.css" /><script language="JavaScript" type="text/javascript" defer="defer">
+    function rtwFileListShrink(o, category, categoryMsg, numFiles)
+    {
+        var indent = document.getElementById(category + "_indent");
+        var fileTable = document.getElementById(category + "_table");
+        var catName = document.getElementById(category + "_name");
+        if (fileTable.style.display == "none") {
+            fileTable.style.display = "";
+            indent.style.display = "";
+            o.innerHTML = '<span style="font-family:monospace" id = "' + category + '_button">[-]</span>';
+            catName.innerHTML = "<b>" + categoryMsg + "</b>";
+        } else {
+            fileTable.style.display = "none";
+            indent.style.display = "none";
+            o.innerHTML = '<span style="font-family:monospace" id = "' + category + '_button">[+]</span>';
+            catName.innerHTML = "<b>" + categoryMsg + " (" + numFiles + ")" + "</b>";
+        }
+    }
+</script>
+
+</head>
+<body bgcolor="#eeeeee" link="#0033cc" vlink="#666666" rightmargin="0">
+<table class="toc" border="1">
+<tr>
+<td align="left" valign="top">
+<b>
+Contents
+</b>
+
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<a href="rtwmsg.html" id="rtwIdMsgFileLink" style="display: none" target="rtwreport_document_frame" onclick="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, true);" name="TOC_List">
+Block-to-code Message
+</a>
+
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<a href="SMO_arctan_PLL_survey.html" id="rtwIdSummaryPage" target="rtwreport_document_frame" onclick="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, true);" name="TOC_List">
+Summary
+</a>
+
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<a href="SMO_arctan_PLL_subsystems.html" id="rtwIdSubsystem" target="rtwreport_document_frame" onclick="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, true);" name="TOC_List">
+Subsystem Report
+</a>
+
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<a href="SMO_arctan_PLL_interface.html" id="rtwIdCodeInterface" target="rtwreport_document_frame" onclick="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, true);" name="TOC_List">
+Code Interface Report
+</a>
+
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<a href="SMO_arctan_PLL_trace.html" id="rtwIdTraceability" target="rtwreport_document_frame" onclick="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, true);" name="TOC_List">
+Traceability Report
+</a>
+
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<a href="SMO_arctan_PLL_metrics.html" id="rtwIdCodeMetrics" target="rtwreport_document_frame" onclick="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, true);" name="TOC_List">
+Static Code Metrics Report
+</a>
+
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<a href="SMO_arctan_PLL_reducedblocks.html" id="rtwIdReducedBlocks" target="rtwreport_document_frame" onclick="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, true);" name="TOC_List">
+Eliminated Blocks
+</a>
+
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<a href="SMO_arctan_PLL_replacements.html" id="rtwIdCodeReplacements" target="rtwreport_document_frame" onclick="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, true);" name="TOC_List">
+Code Replacements Report
+</a>
+
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<a href="SMO_arctan_PLL_coderassumptions.html" id="rtwIdCoderAssumptionsPage" target="rtwreport_document_frame" onclick="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, true);" name="TOC_List">
+Coder Assumptions
+</a>
+
+</td>
+
+</tr>
+
+</table>
+<!--ADD_CODE_PROFILE_REPORT_LINK_HERE--><hr /><table cellspacing="0" cellpadding="4" width="100%" bgcolor="#ffffff" border="0">
+<tr>
+<td align="left" valign="top">
+<b>
+Generated Code
+</b>
+
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<table cellspacing="0" cellpadding="1" width="100%" bgcolor="#ffffff" id="Main" label="Main file" border="0">
+<tr>
+<td width="0%" align="left" valign="top">
+<span style="background-color:#ffffff;width:100%;cursor:pointer;white-space:nowrap" title="Click to shrink or expand category" onclick="rtwFileListShrink(this,'Main','Main file','1')"><span style="font-family:monospace" id = "Main_button">[-]</span></span>
+</td>
+<td width="100%" align="left" valign="top">
+<span id="Main_name"><b>Main file</b></span>
+</td>
+
+</tr>
+<tr>
+<td width="0%" align="left" valign="top">
+<span id="Main_indent"></span>
+</td>
+<td width="100%" align="left" valign="top">
+<table cellspacing="0" cellpadding="4" width="100%" bgcolor="#ffffff" id="Main_table" border="0">
+<tr>
+<td align="left" valign="top">
+<A HREF="ert_main_c.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="ert_main_c.html" NAME="rtwIdGenFileLinks">
+ert_main.c
+</A>
+<span> </span>
+</td>
+
+</tr>
+
+</table>
+
+</td>
+
+</tr>
+
+</table>
+
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<table cellspacing="0" cellpadding="1" width="100%" bgcolor="#ffffff" id="Model" label="Model files" border="0">
+<tr>
+<td width="0%" align="left" valign="top">
+<span style="background-color:#ffffff;width:100%;cursor:pointer;white-space:nowrap" title="Click to shrink or expand category" onclick="rtwFileListShrink(this,'Model','Model files','2')"><span style="font-family:monospace" id = "Model_button">[-]</span></span>
+</td>
+<td width="100%" align="left" valign="top">
+<span id="Model_name"><b>Model files</b></span>
+</td>
+
+</tr>
+<tr>
+<td width="0%" align="left" valign="top">
+<span id="Model_indent"></span>
+</td>
+<td width="100%" align="left" valign="top">
+<table cellspacing="0" cellpadding="4" width="100%" bgcolor="#ffffff" id="Model_table" border="0">
+<tr>
+<td align="left" valign="top">
+<A HREF="SMO_arctan_PLL_c.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="SMO_arctan_PLL_c.html" NAME="rtwIdGenFileLinks">
+SMO_arctan_PLL.c
+</A>
+<span> </span>
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<A HREF="SMO_arctan_PLL_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="SMO_arctan_PLL_h.html" NAME="rtwIdGenFileLinks">
+SMO_arctan_PLL.h
+</A>
+<span> </span>
+</td>
+
+</tr>
+
+</table>
+
+</td>
+
+</tr>
+
+</table>
+
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<table cellspacing="0" cellpadding="1" width="100%" bgcolor="#ffffff" id="Utility" label="Utility files" border="0">
+<tr>
+<td width="0%" align="left" valign="top">
+<span style="background-color:#ffffff;width:100%;cursor:pointer;white-space:nowrap" title="Click to shrink or expand category" onclick="rtwFileListShrink(this,'Utility','Utility files','1')"><span style="font-family:monospace" id = "Utility_button">[+]</span></span>
+</td>
+<td width="100%" align="left" valign="top">
+<span id="Utility_name"><b>Utility files (1)</b></span>
+</td>
+
+</tr>
+<tr>
+<td width="0%" align="left" valign="top">
+<span id="Utility_indent"></span>
+</td>
+<td width="100%" align="left" valign="top">
+<table cellspacing="0" cellpadding="4" width="100%" bgcolor="#ffffff" id="Utility_table" style="display:none" border="0">
+<tr>
+<td align="left" valign="top">
+<A HREF="rtwtypes_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="rtwtypes_h.html" NAME="rtwIdGenFileLinks">
+rtwtypes.h
+</A>
+<span> </span>
+</td>
+
+</tr>
+
+</table>
+
+</td>
+
+</tr>
+
+</table>
+
+</td>
+
+</tr>
+
+</table>
+<hr />
+</body>
+
+</html>

+ 838 - 0
Simulink/SMO_arctan_PLL_ert_rtw/html/SMO_arctan_PLL_h.html

@@ -0,0 +1,838 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script type="text/javascript" src="./js/coder_app.js"></script>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<script type="text/javascript" src="./rtwreport_utils.js"></script>
+<script type="text/javascript" src="./rtwannotate.js"></script>
+<link rel="stylesheet" type="text/css" href="./css/coder_app.css"/>
+</head>
+<body onload="srcFileOnload();">
+<pre id="code">
+<table class="code" id="codeTbl">
+<tr name="1" id="1">
+<td><a id="l1" class='ln'>1</a></td><td><span class="ct">/*</span></td></tr>
+<tr name="2" id="2">
+<td><a id="l2" class='ln'>2</a></td><td><span class="ct"> * File: SMO_arctan_PLL.h</span></td></tr>
+<tr name="3" id="3">
+<td><a id="l3" class='ln'>3</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="4" id="4">
+<td><a id="l4" class='ln'>4</a></td><td><span class="ct"> * Code generated for Simulink model 'SMO_arctan_PLL'.</span></td></tr>
+<tr name="5" id="5">
+<td><a id="l5" class='ln'>5</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="6" id="6">
+<td><a id="l6" class='ln'>6</a></td><td><span class="ct"> * Model version                  : 1.812</span></td></tr>
+<tr name="7" id="7">
+<td><a id="l7" class='ln'>7</a></td><td><span class="ct"> * Simulink Coder version         : 9.4 (R2020b) 29-Jul-2020</span></td></tr>
+<tr name="8" id="8">
+<td><a id="l8" class='ln'>8</a></td><td><span class="ct"> * C/C++ source code generated on : Tue Apr 11 20:18:35 2023</span></td></tr>
+<tr name="9" id="9">
+<td><a id="l9" class='ln'>9</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="10" id="10">
+<td><a id="l10" class='ln'>10</a></td><td><span class="ct"> * Target selection: ert.tlc</span></td></tr>
+<tr name="11" id="11">
+<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Embedded hardware selection: ARM Compatible-&gt;ARM Cortex-M</span></td></tr>
+<tr name="12" id="12">
+<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * Code generation objectives:</span></td></tr>
+<tr name="13" id="13">
+<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> *    1. Execution efficiency</span></td></tr>
+<tr name="14" id="14">
+<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> *    2. RAM efficiency</span></td></tr>
+<tr name="15" id="15">
+<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
+<tr name="16" id="16">
+<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="17" id="17">
+<td><a id="l17" class='ln'>17</a></td><td></td></tr>
+<tr name="18" id="18">
+<td><a id="l18" class='ln'>18</a></td><td><span class="pp">#ifndef</span> <a id="18c9" class="tk">RTW_HEADER_SMO_arctan_PLL_h_</a></td></tr>
+<tr name="19" id="19">
+<td><a id="l19" class='ln'>19</a></td><td><span class="pp">#define</span> <a id="19c9" class="tk">RTW_HEADER_SMO_arctan_PLL_h_</a></td></tr>
+<tr name="20" id="20">
+<td><a id="l20" class='ln'>20</a></td><td><span class="pp">#include &lt;stddef.h&gt;</span></td></tr>
+<tr name="21" id="21">
+<td><a id="l21" class='ln'>21</a></td><td><span class="pp">#include &lt;float.h&gt;</span></td></tr>
+<tr name="22" id="22">
+<td><a id="l22" class='ln'>22</a></td><td><span class="pp">#include &lt;math.h&gt;</span></td></tr>
+<tr name="23" id="23">
+<td><a id="l23" class='ln'>23</a></td><td><span class="pp">#ifndef</span> <a id="23c9" class="tk">SMO_arctan_PLL_COMMON_INCLUDES_</a></td></tr>
+<tr name="24" id="24">
+<td><a id="l24" class='ln'>24</a></td><td><span class="pp">#define</span> <a id="24c9" class="tk">SMO_arctan_PLL_COMMON_INCLUDES_</a></td></tr>
+<tr name="25" id="25">
+<td><a id="l25" class='ln'>25</a></td><td><span class="pp">#include "rtwtypes.h"</span></td></tr>
+<tr name="26" id="26">
+<td><a id="l26" class='ln'>26</a></td><td><span class="pp">#endif</span>                                 <span class="ct">/* SMO_arctan_PLL_COMMON_INCLUDES_ */</span></td></tr>
+<tr name="27" id="27">
+<td><a id="l27" class='ln'>27</a></td><td></td></tr>
+<tr name="28" id="28">
+<td><a id="l28" class='ln'>28</a></td><td><span class="ct">/* Model Code Variants */</span></td></tr>
+<tr name="29" id="29">
+<td><a id="l29" class='ln'>29</a></td><td></td></tr>
+<tr name="30" id="30">
+<td><a id="l30" class='ln'>30</a></td><td><span class="ct">/* Macros for accessing real-time model data structure */</span></td></tr>
+<tr name="31" id="31">
+<td><a id="l31" class='ln'>31</a></td><td><span class="pp">#ifndef</span> <a id="31c9" class="tk">rtmGetErrorStatus</a></td></tr>
+<tr name="32" id="32">
+<td><a id="l32" class='ln'>32</a></td><td><span class="pp">#define</span> <a id="32c9" class="tk">rtmGetErrorStatus</a>(<a id="32c27" class="tk">rtm</a>)         ((<a id="32c42" class="tk">rtm</a>)-&gt;<a id="32c48" class="tk">errorStatus</a>)</td></tr>
+<tr name="33" id="33">
+<td><a id="l33" class='ln'>33</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="34" id="34">
+<td><a id="l34" class='ln'>34</a></td><td></td></tr>
+<tr name="35" id="35">
+<td><a id="l35" class='ln'>35</a></td><td><span class="pp">#ifndef</span> <a id="35c9" class="tk">rtmSetErrorStatus</a></td></tr>
+<tr name="36" id="36">
+<td><a id="l36" class='ln'>36</a></td><td><span class="pp">#define</span> <a id="36c9" class="tk">rtmSetErrorStatus</a>(<a id="36c27" class="tk">rtm</a>, <a id="36c32" class="tk">val</a>)    ((<a id="36c42" class="tk">rtm</a>)-&gt;<a id="36c48" class="tk">errorStatus</a> = (<a id="36c63" class="tk">val</a>))</td></tr>
+<tr name="37" id="37">
+<td><a id="l37" class='ln'>37</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="38" id="38">
+<td><a id="l38" class='ln'>38</a></td><td></td></tr>
+<tr name="39" id="39">
+<td><a id="l39" class='ln'>39</a></td><td><span class="ct">/* Forward declaration for rtModel */</span></td></tr>
+<tr name="40" id="40">
+<td><a id="l40" class='ln'>40</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <a id="40c16" class="tk">tag_RTM</a> <a id="40c24" class="tk">RT_MODEL</a>;</td></tr>
+<tr name="41" id="41">
+<td><a id="l41" class='ln'>41</a></td><td></td></tr>
+<tr name="42" id="42">
+<td><a id="l42" class='ln'>42</a></td><td><span class="ct">/* Block signals and states (default storage) for system '&lt;Root&gt;' */</span></td></tr>
+<tr name="43" id="43">
+<td><a id="l43" class='ln'>43</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="44" id="44">
+<td><a id="l44" class='ln'>44</a></td><td>  <a id="44c3" class="tk">real_T</a> <a id="44c10" class="tk">DiscreteTimeIntegrator_DSTATE</a>;<span class="ct">/* '&lt;S6&gt;/Discrete-Time Integrator' */</span></td></tr>
+<tr name="45" id="45">
+<td><a id="l45" class='ln'>45</a></td><td>  <a id="45c3" class="tk">real_T</a> <a id="45c10" class="tk">DiscreteTimeIntegrator_DSTATE_e</a>;<span class="ct">/* '&lt;S7&gt;/Discrete-Time Integrator' */</span></td></tr>
+<tr name="46" id="46">
+<td><a id="l46" class='ln'>46</a></td><td>  <a id="46c3" class="tk">real_T</a> <a id="46c10" class="tk">DiscreteTimeIntegrator1_DSTATE</a>;<span class="ct">/* '&lt;S7&gt;/Discrete-Time Integrator1' */</span></td></tr>
+<tr name="47" id="47">
+<td><a id="l47" class='ln'>47</a></td><td>  <a id="47c3" class="tk">real_T</a> <a id="47c10" class="tk">Integrator_DSTATE</a>;            <span class="ct">/* '&lt;S40&gt;/Integrator' */</span></td></tr>
+<tr name="48" id="48">
+<td><a id="l48" class='ln'>48</a></td><td>  <a id="48c3" class="tk">real_T</a> <a id="48c10" class="tk">UnitDelay_DSTATE</a>;             <span class="ct">/* '&lt;S5&gt;/Unit Delay' */</span></td></tr>
+<tr name="49" id="49">
+<td><a id="l49" class='ln'>49</a></td><td>  <a id="49c3" class="tk">real_T</a> <a id="49c10" class="tk">UnitDelay_DSTATE_h</a>;           <span class="ct">/* '&lt;S4&gt;/Unit Delay' */</span></td></tr>
+<tr name="50" id="50">
+<td><a id="l50" class='ln'>50</a></td><td><span class="br">}</span> <a id="50c3" class="tk">DW</a>;</td></tr>
+<tr name="51" id="51">
+<td><a id="l51" class='ln'>51</a></td><td></td></tr>
+<tr name="52" id="52">
+<td><a id="l52" class='ln'>52</a></td><td><span class="ct">/* Real-time Model Data Structure */</span></td></tr>
+<tr name="53" id="53">
+<td><a id="l53" class='ln'>53</a></td><td><span class="kw">struct</span> <a id="53c8" class="tk">tag_RTM</a> <span class="br">{</span></td></tr>
+<tr name="54" id="54">
+<td><a id="l54" class='ln'>54</a></td><td>  <span class="kw">const</span> <a id="54c9" class="tk">char_T</a> <a id="54c16" class="tk">*</a> <span class="kw">volatile</span> <a id="54c27" class="tk">errorStatus</a>;</td></tr>
+<tr name="55" id="55">
+<td><a id="l55" class='ln'>55</a></td><td>  <a id="55c3" class="tk">DW</a> <a id="55c6" class="tk">*</a><a id="55c7" class="tk">dwork</a>;</td></tr>
+<tr name="56" id="56">
+<td><a id="l56" class='ln'>56</a></td><td><span class="br">}</span>;</td></tr>
+<tr name="57" id="57">
+<td><a id="l57" class='ln'>57</a></td><td></td></tr>
+<tr name="58" id="58">
+<td><a id="l58" class='ln'>58</a></td><td><span class="ct">/* Model entry point functions */</span></td></tr>
+<tr name="59" id="59">
+<td><a id="l59" class='ln'>59</a></td><td><span class="kw">extern</span> <span class="kw">void</span> <a id="59c13" class="tk">SMO_arctan_PLL_initialize</a>(<a id="59c39" class="tk">RT_MODEL</a> <a id="59c48" class="tk">*</a><span class="kw">const</span> <a id="59c55" class="tk">rtM</a>);</td></tr>
+<tr name="60" id="60">
+<td><a id="l60" class='ln'>60</a></td><td><span class="kw">extern</span> <span class="kw">void</span> <a id="60c13" class="tk">SMO_arctan_PLL_step</a>(<a id="60c33" class="tk">RT_MODEL</a> <a id="60c42" class="tk">*</a><span class="kw">const</span> <a id="60c49" class="tk">rtM</a>, <a id="60c54" class="tk">real_T</a> <a id="60c61" class="tk">rtU_Ialfabeta</a>[2],</td></tr>
+<tr name="61" id="61">
+<td><a id="l61" class='ln'>61</a></td><td>  <a id="61c3" class="tk">real_T</a> <a id="61c10" class="tk">rtU_Ualfabeta</a>[2], <a id="61c28" class="tk">real_T</a> <a id="61c35" class="tk">*</a><a id="61c36" class="tk">rtY_theta</a>, <a id="61c47" class="tk">real_T</a> <a id="61c54" class="tk">*</a><a id="61c55" class="tk">rtY_we</a>);</td></tr>
+<tr name="62" id="62">
+<td><a id="l62" class='ln'>62</a></td><td></td></tr>
+<tr name="63" id="63">
+<td><a id="l63" class='ln'>63</a></td><td><span class="ct">/*-</span></td></tr>
+<tr name="64" id="64">
+<td><a id="l64" class='ln'>64</a></td><td><span class="ct"> * These blocks were eliminated from the model due to optimizations:</span></td></tr>
+<tr name="65" id="65">
+<td><a id="l65" class='ln'>65</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="66" id="66">
+<td><a id="l66" class='ln'>66</a></td><td><span class="ct"> * Block '&lt;S2&gt;/Constant' : Unused code path elimination</span></td></tr>
+<tr name="67" id="67">
+<td><a id="l67" class='ln'>67</a></td><td><span class="ct"> * Block '&lt;S2&gt;/Display' : Unused code path elimination</span></td></tr>
+<tr name="68" id="68">
+<td><a id="l68" class='ln'>68</a></td><td><span class="ct"> * Block '&lt;S4&gt;/Data Type Duplicate' : Unused code path elimination</span></td></tr>
+<tr name="69" id="69">
+<td><a id="l69" class='ln'>69</a></td><td><span class="ct"> * Block '&lt;S5&gt;/Data Type Duplicate' : Unused code path elimination</span></td></tr>
+<tr name="70" id="70">
+<td><a id="l70" class='ln'>70</a></td><td><span class="ct"> * Block '&lt;S6&gt;/Scope1' : Unused code path elimination</span></td></tr>
+<tr name="71" id="71">
+<td><a id="l71" class='ln'>71</a></td><td><span class="ct"> * Block '&lt;S7&gt;/Scope1' : Unused code path elimination</span></td></tr>
+<tr name="72" id="72">
+<td><a id="l72" class='ln'>72</a></td><td><span class="ct"> * Block '&lt;S7&gt;/Scope2' : Unused code path elimination</span></td></tr>
+<tr name="73" id="73">
+<td><a id="l73" class='ln'>73</a></td><td><span class="ct"> * Block '&lt;S2&gt;/Scope' : Unused code path elimination</span></td></tr>
+<tr name="74" id="74">
+<td><a id="l74" class='ln'>74</a></td><td><span class="ct"> * Block '&lt;S2&gt;/Scope1' : Unused code path elimination</span></td></tr>
+<tr name="75" id="75">
+<td><a id="l75" class='ln'>75</a></td><td><span class="ct"> * Block '&lt;S2&gt;/Scope3' : Unused code path elimination</span></td></tr>
+<tr name="76" id="76">
+<td><a id="l76" class='ln'>76</a></td><td><span class="ct"> * Block '&lt;S3&gt;/Add' : Unused code path elimination</span></td></tr>
+<tr name="77" id="77">
+<td><a id="l77" class='ln'>77</a></td><td><span class="ct"> * Block '&lt;S3&gt;/Add1' : Unused code path elimination</span></td></tr>
+<tr name="78" id="78">
+<td><a id="l78" class='ln'>78</a></td><td><span class="ct"> * Block '&lt;S3&gt;/Atan1' : Unused code path elimination</span></td></tr>
+<tr name="79" id="79">
+<td><a id="l79" class='ln'>79</a></td><td><span class="ct"> * Block '&lt;S3&gt;/Constant' : Unused code path elimination</span></td></tr>
+<tr name="80" id="80">
+<td><a id="l80" class='ln'>80</a></td><td><span class="ct"> * Block '&lt;S3&gt;/Constant1' : Unused code path elimination</span></td></tr>
+<tr name="81" id="81">
+<td><a id="l81" class='ln'>81</a></td><td><span class="ct"> * Block '&lt;S3&gt;/Constant4' : Unused code path elimination</span></td></tr>
+<tr name="82" id="82">
+<td><a id="l82" class='ln'>82</a></td><td><span class="ct"> * Block '&lt;S59&gt;/Add1' : Unused code path elimination</span></td></tr>
+<tr name="83" id="83">
+<td><a id="l83" class='ln'>83</a></td><td><span class="ct"> * Block '&lt;S59&gt;/Data Type Duplicate' : Unused code path elimination</span></td></tr>
+<tr name="84" id="84">
+<td><a id="l84" class='ln'>84</a></td><td><span class="ct"> * Block '&lt;S59&gt;/Filter_Constant' : Unused code path elimination</span></td></tr>
+<tr name="85" id="85">
+<td><a id="l85" class='ln'>85</a></td><td><span class="ct"> * Block '&lt;S59&gt;/One' : Unused code path elimination</span></td></tr>
+<tr name="86" id="86">
+<td><a id="l86" class='ln'>86</a></td><td><span class="ct"> * Block '&lt;S59&gt;/Product' : Unused code path elimination</span></td></tr>
+<tr name="87" id="87">
+<td><a id="l87" class='ln'>87</a></td><td><span class="ct"> * Block '&lt;S59&gt;/Product1' : Unused code path elimination</span></td></tr>
+<tr name="88" id="88">
+<td><a id="l88" class='ln'>88</a></td><td><span class="ct"> * Block '&lt;S59&gt;/Unit Delay' : Unused code path elimination</span></td></tr>
+<tr name="89" id="89">
+<td><a id="l89" class='ln'>89</a></td><td><span class="ct"> * Block '&lt;S60&gt;/Add' : Unused code path elimination</span></td></tr>
+<tr name="90" id="90">
+<td><a id="l90" class='ln'>90</a></td><td><span class="ct"> * Block '&lt;S60&gt;/Constant' : Unused code path elimination</span></td></tr>
+<tr name="91" id="91">
+<td><a id="l91" class='ln'>91</a></td><td><span class="ct"> * Block '&lt;S60&gt;/Discrete-Time Integrator' : Unused code path elimination</span></td></tr>
+<tr name="92" id="92">
+<td><a id="l92" class='ln'>92</a></td><td><span class="ct"> * Block '&lt;S60&gt;/Divide' : Unused code path elimination</span></td></tr>
+<tr name="93" id="93">
+<td><a id="l93" class='ln'>93</a></td><td><span class="ct"> * Block '&lt;S60&gt;/Divide2' : Unused code path elimination</span></td></tr>
+<tr name="94" id="94">
+<td><a id="l94" class='ln'>94</a></td><td><span class="ct"> * Block '&lt;S60&gt;/Gain' : Unused code path elimination</span></td></tr>
+<tr name="95" id="95">
+<td><a id="l95" class='ln'>95</a></td><td><span class="ct"> * Block '&lt;S64&gt;/1//T' : Unused code path elimination</span></td></tr>
+<tr name="96" id="96">
+<td><a id="l96" class='ln'>96</a></td><td><span class="ct"> * Block '&lt;S66&gt;/Avoid Divide by Zero' : Unused code path elimination</span></td></tr>
+<tr name="97" id="97">
+<td><a id="l97" class='ln'>97</a></td><td><span class="ct"> * Block '&lt;S69&gt;/Compare' : Unused code path elimination</span></td></tr>
+<tr name="98" id="98">
+<td><a id="l98" class='ln'>98</a></td><td><span class="ct"> * Block '&lt;S69&gt;/Constant' : Unused code path elimination</span></td></tr>
+<tr name="99" id="99">
+<td><a id="l99" class='ln'>99</a></td><td><span class="ct"> * Block '&lt;S66&gt;/Max' : Unused code path elimination</span></td></tr>
+<tr name="100" id="100">
+<td><a id="l100" class='ln'>100</a></td><td><span class="ct"> * Block '&lt;S66&gt;/Probe' : Unused code path elimination</span></td></tr>
+<tr name="101" id="101">
+<td><a id="l101" class='ln'>101</a></td><td><span class="ct"> * Block '&lt;S66&gt;/Sum1' : Unused code path elimination</span></td></tr>
+<tr name="102" id="102">
+<td><a id="l102" class='ln'>102</a></td><td><span class="ct"> * Block '&lt;S66&gt;/Time constant' : Unused code path elimination</span></td></tr>
+<tr name="103" id="103">
+<td><a id="l103" class='ln'>103</a></td><td><span class="ct"> * Block '&lt;S71&gt;/Integrator' : Unused code path elimination</span></td></tr>
+<tr name="104" id="104">
+<td><a id="l104" class='ln'>104</a></td><td><span class="ct"> * Block '&lt;S71&gt;/Saturation' : Unused code path elimination</span></td></tr>
+<tr name="105" id="105">
+<td><a id="l105" class='ln'>105</a></td><td><span class="ct"> * Block '&lt;S64&gt;/K' : Unused code path elimination</span></td></tr>
+<tr name="106" id="106">
+<td><a id="l106" class='ln'>106</a></td><td><span class="ct"> * Block '&lt;S64&gt;/Sum1' : Unused code path elimination</span></td></tr>
+<tr name="107" id="107">
+<td><a id="l107" class='ln'>107</a></td><td><span class="ct"> * Block '&lt;S60&gt;/Math Function' : Unused code path elimination</span></td></tr>
+<tr name="108" id="108">
+<td><a id="l108" class='ln'>108</a></td><td><span class="ct"> * Block '&lt;S60&gt;/Math Function1' : Unused code path elimination</span></td></tr>
+<tr name="109" id="109">
+<td><a id="l109" class='ln'>109</a></td><td><span class="ct"> * Block '&lt;S100&gt;/Integral Gain' : Unused code path elimination</span></td></tr>
+<tr name="110" id="110">
+<td><a id="l110" class='ln'>110</a></td><td><span class="ct"> * Block '&lt;S103&gt;/Integrator' : Unused code path elimination</span></td></tr>
+<tr name="111" id="111">
+<td><a id="l111" class='ln'>111</a></td><td><span class="ct"> * Block '&lt;S108&gt;/Proportional Gain' : Unused code path elimination</span></td></tr>
+<tr name="112" id="112">
+<td><a id="l112" class='ln'>112</a></td><td><span class="ct"> * Block '&lt;S112&gt;/Sum' : Unused code path elimination</span></td></tr>
+<tr name="113" id="113">
+<td><a id="l113" class='ln'>113</a></td><td><span class="ct"> * Block '&lt;S60&gt;/Product' : Unused code path elimination</span></td></tr>
+<tr name="114" id="114">
+<td><a id="l114" class='ln'>114</a></td><td><span class="ct"> * Block '&lt;S60&gt;/Product1' : Unused code path elimination</span></td></tr>
+<tr name="115" id="115">
+<td><a id="l115" class='ln'>115</a></td><td><span class="ct"> * Block '&lt;S60&gt;/Scope1' : Unused code path elimination</span></td></tr>
+<tr name="116" id="116">
+<td><a id="l116" class='ln'>116</a></td><td><span class="ct"> * Block '&lt;S60&gt;/Sqrt' : Unused code path elimination</span></td></tr>
+<tr name="117" id="117">
+<td><a id="l117" class='ln'>117</a></td><td><span class="ct"> * Block '&lt;S60&gt;/Sum' : Unused code path elimination</span></td></tr>
+<tr name="118" id="118">
+<td><a id="l118" class='ln'>118</a></td><td><span class="ct"> * Block '&lt;S60&gt;/Trigonometric Function' : Unused code path elimination</span></td></tr>
+<tr name="119" id="119">
+<td><a id="l119" class='ln'>119</a></td><td><span class="ct"> * Block '&lt;S60&gt;/Trigonometric Function1' : Unused code path elimination</span></td></tr>
+<tr name="120" id="120">
+<td><a id="l120" class='ln'>120</a></td><td><span class="ct"> * Block '&lt;S3&gt;/Rem1' : Unused code path elimination</span></td></tr>
+<tr name="121" id="121">
+<td><a id="l121" class='ln'>121</a></td><td><span class="ct"> * Block '&lt;S61&gt;/ ' : Unused code path elimination</span></td></tr>
+<tr name="122" id="122">
+<td><a id="l122" class='ln'>122</a></td><td><span class="ct"> * Block '&lt;S61&gt;/   ' : Unused code path elimination</span></td></tr>
+<tr name="123" id="123">
+<td><a id="l123" class='ln'>123</a></td><td><span class="ct"> * Block '&lt;S61&gt;/ 1//L' : Unused code path elimination</span></td></tr>
+<tr name="124" id="124">
+<td><a id="l124" class='ln'>124</a></td><td><span class="ct"> * Block '&lt;S61&gt;/ 1//L ' : Unused code path elimination</span></td></tr>
+<tr name="125" id="125">
+<td><a id="l125" class='ln'>125</a></td><td><span class="ct"> * Block '&lt;S61&gt;/1//L' : Unused code path elimination</span></td></tr>
+<tr name="126" id="126">
+<td><a id="l126" class='ln'>126</a></td><td><span class="ct"> * Block '&lt;S61&gt;/1//L ' : Unused code path elimination</span></td></tr>
+<tr name="127" id="127">
+<td><a id="l127" class='ln'>127</a></td><td><span class="ct"> * Block '&lt;S61&gt;/Constant' : Unused code path elimination</span></td></tr>
+<tr name="128" id="128">
+<td><a id="l128" class='ln'>128</a></td><td><span class="ct"> * Block '&lt;S61&gt;/Constant1' : Unused code path elimination</span></td></tr>
+<tr name="129" id="129">
+<td><a id="l129" class='ln'>129</a></td><td><span class="ct"> * Block '&lt;S61&gt;/Constant2' : Unused code path elimination</span></td></tr>
+<tr name="130" id="130">
+<td><a id="l130" class='ln'>130</a></td><td><span class="ct"> * Block '&lt;S61&gt;/Constant3' : Unused code path elimination</span></td></tr>
+<tr name="131" id="131">
+<td><a id="l131" class='ln'>131</a></td><td><span class="ct"> * Block '&lt;S61&gt;/Constant4' : Unused code path elimination</span></td></tr>
+<tr name="132" id="132">
+<td><a id="l132" class='ln'>132</a></td><td><span class="ct"> * Block '&lt;S61&gt;/Discrete-Time Integrator' : Unused code path elimination</span></td></tr>
+<tr name="133" id="133">
+<td><a id="l133" class='ln'>133</a></td><td><span class="ct"> * Block '&lt;S61&gt;/Discrete-Time Integrator1' : Unused code path elimination</span></td></tr>
+<tr name="134" id="134">
+<td><a id="l134" class='ln'>134</a></td><td><span class="ct"> * Block '&lt;S61&gt;/Gain4' : Unused code path elimination</span></td></tr>
+<tr name="135" id="135">
+<td><a id="l135" class='ln'>135</a></td><td><span class="ct"> * Block '&lt;S61&gt;/Gain5' : Unused code path elimination</span></td></tr>
+<tr name="136" id="136">
+<td><a id="l136" class='ln'>136</a></td><td><span class="ct"> * Block '&lt;S61&gt;/Product2' : Unused code path elimination</span></td></tr>
+<tr name="137" id="137">
+<td><a id="l137" class='ln'>137</a></td><td><span class="ct"> * Block '&lt;S61&gt;/Product3' : Unused code path elimination</span></td></tr>
+<tr name="138" id="138">
+<td><a id="l138" class='ln'>138</a></td><td><span class="ct"> * Block '&lt;S61&gt;/Product4' : Unused code path elimination</span></td></tr>
+<tr name="139" id="139">
+<td><a id="l139" class='ln'>139</a></td><td><span class="ct"> * Block '&lt;S61&gt;/R//L' : Unused code path elimination</span></td></tr>
+<tr name="140" id="140">
+<td><a id="l140" class='ln'>140</a></td><td><span class="ct"> * Block '&lt;S61&gt;/R//L ' : Unused code path elimination</span></td></tr>
+<tr name="141" id="141">
+<td><a id="l141" class='ln'>141</a></td><td><span class="ct"> * Block '&lt;S61&gt;/Scope1' : Unused code path elimination</span></td></tr>
+<tr name="142" id="142">
+<td><a id="l142" class='ln'>142</a></td><td><span class="ct"> * Block '&lt;S61&gt;/Scope2' : Unused code path elimination</span></td></tr>
+<tr name="143" id="143">
+<td><a id="l143" class='ln'>143</a></td><td><span class="ct"> * Block '&lt;S120&gt;/Abs' : Unused code path elimination</span></td></tr>
+<tr name="144" id="144">
+<td><a id="l144" class='ln'>144</a></td><td><span class="ct"> * Block '&lt;S120&gt;/Add' : Unused code path elimination</span></td></tr>
+<tr name="145" id="145">
+<td><a id="l145" class='ln'>145</a></td><td><span class="ct"> * Block '&lt;S120&gt;/Divide' : Unused code path elimination</span></td></tr>
+<tr name="146" id="146">
+<td><a id="l146" class='ln'>146</a></td><td><span class="ct"> * Block '&lt;S120&gt;/Divide1' : Unused code path elimination</span></td></tr>
+<tr name="147" id="147">
+<td><a id="l147" class='ln'>147</a></td><td><span class="ct"> * Block '&lt;S120&gt;/Divide2' : Unused code path elimination</span></td></tr>
+<tr name="148" id="148">
+<td><a id="l148" class='ln'>148</a></td><td><span class="ct"> * Block '&lt;S120&gt;/Scope' : Unused code path elimination</span></td></tr>
+<tr name="149" id="149">
+<td><a id="l149" class='ln'>149</a></td><td><span class="ct"> * Block '&lt;S120&gt;/Scope1' : Unused code path elimination</span></td></tr>
+<tr name="150" id="150">
+<td><a id="l150" class='ln'>150</a></td><td><span class="ct"> * Block '&lt;S120&gt;/Scope2' : Unused code path elimination</span></td></tr>
+<tr name="151" id="151">
+<td><a id="l151" class='ln'>151</a></td><td><span class="ct"> * Block '&lt;S120&gt;/Sign' : Unused code path elimination</span></td></tr>
+<tr name="152" id="152">
+<td><a id="l152" class='ln'>152</a></td><td><span class="ct"> * Block '&lt;S120&gt;/Switch' : Unused code path elimination</span></td></tr>
+<tr name="153" id="153">
+<td><a id="l153" class='ln'>153</a></td><td><span class="ct"> * Block '&lt;S121&gt;/Abs' : Unused code path elimination</span></td></tr>
+<tr name="154" id="154">
+<td><a id="l154" class='ln'>154</a></td><td><span class="ct"> * Block '&lt;S121&gt;/Add' : Unused code path elimination</span></td></tr>
+<tr name="155" id="155">
+<td><a id="l155" class='ln'>155</a></td><td><span class="ct"> * Block '&lt;S121&gt;/Divide' : Unused code path elimination</span></td></tr>
+<tr name="156" id="156">
+<td><a id="l156" class='ln'>156</a></td><td><span class="ct"> * Block '&lt;S121&gt;/Divide1' : Unused code path elimination</span></td></tr>
+<tr name="157" id="157">
+<td><a id="l157" class='ln'>157</a></td><td><span class="ct"> * Block '&lt;S121&gt;/Divide2' : Unused code path elimination</span></td></tr>
+<tr name="158" id="158">
+<td><a id="l158" class='ln'>158</a></td><td><span class="ct"> * Block '&lt;S121&gt;/Scope' : Unused code path elimination</span></td></tr>
+<tr name="159" id="159">
+<td><a id="l159" class='ln'>159</a></td><td><span class="ct"> * Block '&lt;S121&gt;/Scope1' : Unused code path elimination</span></td></tr>
+<tr name="160" id="160">
+<td><a id="l160" class='ln'>160</a></td><td><span class="ct"> * Block '&lt;S121&gt;/Scope2' : Unused code path elimination</span></td></tr>
+<tr name="161" id="161">
+<td><a id="l161" class='ln'>161</a></td><td><span class="ct"> * Block '&lt;S121&gt;/Sign' : Unused code path elimination</span></td></tr>
+<tr name="162" id="162">
+<td><a id="l162" class='ln'>162</a></td><td><span class="ct"> * Block '&lt;S121&gt;/Switch' : Unused code path elimination</span></td></tr>
+<tr name="163" id="163">
+<td><a id="l163" class='ln'>163</a></td><td><span class="ct"> * Block '&lt;S61&gt;/Sum2' : Unused code path elimination</span></td></tr>
+<tr name="164" id="164">
+<td><a id="l164" class='ln'>164</a></td><td><span class="ct"> * Block '&lt;S61&gt;/Sum5' : Unused code path elimination</span></td></tr>
+<tr name="165" id="165">
+<td><a id="l165" class='ln'>165</a></td><td><span class="ct"> * Block '&lt;S62&gt;/ ' : Unused code path elimination</span></td></tr>
+<tr name="166" id="166">
+<td><a id="l166" class='ln'>166</a></td><td><span class="ct"> * Block '&lt;S62&gt;/   ' : Unused code path elimination</span></td></tr>
+<tr name="167" id="167">
+<td><a id="l167" class='ln'>167</a></td><td><span class="ct"> * Block '&lt;S62&gt;/ 1//L' : Unused code path elimination</span></td></tr>
+<tr name="168" id="168">
+<td><a id="l168" class='ln'>168</a></td><td><span class="ct"> * Block '&lt;S62&gt;/ 1//L ' : Unused code path elimination</span></td></tr>
+<tr name="169" id="169">
+<td><a id="l169" class='ln'>169</a></td><td><span class="ct"> * Block '&lt;S62&gt;/1//L' : Unused code path elimination</span></td></tr>
+<tr name="170" id="170">
+<td><a id="l170" class='ln'>170</a></td><td><span class="ct"> * Block '&lt;S62&gt;/1//L ' : Unused code path elimination</span></td></tr>
+<tr name="171" id="171">
+<td><a id="l171" class='ln'>171</a></td><td><span class="ct"> * Block '&lt;S62&gt;/Constant' : Unused code path elimination</span></td></tr>
+<tr name="172" id="172">
+<td><a id="l172" class='ln'>172</a></td><td><span class="ct"> * Block '&lt;S62&gt;/Constant1' : Unused code path elimination</span></td></tr>
+<tr name="173" id="173">
+<td><a id="l173" class='ln'>173</a></td><td><span class="ct"> * Block '&lt;S62&gt;/Constant2' : Unused code path elimination</span></td></tr>
+<tr name="174" id="174">
+<td><a id="l174" class='ln'>174</a></td><td><span class="ct"> * Block '&lt;S62&gt;/Constant3' : Unused code path elimination</span></td></tr>
+<tr name="175" id="175">
+<td><a id="l175" class='ln'>175</a></td><td><span class="ct"> * Block '&lt;S62&gt;/Constant4' : Unused code path elimination</span></td></tr>
+<tr name="176" id="176">
+<td><a id="l176" class='ln'>176</a></td><td><span class="ct"> * Block '&lt;S62&gt;/Constant5' : Unused code path elimination</span></td></tr>
+<tr name="177" id="177">
+<td><a id="l177" class='ln'>177</a></td><td><span class="ct"> * Block '&lt;S62&gt;/Discrete-Time Integrator' : Unused code path elimination</span></td></tr>
+<tr name="178" id="178">
+<td><a id="l178" class='ln'>178</a></td><td><span class="ct"> * Block '&lt;S62&gt;/Discrete-Time Integrator1' : Unused code path elimination</span></td></tr>
+<tr name="179" id="179">
+<td><a id="l179" class='ln'>179</a></td><td><span class="ct"> * Block '&lt;S122&gt;/Divide3' : Unused code path elimination</span></td></tr>
+<tr name="180" id="180">
+<td><a id="l180" class='ln'>180</a></td><td><span class="ct"> * Block '&lt;S122&gt;/Sum2' : Unused code path elimination</span></td></tr>
+<tr name="181" id="181">
+<td><a id="l181" class='ln'>181</a></td><td><span class="ct"> * Block '&lt;S122&gt;/Sum3' : Unused code path elimination</span></td></tr>
+<tr name="182" id="182">
+<td><a id="l182" class='ln'>182</a></td><td><span class="ct"> * Block '&lt;S122&gt;/UnitDelay1' : Unused code path elimination</span></td></tr>
+<tr name="183" id="183">
+<td><a id="l183" class='ln'>183</a></td><td><span class="ct"> * Block '&lt;S123&gt;/Divide3' : Unused code path elimination</span></td></tr>
+<tr name="184" id="184">
+<td><a id="l184" class='ln'>184</a></td><td><span class="ct"> * Block '&lt;S123&gt;/Sum2' : Unused code path elimination</span></td></tr>
+<tr name="185" id="185">
+<td><a id="l185" class='ln'>185</a></td><td><span class="ct"> * Block '&lt;S123&gt;/Sum3' : Unused code path elimination</span></td></tr>
+<tr name="186" id="186">
+<td><a id="l186" class='ln'>186</a></td><td><span class="ct"> * Block '&lt;S123&gt;/UnitDelay1' : Unused code path elimination</span></td></tr>
+<tr name="187" id="187">
+<td><a id="l187" class='ln'>187</a></td><td><span class="ct"> * Block '&lt;S62&gt;/Product2' : Unused code path elimination</span></td></tr>
+<tr name="188" id="188">
+<td><a id="l188" class='ln'>188</a></td><td><span class="ct"> * Block '&lt;S62&gt;/Product3' : Unused code path elimination</span></td></tr>
+<tr name="189" id="189">
+<td><a id="l189" class='ln'>189</a></td><td><span class="ct"> * Block '&lt;S62&gt;/Product4' : Unused code path elimination</span></td></tr>
+<tr name="190" id="190">
+<td><a id="l190" class='ln'>190</a></td><td><span class="ct"> * Block '&lt;S62&gt;/R//L' : Unused code path elimination</span></td></tr>
+<tr name="191" id="191">
+<td><a id="l191" class='ln'>191</a></td><td><span class="ct"> * Block '&lt;S62&gt;/R//L ' : Unused code path elimination</span></td></tr>
+<tr name="192" id="192">
+<td><a id="l192" class='ln'>192</a></td><td><span class="ct"> * Block '&lt;S62&gt;/Scope' : Unused code path elimination</span></td></tr>
+<tr name="193" id="193">
+<td><a id="l193" class='ln'>193</a></td><td><span class="ct"> * Block '&lt;S124&gt;/Abs' : Unused code path elimination</span></td></tr>
+<tr name="194" id="194">
+<td><a id="l194" class='ln'>194</a></td><td><span class="ct"> * Block '&lt;S124&gt;/Add' : Unused code path elimination</span></td></tr>
+<tr name="195" id="195">
+<td><a id="l195" class='ln'>195</a></td><td><span class="ct"> * Block '&lt;S124&gt;/Divide' : Unused code path elimination</span></td></tr>
+<tr name="196" id="196">
+<td><a id="l196" class='ln'>196</a></td><td><span class="ct"> * Block '&lt;S124&gt;/Divide1' : Unused code path elimination</span></td></tr>
+<tr name="197" id="197">
+<td><a id="l197" class='ln'>197</a></td><td><span class="ct"> * Block '&lt;S124&gt;/Divide2' : Unused code path elimination</span></td></tr>
+<tr name="198" id="198">
+<td><a id="l198" class='ln'>198</a></td><td><span class="ct"> * Block '&lt;S124&gt;/Sign' : Unused code path elimination</span></td></tr>
+<tr name="199" id="199">
+<td><a id="l199" class='ln'>199</a></td><td><span class="ct"> * Block '&lt;S124&gt;/Switch' : Unused code path elimination</span></td></tr>
+<tr name="200" id="200">
+<td><a id="l200" class='ln'>200</a></td><td><span class="ct"> * Block '&lt;S125&gt;/Abs' : Unused code path elimination</span></td></tr>
+<tr name="201" id="201">
+<td><a id="l201" class='ln'>201</a></td><td><span class="ct"> * Block '&lt;S125&gt;/Add' : Unused code path elimination</span></td></tr>
+<tr name="202" id="202">
+<td><a id="l202" class='ln'>202</a></td><td><span class="ct"> * Block '&lt;S125&gt;/Divide' : Unused code path elimination</span></td></tr>
+<tr name="203" id="203">
+<td><a id="l203" class='ln'>203</a></td><td><span class="ct"> * Block '&lt;S125&gt;/Divide1' : Unused code path elimination</span></td></tr>
+<tr name="204" id="204">
+<td><a id="l204" class='ln'>204</a></td><td><span class="ct"> * Block '&lt;S125&gt;/Divide2' : Unused code path elimination</span></td></tr>
+<tr name="205" id="205">
+<td><a id="l205" class='ln'>205</a></td><td><span class="ct"> * Block '&lt;S125&gt;/Sign' : Unused code path elimination</span></td></tr>
+<tr name="206" id="206">
+<td><a id="l206" class='ln'>206</a></td><td><span class="ct"> * Block '&lt;S125&gt;/Switch' : Unused code path elimination</span></td></tr>
+<tr name="207" id="207">
+<td><a id="l207" class='ln'>207</a></td><td><span class="ct"> * Block '&lt;S62&gt;/Sum2' : Unused code path elimination</span></td></tr>
+<tr name="208" id="208">
+<td><a id="l208" class='ln'>208</a></td><td><span class="ct"> * Block '&lt;S62&gt;/Sum5' : Unused code path elimination</span></td></tr>
+<tr name="209" id="209">
+<td><a id="l209" class='ln'>209</a></td><td><span class="ct"> * Block '&lt;S3&gt;/Scope' : Unused code path elimination</span></td></tr>
+<tr name="210" id="210">
+<td><a id="l210" class='ln'>210</a></td><td><span class="ct"> * Block '&lt;S3&gt;/Scope1' : Unused code path elimination</span></td></tr>
+<tr name="211" id="211">
+<td><a id="l211" class='ln'>211</a></td><td><span class="ct"> * Block '&lt;S3&gt;/Scope2' : Unused code path elimination</span></td></tr>
+<tr name="212" id="212">
+<td><a id="l212" class='ln'>212</a></td><td><span class="ct"> * Block '&lt;S3&gt;/Scope3' : Unused code path elimination</span></td></tr>
+<tr name="213" id="213">
+<td><a id="l213" class='ln'>213</a></td><td><span class="ct"> * Block '&lt;S63&gt;/Add' : Unused code path elimination</span></td></tr>
+<tr name="214" id="214">
+<td><a id="l214" class='ln'>214</a></td><td><span class="ct"> * Block '&lt;S63&gt;/Constant' : Unused code path elimination</span></td></tr>
+<tr name="215" id="215">
+<td><a id="l215" class='ln'>215</a></td><td><span class="ct"> * Block '&lt;S63&gt;/Constant1' : Unused code path elimination</span></td></tr>
+<tr name="216" id="216">
+<td><a id="l216" class='ln'>216</a></td><td><span class="ct"> * Block '&lt;S63&gt;/Constant2' : Unused code path elimination</span></td></tr>
+<tr name="217" id="217">
+<td><a id="l217" class='ln'>217</a></td><td><span class="ct"> * Block '&lt;S63&gt;/Constant3' : Unused code path elimination</span></td></tr>
+<tr name="218" id="218">
+<td><a id="l218" class='ln'>218</a></td><td><span class="ct"> * Block '&lt;S63&gt;/Constant4' : Unused code path elimination</span></td></tr>
+<tr name="219" id="219">
+<td><a id="l219" class='ln'>219</a></td><td><span class="ct"> * Block '&lt;S63&gt;/Constant5' : Unused code path elimination</span></td></tr>
+<tr name="220" id="220">
+<td><a id="l220" class='ln'>220</a></td><td><span class="ct"> * Block '&lt;S63&gt;/Constant6' : Unused code path elimination</span></td></tr>
+<tr name="221" id="221">
+<td><a id="l221" class='ln'>221</a></td><td><span class="ct"> * Block '&lt;S63&gt;/Constant7' : Unused code path elimination</span></td></tr>
+<tr name="222" id="222">
+<td><a id="l222" class='ln'>222</a></td><td><span class="ct"> * Block '&lt;S63&gt;/Data Type Conversion' : Unused code path elimination</span></td></tr>
+<tr name="223" id="223">
+<td><a id="l223" class='ln'>223</a></td><td><span class="ct"> * Block '&lt;S63&gt;/Gain' : Unused code path elimination</span></td></tr>
+<tr name="224" id="224">
+<td><a id="l224" class='ln'>224</a></td><td><span class="ct"> * Block '&lt;S63&gt;/Gain1' : Unused code path elimination</span></td></tr>
+<tr name="225" id="225">
+<td><a id="l225" class='ln'>225</a></td><td><span class="ct"> * Block '&lt;S63&gt;/Gain2' : Unused code path elimination</span></td></tr>
+<tr name="226" id="226">
+<td><a id="l226" class='ln'>226</a></td><td><span class="ct"> * Block '&lt;S63&gt;/Logical Operator' : Unused code path elimination</span></td></tr>
+<tr name="227" id="227">
+<td><a id="l227" class='ln'>227</a></td><td><span class="ct"> * Block '&lt;S63&gt;/Relational Operator' : Unused code path elimination</span></td></tr>
+<tr name="228" id="228">
+<td><a id="l228" class='ln'>228</a></td><td><span class="ct"> * Block '&lt;S63&gt;/Relational Operator1' : Unused code path elimination</span></td></tr>
+<tr name="229" id="229">
+<td><a id="l229" class='ln'>229</a></td><td><span class="ct"> * Block '&lt;S63&gt;/Relational Operator2' : Unused code path elimination</span></td></tr>
+<tr name="230" id="230">
+<td><a id="l230" class='ln'>230</a></td><td><span class="ct"> * Block '&lt;S63&gt;/Rem' : Unused code path elimination</span></td></tr>
+<tr name="231" id="231">
+<td><a id="l231" class='ln'>231</a></td><td><span class="ct"> * Block '&lt;S63&gt;/Scope' : Unused code path elimination</span></td></tr>
+<tr name="232" id="232">
+<td><a id="l232" class='ln'>232</a></td><td><span class="ct"> * Block '&lt;S63&gt;/Scope1' : Unused code path elimination</span></td></tr>
+<tr name="233" id="233">
+<td><a id="l233" class='ln'>233</a></td><td><span class="ct"> * Block '&lt;S63&gt;/Sin' : Unused code path elimination</span></td></tr>
+<tr name="234" id="234">
+<td><a id="l234" class='ln'>234</a></td><td><span class="ct"> * Block '&lt;S63&gt;/Square' : Unused code path elimination</span></td></tr>
+<tr name="235" id="235">
+<td><a id="l235" class='ln'>235</a></td><td><span class="ct"> * Block '&lt;S126&gt;/Add' : Unused code path elimination</span></td></tr>
+<tr name="236" id="236">
+<td><a id="l236" class='ln'>236</a></td><td><span class="ct"> * Block '&lt;S126&gt;/Add1' : Unused code path elimination</span></td></tr>
+<tr name="237" id="237">
+<td><a id="l237" class='ln'>237</a></td><td><span class="ct"> * Block '&lt;S126&gt;/Add2' : Unused code path elimination</span></td></tr>
+<tr name="238" id="238">
+<td><a id="l238" class='ln'>238</a></td><td><span class="ct"> * Block '&lt;S126&gt;/Add3' : Unused code path elimination</span></td></tr>
+<tr name="239" id="239">
+<td><a id="l239" class='ln'>239</a></td><td><span class="ct"> * Block '&lt;S126&gt;/Add4' : Unused code path elimination</span></td></tr>
+<tr name="240" id="240">
+<td><a id="l240" class='ln'>240</a></td><td><span class="ct"> * Block '&lt;S126&gt;/Add5' : Unused code path elimination</span></td></tr>
+<tr name="241" id="241">
+<td><a id="l241" class='ln'>241</a></td><td><span class="ct"> * Block '&lt;S126&gt;/Divide' : Unused code path elimination</span></td></tr>
+<tr name="242" id="242">
+<td><a id="l242" class='ln'>242</a></td><td><span class="ct"> * Block '&lt;S126&gt;/Divide1' : Unused code path elimination</span></td></tr>
+<tr name="243" id="243">
+<td><a id="l243" class='ln'>243</a></td><td><span class="ct"> * Block '&lt;S126&gt;/Divide2' : Unused code path elimination</span></td></tr>
+<tr name="244" id="244">
+<td><a id="l244" class='ln'>244</a></td><td><span class="ct"> * Block '&lt;S126&gt;/Gain' : Unused code path elimination</span></td></tr>
+<tr name="245" id="245">
+<td><a id="l245" class='ln'>245</a></td><td><span class="ct"> * Block '&lt;S127&gt;/Data Type Duplicate' : Unused code path elimination</span></td></tr>
+<tr name="246" id="246">
+<td><a id="l246" class='ln'>246</a></td><td><span class="ct"> * Block '&lt;S127&gt;/Data Type Propagation' : Unused code path elimination</span></td></tr>
+<tr name="247" id="247">
+<td><a id="l247" class='ln'>247</a></td><td><span class="ct"> * Block '&lt;S127&gt;/LowerRelop1' : Unused code path elimination</span></td></tr>
+<tr name="248" id="248">
+<td><a id="l248" class='ln'>248</a></td><td><span class="ct"> * Block '&lt;S127&gt;/Switch' : Unused code path elimination</span></td></tr>
+<tr name="249" id="249">
+<td><a id="l249" class='ln'>249</a></td><td><span class="ct"> * Block '&lt;S127&gt;/Switch2' : Unused code path elimination</span></td></tr>
+<tr name="250" id="250">
+<td><a id="l250" class='ln'>250</a></td><td><span class="ct"> * Block '&lt;S127&gt;/UpperRelop' : Unused code path elimination</span></td></tr>
+<tr name="251" id="251">
+<td><a id="l251" class='ln'>251</a></td><td><span class="ct"> * Block '&lt;S126&gt;/Switch' : Unused code path elimination</span></td></tr>
+<tr name="252" id="252">
+<td><a id="l252" class='ln'>252</a></td><td><span class="ct"> * Block '&lt;S126&gt;/Unit Delay' : Unused code path elimination</span></td></tr>
+<tr name="253" id="253">
+<td><a id="l253" class='ln'>253</a></td><td><span class="ct"> * Block '&lt;S126&gt;/Unit Delay1' : Unused code path elimination</span></td></tr>
+<tr name="254" id="254">
+<td><a id="l254" class='ln'>254</a></td><td><span class="ct"> * Block '&lt;S63&gt;/Switch' : Unused code path elimination</span></td></tr>
+<tr name="255" id="255">
+<td><a id="l255" class='ln'>255</a></td><td><span class="ct"> * Block '&lt;S63&gt;/Unit Delay' : Unused code path elimination</span></td></tr>
+<tr name="256" id="256">
+<td><a id="l256" class='ln'>256</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="257" id="257">
+<td><a id="l257" class='ln'>257</a></td><td></td></tr>
+<tr name="258" id="258">
+<td><a id="l258" class='ln'>258</a></td><td><span class="ct">/*-</span></td></tr>
+<tr name="259" id="259">
+<td><a id="l259" class='ln'>259</a></td><td><span class="ct"> * The generated code includes comments that allow you to trace directly</span></td></tr>
+<tr name="260" id="260">
+<td><a id="l260" class='ln'>260</a></td><td><span class="ct"> * back to the appropriate location in the model.  The basic format</span></td></tr>
+<tr name="261" id="261">
+<td><a id="l261" class='ln'>261</a></td><td><span class="ct"> * is &lt;system&gt;/block_name, where system is the system number (uniquely</span></td></tr>
+<tr name="262" id="262">
+<td><a id="l262" class='ln'>262</a></td><td><span class="ct"> * assigned by Simulink) and block_name is the name of the block.</span></td></tr>
+<tr name="263" id="263">
+<td><a id="l263" class='ln'>263</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="264" id="264">
+<td><a id="l264" class='ln'>264</a></td><td><span class="ct"> * Note that this particular code originates from a subsystem build,</span></td></tr>
+<tr name="265" id="265">
+<td><a id="l265" class='ln'>265</a></td><td><span class="ct"> * and has its own system numbers different from the parent model.</span></td></tr>
+<tr name="266" id="266">
+<td><a id="l266" class='ln'>266</a></td><td><span class="ct"> * Refer to the system hierarchy for this subsystem below, and use the</span></td></tr>
+<tr name="267" id="267">
+<td><a id="l267" class='ln'>267</a></td><td><span class="ct"> * MATLAB hilite_system command to trace the generated code back</span></td></tr>
+<tr name="268" id="268">
+<td><a id="l268" class='ln'>268</a></td><td><span class="ct"> * to the parent model.  For example,</span></td></tr>
+<tr name="269" id="269">
+<td><a id="l269" class='ln'>269</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="270" id="270">
+<td><a id="l270" class='ln'>270</a></td><td><span class="ct"> * hilite_system('FOC_ADRC/PMSM_Controller/SMO_arctan_PLL')    - opens subsystem FOC_ADRC/PMSM_Controller/SMO_arctan_PLL</span></td></tr>
+<tr name="271" id="271">
+<td><a id="l271" class='ln'>271</a></td><td><span class="ct"> * hilite_system('FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/Kp') - opens and selects block Kp</span></td></tr>
+<tr name="272" id="272">
+<td><a id="l272" class='ln'>272</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="273" id="273">
+<td><a id="l273" class='ln'>273</a></td><td><span class="ct"> * Here is the system hierarchy for this model</span></td></tr>
+<tr name="274" id="274">
+<td><a id="l274" class='ln'>274</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="275" id="275">
+<td><a id="l275" class='ln'>275</a></td><td><span class="ct"> * '&lt;Root&gt;' : 'FOC_ADRC/PMSM_Controller'</span></td></tr>
+<tr name="276" id="276">
+<td><a id="l276" class='ln'>276</a></td><td><span class="ct"> * '&lt;S1&gt;'   : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL'</span></td></tr>
+<tr name="277" id="277">
+<td><a id="l277" class='ln'>277</a></td><td><span class="ct"> * '&lt;S2&gt;'   : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1'</span></td></tr>
+<tr name="278" id="278">
+<td><a id="l278" class='ln'>278</a></td><td><span class="ct"> * '&lt;S3&gt;'   : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2'</span></td></tr>
+<tr name="279" id="279">
+<td><a id="l279" class='ln'>279</a></td><td><span class="ct"> * '&lt;S4&gt;'   : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/IIR Filter'</span></td></tr>
+<tr name="280" id="280">
+<td><a id="l280" class='ln'>280</a></td><td><span class="ct"> * '&lt;S5&gt;'   : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/IIR Filter1'</span></td></tr>
+<tr name="281" id="281">
+<td><a id="l281" class='ln'>281</a></td><td><span class="ct"> * '&lt;S6&gt;'   : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2'</span></td></tr>
+<tr name="282" id="282">
+<td><a id="l282" class='ln'>282</a></td><td><span class="ct"> * '&lt;S7&gt;'   : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/SMO'</span></td></tr>
+<tr name="283" id="283">
+<td><a id="l283" class='ln'>283</a></td><td><span class="ct"> * '&lt;S8&gt;'   : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL'</span></td></tr>
+<tr name="284" id="284">
+<td><a id="l284" class='ln'>284</a></td><td><span class="ct"> * '&lt;S9&gt;'   : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Anti-windup'</span></td></tr>
+<tr name="285" id="285">
+<td><a id="l285" class='ln'>285</a></td><td><span class="ct"> * '&lt;S10&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/D Gain'</span></td></tr>
+<tr name="286" id="286">
+<td><a id="l286" class='ln'>286</a></td><td><span class="ct"> * '&lt;S11&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Filter'</span></td></tr>
+<tr name="287" id="287">
+<td><a id="l287" class='ln'>287</a></td><td><span class="ct"> * '&lt;S12&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Filter ICs'</span></td></tr>
+<tr name="288" id="288">
+<td><a id="l288" class='ln'>288</a></td><td><span class="ct"> * '&lt;S13&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/I Gain'</span></td></tr>
+<tr name="289" id="289">
+<td><a id="l289" class='ln'>289</a></td><td><span class="ct"> * '&lt;S14&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Ideal P Gain'</span></td></tr>
+<tr name="290" id="290">
+<td><a id="l290" class='ln'>290</a></td><td><span class="ct"> * '&lt;S15&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Ideal P Gain Fdbk'</span></td></tr>
+<tr name="291" id="291">
+<td><a id="l291" class='ln'>291</a></td><td><span class="ct"> * '&lt;S16&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Integrator'</span></td></tr>
+<tr name="292" id="292">
+<td><a id="l292" class='ln'>292</a></td><td><span class="ct"> * '&lt;S17&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Integrator ICs'</span></td></tr>
+<tr name="293" id="293">
+<td><a id="l293" class='ln'>293</a></td><td><span class="ct"> * '&lt;S18&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/N Copy'</span></td></tr>
+<tr name="294" id="294">
+<td><a id="l294" class='ln'>294</a></td><td><span class="ct"> * '&lt;S19&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/N Gain'</span></td></tr>
+<tr name="295" id="295">
+<td><a id="l295" class='ln'>295</a></td><td><span class="ct"> * '&lt;S20&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/P Copy'</span></td></tr>
+<tr name="296" id="296">
+<td><a id="l296" class='ln'>296</a></td><td><span class="ct"> * '&lt;S21&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Parallel P Gain'</span></td></tr>
+<tr name="297" id="297">
+<td><a id="l297" class='ln'>297</a></td><td><span class="ct"> * '&lt;S22&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Reset Signal'</span></td></tr>
+<tr name="298" id="298">
+<td><a id="l298" class='ln'>298</a></td><td><span class="ct"> * '&lt;S23&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Saturation'</span></td></tr>
+<tr name="299" id="299">
+<td><a id="l299" class='ln'>299</a></td><td><span class="ct"> * '&lt;S24&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Saturation Fdbk'</span></td></tr>
+<tr name="300" id="300">
+<td><a id="l300" class='ln'>300</a></td><td><span class="ct"> * '&lt;S25&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Sum'</span></td></tr>
+<tr name="301" id="301">
+<td><a id="l301" class='ln'>301</a></td><td><span class="ct"> * '&lt;S26&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Sum Fdbk'</span></td></tr>
+<tr name="302" id="302">
+<td><a id="l302" class='ln'>302</a></td><td><span class="ct"> * '&lt;S27&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Tracking Mode'</span></td></tr>
+<tr name="303" id="303">
+<td><a id="l303" class='ln'>303</a></td><td><span class="ct"> * '&lt;S28&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Tracking Mode Sum'</span></td></tr>
+<tr name="304" id="304">
+<td><a id="l304" class='ln'>304</a></td><td><span class="ct"> * '&lt;S29&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Tsamp - Integral'</span></td></tr>
+<tr name="305" id="305">
+<td><a id="l305" class='ln'>305</a></td><td><span class="ct"> * '&lt;S30&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Tsamp - Ngain'</span></td></tr>
+<tr name="306" id="306">
+<td><a id="l306" class='ln'>306</a></td><td><span class="ct"> * '&lt;S31&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/postSat Signal'</span></td></tr>
+<tr name="307" id="307">
+<td><a id="l307" class='ln'>307</a></td><td><span class="ct"> * '&lt;S32&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/preSat Signal'</span></td></tr>
+<tr name="308" id="308">
+<td><a id="l308" class='ln'>308</a></td><td><span class="ct"> * '&lt;S33&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Anti-windup/Passthrough'</span></td></tr>
+<tr name="309" id="309">
+<td><a id="l309" class='ln'>309</a></td><td><span class="ct"> * '&lt;S34&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/D Gain/Disabled'</span></td></tr>
+<tr name="310" id="310">
+<td><a id="l310" class='ln'>310</a></td><td><span class="ct"> * '&lt;S35&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Filter/Disabled'</span></td></tr>
+<tr name="311" id="311">
+<td><a id="l311" class='ln'>311</a></td><td><span class="ct"> * '&lt;S36&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Filter ICs/Disabled'</span></td></tr>
+<tr name="312" id="312">
+<td><a id="l312" class='ln'>312</a></td><td><span class="ct"> * '&lt;S37&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/I Gain/Internal Parameters'</span></td></tr>
+<tr name="313" id="313">
+<td><a id="l313" class='ln'>313</a></td><td><span class="ct"> * '&lt;S38&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Ideal P Gain/Passthrough'</span></td></tr>
+<tr name="314" id="314">
+<td><a id="l314" class='ln'>314</a></td><td><span class="ct"> * '&lt;S39&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Ideal P Gain Fdbk/Disabled'</span></td></tr>
+<tr name="315" id="315">
+<td><a id="l315" class='ln'>315</a></td><td><span class="ct"> * '&lt;S40&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Integrator/Discrete'</span></td></tr>
+<tr name="316" id="316">
+<td><a id="l316" class='ln'>316</a></td><td><span class="ct"> * '&lt;S41&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Integrator ICs/Internal IC'</span></td></tr>
+<tr name="317" id="317">
+<td><a id="l317" class='ln'>317</a></td><td><span class="ct"> * '&lt;S42&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/N Copy/Disabled wSignal Specification'</span></td></tr>
+<tr name="318" id="318">
+<td><a id="l318" class='ln'>318</a></td><td><span class="ct"> * '&lt;S43&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/N Gain/Disabled'</span></td></tr>
+<tr name="319" id="319">
+<td><a id="l319" class='ln'>319</a></td><td><span class="ct"> * '&lt;S44&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/P Copy/Disabled'</span></td></tr>
+<tr name="320" id="320">
+<td><a id="l320" class='ln'>320</a></td><td><span class="ct"> * '&lt;S45&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Parallel P Gain/Internal Parameters'</span></td></tr>
+<tr name="321" id="321">
+<td><a id="l321" class='ln'>321</a></td><td><span class="ct"> * '&lt;S46&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Reset Signal/Disabled'</span></td></tr>
+<tr name="322" id="322">
+<td><a id="l322" class='ln'>322</a></td><td><span class="ct"> * '&lt;S47&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Saturation/Passthrough'</span></td></tr>
+<tr name="323" id="323">
+<td><a id="l323" class='ln'>323</a></td><td><span class="ct"> * '&lt;S48&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Saturation Fdbk/Disabled'</span></td></tr>
+<tr name="324" id="324">
+<td><a id="l324" class='ln'>324</a></td><td><span class="ct"> * '&lt;S49&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Sum/Sum_PI'</span></td></tr>
+<tr name="325" id="325">
+<td><a id="l325" class='ln'>325</a></td><td><span class="ct"> * '&lt;S50&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Sum Fdbk/Disabled'</span></td></tr>
+<tr name="326" id="326">
+<td><a id="l326" class='ln'>326</a></td><td><span class="ct"> * '&lt;S51&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Tracking Mode/Disabled'</span></td></tr>
+<tr name="327" id="327">
+<td><a id="l327" class='ln'>327</a></td><td><span class="ct"> * '&lt;S52&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Tracking Mode Sum/Passthrough'</span></td></tr>
+<tr name="328" id="328">
+<td><a id="l328" class='ln'>328</a></td><td><span class="ct"> * '&lt;S53&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Tsamp - Integral/Passthrough'</span></td></tr>
+<tr name="329" id="329">
+<td><a id="l329" class='ln'>329</a></td><td><span class="ct"> * '&lt;S54&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/Tsamp - Ngain/Passthrough'</span></td></tr>
+<tr name="330" id="330">
+<td><a id="l330" class='ln'>330</a></td><td><span class="ct"> * '&lt;S55&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/postSat Signal/Forward_Path'</span></td></tr>
+<tr name="331" id="331">
+<td><a id="l331" class='ln'>331</a></td><td><span class="ct"> * '&lt;S56&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/PLL2/PLL/preSat Signal/Forward_Path'</span></td></tr>
+<tr name="332" id="332">
+<td><a id="l332" class='ln'>332</a></td><td><span class="ct"> * '&lt;S57&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/SMO/Subsystem1'</span></td></tr>
+<tr name="333" id="333">
+<td><a id="l333" class='ln'>333</a></td><td><span class="ct"> * '&lt;S58&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO1/SMO/Subsystem2'</span></td></tr>
+<tr name="334" id="334">
+<td><a id="l334" class='ln'>334</a></td><td><span class="ct"> * '&lt;S59&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/IIR Filter'</span></td></tr>
+<tr name="335" id="335">
+<td><a id="l335" class='ln'>335</a></td><td><span class="ct"> * '&lt;S60&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2'</span></td></tr>
+<tr name="336" id="336">
+<td><a id="l336" class='ln'>336</a></td><td><span class="ct"> * '&lt;S61&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/SMO'</span></td></tr>
+<tr name="337" id="337">
+<td><a id="l337" class='ln'>337</a></td><td><span class="ct"> * '&lt;S62&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/SMO1'</span></td></tr>
+<tr name="338" id="338">
+<td><a id="l338" class='ln'>338</a></td><td><span class="ct"> * '&lt;S63&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/arctan_PLL1'</span></td></tr>
+<tr name="339" id="339">
+<td><a id="l339" class='ln'>339</a></td><td><span class="ct"> * '&lt;S64&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/Low-Pass Filter (Discrete or Continuous)'</span></td></tr>
+<tr name="340" id="340">
+<td><a id="l340" class='ln'>340</a></td><td><span class="ct"> * '&lt;S65&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL'</span></td></tr>
+<tr name="341" id="341">
+<td><a id="l341" class='ln'>341</a></td><td><span class="ct"> * '&lt;S66&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/Low-Pass Filter (Discrete or Continuous)/Enable//disable time constant'</span></td></tr>
+<tr name="342" id="342">
+<td><a id="l342" class='ln'>342</a></td><td><span class="ct"> * '&lt;S67&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/Low-Pass Filter (Discrete or Continuous)/Initialization'</span></td></tr>
+<tr name="343" id="343">
+<td><a id="l343" class='ln'>343</a></td><td><span class="ct"> * '&lt;S68&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/Low-Pass Filter (Discrete or Continuous)/Integrator (Discrete or Continuous)'</span></td></tr>
+<tr name="344" id="344">
+<td><a id="l344" class='ln'>344</a></td><td><span class="ct"> * '&lt;S69&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/Low-Pass Filter (Discrete or Continuous)/Enable//disable time constant/Compare To Zero'</span></td></tr>
+<tr name="345" id="345">
+<td><a id="l345" class='ln'>345</a></td><td><span class="ct"> * '&lt;S70&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/Low-Pass Filter (Discrete or Continuous)/Initialization/Init_u'</span></td></tr>
+<tr name="346" id="346">
+<td><a id="l346" class='ln'>346</a></td><td><span class="ct"> * '&lt;S71&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/Low-Pass Filter (Discrete or Continuous)/Integrator (Discrete or Continuous)/Discrete'</span></td></tr>
+<tr name="347" id="347">
+<td><a id="l347" class='ln'>347</a></td><td><span class="ct"> * '&lt;S72&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Anti-windup'</span></td></tr>
+<tr name="348" id="348">
+<td><a id="l348" class='ln'>348</a></td><td><span class="ct"> * '&lt;S73&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/D Gain'</span></td></tr>
+<tr name="349" id="349">
+<td><a id="l349" class='ln'>349</a></td><td><span class="ct"> * '&lt;S74&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Filter'</span></td></tr>
+<tr name="350" id="350">
+<td><a id="l350" class='ln'>350</a></td><td><span class="ct"> * '&lt;S75&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Filter ICs'</span></td></tr>
+<tr name="351" id="351">
+<td><a id="l351" class='ln'>351</a></td><td><span class="ct"> * '&lt;S76&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/I Gain'</span></td></tr>
+<tr name="352" id="352">
+<td><a id="l352" class='ln'>352</a></td><td><span class="ct"> * '&lt;S77&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Ideal P Gain'</span></td></tr>
+<tr name="353" id="353">
+<td><a id="l353" class='ln'>353</a></td><td><span class="ct"> * '&lt;S78&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Ideal P Gain Fdbk'</span></td></tr>
+<tr name="354" id="354">
+<td><a id="l354" class='ln'>354</a></td><td><span class="ct"> * '&lt;S79&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Integrator'</span></td></tr>
+<tr name="355" id="355">
+<td><a id="l355" class='ln'>355</a></td><td><span class="ct"> * '&lt;S80&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Integrator ICs'</span></td></tr>
+<tr name="356" id="356">
+<td><a id="l356" class='ln'>356</a></td><td><span class="ct"> * '&lt;S81&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/N Copy'</span></td></tr>
+<tr name="357" id="357">
+<td><a id="l357" class='ln'>357</a></td><td><span class="ct"> * '&lt;S82&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/N Gain'</span></td></tr>
+<tr name="358" id="358">
+<td><a id="l358" class='ln'>358</a></td><td><span class="ct"> * '&lt;S83&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/P Copy'</span></td></tr>
+<tr name="359" id="359">
+<td><a id="l359" class='ln'>359</a></td><td><span class="ct"> * '&lt;S84&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Parallel P Gain'</span></td></tr>
+<tr name="360" id="360">
+<td><a id="l360" class='ln'>360</a></td><td><span class="ct"> * '&lt;S85&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Reset Signal'</span></td></tr>
+<tr name="361" id="361">
+<td><a id="l361" class='ln'>361</a></td><td><span class="ct"> * '&lt;S86&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Saturation'</span></td></tr>
+<tr name="362" id="362">
+<td><a id="l362" class='ln'>362</a></td><td><span class="ct"> * '&lt;S87&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Saturation Fdbk'</span></td></tr>
+<tr name="363" id="363">
+<td><a id="l363" class='ln'>363</a></td><td><span class="ct"> * '&lt;S88&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Sum'</span></td></tr>
+<tr name="364" id="364">
+<td><a id="l364" class='ln'>364</a></td><td><span class="ct"> * '&lt;S89&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Sum Fdbk'</span></td></tr>
+<tr name="365" id="365">
+<td><a id="l365" class='ln'>365</a></td><td><span class="ct"> * '&lt;S90&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Tracking Mode'</span></td></tr>
+<tr name="366" id="366">
+<td><a id="l366" class='ln'>366</a></td><td><span class="ct"> * '&lt;S91&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Tracking Mode Sum'</span></td></tr>
+<tr name="367" id="367">
+<td><a id="l367" class='ln'>367</a></td><td><span class="ct"> * '&lt;S92&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Tsamp - Integral'</span></td></tr>
+<tr name="368" id="368">
+<td><a id="l368" class='ln'>368</a></td><td><span class="ct"> * '&lt;S93&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Tsamp - Ngain'</span></td></tr>
+<tr name="369" id="369">
+<td><a id="l369" class='ln'>369</a></td><td><span class="ct"> * '&lt;S94&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/postSat Signal'</span></td></tr>
+<tr name="370" id="370">
+<td><a id="l370" class='ln'>370</a></td><td><span class="ct"> * '&lt;S95&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/preSat Signal'</span></td></tr>
+<tr name="371" id="371">
+<td><a id="l371" class='ln'>371</a></td><td><span class="ct"> * '&lt;S96&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Anti-windup/Passthrough'</span></td></tr>
+<tr name="372" id="372">
+<td><a id="l372" class='ln'>372</a></td><td><span class="ct"> * '&lt;S97&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/D Gain/Disabled'</span></td></tr>
+<tr name="373" id="373">
+<td><a id="l373" class='ln'>373</a></td><td><span class="ct"> * '&lt;S98&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Filter/Disabled'</span></td></tr>
+<tr name="374" id="374">
+<td><a id="l374" class='ln'>374</a></td><td><span class="ct"> * '&lt;S99&gt;'  : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Filter ICs/Disabled'</span></td></tr>
+<tr name="375" id="375">
+<td><a id="l375" class='ln'>375</a></td><td><span class="ct"> * '&lt;S100&gt;' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/I Gain/Internal Parameters'</span></td></tr>
+<tr name="376" id="376">
+<td><a id="l376" class='ln'>376</a></td><td><span class="ct"> * '&lt;S101&gt;' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Ideal P Gain/Passthrough'</span></td></tr>
+<tr name="377" id="377">
+<td><a id="l377" class='ln'>377</a></td><td><span class="ct"> * '&lt;S102&gt;' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Ideal P Gain Fdbk/Disabled'</span></td></tr>
+<tr name="378" id="378">
+<td><a id="l378" class='ln'>378</a></td><td><span class="ct"> * '&lt;S103&gt;' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Integrator/Discrete'</span></td></tr>
+<tr name="379" id="379">
+<td><a id="l379" class='ln'>379</a></td><td><span class="ct"> * '&lt;S104&gt;' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Integrator ICs/Internal IC'</span></td></tr>
+<tr name="380" id="380">
+<td><a id="l380" class='ln'>380</a></td><td><span class="ct"> * '&lt;S105&gt;' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/N Copy/Disabled wSignal Specification'</span></td></tr>
+<tr name="381" id="381">
+<td><a id="l381" class='ln'>381</a></td><td><span class="ct"> * '&lt;S106&gt;' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/N Gain/Disabled'</span></td></tr>
+<tr name="382" id="382">
+<td><a id="l382" class='ln'>382</a></td><td><span class="ct"> * '&lt;S107&gt;' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/P Copy/Disabled'</span></td></tr>
+<tr name="383" id="383">
+<td><a id="l383" class='ln'>383</a></td><td><span class="ct"> * '&lt;S108&gt;' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Parallel P Gain/Internal Parameters'</span></td></tr>
+<tr name="384" id="384">
+<td><a id="l384" class='ln'>384</a></td><td><span class="ct"> * '&lt;S109&gt;' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Reset Signal/Disabled'</span></td></tr>
+<tr name="385" id="385">
+<td><a id="l385" class='ln'>385</a></td><td><span class="ct"> * '&lt;S110&gt;' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Saturation/Passthrough'</span></td></tr>
+<tr name="386" id="386">
+<td><a id="l386" class='ln'>386</a></td><td><span class="ct"> * '&lt;S111&gt;' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Saturation Fdbk/Disabled'</span></td></tr>
+<tr name="387" id="387">
+<td><a id="l387" class='ln'>387</a></td><td><span class="ct"> * '&lt;S112&gt;' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Sum/Sum_PI'</span></td></tr>
+<tr name="388" id="388">
+<td><a id="l388" class='ln'>388</a></td><td><span class="ct"> * '&lt;S113&gt;' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Sum Fdbk/Disabled'</span></td></tr>
+<tr name="389" id="389">
+<td><a id="l389" class='ln'>389</a></td><td><span class="ct"> * '&lt;S114&gt;' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Tracking Mode/Disabled'</span></td></tr>
+<tr name="390" id="390">
+<td><a id="l390" class='ln'>390</a></td><td><span class="ct"> * '&lt;S115&gt;' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Tracking Mode Sum/Passthrough'</span></td></tr>
+<tr name="391" id="391">
+<td><a id="l391" class='ln'>391</a></td><td><span class="ct"> * '&lt;S116&gt;' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Tsamp - Integral/Passthrough'</span></td></tr>
+<tr name="392" id="392">
+<td><a id="l392" class='ln'>392</a></td><td><span class="ct"> * '&lt;S117&gt;' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/Tsamp - Ngain/Passthrough'</span></td></tr>
+<tr name="393" id="393">
+<td><a id="l393" class='ln'>393</a></td><td><span class="ct"> * '&lt;S118&gt;' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/postSat Signal/Forward_Path'</span></td></tr>
+<tr name="394" id="394">
+<td><a id="l394" class='ln'>394</a></td><td><span class="ct"> * '&lt;S119&gt;' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/PLL2/PLL/preSat Signal/Forward_Path'</span></td></tr>
+<tr name="395" id="395">
+<td><a id="l395" class='ln'>395</a></td><td><span class="ct"> * '&lt;S120&gt;' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/SMO/Subsystem1'</span></td></tr>
+<tr name="396" id="396">
+<td><a id="l396" class='ln'>396</a></td><td><span class="ct"> * '&lt;S121&gt;' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/SMO/Subsystem2'</span></td></tr>
+<tr name="397" id="397">
+<td><a id="l397" class='ln'>397</a></td><td><span class="ct"> * '&lt;S122&gt;' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/SMO1/LFP'</span></td></tr>
+<tr name="398" id="398">
+<td><a id="l398" class='ln'>398</a></td><td><span class="ct"> * '&lt;S123&gt;' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/SMO1/LFP1'</span></td></tr>
+<tr name="399" id="399">
+<td><a id="l399" class='ln'>399</a></td><td><span class="ct"> * '&lt;S124&gt;' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/SMO1/Subsystem1'</span></td></tr>
+<tr name="400" id="400">
+<td><a id="l400" class='ln'>400</a></td><td><span class="ct"> * '&lt;S125&gt;' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/SMO1/Subsystem2'</span></td></tr>
+<tr name="401" id="401">
+<td><a id="l401" class='ln'>401</a></td><td><span class="ct"> * '&lt;S126&gt;' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/arctan_PLL1/Subsystem'</span></td></tr>
+<tr name="402" id="402">
+<td><a id="l402" class='ln'>402</a></td><td><span class="ct"> * '&lt;S127&gt;' : 'FOC_ADRC/PMSM_Controller/SMO_arctan_PLL/SMO2/arctan_PLL1/Subsystem/Saturation Dynamic'</span></td></tr>
+<tr name="403" id="403">
+<td><a id="l403" class='ln'>403</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="404" id="404">
+<td><a id="l404" class='ln'>404</a></td><td><span class="pp">#endif</span>                                 <span class="ct">/* RTW_HEADER_SMO_arctan_PLL_h_ */</span></td></tr>
+<tr name="405" id="405">
+<td><a id="l405" class='ln'>405</a></td><td></td></tr>
+<tr name="406" id="406">
+<td><a id="l406" class='ln'>406</a></td><td><span class="ct">/*</span></td></tr>
+<tr name="407" id="407">
+<td><a id="l407" class='ln'>407</a></td><td><span class="ct"> * File trailer for generated code.</span></td></tr>
+<tr name="408" id="408">
+<td><a id="l408" class='ln'>408</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="409" id="409">
+<td><a id="l409" class='ln'>409</a></td><td><span class="ct"> * [EOF]</span></td></tr>
+<tr name="410" id="410">
+<td><a id="l410" class='ln'>410</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="411" id="411">
+<td><a id="l411" class='ln'>411</a></td><td></td></tr>
+</table>
+</pre>
+</body>
+</html>

+ 495 - 0
Simulink/SMO_arctan_PLL_ert_rtw/html/SMO_arctan_PLL_interface.html

@@ -0,0 +1,495 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="stylesheet" type="text/css" href="rtwreport.css" /><script language="JavaScript" type="text/javascript">function rtwTableShrink(o) {var t = o.nextSibling;if (t.nodeType != 1) {t = t.nextSibling;}if (t.style.display == "none") {t.style.display = "";o.innerHTML = "[-]"} else {t.style.display = "none";o.innerHTML = "[+] ... "}}</script><script language="JavaScript" type="text/javascript" src="rtwreport_utils.js"></script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>
+Code Interface Report for SMO_arctan_PLL
+</title>
+
+</head>
+<body ONLOAD="try {if (top) {if (top.rtwPageOnLoad) top.rtwPageOnLoad('rtwIdCodeInterface'); else local_onload();}} catch(err) {};">
+<h1>
+Code Interface Report for SMO_arctan_PLL
+</h1>
+<h3>
+Table of Contents
+</h3>
+<ul>
+<li>
+<a href="#sec_Entry-Point_Functions">
+Entry-Point Functions
+</a>
+
+</li>
+<li>
+<a href="#sec_Inports">
+Inports
+</a>
+
+</li>
+<li>
+<a href="#sec_Outports">
+Outports
+</a>
+
+</li>
+<li>
+<a href="#sec_Interface_Parameters">
+Interface Parameters
+</a>
+
+</li>
+<li>
+<a href="#sec_Data_Stores">
+Data Stores
+</a>
+
+</li>
+
+</ul>
+<h3>
+<a name="sec_Entry-Point_Functions">
+Entry-Point Functions
+</a>
+
+</h3>
+<p>
+Function: <a href="SMO_arctan_PLL_c.html#fcn_SMO_arctan_PLL_initialize">SMO_arctan_PLL_initialize</a>
+</p>
+<table width="100%" class="AltRow" cellspacing="0">
+<tr class="even">
+<td width="25%" align="left" valign="top">
+Prototype
+</td>
+<td width="75%" align="left" valign="top">
+<b>
+void SMO_arctan_PLL_initialize(RT_MODEL&nbsp;*const&nbsp;rtM)
+</b>
+
+</td>
+
+</tr>
+<tr class="odd">
+<td width="25%" align="left" valign="top">
+Description
+</td>
+<td width="75%" align="left" valign="top">
+Initialization entry point of generated code
+</td>
+
+</tr>
+<tr class="even">
+<td width="25%" align="left" valign="top">
+Timing
+</td>
+<td width="75%" align="left" valign="top">
+Must be called exactly once
+</td>
+
+</tr>
+<tr class="odd">
+<td width="25%" align="left" valign="top">
+Arguments
+</td>
+<td width="75%" align="left" valign="top">
+<table class="AltRow FirstColumn" cellspacing="0">
+<tr class="heading">
+<th align="left" valign="top">
+<b>
+#
+</b>
+
+</th>
+<th align="left" valign="top">
+<b>
+Name
+</b>
+
+</th>
+<th align="left" valign="top">
+<b>
+Data Type
+</b>
+
+</th>
+<th align="left" valign="top">
+<b>
+Description
+</b>
+
+</th>
+
+</tr>
+<tr class="even">
+<td align="right" valign="top">
+1
+</td>
+<td align="left" valign="top">
+rtM
+</td>
+<td align="left" valign="top">
+RT_MODEL&nbsp;*const
+</td>
+<td align="left" valign="top">
+RTModel
+</td>
+
+</tr>
+
+</table>
+
+</td>
+
+</tr>
+<tr class="even">
+<td width="25%" align="left" valign="top">
+Return value
+</td>
+<td width="75%" align="left" valign="top">
+None
+</td>
+
+</tr>
+<tr class="odd">
+<td width="25%" align="left" valign="top">
+Header file
+</td>
+<td width="75%" align="left" valign="top">
+<a href="SMO_arctan_PLL_h.html">SMO_arctan_PLL.h</a>
+</td>
+
+</tr>
+
+</table>
+<p>
+Function: <a href="SMO_arctan_PLL_c.html#fcn_SMO_arctan_PLL_step">SMO_arctan_PLL_step</a>
+</p>
+<table width="100%" class="AltRow" cellspacing="0">
+<tr class="even">
+<td width="25%" align="left" valign="top">
+Prototype
+</td>
+<td width="75%" align="left" valign="top">
+<b>
+void SMO_arctan_PLL_step(RT_MODEL&nbsp;*const&nbsp;rtM, real_T rtU_Ialfabeta[2], real_T rtU_Ualfabeta[2], real_T&nbsp;*rtY_theta, real_T&nbsp;*rtY_we)
+</b>
+
+</td>
+
+</tr>
+<tr class="odd">
+<td width="25%" align="left" valign="top">
+Description
+</td>
+<td width="75%" align="left" valign="top">
+Output entry point of generated code
+</td>
+
+</tr>
+<tr class="even">
+<td width="25%" align="left" valign="top">
+Timing
+</td>
+<td width="75%" align="left" valign="top">
+Must be called periodically, every 6e-05 seconds
+</td>
+
+</tr>
+<tr class="odd">
+<td width="25%" align="left" valign="top">
+Arguments
+</td>
+<td width="75%" align="left" valign="top">
+<span title="Click to shrink or expand table" onclick="rtwTableShrink(this)">[-]</span><table class="AltRow FirstColumn" cellspacing="0">
+<tr class="heading">
+<th align="left" valign="top">
+<b>
+#
+</b>
+
+</th>
+<th align="left" valign="top">
+<b>
+Name
+</b>
+
+</th>
+<th align="left" valign="top">
+<b>
+Data Type
+</b>
+
+</th>
+<th align="left" valign="top">
+<b>
+Description
+</b>
+
+</th>
+
+</tr>
+<tr class="even">
+<td align="right" valign="top">
+1
+</td>
+<td align="left" valign="top">
+rtM
+</td>
+<td align="left" valign="top">
+RT_MODEL&nbsp;*const
+</td>
+<td align="left" valign="top">
+RTModel
+</td>
+
+</tr>
+<tr class="odd">
+<td align="right" valign="top">
+2
+</td>
+<td align="left" valign="top">
+rtU_Ialfabeta
+</td>
+<td align="left" valign="top">
+real_T
+</td>
+<td align="left" valign="top">
+&lt;S12&gt;/Ialfa,beta
+</td>
+
+</tr>
+<tr class="even">
+<td align="right" valign="top">
+3
+</td>
+<td align="left" valign="top">
+rtU_Ualfabeta
+</td>
+<td align="left" valign="top">
+real_T
+</td>
+<td align="left" valign="top">
+&lt;S12&gt;/Ualfa,beta
+</td>
+
+</tr>
+<tr class="odd">
+<td align="right" valign="top">
+4
+</td>
+<td align="left" valign="top">
+rtY_theta
+</td>
+<td align="left" valign="top">
+real_T&nbsp;*
+</td>
+<td align="left" valign="top">
+&lt;S12&gt;/theta
+</td>
+
+</tr>
+<tr class="even">
+<td align="right" valign="top">
+5
+</td>
+<td align="left" valign="top">
+rtY_we
+</td>
+<td align="left" valign="top">
+real_T&nbsp;*
+</td>
+<td align="left" valign="top">
+&lt;S12&gt;/we
+</td>
+
+</tr>
+
+</table>
+
+</td>
+
+</tr>
+<tr class="even">
+<td width="25%" align="left" valign="top">
+Return value
+</td>
+<td width="75%" align="left" valign="top">
+None
+</td>
+
+</tr>
+<tr class="odd">
+<td width="25%" align="left" valign="top">
+Header file
+</td>
+<td width="75%" align="left" valign="top">
+<a href="SMO_arctan_PLL_h.html">SMO_arctan_PLL.h</a>
+</td>
+
+</tr>
+
+</table>
+<h3>
+<a name="sec_Inports">
+Inports
+</a>
+
+</h3>
+<table width="100%" class="AltRow FirstColumn" cellspacing="0">
+<tr class="heading">
+<th width="42%" align="left" valign="top">
+<b>
+Block Name
+</b>
+
+</th>
+<th width="26%" align="left" valign="top">
+<b>
+Code Identifier
+</b>
+
+</th>
+<th width="21%" align="left" valign="top">
+<b>
+Data Type
+</b>
+
+</th>
+<th width="10%" align="right" valign="top">
+<b>
+Dimension
+</b>
+
+</th>
+
+</tr>
+<tr class="even">
+<td width="42%" align="left" valign="top">
+&lt;S12&gt;/Ialfa,beta
+</td>
+<td width="26%" align="left" valign="top">
+<i>
+Defined externally
+</i>
+
+</td>
+<td width="21%" align="left" valign="top">
+real_T
+</td>
+<td width="10%" align="right" valign="top">
+[2]
+</td>
+
+</tr>
+<tr class="odd">
+<td width="42%" align="left" valign="top">
+&lt;S12&gt;/Ualfa,beta
+</td>
+<td width="26%" align="left" valign="top">
+<i>
+Defined externally
+</i>
+
+</td>
+<td width="21%" align="left" valign="top">
+real_T
+</td>
+<td width="10%" align="right" valign="top">
+[2]
+</td>
+
+</tr>
+
+</table>
+<h3>
+<a name="sec_Outports">
+Outports
+</a>
+
+</h3>
+<table width="100%" class="AltRow FirstColumn" cellspacing="0">
+<tr class="heading">
+<th width="42%" align="left" valign="top">
+<b>
+Block Name
+</b>
+
+</th>
+<th width="26%" align="left" valign="top">
+<b>
+Code Identifier
+</b>
+
+</th>
+<th width="21%" align="left" valign="top">
+<b>
+Data Type
+</b>
+
+</th>
+<th width="10%" align="right" valign="top">
+<b>
+Dimension
+</b>
+
+</th>
+
+</tr>
+<tr class="even">
+<td width="42%" align="left" valign="top">
+&lt;S12&gt;/theta
+</td>
+<td width="26%" align="left" valign="top">
+<i>
+Defined externally
+</i>
+
+</td>
+<td width="21%" align="left" valign="top">
+real_T
+</td>
+<td width="10%" align="right" valign="top">
+1
+</td>
+
+</tr>
+<tr class="odd">
+<td width="42%" align="left" valign="top">
+&lt;S12&gt;/we
+</td>
+<td width="26%" align="left" valign="top">
+<i>
+Defined externally
+</i>
+
+</td>
+<td width="21%" align="left" valign="top">
+real_T
+</td>
+<td width="10%" align="right" valign="top">
+1
+</td>
+
+</tr>
+
+</table>
+<h3>
+<a name="sec_Interface_Parameters">
+Interface Parameters
+</a>
+
+</h3>
+<p>
+No interface/tunable parameters in model.
+</p>
+<h3>
+<a name="sec_Data_Stores">
+Data Stores
+</a>
+
+</h3>
+<p>
+No data stores in the model; note that this report lists only data stores with non-auto storage class and global data stores
+</p>
+
+</body>
+
+</html>

+ 18 - 0
Simulink/SMO_arctan_PLL_ert_rtw/html/SMO_arctan_PLL_metrics.html

@@ -0,0 +1,18 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="stylesheet" type="text/css" href="rtwreport.css" /><title>
+Static Code Metrics Report
+</title>
+
+</head>
+<body onload="try {if (top) {if (top.rtwPageOnLoad) top.rtwPageOnLoad('rtwIdCodeMetrics'); else local_onload();}} catch(err) {};">
+<h1>
+Static Code Metrics Report
+</h1>
+<div>
+
+</div>
+<img src="hilite_warning.png" />Static Code Metrics report is not generated. On the <b>Configuration Parameters &gt; Code Generation &gt; Report</b> pane, select <b>Generate static code metrics</b>.  On the model diagram window, select <b>Code &gt; C/C++ Code &gt; Code Generation Report &gt; Open Model Report</b> or rebuild the model.
+</body>
+
+</html>

+ 1749 - 0
Simulink/SMO_arctan_PLL_ert_rtw/html/SMO_arctan_PLL_reducedblocks.html

@@ -0,0 +1,1749 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="stylesheet" type="text/css" href="rtwreport.css" /><title>
+Eliminated blocks in SMO_arctan_PLL
+</title>
+
+</head>
+<body onload="try {if (top) {if (top.rtwPageOnLoad) top.rtwPageOnLoad('rtwIdReducedBlocks'); else local_onload();}} catch(err) {};">
+<h1>
+Eliminated blocks in SMO_arctan_PLL
+</h1>
+<div>
+
+</div>
+<div>
+
+</div>
+List of blocks eliminated as a result of block reduction optimization.<table class="AltRow FirstColumn" cellspacing="0">
+<tr class="heading">
+<th align="left" valign="top">
+<b>
+Block
+</b>
+
+</th>
+<th align="left" valign="top">
+<b>
+Description
+</b>
+
+</th>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S2&gt;/Constant
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S2&gt;/Display
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S4&gt;/Data Type Duplicate
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S5&gt;/Data Type Duplicate
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S6&gt;/Scope1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S7&gt;/Scope1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S7&gt;/Scope2
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S2&gt;/Scope
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S2&gt;/Scope1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S2&gt;/Scope3
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S3&gt;/Add
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S3&gt;/Add1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S3&gt;/Atan1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S3&gt;/Constant
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S3&gt;/Constant1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S3&gt;/Constant4
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S59&gt;/Add1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S59&gt;/Data Type Duplicate
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S59&gt;/Filter_Constant
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S59&gt;/One
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S59&gt;/Product
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S59&gt;/Product1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S59&gt;/Unit Delay
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S60&gt;/Add
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S60&gt;/Constant
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S60&gt;/Discrete-Time Integrator
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S60&gt;/Divide
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S60&gt;/Divide2
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S60&gt;/Gain
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S64&gt;/1//T
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S66&gt;/Avoid Divide by Zero
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S69&gt;/Compare
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S69&gt;/Constant
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S66&gt;/Max
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S66&gt;/Probe
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S66&gt;/Sum1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S66&gt;/Time constant
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S71&gt;/Integrator
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S71&gt;/Saturation
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S64&gt;/K
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S64&gt;/Sum1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S60&gt;/Math Function
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S60&gt;/Math Function1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S100&gt;/Integral Gain
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S103&gt;/Integrator
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S108&gt;/Proportional Gain
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S112&gt;/Sum
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S60&gt;/Product
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S60&gt;/Product1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S60&gt;/Scope1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S60&gt;/Sqrt
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S60&gt;/Sum
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S60&gt;/Trigonometric Function
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S60&gt;/Trigonometric Function1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S3&gt;/Rem1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S61&gt;/ 
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S61&gt;/   
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S61&gt;/ 1//L
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S61&gt;/ 1//L 
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S61&gt;/1//L
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S61&gt;/1//L 
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S61&gt;/Constant
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S61&gt;/Constant1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S61&gt;/Constant2
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S61&gt;/Constant3
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S61&gt;/Constant4
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S61&gt;/Discrete-Time Integrator
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S61&gt;/Discrete-Time Integrator1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S61&gt;/Gain4
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S61&gt;/Gain5
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S61&gt;/Product2
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S61&gt;/Product3
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S61&gt;/Product4
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S61&gt;/R//L
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S61&gt;/R//L 
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S61&gt;/Scope1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S61&gt;/Scope2
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S120&gt;/Abs
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S120&gt;/Add
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S120&gt;/Divide
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S120&gt;/Divide1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S120&gt;/Divide2
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S120&gt;/Scope
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S120&gt;/Scope1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S120&gt;/Scope2
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S120&gt;/Sign
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S120&gt;/Switch
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S121&gt;/Abs
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S121&gt;/Add
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S121&gt;/Divide
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S121&gt;/Divide1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S121&gt;/Divide2
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S121&gt;/Scope
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S121&gt;/Scope1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S121&gt;/Scope2
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S121&gt;/Sign
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S121&gt;/Switch
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S61&gt;/Sum2
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S61&gt;/Sum5
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S62&gt;/ 
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S62&gt;/   
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S62&gt;/ 1//L
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S62&gt;/ 1//L 
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S62&gt;/1//L
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S62&gt;/1//L 
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S62&gt;/Constant
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S62&gt;/Constant1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S62&gt;/Constant2
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S62&gt;/Constant3
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S62&gt;/Constant4
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S62&gt;/Constant5
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S62&gt;/Discrete-Time Integrator
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S62&gt;/Discrete-Time Integrator1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S122&gt;/Divide3
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S122&gt;/Sum2
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S122&gt;/Sum3
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S122&gt;/UnitDelay1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S123&gt;/Divide3
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S123&gt;/Sum2
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S123&gt;/Sum3
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S123&gt;/UnitDelay1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S62&gt;/Product2
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S62&gt;/Product3
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S62&gt;/Product4
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S62&gt;/R//L
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S62&gt;/R//L 
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S62&gt;/Scope
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S124&gt;/Abs
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S124&gt;/Add
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S124&gt;/Divide
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S124&gt;/Divide1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S124&gt;/Divide2
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S124&gt;/Sign
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S124&gt;/Switch
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S125&gt;/Abs
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S125&gt;/Add
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S125&gt;/Divide
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S125&gt;/Divide1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S125&gt;/Divide2
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S125&gt;/Sign
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S125&gt;/Switch
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S62&gt;/Sum2
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S62&gt;/Sum5
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S3&gt;/Scope
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S3&gt;/Scope1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S3&gt;/Scope2
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S3&gt;/Scope3
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S63&gt;/Add
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S63&gt;/Constant
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S63&gt;/Constant1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S63&gt;/Constant2
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S63&gt;/Constant3
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S63&gt;/Constant4
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S63&gt;/Constant5
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S63&gt;/Constant6
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S63&gt;/Constant7
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S63&gt;/Data Type Conversion
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S63&gt;/Gain
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S63&gt;/Gain1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S63&gt;/Gain2
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S63&gt;/Logical Operator
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S63&gt;/Relational Operator
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S63&gt;/Relational Operator1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S63&gt;/Relational Operator2
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S63&gt;/Rem
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S63&gt;/Scope
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S63&gt;/Scope1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S63&gt;/Sin
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S63&gt;/Square
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S126&gt;/Add
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S126&gt;/Add1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S126&gt;/Add2
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S126&gt;/Add3
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S126&gt;/Add4
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S126&gt;/Add5
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S126&gt;/Divide
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S126&gt;/Divide1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S126&gt;/Divide2
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S126&gt;/Gain
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S127&gt;/Data Type Duplicate
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S127&gt;/Data Type Propagation
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S127&gt;/LowerRelop1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S127&gt;/Switch
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S127&gt;/Switch2
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S127&gt;/UpperRelop
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S126&gt;/Switch
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S126&gt;/Unit Delay
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S126&gt;/Unit Delay1
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S63&gt;/Switch
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S63&gt;/Unit Delay
+</td>
+<td align="left" valign="top">
+Unused code path elimination
+</td>
+
+</tr>
+
+</table>
+
+</body>
+
+</html>

+ 18 - 0
Simulink/SMO_arctan_PLL_ert_rtw/html/SMO_arctan_PLL_replacements.html

@@ -0,0 +1,18 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="stylesheet" type="text/css" href="rtwreport.css" /><title>
+Code replacements in SMO_arctan_PLL
+</title>
+
+</head>
+<body onload="try {if (top) {if (top.rtwPageOnLoad) top.rtwPageOnLoad('rtwIdCodeReplacements'); else local_onload();}} catch(err) {};">
+<h1>
+Code replacements in SMO_arctan_PLL
+</h1>
+<div>
+
+</div>
+<img src="hilite_warning.png" />Code replacements report not generated. Select <a href="matlab:configset.highlightParameter('FOC_ADRC', 'GenerateCodeReplacementReport')">'Summarize which blocks triggered code replacements'</a>.
+</body>
+
+</html>

+ 87 - 0
Simulink/SMO_arctan_PLL_ert_rtw/html/SMO_arctan_PLL_subsystems.html

@@ -0,0 +1,87 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="stylesheet" type="text/css" href="rtwreport.css" /><script language="JavaScript" type="text/javascript" src="rtwshrink.js"></script><title>
+Non-virtual subsystems in SMO_arctan_PLL
+</title>
+
+</head>
+<body onload="try {if (top) {if (top.rtwPageOnLoad) top.rtwPageOnLoad('rtwIdSubsystem'); else local_onload();}} catch(err) {};">
+<h1>
+Non-virtual subsystems in SMO_arctan_PLL
+</h1>
+<div>
+
+</div>
+<div>
+
+</div>
+<h3 name="sec_Code_Mapping" id="sec_code_mapping">
+1. Code Mapping <span title="Click to shrink or expand section" style="cursor:pointer;font-weight:normal;" id="rtwIdSubsystem_table_001_control" onclick ="if (rtwTableShrink) rtwTableShrink(window.document, this, 'rtwIdSubsystem_table_001', false)"><span class="shrink-button">[<u>hide</u>]</span></span>
+</h3>
+<table width="100%" name="rtwIdSubsystem_table_001" id="rtwIdSubsystem_table_001" border="0">
+<tr>
+<td align="left" valign="top">
+<p>
+The following table: <br /><ul>
+<li>
+provides a mapping from the non-virtual subsystems in the model to functions or reusable functions in the generated code and
+</li>
+<li>
+notes exceptions that caused some non-virtual subsystems to not reuse code even though they were assigned a function packaging setting ('Function packaging' entry on the Subsystem Block Dialog) of 'Auto' or 'Reusable function'.
+</li>
+
+</ul>
+
+</p>
+
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<b>
+No non-virtual subsystems generating functions in model
+</b>
+
+</td>
+
+</tr>
+
+</table>
+<h3 name="sec_Code_Reuse_Exceptions" id="sec_reuse_exception">
+2. Code Reuse Exceptions <span title="Click to shrink or expand section" style="cursor:pointer;font-weight:normal;" id="rtwIdSubsystem_table_002_control" onclick ="if (rtwTableShrink) rtwTableShrink(window.document, this, 'rtwIdSubsystem_table_002', false)"><span class="shrink-button">[<u>hide</u>]</span></span>
+</h3>
+<table width="100%" name="rtwIdSubsystem_table_002" id="rtwIdSubsystem_table_002" border="0">
+<tr>
+<td align="left" valign="top">
+<p>
+The following section provides details on each exception that caused a non-virtual subsystem with a function packaging setting of<br /><ul>
+<li>
+'Auto' to become an inlined code segment,
+</li>
+<li>
+'Auto' to become a non-reusable function without arguments, or
+</li>
+<li>
+'Reusable function' to become a non-reusable function without arguments.
+</li>
+
+</ul>
+<b>Note:</b>This section does not report graphically identical non-virtual subsystems marked as 'Auto' that were not reused due to differences in their functional properties (such as dimensions, datatypes, work vectors, parameters, etc.).  You may identify reasons for non-reuse in such cases by inspecting the differences in the functional attributes of the subsystems in the model or in the inlined generated code.
+</p>
+
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<br /><b>No reuse exception in model</b>
+</td>
+
+</tr>
+
+</table>
+
+</body>
+
+</html>

+ 177 - 0
Simulink/SMO_arctan_PLL_ert_rtw/html/SMO_arctan_PLL_survey.html

@@ -0,0 +1,177 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="stylesheet" type="text/css" href="rtwreport.css" /><title>
+Code Generation Report for 'SMO_arctan_PLL'
+</title>
+
+</head>
+<body onload="try {if (top) {if (top.rtwPageOnLoad) top.rtwPageOnLoad('rtwIdSummaryPage'); else local_onload();}} catch(err) {};">
+<h1>
+Code Generation Report for 'SMO_arctan_PLL'
+</h1>
+<div>
+
+</div>
+<div>
+
+</div>
+<h3 name="sec_Model_Information" id="sec_model_info">
+Model Information
+</h3>
+<table width="100%" border="0">
+<tr>
+<td align="left" valign="top">
+<p>
+<table class="AltRow" cellspacing="0">
+<tr class="even">
+<td align="left" valign="top">
+Author
+</td>
+<td align="left" valign="top">
+kevin
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+Model Version
+</td>
+<td align="left" valign="top">
+1.812
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+Tasking Mode
+</td>
+<td align="left" valign="top">
+MultiTasking
+</td>
+
+</tr>
+
+</table>
+<br /><a href="../../slprj/ert/SMO_arctan_PLL/tmwinternal/binfo.mat?SMO_arctan_PLL" id="linkToCS" style="display:none">
+Configuration settings at time of code generation
+</a>
+<span style="" id="linkToCS_disabled" title="Link to configuration set is only available in MATLAB browser">
+Configuration settings at time of code generation
+</span>
+
+</p>
+
+</td>
+
+</tr>
+
+</table>
+<h3 name="sec_Code_Information" id="sec_code_info">
+Code Information
+</h3>
+<table width="100%" border="0">
+<tr>
+<td align="left" valign="top">
+<p>
+<table class="AltRow" cellspacing="0">
+<tr class="even">
+<td align="left" valign="top">
+System Target File
+</td>
+<td align="left" valign="top">
+ert.tlc
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+Hardware Device Type
+</td>
+<td align="left" valign="top">
+ARM Compatible->ARM Cortex-M
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+Simulink Coder Version
+</td>
+<td align="left" valign="top">
+9.4 (R2020b) 29-Jul-2020
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+Timestamp of Generated Source Code
+</td>
+<td align="left" valign="top">
+Tue Apr 11 20:18:35 2023
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+<span id="sourceLocationTitle">Location of Generated Source Code</span>
+</td>
+<td align="left" valign="top">
+<span id="sourceLocation" style="display:none"><script>document.write(top.getCodeLocation())</script></span>
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+Type of Build
+</td>
+<td align="left" valign="top">
+Subsystem
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+Objectives Specified
+</td>
+<td align="left" valign="top">
+<span style="color:black">Execution efficiency, RAM efficiency</span>
+</td>
+
+</tr>
+
+</table>
+
+</p>
+
+</td>
+
+</tr>
+
+</table>
+<h3 name="sec_Additional_Information" id="sec_additional_info">
+Additional Information
+</h3>
+<table width="100%" border="0">
+<tr>
+<td align="left" valign="top">
+<table class="AltRow" cellspacing="0">
+<tr class="even">
+<td align="left" valign="top">
+Code Generation Advisor
+</td>
+<td align="left" valign="top">
+Not run
+</td>
+
+</tr>
+
+</table>
+
+</td>
+
+</tr>
+
+</table>
+
+</body>
+
+</html>

+ 7 - 0
Simulink/SMO_arctan_PLL_ert_rtw/html/SMO_arctan_PLL_trace.html

@@ -0,0 +1,7 @@
+<HTML><HEAD><TITLE>Traceability Report for SMO_arctan_PLL</TITLE>
+<LINK rel="stylesheet" type="text/css" href="rtwreport.css" />
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+</HEAD><BODY ONLOAD="try {if (top) {if (top.rtwPageOnLoad) top.rtwPageOnLoad('rtwIdTraceability'); else local_onload();}} catch(err) {};">
+<H1>Traceability Report for SMO_arctan_PLL</H1>
+<P><IMG src="hilite_warning.png" />Traceability report is not generated. On the <b>Configuration Parameters &gt; Code Generation &gt; Comments</b> pane, select the <b>Include comments</b> parameter. On the <b>Configuration Parameters dialog box</b>, enter search keyword "GenerateTraceReport" and select the <b>Traceability Report Contents</b> parameters. Then, rebuild the model.</P>
+</BODY></HTML>

+ 184 - 0
Simulink/SMO_arctan_PLL_ert_rtw/html/css/coder_app.css

@@ -0,0 +1,184 @@
+/* Copyright 2013-2018 The MathWorks, Inc. */
+pre#code {    
+    font-family: Consolas, Courier;
+    font-size: small;
+}
+
+.ct { 
+    font-style: italic; 
+    color: #117755 
+} /* comment */
+.pp { 
+    font-weight:bold;   
+    color: #992211 
+} /* preprocessor */
+.kw, .br { 
+    font-weight:bold;   
+    color: #112266
+} /* keyword or brace */
+.dt { 
+    font-weight:bold;   
+    color: #112266 
+} /* data type */
+.tk { 
+    font-style: normal;   
+    color: #112266
+} /* regular token */
+pre#code a.req {
+    text-decoration: none;
+    color: #112266
+}
+pre#code a.req_active {
+    cursor: pointer;  
+    text-decoration: underline;
+}
+pre#code a.req_active:hover { 
+    cursor: pointer;  
+    color: blue; 
+    text-decoration: underline
+}
+pre#code a.blk {
+    text-decoration: none;
+}
+pre#code a.blk_active {
+    cursor: pointer;  
+    text-decoration: underline;
+}
+pre#code a.blk_active:hover { 
+    cursor: pointer;  
+    color: blue; 
+    text-decoration: underline
+}
+a.hilite { 
+    font-style: normal;   
+    color: black;
+    background-color: rgba(150, 12, 116, 0.1);
+} /* highlight token */
+tr.hilite { 
+    font-style: normal;   
+    color: black;
+    background-color: rgba(150, 12, 116, 0.1);
+} /* highlight row */
+a.hiliteToken, tr.hiliteToken, td.hiliteToken {
+    background-color: #ffff99;
+}
+.hiliteCurrentLine, tr.hiliteCurrentLine > td {
+    font-style: normal;   
+    color: black;   
+    background-color: rgba(150, 12, 116, 0.1);
+    box-shadow:  inset 0 1px 0 0 rgba(150, 12, 116, 0.25), inset 0 -1px 0 0 rgba(150, 12, 116, 0.25);
+}
+span.hiliteTotalLine {
+    font-style: normal;   
+    color: #aff;
+} 
+a.tk {
+    text-decoration: none;
+}
+a.tk:hover {
+    text-decoration: none;
+}
+a.active {
+    text-decoration: underline;
+}
+a.active:hover { 
+    cursor: pointer;  
+    color: blue; 
+    text-decoration: underline
+} /* hyperlink */
+table.code {
+    border: 0px    
+}
+table.code td {
+    vertical-align: top;
+}
+table.code td.highlightedCurrent {
+    background-color: rgba(150, 12, 116, 0.1);
+}
+table.code > tr:first {
+    text-align: right;
+} /* hyperlink */
+
+ul.popup_attrib_list {	
+    list-style-type:none; 
+    display: block;		
+    margin: 0;
+    padding: 0;	
+}
+ul.popup_attrib_list li {
+    list-style-type:none; 
+    display: inline;
+    margin: 0 18px 0 0;
+    padding: 0;	
+}
+.highlighted {
+    background-color:yellow;
+}
+a:class1 {
+    color: -webkit-link;
+    text-decoration: underline;
+    cursor: hand;
+}
+.scroll
+{
+    height:80px;
+    overflow:scroll;
+    overflow-x:hidden;
+}
+div#popup_window {
+    position: absolute;
+    background-color: rgb(203,203,255);
+    border: solid 3px #ECECEC;		
+    border-radius: 5px;
+    /* shadow box around the window*/
+    -moz-box-shadow: 0 3px 3px rgba(0,0,0,0.4), inset 0 1px #FFF;
+    -webkit-box-shadow: 0 3px 3px rgba(0,0,0,0.4), inset 0 1px #FFF;
+    box-shadow: 0 3px 3px rgba(0,0,0,0.4), inset 0 1px #FFF;	
+    padding: 2px;
+}
+div#popup_window a {
+    text-decoration: none;
+    color: green;
+}
+div#popup_window a:hover {
+    cursor: pointer;
+    text-decoration: underline;
+    color: blue;
+}
+div#popup_window tr.selected {
+    background-color: #ffff99;
+}
+div#token_usage_nav {
+    border-bottom: 1px solid gray;
+}
+table#token_usage_details {
+    cellpadding: 100px;
+    table-layout:fixed;
+    border: 0px;		
+}
+.token_usage_details_tabrow {
+    width: 40px;
+}
+table#token_usage_details td {
+    padding-right: 5em;	
+    padding-left: 1em;	
+}
+.token_usage_details_tabrow:hover {
+    background-color: gray;
+}
+.nav_table td.hidden {
+    display: none;
+}
+table#codeTbl tr td {
+    color: #112266
+}
+table#codeTbl tr td {
+    padding-left: 10px;
+}
+table#codeTbl tr td:first-child {
+    font-style: italic; 
+    color: #888888;
+    text-align: right;
+    padding-left:0px;
+}
+

+ 90 - 0
Simulink/SMO_arctan_PLL_ert_rtw/html/define.js

@@ -0,0 +1,90 @@
+function CodeDefine() { 
+this.def = new Array();
+this.def["ert_main.c:rtM_"] = {file: "ert_main_c.html",line:23,type:"var"};
+this.def["ert_main.c:rtMPtr"] = {file: "ert_main_c.html",line:24,type:"var"};
+this.def["ert_main.c:rtDW"] = {file: "ert_main_c.html",line:25,type:"var"};
+this.def["ert_main.c:rtU_Ialfabeta"] = {file: "ert_main_c.html",line:28,type:"var"};
+this.def["ert_main.c:rtU_Ualfabeta"] = {file: "ert_main_c.html",line:31,type:"var"};
+this.def["ert_main.c:rtY_theta"] = {file: "ert_main_c.html",line:34,type:"var"};
+this.def["ert_main.c:rtY_we"] = {file: "ert_main_c.html",line:37,type:"var"};
+this.def["rt_OneStep"] = {file: "ert_main_c.html",line:51,type:"fcn"};
+this.def["main"] = {file: "ert_main_c.html",line:88,type:"fcn"};
+this.def["BigEndianIEEEDouble"] = {file: "SMO_arctan_PLL_c.html",line:40,type:"type"};
+this.def["LittleEndianIEEEDouble"] = {file: "SMO_arctan_PLL_c.html",line:47,type:"type"};
+this.def["IEEESingle"] = {file: "SMO_arctan_PLL_c.html",line:54,type:"type"};
+this.def["rtInf"] = {file: "SMO_arctan_PLL_c.html",line:56,type:"var"};
+this.def["rtMinusInf"] = {file: "SMO_arctan_PLL_c.html",line:57,type:"var"};
+this.def["rtNaN"] = {file: "SMO_arctan_PLL_c.html",line:58,type:"var"};
+this.def["rtInfF"] = {file: "SMO_arctan_PLL_c.html",line:59,type:"var"};
+this.def["rtMinusInfF"] = {file: "SMO_arctan_PLL_c.html",line:60,type:"var"};
+this.def["rtNaNF"] = {file: "SMO_arctan_PLL_c.html",line:61,type:"var"};
+this.def["SMO_arctan_PLL.c:rtGetNaN"] = {file: "SMO_arctan_PLL_c.html",line:101,type:"fcn"};
+this.def["SMO_arctan_PLL.c:rtGetNaNF"] = {file: "SMO_arctan_PLL_c.html",line:125,type:"fcn"};
+this.def["SMO_arctan_PLL.c:rt_InitInfAndNaN"] = {file: "SMO_arctan_PLL_c.html",line:137,type:"fcn"};
+this.def["SMO_arctan_PLL.c:rtIsInf"] = {file: "SMO_arctan_PLL_c.html",line:149,type:"fcn"};
+this.def["SMO_arctan_PLL.c:rtIsInfF"] = {file: "SMO_arctan_PLL_c.html",line:155,type:"fcn"};
+this.def["SMO_arctan_PLL.c:rtIsNaN"] = {file: "SMO_arctan_PLL_c.html",line:161,type:"fcn"};
+this.def["SMO_arctan_PLL.c:rtIsNaNF"] = {file: "SMO_arctan_PLL_c.html",line:183,type:"fcn"};
+this.def["SMO_arctan_PLL.c:rtGetInf"] = {file: "SMO_arctan_PLL_c.html",line:195,type:"fcn"};
+this.def["SMO_arctan_PLL.c:rtGetInfF"] = {file: "SMO_arctan_PLL_c.html",line:219,type:"fcn"};
+this.def["SMO_arctan_PLL.c:rtGetMinusInf"] = {file: "SMO_arctan_PLL_c.html",line:230,type:"fcn"};
+this.def["SMO_arctan_PLL.c:rtGetMinusInfF"] = {file: "SMO_arctan_PLL_c.html",line:254,type:"fcn"};
+this.def["rt_remd_snf"] = {file: "SMO_arctan_PLL_c.html",line:261,type:"fcn"};
+this.def["SMO_arctan_PLL_step"] = {file: "SMO_arctan_PLL_c.html",line:284,type:"fcn"};
+this.def["SMO_arctan_PLL_initialize"] = {file: "SMO_arctan_PLL_c.html",line:482,type:"fcn"};
+this.def["RT_MODEL"] = {file: "SMO_arctan_PLL_h.html",line:40,type:"type"};
+this.def["DW"] = {file: "SMO_arctan_PLL_h.html",line:50,type:"type"};
+this.def["int8_T"] = {file: "rtwtypes_h.html",line:49,type:"type"};
+this.def["uint8_T"] = {file: "rtwtypes_h.html",line:50,type:"type"};
+this.def["int16_T"] = {file: "rtwtypes_h.html",line:51,type:"type"};
+this.def["uint16_T"] = {file: "rtwtypes_h.html",line:52,type:"type"};
+this.def["int32_T"] = {file: "rtwtypes_h.html",line:53,type:"type"};
+this.def["uint32_T"] = {file: "rtwtypes_h.html",line:54,type:"type"};
+this.def["int64_T"] = {file: "rtwtypes_h.html",line:55,type:"type"};
+this.def["uint64_T"] = {file: "rtwtypes_h.html",line:56,type:"type"};
+this.def["real32_T"] = {file: "rtwtypes_h.html",line:57,type:"type"};
+this.def["real64_T"] = {file: "rtwtypes_h.html",line:58,type:"type"};
+this.def["real_T"] = {file: "rtwtypes_h.html",line:64,type:"type"};
+this.def["time_T"] = {file: "rtwtypes_h.html",line:65,type:"type"};
+this.def["boolean_T"] = {file: "rtwtypes_h.html",line:66,type:"type"};
+this.def["int_T"] = {file: "rtwtypes_h.html",line:67,type:"type"};
+this.def["uint_T"] = {file: "rtwtypes_h.html",line:68,type:"type"};
+this.def["ulong_T"] = {file: "rtwtypes_h.html",line:69,type:"type"};
+this.def["ulonglong_T"] = {file: "rtwtypes_h.html",line:70,type:"type"};
+this.def["char_T"] = {file: "rtwtypes_h.html",line:71,type:"type"};
+this.def["uchar_T"] = {file: "rtwtypes_h.html",line:72,type:"type"};
+this.def["byte_T"] = {file: "rtwtypes_h.html",line:73,type:"type"};
+this.def["pointer_T"] = {file: "rtwtypes_h.html",line:94,type:"type"};
+}
+CodeDefine.instance = new CodeDefine();
+var testHarnessInfo = {OwnerFileName: "", HarnessOwner: "", HarnessName: "", IsTestHarness: "0"};
+var relPathToBuildDir = "../ert_main.c";
+var fileSep = "\\";
+var isPC = true;
+function Html2SrcLink() {
+	this.html2SrcPath = new Array;
+	this.html2Root = new Array;
+	this.html2SrcPath["ert_main_c.html"] = "../ert_main.c";
+	this.html2Root["ert_main_c.html"] = "ert_main_c.html";
+	this.html2SrcPath["SMO_arctan_PLL_c.html"] = "../SMO_arctan_PLL.c";
+	this.html2Root["SMO_arctan_PLL_c.html"] = "SMO_arctan_PLL_c.html";
+	this.html2SrcPath["SMO_arctan_PLL_h.html"] = "../SMO_arctan_PLL.h";
+	this.html2Root["SMO_arctan_PLL_h.html"] = "SMO_arctan_PLL_h.html";
+	this.html2SrcPath["rtwtypes_h.html"] = "../rtwtypes.h";
+	this.html2Root["rtwtypes_h.html"] = "rtwtypes_h.html";
+	this.getLink2Src = function (htmlFileName) {
+		 if (this.html2SrcPath[htmlFileName])
+			 return this.html2SrcPath[htmlFileName];
+		 else
+			 return null;
+	}
+	this.getLinkFromRoot = function (htmlFileName) {
+		 if (this.html2Root[htmlFileName])
+			 return this.html2Root[htmlFileName];
+		 else
+			 return null;
+	}
+}
+Html2SrcLink.instance = new Html2SrcLink();
+var fileList = [
+"ert_main_c.html","SMO_arctan_PLL_c.html","SMO_arctan_PLL_h.html","rtwtypes_h.html"];

+ 266 - 0
Simulink/SMO_arctan_PLL_ert_rtw/html/ert_main_c.html

@@ -0,0 +1,266 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script type="text/javascript" src="./js/coder_app.js"></script>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<script type="text/javascript" src="./rtwreport_utils.js"></script>
+<script type="text/javascript" src="./rtwannotate.js"></script>
+<link rel="stylesheet" type="text/css" href="./css/coder_app.css"/>
+</head>
+<body onload="srcFileOnload();">
+<pre id="code">
+<table class="code" id="codeTbl">
+<tr name="1" id="1">
+<td><a id="l1" class='ln'>1</a></td><td><span class="ct">/*</span></td></tr>
+<tr name="2" id="2">
+<td><a id="l2" class='ln'>2</a></td><td><span class="ct"> * File: ert_main.c</span></td></tr>
+<tr name="3" id="3">
+<td><a id="l3" class='ln'>3</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="4" id="4">
+<td><a id="l4" class='ln'>4</a></td><td><span class="ct"> * Code generated for Simulink model 'SMO_arctan_PLL'.</span></td></tr>
+<tr name="5" id="5">
+<td><a id="l5" class='ln'>5</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="6" id="6">
+<td><a id="l6" class='ln'>6</a></td><td><span class="ct"> * Model version                  : 1.812</span></td></tr>
+<tr name="7" id="7">
+<td><a id="l7" class='ln'>7</a></td><td><span class="ct"> * Simulink Coder version         : 9.4 (R2020b) 29-Jul-2020</span></td></tr>
+<tr name="8" id="8">
+<td><a id="l8" class='ln'>8</a></td><td><span class="ct"> * C/C++ source code generated on : Tue Apr 11 20:18:35 2023</span></td></tr>
+<tr name="9" id="9">
+<td><a id="l9" class='ln'>9</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="10" id="10">
+<td><a id="l10" class='ln'>10</a></td><td><span class="ct"> * Target selection: ert.tlc</span></td></tr>
+<tr name="11" id="11">
+<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Embedded hardware selection: ARM Compatible-&gt;ARM Cortex-M</span></td></tr>
+<tr name="12" id="12">
+<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * Code generation objectives:</span></td></tr>
+<tr name="13" id="13">
+<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> *    1. Execution efficiency</span></td></tr>
+<tr name="14" id="14">
+<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> *    2. RAM efficiency</span></td></tr>
+<tr name="15" id="15">
+<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
+<tr name="16" id="16">
+<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="17" id="17">
+<td><a id="l17" class='ln'>17</a></td><td></td></tr>
+<tr name="18" id="18">
+<td><a id="l18" class='ln'>18</a></td><td><span class="pp">#include &lt;stddef.h&gt;</span></td></tr>
+<tr name="19" id="19">
+<td><a id="l19" class='ln'>19</a></td><td><span class="pp">#include &lt;stdio.h&gt;</span>              <span class="ct">/* This ert_main.c example uses printf/fflush */</span></td></tr>
+<tr name="20" id="20">
+<td><a id="l20" class='ln'>20</a></td><td><span class="pp">#include "SMO_arctan_PLL.h"</span>            <span class="ct">/* Model's header file */</span></td></tr>
+<tr name="21" id="21">
+<td><a id="l21" class='ln'>21</a></td><td><span class="pp">#include "rtwtypes.h"</span></td></tr>
+<tr name="22" id="22">
+<td><a id="l22" class='ln'>22</a></td><td></td></tr>
+<tr name="23" id="23">
+<td><a id="l23" class='ln'>23</a></td><td><span class="kw">static</span> <a id="23c8" class="tk">RT_MODEL</a> <a id="23c17" class="tk">rtM_</a>;</td></tr>
+<tr name="24" id="24">
+<td><a id="l24" class='ln'>24</a></td><td><span class="kw">static</span> <a id="24c8" class="tk">RT_MODEL</a> <a id="24c17" class="tk">*</a><span class="kw">const</span> <a id="24c24" class="tk">rtMPtr</a> = <a id="24c33" class="tk">&amp;</a><a id="24c34" class="tk">rtM_</a>; <span class="ct">/* Real-time model */</span></td></tr>
+<tr name="25" id="25">
+<td><a id="l25" class='ln'>25</a></td><td><span class="kw">static</span> <a id="25c8" class="tk">DW</a> <a id="25c11" class="tk">rtDW</a>;                        <span class="ct">/* Observable states */</span></td></tr>
+<tr name="26" id="26">
+<td><a id="l26" class='ln'>26</a></td><td></td></tr>
+<tr name="27" id="27">
+<td><a id="l27" class='ln'>27</a></td><td><span class="ct">/* '&lt;Root&gt;/Ialfa,beta' */</span></td></tr>
+<tr name="28" id="28">
+<td><a id="l28" class='ln'>28</a></td><td><span class="kw">static</span> <a id="28c8" class="tk">real_T</a> <a id="28c15" class="tk">rtU_Ialfabeta</a>[2];</td></tr>
+<tr name="29" id="29">
+<td><a id="l29" class='ln'>29</a></td><td></td></tr>
+<tr name="30" id="30">
+<td><a id="l30" class='ln'>30</a></td><td><span class="ct">/* '&lt;Root&gt;/Ualfa,beta' */</span></td></tr>
+<tr name="31" id="31">
+<td><a id="l31" class='ln'>31</a></td><td><span class="kw">static</span> <a id="31c8" class="tk">real_T</a> <a id="31c15" class="tk">rtU_Ualfabeta</a>[2];</td></tr>
+<tr name="32" id="32">
+<td><a id="l32" class='ln'>32</a></td><td></td></tr>
+<tr name="33" id="33">
+<td><a id="l33" class='ln'>33</a></td><td><span class="ct">/* '&lt;Root&gt;/theta' */</span></td></tr>
+<tr name="34" id="34">
+<td><a id="l34" class='ln'>34</a></td><td><span class="kw">static</span> <a id="34c8" class="tk">real_T</a> <a id="34c15" class="tk">rtY_theta</a>;</td></tr>
+<tr name="35" id="35">
+<td><a id="l35" class='ln'>35</a></td><td></td></tr>
+<tr name="36" id="36">
+<td><a id="l36" class='ln'>36</a></td><td><span class="ct">/* '&lt;Root&gt;/we' */</span></td></tr>
+<tr name="37" id="37">
+<td><a id="l37" class='ln'>37</a></td><td><span class="kw">static</span> <a id="37c8" class="tk">real_T</a> <a id="37c15" class="tk">rtY_we</a>;</td></tr>
+<tr name="38" id="38">
+<td><a id="l38" class='ln'>38</a></td><td></td></tr>
+<tr name="39" id="39">
+<td><a id="l39" class='ln'>39</a></td><td><span class="ct">/*</span></td></tr>
+<tr name="40" id="40">
+<td><a id="l40" class='ln'>40</a></td><td><span class="ct"> * Associating rt_OneStep with a real-time clock or interrupt service routine</span></td></tr>
+<tr name="41" id="41">
+<td><a id="l41" class='ln'>41</a></td><td><span class="ct"> * is what makes the generated code "real-time".  The function rt_OneStep is</span></td></tr>
+<tr name="42" id="42">
+<td><a id="l42" class='ln'>42</a></td><td><span class="ct"> * always associated with the base rate of the model.  Subrates are managed</span></td></tr>
+<tr name="43" id="43">
+<td><a id="l43" class='ln'>43</a></td><td><span class="ct"> * by the base rate from inside the generated code.  Enabling/disabling</span></td></tr>
+<tr name="44" id="44">
+<td><a id="l44" class='ln'>44</a></td><td><span class="ct"> * interrupts and floating point context switches are target specific.  This</span></td></tr>
+<tr name="45" id="45">
+<td><a id="l45" class='ln'>45</a></td><td><span class="ct"> * example code indicates where these should take place relative to executing</span></td></tr>
+<tr name="46" id="46">
+<td><a id="l46" class='ln'>46</a></td><td><span class="ct"> * the generated code step function.  Overrun behavior should be tailored to</span></td></tr>
+<tr name="47" id="47">
+<td><a id="l47" class='ln'>47</a></td><td><span class="ct"> * your application needs.  This example simply sets an error status in the</span></td></tr>
+<tr name="48" id="48">
+<td><a id="l48" class='ln'>48</a></td><td><span class="ct"> * real-time model and returns from rt_OneStep.</span></td></tr>
+<tr name="49" id="49">
+<td><a id="l49" class='ln'>49</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="50" id="50">
+<td><a id="l50" class='ln'>50</a></td><td><span class="kw">void</span> <a id="50c6" class="tk">rt_OneStep</a>(<a id="50c17" class="tk">RT_MODEL</a> <a id="50c26" class="tk">*</a><span class="kw">const</span> <a id="50c33" class="tk">rtM</a>);</td></tr>
+<tr name="51" id="51">
+<td><a id="l51" class='ln'>51</a></td><td><span class="kw">void</span> <a id="51c6" class="tk">rt_OneStep</a>(<a id="51c17" class="tk">RT_MODEL</a> <a id="51c26" class="tk">*</a><span class="kw">const</span> <a id="51c33" class="tk">rtM</a>)</td></tr>
+<tr name="52" id="52">
+<td><a id="l52" class='ln'>52</a></td><td><span class="br">{</span></td></tr>
+<tr name="53" id="53">
+<td><a id="l53" class='ln'>53</a></td><td>  <span class="kw">static</span> <a id="53c10" class="tk">boolean_T</a> <a id="53c20" class="tk">OverrunFlag</a> = false;</td></tr>
+<tr name="54" id="54">
+<td><a id="l54" class='ln'>54</a></td><td></td></tr>
+<tr name="55" id="55">
+<td><a id="l55" class='ln'>55</a></td><td>  <span class="ct">/* Disable interrupts here */</span></td></tr>
+<tr name="56" id="56">
+<td><a id="l56" class='ln'>56</a></td><td></td></tr>
+<tr name="57" id="57">
+<td><a id="l57" class='ln'>57</a></td><td>  <span class="ct">/* Check for overrun */</span></td></tr>
+<tr name="58" id="58">
+<td><a id="l58" class='ln'>58</a></td><td>  <span class="kw">if</span> (<a id="58c7" class="tk">OverrunFlag</a>) <span class="br">{</span></td></tr>
+<tr name="59" id="59">
+<td><a id="l59" class='ln'>59</a></td><td>    <a id="59c5" class="tk">rtmSetErrorStatus</a>(<a id="59c23" class="tk">rtM</a>, "Overrun");</td></tr>
+<tr name="60" id="60">
+<td><a id="l60" class='ln'>60</a></td><td>    <span class="kw">return</span>;</td></tr>
+<tr name="61" id="61">
+<td><a id="l61" class='ln'>61</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="62" id="62">
+<td><a id="l62" class='ln'>62</a></td><td></td></tr>
+<tr name="63" id="63">
+<td><a id="l63" class='ln'>63</a></td><td>  <a id="63c3" class="tk">OverrunFlag</a> = true;</td></tr>
+<tr name="64" id="64">
+<td><a id="l64" class='ln'>64</a></td><td></td></tr>
+<tr name="65" id="65">
+<td><a id="l65" class='ln'>65</a></td><td>  <span class="ct">/* Save FPU context here (if necessary) */</span></td></tr>
+<tr name="66" id="66">
+<td><a id="l66" class='ln'>66</a></td><td>  <span class="ct">/* Re-enable timer or interrupt here */</span></td></tr>
+<tr name="67" id="67">
+<td><a id="l67" class='ln'>67</a></td><td>  <span class="ct">/* Set model inputs here */</span></td></tr>
+<tr name="68" id="68">
+<td><a id="l68" class='ln'>68</a></td><td></td></tr>
+<tr name="69" id="69">
+<td><a id="l69" class='ln'>69</a></td><td>  <span class="ct">/* Step the model */</span></td></tr>
+<tr name="70" id="70">
+<td><a id="l70" class='ln'>70</a></td><td>  <a id="70c3" class="tk">SMO_arctan_PLL_step</a>(<a id="70c23" class="tk">rtM</a>, <a id="70c28" class="tk">rtU_Ialfabeta</a>, <a id="70c43" class="tk">rtU_Ualfabeta</a>, <a id="70c58" class="tk">&amp;</a><a id="70c59" class="tk">rtY_theta</a>, <a id="70c70" class="tk">&amp;</a><a id="70c71" class="tk">rtY_we</a>);</td></tr>
+<tr name="71" id="71">
+<td><a id="l71" class='ln'>71</a></td><td></td></tr>
+<tr name="72" id="72">
+<td><a id="l72" class='ln'>72</a></td><td>  <span class="ct">/* Get model outputs here */</span></td></tr>
+<tr name="73" id="73">
+<td><a id="l73" class='ln'>73</a></td><td></td></tr>
+<tr name="74" id="74">
+<td><a id="l74" class='ln'>74</a></td><td>  <span class="ct">/* Indicate task complete */</span></td></tr>
+<tr name="75" id="75">
+<td><a id="l75" class='ln'>75</a></td><td>  <a id="75c3" class="tk">OverrunFlag</a> = false;</td></tr>
+<tr name="76" id="76">
+<td><a id="l76" class='ln'>76</a></td><td></td></tr>
+<tr name="77" id="77">
+<td><a id="l77" class='ln'>77</a></td><td>  <span class="ct">/* Disable interrupts here */</span></td></tr>
+<tr name="78" id="78">
+<td><a id="l78" class='ln'>78</a></td><td>  <span class="ct">/* Restore FPU context here (if necessary) */</span></td></tr>
+<tr name="79" id="79">
+<td><a id="l79" class='ln'>79</a></td><td>  <span class="ct">/* Enable interrupts here */</span></td></tr>
+<tr name="80" id="80">
+<td><a id="l80" class='ln'>80</a></td><td><span class="br">}</span></td></tr>
+<tr name="81" id="81">
+<td><a id="l81" class='ln'>81</a></td><td></td></tr>
+<tr name="82" id="82">
+<td><a id="l82" class='ln'>82</a></td><td><span class="ct">/*</span></td></tr>
+<tr name="83" id="83">
+<td><a id="l83" class='ln'>83</a></td><td><span class="ct"> * The example "main" function illustrates what is required by your</span></td></tr>
+<tr name="84" id="84">
+<td><a id="l84" class='ln'>84</a></td><td><span class="ct"> * application code to initialize, execute, and terminate the generated code.</span></td></tr>
+<tr name="85" id="85">
+<td><a id="l85" class='ln'>85</a></td><td><span class="ct"> * Attaching rt_OneStep to a real-time clock is target specific.  This example</span></td></tr>
+<tr name="86" id="86">
+<td><a id="l86" class='ln'>86</a></td><td><span class="ct"> * illustrates how you do this relative to initializing the model.</span></td></tr>
+<tr name="87" id="87">
+<td><a id="l87" class='ln'>87</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="88" id="88">
+<td><a id="l88" class='ln'>88</a></td><td><a id="88c1" class="tk">int_T</a> <a id="88c7" class="tk">main</a>(<a id="88c12" class="tk">int_T</a> <a id="88c18" class="tk">argc</a>, <span class="kw">const</span> <span class="kw">char</span> <a id="88c35" class="tk">*</a><a id="88c36" class="tk">argv</a>[])</td></tr>
+<tr name="89" id="89">
+<td><a id="l89" class='ln'>89</a></td><td><span class="br">{</span></td></tr>
+<tr name="90" id="90">
+<td><a id="l90" class='ln'>90</a></td><td>  <a id="90c3" class="tk">RT_MODEL</a> <a id="90c12" class="tk">*</a><span class="kw">const</span> <a id="90c19" class="tk">rtM</a> = <a id="90c25" class="tk">rtMPtr</a>;</td></tr>
+<tr name="91" id="91">
+<td><a id="l91" class='ln'>91</a></td><td></td></tr>
+<tr name="92" id="92">
+<td><a id="l92" class='ln'>92</a></td><td>  <span class="ct">/* Unused arguments */</span></td></tr>
+<tr name="93" id="93">
+<td><a id="l93" class='ln'>93</a></td><td>  (<span class="kw">void</span>)(<a id="93c10" class="tk">argc</a>);</td></tr>
+<tr name="94" id="94">
+<td><a id="l94" class='ln'>94</a></td><td>  (<span class="kw">void</span>)(<a id="94c10" class="tk">argv</a>);</td></tr>
+<tr name="95" id="95">
+<td><a id="l95" class='ln'>95</a></td><td></td></tr>
+<tr name="96" id="96">
+<td><a id="l96" class='ln'>96</a></td><td>  <span class="ct">/* Pack model data into RTM */</span></td></tr>
+<tr name="97" id="97">
+<td><a id="l97" class='ln'>97</a></td><td>  <a id="97c3" class="tk">rtM</a>-&gt;<a id="97c8" class="tk">dwork</a> = <a id="97c16" class="tk">&amp;</a><a id="97c17" class="tk">rtDW</a>;</td></tr>
+<tr name="98" id="98">
+<td><a id="l98" class='ln'>98</a></td><td></td></tr>
+<tr name="99" id="99">
+<td><a id="l99" class='ln'>99</a></td><td>  <span class="ct">/* Initialize model */</span></td></tr>
+<tr name="100" id="100">
+<td><a id="l100" class='ln'>100</a></td><td>  <a id="100c3" class="tk">SMO_arctan_PLL_initialize</a>(<a id="100c29" class="tk">rtM</a>);</td></tr>
+<tr name="101" id="101">
+<td><a id="l101" class='ln'>101</a></td><td></td></tr>
+<tr name="102" id="102">
+<td><a id="l102" class='ln'>102</a></td><td>  <span class="ct">/* Attach rt_OneStep to a timer or interrupt service routine with</span></td></tr>
+<tr name="103" id="103">
+<td><a id="l103" class='ln'>103</a></td><td><span class="ct">   * period 6.0E-5 seconds (the model's base sample time) here.  The</span></td></tr>
+<tr name="104" id="104">
+<td><a id="l104" class='ln'>104</a></td><td><span class="ct">   * call syntax for rt_OneStep is</span></td></tr>
+<tr name="105" id="105">
+<td><a id="l105" class='ln'>105</a></td><td><span class="ct">   *</span></td></tr>
+<tr name="106" id="106">
+<td><a id="l106" class='ln'>106</a></td><td><span class="ct">   *  rt_OneStep(rtM);</span></td></tr>
+<tr name="107" id="107">
+<td><a id="l107" class='ln'>107</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="108" id="108">
+<td><a id="l108" class='ln'>108</a></td><td>  <a id="108c3" class="tk">printf</a>("Warning: The simulation will run forever. "</td></tr>
+<tr name="109" id="109">
+<td><a id="l109" class='ln'>109</a></td><td>         "Generated ERT main won't simulate model step behavior. "</td></tr>
+<tr name="110" id="110">
+<td><a id="l110" class='ln'>110</a></td><td>         "To change this behavior select the 'MAT-file logging' option.\n");</td></tr>
+<tr name="111" id="111">
+<td><a id="l111" class='ln'>111</a></td><td>  <a id="111c3" class="tk">fflush</a>((<a id="111c11" class="tk">NULL</a>));</td></tr>
+<tr name="112" id="112">
+<td><a id="l112" class='ln'>112</a></td><td>  <span class="kw">while</span> (<a id="112c10" class="tk">rtmGetErrorStatus</a>(<a id="112c28" class="tk">rtM</a>) <a id="112c33" class="tk">==</a> (<a id="112c37" class="tk">NULL</a>)) <span class="br">{</span></td></tr>
+<tr name="113" id="113">
+<td><a id="l113" class='ln'>113</a></td><td>    <span class="ct">/*  Perform other application tasks here */</span></td></tr>
+<tr name="114" id="114">
+<td><a id="l114" class='ln'>114</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="115" id="115">
+<td><a id="l115" class='ln'>115</a></td><td></td></tr>
+<tr name="116" id="116">
+<td><a id="l116" class='ln'>116</a></td><td>  <span class="ct">/* Disable rt_OneStep() here */</span></td></tr>
+<tr name="117" id="117">
+<td><a id="l117" class='ln'>117</a></td><td>  <span class="kw">return</span> 0;</td></tr>
+<tr name="118" id="118">
+<td><a id="l118" class='ln'>118</a></td><td><span class="br">}</span></td></tr>
+<tr name="119" id="119">
+<td><a id="l119" class='ln'>119</a></td><td></td></tr>
+<tr name="120" id="120">
+<td><a id="l120" class='ln'>120</a></td><td><span class="ct">/*</span></td></tr>
+<tr name="121" id="121">
+<td><a id="l121" class='ln'>121</a></td><td><span class="ct"> * File trailer for generated code.</span></td></tr>
+<tr name="122" id="122">
+<td><a id="l122" class='ln'>122</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="123" id="123">
+<td><a id="l123" class='ln'>123</a></td><td><span class="ct"> * [EOF]</span></td></tr>
+<tr name="124" id="124">
+<td><a id="l124" class='ln'>124</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="125" id="125">
+<td><a id="l125" class='ln'>125</a></td><td></td></tr>
+</table>
+</pre>
+</body>
+</html>

BIN
Simulink/SMO_arctan_PLL_ert_rtw/html/hilite_warning.png


+ 33 - 0
Simulink/SMO_arctan_PLL_ert_rtw/html/inspect.html

@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <link rel="stylesheet" type="text/css" href="rtwreport.css" />    
+ <link rel="stylesheet" type="text/css" href="css/coder_app.css" />    
+ <style type="text/css">
+   div#popup_window {
+       position: relative;
+       background-color: ghostwhite;
+       border-radius: 0px;
+       -moz-box-shadow: none;
+       -webkit-box-shadow: none;
+       box-shadow: none;
+   }
+   div#popup_window a {
+       text-decoration: underline;
+       color: blue;
+   }
+   div#token_usage_nav {
+       border-bottom: none;
+   }
+ </style>
+</head>
+<body class="inspect_body">
+<table width="100%">
+  <col style="width: 95%;"><col style="width: 5%">
+  <tr><td><div id="popup_window"></div></td>
+    <td align="right"><div><a onclick="top.closeInspectWindow();" class="closeButton">x</a></div></td>
+  </tr>
+</table></body></html>
+
+<!-- LocalWords:  ghostwhite
+-->

+ 525 - 0
Simulink/SMO_arctan_PLL_ert_rtw/html/js/coder_app.js

@@ -0,0 +1,525 @@
+/* Copyright 2013-2018 The MathWorks, Inc. */
+function queryByClassName(className, elem) {
+    if (!elem) elem = document.body;
+    if (typeof elem.querySelectorAll === "function") {
+        return elem.querySelectorAll("."+className);
+    } else {
+        return elem.getElementsByClass(className);
+    }
+}
+
+function nav_token_usage_details(direction) {
+    var els = queryByClassName("token_usage_details_tabrow");
+    var selectedIdx = 0;
+    var selectedClassName = "selected";
+    for (selectedIdx; selectedIdx < els.length; selectedIdx++) {
+        if (els[selectedIdx].classList.contains(selectedClassName)) {
+            break;
+        }
+    }
+    var nextIdx = selectedIdx;
+    if (direction === -1 && selectedIdx > 0) {
+        nextIdx = selectedIdx-1;                
+    } else if (direction === 1 && selectedIdx < els.length - 1) {
+        nextIdx = selectedIdx + 1;
+    }   
+    if (nextIdx !== selectedIdx) {
+        els[selectedIdx].classList.remove(selectedClassName);
+        els[nextIdx].classList.add(selectedClassName);
+        els[nextIdx].scrollIntoView(alignWithTop=false);
+    }
+    return false;
+}
+
+function tabrowClicked(event) { 
+}
+
+function popupOnload() {
+    var els = queryByClassName("token_usage_details_tabrow");   
+    for (var i=0; i<els.length; i++) {
+        els[i].onclick= tabrowClicked;
+    }
+};
+
+function tokenOnRightclick(event) {
+    var filename = location.pathname.split(/\//);
+    filename = filename[filename.length-1];
+    top.inspectToken(filename, location.pathname, event);
+    top.hiliteClickedToken(event.currentTarget);
+    return false;
+}
+
+function tokenOnclick(event) {
+    tokenOnRightclick(event);
+    if (event.currentTarget.href.length !== 0 && event.currentTarget.href.protocol !== "matlab:") {
+        top.tokenLinkOnClick(event);
+        return true;
+    }
+    return false;
+};
+
+function tokenOnMouseOver(event) {    
+    var filename = location.pathname.split(/\//);
+    filename = filename[filename.length-1];
+    createPopup(filename, event);
+};
+function tokenOnMouseOut(event) {
+    destroyPopup(event.currentTarget);
+};
+
+function blkLinkOnClick(event) {
+    top.hiliteClickedToken(event.currentTarget);
+    return true;
+}
+function clearTokenLink(id) {    
+    var codeElement = document.getElementById(id);
+    var els = queryByClassName("tk", codeElement);
+    var elem; 
+    if (top.CodeDefine && top.CodeDefine.instance)  {
+        for (var i=0; i<els.length; i++) {
+            var re = new RegExp('active', 'g');
+            els[i].className = els[i].className.replace(re, '');
+            re = new RegExp('traceable_token', 'g');
+            els[i].className = els[i].className.replace(re, '');            
+        }
+    }
+}
+function updateTokenLink(id) {
+    var codeElement = document.getElementById(id);
+    var filename = location.pathname.split(/\//);
+    filename = filename[filename.length-1];  
+    var srcFilename;
+    if (top.RTW_TraceInfo) {
+        srcFilename = top.RTW_TraceInfo.toSrcFileName(filename);
+    }
+    var els = queryByClassName("tk", codeElement);
+    var elem; 
+    var hasTraceFlag = null;
+    if (top.TraceInfoFlag && top.TraceInfoFlag.instance)
+        hasTraceFlag =  top.TraceInfoFlag.instance.traceFlag;
+    else 
+        hasTraceFlag = false;
+    var defObj;
+    var traceObj;
+    var codeDef = (top.CodeDefine &&  top.CodeDefine.instance) ? top.CodeDefine.instance : null;
+    var aLink = top.document.createElement("a");
+    if (hasTraceFlag || (top.CodeDefine && top.CodeDefine.instance))  {
+        for (var i=0; i<els.length; i++) {
+            defObj = null;
+            if (codeDef) {
+                if (codeDef.def.hasOwnProperty(srcFilename + ":" + els[i].text)) {
+                    defObj = codeDef.def[srcFilename + ":" + els[i].text];
+                } else if (codeDef.def.hasOwnProperty(els[i].text)) {
+                    defObj = codeDef.def[els[i].text];
+                }
+            } 
+            traceObj = hasTraceFlag && hasTraceFlag[srcFilename+":"+els[i].id];
+            if (traceObj || defObj) {
+                els[i].onclick= tokenOnclick;
+                els[i].oncontextmenu= tokenOnRightclick;
+                els[i].onmouseover = tokenOnMouseOver;    
+                els[i].onmouseout = tokenOnMouseOut;
+                els[i].className += " active";
+                els[i].target = "rtwreport_document_frame";
+                if (traceObj && top.reportModel) {    
+                    if (top.testHarnessInfo && top.testHarnessInfo.IsTestHarness==="1") {
+                        els[i].href = "matlab:rtw.report.code2model('" + top.reportModel 
+                            + "','" + location.pathname + "','" + els[i].id 
+                            + "','" + top.testHarnessInfo.HarnessName 
+                            + "','" + top.testHarnessInfo.HarnessOwner
+                            + "','" + top.testHarnessInfo.OwnerFileName + "')";
+                    } else {
+                        els[i].href = "matlab:rtw.report.code2model(\'" + top.reportModel 
+                            + "\',\'" + location.pathname + "\',\'" + els[i].id + "')";
+                    }
+                } else {
+                    aLink.href = defObj.file;
+                    els[i].href = aLink.pathname + "#" + defObj.line;
+                }
+            }
+        }
+    }
+}
+// remove the code table; insert back
+function updateToken(codeElement) {
+    var filename = location.pathname.split(/\//);
+    filename = filename[filename.length-1];  
+    var srcFilename;
+    if (top.RTW_TraceInfo) {
+        srcFilename = top.RTW_TraceInfo.toSrcFileName(filename);
+    }
+    // update block path link in comments
+    els = queryByClassName("blk", codeElement);
+    var lineSid = null;
+    if (top.RTW_rtwnameSIDMap && top.RTW_rtwnameSIDMap.instance) {
+        for (var i=0; i<els.length; i++) {
+            lineSid = top.RTW_rtwnameSIDMap.instance.getSID(els[i].text);
+            if (lineSid) {
+                if (top.testHarnessInfo && top.testHarnessInfo.IsTestHarness==="1") {
+                    els[i].href = "matlab:coder.internal.code2model('" + lineSid.sid + "','" +
+                        top.testHarnessInfo.HarnessName+ "','" +
+                        top.testHarnessInfo.HarnessOwner+ "','" + 
+                        top.testHarnessInfo.OwnerFileName + "');";
+                } else {
+                    els[i].href = "matlab:coder.internal.code2model('" + lineSid.sid + "');";
+                }
+                els[i].id = "blkLink_" + i;
+                els[i].onclick = blkLinkOnClick;
+                els[i].className += " blk_active";
+            }
+        }
+    }   
+    // update lib block path link in comments
+    els = queryByClassName("libblk", codeElement);
+    var lineSid = null;    
+    for (var i=0; i<els.length; i++) {
+        lineSid = els[i].text;
+        if (lineSid) {
+            if (top.testHarnessInfo && top.testHarnessInfo.IsTestHarness==="1") {
+                els[i].href = "matlab:coder.internal.code2model('" + lineSid + "','" +
+                    top.testHarnessInfo.HarnessName+ "','" +
+                    top.testHarnessInfo.HarnessOwner+ "','" + 
+                    top.testHarnessInfo.OwnerFileName + "');";
+            } else {
+                els[i].href = "matlab:coder.internal.code2model('" + lineSid + "');";
+            }
+            els[i].id = "blkLink_" + i;
+            els[i].onclick = blkLinkOnClick;
+            els[i].className += " blk_active";
+        }
+    }
+    // update requirement link in comments
+    els = queryByClassName("req", codeElement);
+    var req_block;
+    if (top.RTW_rtwnameSIDMap && top.RTW_rtwnameSIDMap.instance) {
+        for (var i=0; i<els.length; i++) {
+            lineSid = top.RTW_rtwnameSIDMap.instance.getSID(els[i].getAttribute("blockpath"));
+            if (lineSid) {
+                req_block = lineSid.sid;
+            } else {
+                req_block = els[i].getAttribute("blockpath");
+            }
+            var req_id = els[i].getAttribute("req_id");
+            els[i].href = "matlab:rtw.report.code2req('" + req_block + "'," + req_id + ");";
+            els[i].id = "req_" + i;
+            els[i].onclick = top.reqOnClick;
+            els[i].className += " req_active";
+        }
+    }
+    
+    // add link to source file
+    if (top.Html2SrcLink && top.Html2SrcLink.instance) {
+        filename = top.rtwGetFileName(location.href);
+        var link2Src = top.Html2SrcLink.instance.getLink2Src(filename);
+        var link = document.createElement("h4");
+        link.innerHTML = "File: <a href=\"" + link2Src + 
+            "\" target = \"rtwreport_document_frame\" id=\"linkToText_plain\">" + 
+            top.rtwGetFileName(link2Src) + "</a>";
+        var bodyNode = document.body;
+        bodyNode.insertBefore(link, bodyNode.firstElementChild);
+    }
+    top.updateHyperlinks();
+    // update fileSelector frame
+    if (top.fileSelector) {
+        var o = top.fileSelector.document.getElementById('fileSelector');
+        if (o) {
+            o.value = filename;
+        }
+    }
+   //  add links to line numbers
+    var hasLineFlag = null;
+    if (top.TraceInfoLineFlag && top.TraceInfoLineFlag.instance) {
+        hasLineFlag =  true;
+    } else {
+        hasLineFlag = false;
+    }
+
+    if(hasLineFlag) {
+        var lines = queryByClassName("ln", codeElement);
+        var lineTraceFlag = top.TraceInfoLineFlag.instance.lineTraceFlag;
+        var lineNo = null;
+        for (var i=0; i<lines.length; i++) {
+            lineNo = lines[i].id.substring(1)
+            if(lineTraceFlag[srcFilename+":"+ lineNo]) {
+                lines[i].className += " active";
+                if (top.testHarnessInfo && top.testHarnessInfo.IsTestHarness==="1") {
+                    lines[i].href = "matlab:rtw.report.code2model('" + top.reportModel 
+                        + "','" + srcFilename
+                        + "','" + lineNo
+                        + "','" + top.testHarnessInfo.HarnessName 
+                        + "','" + top.testHarnessInfo.HarnessOwner
+                        + "','" + top.testHarnessInfo.OwnerFileName + "')";
+                } else {
+                    lines[i].href = "matlab:rtw.report.code2model('" + top.reportModel 
+                        + "','" + srcFilename + "','" + lineNo + "')";
+                }
+            }
+        }
+    }
+}
+function getInsertFunction(element) {
+    var parentNode = element.parentNode;
+    var nextSibling = element.nextSibling;
+    parentNode.removeChild(element);
+    var spinner = document.createElement("img");
+    spinner.src = "spinner.gif";
+    parentNode.appendChild(spinner);
+    return function() {
+        if (spinner) {
+            parentNode.removeChild(spinner);
+        }
+        if (nextSibling) {
+            parentNode.insertBefore(element, nextSibling);
+        } else {
+            parentNode.appendChild(element);
+        }
+    };
+}
+
+var hovered_line = '';
+var lineOnMouseIn = function (id) {
+    if (hovered_line !== id) {
+        hovered_line = id;      
+        updateTokenLink(id);            
+    }
+}
+var lineOnMouseOut = function (id) {    
+    clearTokenLink(id);
+    hovered_line = '';
+}
+function registerDelayedOnMouseOver(elm, onMouseIn, onMouseOut) {
+    var delay = function (elem, onMouseIn, onMouseOut) {                
+        var timeout = null;
+        elem.onmouseover = function(e) {                                
+            timeout = setTimeout(onMouseIn, 200, e.currentTarget.id);
+        };
+        elem.onmouseout = function(e) {                 
+            clearTimeout(timeout);
+            if (hovered_line !== '') {
+                onMouseOut(e.currentTarget.id);
+            }
+        }               
+    };
+    delay(elm, onMouseIn, onMouseOut);
+}
+
+// Returns true if obj has all the fields in criteria and obj's values (as strings)
+// are present in criteria's values
+function matchCriteria(obj, criteria) {
+    for (var prop in criteria) {
+        if (!obj.hasOwnProperty(prop) || String(obj[prop]).toUpperCase().indexOf(String(criteria[prop]).toUpperCase()) === -1) {
+            return false;
+        }
+    }
+    return true;
+}
+
+function findParent(node, criteria) {
+    if (!node) {
+        return null;
+    }
+    else if (matchCriteria(node, criteria)) {
+        return node;
+    }
+    else {
+        return findParent(node.parentNode, criteria);
+    }
+}
+
+function getLastTableCellContents(trNode) {
+    for (var i = trNode.childNodes.length - 1; i >= 0; --i) {
+        var childNode = trNode.childNodes[i];
+        if (childNode.tagName.toUpperCase() === "TD") {
+            return childNode.childNodes;
+        }
+    }
+    return null;
+}
+
+// see g1225075
+function fixBoxStyleFnHeaderLineWidths() {
+    // Match strings like "/**********/" which is the top line of
+    // a box-style function comment header
+    var reBoxHeader = /\/\*+\//;
+
+    // Match strings like "'     */" which is the contents of the text
+    // element originally generated in the report to pad the width of
+    // the line.
+    var rePadding = /'\s*\*\//;
+
+    // All block identifier elements in the report page
+    blkLineElts = queryByClassName("blk");
+    for (var i = 0; i < blkLineElts.length; ++i) {
+        var origPadding = blkLineElts[i].nextSibling;
+        if (origPadding.textContent.match(rePadding)) {
+            var spanElt = findParent(blkLineElts[i], { tagName: "span", className: "ct" });
+            if (!spanElt) {
+                continue;
+            }
+
+            // The numbered line in the report containing block identifier "i"
+            var tableRowElt = findParent(spanElt, { tagName: "tr" });
+            if (!tableRowElt) {
+                continue;
+            }
+
+            // Loop backward through table rows (i.e., report lines) looking
+            // for the "/***************/" start of the header. When found save
+            // its pixel width. Not actually the width of the <tr> itself but
+            // the span inside its last <td>. This is will determine the real
+            // padding that is needed for proper alignment regardless of font
+            // or CKJ characters.
+            var targetWidth = 0;
+            var sanity = Number.MAX_VALUE;
+            var node = tableRowElt.previousSibling;
+            while (node && (sanity-- > 0)) {
+                var lastCellContents = getLastTableCellContents(node);
+                if (lastCellContents) {
+                    if (lastCellContents.length === 0) {
+                        break;
+                    }
+                    if (lastCellContents[0].textContent.match(reBoxHeader)) {
+                        targetWidth = lastCellContents[0].offsetWidth;
+                        break;
+                    }
+                }
+                node = node.previousSibling;
+            }
+
+            // If applying a new padding (i.e., targetWidth > 0), replace
+            // the original padding "'   */' (a single text element) with
+            // two text elements and a span in between. The span will be the
+            // new pixel-accurate padding.
+            if (targetWidth > 0) {
+                var singleQuoteNode = document.createTextNode("'");
+                var spacerNode = document.createElement('span');
+                origPadding.textContent = "*/";
+                origPadding.parentNode.insertBefore(spacerNode, origPadding);
+                origPadding.parentNode.insertBefore(singleQuoteNode, spacerNode);
+
+                var padWidth = targetWidth - spanElt.offsetWidth;
+                spacerNode.style.display = 'inline-block';
+                spacerNode.style.width = String(padWidth) + "px";
+                spacerNode.style.height = '1em'; // cursor won't work w/o some height
+                spacerNode.style.cursor = 'text';
+            }
+        }
+    }
+}
+
+// the onload function for source file
+function srcFileOnload() {
+    var codeElement = document.getElementById("codeTbl");
+    var insertFunction = getInsertFunction(codeElement);                
+    try {
+        var els = codeElement.getElementsByTagName("tr");
+        for (var i = 0; i < els.length; i++) {                          
+            registerDelayedOnMouseOver(els[i], lineOnMouseIn, lineOnMouseOut);
+        }
+        updateToken(codeElement);
+    } catch (err) {};
+    insertFunction();
+    // add code to model hyperlinks for all tokens
+    var filename = location.pathname.split(/\//);
+    filename = filename[filename.length-1];
+    // highlight the filename in the TOC frame
+    if (top.rtwreport_contents_frame && top.hiliteByFileName(top.rtwreport_document_frame.document.location.href)) {
+        // remove the highlights in the TOC frame if filename is hilite successfully
+        top.removeHiliteTOC(top.rtwreport_contents_frame);
+    }
+
+    // annotate code with code coverage data
+    if (typeof rtwannotate === 'function') {
+        rtwannotate(filename.replace(/.html$/,"_cov.xml"));
+    }
+
+    fixBoxStyleFnHeaderLineWidths();
+
+    // highlight token and row 
+    if (top.RTW_TraceInfo.instance && top.RTW_TraceArgs.instance) {
+        var i;
+        // find the highlight file name
+        var fileIdx = top.RTW_TraceArgs.instance.getFileIdx(filename);
+        var ids=[], rows=[];
+        if (typeof fileIdx !== "undefined") {
+            ids = top.RTW_TraceArgs.instance.getIDs(fileIdx);
+            rows = top.RTW_TraceArgs.instance.getRows(fileIdx);
+            // highlight rows in file
+            for (i=0; i<rows.length;i++) {
+                elem = top.rtwreport_document_frame.document.getElementById(rows[i]);
+                if (elem) elem.className += " hilite";
+            }
+            // highlight tokens in file
+            if (top.GlobalConfig.hiliteToken) {
+                for (i=0; i<ids.length;i++) {
+                    elem = top.rtwreport_document_frame.document.getElementById(ids[i]);
+                    if (elem) elem.className += " hilite";              
+                }
+            }
+        } // end of if current file has highlighted lines
+
+        // if the loaded file is not currFile, call setInitLocation
+        var currFileIdx = top.RTW_TraceInfo.instance.getCurrFileIdx();
+        var myFileIdx = top.RTW_TraceInfo.instance.getFileIdx(filename);
+        // update navigation status if the file is loaded first time
+        if (currFileIdx !== myFileIdx && document.location.hash === "") {
+            if (rows.length > 0) 
+                top.RTW_TraceInfo.instance.setInitLocation(filename,rows[0]);
+            else {
+                top.toggleNavSideBar("off");                            
+                return;
+            }
+        }
+
+        // display navigation side bar
+        if (top.rtwreport_nav_frame) top.rtwreport_nav_frame.location.reload();
+        if (rows.length>0) {
+            top.toggleNavSideBar("on");
+            top.toggleNavToolBar("on");
+        } else {
+            top.toggleNavSideBar("off");
+        }
+    }
+    top.scrollToLineBasedOnHash(document.location.hash);
+    function getHash() {
+        var loc;
+        var aHash="";
+        var topDocObj = top.window.document;    
+        // get the hash value from location.
+        loc = topDocObj.location;
+        loc = loc.search || loc.hash;
+        aHash = loc.substring(1);
+        aHash = decodeURI(aHash);
+        return aHash;   
+    }
+}
+
+function createPopup(filename, evt) {
+    var anchorObj = evt.currentTarget;
+    if (anchorObj.children.length > 0)
+        return;
+    var filename = location.pathname.split(/\//);
+    filename = filename[filename.length-1];
+    var windowObj = top.getInspectWindow();
+    var propObj = top.getInspectData(filename, anchorObj);
+    var navObj = top.getInspectLink(filename, location.pathname, anchorObj);
+    if (propObj) { 
+        windowObj.appendChild(propObj);
+        windowObj.style.left = "0px";
+        if (anchorObj.parentElement.nodeName === "TD" && 
+            anchorObj.parentElement.parentElement.nodeName === "TR") {
+            anchorObj.parentElement.parentElement.lastChild.insertBefore(windowObj,
+                                                                         anchorObj.parentElement.parentElement.lastChild.lastChild.nextSibling);
+            var left = Math.min(evt.clientX , window.innerWidth - windowObj.scrollWidth - 30);
+            left = Math.max(0, left);
+            windowObj.style.left = "" + left + "px";
+        }
+    }
+};
+
+function destroyPopup(anchorObj) {
+    var popWindow = document.getElementById("popup_window");
+    if (popWindow) {
+        popWindow.parentElement.removeChild(popWindow);
+    }
+};

+ 14 - 0
Simulink/SMO_arctan_PLL_ert_rtw/html/nav.html

@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+<head>
+</head>
+    <style>
+        * {
+            margin: 0;
+            padding: 0
+        }
+    </style>
+    <body onresize="top.drawNavSideBar();" onload="top.drawNavSideBar();top.load_metrics();">
+      <canvas id="canvas" title="navigate to highlighted lines"></canvas>
+    </body>
+</html>

+ 69 - 0
Simulink/SMO_arctan_PLL_ert_rtw/html/navToolbar.html

@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <link rel="stylesheet" type="text/css" href="rtwreport.css" />
+    <link rel="stylesheet" type="text/css" href="css/coder_app.css" />
+  <script>
+    function NavOnloadFcn() {
+        var node = document.getElementById("rtwIdTraceBlock");
+        var td1 = document.getElementById("td1");
+        if (node && top.RTW_TraceArgs.instance) {
+            var sid = top.RTW_TraceArgs.instance.getBlock();
+            if (sid) {
+                if (top.RTW_TraceArgs.instance.getNumBlocks() === 1) {
+                    var block = sid;
+                    if (top.RTW_rtwnameSIDMap && top.RTW_rtwnameSIDMap.instance && top.RTW_rtwnameSIDMap.instance.getRtwname(sid)) {
+                        block = top.RTW_rtwnameSIDMap.instance.getRtwname(sid).rtwname;
+                    }
+                    if (block) {
+                        node.textContent = "'" + block + "'";
+                    }
+                    td1.className = "";
+                } else {
+                    td1.innerHTML = "<b>Highlight code for selected blocks:</b>";
+                }
+            } else {
+                td1.className = "hidden";
+            }
+         }
+        if (top.RTW_TraceInfo && top.RTW_TraceInfo.instance) {
+           top.RTW_TraceInfo.instance.updateNavState();
+        }        
+   }
+   function resize_text() {
+        var node = document.getElementById("rtwIdTraceBlock");        
+        if (node) {
+            node.style.maxWidth = "" + (window.innerWidth - 450) + "px";
+        }
+        top.resize_NavToolbar_frame();
+   }
+  </script>
+  </head>
+  <body class="nav_toolbar" onload="NavOnloadFcn(); resize_text();" onresize="resize_text();">
+    <table class="nav_table" id="rtwIdTracePanel">
+      <col style="width: 90%;">
+      <col style="width: 150px;">
+      <col style="width: 150px;">
+      <tr>
+        <td title="Navigation control for highlighted code" id="td1">
+          <b>Highlight code for block:</b>
+          <div id="rtwIdTraceBlock" style="overflow: hidden;text-overflow:ellipsis;white-space: nowrap"></div>
+        </td>
+        <td style="white-space:nowrap">
+	  <INPUT class="button" TYPE="button" VALUE="<<" style="width: 45px; height: 2em" ID="rtwIdButtonFirst" ONCLICK="if (top.rtwGoFirst) top.rtwGoFirst();" title="goto the first highlighted line" />
+	  <INPUT class="button" TYPE="button" VALUE="<" style="width: 45px; height: 2em" ID="rtwIdButtonPrev" ONCLICK="if (top.rtwGoPrev) top.rtwGoPrev();" disabled="disabled" title="goto the previous highlighted line"/>        
+	  <span id="rtwIdTraceNumber"></span>
+	  <INPUT class="button" TYPE="button" VALUE=">" style="width: 45px; height: 2em" ID="rtwIdButtonNext" ONCLICK="if (top.rtwGoNext) top.rtwGoNext();" disabled="disabled" title="goto the next highlighted line"/>
+	  <INPUT class="button" TYPE="button" VALUE=">>" style="width: 45px; height: 2em" ID="rtwIdButtonLast" ONCLICK="if (top.rtwGoLast) top.rtwGoLast();" title="goto the last highlighted line" />
+        </td>
+        <td>
+          <INPUT class="button" TYPE="button" VALUE="Remove Highlights" style="width: 150px; height: 2em" ID="rtwIdButtonRemove" ONCLICK="if (top.removeInCodeTraceHighlight()) top.removeInCodeTraceHighlight()" title="remove highlighted lines"/>
+        </td>
+      </tr>
+    </table>
+  </body>
+</html>
+</table>
+
+<!-- LocalWords:  Onload px ONCLICK
+-->

+ 2091 - 0
Simulink/SMO_arctan_PLL_ert_rtw/html/rtwhilite.js

@@ -0,0 +1,2091 @@
+// Copyright 2006-2019 The MathWorks, Inc.
+
+// Class RTW_Hash ------------------------------------------------------------
+// Internal web browser doesn't change window.location.hash if the link points
+// to the same page.
+// RTW_Hash remembers the hash value when the page is loaded in the first time 
+// or a link is clicked.
+// removeHiliteByHash cleans the high lighted elements according to the stored 
+// hash value
+function RTW_Hash(aHash) {
+    if (aHash == null) {
+        this.fHash = "";
+    } else {
+        this.fHash = aHash;
+    };
+    
+    this.getHash = function() {
+        return this.fHash;
+    }
+
+    this.setHash = function(aHash) {
+        this.fHash = aHash;
+    }
+}
+
+RTW_Hash.instance = null;
+
+// Class RTW_TraceInfo --------------------------------------------------------
+function RTW_TraceInfo(aFileLinks) {
+    this.fFileLinks = aFileLinks;
+    this.fLines = new Array();
+    this.fTotalLines = 0; // total number of highlighted lines
+    this.fNumLines = new Array();
+    this.fFileIdxCache = new Array();
+    this.fDisablePanel = false;
+    this.fCurrFileIdx = -1;
+    this.fCurrLineIdx = -1;
+    this.fCurrCodeNode = null;
+    this.getHtmlFileName = function(aIndex) {
+        if (aIndex < this.fFileLinks.length) {
+            var href = this.fFileLinks[aIndex].href;
+            return href.substring(href.lastIndexOf('/')+1);
+        }
+    }
+    this.getSrcFileName = function(aIndex) {
+        var name = this.getHtmlFileName(aIndex);
+        if (name)
+            name = RTW_TraceInfo.toSrcFileName(name);
+        return name;
+    }
+    this.getNumFileLinks = function() {
+        return this.fFileLinks.length;
+    }
+    this.setFileLinkColor = function(aIndex, aColor) {
+        var link = this.fFileLinks[aIndex];
+        if (link && link.parentNode && link.parentNode.style)
+            link.parentNode.style.backgroundColor = aColor;
+    }
+    this.highlightFileLink = function(aIndex, aColor) {
+        for (var i = 0; i < this.fFileLinks.length; ++i) {
+            this.setFileLinkColor(i, i == aIndex ? aColor : "");
+        }
+    }
+    this.highlightCurrFileLink = function(aColor) {
+        this.highlightFileLink(this.fCurrFileIdx);
+    }
+    this.highlightLines = function(aCodeNode,aColor) {
+        this.fCurrCodeNode = aCodeNode;
+        var lines = this.fLines[this.getHtmlFileName(this.fCurrFileIdx)];
+        if (lines && aCodeNode) {
+            for (var i = 0; i < lines.length; ++i) {
+                var lineObj = aCodeNode.childNodes[lines[i]-1];
+                if (lineObj)
+                    lineObj.style.backgroundColor=aColor;
+            }
+        }
+    }
+    this.getFileIdx = function(aFile) {
+        if (this.fFileIdxCache[aFile] != null)
+            return this.fFileIdxCache[aFile];
+        for (var i = 0; i < this.fFileLinks.length; ++i) {
+            if (this.getHtmlFileName(i) == aFile) {
+                this.fFileIdxCache[aFile] = i;
+                return i;
+            }
+        }
+        return null;
+    }
+    this.getCurrFileIdx = function() { return this.fCurrFileIdx; }
+    this.setNumHighlightedLines = function(aFileIdx, aNumLines) {
+        this.fNumLines[aFileIdx] = aNumLines;
+        updateNumHighlightedLines(this.fFileLinks[aFileIdx], aNumLines);
+    }
+    this.getNumLines = function(aFileIdx) {
+        return this.fNumLines[aFileIdx] != null ? this.fNumLines[aFileIdx] : 0;
+    }
+    this.getNumLinesAll = function() {
+        var sum = 0;
+        var len = this.fNumLines.length;
+        for (var i = 0; i < len; ++i) {
+            sum += this.getNumLines(i);
+        }
+        return sum;
+    }
+    this.getPrevButton = function() {
+        var aFrame = getNavFrame();
+        if (typeof aFrame !== "undefined" && aFrame !== null)
+            return aFrame.document.getElementById("rtwIdButtonPrev");
+        else
+            return document.getElementById("rtwIdButtonPrev");
+    }
+    this.getNextButton = function() {
+        var aFrame = getNavFrame();
+        if (typeof aFrame !== "undefined" && aFrame !== null)
+            return aFrame.document.getElementById("rtwIdButtonNext");
+        else
+            return document.getElementById("rtwIdButtonNext");
+    }
+    this.getPanel = function() {
+        var aFrame = getNavFrame();
+        if (typeof aFrame !== "undefined" && aFrame !== null)
+            return aFrame.document.getElementById("rtwIdTracePanel");
+        else
+            return document.getElementById("rtwIdTracePanel");
+    }
+    this.removeHighlighting = function() {
+        for (var i = 0; i < this.fFileLinks.length; ++i) {
+            this.setFileLinkColor(i, "");
+            this.setNumHighlightedLines(i, 0);
+        }
+        // remove highlight and reset current code node
+        try {
+            if (this.fCurrCodeNode != null)
+                this.highlightLines(getCodeNode(),"");
+        } catch (e) {};
+        this.fCurrCodeNode = null;    
+        if (this.getPrevButton()) { this.getPrevButton().disabled = true; }
+        if (this.getNextButton()) { this.getNextButton().disabled = true; }
+        if (this.getPanel()) { this.getPanel().style.display = "none"; }
+        this.fCurrFileIdx = -1;
+        this.fCurrLineIdx = -1;
+    }
+    this.setCurrLineIdx = function(aLineIdx) {
+        this.fCurrLineIdx = aLineIdx;
+    }
+    this.getCurrLineIdx = function() { return this.fCurrLineIdx; }
+    this.setCurrent = function(aFileIdx, aLineIdx) {
+        this.fCurrFileIdx = aFileIdx;
+        var numLines = this.getNumLines(aFileIdx);
+        if (!numLines || aLineIdx >= numLines)
+            this.fCurrLineIdx = -1;
+        else
+            this.fCurrLineIdx = aLineIdx;
+        var allNumLines = this.getNumLinesAll();
+        if (this.getPrevButton()) {
+            this.getPrevButton().disabled = (allNumLines <= 1 || !this.hasPrev());
+        }
+        if (this.getNextButton()) {
+            this.getNextButton().disabled = (allNumLines <= 1 || !this.hasNext());
+        }
+        if (this.getPanel() && !this.fDisablePanel) {
+            this.getPanel().style.display = 'block';
+        }
+    }
+    this.setDisablePanel = function(aDisable) {
+        this.fDisablePanel = aDisable;
+    }
+    this.getPrevFileIdx = function() {
+        if (this.fCurrLineIdx > 0)
+            return this.fCurrFileIdx;
+        for (var i = this.fCurrFileIdx - 1; i >= 0; --i)
+            if (this.fNumLines[i] > 0)
+                return i;
+        return null;
+    }
+    // update the navigation bar state
+    this.updateNavState = function() {
+        if (this.getPrevButton())
+            this.getPrevButton().disabled = !this.hasPrev();
+        if (this.getNextButton())
+            this.getNextButton().disabled = !this.hasNext();
+        setTraceNumber();
+    }
+    this.hasPrev = function() {
+        return this.getPrevFileIdx() != null;
+    }
+    this.getFirstFileIdx = function() {
+        for (var i = 0; i < this.getNumFileLinks(); ++i)
+            if (this.fNumLines[i] > 0)
+                return i;
+    }
+    this.getLastFileIdx = function() {
+        for (var i = this.getNumFileLinks(); i >= 0; --i)
+            if (this.fNumLines[i] > 0)
+                return i;
+    }
+    this.goFirst = function() {
+        this.fCurrFileIdx = this.getFirstFileIdx();
+        this.fCurrLineIdx = 0;
+        this.updateNavState();
+    }
+    this.goLast = function() {
+        this.fCurrFileIdx = this.getLastFileIdx();;
+        this.fCurrLineIdx = this.getNumLines(this.fCurrFileIdx) - 1;
+        this.updateNavState();
+    }
+    this.goPrev = function() {
+        var fileIdx = this.getPrevFileIdx();
+        if (fileIdx == null)
+            return;
+        if (fileIdx == this.fCurrFileIdx)
+            --this.fCurrLineIdx;
+        else {
+            this.fCurrFileIdx = fileIdx;
+            this.fCurrLineIdx = this.getNumLines(fileIdx) - 1;
+        }
+        this.updateNavState();
+    }
+    this.getNextFileIdx = function() {
+        if (this.fCurrLineIdx < this.getNumLines(this.fCurrFileIdx) - 1 && this.getNumLines(this.fCurrFileIdx) > 0)
+            return this.fCurrFileIdx;
+        for (var i = this.fCurrFileIdx + 1; i < this.getNumFileLinks(); ++i)
+            if (this.fNumLines[i] > 0)
+                return i;
+        return null;
+    }
+    this.hasNext = function() {
+        return this.getNextFileIdx() != null;
+    }
+    this.goNext = function() {
+        var fileIdx = this.getNextFileIdx();
+        if (fileIdx == null)
+            return;
+        if (fileIdx == this.fCurrFileIdx)
+            ++this.fCurrLineIdx;
+        else {
+            this.fCurrFileIdx = fileIdx;
+            this.fCurrLineIdx = 0;
+        }
+        this.updateNavState();
+    }
+    this.setTotalLines = function(num) {
+        this.fTotalLines = num;
+    }
+    this.getTotalLines = function() { return this.fTotalLines;}
+    this.setLines = function(aFile, aLines) {
+        this.fLines[aFile] = aLines;
+        var index = this.getFileIdx(aFile);
+        if (index != null)
+            this.setNumHighlightedLines(index,aLines.length);
+    }
+    this.getLines = function(aFile) {
+        return this.fLines[aFile];
+    }
+    // get current on focus line number
+    this.getCurrLine = function() {
+        var file = this.getHtmlFileName(this.getCurrFileIdx());
+        var lines = this.fLines[file];
+        var line = null;
+        if (lines) {
+            var line = lines[this.fCurrLineIdx];
+        }
+        return line;
+    }
+    this.getHRef = function(aFileIdx, aLineIdx, offset) {
+        var file = this.getHtmlFileName(aFileIdx);
+        var lines = this.fLines[file];
+        if (lines) {
+            var line = lines[aLineIdx];
+            line = offset_line(line, offset);
+            file = file+"#"+line;
+        }
+        return file;
+    }
+    
+    this.getCurrentHRef = function(offset) {
+        return this.getHRef(this.fCurrFileIdx, this.fCurrLineIdx, offset);
+    }
+    this.setInitLocation = function(aFile, aLine) {
+        var fileIdx = this.getFileIdx(aFile);
+        var lineIdx = null;
+        if (fileIdx != null && aLine) {
+            var lines = this.getLines(aFile);
+            for (var i = 0; i < lines.length; ++i) {
+                if (lines[i] == aLine) {
+                    lineIdx = i;
+                    break;
+                } 
+            }
+        }
+        if (fileIdx == null || lineIdx == null)
+            this.setCurrent(-1,-1);
+        else
+            this.setCurrent(fileIdx,lineIdx);
+    }
+}
+
+// Static methods in RTW_TraceInfo
+
+RTW_TraceInfo.getFileLinks = function(docObj) {
+    var links;
+    if (docObj && docObj.getElementsByName)
+        links = docObj.getElementsByName("rtwIdGenFileLinks");
+    return links ? links : new Array();
+}
+
+RTW_TraceInfo.toSrcFileName = function(aHtmlFileName) {
+    aHtmlFileName = aHtmlFileName.replace(/_c.html$/,".c");
+    aHtmlFileName = aHtmlFileName.replace(/_h.html$/,".h");
+    aHtmlFileName = aHtmlFileName.replace(/_cpp.html$/,".cpp");
+    aHtmlFileName = aHtmlFileName.replace(/_hpp.html$/,".hpp");
+    aHtmlFileName = aHtmlFileName.replace(/_cc.html$/,".hpp");
+    return aHtmlFileName;
+}
+
+RTW_TraceInfo.instance = null;
+
+// Class RTW_TraceArgs --------------------------------------------------------
+// file.c:10,20,30&file.h:10,20,30[&color=value] or 
+// sid=model:1[&color=value]
+RTW_TraceArgs = function(aHash) {
+    this.fColor = null;
+    this.fFontSize = null;
+    this.fInitFile = null;
+    this.fInitLine = null;
+    this.fSID = null;
+    this.fFiles = new Array();
+    this.fLines = new Array();
+    this.fMessage = null;
+    this.fBlock = null;  
+    this.fNumBlocks = 0;
+    this.fUseExternalBrowser = true;
+    this.fInStudio = false;
+    this.fModel2CodeSrc = null;
+    this.fInCodeTrace = false;
+    this.fTraceData = null;
+    this.fFileIdx = []; // filename to fileId
+    this.fRows = []; // highlighted rows indexed by fileId
+    this.fIDs = []; // highlighted IDs indexed by fileId
+
+    this.hasSid = function() {
+        return !(this.fSID == null);
+    }
+    this.parseCommand = function(aHash) {
+        var args = new Array();
+        args = aHash.split('&');
+        for (var i = 0; i < args.length; ++i) {
+            var arg = args[i];
+            sep = arg.indexOf('=');
+            if (sep != -1) {
+                var cmd = arg.substring(0,sep);
+                var opt = arg.substring(sep+1);
+                switch (cmd.toLowerCase()) {
+                case "color":
+                    this.fColor = opt;
+                    break;
+                case "fontsize":
+                    this.fFontSize = opt;
+                    break;
+                case "initfile":
+                    this.fInitFile = RTW_TraceArgs.toHtmlFileName(opt);
+                    break;
+                case "initline":
+                    this.fInitLine = opt;
+                    break;
+                case "msg":
+                    this.fMessage = opt;
+                    break;
+                case "block":
+                    this.fBlock = unescape(opt);
+                    break;
+                case "numblocks":
+                    this.fNumBlocks = parseInt(opt);
+                    break;
+                case "sid":
+                    this.fSID = opt;
+                    // convert sid to code location
+                    break;
+                case "model2code_src":
+                    // model2code_src from model or webview
+                    this.fModel2CodeSrc = opt;
+                    break;
+                case "useexternalbrowser":
+                    this.fUseExternalBrowser = (opt=="true");
+                    break;
+                case "instudio":
+                    this.fInStudio = (opt=="true");
+                    break;
+                case "incodetrace":
+                    this.fInCodeTrace = (opt=="true");
+                    break;
+                case "tracedata":
+                    this.fTraceData = decodeURI(opt);
+                    break;
+                }
+            }
+        }    
+    }
+    this.parseUrlHash = function(aHash) {
+        var rows, sep, assignSep;
+        if (aHash) {
+            args = aHash.split('&');
+            for (var i = 0; i < args.length; ++i) {
+                var arg = args[i];
+                sep = arg.indexOf(':');
+                assignSep = arg.indexOf('=');
+                if (sep !== -1 && assignSep === -1) {
+                    var fileLines = arg.split(':');
+                    var htmlFileName = RTW_TraceArgs.toHtmlFileName(fileLines[0]);
+                    this.fFileIdx[htmlFileName] = i;
+                    this.fFiles.push(htmlFileName);
+                    if (fileLines[1]) {
+                        rows = fileLines[1].split(',');
+                        rows = uniqueRows(rows);
+                        this.fLines.push(rows);
+                        this.fRows[i] = rows;
+                    }
+                }
+            }
+            if (this.fInitFile == null && this.fFiles.length > 0) {
+                this.fInitFile = this.fFiles[0];
+                this.fInitLine = (this.fLines[0] == null ? -1 : this.fLines[0][0]);
+            }
+        }
+    }
+    this.parseUrlHash2 = function(aHash) {
+        aHash = decodeURI(aHash);    
+        var rows;
+        var ids;
+        if (aHash && aHash.length > 0 && aHash[0] === "[") {
+            var input = eval(aHash);  
+            var i;
+            var j;
+            // set highlight files from url
+            for (i=0; i<input.length;i++) {
+                rows = new Array();
+                ids = new Array();
+                this.fFileIdx[input[i].file] = i;
+                this.fFiles.push(input[i].file);
+                ids = input[i].id;
+                for (j=0; j<ids.length;j++) {
+                    // get row number
+                    if (ids[j].indexOf("c") !== -1)
+                        rows.push(Number(ids[j].substring(0,ids[j].indexOf("c")))); 
+                    else
+                        rows.push(Number(ids[j]));
+                }
+                rows = uniqueRows(rows);
+                this.fRows[i] = rows;
+                this.fIDs[i] = ids;
+            }
+        } else {
+            // reset all states
+            this.fFiles = [];
+            this.fRows = [];
+            this.fIDs = [];
+        }
+        return;
+    }
+    this.getFileIdx = function(aFileName) {
+        if (aFileName) {
+            return this.fFileIdx[aFileName];
+        } else {
+            // return the fileIdx of the current display file
+            var pathname = top.rtwreport_document_frame.location.pathname;
+            pathname = pathname.substr(pathname.lastIndexOf("/")+1);
+            // find the highlight file name
+            return this.getFileIdx(pathname);
+        }
+    }
+
+    this.getColor = function() { return this.fColor; }
+    this.getFontSize = function() { return this.fFontSize; }
+    this.getInitFile = function() { return this.fInitFile; }
+    this.getInitLine = function() { return this.fInitLine; }
+    this.getNumFiles = function() { return this.fFiles.length; }
+    this.getSID = function() { return this.fSID; }
+    this.getFile = function(aIdx) { if (isNaN(aIdx)) return this.fFiles; return this.fFiles[aIdx];}
+    this.getLines = function(aIdx) { return this.fLines[aIdx]; } 
+    this.getUseExternalBrowser = function() { return this.fUseExternalBrowser; } 
+    this.getInStudio = function() { return this.fInStudio; } 
+    this.getInCodeTrace = function() { return this.fInCodeTrace; } 
+    this.getTraceData = function() { return this.fTraceData; } 
+    this.getModel2CodeSrc = function() { return this.fModel2CodeSrc; }
+    this.setUseExternalBrowser = function(val) { this.fUseExternalBrowser = val; } 
+    this.setInCodeTrace = function(val) { this.fInCodeTrace = val; } 
+    this.setTraceData = function(val) { this.fTraceData = val; } 
+    this.setModel2CodeSrc = function(val) { this.fModel2CodeSrc = val; }
+    this.getRows = function(aIdx) { return this.fRows[aIdx];}
+    this.getIDs = function(aIdx) { return this.fIDs[aIdx]; }
+    this.getBlock = function() { return this.fBlock; }
+    this.getNumBlocks = function() { return this.fNumBlocks; }
+    // constructor
+    this.parseCommand(aHash);
+}
+
+// Static methods in RTW_TraceArgs
+
+RTW_TraceArgs.toHtmlFileName = function(aFile) {
+    f = aFile;
+    aFile = f.substring(0,f.lastIndexOf('.')) + '_' + f.substring(f.lastIndexOf('.')+1) + ".html";
+    return aFile;
+}
+
+RTW_TraceArgs.instance = null;
+
+RTW_MessageWindow = function(aWindow, aParagraph) {
+    this.fWindow    = aWindow;
+    this.fParagraph = aParagraph;
+    
+    this.print = function(msg) {
+        this.fParagraph.innerHTML = msg;
+        if (msg)
+            this.fWindow.style.display = "block";
+        else
+            this.fWindow.style.display = "none";
+    }
+    this.clear = function() {
+        this.print("");
+    }
+}
+
+// RTW_MessageWindow factory
+RTW_MessageWindowFactory = function(aDocObj) {
+    this.fDocObj = aDocObj;
+    this.fInstance = null;
+
+    this.getInstance = function() {
+        if (this.fInstance)
+            return this.fInstance;
+        if (!this.fDocObj)
+            return;
+        
+        var table     = this.fDocObj.getElementById("rtwIdMsgWindow");
+        var paragraph = this.fDocObj.getElementById("rtwIdMsg");
+        var button    = this.fDocObj.getElementById("rtwIdButtonMsg");
+
+        if (!table || !paragraph || !button)
+            return null;
+
+        obj = new RTW_MessageWindow(table,paragraph);
+        button.onclick = function() { obj.clear(); }
+        this.fInstance = obj;
+        return this.fInstance;
+    }
+}
+
+RTW_MessageWindowFactory.instance = null;
+RTW_MessageWindow.factory = function(aDocObj) {
+    if (!RTW_MessageWindowFactory.instance)
+        RTW_MessageWindowFactory.instance = new RTW_MessageWindowFactory(aDocObj);
+    return RTW_MessageWindowFactory.instance.getInstance();
+}
+
+// Callbacks and helper functions ---------------------------------------------
+
+// Helper functions
+function getCodeNode() {
+    return rtwSrcFrame().document.getElementById("RTWcode");
+}
+
+function rtwMidFrame() {
+    return top.document.getElementById('rtw_midFrame');
+}
+function rtwSrcFrame() {
+    return top.rtwreport_document_frame;
+}
+function rtwTocFrame() {
+    return top.rtwreport_contents_frame;
+}
+function rtwNavToolbarFrame() {
+    return top.rtwreport_navToolbar_frame; // return rtwTocFrame();
+}
+function rtwInspectFrame() {
+    return top.rtwreport_inspect_frame; // return rtwTocFrame();
+}
+function rtwGetFileName(url) {
+    var slashIdx = url.lastIndexOf('/');
+    var hashIdx  = url.indexOf('#', slashIdx);
+    if (hashIdx == -1)
+        return url.substring(slashIdx+1)
+    else
+        return url.substring(slashIdx+1,hashIdx);
+}
+
+// Help function to expand the file group
+function expandFileGroup(docObj, tagID) {
+    if (docObj.getElementById) {
+        var obj_table = docObj.getElementById(tagID);
+        var o;
+        while (obj_table.nodeName != "TABLE") {
+            if (obj_table.parentNode) {
+                obj_table = obj_table.parentNode;
+            } else {
+                return;
+            }
+        }
+        if (obj_table.style.display == "none") {
+            var category_table = obj_table.parentNode;
+            while (category_table.nodeName != "TABLE") {
+                if (category_table.parentNode) {
+                    category_table = category_table.parentNode;
+                } else {
+                    return;
+                }        
+            }
+            var o = category_table.id + "_button";
+            o = docObj.getElementById(o);
+            if (o && top.rtwreport_contents_frame.rtwFileListShrink) {
+                top.rtwreport_contents_frame.rtwFileListShrink(o, category_table.id,
+                                                               category_table.getAttribute('label'), 0);
+            }
+        }
+    }
+}
+// Help function to set the background color based on Element's Id in a document
+// object
+function setBGColorByElementId(docObj, tagID, bgColor) {
+    var status = false;
+    if (bgColor == "") {
+        bgColor = "TRANSPARENT";
+    }
+    
+    if (docObj.getElementById) {
+        var obj2Hilite = docObj.getElementById(tagID);
+        if (obj2Hilite && obj2Hilite.parentNode) {
+            obj2Hilite.parentNode.style.backgroundColor = bgColor;
+            status = true;
+        }
+    }
+    return status;
+}
+
+// Help function to set the background color based on Element's name in a document
+// object
+function setBGColorByElementsName(docObj, tagName, bgColor) {
+    if (bgColor == "") {
+        bgColor = "TRANSPARENT";
+    }  
+    if (docObj.getElementsByName) {
+        var objs2Hilite = docObj.getElementsByName(tagName);
+        for (var objIndex = 0; objIndex < objs2Hilite.length; ++objIndex) {     
+            if (objs2Hilite[objIndex].parentNode)
+                objs2Hilite[objIndex].parentNode.style.backgroundColor = bgColor;
+        }
+    }
+}
+
+// Help function to highlight lines in source file based on Element's name
+// Note: Name of docHiliteByElementsName would be better
+function hiliteByElementsName(winObj, tagName) {
+    var hiliteColor = "#aaffff";
+    if (winObj.document)
+        setBGColorByElementsName(winObj.document, tagName, hiliteColor);
+}
+
+// Help function to remove the highlight of lines in source file based on Element's name
+function removeHiliteByElementsName(winObj, tagName) {
+    if (winObj.document)
+        setBGColorByElementsName(winObj.document, tagName, "");
+}
+
+// Help function to set the background color based on the URL's hash
+function setBGColorByHash(docObj, bgColor) {    
+    if (docObj.location) {
+        var tagName = docObj.location.hash;
+        // Use the stored hash value if it exists because the location.hash
+        // may be wrong in internal web browser
+        if (RTW_Hash.instance)
+            tagName = RTW_Hash.instance.getHash();
+        if (tagName != null)
+            tagName = tagName.substring(1);
+        
+        var codeNode = docObj.getElementById("RTWcode");
+        if (tagName != null && tagName != "") {        
+            if (!isNaN(tagName))
+                tagName = Number(tagName) + 10;            
+            setBGColorByElementsName(docObj, tagName, bgColor);
+        }
+    }
+}
+
+// Highlight the lines in document frame based on the URL's hash
+function hiliteByHash(docObj) {       
+    var hiliteColor = "#aaffff";  
+    setBGColorByHash(docObj, hiliteColor);
+}
+
+// Remove highlight of lines in document frame based on the URL's hash
+function removeHiliteByHash(winObj) {
+    if (winObj.document)
+        setBGColorByHash(winObj.document, "");
+}
+
+// Highlight the filename Element in TOC frame based on the URL's filename
+function hiliteByFileName(aHref) {       
+    var status = false;
+    if (!top.rtwreport_contents_frame)
+        return status;
+    var hiliteColor = GlobalConfig.fileLinkHiliteColor;
+    var fileName = rtwGetFileName(aHref);    
+    if (top.rtwreport_contents_frame.document) {
+        removeHiliteFileList(top.rtwreport_contents_frame);
+        status = setBGColorByElementId(top.rtwreport_contents_frame.document, fileName, hiliteColor);
+        if (status)
+            expandFileGroup(top.rtwreport_contents_frame.document, fileName);
+    }
+    return status;
+}
+
+// Clear the highlights in the code navigation frame.
+function removeHiliteCodeNav(winObj) {    
+    removeHiliteTOC(winObj);
+    removeHiliteFileList(winObj);
+}
+// Clear the highlights in TOC frame. TOC links are named TOC_List
+function removeHiliteTOC(winObj) {    
+    removeHiliteByElementsName(winObj, "TOC_List"); 
+}
+// Clear the highlights in Generated File List. 
+// The filename links are named rtwIdGenFileLinks,
+function removeHiliteFileList(winObj) {    
+    removeHiliteByElementsName(winObj, "rtwIdGenFileLinks");
+}
+
+// Highlight TOC hyperlinks by their Ids.
+function tocHiliteById(id) {
+    hiliteColor = GlobalConfig.fileLinkHiliteColor;    
+    if (top && top.rtwreport_contents_frame && top.rtwreport_contents_frame.document) {
+        removeHiliteCodeNav(top.rtwreport_contents_frame);
+        setBGColorByElementId(top.rtwreport_contents_frame.document, id, hiliteColor);
+    }
+}
+
+// onClick function to highlight the link itself
+function tocHiliteMe(winObj, linkObj, bCleanTrace) {
+    hiliteColor = GlobalConfig.fileLinkHiliteColor;
+    // remove the trace info (previous highlighted source code and the navigate
+    // panel)
+    // Clean Trace info only when links in TOC clicked. Links of filenames won't
+    // clean trace info. 
+    if (bCleanTrace) {
+        if (RTW_TraceInfo.instance) {
+            RTW_TraceInfo.instance.setDisablePanel(true);
+            rtwRemoveHighlighting();
+        }
+        closeInspectWindow();        
+    }        
+    removeHiliteCodeNav(winObj);
+    if (linkObj.parentNode) {
+        linkObj.parentNode.style.backgroundColor= hiliteColor;
+    }
+}
+
+// onClick function to clean the currently highlighed lines in document frame
+// based on URL's hash
+// Then highlight lines in document frame based on Element's name
+// It works for links to some elements in the same page, otherwise, 
+// rtwFileOnLoad() in loading page does the job.
+function docHiliteMe(winObj, elementName) {
+    // First, remove the highlighted elements by stored hash value
+    removeHiliteByHash(winObj);
+    // Store the new hash value defined by elementName
+    if (RTW_Hash.instance) {
+        RTW_Hash.instance.setHash("#"+elementName);
+    } else {
+        RTW_Hash.instance = new RTW_Hash("#"+elementName);
+    }
+    hiliteByElementsName(winObj, elementName);
+}
+
+// Callback for generated file load callback
+function rtwFileOnLoad(docObj) {
+    if (!docObj.location || !docObj.location.href)
+        return;
+    // Save the hash value when file is loaded in the first time
+    if (!RTW_Hash.instance) {
+        RTW_Hash.instance = new RTW_Hash(docObj.location.hash);
+    } else {
+        RTW_Hash.instance.setHash(docObj.location.hash);
+    }  
+    
+    updateHyperlinks();
+    // highlight lines in source code file according to the URL hash
+    hiliteByHash(docObj);
+    // highlight the filename in the TOC frame
+    if (top.rtwreport_contents_frame) {
+        if (hiliteByFileName(docObj.location.href)) {
+            // remove the highlights in the TOC frame if filename is hilite successfully
+            removeHiliteTOC(top.rtwreport_contents_frame);
+        }
+    }
+    
+    if (!RTW_TraceInfo.instance)
+        return;
+    if (!docObj.getElementById)
+        return;
+    if (rtwSrcFrame())
+        rtwSrcFrame().focus();
+    var fileName = rtwGetFileName(docObj.location.href);
+    var fileIdx = RTW_TraceInfo.instance.getFileIdx(fileName);
+    if (fileIdx != null) {
+        if (fileIdx != RTW_TraceInfo.instance.getCurrFileIdx())
+            RTW_TraceInfo.instance.setCurrent(fileIdx,-1);
+        var codeNode = docObj.getElementById("RTWcode");
+        var hiliteColor = RTW_TraceArgs.instance.getColor();
+        if (!hiliteColor) {
+            hiliteColor = "#aaffff";
+        }
+        var fontSize = RTW_TraceArgs.instance.getFontSize();
+        if (fontSize) {
+            codeNode.style.fontSize = fontSize;
+        }
+        RTW_TraceInfo.instance.highlightLines(codeNode,hiliteColor);
+        RTW_TraceInfo.instance.highlightFileLink(fileIdx, GlobalConfig.fileLinkHiliteColor);
+    }
+}
+
+function Nav(fileIdx1, fileIdx2) {
+    var filename = top.rtwreport_document_frame.location.pathname.split(/\//);
+    filename = filename[filename.length-1];
+    var currentFileIdx = RTW_TraceInfo.instance.getFileIdx(filename);
+    if (fileIdx1 === currentFileIdx) {
+        top.rtwreport_document_frame.document.location.href = RTW_TraceInfo.instance.getCurrentHRef();
+        top.initLine = top.rtwreport_document_frame.document.location.hash.substr(1);
+        addTagToCurrentLine();
+        if (top.rtwreport_contents_frame) {            
+            if (hiliteByFileName(top.rtwreport_document_frame.location.href))
+                removeHiliteTOC(top.rtwreport_contents_frame);
+        }
+    } else {
+        var aUrl = RTW_TraceInfo.instance.getCurrentHRef();
+        if (hasWebviewFrame()) {
+            top.rtwreport_document_frame.document.location.href=aUrl;
+        } else {
+            top.rtwreport_document_frame.document.location.href=aUrl + "+newPage";
+        }
+    }
+}
+// Callback for "Prev" button
+function rtwGoPrev() {
+    if (RTW_TraceInfo.instance && top.rtwreport_document_frame) {
+        var prevfileIdx = RTW_TraceInfo.instance.getPrevFileIdx();
+        var currfileIdx = RTW_TraceInfo.instance.fCurrFileIdx;
+        rmTagToCurrentLine();
+        RTW_TraceInfo.instance.goPrev();
+        Nav(prevfileIdx, currfileIdx);
+    }
+}
+// Callback for "First" button
+function rtwGoFirst() {
+    if (RTW_TraceInfo.instance && top.rtwreport_document_frame) {
+        var prevfileIdx = RTW_TraceInfo.instance.getFirstFileIdx();
+        var currfileIdx = RTW_TraceInfo.instance.fCurrFileIdx;
+        rmTagToCurrentLine();
+        RTW_TraceInfo.instance.goFirst();
+        Nav(prevfileIdx, currfileIdx);
+    }
+}
+
+// Callback for navigation button onclick
+var navButtonStatus = (function() {
+    var isclicked = false;
+    return {
+        clicked: function () {
+            isclicked = true;
+            return false;
+        },
+        reset: function () {
+            isclicked = false;
+        },
+        isClicked: function () {
+            return isclicked;
+        }
+    };
+})();
+
+// Callback for "Next" button
+function rtwGoNext() {
+    if (RTW_TraceInfo.instance && top.rtwreport_document_frame) {
+        var nextfileIdx = RTW_TraceInfo.instance.getNextFileIdx();
+        var currfileIdx = RTW_TraceInfo.instance.fCurrFileIdx;
+        rmTagToCurrentLine();
+        RTW_TraceInfo.instance.goNext();
+        Nav(nextfileIdx, currfileIdx);
+    }
+}
+// Callback for "Last" button
+function rtwGoLast() {
+    if (RTW_TraceInfo.instance && top.rtwreport_document_frame) {
+        var nextfileIdx = RTW_TraceInfo.instance.getLastFileIdx();
+        var currfileIdx = RTW_TraceInfo.instance.fCurrFileIdx;
+        rmTagToCurrentLine();
+        RTW_TraceInfo.instance.goLast();
+        Nav(nextfileIdx, currfileIdx);
+    }
+}
+
+function addTagToCurrentLine() {
+    rmHiliteClickedToken();
+    tagCurrentLine(true);
+}
+function rmTagToCurrentLine() {
+    tagCurrentLine(false);
+}
+// tag current line by changing the bacgkround color of the line 
+function tagCurrentLine(addColor) {
+    if (RTW_TraceInfo.instance) {
+        var o = top.rtwreport_document_frame.document.getElementById(RTW_TraceInfo.instance.getCurrLine());
+        if (o) {
+            if (addColor) {
+                o.className = "hiliteCurrentLine";            
+            } else {
+                o.className = "hilite";
+            }
+        }
+    }
+}
+// Helper function for main document load callback
+function rtwMainOnLoadFcn(topDocObj,aLoc,aPanel,forceReload) {
+    var loc;
+    var aHash="";
+    var lastArgs = null;
+    var tocDocObj = top.rtwreport_contents_frame.document;
+    if (typeof forceReload === "undefined") {
+        forceReload = false;
+    }
+    // get the hash value from location.
+    if (!aLoc) {
+        loc = topDocObj.location;
+        if (loc.search || loc.hash) {
+            if (loc.search)
+                aHash = loc.search.substring(1);
+            else
+                aHash = loc.hash.substring(1);
+        }
+    } else {
+        aHash = aLoc;
+        if (RTW_TraceArgs.instance)
+            lastArgs = RTW_TraceArgs.instance;
+    }
+
+    // parse URL hash value
+    RTW_TraceArgs.instance = new RTW_TraceArgs(aHash);
+    // load metrics
+    load_metrics();
+    // hide content panel if in studio
+    if (RTW_TraceArgs.instance.getInStudio()) {
+        setupInStudio();
+    }
+    // use incode traceability
+    if (RTW_TraceArgs.instance.getInCodeTrace()) {
+        RTW_TraceArgs.instance.parseUrlHash2(RTW_TraceArgs.instance.getTraceData());
+        inCodeTraceOnload();
+        return;
+    }
+    if (lastArgs !== null) {
+        RTW_TraceArgs.instance.setUseExternalBrowser(lastArgs.getUseExternalBrowser());
+        RTW_TraceArgs.instance.setModel2CodeSrc(lastArgs.getModel2CodeSrc());
+    }    
+
+    // get highlight url using sid
+    if (RTW_TraceArgs.instance.hasSid()) {
+        aHash = getCodeLines();  
+    }
+    // parse hash to look for msg=...&block=... pattern
+    RTW_TraceArgs.instance.parseCommand(aHash);
+    // parse hash to look for file.c:10,12&file.h:10,12 
+    RTW_TraceArgs.instance.parseUrlHash(aHash);
+
+    // hide navigation buttons if not in MATLAB
+    if (RTW_TraceArgs.instance.getUseExternalBrowser() && tocDocObj.getElementById) {
+        var o = tocDocObj.getElementById("nav_buttons");
+        if (o != null) {
+            o.style.display = "none";
+        }
+    }
+
+    // hide web view frameset if model2code_src is model
+    if (RTW_TraceArgs.instance.getModel2CodeSrc() === "model") {
+        var o = top.document.getElementById('rtw_webviewMidFrame');
+        if (o) {
+            o.rows = "100%,0%";
+        }
+    }
+
+    // stop onload when it has been loaded
+    if (window.location.search.indexOf("loaded=true") > 0 
+        && top.rtwreport_document_frame.location.href !== "about:blank" && forceReload !== true) {
+        updateHyperlinks();
+        return;
+    }  
+    
+    // modify modelref links
+    update_modelref_report_link(top.rtwreport_contents_frame.document);
+    try {
+        // ignore browser security error 
+        update_modelref_report_link(top.rtwreport_document_frame.document);
+    } catch(e) {};
+
+    // redirect the page based on the url    
+    var initPage = null;
+    if (RTW_TraceArgs.instance.getNumFiles()) {
+        var fileLinks = RTW_TraceInfo.getFileLinks(tocDocObj);
+        RTW_TraceInfo.instance = new RTW_TraceInfo(fileLinks);
+        RTW_TraceInfo.instance.removeHighlighting()
+        var numFiles = RTW_TraceArgs.instance.getNumFiles();
+        var tLines = 0;
+        for (var i = 0; i < numFiles; ++i) {
+            RTW_TraceInfo.instance.setLines(RTW_TraceArgs.instance.getFile(i),RTW_TraceArgs.instance.getLines(i));
+            tLines += RTW_TraceArgs.instance.getLines(i).length;
+        }
+        RTW_TraceInfo.instance.setTotalLines(tLines);
+        if (aPanel == false) {
+            RTW_TraceInfo.instance.setDisablePanel(true);
+        }
+        var initFile = RTW_TraceArgs.instance.getInitFile();
+        RTW_TraceInfo.instance.setInitLocation(initFile,RTW_TraceArgs.instance.getInitLine());
+        if (!hasInCodeTrace()) {
+            initPage = RTW_TraceInfo.instance.getCurrentHRef();
+        } else {
+            initPage = initFile;
+        }
+    } else {
+        // catch error that document frame is in another domain
+        try {
+            var fileDocObj = top.rtwreport_document_frame.document;
+            if (fileDocObj.location && (!fileDocObj.location.href || fileDocObj.location.href == "about:blank")) {
+                var summaryPage = tocDocObj.getElementById("rtwIdSummaryPage");
+                var tracePage = tocDocObj.getElementById("rtwIdTraceability");
+                if (summaryPage) {
+                    initPage = summaryPage.href;
+                } else if (tracePage) {
+                    initPage = tracePage;
+                }
+            }
+        } catch(e) {};
+    }
+    if (RTW_TraceArgs.instance && RTW_TraceArgs.instance.fMessage) {
+        // display diagnostic message
+        var linkId = "rtwIdMsgFileLink";
+        var msgFile = tocDocObj.getElementById(linkId);
+        if (msgFile && msgFile.style) {
+            msgFile.style.display = "block";
+            // Highlight the background of msg link
+            tocHiliteById(linkId);      
+        }
+        initPage = "rtwmsg.html";
+    }
+    if (initPage) {
+        var is_same_page = false;
+        try {
+            var fileDocObj = top.rtwreport_document_frame.document;
+            is_same_page = isSamePage(fileDocObj.location.href, initPage);
+        } catch(e) {};     
+        if (document.getElementById("rtwreport_document_frame")) {
+            document.getElementById("rtwreport_document_frame").setAttribute("src", initPage);
+        } else {
+            top.rtwreport_document_frame.location.href = initPage;
+        }
+                
+        if (is_same_page) {
+            // Goto the same page won't trigger onload function.
+            // Call it manuelly to highligh new code location.
+            rtwFileOnLoad(top.rtwreport_document_frame.document);        
+        } 
+    }
+}
+
+// Compare if href1(i.e. file:///path/file1.html#222) and href2(i.e.file2.html) are same pages.
+// isSamePage return true if file1 == file2.
+function isSamePage(href1, href2) {
+    var page1 = href1.substring(href1.lastIndexOf('/')+1,href1.lastIndexOf('.html'));
+    var page2 = href2.substring(href2.lastIndexOf('/')+1,href2.lastIndexOf('.html'));
+    return (page1 == page2);
+}
+
+// Callback for main document loading
+function rtwMainOnLoad() {    
+    rtwMainOnLoadFcn(document,null,true, false);
+    var newUrl;
+    // modify history state to avoid reload from pressing back 
+    if (RTW_TraceArgs.instance && !RTW_TraceArgs.instance.getUseExternalBrowser() && 
+        typeof window.history.replaceState === "function") {
+        if (window.location.search.length > 0) {
+            if (window.location.search.indexOf("loaded=true") === -1) {
+                newUrl = document.location.pathname + window.location.search + '&loaded=true';
+            } else {
+                newUrl = document.location.pathname + window.location.search;
+            }
+        } else {
+            newUrl = document.location.pathname + window.location.search + '?loaded=true';
+        }
+        window.history.replaceState("","",newUrl);
+    }
+}
+
+// Helper function for traceability report
+function rtwMainReload(location) {
+    // remove highlight filename and lines before reloading the page
+    if (RTW_TraceInfo.instance)
+        RTW_TraceInfo.instance.removeHighlighting();  
+    rtwMainOnLoadFcn(document,location,true,true);
+}
+
+function rtwMainReloadNoPanel(location) {
+    rtwMainOnLoadFcn(document,location,false,true);
+}
+
+// Callback for hyperlink "Remove Highlighting"
+function rtwRemoveHighlighting() {
+    if (RTW_TraceInfo.instance)
+        RTW_TraceInfo.instance.removeHighlighting();
+    if (rtwSrcFrame()) {
+        rtwSrcFrame().focus();
+    }
+    if (hasInCodeTrace()) {
+        removeInCodeTraceHighlight();
+    }
+}
+
+// Display diagnostic message in document frame
+function rtwDisplayMessage() {
+    var docObj = top.rtwreport_document_frame.document;
+    var msg = docObj.getElementById(RTW_TraceArgs.instance.fMessage);
+    if (!msg) {
+        msg = docObj.getElementById("rtwMsg_notTraceable");
+    }
+    if (msg && msg.style) {
+        msg.style.display = "block"; // make message visible
+        var msgstr = msg.innerHTML;
+        // replace '%s' in message with block name
+        if (top.RTW_TraceArgs.instance) {
+            var sid = top.RTW_TraceArgs.instance.getBlock();
+            if (sid) {
+                var block = sid;
+                if (top.RTW_rtwnameSIDMap && top.RTW_rtwnameSIDMap.instance && top.RTW_rtwnameSIDMap.instance.getRtwname(sid)) {
+                    block = top.RTW_rtwnameSIDMap.instance.getRtwname(sid).rtwname;
+                    block = block.replace("<", "&lt;").replace(">", "&gt;");
+                } else {
+                    block = sid;
+                }
+                if (block) {
+                    msgstr = msgstr.replace("%s", block);
+                }
+            }
+        }
+        msg.innerHTML = msgstr;
+    }
+}
+
+function updateHyperlinks() {
+    docObj = top.rtwreport_document_frame;
+    if (docObj && docObj.document) {
+        if (RTW_TraceArgs.instance === null || !RTW_TraceArgs.instance.getUseExternalBrowser()) {
+            var plain_link =  docObj.document.getElementById("linkToText_plain");
+            if (plain_link && plain_link.href && plain_link.href.indexOf("matlab:coder.internal.editUrlTextFile") === -1 ) {
+                plain_link.href = "matlab:coder.internal.editUrlTextFile('" + str2StrVar(plain_link.href) + "')";
+            }          
+            var alink = docObj.document.getElementById("linkToCS");
+            var linkCmd = "matlab:coder.internal.viewCodeConfigsetFromReport";
+            if (alink && alink.href && alink.href.indexOf(linkCmd) === -1) {
+                alink.href = linkCmd+ "('" + str2StrVar(alink.href) + "');";
+                if(alink.style) {
+                    alink.style.display = "";
+                    hidden_link = docObj.document.getElementById("linkToCS_disabled");
+                    if (hidden_link) {
+                        hidden_link.style.display = "none";
+                    }
+                }
+            }
+        } else {
+            var alink = docObj.document.getElementById("linkToCS");
+            if (alink && alink.style) {
+                alink.style.display = "none";
+                hidden_link = docObj.document.getElementById("linkToCS_disabled");
+                if (hidden_link)
+                    hidden_link.style.display = "";
+            }
+            if (typeof docObj.document.getElementsByClassName === "function") {
+                alinks = docObj.document.getElementsByClassName("callMATLAB");
+            } else if (typeof docObj.document.getElementsByName === "function") {
+                alinks = docObj.document.getElementsByName("callMATLAB");
+            } else {
+                alinks = [];
+            }
+            alink = docObj.document.getElementById("CodeGenAdvCheck");
+            if (alink && alink.href && alink.href.indexOf("externalweb=true")===-1) {
+                alink.href = alink.href + "?externalweb=true";
+            }
+
+            if (typeof docObj.document.getElementsByName === "function") 
+                var objs = docObj.document.getElementsByName("MATLAB_link");
+            else 
+                objs = [];
+            for (var objIndex = 0; objIndex < objs.length; ++objIndex) {     
+                objs[objIndex].style.display = "none";
+            }
+        }
+    }
+    updateCode2ModelLinks(docObj.document);
+    // modify modelref links
+    update_modelref_report_link(top.rtwreport_contents_frame.document);
+    try {
+        // ignore browser security error 
+        update_modelref_report_link(top.rtwreport_document_frame.document);
+    } catch(e) {};
+}
+
+function update_modelref_report_link(docObj) {
+    if (docObj.getElementsByName) {
+        var arg = "";
+        if (RTW_TraceArgs.instance && !RTW_TraceArgs.instance.getUseExternalBrowser()) {
+            arg = "?useExternalBrowser=false";
+        }
+        if (RTW_TraceArgs && RTW_TraceArgs.instance && RTW_TraceArgs.instance.getModel2CodeSrc() != null) {
+            if (arg.length > 0)
+                arg = arg + "&model2code_src=" + RTW_TraceArgs.instance.getModel2CodeSrc();
+            else
+                arg = "?model2code_src=" + RTW_TraceArgs.instance.getModel2CodeSrc();
+        }
+        if (arg.length > 0) {
+            links = docObj.getElementsByName('external_link');
+            for (var link_idx = 0; link_idx < links.length; ++link_idx) {
+                links[link_idx].href = links[link_idx].href + arg;
+            }
+        }
+    }
+}
+
+function rtwResizeFrame(f) {
+    if (f) {
+        f.style.height = f.contentWindow.document.body.scrollHeight + "px";
+    }
+}
+
+function rtwPageOnLoad(id) {
+    // highlight toc entry
+    tocHiliteById(id);
+    // restore elements state
+    if (top && top.restoreState) {
+        if (top.rtwreport_contents_frame && top.rtwreport_contents_frame.document)
+            top.restoreState(top.rtwreport_contents_frame.document);
+        if (top.rtwreport_document_frame && top.rtwreport_document_frame.document) {
+            top.restoreState(top.rtwreport_document_frame.document);
+            rtwResizeFrame(top.rtwreport_document_frame.document.getElementById("rtwIdContentsIframe"));
+        }
+    }
+    updateHyperlinks();
+}
+
+// highlight code after changeSys
+function rtwChangeSysCallback(sid) {
+    if (sid == "" || typeof RTW_Sid2UrlHash == "undefined" || !RTW_Sid2UrlHash.instance)
+        return false;
+    urlHash = RTW_Sid2UrlHash.instance.getUrlHash(sid);
+    if (urlHash != undefined) {
+        if (RTW_TraceArgs && RTW_TraceArgs.instance && 
+            !RTW_TraceArgs.instance.getUseExternalBrowser())
+            urlHash = (urlHash == "")? "?useExternalBrowser=false" : 
+            urlHash+"&useExternalBrowser=false";
+        rtwMainReload(urlHash, true);
+        return true;
+    } else {
+        // remove highlighting from traceinfo
+        rtwRemoveHighlighting();
+        return false;
+    }
+}
+
+function emlFileOnload(docObj) {
+    var loc = docObj.location;
+    if (loc.hash) {
+        var line = loc.hash.substring(1);
+        hiliteEmlLine(docObj, line);                        
+    }   
+}
+
+function hiliteEmlLine(docObj, line) {
+    var bgColor;
+    if (top.HiliteCodeStatus)
+        bgColor = "#66CCFF";
+    else
+        bgColor = "#E8D152";
+    // unhighlight
+    if (typeof docObj.HiliteLine != "undefined") {
+        trObj = docObj.getElementById("LN_"+docObj.HiliteLine);
+        if (trObj != null) {
+            trObj.style.backgroundColor = "";                   
+        }
+    }   
+    // hilighlight
+    trObj = docObj.getElementById("LN_"+line);
+    if (trObj != null) {
+        trObj.style.backgroundColor = bgColor;
+        docObj.HiliteLine = line;
+    }
+}
+
+function emlLineOnClick(docObj,sid,line) {
+    if (top) {
+        top.HiliteCodeStatus = top.rtwChangeSysCallback(sid);        
+    }
+    hiliteEmlLine(docObj, line);
+}
+
+function updateCode2ModelLinks(docObj) {
+    var webviewFrame = top.document.getElementById('rtw_webviewMidFrame');
+    var link2model = false;
+    var isTestHarness = false;
+    if (top.testHarnessInfo && top.testHarnessInfo.IsTestHarness === "1") {
+        isTestHarness = true;
+    }
+    if (webviewFrame || isTestHarness) {
+        if (webviewFrame && RTW_TraceArgs.instance && 
+            (RTW_TraceArgs.instance.getModel2CodeSrc() !== "model" ||
+             RTW_TraceArgs.instance.getUseExternalBrowser())
+           ) {
+            hiliteCmd = "javascript:top.rtwHilite(";
+        } else {
+            hiliteCmd = "matlab:coder.internal.code2model(";
+            link2model = true;
+        }
+        var objs = docObj.getElementsByName('code2model');
+        var o = null;
+        var str = '';
+        var sid = '';
+        var pattern = "'code2model',";
+        for (var objIndex = 0; objIndex < objs.length; ++objIndex) {     
+            o = objs[objIndex];
+            str = o.href.substring(o.href.indexOf('(')+1);
+            if (str.indexOf(pattern) > -1) {
+                str = str.substring(str.indexOf(pattern) + pattern.length);
+            }
+            o.href = hiliteCmd + str;
+            if (link2model && isTestHarness) {
+                sid = str.substring(0, str.indexOf(")"));
+                o.href = hiliteCmd + sid + ",'" +
+                    top.testHarnessInfo.HarnessName+ "','" + 
+                    top.testHarnessInfo.HarnessOwner+ "','" + 
+                    top.testHarnessInfo.OwnerFileName + "');";
+            }
+        }
+    }
+}
+
+function rtwHilite(aBlock,aParentSID) {
+    if (aBlock.indexOf('-') !== -1) { 
+        // remove sid range: model:sid:2-10 => model:sid 
+        var s; 
+        s = aBlock.split(':'); 
+        if (s.length > 0) { 
+            s = s[s.length-1]; 
+            if (s.indexOf('-') != -1) { 
+                aBlock = aBlock.substring(0, aBlock.lastIndexOf(':')); 
+            } 
+        } 
+    } 
+    if (typeof aParentSID === "undefined") {
+        if (top.RTW_SidParentMap && top.RTW_SidParentMap.instance)
+            aParentSID = top.RTW_SidParentMap.instance.getParentSid(aBlock);
+        else
+            aParentSID = aBlock;
+    }
+    top.HiliteCodeStatus = true;
+    
+    // webview 2 defines an interface api, call slwebview.
+    if (top.slwebview) {
+        // webview 2.x
+        if (top.codeToWebView(aBlock, aParentSID) === -1) {
+            alert("Cannot highlight block in model Web view. It may not be exported.");
+        }
+    
+    } else {
+        // webview 1.x
+        if (hiliteBlockForRTWReport(aBlock,aParentSID) === false) {
+            if (hiliteBlockForRTWReport(aBlock, aBlock) === false) {
+                rtwHilite(aParentSID);
+            }
+        }
+    }
+}
+
+function rtwHiliteMultiple(sids, action) {
+	//For new Code Gen report
+	if (top.slwebview) {
+        // webview 2.x
+        if (top.codeToWebViewArray(sids, action) === -1) {
+            alert("Cannot highlight block(s) in model Web view. It may not be exported.");
+        }
+    }
+}
+
+function str2StrVar(str) {
+    return str.replace(/'/g,"''");
+}
+window.onload=rtwMainOnLoad;
+
+// handle incode traceability highlighting
+function inCodeTraceOnload() {  
+    var tocDocObj = top.rtwreport_contents_frame.document;
+    if (!top.RTW_TraceArgs.instance) {
+        var summaryPage = tocDocObj.getElementById("rtwIdSummaryPage");                 
+        top.rtwreport_document_frame.location.href = summaryPage.href;  
+        return;
+    }
+
+    var files = top.RTW_TraceArgs.instance.getFile();
+    if (files.length === 0) {
+        if (top.RTW_TraceArgs.instance) {
+            var block = top.RTW_TraceArgs.instance.getBlock();
+            block = block.replace("<", "&lt;").replace(">", "&gt;");
+        }
+        top.rtwreport_document_frame.document.write("<pre>No traceability information for block " + block + ".</pre>");
+        return;
+    };
+
+    var fileLinks = RTW_TraceInfo.getFileLinks(tocDocObj);
+    RTW_TraceInfo.instance = new RTW_TraceInfo(fileLinks);
+
+    // update filelist with num of highlighted lines
+    var tocDoc = top.rtwreport_contents_frame.document;
+    var tLines = 0;
+    for (var i=0; i<files.length;i++) {
+        var fileIdx = top.RTW_TraceArgs.instance.getFileIdx(files[i]);
+        if (typeof fileIdx !== "undefined") {
+            var rows = top.RTW_TraceArgs.instance.getRows(fileIdx);
+            var linkNode =  tocDoc.getElementById(files[i]);
+            updateNumHighlightedLines(linkNode, rows.length);
+            RTW_TraceInfo.instance.setLines(files[i], rows);
+            tLines += rows.length;
+        }
+    }
+    // set number of total lines
+    RTW_TraceInfo.instance.setTotalLines(tLines);
+    // update highligthed from
+    if (RTW_TraceArgs.instance.getNumBlocks() === 1) {
+        var node = tocDoc.getElementById("rtwIdTraceBlock");
+        if (node) node.textContent = RTW_TraceArgs.instance.getBlock();
+    }
+    // set the initial file and line
+    fileIdx = top.RTW_TraceArgs.instance.getFileIdx(files[0]);
+    rows = top.RTW_TraceArgs.instance.getRows(fileIdx);
+    RTW_TraceInfo.instance.setInitLocation(files[0],rows[0]);
+
+    // highlight first file
+    top.rtwreport_document_frame.location.href = files[0];
+    return;
+}
+
+function updateNumHighlightedLines(linkObj, aNumLines) {
+    var parent = linkObj.parentNode;
+    if (parent && parent.childNodes && parent.childNodes.length > 1) {
+        var spanNodes = parent.getElementsByTagName('span');
+        var len = spanNodes.length;
+        if (len > 0) {
+            if (aNumLines > 0) {
+                /* display number of matches */
+                spanNodes.item(len-1).innerHTML = "&nbsp;("+aNumLines+")";
+            } else {
+                /* clear number of matches */
+                spanNodes.item(len-1).innerHTML = "";
+            }
+        }
+    }
+}
+
+function setupInStudio() {
+    if (top.whole) {
+        var tmp = top.whole.rows.split(",");    
+        tmp[0] = "35px";
+        top.whole.rows = tmp.join();    
+    }
+    if (top.main) {
+        var tmp = top.main.cols.split(",");
+        tmp[0] = "0";
+        top.main.cols = tmp.join();
+    }
+    // add file list to source file
+    if (top.Html2SrcLink && top.Html2SrcLink.instance && top.fileSelector) {
+        var myDoc = top.fileSelector.document;
+        var fileSelector = myDoc.createElement("select");
+        fileSelector.id = "fileSelector";
+        fileSelector.onchange = top.fileSelectorOnChange;
+        var filename;
+        var filelink;
+        fileSelector.innerHTML += "<option value='" + 
+            top.rtwreport_contents_frame.document.getElementById('rtwIdSummaryPage').href +
+            "'>Summary</option>"; 
+        for (var i=0; i < top.fileList.length; i++) {
+            filename = top.fileList[i];
+            filelink = top.Html2SrcLink.instance.getLink2Src(filename);
+            fileSelector.innerHTML += "<option value='" + filename + "'>" + filelink.substring(filelink.lastIndexOf('/')+1); + "</option>";
+        }
+        var bodyNode = myDoc.body;
+        bodyNode.insertBefore(fileSelector, bodyNode.firstElementChild);
+        var textNode = myDoc.createElement("span");
+        textNode.innerHTML = "Goto: ";
+        bodyNode.insertBefore(textNode, fileSelector);
+        var myCss = myDoc.createElement("link");
+        myCss.type = "text/css";
+        myCss.rel = "stylesheet";
+        myCss.href = "rtwreport.css";
+        myDoc.getElementsByTagName("head")[0].appendChild(myCss);
+    }
+}
+
+function toggleNavSideBar(val) {
+    if (top.main) {
+        var tmp = top.main.cols.split(",");    
+
+        if (val === "on") {
+            tmp[tmp.length-1] = "15px";        
+        } else {
+            tmp[tmp.length-1] = "0";        
+        }
+        top.main.cols = tmp.join();    
+        if (top.rtwreport_nav_frame) 
+            top.rtwreport_nav_frame.location.href = "nav.html";    
+    }
+};
+
+function toggleNavToolBar(val) 
+{    
+    var midFrame = rtwMidFrame();
+    if (midFrame) {
+        var tmp1 = midFrame.rows.split(",");
+        var frameIdx = getNavToolbarFrameIdx();
+        if (val === "on") {
+            tmp1[frameIdx] = "40px";
+        } else {
+            tmp1[frameIdx] = "0";
+        }    
+        midFrame.rows = tmp1.join();
+        if (top.rtwreport_navToolbar_frame) {
+            top.rtwreport_navToolbar_frame.location.href = "navToolbar.html";
+        }
+    }
+};
+
+var GlobalConfig = {
+    navHiliteColor: "#0000ff",
+    fileLinkHiliteColor: "#ffff99",
+    navToolbarBgcolor: "ivory",
+    offset: 10,
+    hiliteToken: false
+};
+var NavSideBarState = {
+    calLineHeight: 0, 
+    overLink: false,
+    linkTarget: null,
+    lastLinkTarget: null,
+    linkTargetIdx: 0
+}
+function drawNavSideBar() {
+    var rectHeight = 1;
+    if (!top || !top.rtwreport_document_frame || !top.rtwreport_nav_frame) return;
+    
+    if (!top.RTW_TraceArgs.instance) return;
+    var fileIdx = top.RTW_TraceArgs.instance.getFileIdx();
+    if (fileIdx === undefined) return;
+    var rows = top.RTW_TraceArgs.instance.getRows(fileIdx);                
+    if (rows.length === 0) return; // no highlighted line 
+    
+    var codeTbl = top.rtwreport_document_frame.document.getElementById("codeTbl");
+    if (!codeTbl) return; // no code table
+    
+    var nRows = codeTbl.rows.length + 1;
+    var canvas = top.rtwreport_nav_frame.document.getElementById("canvas");                
+    canvas.width = top.rtwreport_nav_frame.innerWidth;
+    canvas.height = top.rtwreport_nav_frame.innerHeight-2;
+    NavSideBarState.calLineHeight = canvas.height/nRows;
+    if (canvas.getContext) {
+        var ctx = canvas.getContext("2d");
+        ctx.clearRect(0, 0, canvas.width, canvas.height);
+        // fill background 
+        ctx.fillStyle = GlobalConfig.navToolbarBgcolor;
+        ctx.fillRect(0, 0, canvas.width, canvas.height);
+        ctx.fillStyle = GlobalConfig.navHiliteColor;
+        for (var i=0;i<rows.length;i++) {
+            ctx.fillRect(0, Number(rows[i])*NavSideBarState.calLineHeight, canvas.width, rectHeight);
+        }
+        if (canvas.addEventListener) { 
+            canvas.addEventListener("mousemove", navBarOnMousemove, false);
+            canvas.addEventListener("click", navBarOnClick, false);
+        } else if (canvas.attachEvent) {
+            canvas.attachEvent("mousemove", navBarOnMousemove);
+            canvas.attachEvent("click", navBarOnClick);
+        }
+    }
+}
+
+function navBarOnMousemove(e) {
+    var y = e.clientY;
+    var tolerable_range = 5;
+    if (!top.RTW_TraceArgs.instance || !top.rtwreport_nav_frame) return;
+    var fileIdx = top.RTW_TraceArgs.instance.getFileIdx();
+    var rows = top.RTW_TraceArgs.instance.getRows(fileIdx);
+    var lineLoc,nextLineLoc;
+    top.rtwreport_nav_frame.document.body.style.cursor="";
+    NavSideBarState.overLink = false;
+    NavSideBarState.linkTarget = null;                 
+    NavSideBarState.linkTargetIdx = null;
+    for (var i=0;i<rows.length;i++) {
+        loc = rows[i]*NavSideBarState.calLineHeight;
+        // if within the tolerable range
+        if (Math.abs(y-loc) <= tolerable_range) {
+            top.rtwreport_nav_frame.document.body.style.cursor="pointer";
+            var canvas = top.rtwreport_nav_frame.document.getElementById("canvas");                
+            canvas.title = "navigate to line " + rows[i];
+            NavSideBarState.overLink = true;
+            NavSideBarState.linkTarget = rows[i];
+            NavSideBarState.linkTargetIdx = i;
+            break;
+        } 
+    }
+}
+
+function navBarOnClick(e) {
+    if (NavSideBarState.overLink && top.rtwreport_document_frame) {
+        rmTagToCurrentLine(); // remove current line tag
+        top.RTW_TraceInfo.instance.setCurrLineIdx(NavSideBarState.linkTargetIdx);
+        top.rtwreport_document_frame.document.location.href=RTW_TraceInfo.instance.getCurrentHRef();
+        top.addTagToCurrentLine(); // add current line tag
+        RTW_TraceInfo.instance.updateNavState();
+    }                
+}
+
+function removeInCodeTraceHighlight() {
+    var docObj = top.rtwreport_document_frame.document;
+    toggleNavSideBar("off");
+    toggleNavToolBar("off");
+    var nodes = docObj.getElementsByClassName("hilite");
+    // nodes is a live nodeList. Changing className modifies the list.
+    while(nodes.length) {
+        nodes[0].className = nodes[0].className.replace("hilite", "");
+    }
+    var nodes = docObj.getElementsByClassName("hiliteCurrentLine");
+    // nodes is a live nodeList. Changing className modifies the list.
+    while(nodes.length) {
+        nodes[0].className = nodes[0].className.replace("hiliteCurrentLine", "");
+    }
+    // reset RTW_TraceArgs.instance
+    RTW_TraceArgs.instance = null;
+    // remove highlight in content panel except the filelink
+    if (RTW_TraceInfo && RTW_TraceInfo.instance) {
+        var currFileIdx = RTW_TraceInfo.instance.getCurrFileIdx();
+        RTW_TraceInfo.instance.removeHighlighting();
+        RTW_TraceInfo.instance.highlightFileLink(currFileIdx);
+    }
+}
+
+function getInspectWindow() {
+    var divObj = document.createElement("div");
+    divObj.id = "popup_window";
+    return divObj;    
+}
+function getInspectData(file, anchorObj) {   
+    var metricsData = null;
+    var propObj = null;
+    var type = null;
+    var size = null;
+    var cm;
+    var srcFileName = RTW_TraceInfo.toSrcFileName(file);
+    if (top.rtwreport_nav_frame && top.rtwreport_nav_frame.CodeMetrics && 
+        top.rtwreport_nav_frame.CodeMetrics.instance && 
+        top.RTW_TraceArgs && top.RTW_TraceArgs.instance && 
+        !top.RTW_TraceArgs.instance.getUseExternalBrowser()) {
+        cm = top.rtwreport_nav_frame.CodeMetrics.instance;
+    }
+    if (cm && cm.getMetrics) {
+        metricsData = cm.getMetrics(anchorObj.text);
+        if (!metricsData) {
+            // try static token
+            metricsData =  cm.getMetrics(srcFileName + ":" + anchorObj.text);
+        }
+        if (metricsData) {            
+            type = metricsData.type;
+            if (type === "var") {
+                type = "Global Variable";
+                size = "(" + metricsData.size + " byte)";
+            } else if (type === "fcn") {
+                type = "Function";
+                if (metricsData.stackTotal === -1) {
+                    size = "(stack: " + metricsData.stack + " byte, total stack: recursion)";
+                } else {
+                    size = "(stack: " + metricsData.stack + " byte, total stack: "
+                        + metricsData.stackTotal + " byte)";
+                }
+            }            
+        }
+    }    
+    if (type === null) {
+        var defObj;
+        if (top.CodeDefine.instance.def[srcFileName + ":" + anchorObj.text]) {
+            defObj = top.CodeDefine.instance.def[srcFileName + ":" + anchorObj.text];
+        } else if (top.CodeDefine.instance.def[anchorObj.text]) {
+            defObj = top.CodeDefine.instance.def[anchorObj.text];
+        }
+        if (defObj) {
+            type = defObj.type;
+            if (type === "var") {
+                type = "Variable";
+            } else if (type === "fcn") {
+                type = "Function";
+            } else if (type === "type") {
+                type = "Type";
+            }
+            size = "";
+        }
+    }   
+    var propObj = document.createElement("div");
+    propObj.id = "token_property";
+    
+    var ulObj = document.createElement("ul");
+    ulObj.className = "popup_attrib_list";
+    if (type === null) {
+        ulObj.innerHTML = "Navigate to model";
+    } else {
+        ulObj.innerHTML = "<li>" + type + ": <var>" + anchorObj.text + "</var></li><li>"+
+            size + "</li>";
+    }
+    propObj.appendChild(ulObj);   
+    
+    return propObj;
+}
+function getInspectLink(file, pathname, anchorObj) {
+    var model = top.reportModel;
+    var tokenId = anchorObj.id;
+    var navObj = document.createElement("div");
+    navObj.id = "token_usage_nav";
+    ulObj = document.createElement("ul");
+    ulObj.id = "token_nav_links";
+    ulObj.className="popup_attrib_list";
+    var srcFileName = RTW_TraceInfo.toSrcFileName(file);
+    var defObj;
+    if (top.CodeDefine.instance.def[srcFileName + ":" + anchorObj.text]) {
+        defObj = top.CodeDefine.instance.def[srcFileName + ":" + anchorObj.text];
+    } else if (top.CodeDefine.instance.def[anchorObj.text]) {
+        defObj = top.CodeDefine.instance.def[anchorObj.text];
+    }
+    var line = anchorObj.id.substring(0,anchorObj.id.indexOf("c"));
+    // link to model
+    if (top.TraceInfoFlag && top.TraceInfoFlag.instance && 
+        top.TraceInfoFlag.instance.traceFlag[srcFileName+":"+anchorObj.id]) {
+        return null;
+    }
+    // link to def/decl
+    if (defObj) {
+        var filename = defObj.file.split(/\//);
+        filename = filename[filename.length-1];
+        ulObj.innerHTML += "<li><i>" + anchorObj.text + "</i> defined at <a target='rtwreport_document_frame' onclick=\"top.tokenLinkOnClick(event)\" href='" + defObj.file + "#" + defObj.line +
+            "'>" + RTW_TraceInfo.toSrcFileName(filename) + " line " + defObj.line + "</a></li>";
+    }
+    navObj.appendChild(ulObj);
+    return navObj;
+}
+
+var LastHiliteTokenId = null;
+function rmHiliteClickedToken() {
+    if (LastHiliteTokenId) {
+        var o = top.rtwreport_document_frame.document.getElementById(LastHiliteTokenId);
+        if (o) {
+            o.className = o.className.replace("hiliteToken", "");
+        }
+    }
+}
+function hiliteClickedToken(elem) {
+    rmHiliteClickedToken();
+    LastHiliteTokenId = elem.id;
+    elem.className += " hiliteToken";
+}
+
+var initLine = null;
+function scrollToInitLine() {
+    if (initLine) {
+        var lineElem = top.rtwreport_document_frame.document.getElementById(initLine);
+        if (lineElem) {
+            lineElem.scrollIntoView();
+        }
+    }
+}
+
+function scrollToLineBasedOnHash(hashValue) {
+    // move to the current highlight line if the hash is not empty
+    if (hashValue === "") {
+        if (top.RTW_TraceInfo.instance && top.RTW_TraceInfo.instance.getCurrLine() !== null) {
+            top.rtwreport_document_frame.document.location.href=top.RTW_TraceInfo.instance.getCurrentHRef();
+            top.initLine = top.rtwreport_document_frame.document.location.hash.substr(1);
+        }
+    } else {
+        // scroll and hilite line
+        hashValue = hashValue.substr(1);
+        if (isNaN(hashValue)) {
+            // #fcn_name
+            var pattern = "+newPage";
+            if (hashValue.indexOf(pattern) != -1) {
+                hashValue = hashValue.replace(pattern, '');
+                var lineElem = top.rtwreport_document_frame.document.getElementById(hashValue);
+                initLine = hashValue; // save initLine in case the dom is updated later by anootation
+                if (lineElem) {
+                    lineElem.scrollIntoView(); 
+                    addTagToCurrentLine();
+                }
+
+            } else {
+                var token = null;
+                pattern = ["var_", "fcn_", "type_"];
+                for (var i =0; i < pattern.length; i++) {
+                    if (hashValue.indexOf(pattern[i]) === 0) {
+                        token = hashValue.substr(pattern[i].length);
+                        break;
+                    }
+                }
+                if (token !== null && top.CodeDefine && top.CodeDefine.instance) {
+                    var addr;
+                    var filename = location.pathname.split(/\//);
+                    filename = filename[filename.length-1];  
+                    var srcFileName;
+                    if (top.RTW_TraceInfo) {
+                        srcFileName = top.RTW_TraceInfo.toSrcFileName(filename);
+                    }
+                    if (top.CodeDefine.instance.def[srcFileName + ":" + token]) {
+                        addr = top.CodeDefine.instance.def[srcFileName + ":" + token];
+                    } else {
+                        addr = top.CodeDefine.instance.def[token];
+                    }
+                    if (addr) {
+                        hilite_line(addr.line);
+                    }
+                } else { // token id like #line"c"#col
+                    if (hashValue.indexOf("c") !== -1) {
+                        hilite_line(hashValue.substr(0, hashValue.indexOf("c")), hashValue);
+                    }
+                }
+            }
+        } else { // #line
+            hilite_line(hashValue);
+        }
+    }
+    return false;
+    // hilite line number and scroll with an offset
+    function hilite_line(line, tokenId) {
+        if (isNaN(line)) return;
+        if (!tokenId) {
+            tokenId = line;
+        }
+        var elem = top.rtwreport_document_frame.document.getElementById(tokenId);               
+        hiliteClickedToken(elem);
+        initLine = offset_line(line);
+        scrollToInitLine();
+    }
+}
+
+function tokenLinkOnClick(event) {
+    var alink = event.currentTarget;
+    if (alink.pathname === top.rtwreport_document_frame.location.pathname) {
+        event.preventDefault();
+        scrollToLineBasedOnHash(alink.hash);
+    }
+    return false;
+}
+function inspectToken(file, pathname, event) {
+    var height = "70px";
+    // show inspect data
+    if (top.rtwreport_inspect_frame) { 
+        var windowObj = getInspectWindow();
+        var propObj = getInspectData(file, event.currentTarget);
+        var navObj = getInspectLink(file, pathname, event.currentTarget);
+        if (navObj === null) {
+            closeInspectWindow();
+            return false;
+        }
+        if (propObj === null) {
+            height = "50px";
+        } else {
+            windowObj.appendChild(propObj);
+        }
+        windowObj.appendChild(navObj);
+        var data = top.rtwreport_inspect_frame.document.getElementById("popup_window");
+        if (data) {
+            data.parentNode.replaceChild(windowObj.cloneNode(true), data);
+        }
+    }
+    var offsetHeight = 0;
+    var docHeight = 0;
+    if (typeof(top.rtwInspectFrame().document.body.offsetHeight) === "number") {
+        offsetHeight = top.rtwInspectFrame().document.body.offsetHeight;        
+    }
+    if (typeof(top.rtwInspectFrame().document.height) === "number") {
+        docHeight = top.rtwInspectFrame().document.height;
+    }   
+    if (offsetHeight > 0) {
+        height = ""+offsetHeight+"px";
+    } else if (docHeight > 0) {
+        height = ""+docHeight+"px";
+    }   
+    setInspectWindow(height);
+    return false;
+}
+function setInspectWindow(height) {
+    // show inspect code frame
+    var midFrame = rtwMidFrame();
+    if (midFrame) {
+        var tmp = midFrame.rows.split(",");
+        tmp[getInspectFrameIdx()] = height;    
+        midFrame.rows = tmp.join();
+    }
+}
+function closeInspectWindow() {
+    setInspectWindow(0);
+    return false;
+}
+
+// set the trace number in the navigation toolbar
+function setTraceNumber() {
+    if (RTW_TraceInfo.instance) {
+        var aFrame = rtwNavToolbarFrame();
+        if (aFrame) {
+            var node = aFrame.document.getElementById("rtwIdTraceNumber");
+            // calculate current line index over total highlighted lines
+            var currNum = RTW_TraceInfo.instance.getCurrLineIdx();
+            for (var idx=0;idx<RTW_TraceInfo.instance.getCurrFileIdx();idx++) {
+                currNum += RTW_TraceInfo.instance.getNumLines(idx);
+            }
+            if (node) {
+                node.innerHTML = String(currNum+1) + " of " + String(RTW_TraceInfo.instance.getTotalLines());
+            }
+        }
+    }
+}
+
+function offset_line(line, offset) {
+    if (offset == undefined)
+        offset = GlobalConfig.offset;
+    if (offset > 0)
+        line = (line > GlobalConfig.offset ? line - GlobalConfig.offset : 1);
+    return line;
+}
+
+function load_js(frame, file) {
+    var h = frame.document.getElementsByTagName("head")[0];
+    var o = h.getElementsByTagName('script');
+    for (var i=0;i<o.length;++i) {
+        if (o[i].getAttribute("src") === file) {
+            h.removeChild(o[i]);
+        }
+    }
+    var s = top.document.createElement("script");
+    s.type = "text/javascript";
+    s.src = file;
+    h.appendChild(s);
+}
+
+function reqOnClick(event) {
+    top.hiliteClickedToken(event.currentTarget);
+    return true;
+}
+function resize_NavToolbar_frame() {
+    resize_frame(getNavToolbarFrameIdx(), rtwNavToolbarFrame().document.height);
+}
+function resize_frame(id, height) {
+    if (height) {
+        var midFrame = top.rtwMidFrame();
+        var tmp = midFrame.rows.split(",");
+        if (tmp[id] !== "0%" && tmp[id] !== "0") {
+            tmp[id] = "" + height - 8 + "px";
+            midFrame.rows = tmp.join();
+        }
+    }
+}
+function getNavToolbarFrameIdx() {
+    return 0;
+}
+function getInspectFrameIdx() {
+    return 2;
+}
+function load_metrics() {
+    var alink = top.document.createElement("a");
+    alink.href = "metrics.js";
+    if (top.RTW_TraceArgs && top.RTW_TraceArgs.instance && !top.RTW_TraceArgs.instance.getUseExternalBrowser()) {
+        try {
+            load_js(top.rtwreport_nav_frame, alink.href);
+        } catch (err) {};
+    }
+}
+
+function getNavFrame() {
+    if (hasWebviewFrame()) {
+        return rtwTocFrame();
+    } else {
+        return rtwNavToolbarFrame();
+    }
+}
+
+function hasWebviewFrame() {
+    if (top.document.getElementById('rtw_webviewMidFrame')) {
+        return true;
+    } else {
+        return  false;
+    }
+}
+function hasInCodeTrace() {
+    return (typeof(Html2SrcLink) === "function") && !hasWebviewFrame();
+}
+function uniqueRows(rows) {
+    return rows.sort(function(a,b) {return a-b}).filter(
+        function(el,idx, arr) {
+            if (idx===arr.indexOf(el)) return true; return false;
+        }
+    );
+}
+function fileSelectorOnChange(event) {
+    var o = top.Html2SrcLink.instance.getLinkFromRoot(event.currentTarget.value)
+    if (o) {
+        top.rtwreport_document_frame.location.href = o;
+    } else {
+        top.rtwreport_document_frame.location.href = event.currentTarget.value;
+    }
+}
+function getBuildDir() {
+    var relPathToBuildDir = top.relPathToBuildDir.substr(0,top.relPathToBuildDir.lastIndexOf('/')+1);
+    var a = document.createElement('a');
+    a.href = relPathToBuildDir;
+    var ret = decodeURI(a.pathname);
+    if (top.isPC && ret[0] === "/") {
+        ret = ret.substr(1);
+    }
+    ret = ret.replace(new RegExp("/", 'g'), top.fileSep);
+    return ret;
+}
+
+function getCodeLocation() {
+    var codeLocation = getBuildDir();
+    // make build dir link in report visible by clearing 'display' style
+    docObj = top.rtwreport_document_frame;
+    var alinkTitle = docObj.document.getElementById("sourceLocationTitle");
+    if (alinkTitle && alinkTitle.style) {        
+        alinkTitle.style.display = "";
+    }    
+    var alink = docObj.document.getElementById("sourceLocation");
+    if (alink && alink.style) {        
+        alink.style.display = "";
+    }
+    return codeLocation;
+}
+// get code lines for the input SIDs
+function getCodeLines()
+{
+        var codeLocs = "";
+        var sid = RTW_TraceArgs.instance.getSID();
+        sid = sid.split(",");
+        if(sid.length == 1) {
+            codeLocs = RTW_Sid2UrlHash.instance.getUrlHash(sid[0]);     
+        }
+        else {
+            var fileLocs = [];
+            for(var i=0; i < sid.length; ++i) {
+                var locstr = RTW_Sid2UrlHash.instance.getUrlHash(sid[i]);  
+                var locs = locstr.split("&");
+                for(var j=0; j< locs.length; ++j) {
+                    locElems = locs[j].split(":");
+                    if(fileLocs[locElems[0]] == null) {
+                        fileLocs[locElems[0]] = locElems[1];
+                    } 
+                    else {
+                        fileLocs[locElems[0]] = fileLocs[locElems[0]].concat(",", locElems[1]);                        
+                    }
+                }
+            }
+    
+            // join all locations
+            Object.keys(fileLocs).forEach(function(key) {
+                if(codeLocs.length != 0) {
+                    codeLocs = codeLocs.concat("&", key, ":", fileLocs[key]);
+                } else {
+                    codeLocs = codeLocs.concat(key, ":", fileLocs[key]);
+                }
+            });
+        }
+    return codeLocs;
+}
+
+//add source to frame when _codegen_rpt openend from outisde matlab
+function loadDocFrameSource(modelName) {
+    const urlParams = new URLSearchParams(window.location.search);
+    const opendInExtBrowser = urlParams.get('useExternalBrowser');
+    if (opendInExtBrowser === null) {
+        document.getElementById('rtwreport_document_frame').src = modelName.concat('_survey.html');
+    }
+}

+ 31 - 0
Simulink/SMO_arctan_PLL_ert_rtw/html/rtwmsg.html

@@ -0,0 +1,31 @@
+<html>
+  <head>
+    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+    <title>Block-to-Code Highlighting Message</title>
+    <link rel="stylesheet" type="text/css" href="rtwreport.css" />
+  </head>
+  <body onload="if (top.rtwDisplayMessage) top.rtwDisplayMessage();">
+    <h1>Block-to-Code Highlighting Message</h1>
+    <p id="rtwMsg_notTraceable" style="display: none">
+      <img src=hilite_warning.png vspace="3px" align="top" />For '%s', you cannot trace code from the model because there is no traceability information.
+    </p>
+    <p id="rtwMsg_virtualBlock" style="display: none">
+      <img src=hilite_warning.png vspace="3px" align="top" />'%s' is a virtual block. Code is not generated for virtual blocks.
+    </p>
+    <p id="rtwMsg_reducedBlock" style="display: none">
+      <img src=hilite_warning.png vspace="3px" align="top" />'%s' is reduced during model compilation. Code is not generated for reduced blocks.
+    </p>
+    <p id="rtwMsg_reusableFunction" style="display: none">
+      <img src=hilite_warning.png vspace="3px" align="top" />Code for '%s' is from reusable function and cannot be traced. 
+    </p>
+    <p id="rtwMsg_blockOutsideSystem" style="display: none">
+      <img src=hilite_warning.png vspace="3px" align="top" />'%s' is outside of source subsystem and cannot be traced.
+    </p>
+    <p id="rtwMsg_illegalCharacter" style="display: none">
+      <img src=hilite_warning.png vspace="3px" align="top" />'%s' contains illegal character (single quote) that disables model-to-code navigation. Remove single quote from block name and rebuild model.
+    </p>
+    <p id="rtwMsg_maskedSubSystem" style="display: none">
+      <img src=hilite_warning.png vspace="3px" align="top" />'%s' is a masked subsystem and cannot be traced at the subsystem block level. Traceability information is available for individual blocks under the mask.
+    </p>
+  </body>
+</html>

+ 257 - 0
Simulink/SMO_arctan_PLL_ert_rtw/html/rtwreport.css

@@ -0,0 +1,257 @@
+/* Copyright 2011-2019 The MathWorks, Inc. */
+body,p,table {font-family: calibri, verdana, sans-serif;}
+button,.buton {font-family: calibri, verdana, sans-serif;}  
+button,.button {font-size: small;}
+.small_font {font-size: small;}
+h1 { font-weight: normal; color: #000066; }
+td { vertical-align: top }
+th { background-color: #eeeeee; text-align: left; }
+a:link { color: #0033cc; }
+a:visited { color: #666666; }
+input { font-family: sans-serif, verdana, calibri; }
+table {
+  background-color: #ffffff;
+  width: 100%;
+}
+
+table.toc, table.button, table.panel {
+  border-style: none;
+}
+
+/* LineNumber */
+.LN {
+    font-style: italic;
+    color: #888888;
+}
+
+/* Comment */
+.CT {
+    font-style: italic;
+    color: #117755;
+}
+
+/* PreProcessor */
+PP {
+    /* font-weight: bold; */
+    color: #992211;
+}
+
+/* Keyword */
+.KW {
+    /* font-weight: bold; */
+    color: #0000FF;
+}
+
+/* Datatype */
+.DT {
+    /* font-weight: bold; */
+    color: #112266
+}
+
+.highlighted {
+    background-color: yellow;
+}
+
+.highlightedCurrent {
+    background-color: rgba(150, 12, 116, 0.1);
+}
+
+input.search {
+    background-color: #ffffff;
+}
+
+input.failedSearch {
+    background-color: #F78181;
+}
+
+/* ensure that code2model links are comment green */
+a.code2model:link {
+    color: #117755;
+    font-style: italic;
+}
+a.code2model:visited{
+    color: #117755;
+    font-style: italic;
+}
+
+.toc td, .button td, .panel td {
+  border-style: none;
+  padding: 4px;
+}
+
+h1 { font-weight: normal; color: #000066; }
+td { vertical-align: top }
+th { background-color: #eeeeee; text-align: left; }
+a:link { color: #0033cc; }
+a:visited { color: #666666; }
+
+/******* table *******/
+/* default table style */
+table.AltRow {
+    border-collapse: collapse; border: none; border-spacing: 0pt;
+    border-top: solid #4F81BD 1.0pt; border-bottom: solid #4F81BD 1.0pt;
+}
+table.AltRow th, table.AltRow td { padding: 2pt 8pt 2pt 2pt }
+/* default alternating row style */
+table.AltRow tr.even td { background-color:#D3DFEE; border:none;}
+table.AltRow tr.odd td { background-color:#FFFFFF; border:none;}
+/* tr class="heading" */
+table.AltRow tr.heading td, table.AltRow th {
+  background-color:#FFFFFF; font-weight:bold; border:none;
+  border-bottom: solid #4F81BD 1.0pt;
+}
+/* table class="FirstColumn" */
+table.FirstColumn td:first-child { font-weight:bold }
+/* table class="TotalRow" */
+table.TotalRow tr:last-child { font-weight:bold }
+table.TotalRow tr:last-child td { border-top: solid #4F81BD 1.0pt }
+
+a.closeButton {
+	background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #f9f9f9), color-stop(1, #e9e9e9) );
+	background:-moz-linear-gradient( center top, #f9f9f9 5%, #e9e9e9 100% );
+	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f9f9', endColorstr='#e9e9e9');
+	background-color:#f9f9f9;
+	-webkit-border-top-left-radius:20px;
+	-moz-border-radius-topleft:20px;
+	border-top-left-radius:20px;
+	-webkit-border-top-right-radius:20px;
+	-moz-border-radius-topright:20px;
+	border-top-right-radius:20px;
+	-webkit-border-bottom-right-radius:20px;
+	-moz-border-radius-bottomright:20px;
+	border-bottom-right-radius:20px;
+	-webkit-border-bottom-left-radius:20px;
+	-moz-border-radius-bottomleft:20px;
+	border-bottom-left-radius:20px;
+	text-indent:0;
+	border:2px solid #dcdcdc;
+	display:inline-block;
+	color:#454143;
+	font-family:Arial;
+	font-size:15px;
+	font-weight:bold;
+	font-style:normal;
+	height:20px;
+	line-height:20px;
+	width:20px;
+	text-decoration:none;
+	text-align:center;
+        cursor: pointer;
+}
+a.closeButton:hover {
+	background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #e9e9e9), color-stop(1, #f9f9f9) );
+	background:-moz-linear-gradient( center top, #e9e9e9 5%, #f9f9f9 100% );
+	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e9e9e9', endColorstr='#f9f9f9');
+	background-color:#e9e9e9;
+}
+a.closeButton:active {
+	position:relative;
+	top:1px;
+}
+
+.button {
+	-moz-box-shadow:inset 0px 1px 0px 0px #ffffff;
+	-webkit-box-shadow:inset 0px 1px 0px 0px #ffffff;
+	box-shadow:inset 0px 1px 0px 0px #ffffff;
+	background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #ededed), color-stop(1, #dfdfdf) );
+	background:-moz-linear-gradient( center top, #ededed 5%, #dfdfdf 100% );
+	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed', endColorstr='#dfdfdf');
+	background-color:#ededed;
+	-webkit-border-top-left-radius:5px;
+	-moz-border-radius-topleft:5px;
+	border-top-left-radius:5px;
+	-webkit-border-top-right-radius:5px;
+	-moz-border-radius-topright:5px;
+	border-top-right-radius:5px;
+	-webkit-border-bottom-right-radius:5px;
+	-moz-border-radius-bottomright:5px;
+	border-bottom-right-radius:5px;
+	-webkit-border-bottom-left-radius:5px;
+	-moz-border-radius-bottomleft:5px;
+	border-bottom-left-radius:5px;
+	text-indent:0px;
+	border:1px solid #dcdcdc;
+	display:inline-block;
+	color:black;
+	font-family:Arial;
+	font-size:12px;
+	font-weight:bold;
+	font-style:normal;
+	height:12px;
+	line-height:12px;
+	width:45px;
+	text-decoration:none;
+	text-align:center;
+	text-shadow:1px 1px 0px #ffffff;
+}
+.button:hover {
+	background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #dfdfdf), color-stop(1, #ededed) );
+	background:-moz-linear-gradient( center top, #dfdfdf 5%, #ededed 100% );
+	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#dfdfdf', endColorstr='#ededed');
+	background-color:#dfdfdf;
+}.button:active {
+	position:relative;
+	top:1px;
+}.button:disabled {
+	color:#777777;
+}
+
+ul.nav_list {
+        list-style-type:none; 
+        display: block;		
+	margin: 0;
+	padding: 0;
+}
+ul.nav_list li {
+        list-style-type:none; 
+	display: inline;
+	margin: 0 18px 0 0;
+	padding: 0;
+}
+
+.nav_toolbar {
+    background-color: ivory;
+    margin-top: 0;
+}
+
+.inspect_body {
+    margin: 0;
+    margin-bottom: 0;
+    display: inline;
+    vertical-align:middle; 
+}
+
+table.nav_table {
+    background-color: ivory;
+    border: none;
+    width: 100%;
+    display: inline;
+    vertical-align:middle;    
+}
+
+table#rtwIdTracePanel > tr > td {
+    white-space: nowrap;
+    table-layout:fixed;
+    vertical-align:middle; 
+}
+
+table.nav_table > button {
+  height: 20px;
+}
+select#fileSelector {
+   padding: 5px;
+   font-size: 16px;
+   line-height: 1;
+   border-radius: 0;
+   height: 34px;
+}
+
+.treeTable table{
+   table-layout: fixed;
+}
+.treeTable td:first-child > span{
+   display: inline-block;
+   text-overflow: ellipsis;
+   overflow: hidden;
+   width: 100%;
+}

+ 92 - 0
Simulink/SMO_arctan_PLL_ert_rtw/html/rtwreport_utils.js

@@ -0,0 +1,92 @@
+// Copyright 2011-2013 The MathWorks, Inc.
+
+
+function local_onload() {
+    if (typeof top.rtwreport_document_frame !== "undefined") {
+        var docObj = window.document;
+        var alink =  docObj.getElementById("linkToText_plain");
+        if (alink) {
+            alink.href = "matlab:coder.internal.editUrlTextFile('" + alink.href + "')";
+        }
+        alink = docObj.getElementById("linkToCS");
+        if (alink) {
+            alink.href = "matlab:coder.internal.viewCodeConfigsetFromReport('" + alink.href + "');";
+        }
+    }
+}
+
+var utils = (function() {
+
+    // Load via Microsoft.XMLDOM--for older versions of IE
+    function loadXML_MSXMLDOM(filename, callback, async) {
+        if (navigator.appName == "Microsoft Internet Explorer") {
+            // Internet Explorer 5/6 
+            try {
+                var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
+                xmlDoc.async = async;
+                xmlDoc.onreadystatechange = function() {
+                    if (xmlDoc.readyState == 4) {
+                        callback(xmlDoc);
+                    }
+                }
+                xmlDoc.load(filename);
+                return true;
+            } catch(e) {
+            }
+        }
+        return false;
+    }
+
+    // Load via XMLHttpRequest
+    function loadXML_XHR(filename, callback, async) {
+        if (window.XMLHttpRequest) {
+            try {
+                var xhr = new XMLHttpRequest();
+                xhr.onreadystatechange = function() {
+                    if (this.readyState == 4) {
+                        callback(this.responseXML);
+                    }
+                }
+                xhr.open("GET", filename, async);
+                xhr.send("");
+                return true;
+            } catch(e) {
+                if (navigator.appName === "Netscape" && e.code === 1012) {
+                    // file not found: ignore
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
+    return {
+        trimText: function(s) {
+            // In IE9, String.trim not present
+            if (s && s.trim) {
+                return s.trim();
+            }
+            else {
+                return s;
+            }
+        },
+        getText: function(elt) {
+            // In IE9, use 'text' property rather than 'textContent'
+            return elt.textContent ? elt.textContent : elt.text;
+        },
+        loadXML: function(filename, callback, options) {
+            var async = !!options && typeof(options["async"]) !== "undefined" ? options.async : true;
+            if (!loadXML_XHR(filename, callback, async)) {
+                if (!loadXML_MSXMLDOM(filename, callback, async)) {
+                    return false;
+                }
+            }
+            return true;
+        }
+    };
+})();
+
+function code2model(sid) {
+    utils.loadXML("http://localhost:31415/matlab/feval/coder.internal.code2model?arguments=[\"" + sid + "\"]", function() {});
+    //window.location.href = "matlab:coder.internal.code2model('" + sid + "')";
+}

+ 210 - 0
Simulink/SMO_arctan_PLL_ert_rtw/html/rtwshrink.js

@@ -0,0 +1,210 @@
+// Copyright 2011-2017 The MathWorks, Inc.
+
+function RTW_STRUCT(prop, value) {
+    this.prop = prop;
+    if (typeof(value) == 'undefined') {
+        this.value = "";
+    } else {
+        this.value = value;
+    }
+}
+
+// initialize the cache when code generation report is first loaded
+function RTW_BOOK() {
+    this.length = 0;
+    this.rtw_pages = new Array();
+    this.getPage = function(file) {
+        return this.rtw_pages[file];
+    };
+    this.addPage = function(file) {
+        var page;
+        if (this.hasPage(file)) {
+            page = this.rtw_pages[file];
+        } else {
+            page = new RTW_PAGE(file);
+            this.rtw_pages[file] = page;
+        }
+        return page;
+    };
+    this.hasPage = function(file) {
+        return typeof(this.rtw_pages[file]) != 'undefined';
+    };
+    this.removePage = function(file) {
+            var tmp;
+            if (typeof(this.rtw_pages[file]) != 'undefined') {
+                tmp = this.rtw_pages[file];
+                delete this.rtw_pages[file];
+                this.length--;
+            }
+            return tmp;
+        };
+}
+
+if (!RTW_BOOK.instance) {
+    RTW_BOOK.instance = new RTW_BOOK();
+}
+
+function RTW_PAGE() {
+    this.length = 0;
+    this.items = new Array();
+    this.pagename = '';
+    if (arguments.length > 0 && typeof(arguments[1]) != 'undefined') {
+        this.pagename = arguments[1];
+    }
+
+    this.getItem = function(id) {
+        return this.items[id];
+    };
+    this.getItems = function() {
+        return this.items;
+    };
+    this.addItem = function(id, value) {
+        var tmp;
+        if (typeof(value) != 'undefined') {
+            if (typeof(this.items[id]) != 'undefined') {
+                this.length++;
+            } else {
+                tmp = this.items[id];
+            }
+            this.items[id] = value;
+            this.length++;
+        }
+        return tmp;
+    };
+    this.hasItem = function(id) {
+        return typeof(this.items[id]) != 'undefined';
+    };
+    this.removeItem = function(id) {
+        var tmp;
+        if (typeof(this.items[id]) != 'undefined') {
+            tmp = this.items[id];
+            delete this.items[id];
+            this.length--;
+        }
+        return tmp;
+    };
+}
+
+function rtwTableShrink(doc, obj, id, isSymbol) {
+    var hide, hide_text, show, show_text;
+    if (isSymbol) {
+        hide = "[-]";
+        hide_text = hide;
+        show = "[+]";
+        show_text = show;
+    } else {
+        hide = "[<u>hide</u>]";
+        hide_text  = "[hide]";
+        show = "[<u>show</u>]";
+        show_text = "[show]";
+    }
+    hide = "<span class='shrink-button'>" + hide + "</span>";
+    show = "<span class='shrink-button'>" + show + "</span>";
+    if (doc.getElementsByName) {
+        var o = doc.getElementsByName(id);
+        for (var oid = 0; oid < o.length; ++oid) {
+            if (o[oid].style.display === "none") {
+                o[oid].style.display =  "";
+            } else {
+                o[oid].style.display = "none";
+            }
+        }
+        if (o.length >= 0 && addToPage) {
+            addToPage(doc, o[0], 'display');
+        }
+    }
+
+    // IE supports innerText while other browsers support textContent
+    if (obj.textContent) {
+        var objText = obj.textContent;
+    } else {
+        var objText = obj.innerText;
+    }
+
+    if (objText.toLowerCase() === show_text.toLowerCase()) {
+        obj.innerHTML = hide;
+    } else {
+        obj.innerHTML = show;
+    }
+
+    if (addToPage) {
+        addToPage(doc, obj, 'innerHTML');
+    }
+}
+
+function rtwTableExpand(doc, controlObj, id) {
+    if (doc.getElementById) {
+        var obj = doc.getElementById(id);
+        if (obj && obj.style.display === "none") {
+            rtwTableShrink(doc, controlObj, id, false);
+        }
+    }
+}
+
+function restoreState(docObj) {
+    var filename = docObj.location.href;
+    if (RTW_BOOK.instance && RTW_BOOK.instance.hasPage(filename)) {
+        var page = RTW_BOOK.instance.getPage(filename);
+        var items = page.getItems();
+        var elem;
+        if (docObj.getElementsByName) {
+            for (var i in items) {
+                var o = docObj.getElementsByName(i);
+                for (var oid = 0; oid < o.length; ++oid) {
+                    elem = o[oid];
+                    if (items[i].prop === 'display') {
+                        if (elem.style.display === 'none') {
+                            elem.style.display = '';
+                        } else {
+                            elem.style.display = 'none';
+                        }
+                    } else if (items[i].prop === 'innerHTML') {
+                        elem.innerHTML = items[i].value;
+                    }
+                }
+            }
+        }
+    }
+}
+
+function addToPage(docObj, obj, prop) {
+    var filename = docObj.location.href;
+    if (RTW_BOOK.instance) {
+        var page;
+        if (RTW_BOOK.instance.hasPage(filename)) {
+            page = RTW_BOOK.instance.getPage(filename);
+        } else {
+            page = RTW_BOOK.instance.addPage(filename);
+        }
+        if (page.hasItem(obj.id)) {
+            page.removeItem(obj.id);
+        } else {
+            var my_struct;
+            if (prop === "display") {
+                my_struct = new RTW_STRUCT(prop, obj.style.display);
+            } else {
+                my_struct = new RTW_STRUCT(prop, obj.innerHTML);
+            }
+            page.addItem(obj.id, my_struct);
+        }
+    }
+}
+
+function rtwSwitchView(doc, obj1, obj2) {
+    if (doc.getElementsByName) {
+        var o = doc.getElementsByName(obj1);
+        for (var oid = 0; oid < o.length; ++oid) {
+            o[oid].style.display =  "none";
+        }
+        if (o.length >= 0 && addToPage) {
+            addToPage(doc, o[0], 'display');
+        }
+        var o = doc.getElementsByName(obj2);
+        for (var oid = 0; oid < o.length; ++oid) {
+            o[oid].style.display =  "";
+        }
+        if (o.length >= 0 && addToPage) {
+            addToPage(doc, o[0], 'display');
+        }
+    }
+}

+ 222 - 0
Simulink/SMO_arctan_PLL_ert_rtw/html/rtwtypes_h.html

@@ -0,0 +1,222 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script type="text/javascript" src="./js/coder_app.js"></script>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<script type="text/javascript" src="./rtwreport_utils.js"></script>
+<script type="text/javascript" src="./rtwannotate.js"></script>
+<link rel="stylesheet" type="text/css" href="./css/coder_app.css"/>
+</head>
+<body onload="srcFileOnload();">
+<pre id="code">
+<table class="code" id="codeTbl">
+<tr name="1" id="1">
+<td><a id="l1" class='ln'>1</a></td><td><span class="ct">/*</span></td></tr>
+<tr name="2" id="2">
+<td><a id="l2" class='ln'>2</a></td><td><span class="ct"> * File: rtwtypes.h</span></td></tr>
+<tr name="3" id="3">
+<td><a id="l3" class='ln'>3</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="4" id="4">
+<td><a id="l4" class='ln'>4</a></td><td><span class="ct"> * Code generated for Simulink model 'SMO_arctan_PLL'.</span></td></tr>
+<tr name="5" id="5">
+<td><a id="l5" class='ln'>5</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="6" id="6">
+<td><a id="l6" class='ln'>6</a></td><td><span class="ct"> * Model version                  : 1.812</span></td></tr>
+<tr name="7" id="7">
+<td><a id="l7" class='ln'>7</a></td><td><span class="ct"> * Simulink Coder version         : 9.4 (R2020b) 29-Jul-2020</span></td></tr>
+<tr name="8" id="8">
+<td><a id="l8" class='ln'>8</a></td><td><span class="ct"> * C/C++ source code generated on : Tue Apr 11 20:18:35 2023</span></td></tr>
+<tr name="9" id="9">
+<td><a id="l9" class='ln'>9</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="10" id="10">
+<td><a id="l10" class='ln'>10</a></td><td><span class="ct"> * Target selection: ert.tlc</span></td></tr>
+<tr name="11" id="11">
+<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Embedded hardware selection: ARM Compatible-&gt;ARM Cortex-M</span></td></tr>
+<tr name="12" id="12">
+<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * Code generation objectives:</span></td></tr>
+<tr name="13" id="13">
+<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> *    1. Execution efficiency</span></td></tr>
+<tr name="14" id="14">
+<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> *    2. RAM efficiency</span></td></tr>
+<tr name="15" id="15">
+<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
+<tr name="16" id="16">
+<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="17" id="17">
+<td><a id="l17" class='ln'>17</a></td><td></td></tr>
+<tr name="18" id="18">
+<td><a id="l18" class='ln'>18</a></td><td><span class="pp">#ifndef</span> <a id="18c9" class="tk">RTWTYPES_H</a></td></tr>
+<tr name="19" id="19">
+<td><a id="l19" class='ln'>19</a></td><td><span class="pp">#define</span> <a id="19c9" class="tk">RTWTYPES_H</a></td></tr>
+<tr name="20" id="20">
+<td><a id="l20" class='ln'>20</a></td><td></td></tr>
+<tr name="21" id="21">
+<td><a id="l21" class='ln'>21</a></td><td><span class="ct">/* Logical type definitions */</span></td></tr>
+<tr name="22" id="22">
+<td><a id="l22" class='ln'>22</a></td><td><span class="pp">#if</span> (<a id="22c6" class="tk">!</a><a id="22c7" class="tk">defined</a>(<a id="22c15" class="tk">__cplusplus</a>))</td></tr>
+<tr name="23" id="23">
+<td><a id="l23" class='ln'>23</a></td><td><span class="pp">#ifndef</span> false</td></tr>
+<tr name="24" id="24">
+<td><a id="l24" class='ln'>24</a></td><td><span class="pp">#define</span> false                          (0U)</td></tr>
+<tr name="25" id="25">
+<td><a id="l25" class='ln'>25</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="26" id="26">
+<td><a id="l26" class='ln'>26</a></td><td></td></tr>
+<tr name="27" id="27">
+<td><a id="l27" class='ln'>27</a></td><td><span class="pp">#ifndef</span> true</td></tr>
+<tr name="28" id="28">
+<td><a id="l28" class='ln'>28</a></td><td><span class="pp">#define</span> true                           (1U)</td></tr>
+<tr name="29" id="29">
+<td><a id="l29" class='ln'>29</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="30" id="30">
+<td><a id="l30" class='ln'>30</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="31" id="31">
+<td><a id="l31" class='ln'>31</a></td><td></td></tr>
+<tr name="32" id="32">
+<td><a id="l32" class='ln'>32</a></td><td><span class="ct">/*=======================================================================*</span></td></tr>
+<tr name="33" id="33">
+<td><a id="l33" class='ln'>33</a></td><td><span class="ct"> * Target hardware information</span></td></tr>
+<tr name="34" id="34">
+<td><a id="l34" class='ln'>34</a></td><td><span class="ct"> *   Device type: ARM Compatible-&gt;ARM Cortex-M</span></td></tr>
+<tr name="35" id="35">
+<td><a id="l35" class='ln'>35</a></td><td><span class="ct"> *   Number of bits:     char:   8    short:   16    int:  32</span></td></tr>
+<tr name="36" id="36">
+<td><a id="l36" class='ln'>36</a></td><td><span class="ct"> *                       long:  32    long long:  64</span></td></tr>
+<tr name="37" id="37">
+<td><a id="l37" class='ln'>37</a></td><td><span class="ct"> *                       native word size:  32</span></td></tr>
+<tr name="38" id="38">
+<td><a id="l38" class='ln'>38</a></td><td><span class="ct"> *   Byte ordering: LittleEndian</span></td></tr>
+<tr name="39" id="39">
+<td><a id="l39" class='ln'>39</a></td><td><span class="ct"> *   Signed integer division rounds to: Zero</span></td></tr>
+<tr name="40" id="40">
+<td><a id="l40" class='ln'>40</a></td><td><span class="ct"> *   Shift right on a signed integer as arithmetic shift: on</span></td></tr>
+<tr name="41" id="41">
+<td><a id="l41" class='ln'>41</a></td><td><span class="ct"> *=======================================================================*/</span></td></tr>
+<tr name="42" id="42">
+<td><a id="l42" class='ln'>42</a></td><td></td></tr>
+<tr name="43" id="43">
+<td><a id="l43" class='ln'>43</a></td><td><span class="ct">/*=======================================================================*</span></td></tr>
+<tr name="44" id="44">
+<td><a id="l44" class='ln'>44</a></td><td><span class="ct"> * Fixed width word size data types:                                     *</span></td></tr>
+<tr name="45" id="45">
+<td><a id="l45" class='ln'>45</a></td><td><span class="ct"> *   int8_T, int16_T, int32_T     - signed 8, 16, or 32 bit integers     *</span></td></tr>
+<tr name="46" id="46">
+<td><a id="l46" class='ln'>46</a></td><td><span class="ct"> *   uint8_T, uint16_T, uint32_T  - unsigned 8, 16, or 32 bit integers   *</span></td></tr>
+<tr name="47" id="47">
+<td><a id="l47" class='ln'>47</a></td><td><span class="ct"> *   real32_T, real64_T           - 32 and 64 bit floating point numbers *</span></td></tr>
+<tr name="48" id="48">
+<td><a id="l48" class='ln'>48</a></td><td><span class="ct"> *=======================================================================*/</span></td></tr>
+<tr name="49" id="49">
+<td><a id="l49" class='ln'>49</a></td><td><span class="kw">typedef</span> <span class="kw">signed</span> <span class="kw">char</span> <a id="49c21" class="tk">int8_T</a>;</td></tr>
+<tr name="50" id="50">
+<td><a id="l50" class='ln'>50</a></td><td><span class="kw">typedef</span> <span class="kw">unsigned</span> <span class="kw">char</span> <a id="50c23" class="tk">uint8_T</a>;</td></tr>
+<tr name="51" id="51">
+<td><a id="l51" class='ln'>51</a></td><td><span class="kw">typedef</span> <span class="kw">short</span> <a id="51c15" class="tk">int16_T</a>;</td></tr>
+<tr name="52" id="52">
+<td><a id="l52" class='ln'>52</a></td><td><span class="kw">typedef</span> <span class="kw">unsigned</span> <span class="kw">short</span> <a id="52c24" class="tk">uint16_T</a>;</td></tr>
+<tr name="53" id="53">
+<td><a id="l53" class='ln'>53</a></td><td><span class="kw">typedef</span> <span class="kw">int</span> <a id="53c13" class="tk">int32_T</a>;</td></tr>
+<tr name="54" id="54">
+<td><a id="l54" class='ln'>54</a></td><td><span class="kw">typedef</span> <span class="kw">unsigned</span> <span class="kw">int</span> <a id="54c22" class="tk">uint32_T</a>;</td></tr>
+<tr name="55" id="55">
+<td><a id="l55" class='ln'>55</a></td><td><span class="kw">typedef</span> <span class="kw">long</span> <span class="kw">long</span> <a id="55c19" class="tk">int64_T</a>;</td></tr>
+<tr name="56" id="56">
+<td><a id="l56" class='ln'>56</a></td><td><span class="kw">typedef</span> <span class="kw">unsigned</span> <span class="kw">long</span> <span class="kw">long</span> <a id="56c28" class="tk">uint64_T</a>;</td></tr>
+<tr name="57" id="57">
+<td><a id="l57" class='ln'>57</a></td><td><span class="kw">typedef</span> <span class="kw">float</span> <a id="57c15" class="tk">real32_T</a>;</td></tr>
+<tr name="58" id="58">
+<td><a id="l58" class='ln'>58</a></td><td><span class="kw">typedef</span> <span class="kw">double</span> <a id="58c16" class="tk">real64_T</a>;</td></tr>
+<tr name="59" id="59">
+<td><a id="l59" class='ln'>59</a></td><td></td></tr>
+<tr name="60" id="60">
+<td><a id="l60" class='ln'>60</a></td><td><span class="ct">/*===========================================================================*</span></td></tr>
+<tr name="61" id="61">
+<td><a id="l61" class='ln'>61</a></td><td><span class="ct"> * Generic type definitions: boolean_T, char_T, byte_T, int_T, uint_T,       *</span></td></tr>
+<tr name="62" id="62">
+<td><a id="l62" class='ln'>62</a></td><td><span class="ct"> *                           real_T, time_T, ulong_T, ulonglong_T.           *</span></td></tr>
+<tr name="63" id="63">
+<td><a id="l63" class='ln'>63</a></td><td><span class="ct"> *===========================================================================*/</span></td></tr>
+<tr name="64" id="64">
+<td><a id="l64" class='ln'>64</a></td><td><span class="kw">typedef</span> <span class="kw">double</span> <a id="64c16" class="tk">real_T</a>;</td></tr>
+<tr name="65" id="65">
+<td><a id="l65" class='ln'>65</a></td><td><span class="kw">typedef</span> <span class="kw">double</span> <a id="65c16" class="tk">time_T</a>;</td></tr>
+<tr name="66" id="66">
+<td><a id="l66" class='ln'>66</a></td><td><span class="kw">typedef</span> <span class="kw">unsigned</span> <span class="kw">char</span> <a id="66c23" class="tk">boolean_T</a>;</td></tr>
+<tr name="67" id="67">
+<td><a id="l67" class='ln'>67</a></td><td><span class="kw">typedef</span> <span class="kw">int</span> <a id="67c13" class="tk">int_T</a>;</td></tr>
+<tr name="68" id="68">
+<td><a id="l68" class='ln'>68</a></td><td><span class="kw">typedef</span> <span class="kw">unsigned</span> <span class="kw">int</span> <a id="68c22" class="tk">uint_T</a>;</td></tr>
+<tr name="69" id="69">
+<td><a id="l69" class='ln'>69</a></td><td><span class="kw">typedef</span> <span class="kw">unsigned</span> <span class="kw">long</span> <a id="69c23" class="tk">ulong_T</a>;</td></tr>
+<tr name="70" id="70">
+<td><a id="l70" class='ln'>70</a></td><td><span class="kw">typedef</span> <span class="kw">unsigned</span> <span class="kw">long</span> <span class="kw">long</span> <a id="70c28" class="tk">ulonglong_T</a>;</td></tr>
+<tr name="71" id="71">
+<td><a id="l71" class='ln'>71</a></td><td><span class="kw">typedef</span> <span class="kw">char</span> <a id="71c14" class="tk">char_T</a>;</td></tr>
+<tr name="72" id="72">
+<td><a id="l72" class='ln'>72</a></td><td><span class="kw">typedef</span> <span class="kw">unsigned</span> <span class="kw">char</span> <a id="72c23" class="tk">uchar_T</a>;</td></tr>
+<tr name="73" id="73">
+<td><a id="l73" class='ln'>73</a></td><td><span class="kw">typedef</span> <a id="73c9" class="tk">char_T</a> <a id="73c16" class="tk">byte_T</a>;</td></tr>
+<tr name="74" id="74">
+<td><a id="l74" class='ln'>74</a></td><td></td></tr>
+<tr name="75" id="75">
+<td><a id="l75" class='ln'>75</a></td><td><span class="ct">/*=======================================================================*</span></td></tr>
+<tr name="76" id="76">
+<td><a id="l76" class='ln'>76</a></td><td><span class="ct"> * Min and Max:                                                          *</span></td></tr>
+<tr name="77" id="77">
+<td><a id="l77" class='ln'>77</a></td><td><span class="ct"> *   int8_T, int16_T, int32_T     - signed 8, 16, or 32 bit integers     *</span></td></tr>
+<tr name="78" id="78">
+<td><a id="l78" class='ln'>78</a></td><td><span class="ct"> *   uint8_T, uint16_T, uint32_T  - unsigned 8, 16, or 32 bit integers   *</span></td></tr>
+<tr name="79" id="79">
+<td><a id="l79" class='ln'>79</a></td><td><span class="ct"> *=======================================================================*/</span></td></tr>
+<tr name="80" id="80">
+<td><a id="l80" class='ln'>80</a></td><td><span class="pp">#define</span> <a id="80c9" class="tk">MAX_int8_T</a>                     ((<a id="80c42" class="tk">int8_T</a>)(127))</td></tr>
+<tr name="81" id="81">
+<td><a id="l81" class='ln'>81</a></td><td><span class="pp">#define</span> <a id="81c9" class="tk">MIN_int8_T</a>                     ((<a id="81c42" class="tk">int8_T</a>)(<a id="81c50" class="tk">-</a>128))</td></tr>
+<tr name="82" id="82">
+<td><a id="l82" class='ln'>82</a></td><td><span class="pp">#define</span> <a id="82c9" class="tk">MAX_uint8_T</a>                    ((<a id="82c42" class="tk">uint8_T</a>)(255U))</td></tr>
+<tr name="83" id="83">
+<td><a id="l83" class='ln'>83</a></td><td><span class="pp">#define</span> <a id="83c9" class="tk">MAX_int16_T</a>                    ((<a id="83c42" class="tk">int16_T</a>)(32767))</td></tr>
+<tr name="84" id="84">
+<td><a id="l84" class='ln'>84</a></td><td><span class="pp">#define</span> <a id="84c9" class="tk">MIN_int16_T</a>                    ((<a id="84c42" class="tk">int16_T</a>)(<a id="84c51" class="tk">-</a>32768))</td></tr>
+<tr name="85" id="85">
+<td><a id="l85" class='ln'>85</a></td><td><span class="pp">#define</span> <a id="85c9" class="tk">MAX_uint16_T</a>                   ((<a id="85c42" class="tk">uint16_T</a>)(65535U))</td></tr>
+<tr name="86" id="86">
+<td><a id="l86" class='ln'>86</a></td><td><span class="pp">#define</span> <a id="86c9" class="tk">MAX_int32_T</a>                    ((<a id="86c42" class="tk">int32_T</a>)(2147483647))</td></tr>
+<tr name="87" id="87">
+<td><a id="l87" class='ln'>87</a></td><td><span class="pp">#define</span> <a id="87c9" class="tk">MIN_int32_T</a>                    ((<a id="87c42" class="tk">int32_T</a>)(<a id="87c51" class="tk">-</a>2147483647<a id="87c62" class="tk">-</a>1))</td></tr>
+<tr name="88" id="88">
+<td><a id="l88" class='ln'>88</a></td><td><span class="pp">#define</span> <a id="88c9" class="tk">MAX_uint32_T</a>                   ((<a id="88c42" class="tk">uint32_T</a>)(0xFFFFFFFFU))</td></tr>
+<tr name="89" id="89">
+<td><a id="l89" class='ln'>89</a></td><td><span class="pp">#define</span> <a id="89c9" class="tk">MAX_int64_T</a>                    ((<a id="89c42" class="tk">int64_T</a>)(9223372036854775807LL))</td></tr>
+<tr name="90" id="90">
+<td><a id="l90" class='ln'>90</a></td><td><span class="pp">#define</span> <a id="90c9" class="tk">MIN_int64_T</a>                    ((<a id="90c42" class="tk">int64_T</a>)(<a id="90c51" class="tk">-</a>9223372036854775807LL<a id="90c73" class="tk">-</a>1LL))</td></tr>
+<tr name="91" id="91">
+<td><a id="l91" class='ln'>91</a></td><td><span class="pp">#define</span> <a id="91c9" class="tk">MAX_uint64_T</a>                   ((<a id="91c42" class="tk">uint64_T</a>)(0xFFFFFFFFFFFFFFFFULL))</td></tr>
+<tr name="92" id="92">
+<td><a id="l92" class='ln'>92</a></td><td></td></tr>
+<tr name="93" id="93">
+<td><a id="l93" class='ln'>93</a></td><td><span class="ct">/* Block D-Work pointer type */</span></td></tr>
+<tr name="94" id="94">
+<td><a id="l94" class='ln'>94</a></td><td><span class="kw">typedef</span> <span class="kw">void</span> <a id="94c14" class="tk">*</a> <a id="94c16" class="tk">pointer_T</a>;</td></tr>
+<tr name="95" id="95">
+<td><a id="l95" class='ln'>95</a></td><td></td></tr>
+<tr name="96" id="96">
+<td><a id="l96" class='ln'>96</a></td><td><span class="pp">#endif</span>                                 <span class="ct">/* RTWTYPES_H */</span></td></tr>
+<tr name="97" id="97">
+<td><a id="l97" class='ln'>97</a></td><td></td></tr>
+<tr name="98" id="98">
+<td><a id="l98" class='ln'>98</a></td><td><span class="ct">/*</span></td></tr>
+<tr name="99" id="99">
+<td><a id="l99" class='ln'>99</a></td><td><span class="ct"> * File trailer for generated code.</span></td></tr>
+<tr name="100" id="100">
+<td><a id="l100" class='ln'>100</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="101" id="101">
+<td><a id="l101" class='ln'>101</a></td><td><span class="ct"> * [EOF]</span></td></tr>
+<tr name="102" id="102">
+<td><a id="l102" class='ln'>102</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="103" id="103">
+<td><a id="l103" class='ln'>103</a></td><td></td></tr>
+</table>
+</pre>
+</body>
+</html>

+ 559 - 0
Simulink/SMO_arctan_PLL_ert_rtw/html/search.js

@@ -0,0 +1,559 @@
+// Copyright 2007-2012 The MathWorks, Inc.
+
+function createHighlightSpanStart(num)
+{
+    return "<span class=\"highlighted\" name=\"highlight" + num + "\">";
+}
+
+var str2pos;   // This is a map between a tag stripped string and the original string. 
+function getTagStrippedStringAndMap(aString)
+{
+    var tagStrippedString = new String();
+
+    str2pos = new Array();
+
+    var inTag = false;
+    var inScript = false;
+    
+    for (var strPos = 0; strPos < aString.length; strPos++) {
+        if (inTag && aString.charAt(strPos) == '>') {
+            inTag = false;
+            if (inScript && (strPos > 8) && (aString.slice(strPos, strPos - 8) == '/script>')) {
+                inScript = false;
+            }            
+            continue;
+        } else if (!inTag && aString.charAt(strPos) == '<') {
+            inTag = true;
+            if (!inScript && aString.slice(strPos, strPos + 7) == '<script') {
+                inScript = true;
+                strPos += 7;
+            }
+            continue;
+        }        
+        
+        if (inTag == false && inScript == false) {
+            tagStrippedString += aString.charAt(strPos);
+            str2pos.push(strPos);
+        }
+    }
+    return tagStrippedString;
+}
+
+function escapeSpecialChars(string)
+{
+    // let the browser handle the escaping rather than doing a String.replace
+    // call
+    var div = document.createElement("div");
+    var text = document.createTextNode(string);
+    div.appendChild(text);
+    var escapedString = div.innerHTML;
+    delete div;
+    return escapedString;
+}
+
+// insert highlight tags into the body. Split it up into multiple sections if necessary
+// (i.e. if there is a tag in the middle).
+function insertHighlighting(bodyText, previ, i, length, highlightStartTag, highlightEndTag)
+{
+    var newText = "";    
+    newText = bodyText.slice(previ, str2pos[i]);
+    
+    // insert start
+    newText += highlightStartTag;
+    
+    var str2posprev = str2pos[i];    
+    // deal with intermediate tags
+    for(var cnt = i; cnt < i+length; cnt++)
+    {
+        if (str2pos[cnt] > str2posprev+1) // we have jumped some text, so there must be a tag
+        {
+            // insert end tag
+            newText += highlightEndTag;
+            
+            // insert intermediate body text tags
+            newText += bodyText.slice(str2posprev+1, str2pos[cnt]);
+            
+            // insert start tag
+            newText += highlightStartTag;
+        }
+        newText += bodyText.charAt(str2pos[cnt]);
+        str2posprev=str2pos[cnt];
+    }
+    
+    // insert end
+    newText += highlightEndTag;
+    return newText;
+    
+}
+
+// check to see if the sequence at position 'i' in taglessString is actually in
+// the middle of an escape sequence. We assume escape sequences follow the pattern
+// &<sequenceText>;. We check for &nbsp;, &lt;, &gt; and &amp;
+function isInEscapedSequence(i, taglessString, searchTerm)
+{
+    var escapeSeq = /&nbsp;|&lt;|&gt;|&amp;/gi;
+    var maxEscapeSeqLength = 6;
+    var startPos = 0; 
+    var endPos = 0;
+    
+    // exit if the search term has an escape sequence inside it
+    if (escapeSeq.test(searchTerm)) {
+        return false;
+    }
+
+    // reset the escape sequence
+    escapeSeq = /&nbsp;|&lt;|&gt;|&amp;/gi;
+
+    // go back in the string until we find an ampersand or we hit maxEscapeSeqLength characters
+    tempI = i;
+    var bFound = false;
+    while (tempI >= 0 && tempI > (i-maxEscapeSeqLength)) {
+        if (taglessString.charAt(tempI) == "&") {
+            startPos = tempI;
+            bFound = true;
+            break;
+        } 
+        tempI = tempI-1;
+        
+        // if we hit a ';' in any position other than the first while searching
+        // for an ampersand, then we cannot be inside an escape sequence
+        if (tempI >= 0 && taglessString.charAt(tempI) == ";") {
+            return false;
+        }        
+    }
+    if (!bFound) {
+        return false;
+    }
+    // reset the escape sequence
+    escapeSeq = /&nbsp;|&lt;|&gt;|&amp;/gi;
+
+    var subString = taglessString.substring(startPos, startPos + maxEscapeSeqLength);
+    return escapeSeq.test(subString);
+}
+
+// Adds highlighting to bodyText around searchTerm. Case sensitivity is optional.
+// hitCount is used to a) count the number of search matches and b) Generate unique
+// name strings for each highlighting SPAN element.
+function addHighlight(bodyText, searchTerm, caseSensitive, hitCount) 
+{
+    var highlightStartTag = ""; 
+    var highlightEndTag = "</span>";
+  
+    var newText = "";
+    var i = 0;
+    var previ = 0;
+    var bodyTextUC = bodyText.toUpperCase();
+    
+    if (caseSensitive) {
+        var taglessString = getTagStrippedStringAndMap(bodyText);
+    } else {
+        var taglessString = getTagStrippedStringAndMap(bodyTextUC);
+    }
+
+    // escape the search term in case the user input '<' or '>' etc
+    searchTerm = escapeSpecialChars(searchTerm);
+
+    if (!caseSensitive) {
+        var searchTermUC = searchTerm.toUpperCase();
+    } 
+
+    // search for subsequent matches
+    while (true) {
+        if (caseSensitive) {
+            i = taglessString.indexOf(searchTerm, i);
+        } else {
+            i = taglessString.indexOf(searchTermUC, i);
+        }
+        if (i < 0) break;
+        
+        // we have a match!
+        
+        // make sure that the match is not inside an escaped sequence of text
+        // such as &nbsp;
+        if (isInEscapedSequence(i, taglessString, searchTerm)) {
+            i=i+1;
+            continue;
+        }
+        
+        // insert highlight tags that cross tag boundaries
+        highlightStartTag = createHighlightSpanStart(hitCount);
+        hitCount = hitCount+1;
+        newText += insertHighlighting(bodyText, previ, i, searchTerm.length, highlightStartTag, highlightEndTag);        
+        previ = str2pos[i+searchTerm.length-1]+1;
+        
+        i = i + searchTerm.length;
+    }
+    
+    newText += bodyText.slice(previ, bodyText.length);
+    return [newText, hitCount];
+}
+
+function removeHighlight(bodyText) 
+{
+    // We use regular expressions here rather than a straight text search because 
+    // some browsers actually insert double quotes and capitalize.  Also, each highlight
+    // name is uniquely numbered in order of discovery
+    var highlightStartTag = /<span class=[\"]*highlighted(Current)*[\"]* name=[\"]*highlight[0-9]*[\"]*>/i;
+    var highlightEndTag = /<\/span>/i;
+    
+    var newText = "";
+
+    var startPatternFirstIndex = -1;
+    var startPatternLastIndex = -1;
+    
+    var endPatternFirstIndex = -1;
+    var endPatternLastIndex = -1;
+
+    while (highlightStartTag.test(bodyText) === true) {
+        startPatternFirstIndex = bodyText.search(highlightStartTag);
+        newText += bodyText.substring(0, startPatternFirstIndex);        
+        startPatternLastIndex = bodyText.indexOf('>', startPatternFirstIndex+1);
+        
+        bodyText = bodyText.substr(startPatternLastIndex+1);
+        endPatternFirstIndex = bodyText.search(highlightEndTag);
+        newText += bodyText.substring(0, endPatternFirstIndex);
+        endPatternLastIndex = endPatternFirstIndex+7;
+        
+        bodyText = bodyText.substr(endPatternLastIndex);
+    }
+    if (startPatternFirstIndex < 0) {
+        return bodyText;
+    } else {
+        return newText+bodyText;
+    }
+}
+
+function removeHighlightInAllDocs()
+{
+    if (top) {
+        for (var i = 0; i < top.frames.length; i++) {
+            if (top.frames[i].name === "rtwreport_contents_frame" || top.frames[i].name === "rtwreport_document_frame") {
+                var currentDoc = top.frames[i].document;
+                if (typeof currentDoc.body !== "undefined" && currentDoc.body !== null)
+                    currentDoc.body.innerHTML=removeHighlight(currentDoc.body.innerHTML);
+            }
+        }
+    }
+}
+
+function findInDoc(searchStringFromSubmitBox, doc, caseSensitive, hitCount) 
+{
+    var searchBody = doc.body.innerHTML;
+    // if the document is empty, or the documents is invalid, return
+    if (!doc.body || typeof(searchBody) === "undefined") {
+        return [false, hitCount];
+    }
+        
+    // inject highlighting code into html
+    var result = addHighlight(searchBody, searchStringFromSubmitBox, caseSensitive, hitCount);
+    doc.body.innerHTML = result[0];
+
+    return [true, result[1]];
+}
+
+var currentlyHighlightedHit;
+
+function getSpansByName(name)
+{
+    var allSpans = [];
+    for (i = 0; i < top.frames.length; i++) {
+        if (top.frames[i].name === "rtwreport_contents_frame" || top.frames[i].name === "rtwreport_document_frame") {
+            var currentDoc = top.frames[i].document; 
+            var highlightedSpans = currentDoc.getElementsByName(name);
+            if (highlightedSpans && highlightedSpans.length && highlightedSpans.length > 0) {
+            for (j = 0; j < highlightedSpans.length; j++) {
+            allSpans = allSpans.concat(highlightedSpans[j]);
+            }
+            }
+        }
+    }
+    return allSpans;
+}
+
+function isVisibleElement(elementID)
+{
+    if (elementID)
+        return elementID.offsetWidth > 0 || elementID.offsetHeight > 0;
+    else 
+        return false;
+}
+
+function areAllSpansVisible(spans)
+{
+    isVisible = true;
+    for (i = 0; i < highlightedSpans.length; i++) {
+        isVisible = isVisible && isVisibleElement(highlightedSpans[i]);
+    }
+    return isVisible;
+}
+
+function getNextVisible()
+{
+    var isVisible = false;
+    var foundVisible = false;
+    while (!isVisible) {
+        currentlyHighlightedHit = currentlyHighlightedHit + 1;
+        highlightedSpans = setCurrentSearchMatchIfVisible(currentlyHighlightedHit);
+        if (highlightedSpans && highlightedSpans.length > 0) {
+            isVisible = true;
+        } else if (currentlyHighlightedHit < totalHits) {
+            continue;
+        } else {
+            // we have reached the end
+            isVisible = false;
+            currentlyHighlightedHit = 0;
+            highlightedSpans = null;
+            break;
+        }
+    }
+    
+    return highlightedSpans;    
+}
+
+function clearCurrentSearchMatch()
+{
+    // clear prior highlighting
+    spanName = "highlight" + currentlyHighlightedHit;
+    highlightedSpans = getSpansByName(spanName);
+    if (highlightedSpans && highlightedSpans.length) {
+        for (i = 0; i < highlightedSpans.length; i++) {
+            if (highlightedSpans[i]) {
+                highlightedSpans[i].setAttribute("class", "highlighted");
+            }           
+        }
+    }
+}
+
+function setCurrentSearchMatchIfVisible(hitNum){
+    currentlyHighlightedHit = hitNum;
+    var spanName = "highlight" + currentlyHighlightedHit;
+    var highlightedSpans = getSpansByName(spanName);
+    if (highlightedSpans && highlightedSpans.length) {
+        for (i = 0; i < highlightedSpans.length; i++) {
+            if (!isVisibleElement(highlightedSpans[i])) {
+                highlightedSpans = null;
+                break;
+            }
+        }
+    }
+    return highlightedSpans;
+}
+
+// this takes in an option integer 'hitNum'. If not specified, it scrolls
+// to the next hit
+function scrollToNextHit(hitNum)
+{
+    var i = 0;
+    var found = false;
+    var spanName = "";
+    var highlightedSpans;
+    var searchBox = findElement('searchTxtBox');
+    
+    clearCurrentSearchMatch();
+    
+    if (hitNum) {
+        // if a number is provided, use it
+        highlightedSpans = setCurrentSearchMatchIfVisible(hitNum);
+    } else {        
+        // start working on next element to highlight
+        highlightedSpans = getNextVisible();
+    }    
+    
+    // we found the current 
+    if (highlightedSpans && highlightedSpans.length > 0) {
+        highlightedSpans[0].scrollIntoView();
+        for (i = 0; i < highlightedSpans.length; i++) {
+            highlightedSpans[i].setAttribute("class", "highlightedCurrent");
+        }
+        searchBox.setAttribute("class", "search");
+        
+    // if highlightedSpans is invalid, then we did not find any valid, visible subsequent matches
+    // wrap to beginning or indicate no matches
+    } else {
+        // Element not found. Scroll to first visible element        
+        currentlyHighlightedHit = 0;
+        var highlightedSpans = getNextVisible(currentlyHighlightedHit);
+        if (highlightedSpans && highlightedSpans.length > 0) {
+            highlightedSpans[0].scrollIntoView();
+            for (i = 0; i < highlightedSpans.length; i++) {
+                highlightedSpans[i].setAttribute("class", "highlightedCurrent");
+            }
+            searchBox.setAttribute("class", "search");
+        } else {
+            // there aren't any matches
+            searchBox.setAttribute("class", "failedSearch");
+        }
+    }
+}
+
+// find search box
+function findElement(element)
+{
+    var i = 0;
+    for (i = 0; i < top.frames.length; i++) {
+        if (top.frames[i].name === "rtwreport_contents_frame" || top.frames[i].name === "rtwreport_document_frame") {
+            var elem = top.frames[i].document.getElementById(element);
+            if (elem) { 
+                return elem;
+            }
+        }
+    }
+}
+
+// Restore search term once form is submitted
+function initSearchBox(strInitValue)
+{
+    var txtBox = findElement('searchTxtBox');
+    if (txtBox) {
+        txtBox.value = strInitValue;
+    }
+}
+
+// Sets focus back on to the text box
+function setFocusOnTxtBox()
+{
+    var txtBox = findElement('searchTxtBox');
+    if (txtBox) {
+        txtBox.focus();
+        txtBox.select();
+    }
+    return txtBox;
+}
+
+var previousSearchString;
+var totalHits;
+function findInAllDocs(searchStringFromSubmitBox, caseSensitive)
+{
+    if (previousSearchString != searchStringFromSubmitBox) {
+        // If the search string has changed or a new page has been loaded, do a new search
+        var hitCount = 1;
+        var i = 0;        
+        var success = false;
+        previousSearchString = searchStringFromSubmitBox;
+               
+        // start by removing traceinfo highlighting
+        rtwRemoveHighlighting();
+        
+        // remove all previous search highlighting
+        removeHighlightInAllDocs();
+
+        // 1. Iterate through all frames in window and search
+        for (i = 0; i < top.frames.length; i++) {
+            var currentDoc = top.frames[i].document;    
+            
+            // if we have no search term, restore
+            if (searchStringFromSubmitBox !== "") {
+                // search and highlight in all frames
+                var srchResult = findInDoc(searchStringFromSubmitBox, currentDoc, caseSensitive, hitCount);
+                hitCount = srchResult[1];
+                totalHits = srchResult[1];
+            }
+        }
+
+        // 2. Restore search term once form is submitted and text highlighted        
+        if (searchStringFromSubmitBox != "") {
+            strInitValue = searchStringFromSubmitBox;
+        }    
+        initSearchBox(strInitValue);
+
+        // 3. Scroll to the first hit encountered
+        scrollToNextHit(1);
+        
+        // 4. Set focus back to text box and select text
+        var txtBox = setFocusOnTxtBox();
+        if (txtBox) {
+            txtBox.select();
+        }
+                
+    } else {
+        // If the search string is the same, then scroll to the next 
+        // hit if the hit is valid. Else wrap back.        
+        scrollToNextHit();
+    }
+    return false;
+}
+
+// if the search box is empty, clear highlighting
+function clearIfEmpty()
+{
+    txtBox = findElement('searchTxtBox');
+    if (txtBox.value == "") {
+        txtBox.setAttribute("class", "search");
+        removeHighlightInAllDocs();
+        previousSearchString="";
+        setFocusOnTxtBox();
+    }
+}
+
+function keyPressSwitchyard(keyPressEvent)
+{ 
+    var kc;
+    keyPressEvent = (keyPressEvent == null ? window.keyPressEvent : keyPressEvent);
+
+    // typically IE does not support this
+    if (!keyPressEvent || (typeof keyPressEvent == "undefined")) {
+        return;
+    }
+    
+    if (keyPressEvent.keyCode) {    
+        kc=keyPressEvent.keyCode;
+    } else if (keyPressEvent.which) {
+        kc=keyPressEvent.which;   
+    } else {
+        return;
+    }
+
+    // we do not care about the browser find appearing. If it does appear, then 
+    // we are running an external browser and that is okay.
+    
+    // handle Ctrl-Key combinations
+    if (keyPressEvent.ctrlKey) {
+        switch (kc) {
+            case 70: // Ctrl-F
+            { 
+              setFocusOnTxtBox();
+              break;
+            }
+            
+            default: break;
+        }
+    } 
+}
+
+function installDocumentKeyPressHandler()
+{
+    var i = 0;
+    for (i = 0; i < top.frames.length; i++) {
+        var currentDoc = top.frames[i].document;    
+        currentDoc.onkeydown = keyPressSwitchyard;
+    }    
+    top.document.onkeydown = keyPressSwitchyard;
+    
+    // This also clears search related highlighting
+    removeHighlightInAllDocs();
+    currentlyHighlightedHit = 0;
+    if (previousSearchString) initSearchBox(previousSearchString);
+    previousSearchString = "";
+}
+
+// This function is a onresize callback for the rtwreport_contents_frame
+// It is used to dynamically resize the searchbox based on the size of the frame.
+function setWidthDynamic(frameID, elementID, extraSpace, minSize)
+{
+    var frame = document.getElementById(frameID);
+    
+    // sanity check input args
+    if (frame && extraSpace > 0 && minSize > 0) {
+        var frameWidth = frame.scrollWidth;
+        var newSize = extraSpace + minSize + 40; // 40 is the extra whitespace
+        var element = findElement(elementID);
+        if (element)
+        {
+            if (frameWidth < newSize) {
+                element.style.width = minSize;
+            } else {
+                element.style.width = frameWidth - extraSpace - 40;
+            }
+        }
+    }
+}

BIN
Simulink/SMO_arctan_PLL_ert_rtw/html/spinner.gif


+ 2 - 0
Simulink/SMO_arctan_PLL_ert_rtw/modelsources.txt

@@ -0,0 +1,2 @@
+  SMO_arctan_PLL.c
+

+ 4 - 0
Simulink/SMO_arctan_PLL_ert_rtw/rtw_proj.tmw

@@ -0,0 +1,4 @@
+Simulink Coder project for SMO_arctan_PLL using . MATLAB root = D:\Program Files\R2020b. SimStruct date: 29-7月-2020 14:26:22
+This file is generated by Simulink Coder for use by the make utility
+to determine when to rebuild objects when the name of the current Simulink Coder project changes.
+The rtwinfomat located at: ..\slprj\ert\SMO_arctan_PLL\tmwinternal\binfo.mat

+ 102 - 0
Simulink/SMO_arctan_PLL_ert_rtw/rtwtypes.h

@@ -0,0 +1,102 @@
+/*
+ * File: rtwtypes.h
+ *
+ * Code generated for Simulink model 'SMO_arctan_PLL'.
+ *
+ * Model version                  : 1.812
+ * Simulink Coder version         : 9.4 (R2020b) 29-Jul-2020
+ * C/C++ source code generated on : Tue Apr 11 20:18:35 2023
+ *
+ * Target selection: ert.tlc
+ * Embedded hardware selection: ARM Compatible->ARM Cortex-M
+ * 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 Cortex-M
+ *   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]
+ */

BIN
Simulink/SMO_arctan_PLL_ert_rtw/rtwtypeschksum.mat


+ 2 - 0
Simulink/SMO_arctan_PLL_ert_rtw/setup_msvc.bat

@@ -0,0 +1,2 @@
+set "VSCMD_START_DIR=%CD%"
+"d:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\VCVARSALL.BAT " amd64

+ 0 - 3072
Simulink/angle.csv

@@ -1,3072 +0,0 @@
--219 
--182 
--175 
--121 
--38 
-0 
--4 
-45 
-118 
-160 
-101 
-88 
-129 
-133 
-101 
-94 
-123 
-103 
-78 
-80 
-95 
-78 
--14 
--17 
-5 
--8 
--76 
--104 
--104 
--121 
--194 
--216 
--223 
--237 
--270 
--252 
--204 
--180 
--185 
--151 
--103 
--55 
--65 
--63 
--31 
--30 
--101 
--117 
--101 
--116 
--200 
--255 
--236 
--246 
--295 
--318 
--308 
--308 
--313 
--304 
--280 
--275 
--291 
--298 
--258 
--251 
--265 
--290 
--243 
--201 
--177 
--144 
--78 
--25 
-7 
-47 
-102 
-153 
-166 
-155 
-157 
-167 
-170 
-157 
-166 
-171 
-159 
-169 
-201 
-219 
-208 
-179 
-193 
-195 
-175 
-141 
-118 
-106 
-71 
-52 
-41 
-23 
--9 
--13 
-25 
-53 
-59 
-82 
-114 
-140 
-153 
-157 
-174 
-181 
-122 
-64 
-62 
-40 
--24 
--101 
--109 
--118 
--173 
--207 
--202 
--210 
--219 
--215 
--197 
--181 
--206 
--219 
--189 
--175 
--201 
--219 
--204 
--168 
--152 
--116 
--54 
-2 
-22 
-59 
-119 
-171 
-174 
-175 
-200 
-217 
-188 
-188 
-227 
-227 
-183 
-163 
-210 
-230 
-183 
-159 
-175 
-187 
-138 
-127 
-143 
-120 
-48 
-37 
-61 
-36 
--31 
--44 
-1 
-28 
-20 
-57 
-114 
-150 
-148 
-167 
-231 
-245 
-207 
-177 
-207 
-213 
-144 
-124 
-150 
-116 
-70 
-82 
-133 
-108 
-47 
-55 
-107 
-117 
-69 
-59 
-91 
-86 
-32 
-52 
-76 
-43 
-10 
-64 
-132 
-188 
-164 
-221 
-305 
-340 
-328 
-375 
-436 
-405 
-341 
-346 
-406 
-381 
-306 
-310 
-351 
-341 
-258 
-264 
-288 
-252 
-177 
-169 
-205 
-161 
-61 
-60 
-79 
-45 
--44 
--32 
-19 
-15 
--8 
-35 
-106 
-113 
-88 
-139 
-210 
-202 
-127 
-108 
-159 
-106 
-9 
--10 
-19 
--34 
--151 
--107 
--70 
--154 
--250 
--185 
--133 
--167 
--253 
--226 
--157 
--190 
--274 
--241 
--222 
--197 
--331 
--343 
--704 
-599 
-104 
-254 
-367 
-309 
-275 
-254 
-394 
-293 
-233 
-232 
-333 
-257 
-187 
-195 
-269 
-266 
-199 
-223 
-259 
-246 
-170 
-198 
-246 
-162 
-88 
-105 
-161 
-101 
-7 
-34 
-90 
-87 
-49 
-100 
-171 
-175 
-144 
-192 
-246 
-256 
-183 
-187 
-214 
-175 
-85 
-84 
-104 
-43 
--38 
--13 
-22 
--31 
--138 
--95 
--39 
--45 
--121 
--96 
--52 
--76 
--126 
--108 
--68 
--103 
--138 
--89 
-0 
-25 
-10 
-86 
-163 
-204 
-178 
-232 
-303 
-279 
-198 
-240 
-301 
-286 
-204 
-222 
-253 
-240 
-188 
-197 
-224 
-186 
-112 
-133 
-167 
-102 
-21 
-30 
-42 
-2 
--81 
--73 
--46 
--58 
--86 
--37 
-20 
-44 
-31 
-81 
-144 
-149 
-116 
-121 
-147 
-107 
-53 
-49 
-67 
-12 
--35 
--23 
-19 
--11 
--72 
--33 
-11 
--4 
--33 
--9 
-7 
--10 
--35 
--17 
-3 
--20 
--52 
-9 
-70 
-102 
-118 
-173 
-247 
-271 
-289 
-335 
-392 
-379 
-315 
-317 
-354 
-341 
-276 
-278 
-296 
-286 
-244 
-245 
-252 
-205 
-153 
-159 
-177 
-112 
-42 
-50 
-55 
-21 
--46 
--55 
--34 
--54 
--43 
--13 
-31 
-43 
-49 
-91 
-132 
-157 
-98 
-100 
-105 
-63 
-9 
--5 
--33 
--105 
--160 
--149 
--154 
--212 
--246 
--217 
--180 
--173 
--214 
--187 
--153 
--157 
--174 
--145 
--128 
--143 
--151 
--105 
--39 
--12 
-7 
-74 
-145 
-183 
-196 
-259 
-319 
-326 
-277 
-293 
-330 
-351 
-318 
-347 
-393 
-356 
-352 
-394 
-419 
-406 
-360 
-387 
-415 
-383 
-331 
-315 
-316 
-286 
-238 
-235 
-229 
-205 
-195 
-226 
-282 
-284 
-282 
-319 
-363 
-373 
-365 
-394 
-392 
-356 
-291 
-283 
-304 
-235 
-159 
-148 
-160 
-102 
-43 
-34 
-44 
-32 
-10 
-32 
-39 
-13 
--43 
--14 
-11 
--29 
--104 
--59 
--5 
-4 
-18 
-75 
-144 
-167 
-180 
-241 
-310 
-316 
-273 
-275 
-320 
-310 
-274 
-281 
-303 
-254 
-231 
-246 
-273 
-222 
-159 
-177 
-219 
-173 
-116 
-98 
-120 
-77 
-19 
-14 
-40 
-14 
--18 
-25 
-87 
-107 
-96 
-137 
-196 
-217 
-201 
-214 
-240 
-201 
-144 
-130 
-156 
-96 
-19 
-32 
-60 
-63 
-7 
-10 
-43 
-51 
-9 
-31 
-49 
-24 
--17 
-11 
-61 
-44 
--44 
--2 
-67 
-87 
-91 
-147 
-215 
-248 
-255 
-302 
-365 
-365 
-306 
-286 
-323 
-308 
-255 
-232 
-261 
-224 
-192 
-186 
-210 
-166 
-93 
-102 
-121 
-106 
-39 
-25 
-37 
-10 
--64 
--66 
--48 
--62 
--83 
--55 
-1 
-11 
-19 
-58 
-101 
-114 
-101 
-114 
-134 
-81 
-24 
-23 
-34 
--19 
--91 
--92 
--72 
--101 
--152 
--152 
--153 
--160 
--150 
--155 
--138 
--156 
--164 
--133 
--128 
--147 
--167 
--142 
--106 
--74 
--36 
-20 
-67 
-98 
-144 
-200 
-245 
-242 
-220 
-241 
-247 
-238 
-248 
-251 
-240 
-231 
-248 
-278 
-281 
-261 
-245 
-250 
-238 
-212 
-167 
-132 
-107 
-56 
-42 
-11 
--41 
--49 
--33 
--3 
-9 
-12 
-46 
-70 
-89 
-93 
-99 
-98 
-62 
-19 
-0 
--17 
--79 
--139 
--156 
--178 
--211 
--256 
--280 
--280 
--309 
--315 
--303 
--320 
--337 
--354 
--325 
--340 
--374 
--391 
--378 
--338 
--320 
--280 
--236 
--182 
--158 
--127 
--74 
--39 
--45 
--59 
--63 
--68 
--73 
--90 
--94 
--113 
--139 
--141 
--127 
--138 
--177 
--216 
--211 
--221 
--268 
--304 
--332 
--344 
--373 
--401 
--421 
--428 
--433 
--418 
--382 
--363 
--361 
--333 
--291 
--267 
--262 
--264 
--250 
--292 
--330 
--356 
--366 
--392 
--459 
--460 
--452 
--462 
--498 
--507 
--489 
--476 
--468 
--460 
--450 
--462 
--476 
--466 
--449 
--448 
--482 
--471 
--434 
--391 
--369 
--324 
--270 
--234 
--201 
--160 
--108 
--96 
--95 
--115 
--110 
--102 
--119 
--116 
--124 
--133 
--141 
--146 
--132 
--167 
--212 
--230 
--224 
--237 
--274 
--313 
--337 
--357 
--392 
--420 
--444 
--461 
--460 
--449 
--411 
--388 
--371 
--331 
--299 
--280 
--269 
--263 
--272 
--291 
--322 
--328 
--354 
--400 
--446 
--477 
--490 
--516 
--531 
--573 
--595 
--569 
--562 
--561 
--569 
--589 
--585 
--577 
--593 
--585 
--606 
--606 
--596 
--552 
--498 
--462 
--426 
--376 
--316 
--268 
--251 
--215 
--196 
--224 
--225 
--211 
--179 
--185 
--233 
--215 
--173 
--170 
--184 
--180 
--164 
--192 
--212 
--212 
--189 
--255 
--318 
--323 
--296 
--353 
--413 
--406 
--360 
--349 
--367 
--320 
--269 
--254 
--267 
--241 
--173 
--174 
--234 
--257 
--252 
--286 
--390 
--410 
--396 
--456 
--534 
--510 
--502 
--555 
--617 
--599 
--544 
--563 
--632 
--610 
--581 
--586 
--645 
--617 
--573 
--617 
--638 
--579 
--499 
--471 
--481 
--408 
--329 
--297 
--329 
--274 
--220 
--241 
--321 
--300 
--231 
--270 
--350 
--351 
--304 
--309 
--388 
--385 
--335 
--361 
--434 
--399 
--354 
--414 
--503 
--475 
--418 
--454 
--551 
--522 
--467 
--471 
--500 
--437 
--356 
--339 
--364 
--319 
--242 
--226 
--269 
--267 
--213 
--236 
--303 
--314 
--277 
--287 
--358 
--337 
--280 
--273 
--355 
--331 
--280 
--281 
--304 
--282 
--231 
--259 
--308 
--274 
--228 
--242 
--316 
--282 
--219 
--182 
--175 
--121 
--38 
-0 
--4 
-45 
-118 
-160 
-101 
-88 
-129 
-133 
-101 
-94 
-123 
-103 
-78 
-80 
-95 
-78 
--14 
--17 
-5 
--8 
--76 
--104 
--104 
--121 
--194 
--216 
--223 
--237 
--270 
--252 
--204 
--180 
--185 
--151 
--103 
--55 
--65 
--63 
--31 
--30 
--101 
--117 
--101 
--116 
--200 
--255 
--236 
--246 
--295 
--318 
--308 
--308 
--313 
--304 
--280 
--275 
--291 
--298 
--258 
--251 
--265 
--290 
--243 
--201 
--177 
--144 
--78 
--25 
-7 
-47 
-102 
-153 
-166 
-155 
-157 
-167 
-170 
-157 
-166 
-171 
-159 
-169 
-201 
-219 
-208 
-179 
-193 
-195 
-175 
-141 
-118 
-106 
-71 
-52 
-41 
-23 
--9 
--13 
-25 
-53 
-59 
-82 
-114 
-140 
-153 
-157 
-174 
-181 
-122 
-64 
-62 
-40 
--24 
--101 
--109 
--118 
--173 
--207 
--202 
--210 
--219 
--215 
--197 
--181 
--206 
--219 
--189 
--175 
--201 
--219 
--204 
--168 
--152 
--116 
--54 
-2 
-22 
-59 
-119 
-171 
-174 
-175 
-200 
-217 
-188 
-188 
-227 
-227 
-183 
-163 
-210 
-230 
-183 
-159 
-175 
-187 
-138 
-127 
-143 
-120 
-48 
-37 
-61 
-36 
--31 
--44 
-1 
-28 
-20 
-57 
-114 
-150 
-148 
-167 
-231 
-245 
-207 
-177 
-207 
-213 
-144 
-124 
-150 
-116 
-70 
-82 
-133 
-108 
-47 
-55 
-107 
-117 
-69 
-59 
-91 
-86 
-32 
-52 
-76 
-43 
-10 
-64 
-132 
-188 
-164 
-221 
-305 
-340 
-328 
-375 
-436 
-405 
-341 
-346 
-406 
-381 
-306 
-310 
-351 
-341 
-258 
-264 
-288 
-252 
-177 
-169 
-205 
-161 
-61 
-60 
-79 
-45 
--44 
--32 
-19 
-15 
--8 
-35 
-106 
-113 
-88 
-139 
-210 
-202 
-127 
-108 
-159 
-106 
-9 
--10 
-19 
--34 
--151 
--107 
--70 
--154 
--250 
--185 
--133 
--167 
--253 
--226 
--157 
--190 
--274 
--241 
--222 
--197 
--331 
--343 
--704 
-599 
-104 
-254 
-367 
-309 
-275 
-254 
-394 
-293 
-233 
-232 
-333 
-257 
-187 
-195 
-269 
-266 
-199 
-223 
-259 
-246 
-170 
-198 
-246 
-162 
-88 
-105 
-161 
-101 
-7 
-34 
-90 
-87 
-49 
-100 
-171 
-175 
-144 
-192 
-246 
-256 
-183 
-187 
-214 
-175 
-85 
-84 
-104 
-43 
--38 
--13 
-22 
--31 
--138 
--95 
--39 
--45 
--121 
--96 
--52 
--76 
--126 
--108 
--68 
--103 
--138 
--89 
-0 
-25 
-10 
-86 
-163 
-204 
-178 
-232 
-303 
-279 
-198 
-240 
-301 
-286 
-204 
-222 
-253 
-240 
-188 
-197 
-224 
-186 
-112 
-133 
-167 
-102 
-21 
-30 
-42 
-2 
--81 
--73 
--46 
--58 
--86 
--37 
-20 
-44 
-31 
-81 
-144 
-149 
-116 
-121 
-147 
-107 
-53 
-49 
-67 
-12 
--35 
--23 
-19 
--11 
--72 
--33 
-11 
--4 
--33 
--9 
-7 
--10 
--35 
--17 
-3 
--20 
--52 
-9 
-70 
-102 
-118 
-173 
-247 
-271 
-289 
-335 
-392 
-379 
-315 
-317 
-354 
-341 
-276 
-278 
-296 
-286 
-244 
-245 
-252 
-205 
-153 
-159 
-177 
-112 
-42 
-50 
-55 
-21 
--46 
--55 
--34 
--54 
--43 
--13 
-31 
-43 
-49 
-91 
-132 
-157 
-98 
-100 
-105 
-63 
-9 
--5 
--33 
--105 
--160 
--149 
--154 
--212 
--246 
--217 
--180 
--173 
--214 
--187 
--153 
--157 
--174 
--145 
--128 
--143 
--151 
--105 
--39 
--12 
-7 
-74 
-145 
-183 
-196 
-259 
-319 
-326 
-277 
-293 
-330 
-351 
-318 
-347 
-393 
-356 
-352 
-394 
-419 
-406 
-360 
-387 
-415 
-383 
-331 
-315 
-316 
-286 
-238 
-235 
-229 
-205 
-195 
-226 
-282 
-284 
-282 
-319 
-363 
-373 
-365 
-394 
-392 
-356 
-291 
-283 
-304 
-235 
-159 
-148 
-160 
-102 
-43 
-34 
-44 
-32 
-10 
-32 
-39 
-13 
--43 
--14 
-11 
--29 
--104 
--59 
--5 
-4 
-18 
-75 
-144 
-167 
-180 
-241 
-310 
-316 
-273 
-275 
-320 
-310 
-274 
-281 
-303 
-254 
-231 
-246 
-273 
-222 
-159 
-177 
-219 
-173 
-116 
-98 
-120 
-77 
-19 
-14 
-40 
-14 
--18 
-25 
-87 
-107 
-96 
-137 
-196 
-217 
-201 
-214 
-240 
-201 
-144 
-130 
-156 
-96 
-19 
-32 
-60 
-63 
-7 
-10 
-43 
-51 
-9 
-31 
-49 
-24 
--17 
-11 
-61 
-44 
--44 
--2 
-67 
-87 
-91 
-147 
-215 
-248 
-255 
-302 
-365 
-365 
-306 
-286 
-323 
-308 
-255 
-232 
-261 
-224 
-192 
-186 
-210 
-166 
-93 
-102 
-121 
-106 
-39 
-25 
-37 
-10 
--64 
--66 
--48 
--62 
--83 
--55 
-1 
-11 
-19 
-58 
-101 
-114 
-101 
-114 
-134 
-81 
-24 
-23 
-34 
--19 
--91 
--92 
--72 
--101 
--152 
--152 
--153 
--160 
--150 
--155 
--138 
--156 
--164 
--133 
--128 
--147 
--167 
--142 
--106 
--74 
--36 
-20 
-67 
-98 
-144 
-200 
-245 
-242 
-220 
-241 
-247 
-238 
-248 
-251 
-240 
-231 
-248 
-278 
-281 
-261 
-245 
-250 
-238 
-212 
-167 
-132 
-107 
-56 
-42 
-11 
--41 
--49 
--33 
--3 
-9 
-12 
-46 
-70 
-89 
-93 
-99 
-98 
-62 
-19 
-0 
--17 
--79 
--139 
--156 
--178 
--211 
--256 
--280 
--280 
--309 
--315 
--303 
--320 
--337 
--354 
--325 
--340 
--374 
--391 
--378 
--338 
--320 
--280 
--236 
--182 
--158 
--127 
--74 
--39 
--45 
--59 
--63 
--68 
--73 
--90 
--94 
--113 
--139 
--141 
--127 
--138 
--177 
--216 
--211 
--221 
--268 
--304 
--332 
--344 
--373 
--401 
--421 
--428 
--433 
--418 
--382 
--363 
--361 
--333 
--291 
--267 
--262 
--264 
--250 
--292 
--330 
--356 
--366 
--392 
--459 
--460 
--452 
--462 
--498 
--507 
--489 
--476 
--468 
--460 
--450 
--462 
--476 
--466 
--449 
--448 
--482 
--471 
--434 
--391 
--369 
--324 
--270 
--234 
--201 
--160 
--108 
--96 
--95 
--115 
--110 
--102 
--119 
--116 
--124 
--133 
--141 
--146 
--132 
--167 
--212 
--230 
--224 
--237 
--274 
--313 
--337 
--357 
--392 
--420 
--444 
--461 
--460 
--449 
--411 
--388 
--371 
--331 
--299 
--280 
--269 
--263 
--272 
--291 
--322 
--328 
--354 
--400 
--446 
--477 
--490 
--516 
--531 
--573 
--595 
--569 
--562 
--561 
--569 
--589 
--585 
--577 
--593 
--585 
--606 
--606 
--596 
--552 
--498 
--462 
--426 
--376 
--316 
--268 
--251 
--215 
--196 
--224 
--225 
--211 
--179 
--185 
--233 
--215 
--173 
--170 
--184 
--180 
--164 
--192 
--212 
--212 
--189 
--255 
--318 
--323 
--296 
--353 
--413 
--406 
--360 
--349 
--367 
--320 
--269 
--254 
--267 
--241 
--173 
--174 
--234 
--257 
--252 
--286 
--390 
--410 
--396 
--456 
--534 
--510 
--502 
--555 
--617 
--599 
--544 
--563 
--632 
--610 
--581 
--586 
--645 
--617 
--573 
--617 
--638 
--579 
--499 
--471 
--481 
--408 
--329 
--297 
--329 
--274 
--220 
--241 
--321 
--300 
--231 
--270 
--350 
--351 
--304 
--309 
--388 
--385 
--335 
--361 
--434 
--399 
--354 
--414 
--503 
--475 
--418 
--454 
--551 
--522 
--467 
--471 
--500 
--437 
--356 
--339 
--364 
--319 
--242 
--226 
--269 
--267 
--213 
--236 
--303 
--314 
--277 
--287 
--358 
--337 
--280 
--273 
--355 
--331 
--280 
--281 
--304 
--282 
--231 
--259 
--308 
--274 
--228 
--242 
--316 
--282 
--219 
--182 
--175 
--121 
--38 
-0 
--4 
-45 
-118 
-160 
-101 
-88 
-129 
-133 
-101 
-94 
-123 
-103 
-78 
-80 
-95 
-78 
--14 
--17 
-5 
--8 
--76 
--104 
--104 
--121 
--194 
--216 
--223 
--237 
--270 
--252 
--204 
--180 
--185 
--151 
--103 
--55 
--65 
--63 
--31 
--30 
--101 
--117 
--101 
--116 
--200 
--255 
--236 
--246 
--295 
--318 
--308 
--308 
--313 
--304 
--280 
--275 
--291 
--298 
--258 
--251 
--265 
--290 
--243 
--201 
--177 
--144 
--78 
--25 
-7 
-47 
-102 
-153 
-166 
-155 
-157 
-167 
-170 
-157 
-166 
-171 
-159 
-169 
-201 
-219 
-208 
-179 
-193 
-195 
-175 
-141 
-118 
-106 
-71 
-52 
-41 
-23 
--9 
--13 
-25 
-53 
-59 
-82 
-114 
-140 
-153 
-157 
-174 
-181 
-122 
-64 
-62 
-40 
--24 
--101 
--109 
--118 
--173 
--207 
--202 
--210 
--219 
--215 
--197 
--181 
--206 
--219 
--189 
--175 
--201 
--219 
--204 
--168 
--152 
--116 
--54 
-2 
-22 
-59 
-119 
-171 
-174 
-175 
-200 
-217 
-188 
-188 
-227 
-227 
-183 
-163 
-210 
-230 
-183 
-159 
-175 
-187 
-138 
-127 
-143 
-120 
-48 
-37 
-61 
-36 
--31 
--44 
-1 
-28 
-20 
-57 
-114 
-150 
-148 
-167 
-231 
-245 
-207 
-177 
-207 
-213 
-144 
-124 
-150 
-116 
-70 
-82 
-133 
-108 
-47 
-55 
-107 
-117 
-69 
-59 
-91 
-86 
-32 
-52 
-76 
-43 
-10 
-64 
-132 
-188 
-164 
-221 
-305 
-340 
-328 
-375 
-436 
-405 
-341 
-346 
-406 
-381 
-306 
-310 
-351 
-341 
-258 
-264 
-288 
-252 
-177 
-169 
-205 
-161 
-61 
-60 
-79 
-45 
--44 
--32 
-19 
-15 
--8 
-35 
-106 
-113 
-88 
-139 
-210 
-202 
-127 
-108 
-159 
-106 
-9 
--10 
-19 
--34 
--151 
--107 
--70 
--154 
--250 
--185 
--133 
--167 
--253 
--226 
--157 
--190 
--274 
--241 
--222 
--197 
--331 
--343 
--704 
-599 
-104 
-254 
-367 
-309 
-275 
-254 
-394 
-293 
-233 
-232 
-333 
-257 
-187 
-195 
-269 
-266 
-199 
-223 
-259 
-246 
-170 
-198 
-246 
-162 
-88 
-105 
-161 
-101 
-7 
-34 
-90 
-87 
-49 
-100 
-171 
-175 
-144 
-192 
-246 
-256 
-183 
-187 
-214 
-175 
-85 
-84 
-104 
-43 
--38 
--13 
-22 
--31 
--138 
--95 
--39 
--45 
--121 
--96 
--52 
--76 
--126 
--108 
--68 
--103 
--138 
--89 
-0 
-25 
-10 
-86 
-163 
-204 
-178 
-232 
-303 
-279 
-198 
-240 
-301 
-286 
-204 
-222 
-253 
-240 
-188 
-197 
-224 
-186 
-112 
-133 
-167 
-102 
-21 
-30 
-42 
-2 
--81 
--73 
--46 
--58 
--86 
--37 
-20 
-44 
-31 
-81 
-144 
-149 
-116 
-121 
-147 
-107 
-53 
-49 
-67 
-12 
--35 
--23 
-19 
--11 
--72 
--33 
-11 
--4 
--33 
--9 
-7 
--10 
--35 
--17 
-3 
--20 
--52 
-9 
-70 
-102 
-118 
-173 
-247 
-271 
-289 
-335 
-392 
-379 
-315 
-317 
-354 
-341 
-276 
-278 
-296 
-286 
-244 
-245 
-252 
-205 
-153 
-159 
-177 
-112 
-42 
-50 
-55 
-21 
--46 
--55 
--34 
--54 
--43 
--13 
-31 
-43 
-49 
-91 
-132 
-157 
-98 
-100 
-105 
-63 
-9 
--5 
--33 
--105 
--160 
--149 
--154 
--212 
--246 
--217 
--180 
--173 
--214 
--187 
--153 
--157 
--174 
--145 
--128 
--143 
--151 
--105 
--39 
--12 
-7 
-74 
-145 
-183 
-196 
-259 
-319 
-326 
-277 
-293 
-330 
-351 
-318 
-347 
-393 
-356 
-352 
-394 
-419 
-406 
-360 
-387 
-415 
-383 
-331 
-315 
-316 
-286 
-238 
-235 
-229 
-205 
-195 
-226 
-282 
-284 
-282 
-319 
-363 
-373 
-365 
-394 
-392 
-356 
-291 
-283 
-304 
-235 
-159 
-148 
-160 
-102 
-43 
-34 
-44 
-32 
-10 
-32 
-39 
-13 
--43 
--14 
-11 
--29 
--104 
--59 
--5 
-4 
-18 
-75 
-144 
-167 
-180 
-241 
-310 
-316 
-273 
-275 
-320 
-310 
-274 
-281 
-303 
-254 
-231 
-246 
-273 
-222 
-159 
-177 
-219 
-173 
-116 
-98 
-120 
-77 
-19 
-14 
-40 
-14 
--18 
-25 
-87 
-107 
-96 
-137 
-196 
-217 
-201 
-214 
-240 
-201 
-144 
-130 
-156 
-96 
-19 
-32 
-60 
-63 
-7 
-10 
-43 
-51 
-9 
-31 
-49 
-24 
--17 
-11 
-61 
-44 
--44 
--2 
-67 
-87 
-91 
-147 
-215 
-248 
-255 
-302 
-365 
-365 
-306 
-286 
-323 
-308 
-255 
-232 
-261 
-224 
-192 
-186 
-210 
-166 
-93 
-102 
-121 
-106 
-39 
-25 
-37 
-10 
--64 
--66 
--48 
--62 
--83 
--55 
-1 
-11 
-19 
-58 
-101 
-114 
-101 
-114 
-134 
-81 
-24 
-23 
-34 
--19 
--91 
--92 
--72 
--101 
--152 
--152 
--153 
--160 
--150 
--155 
--138 
--156 
--164 
--133 
--128 
--147 
--167 
--142 
--106 
--74 
--36 
-20 
-67 
-98 
-144 
-200 
-245 
-242 
-220 
-241 
-247 
-238 
-248 
-251 
-240 
-231 
-248 
-278 
-281 
-261 
-245 
-250 
-238 
-212 
-167 
-132 
-107 
-56 
-42 
-11 
--41 
--49 
--33 
--3 
-9 
-12 
-46 
-70 
-89 
-93 
-99 
-98 
-62 
-19 
-0 
--17 
--79 
--139 
--156 
--178 
--211 
--256 
--280 
--280 
--309 
--315 
--303 
--320 
--337 
--354 
--325 
--340 
--374 
--391 
--378 
--338 
--320 
--280 
--236 
--182 
--158 
--127 
--74 
--39 
--45 
--59 
--63 
--68 
--73 
--90 
--94 
--113 
--139 
--141 
--127 
--138 
--177 
--216 
--211 
--221 
--268 
--304 
--332 
--344 
--373 
--401 
--421 
--428 
--433 
--418 
--382 
--363 
--361 
--333 
--291 
--267 
--262 
--264 
--250 
--292 
--330 
--356 
--366 
--392 
--459 
--460 
--452 
--462 
--498 
--507 
--489 
--476 
--468 
--460 
--450 
--462 
--476 
--466 
--449 
--448 
--482 
--471 
--434 
--391 
--369 
--324 
--270 
--234 
--201 
--160 
--108 
--96 
--95 
--115 
--110 
--102 
--119 
--116 
--124 
--133 
--141 
--146 
--132 
--167 
--212 
--230 
--224 
--237 
--274 
--313 
--337 
--357 
--392 
--420 
--444 
--461 
--460 
--449 
--411 
--388 
--371 
--331 
--299 
--280 
--269 
--263 
--272 
--291 
--322 
--328 
--354 
--400 
--446 
--477 
--490 
--516 
--531 
--573 
--595 
--569 
--562 
--561 
--569 
--589 
--585 
--577 
--593 
--585 
--606 
--606 
--596 
--552 
--498 
--462 
--426 
--376 
--316 
--268 
--251 
--215 
--196 
--224 
--225 
--211 
--179 
--185 
--233 
--215 
--173 
--170 
--184 
--180 
--164 
--192 
--212 
--212 
--189 
--255 
--318 
--323 
--296 
--353 
--413 
--406 
--360 
--349 
--367 
--320 
--269 
--254 
--267 
--241 
--173 
--174 
--234 
--257 
--252 
--286 
--390 
--410 
--396 
--456 
--534 
--510 
--502 
--555 
--617 
--599 
--544 
--563 
--632 
--610 
--581 
--586 
--645 
--617 
--573 
--617 
--638 
--579 
--499 
--471 
--481 
--408 
--329 
--297 
--329 
--274 
--220 
--241 
--321 
--300 
--231 
--270 
--350 
--351 
--304 
--309 
--388 
--385 
--335 
--361 
--434 
--399 
--354 
--414 
--503 
--475 
--418 
--454 
--551 
--522 
--467 
--471 
--500 
--437 
--356 
--339 
--364 
--319 
--242 
--226 
--269 
--267 
--213 
--236 
--303 
--314 
--277 
--287 
--358 
--337 
--280 
--273 
--355 
--331 
--280 
--281 
--304 
--282 
--231 
--259 
--308 
--274 
--228 
--242 
--316 
--282 

+ 0 - 3072
Simulink/angle2.csv

@@ -1,3072 +0,0 @@
-1150 
-1179 
-1201 
-1177 
-1080 
-1091 
-1149 
-1148 
-1133 
-1109 
-1111 
-1133 
-1059 
-1039 
-1082 
-1086 
-1039 
-1060 
-1068 
-1089 
-1037 
-977 
-1039 
-1042 
-968 
-966 
-1020 
-1046 
-1002 
-997 
-1073 
-1076 
-1056 
-1081 
-1144 
-1152 
-1109 
-1121 
-1179 
-1205 
-1203 
-1147 
-1182 
-1208 
-1184 
-1214 
-1253 
-1261 
-1277 
-1285 
-1366 
-1364 
-1317 
-1266 
-1342 
-1330 
-1315 
-1296 
-1299 
-1280 
-1218 
-1272 
-1257 
-1274 
-1218 
-1211 
-1251 
-1277 
-1216 
-1273 
-1267 
-1280 
-1306 
-1332 
-1357 
-1383 
-1390 
-1335 
-1391 
-1386 
-1362 
-1338 
-1364 
-1339 
-1265 
-1250 
-1298 
-1251 
-1245 
-1244 
-1270 
-1246 
-1180 
-1169 
-1163 
-1112 
-1075 
-1113 
-1130 
-1102 
-1078 
-1053 
-1056 
-1055 
-1031 
-1007 
-1050 
-1017 
-984 
-1037 
-1039 
-1111 
-1087 
-1113 
-1189 
-1227 
-1203 
-1225 
-1292 
-1267 
-1243 
-1237 
-1258 
-1248 
-1196 
-1222 
-1198 
-1178 
-1177 
-1179 
-1237 
-1227 
-1203 
-1178 
-1249 
-1230 
-1196 
-1182 
-1252 
-1233 
-1209 
-1257 
-1273 
-1267 
-1175 
-1188 
-1214 
-1175 
-1160 
-1141 
-1167 
-1164 
-1140 
-1166 
-1174 
-1246 
-1171 
-1187 
-1218 
-1249 
-1215 
-1186 
-1235 
-1202 
-1159 
-1153 
-1129 
-1155 
-1071 
-1093 
-1141 
-1148 
-1129 
-1110 
-1135 
-1138 
-1132 
-1153 
-1189 
-1214 
-1140 
-1166 
-1228 
-1217 
-1193 
-1191 
-1208 
-1198 
-1100 
-1122 
-1148 
-1155 
-1100 
-1034 
-1087 
-1045 
-1016 
-1028 
-1008 
-1030 
-956 
-1032 
-1057 
-1060 
-1022 
-1035 
-1010 
-1022 
-962 
-938 
-905 
-889 
-865 
-823 
-831 
-892 
-818 
-844 
-870 
-887 
-871 
-870 
-873 
-867 
-875 
-850 
-876 
-852 
-828 
-812 
-829 
-832 
-831 
-807 
-872 
-858 
-884 
-860 
-885 
-906 
-910 
-963 
-966 
-1014 
-1063 
-1066 
-1042 
-1085 
-1093 
-1078 
-1095 
-1080 
-1146 
-1122 
-1075 
-1124 
-1122 
-1125 
-1105 
-1127 
-1116 
-1123 
-1076 
-1080 
-1083 
-1082 
-1057 
-1092 
-1077 
-1085 
-1060 
-1067 
-1043 
-1038 
-1091 
-1048 
-1088 
-1046 
-1053 
-1042 
-1059 
-1039 
-1052 
-1046 
-1052 
-1078 
-1073 
-1085 
-1075 
-1077 
-1076 
-1088 
-1068 
-1030 
-1060 
-1005 
-1012 
-961 
-954 
-917 
-934 
-910 
-894 
-892 
-837 
-818 
-839 
-882 
-899 
-875 
-942 
-917 
-893 
-819 
-850 
-871 
-869 
-881 
-898 
-888 
-900 
-920 
-946 
-977 
-930 
-941 
-954 
-930 
-956 
-932 
-920 
-937 
-940 
-935 
-960 
-909 
-871 
-897 
-878 
-889 
-865 
-868 
-867 
-842 
-854 
-830 
-834 
-796 
-771 
-842 
-823 
-799 
-779 
-800 
-853 
-802 
-778 
-780 
-770 
-728 
-731 
-743 
-782 
-758 
-734 
-760 
-753 
-761 
-737 
-786 
-789 
-778 
-758 
-816 
-842 
-822 
-838 
-887 
-890 
-826 
-828 
-872 
-871 
-824 
-840 
-911 
-883 
-918 
-916 
-928 
-954 
-880 
-883 
-882 
-934 
-883 
-890 
-866 
-832 
-813 
-812 
-828 
-864 
-789 
-765 
-805 
-772 
-742 
-718 
-744 
-770 
-746 
-753 
-752 
-773 
-758 
-775 
-750 
-794 
-752 
-737 
-753 
-779 
-723 
-681 
-707 
-682 
-658 
-684 
-719 
-735 
-693 
-687 
-713 
-739 
-714 
-690 
-766 
-787 
-717 
-716 
-769 
-795 
-794 
-796 
-822 
-848 
-824 
-868 
-925 
-951 
-918 
-953 
-1000 
-1004 
-1012 
-1024 
-1082 
-1097 
-1033 
-1059 
-1107 
-1110 
-1086 
-1112 
-1138 
-1114 
-1089 
-1078 
-1141 
-1167 
-1092 
-1099 
-1130 
-1120 
-1073 
-1075 
-1147 
-1132 
-1144 
-1175 
-1168 
-1176 
-1161 
-1078 
-1075 
-1079 
-1055 
-1026 
-1021 
-996 
-990 
-984 
-1010 
-985 
-1011 
-1037 
-1044 
-1039 
-1064 
-1012 
-975 
-992 
-926 
-933 
-919 
-945 
-907 
-846 
-881 
-898 
-824 
-877 
-875 
-878 
-886 
-866 
-878 
-913 
-862 
-865 
-909 
-939 
-933 
-900 
-894 
-960 
-936 
-862 
-888 
-900 
-889 
-824 
-841 
-867 
-855 
-827 
-844 
-920 
-923 
-871 
-906 
-928 
-949 
-938 
-950 
-1003 
-988 
-928 
-953 
-956 
-905 
-867 
-907 
-896 
-908 
-866 
-878 
-890 
-961 
-887 
-863 
-843 
-845 
-790 
-816 
-842 
-885 
-870 
-869 
-904 
-921 
-896 
-908 
-929 
-937 
-909 
-925 
-1001 
-977 
-953 
-1023 
-1126 
-1130 
-1065 
-1132 
-1220 
-1238 
-1209 
-1235 
-1237 
-1263 
-1112 
-1138 
-1177 
-1148 
-1065 
-1045 
-1067 
-1087 
-968 
-1007 
-1056 
-1023 
-971 
-983 
-1004 
-976 
-929 
-950 
-962 
-911 
-860 
-853 
-829 
-819 
-781 
-707 
-782 
-808 
-757 
-755 
-785 
-802 
-769 
-804 
-844 
-855 
-799 
-816 
-842 
-857 
-811 
-832 
-845 
-921 
-896 
-922 
-948 
-974 
-913 
-938 
-951 
-977 
-953 
-878 
-904 
-930 
-924 
-932 
-975 
-965 
-941 
-985 
-969 
-986 
-962 
-983 
-991 
-1039 
-983 
-1014 
-1067 
-1042 
-1068 
-1066 
-1047 
-1096 
-1075 
-1097 
-1073 
-1094 
-1075 
-1050 
-1076 
-1052 
-1078 
-1048 
-983 
-991 
-981 
-975 
-982 
-958 
-966 
-955 
-976 
-961 
-987 
-963 
-939 
-969 
-981 
-925 
-928 
-917 
-943 
-919 
-899 
-871 
-818 
-794 
-798 
-819 
-813 
-793 
-782 
-777 
-758 
-737 
-727 
-730 
-756 
-737 
-757 
-783 
-791 
-762 
-760 
-781 
-762 
-783 
-764 
-753 
-765 
-741 
-767 
-769 
-804 
-835 
-806 
-819 
-816 
-788 
-805 
-799 
-811 
-804 
-816 
-802 
-805 
-803 
-824 
-855 
-849 
-857 
-882 
-858 
-870 
-846 
-885 
-866 
-846 
-913 
-939 
-919 
-940 
-948 
-992 
-967 
-961 
-937 
-945 
-921 
-946 
-931 
-911 
-874 
-900 
-875 
-901 
-913 
-925 
-955 
-913 
-911 
-906 
-909 
-947 
-919 
-886 
-885 
-910 
-904 
-912 
-938 
-896 
-930 
-965 
-950 
-1017 
-992 
-1009 
-1030 
-1025 
-1046 
-1071 
-1137 
-1113 
-1099 
-1125 
-1100 
-1076 
-1102 
-1078 
-1103 
-1079 
-1073 
-1081 
-1057 
-1032 
-1058 
-1034 
-1060 
-985 
-965 
-946 
-958 
-921 
-937 
-922 
-957 
-915 
-912 
-875 
-860 
-845 
-816 
-814 
-799 
-798 
-774 
-813 
-807 
-851 
-813 
-853 
-878 
-840 
-848 
-856 
-841 
-838 
-855 
-854 
-848 
-851 
-836 
-844 
-815 
-778 
-839 
-815 
-841 
-817 
-815 
-863 
-867 
-870 
-846 
-871 
-911 
-923 
-908 
-943 
-945 
-976 
-997 
-978 
-962 
-910 
-932 
-931 
-957 
-922 
-953 
-934 
-910 
-939 
-951 
-937 
-917 
-939 
-1000 
-1003 
-966 
-942 
-1017 
-1011 
-1010 
-990 
-948 
-937 
-890 
-880 
-874 
-945 
-916 
-901 
-922 
-971 
-928 
-931 
-943 
-983 
-932 
-957 
-946 
-959 
-925 
-900 
-936 
-866 
-838 
-850 
-879 
-865 
-791 
-812 
-833 
-845 
-794 
-802 
-846 
-871 
-847 
-855 
-899 
-925 
-900 
-926 
-979 
-996 
-953 
-1015 
-1055 
-1035 
-1007 
-1022 
-1008 
-1002 
-973 
-989 
-1011 
-991 
-963 
-975 
-1018 
-990 
-975 
-1042 
-1062 
-1074 
-1041 
-1045 
-1071 
-1086 
-1045 
-1048 
-1088 
-1095 
-1075 
-1037 
-1077 
-1103 
-1078 
-1154 
-1180 
-1187 
-1182 
-1193 
-1223 
-1209 
-1185 
-1210 
-1254 
-1262 
-1283 
-1264 
-1289 
-1251 
-1191 
-1235 
-1205 
-1218 
-1221 
-1247 
-1214 
-1207 
-1206 
-1268 
-1299 
-1279 
-1300 
-1362 
-1374 
-1328 
-1303 
-1329 
-1305 
-1285 
-1357 
-1332 
-1312 
-1315 
-1319 
-1385 
-1388 
-1387 
-1413 
-1416 
-1441 
-1353 
-1356 
-1392 
-1367 
-1306 
-1309 
-1322 
-1271 
-1246 
-1222 
-1270 
-1246 
-1150 
-1179 
-1201 
-1177 
-1080 
-1091 
-1149 
-1148 
-1133 
-1109 
-1111 
-1133 
-1059 
-1039 
-1082 
-1086 
-1039 
-1060 
-1068 
-1089 
-1037 
-977 
-1039 
-1042 
-968 
-966 
-1020 
-1046 
-1002 
-997 
-1073 
-1076 
-1056 
-1081 
-1144 
-1152 
-1109 
-1121 
-1179 
-1205 
-1203 
-1147 
-1182 
-1208 
-1184 
-1214 
-1253 
-1261 
-1277 
-1285 
-1366 
-1364 
-1317 
-1266 
-1342 
-1330 
-1315 
-1296 
-1299 
-1280 
-1218 
-1272 
-1257 
-1274 
-1218 
-1211 
-1251 
-1277 
-1216 
-1273 
-1267 
-1280 
-1306 
-1332 
-1357 
-1383 
-1390 
-1335 
-1391 
-1386 
-1362 
-1338 
-1364 
-1339 
-1265 
-1250 
-1298 
-1251 
-1245 
-1244 
-1270 
-1246 
-1180 
-1169 
-1163 
-1112 
-1075 
-1113 
-1130 
-1102 
-1078 
-1053 
-1056 
-1055 
-1031 
-1007 
-1050 
-1017 
-984 
-1037 
-1039 
-1111 
-1087 
-1113 
-1189 
-1227 
-1203 
-1225 
-1292 
-1267 
-1243 
-1237 
-1258 
-1248 
-1196 
-1222 
-1198 
-1178 
-1177 
-1179 
-1237 
-1227 
-1203 
-1178 
-1249 
-1230 
-1196 
-1182 
-1252 
-1233 
-1209 
-1257 
-1273 
-1267 
-1175 
-1188 
-1214 
-1175 
-1160 
-1141 
-1167 
-1164 
-1140 
-1166 
-1174 
-1246 
-1171 
-1187 
-1218 
-1249 
-1215 
-1186 
-1235 
-1202 
-1159 
-1153 
-1129 
-1155 
-1071 
-1093 
-1141 
-1148 
-1129 
-1110 
-1135 
-1138 
-1132 
-1153 
-1189 
-1214 
-1140 
-1166 
-1228 
-1217 
-1193 
-1191 
-1208 
-1198 
-1100 
-1122 
-1148 
-1155 
-1100 
-1034 
-1087 
-1045 
-1016 
-1028 
-1008 
-1030 
-956 
-1032 
-1057 
-1060 
-1022 
-1035 
-1010 
-1022 
-962 
-938 
-905 
-889 
-865 
-823 
-831 
-892 
-818 
-844 
-870 
-887 
-871 
-870 
-873 
-867 
-875 
-850 
-876 
-852 
-828 
-812 
-829 
-832 
-831 
-807 
-872 
-858 
-884 
-860 
-885 
-906 
-910 
-963 
-966 
-1014 
-1063 
-1066 
-1042 
-1085 
-1093 
-1078 
-1095 
-1080 
-1146 
-1122 
-1075 
-1124 
-1122 
-1125 
-1105 
-1127 
-1116 
-1123 
-1076 
-1080 
-1083 
-1082 
-1057 
-1092 
-1077 
-1085 
-1060 
-1067 
-1043 
-1038 
-1091 
-1048 
-1088 
-1046 
-1053 
-1042 
-1059 
-1039 
-1052 
-1046 
-1052 
-1078 
-1073 
-1085 
-1075 
-1077 
-1076 
-1088 
-1068 
-1030 
-1060 
-1005 
-1012 
-961 
-954 
-917 
-934 
-910 
-894 
-892 
-837 
-818 
-839 
-882 
-899 
-875 
-942 
-917 
-893 
-819 
-850 
-871 
-869 
-881 
-898 
-888 
-900 
-920 
-946 
-977 
-930 
-941 
-954 
-930 
-956 
-932 
-920 
-937 
-940 
-935 
-960 
-909 
-871 
-897 
-878 
-889 
-865 
-868 
-867 
-842 
-854 
-830 
-834 
-796 
-771 
-842 
-823 
-799 
-779 
-800 
-853 
-802 
-778 
-780 
-770 
-728 
-731 
-743 
-782 
-758 
-734 
-760 
-753 
-761 
-737 
-786 
-789 
-778 
-758 
-816 
-842 
-822 
-838 
-887 
-890 
-826 
-828 
-872 
-871 
-824 
-840 
-911 
-883 
-918 
-916 
-928 
-954 
-880 
-883 
-882 
-934 
-883 
-890 
-866 
-832 
-813 
-812 
-828 
-864 
-789 
-765 
-805 
-772 
-742 
-718 
-744 
-770 
-746 
-753 
-752 
-773 
-758 
-775 
-750 
-794 
-752 
-737 
-753 
-779 
-723 
-681 
-707 
-682 
-658 
-684 
-719 
-735 
-693 
-687 
-713 
-739 
-714 
-690 
-766 
-787 
-717 
-716 
-769 
-795 
-794 
-796 
-822 
-848 
-824 
-868 
-925 
-951 
-918 
-953 
-1000 
-1004 
-1012 
-1024 
-1082 
-1097 
-1033 
-1059 
-1107 
-1110 
-1086 
-1112 
-1138 
-1114 
-1089 
-1078 
-1141 
-1167 
-1092 
-1099 
-1130 
-1120 
-1073 
-1075 
-1147 
-1132 
-1144 
-1175 
-1168 
-1176 
-1161 
-1078 
-1075 
-1079 
-1055 
-1026 
-1021 
-996 
-990 
-984 
-1010 
-985 
-1011 
-1037 
-1044 
-1039 
-1064 
-1012 
-975 
-992 
-926 
-933 
-919 
-945 
-907 
-846 
-881 
-898 
-824 
-877 
-875 
-878 
-886 
-866 
-878 
-913 
-862 
-865 
-909 
-939 
-933 
-900 
-894 
-960 
-936 
-862 
-888 
-900 
-889 
-824 
-841 
-867 
-855 
-827 
-844 
-920 
-923 
-871 
-906 
-928 
-949 
-938 
-950 
-1003 
-988 
-928 
-953 
-956 
-905 
-867 
-907 
-896 
-908 
-866 
-878 
-890 
-961 
-887 
-863 
-843 
-845 
-790 
-816 
-842 
-885 
-870 
-869 
-904 
-921 
-896 
-908 
-929 
-937 
-909 
-925 
-1001 
-977 
-953 
-1023 
-1126 
-1130 
-1065 
-1132 
-1220 
-1238 
-1209 
-1235 
-1237 
-1263 
-1112 
-1138 
-1177 
-1148 
-1065 
-1045 
-1067 
-1087 
-968 
-1007 
-1056 
-1023 
-971 
-983 
-1004 
-976 
-929 
-950 
-962 
-911 
-860 
-853 
-829 
-819 
-781 
-707 
-782 
-808 
-757 
-755 
-785 
-802 
-769 
-804 
-844 
-855 
-799 
-816 
-842 
-857 
-811 
-832 
-845 
-921 
-896 
-922 
-948 
-974 
-913 
-938 
-951 
-977 
-953 
-878 
-904 
-930 
-924 
-932 
-975 
-965 
-941 
-985 
-969 
-986 
-962 
-983 
-991 
-1039 
-983 
-1014 
-1067 
-1042 
-1068 
-1066 
-1047 
-1096 
-1075 
-1097 
-1073 
-1094 
-1075 
-1050 
-1076 
-1052 
-1078 
-1048 
-983 
-991 
-981 
-975 
-982 
-958 
-966 
-955 
-976 
-961 
-987 
-963 
-939 
-969 
-981 
-925 
-928 
-917 
-943 
-919 
-899 
-871 
-818 
-794 
-798 
-819 
-813 
-793 
-782 
-777 
-758 
-737 
-727 
-730 
-756 
-737 
-757 
-783 
-791 
-762 
-760 
-781 
-762 
-783 
-764 
-753 
-765 
-741 
-767 
-769 
-804 
-835 
-806 
-819 
-816 
-788 
-805 
-799 
-811 
-804 
-816 
-802 
-805 
-803 
-824 
-855 
-849 
-857 
-882 
-858 
-870 
-846 
-885 
-866 
-846 
-913 
-939 
-919 
-940 
-948 
-992 
-967 
-961 
-937 
-945 
-921 
-946 
-931 
-911 
-874 
-900 
-875 
-901 
-913 
-925 
-955 
-913 
-911 
-906 
-909 
-947 
-919 
-886 
-885 
-910 
-904 
-912 
-938 
-896 
-930 
-965 
-950 
-1017 
-992 
-1009 
-1030 
-1025 
-1046 
-1071 
-1137 
-1113 
-1099 
-1125 
-1100 
-1076 
-1102 
-1078 
-1103 
-1079 
-1073 
-1081 
-1057 
-1032 
-1058 
-1034 
-1060 
-985 
-965 
-946 
-958 
-921 
-937 
-922 
-957 
-915 
-912 
-875 
-860 
-845 
-816 
-814 
-799 
-798 
-774 
-813 
-807 
-851 
-813 
-853 
-878 
-840 
-848 
-856 
-841 
-838 
-855 
-854 
-848 
-851 
-836 
-844 
-815 
-778 
-839 
-815 
-841 
-817 
-815 
-863 
-867 
-870 
-846 
-871 
-911 
-923 
-908 
-943 
-945 
-976 
-997 
-978 
-962 
-910 
-932 
-931 
-957 
-922 
-953 
-934 
-910 
-939 
-951 
-937 
-917 
-939 
-1000 
-1003 
-966 
-942 
-1017 
-1011 
-1010 
-990 
-948 
-937 
-890 
-880 
-874 
-945 
-916 
-901 
-922 
-971 
-928 
-931 
-943 
-983 
-932 
-957 
-946 
-959 
-925 
-900 
-936 
-866 
-838 
-850 
-879 
-865 
-791 
-812 
-833 
-845 
-794 
-802 
-846 
-871 
-847 
-855 
-899 
-925 
-900 
-926 
-979 
-996 
-953 
-1015 
-1055 
-1035 
-1007 
-1022 
-1008 
-1002 
-973 
-989 
-1011 
-991 
-963 
-975 
-1018 
-990 
-975 
-1042 
-1062 
-1074 
-1041 
-1045 
-1071 
-1086 
-1045 
-1048 
-1088 
-1095 
-1075 
-1037 
-1077 
-1103 
-1078 
-1154 
-1180 
-1187 
-1182 
-1193 
-1223 
-1209 
-1185 
-1210 
-1254 
-1262 
-1283 
-1264 
-1289 
-1251 
-1191 
-1235 
-1205 
-1218 
-1221 
-1247 
-1214 
-1207 
-1206 
-1268 
-1299 
-1279 
-1300 
-1362 
-1374 
-1328 
-1303 
-1329 
-1305 
-1285 
-1357 
-1332 
-1312 
-1315 
-1319 
-1385 
-1388 
-1387 
-1413 
-1416 
-1441 
-1353 
-1356 
-1392 
-1367 
-1306 
-1309 
-1322 
-1271 
-1246 
-1222 
-1270 
-1246 
-1150 
-1179 
-1201 
-1177 
-1080 
-1091 
-1149 
-1148 
-1133 
-1109 
-1111 
-1133 
-1059 
-1039 
-1082 
-1086 
-1039 
-1060 
-1068 
-1089 
-1037 
-977 
-1039 
-1042 
-968 
-966 
-1020 
-1046 
-1002 
-997 
-1073 
-1076 
-1056 
-1081 
-1144 
-1152 
-1109 
-1121 
-1179 
-1205 
-1203 
-1147 
-1182 
-1208 
-1184 
-1214 
-1253 
-1261 
-1277 
-1285 
-1366 
-1364 
-1317 
-1266 
-1342 
-1330 
-1315 
-1296 
-1299 
-1280 
-1218 
-1272 
-1257 
-1274 
-1218 
-1211 
-1251 
-1277 
-1216 
-1273 
-1267 
-1280 
-1306 
-1332 
-1357 
-1383 
-1390 
-1335 
-1391 
-1386 
-1362 
-1338 
-1364 
-1339 
-1265 
-1250 
-1298 
-1251 
-1245 
-1244 
-1270 
-1246 
-1180 
-1169 
-1163 
-1112 
-1075 
-1113 
-1130 
-1102 
-1078 
-1053 
-1056 
-1055 
-1031 
-1007 
-1050 
-1017 
-984 
-1037 
-1039 
-1111 
-1087 
-1113 
-1189 
-1227 
-1203 
-1225 
-1292 
-1267 
-1243 
-1237 
-1258 
-1248 
-1196 
-1222 
-1198 
-1178 
-1177 
-1179 
-1237 
-1227 
-1203 
-1178 
-1249 
-1230 
-1196 
-1182 
-1252 
-1233 
-1209 
-1257 
-1273 
-1267 
-1175 
-1188 
-1214 
-1175 
-1160 
-1141 
-1167 
-1164 
-1140 
-1166 
-1174 
-1246 
-1171 
-1187 
-1218 
-1249 
-1215 
-1186 
-1235 
-1202 
-1159 
-1153 
-1129 
-1155 
-1071 
-1093 
-1141 
-1148 
-1129 
-1110 
-1135 
-1138 
-1132 
-1153 
-1189 
-1214 
-1140 
-1166 
-1228 
-1217 
-1193 
-1191 
-1208 
-1198 
-1100 
-1122 
-1148 
-1155 
-1100 
-1034 
-1087 
-1045 
-1016 
-1028 
-1008 
-1030 
-956 
-1032 
-1057 
-1060 
-1022 
-1035 
-1010 
-1022 
-962 
-938 
-905 
-889 
-865 
-823 
-831 
-892 
-818 
-844 
-870 
-887 
-871 
-870 
-873 
-867 
-875 
-850 
-876 
-852 
-828 
-812 
-829 
-832 
-831 
-807 
-872 
-858 
-884 
-860 
-885 
-906 
-910 
-963 
-966 
-1014 
-1063 
-1066 
-1042 
-1085 
-1093 
-1078 
-1095 
-1080 
-1146 
-1122 
-1075 
-1124 
-1122 
-1125 
-1105 
-1127 
-1116 
-1123 
-1076 
-1080 
-1083 
-1082 
-1057 
-1092 
-1077 
-1085 
-1060 
-1067 
-1043 
-1038 
-1091 
-1048 
-1088 
-1046 
-1053 
-1042 
-1059 
-1039 
-1052 
-1046 
-1052 
-1078 
-1073 
-1085 
-1075 
-1077 
-1076 
-1088 
-1068 
-1030 
-1060 
-1005 
-1012 
-961 
-954 
-917 
-934 
-910 
-894 
-892 
-837 
-818 
-839 
-882 
-899 
-875 
-942 
-917 
-893 
-819 
-850 
-871 
-869 
-881 
-898 
-888 
-900 
-920 
-946 
-977 
-930 
-941 
-954 
-930 
-956 
-932 
-920 
-937 
-940 
-935 
-960 
-909 
-871 
-897 
-878 
-889 
-865 
-868 
-867 
-842 
-854 
-830 
-834 
-796 
-771 
-842 
-823 
-799 
-779 
-800 
-853 
-802 
-778 
-780 
-770 
-728 
-731 
-743 
-782 
-758 
-734 
-760 
-753 
-761 
-737 
-786 
-789 
-778 
-758 
-816 
-842 
-822 
-838 
-887 
-890 
-826 
-828 
-872 
-871 
-824 
-840 
-911 
-883 
-918 
-916 
-928 
-954 
-880 
-883 
-882 
-934 
-883 
-890 
-866 
-832 
-813 
-812 
-828 
-864 
-789 
-765 
-805 
-772 
-742 
-718 
-744 
-770 
-746 
-753 
-752 
-773 
-758 
-775 
-750 
-794 
-752 
-737 
-753 
-779 
-723 
-681 
-707 
-682 
-658 
-684 
-719 
-735 
-693 
-687 
-713 
-739 
-714 
-690 
-766 
-787 
-717 
-716 
-769 
-795 
-794 
-796 
-822 
-848 
-824 
-868 
-925 
-951 
-918 
-953 
-1000 
-1004 
-1012 
-1024 
-1082 
-1097 
-1033 
-1059 
-1107 
-1110 
-1086 
-1112 
-1138 
-1114 
-1089 
-1078 
-1141 
-1167 
-1092 
-1099 
-1130 
-1120 
-1073 
-1075 
-1147 
-1132 
-1144 
-1175 
-1168 
-1176 
-1161 
-1078 
-1075 
-1079 
-1055 
-1026 
-1021 
-996 
-990 
-984 
-1010 
-985 
-1011 
-1037 
-1044 
-1039 
-1064 
-1012 
-975 
-992 
-926 
-933 
-919 
-945 
-907 
-846 
-881 
-898 
-824 
-877 
-875 
-878 
-886 
-866 
-878 
-913 
-862 
-865 
-909 
-939 
-933 
-900 
-894 
-960 
-936 
-862 
-888 
-900 
-889 
-824 
-841 
-867 
-855 
-827 
-844 
-920 
-923 
-871 
-906 
-928 
-949 
-938 
-950 
-1003 
-988 
-928 
-953 
-956 
-905 
-867 
-907 
-896 
-908 
-866 
-878 
-890 
-961 
-887 
-863 
-843 
-845 
-790 
-816 
-842 
-885 
-870 
-869 
-904 
-921 
-896 
-908 
-929 
-937 
-909 
-925 
-1001 
-977 
-953 
-1023 
-1126 
-1130 
-1065 
-1132 
-1220 
-1238 
-1209 
-1235 
-1237 
-1263 
-1112 
-1138 
-1177 
-1148 
-1065 
-1045 
-1067 
-1087 
-968 
-1007 
-1056 
-1023 
-971 
-983 
-1004 
-976 
-929 
-950 
-962 
-911 
-860 
-853 
-829 
-819 
-781 
-707 
-782 
-808 
-757 
-755 
-785 
-802 
-769 
-804 
-844 
-855 
-799 
-816 
-842 
-857 
-811 
-832 
-845 
-921 
-896 
-922 
-948 
-974 
-913 
-938 
-951 
-977 
-953 
-878 
-904 
-930 
-924 
-932 
-975 
-965 
-941 
-985 
-969 
-986 
-962 
-983 
-991 
-1039 
-983 
-1014 
-1067 
-1042 
-1068 
-1066 
-1047 
-1096 
-1075 
-1097 
-1073 
-1094 
-1075 
-1050 
-1076 
-1052 
-1078 
-1048 
-983 
-991 
-981 
-975 
-982 
-958 
-966 
-955 
-976 
-961 
-987 
-963 
-939 
-969 
-981 
-925 
-928 
-917 
-943 
-919 
-899 
-871 
-818 
-794 
-798 
-819 
-813 
-793 
-782 
-777 
-758 
-737 
-727 
-730 
-756 
-737 
-757 
-783 
-791 
-762 
-760 
-781 
-762 
-783 
-764 
-753 
-765 
-741 
-767 
-769 
-804 
-835 
-806 
-819 
-816 
-788 
-805 
-799 
-811 
-804 
-816 
-802 
-805 
-803 
-824 
-855 
-849 
-857 
-882 
-858 
-870 
-846 
-885 
-866 
-846 
-913 
-939 
-919 
-940 
-948 
-992 
-967 
-961 
-937 
-945 
-921 
-946 
-931 
-911 
-874 
-900 
-875 
-901 
-913 
-925 
-955 
-913 
-911 
-906 
-909 
-947 
-919 
-886 
-885 
-910 
-904 
-912 
-938 
-896 
-930 
-965 
-950 
-1017 
-992 
-1009 
-1030 
-1025 
-1046 
-1071 
-1137 
-1113 
-1099 
-1125 
-1100 
-1076 
-1102 
-1078 
-1103 
-1079 
-1073 
-1081 
-1057 
-1032 
-1058 
-1034 
-1060 
-985 
-965 
-946 
-958 
-921 
-937 
-922 
-957 
-915 
-912 
-875 
-860 
-845 
-816 
-814 
-799 
-798 
-774 
-813 
-807 
-851 
-813 
-853 
-878 
-840 
-848 
-856 
-841 
-838 
-855 
-854 
-848 
-851 
-836 
-844 
-815 
-778 
-839 
-815 
-841 
-817 
-815 
-863 
-867 
-870 
-846 
-871 
-911 
-923 
-908 
-943 
-945 
-976 
-997 
-978 
-962 
-910 
-932 
-931 
-957 
-922 
-953 
-934 
-910 
-939 
-951 
-937 
-917 
-939 
-1000 
-1003 
-966 
-942 
-1017 
-1011 
-1010 
-990 
-948 
-937 
-890 
-880 
-874 
-945 
-916 
-901 
-922 
-971 
-928 
-931 
-943 
-983 
-932 
-957 
-946 
-959 
-925 
-900 
-936 
-866 
-838 
-850 
-879 
-865 
-791 
-812 
-833 
-845 
-794 
-802 
-846 
-871 
-847 
-855 
-899 
-925 
-900 
-926 
-979 
-996 
-953 
-1015 
-1055 
-1035 
-1007 
-1022 
-1008 
-1002 
-973 
-989 
-1011 
-991 
-963 
-975 
-1018 
-990 
-975 
-1042 
-1062 
-1074 
-1041 
-1045 
-1071 
-1086 
-1045 
-1048 
-1088 
-1095 
-1075 
-1037 
-1077 
-1103 
-1078 
-1154 
-1180 
-1187 
-1182 
-1193 
-1223 
-1209 
-1185 
-1210 
-1254 
-1262 
-1283 
-1264 
-1289 
-1251 
-1191 
-1235 
-1205 
-1218 
-1221 
-1247 
-1214 
-1207 
-1206 
-1268 
-1299 
-1279 
-1300 
-1362 
-1374 
-1328 
-1303 
-1329 
-1305 
-1285 
-1357 
-1332 
-1312 
-1315 
-1319 
-1385 
-1388 
-1387 
-1413 
-1416 
-1441 
-1353 
-1356 
-1392 
-1367 
-1306 
-1309 
-1322 
-1271 
-1246 
-1222 
-1270 
-1246 

+ 0 - 3072
Simulink/angle3.csv

@@ -1,3072 +0,0 @@
--600 
--654 
--623 
--578 
--669 
--682 
--706 
--674 
--725 
--684 
--738 
--703 
--671 
--721 
--681 
--640 
--600 
--568 
--532 
--528 
--528 
--496 
--465 
--451 
--461 
--434 
--466 
--453 
--412 
--439 
--445 
--440 
--463 
--459 
--436 
--478 
--437 
--482 
--456 
--415 
--461 
--434 
--466 
--453 
--412 
--471 
--486 
--490 
--477 
--486 
--518 
--528 
--523 
--505 
--547 
--515 
--475 
--470 
--493 
--453 
--412 
--371 
--381 
--363 
--340 
--309 
--291 
--305 
--287 
--282 
--279 
--297 
--275 
--293 
--293 
--353 
--312 
--339 
--345 
--340 
--345 
--354 
--354 
--342 
--337 
--341 
--356 
--338 
--338 
--379 
--393 
--403 
--403 
--421 
--467 
--440 
--400 
--459 
--418 
--378 
--437 
--396 
--361 
--329 
--288 
--311 
--293 
--253 
--217 
--230 
--231 
--190 
--177 
--209 
--177 
--223 
--192 
--246 
--215 
--265 
--225 
--284 
--243 
--271 
--262 
--262 
--281 
--290 
--281 
--259 
--273 
--278 
--278 
--296 
--297 
--315 
--325 
--339 
--370 
--371 
--362 
--335 
--340 
--335 
--300 
--282 
--259 
--228 
--187 
--196 
--170 
--142 
--125 
--120 
--102 
--85 
--62 
--121 
--81 
--90 
--100 
--114 
--118 
--128 
--137 
--146 
--106 
--151 
--125 
--184 
--143 
--144 
--162 
--180 
--181 
--190 
--186 
--209 
--254 
--228 
--287 
--282 
--297 
--265 
--325 
--293 
--270 
--262 
--262 
--239 
--217 
--199 
--195 
--164 
--154 
--128 
--123 
--119 
--115 
--110 
--152 
--134 
--148 
--153 
--212 
--207 
--231 
--195 
--250 
--227 
--232 
--228 
--287 
--260 
--270 
--265 
--306 
--298 
--298 
--303 
--362 
--376 
--381 
--390 
--400 
--423 
--413 
--378 
--428 
--396 
--356 
--320 
--361 
--334 
--293 
--276 
--271 
--271 
--231 
--208 
--250 
--214 
--263 
--228 
--287 
--287 
--297 
--301 
--370 
--352 
--348 
--353 
--389 
--371 
--363 
--381 
--377 
--386 
--391 
--378 
--437 
--405 
--456 
--470 
--475 
--520 
--493 
--521 
--512 
--476 
--481 
--454 
--450 
--427 
--418 
--378 
--364 
--346 
--333 
--306 
--293 
--284 
--261 
--303 
--280 
--298 
--281 
--249 
--300 
--309 
--318 
--301 
--323 
--328 
--338 
--324 
--325 
--334 
--338 
--339 
--312 
--330 
--331 
--385 
--354 
--409 
--373 
--428 
--392 
--446 
--406 
--465 
--425 
--384 
--370 
--398 
--362 
--321 
--304 
--272 
--300 
--259 
--218 
--264 
--237 
--210 
--251 
--215 
--275 
--234 
--293 
--294 
--303 
--316 
--304 
--340 
--313 
--359 
--318 
--364 
--337 
--319 
--356 
--379 
--384 
--411 
--411 
--435 
--462 
--439 
--481 
--499 
--500 
--482 
--518 
--478 
--469 
--469 
--456 
--415 
--384 
--366 
--393 
--353 
--348 
--348 
--331 
--313 
--350 
--309 
--304 
--333 
--387 
--355 
--401 
--415 
--429 
--416 
--443 
--435 
--435 
--457 
--426 
--440 
--463 
--459 
--423 
--478 
--514 
--496 
--538 
--524 
--575 
--539 
--557 
--553 
--562 
--539 
--522 
--513 
--500 
--468 
--436 
--433 
--419 
--360 
--356 
--365 
--329 
--352 
--343 
--330 
--362 
--321 
--349 
--340 
--368 
--377 
--368 
--414 
--387 
--391 
--397 
--383 
--425 
--393 
--398 
--403 
--444 
--426 
--431 
--458 
--486 
--500 
--486 
--528 
--551 
--546 
--506 
--529 
--525 
--484 
--461 
--471 
--462 
--421 
--381 
--372 
--400 
--359 
--318 
--333 
--337 
--351 
--356 
--315 
--375 
--375 
--393 
--376 
--426 
--421 
--431 
--435 
--450 
--459 
--418 
--428 
--437 
--464 
--456 
--460 
--515 
--484 
--484 
--503 
--562 
--544 
--554 
--540 
--577 
--559 
--518 
--478 
--537 
--496 
--456 
--415 
--452 
--434 
--393 
--353 
--403 
--371 
--331 
--290 
--350 
--359 
--363 
--328 
--387 
--396 
--374 
--392 
--438 
--434 
--393 
--430 
--412 
--439 
--422 
--390 
--450 
--445 
--432 
--428 
--505 
--496 
--470 
--510 
--529 
--534 
--525 
--517 
--557 
--530 
--517 
--485 
--468 
--454 
--382 
--364 
--378 
--364 
--333 
--310 
--302 
--316 
--261 
--276 
--289 
--321 
--281 
--263 
--300 
--332 
--313 
--278 
--337 
--319 
--288 
--301 
--320 
--329 
--293 
--262 
--312 
--362 
--331 
--308 
--363 
--409 
--368 
--392 
--414 
--446 
--406 
--401 
--425 
--402 
--357 
--362 
--362 
--321 
--281 
--245 
--272 
--259 
--218 
--214 
--237 
--196 
--224 
--215 
--275 
--234 
--270 
--271 
--298 
--316 
--313 
--317 
--300 
--354 
--318 
--305 
--337 
--328 
--356 
--365 
--402 
--411 
--407 
--417 
--462 
--476 
--481 
--440 
--500 
--504 
--500 
--478 
--451 
--464 
--456 
--415 
--388 
--361 
--366 
--353 
--330 
--303 
--299 
--290 
--304 
--309 
--300 
--328 
--373 
--346 
--347 
--365 
--425 
--384 
--379 
--403 
--403 
--403 
--381 
--417 
--400 
--382 
--418 
--423 
--437 
--419 
--456 
--492 
--488 
--489 
--479 
--489 
--512 
--462 
--440 
--440 
--431 
--377 
--368 
--351 
--337 
--296 
--256 
--260 
--238 
--211 
--216 
--203 
--239 
--221 
--181 
--240 
--245 
--209 
--218 
--264 
--282 
--246 
--224 
--265 
--238 
--239 
--243 
--298 
--262 
--221 
--231 
--299 
--309 
--291 
--282 
--355 
--369 
--346 
--315 
--365 
--343 
--293 
--320 
--303 
--276 
--235 
--258 
--240 
--200 
--159 
--132 
--178 
--137 
--110 
--129 
--115 
--129 
--134 
--93 
--153 
--157 
--171 
--163 
--195 
--200 
--159 
--177 
--205 
--187 
--182 
--183 
--201 
--197 
--207 
--243 
--235 
--262 
--262 
--281 
--295 
--300 
--277 
--318 
--278 
--314 
--296 
--256 
--224 
--202 
--211 
--193 
--153 
--162 
--148 
--131 
--90 
--145 
--109 
--68 
--128 
--87 
--146 
--129 
--160 
--225 
--184 
--193 
--203 
--212 
--180 
--181 
--190 
--200 
--204 
--195 
--178 
--237 
--269 
--256 
--279 
--275 
--329 
--293 
--317 
--357 
--321 
--308 
--281 
--300 
--268 
--241 
--228 
--228 
--196 
--156 
--129 
--161 
--134 
--93 
--71 
--112 
--135 
--117 
--90 
--154 
--159 
--118 
--173 
--192 
--196 
--161 
--133 
--175 
--189 
--193 
--153 
--212 
--226 
--226 
--199 
--254 
--300 
--268 
--278 
--337 
--337 
--347 
--315 
--375 
--334 
--293 
--253 
--312 
--271 
--231 
--190 
--222 
--209 
--168 
--128 
--187 
--146 
--147 
--165 
--211 
--202 
--193 
--235 
--212 
--271 
--245 
--285 
--281 
--309 
--277 
--287 
--310 
--337 
--306 
--347 
--365 
--384 
--443 
--403 
--462 
--503 
--481 
--490 
--518 
--509 
--486 
--487 
--487 
--482 
--451 
--424 
--425 
--389 
--366 
--353 
--362 
--366 
--331 
--322 
--350 
--364 
--363 
--373 
--387 
--441 
--406 
--433 
--438 
--484 
--443 
--462 
--462 
--489 
--481 
--467 
--500 
--509 
--509 
--528 
--578 
--560 
--606 
--583 
--625 
--584 
--643 
--603 
--567 
--616 
--581 
--540 
--545 
--523 
--509 
--478 
--437 
--410 
--420 
--415 
--375 
--379 
--393 
--403 
--412 
--421 
--381 
--440 
--400 
--459 
--418 
--478 
--442 
--460 
--456 
--492 
--475 
--452 
--493 
--503 
--512 
--476 
--531 
--581 
--581 
--586 
--591 
--628 
--637 
--601 
--597 
--615 
--611 
--570 
--584 
--553 
--512 
--485 
--458 
--490 
--450 
--423 
--400 
--428 
--455 
--446 
--415 
--465 
--484 
--498 
--493 
--544 
--521 
--571 
--531 
--522 
--550 
--532 
--568 
--546 
--587 
--546 
--606 
--610 
--625 
--625 
--643 
--667 
--676 
--680 
--681 
--690 
--718 
--709 
--668 
--646 
--642 
--628 
--597 
--565 
--556 
--539 
--543 
--503 
--512 
--498 
--481 
--499 
--486 
--509 
--473 
--528 
--587 
--546 
--565 
--565 
--606 
--584 
--575 
--603 
--580 
--612 
--581 
--604 
--600 
--654 
--623 
--578 
--669 
--682 
--706 
--674 
--725 
--684 
--738 
--703 
--671 
--721 
--681 
--640 
--600 
--568 
--532 
--528 
--528 
--496 
--465 
--451 
--461 
--434 
--466 
--453 
--412 
--439 
--445 
--440 
--463 
--459 
--436 
--478 
--437 
--482 
--456 
--415 
--461 
--434 
--466 
--453 
--412 
--471 
--486 
--490 
--477 
--486 
--518 
--528 
--523 
--505 
--547 
--515 
--475 
--470 
--493 
--453 
--412 
--371 
--381 
--363 
--340 
--309 
--291 
--305 
--287 
--282 
--279 
--297 
--275 
--293 
--293 
--353 
--312 
--339 
--345 
--340 
--345 
--354 
--354 
--342 
--337 
--341 
--356 
--338 
--338 
--379 
--393 
--403 
--403 
--421 
--467 
--440 
--400 
--459 
--418 
--378 
--437 
--396 
--361 
--329 
--288 
--311 
--293 
--253 
--217 
--230 
--231 
--190 
--177 
--209 
--177 
--223 
--192 
--246 
--215 
--265 
--225 
--284 
--243 
--271 
--262 
--262 
--281 
--290 
--281 
--259 
--273 
--278 
--278 
--296 
--297 
--315 
--325 
--339 
--370 
--371 
--362 
--335 
--340 
--335 
--300 
--282 
--259 
--228 
--187 
--196 
--170 
--142 
--125 
--120 
--102 
--85 
--62 
--121 
--81 
--90 
--100 
--114 
--118 
--128 
--137 
--146 
--106 
--151 
--125 
--184 
--143 
--144 
--162 
--180 
--181 
--190 
--186 
--209 
--254 
--228 
--287 
--282 
--297 
--265 
--325 
--293 
--270 
--262 
--262 
--239 
--217 
--199 
--195 
--164 
--154 
--128 
--123 
--119 
--115 
--110 
--152 
--134 
--148 
--153 
--212 
--207 
--231 
--195 
--250 
--227 
--232 
--228 
--287 
--260 
--270 
--265 
--306 
--298 
--298 
--303 
--362 
--376 
--381 
--390 
--400 
--423 
--413 
--378 
--428 
--396 
--356 
--320 
--361 
--334 
--293 
--276 
--271 
--271 
--231 
--208 
--250 
--214 
--263 
--228 
--287 
--287 
--297 
--301 
--370 
--352 
--348 
--353 
--389 
--371 
--363 
--381 
--377 
--386 
--391 
--378 
--437 
--405 
--456 
--470 
--475 
--520 
--493 
--521 
--512 
--476 
--481 
--454 
--450 
--427 
--418 
--378 
--364 
--346 
--333 
--306 
--293 
--284 
--261 
--303 
--280 
--298 
--281 
--249 
--300 
--309 
--318 
--301 
--323 
--328 
--338 
--324 
--325 
--334 
--338 
--339 
--312 
--330 
--331 
--385 
--354 
--409 
--373 
--428 
--392 
--446 
--406 
--465 
--425 
--384 
--370 
--398 
--362 
--321 
--304 
--272 
--300 
--259 
--218 
--264 
--237 
--210 
--251 
--215 
--275 
--234 
--293 
--294 
--303 
--316 
--304 
--340 
--313 
--359 
--318 
--364 
--337 
--319 
--356 
--379 
--384 
--411 
--411 
--435 
--462 
--439 
--481 
--499 
--500 
--482 
--518 
--478 
--469 
--469 
--456 
--415 
--384 
--366 
--393 
--353 
--348 
--348 
--331 
--313 
--350 
--309 
--304 
--333 
--387 
--355 
--401 
--415 
--429 
--416 
--443 
--435 
--435 
--457 
--426 
--440 
--463 
--459 
--423 
--478 
--514 
--496 
--538 
--524 
--575 
--539 
--557 
--553 
--562 
--539 
--522 
--513 
--500 
--468 
--436 
--433 
--419 
--360 
--356 
--365 
--329 
--352 
--343 
--330 
--362 
--321 
--349 
--340 
--368 
--377 
--368 
--414 
--387 
--391 
--397 
--383 
--425 
--393 
--398 
--403 
--444 
--426 
--431 
--458 
--486 
--500 
--486 
--528 
--551 
--546 
--506 
--529 
--525 
--484 
--461 
--471 
--462 
--421 
--381 
--372 
--400 
--359 
--318 
--333 
--337 
--351 
--356 
--315 
--375 
--375 
--393 
--376 
--426 
--421 
--431 
--435 
--450 
--459 
--418 
--428 
--437 
--464 
--456 
--460 
--515 
--484 
--484 
--503 
--562 
--544 
--554 
--540 
--577 
--559 
--518 
--478 
--537 
--496 
--456 
--415 
--452 
--434 
--393 
--353 
--403 
--371 
--331 
--290 
--350 
--359 
--363 
--328 
--387 
--396 
--374 
--392 
--438 
--434 
--393 
--430 
--412 
--439 
--422 
--390 
--450 
--445 
--432 
--428 
--505 
--496 
--470 
--510 
--529 
--534 
--525 
--517 
--557 
--530 
--517 
--485 
--468 
--454 
--382 
--364 
--378 
--364 
--333 
--310 
--302 
--316 
--261 
--276 
--289 
--321 
--281 
--263 
--300 
--332 
--313 
--278 
--337 
--319 
--288 
--301 
--320 
--329 
--293 
--262 
--312 
--362 
--331 
--308 
--363 
--409 
--368 
--392 
--414 
--446 
--406 
--401 
--425 
--402 
--357 
--362 
--362 
--321 
--281 
--245 
--272 
--259 
--218 
--214 
--237 
--196 
--224 
--215 
--275 
--234 
--270 
--271 
--298 
--316 
--313 
--317 
--300 
--354 
--318 
--305 
--337 
--328 
--356 
--365 
--402 
--411 
--407 
--417 
--462 
--476 
--481 
--440 
--500 
--504 
--500 
--478 
--451 
--464 
--456 
--415 
--388 
--361 
--366 
--353 
--330 
--303 
--299 
--290 
--304 
--309 
--300 
--328 
--373 
--346 
--347 
--365 
--425 
--384 
--379 
--403 
--403 
--403 
--381 
--417 
--400 
--382 
--418 
--423 
--437 
--419 
--456 
--492 
--488 
--489 
--479 
--489 
--512 
--462 
--440 
--440 
--431 
--377 
--368 
--351 
--337 
--296 
--256 
--260 
--238 
--211 
--216 
--203 
--239 
--221 
--181 
--240 
--245 
--209 
--218 
--264 
--282 
--246 
--224 
--265 
--238 
--239 
--243 
--298 
--262 
--221 
--231 
--299 
--309 
--291 
--282 
--355 
--369 
--346 
--315 
--365 
--343 
--293 
--320 
--303 
--276 
--235 
--258 
--240 
--200 
--159 
--132 
--178 
--137 
--110 
--129 
--115 
--129 
--134 
--93 
--153 
--157 
--171 
--163 
--195 
--200 
--159 
--177 
--205 
--187 
--182 
--183 
--201 
--197 
--207 
--243 
--235 
--262 
--262 
--281 
--295 
--300 
--277 
--318 
--278 
--314 
--296 
--256 
--224 
--202 
--211 
--193 
--153 
--162 
--148 
--131 
--90 
--145 
--109 
--68 
--128 
--87 
--146 
--129 
--160 
--225 
--184 
--193 
--203 
--212 
--180 
--181 
--190 
--200 
--204 
--195 
--178 
--237 
--269 
--256 
--279 
--275 
--329 
--293 
--317 
--357 
--321 
--308 
--281 
--300 
--268 
--241 
--228 
--228 
--196 
--156 
--129 
--161 
--134 
--93 
--71 
--112 
--135 
--117 
--90 
--154 
--159 
--118 
--173 
--192 
--196 
--161 
--133 
--175 
--189 
--193 
--153 
--212 
--226 
--226 
--199 
--254 
--300 
--268 
--278 
--337 
--337 
--347 
--315 
--375 
--334 
--293 
--253 
--312 
--271 
--231 
--190 
--222 
--209 
--168 
--128 
--187 
--146 
--147 
--165 
--211 
--202 
--193 
--235 
--212 
--271 
--245 
--285 
--281 
--309 
--277 
--287 
--310 
--337 
--306 
--347 
--365 
--384 
--443 
--403 
--462 
--503 
--481 
--490 
--518 
--509 
--486 
--487 
--487 
--482 
--451 
--424 
--425 
--389 
--366 
--353 
--362 
--366 
--331 
--322 
--350 
--364 
--363 
--373 
--387 
--441 
--406 
--433 
--438 
--484 
--443 
--462 
--462 
--489 
--481 
--467 
--500 
--509 
--509 
--528 
--578 
--560 
--606 
--583 
--625 
--584 
--643 
--603 
--567 
--616 
--581 
--540 
--545 
--523 
--509 
--478 
--437 
--410 
--420 
--415 
--375 
--379 
--393 
--403 
--412 
--421 
--381 
--440 
--400 
--459 
--418 
--478 
--442 
--460 
--456 
--492 
--475 
--452 
--493 
--503 
--512 
--476 
--531 
--581 
--581 
--586 
--591 
--628 
--637 
--601 
--597 
--615 
--611 
--570 
--584 
--553 
--512 
--485 
--458 
--490 
--450 
--423 
--400 
--428 
--455 
--446 
--415 
--465 
--484 
--498 
--493 
--544 
--521 
--571 
--531 
--522 
--550 
--532 
--568 
--546 
--587 
--546 
--606 
--610 
--625 
--625 
--643 
--667 
--676 
--680 
--681 
--690 
--718 
--709 
--668 
--646 
--642 
--628 
--597 
--565 
--556 
--539 
--543 
--503 
--512 
--498 
--481 
--499 
--486 
--509 
--473 
--528 
--587 
--546 
--565 
--565 
--606 
--584 
--575 
--603 
--580 
--612 
--581 
--604 
--600 
--654 
--623 
--578 
--669 
--682 
--706 
--674 
--725 
--684 
--738 
--703 
--671 
--721 
--681 
--640 
--600 
--568 
--532 
--528 
--528 
--496 
--465 
--451 
--461 
--434 
--466 
--453 
--412 
--439 
--445 
--440 
--463 
--459 
--436 
--478 
--437 
--482 
--456 
--415 
--461 
--434 
--466 
--453 
--412 
--471 
--486 
--490 
--477 
--486 
--518 
--528 
--523 
--505 
--547 
--515 
--475 
--470 
--493 
--453 
--412 
--371 
--381 
--363 
--340 
--309 
--291 
--305 
--287 
--282 
--279 
--297 
--275 
--293 
--293 
--353 
--312 
--339 
--345 
--340 
--345 
--354 
--354 
--342 
--337 
--341 
--356 
--338 
--338 
--379 
--393 
--403 
--403 
--421 
--467 
--440 
--400 
--459 
--418 
--378 
--437 
--396 
--361 
--329 
--288 
--311 
--293 
--253 
--217 
--230 
--231 
--190 
--177 
--209 
--177 
--223 
--192 
--246 
--215 
--265 
--225 
--284 
--243 
--271 
--262 
--262 
--281 
--290 
--281 
--259 
--273 
--278 
--278 
--296 
--297 
--315 
--325 
--339 
--370 
--371 
--362 
--335 
--340 
--335 
--300 
--282 
--259 
--228 
--187 
--196 
--170 
--142 
--125 
--120 
--102 
--85 
--62 
--121 
--81 
--90 
--100 
--114 
--118 
--128 
--137 
--146 
--106 
--151 
--125 
--184 
--143 
--144 
--162 
--180 
--181 
--190 
--186 
--209 
--254 
--228 
--287 
--282 
--297 
--265 
--325 
--293 
--270 
--262 
--262 
--239 
--217 
--199 
--195 
--164 
--154 
--128 
--123 
--119 
--115 
--110 
--152 
--134 
--148 
--153 
--212 
--207 
--231 
--195 
--250 
--227 
--232 
--228 
--287 
--260 
--270 
--265 
--306 
--298 
--298 
--303 
--362 
--376 
--381 
--390 
--400 
--423 
--413 
--378 
--428 
--396 
--356 
--320 
--361 
--334 
--293 
--276 
--271 
--271 
--231 
--208 
--250 
--214 
--263 
--228 
--287 
--287 
--297 
--301 
--370 
--352 
--348 
--353 
--389 
--371 
--363 
--381 
--377 
--386 
--391 
--378 
--437 
--405 
--456 
--470 
--475 
--520 
--493 
--521 
--512 
--476 
--481 
--454 
--450 
--427 
--418 
--378 
--364 
--346 
--333 
--306 
--293 
--284 
--261 
--303 
--280 
--298 
--281 
--249 
--300 
--309 
--318 
--301 
--323 
--328 
--338 
--324 
--325 
--334 
--338 
--339 
--312 
--330 
--331 
--385 
--354 
--409 
--373 
--428 
--392 
--446 
--406 
--465 
--425 
--384 
--370 
--398 
--362 
--321 
--304 
--272 
--300 
--259 
--218 
--264 
--237 
--210 
--251 
--215 
--275 
--234 
--293 
--294 
--303 
--316 
--304 
--340 
--313 
--359 
--318 
--364 
--337 
--319 
--356 
--379 
--384 
--411 
--411 
--435 
--462 
--439 
--481 
--499 
--500 
--482 
--518 
--478 
--469 
--469 
--456 
--415 
--384 
--366 
--393 
--353 
--348 
--348 
--331 
--313 
--350 
--309 
--304 
--333 
--387 
--355 
--401 
--415 
--429 
--416 
--443 
--435 
--435 
--457 
--426 
--440 
--463 
--459 
--423 
--478 
--514 
--496 
--538 
--524 
--575 
--539 
--557 
--553 
--562 
--539 
--522 
--513 
--500 
--468 
--436 
--433 
--419 
--360 
--356 
--365 
--329 
--352 
--343 
--330 
--362 
--321 
--349 
--340 
--368 
--377 
--368 
--414 
--387 
--391 
--397 
--383 
--425 
--393 
--398 
--403 
--444 
--426 
--431 
--458 
--486 
--500 
--486 
--528 
--551 
--546 
--506 
--529 
--525 
--484 
--461 
--471 
--462 
--421 
--381 
--372 
--400 
--359 
--318 
--333 
--337 
--351 
--356 
--315 
--375 
--375 
--393 
--376 
--426 
--421 
--431 
--435 
--450 
--459 
--418 
--428 
--437 
--464 
--456 
--460 
--515 
--484 
--484 
--503 
--562 
--544 
--554 
--540 
--577 
--559 
--518 
--478 
--537 
--496 
--456 
--415 
--452 
--434 
--393 
--353 
--403 
--371 
--331 
--290 
--350 
--359 
--363 
--328 
--387 
--396 
--374 
--392 
--438 
--434 
--393 
--430 
--412 
--439 
--422 
--390 
--450 
--445 
--432 
--428 
--505 
--496 
--470 
--510 
--529 
--534 
--525 
--517 
--557 
--530 
--517 
--485 
--468 
--454 
--382 
--364 
--378 
--364 
--333 
--310 
--302 
--316 
--261 
--276 
--289 
--321 
--281 
--263 
--300 
--332 
--313 
--278 
--337 
--319 
--288 
--301 
--320 
--329 
--293 
--262 
--312 
--362 
--331 
--308 
--363 
--409 
--368 
--392 
--414 
--446 
--406 
--401 
--425 
--402 
--357 
--362 
--362 
--321 
--281 
--245 
--272 
--259 
--218 
--214 
--237 
--196 
--224 
--215 
--275 
--234 
--270 
--271 
--298 
--316 
--313 
--317 
--300 
--354 
--318 
--305 
--337 
--328 
--356 
--365 
--402 
--411 
--407 
--417 
--462 
--476 
--481 
--440 
--500 
--504 
--500 
--478 
--451 
--464 
--456 
--415 
--388 
--361 
--366 
--353 
--330 
--303 
--299 
--290 
--304 
--309 
--300 
--328 
--373 
--346 
--347 
--365 
--425 
--384 
--379 
--403 
--403 
--403 
--381 
--417 
--400 
--382 
--418 
--423 
--437 
--419 
--456 
--492 
--488 
--489 
--479 
--489 
--512 
--462 
--440 
--440 
--431 
--377 
--368 
--351 
--337 
--296 
--256 
--260 
--238 
--211 
--216 
--203 
--239 
--221 
--181 
--240 
--245 
--209 
--218 
--264 
--282 
--246 
--224 
--265 
--238 
--239 
--243 
--298 
--262 
--221 
--231 
--299 
--309 
--291 
--282 
--355 
--369 
--346 
--315 
--365 
--343 
--293 
--320 
--303 
--276 
--235 
--258 
--240 
--200 
--159 
--132 
--178 
--137 
--110 
--129 
--115 
--129 
--134 
--93 
--153 
--157 
--171 
--163 
--195 
--200 
--159 
--177 
--205 
--187 
--182 
--183 
--201 
--197 
--207 
--243 
--235 
--262 
--262 
--281 
--295 
--300 
--277 
--318 
--278 
--314 
--296 
--256 
--224 
--202 
--211 
--193 
--153 
--162 
--148 
--131 
--90 
--145 
--109 
--68 
--128 
--87 
--146 
--129 
--160 
--225 
--184 
--193 
--203 
--212 
--180 
--181 
--190 
--200 
--204 
--195 
--178 
--237 
--269 
--256 
--279 
--275 
--329 
--293 
--317 
--357 
--321 
--308 
--281 
--300 
--268 
--241 
--228 
--228 
--196 
--156 
--129 
--161 
--134 
--93 
--71 
--112 
--135 
--117 
--90 
--154 
--159 
--118 
--173 
--192 
--196 
--161 
--133 
--175 
--189 
--193 
--153 
--212 
--226 
--226 
--199 
--254 
--300 
--268 
--278 
--337 
--337 
--347 
--315 
--375 
--334 
--293 
--253 
--312 
--271 
--231 
--190 
--222 
--209 
--168 
--128 
--187 
--146 
--147 
--165 
--211 
--202 
--193 
--235 
--212 
--271 
--245 
--285 
--281 
--309 
--277 
--287 
--310 
--337 
--306 
--347 
--365 
--384 
--443 
--403 
--462 
--503 
--481 
--490 
--518 
--509 
--486 
--487 
--487 
--482 
--451 
--424 
--425 
--389 
--366 
--353 
--362 
--366 
--331 
--322 
--350 
--364 
--363 
--373 
--387 
--441 
--406 
--433 
--438 
--484 
--443 
--462 
--462 
--489 
--481 
--467 
--500 
--509 
--509 
--528 
--578 
--560 
--606 
--583 
--625 
--584 
--643 
--603 
--567 
--616 
--581 
--540 
--545 
--523 
--509 
--478 
--437 
--410 
--420 
--415 
--375 
--379 
--393 
--403 
--412 
--421 
--381 
--440 
--400 
--459 
--418 
--478 
--442 
--460 
--456 
--492 
--475 
--452 
--493 
--503 
--512 
--476 
--531 
--581 
--581 
--586 
--591 
--628 
--637 
--601 
--597 
--615 
--611 
--570 
--584 
--553 
--512 
--485 
--458 
--490 
--450 
--423 
--400 
--428 
--455 
--446 
--415 
--465 
--484 
--498 
--493 
--544 
--521 
--571 
--531 
--522 
--550 
--532 
--568 
--546 
--587 
--546 
--606 
--610 
--625 
--625 
--643 
--667 
--676 
--680 
--681 
--690 
--718 
--709 
--668 
--646 
--642 
--628 
--597 
--565 
--556 
--539 
--543 
--503 
--512 
--498 
--481 
--499 
--486 
--509 
--473 
--528 
--587 
--546 
--565 
--565 
--606 
--584 
--575 
--603 
--580 
--612 
--581 
--604 

+ 0 - 3072
Simulink/angle4.csv

@@ -1,3072 +0,0 @@
-1625 
-1623 
-1631 
-1671 
-1662 
-1603 
-1618 
-1634 
-1625 
-1590 
-1597 
-1562 
-1587 
-1619 
-1584 
-1559 
-1591 
-1606 
-1581 
-1571 
-1562 
-1603 
-1634 
-1600 
-1625 
-1640 
-1647 
-1646 
-1628 
-1653 
-1626 
-1625 
-1650 
-1656 
-1681 
-1671 
-1712 
-1703 
-1684 
-1709 
-1725 
-1740 
-1731 
-1746 
-1778 
-1761 
-1768 
-1759 
-1791 
-1790 
-1789 
-1754 
-1787 
-1761 
-1759 
-1767 
-1766 
-1765 
-1722 
-1721 
-1720 
-1728 
-1718 
-1759 
-1733 
-1748 
-1781 
-1771 
-1812 
-1794 
-1776 
-1750 
-1750 
-1756 
-1781 
-1746 
-1737 
-1686 
-1701 
-1684 
-1700 
-1690 
-1714 
-1721 
-1745 
-1728 
-1743 
-1734 
-1725 
-1715 
-1697 
-1662 
-1645 
-1628 
-1618 
-1659 
-1625 
-1631 
-1631 
-1621 
-1603 
-1594 
-1559 
-1534 
-1541 
-1515 
-1539 
-1496 
-1487 
-1478 
-1451 
-1425 
-1433 
-1440 
-1456 
-1471 
-1470 
-1494 
-1468 
-1434 
-1425 
-1415 
-1406 
-1396 
-1403 
-1378 
-1418 
-1384 
-1391 
-1390 
-1381 
-1329 
-1328 
-1303 
-1343 
-1359 
-1366 
-1373 
-1406 
-1396 
-1370 
-1361 
-1335 
-1309 
-1300 
-1290 
-1289 
-1279 
-1312 
-1278 
-1268 
-1234 
-1241 
-1240 
-1256 
-1296 
-1312 
-1319 
-1318 
-1342 
-1358 
-1340 
-1298 
-1321 
-1312 
-1303 
-1293 
-1334 
-1325 
-1323 
-1306 
-1346 
-1337 
-1328 
-1310 
-1309 
-1341 
-1315 
-1347 
-1362 
-1378 
-1353 
-1368 
-1384 
-1375 
-1365 
-1356 
-1346 
-1387 
-1328 
-1326 
-1317 
-1308 
-1265 
-1248 
-1238 
-1262 
-1269 
-1293 
-1334 
-1333 
-1331 
-1347 
-1371 
-1362 
-1328 
-1318 
-1309 
-1283 
-1282 
-1273 
-1263 
-1279 
-1253 
-1193 
-1217 
-1225 
-1173 
-1164 
-1154 
-1187 
-1228 
-1234 
-1225 
-1208 
-1240 
-1206 
-1213 
-1204 
-1136 
-1110 
-1126 
-1075 
-1065 
-1056 
-1021 
-1020 
-1003 
-1001 
-1009 
-1008 
-1040 
-1081 
-1046 
-1070 
-1095 
-1076 
-1034 
-1025 
-1015 
-1006 
-946 
-987 
-1011 
-1001 
-942 
-958 
-940 
-931 
-971 
-962 
-1003 
-1026 
-984 
-1008 
-1015 
-1006 
-996 
-987 
-1003 
-968 
-942 
-916 
-965 
-973 
-954 
-970 
-995 
-951 
-934 
-925 
-990 
-989 
-979 
-987 
-1028 
-1018 
-1009 
-1000 
-990 
-981 
-971 
-1004 
-1053 
-1060 
-1034 
-1075 
-1073 
-1106 
-1096 
-1087 
-1078 
-1110 
-1059 
-1100 
-1140 
-1173 
-1121 
-1112 
-1153 
-1126 
-1109 
-1100 
-1115 
-1106 
-1138 
-1179 
-1195 
-1193 
-1159 
-1158 
-1223 
-1223 
-1154 
-1187 
-1194 
-1234 
-1201 
-1208 
-1240 
-1239 
-1196 
-1187 
-1186 
-1185 
-1159 
-1200 
-1240 
-1281 
-1221 
-1262 
-1253 
-1293 
-1234 
-1233 
-1265 
-1256 
-1246 
-1237 
-1253 
-1251 
-1192 
-1200 
-1207 
-1181 
-1163 
-1154 
-1170 
-1193 
-1176 
-1175 
-1215 
-1256 
-1246 
-1237 
-1228 
-1218 
-1209 
-1200 
-1215 
-1231 
-1171 
-1212 
-1211 
-1193 
-1159 
-1166 
-1182 
-1123 
-1146 
-1187 
-1211 
-1243 
-1242 
-1250 
-1257 
-1281 
-1254 
-1254 
-1236 
-1226 
-1176 
-1191 
-1223 
-1206 
-1179 
-1187 
-1178 
-1168 
-1159 
-1191 
-1207 
-1198 
-1196 
-1245 
-1261 
-1318 
-1251 
-1283 
-1298 
-1289 
-1254 
-1262 
-1295 
-1309 
-1267 
-1308 
-1340 
-1339 
-1321 
-1312 
-1311 
-1310 
-1292 
-1325 
-1365 
-1406 
-1396 
-1429 
-1428 
-1460 
-1409 
-1400 
-1465 
-1431 
-1421 
-1462 
-1494 
-1459 
-1484 
-1450 
-1465 
-1456 
-1446 
-1437 
-1461 
-1468 
-1501 
-1533 
-1590 
-1581 
-1571 
-1562 
-1594 
-1559 
-1534 
-1550 
-1565 
-1572 
-1587 
-1553 
-1586 
-1568 
-1559 
-1516 
-1498 
-1481 
-1521 
-1562 
-1603 
-1601 
-1600 
-1600 
-1631 
-1631 
-1612 
-1595 
-1586 
-1559 
-1559 
-1550 
-1540 
-1522 
-1521 
-1512 
-1469 
-1443 
-1426 
-1475 
-1457 
-1472 
-1496 
-1537 
-1536 
-1526 
-1509 
-1525 
-1531 
-1472 
-1462 
-1445 
-1453 
-1434 
-1400 
-1433 
-1381 
-1331 
-1338 
-1354 
-1378 
-1401 
-1392 
-1441 
-1440 
-1439 
-1429 
-1462 
-1469 
-1443 
-1400 
-1425 
-1390 
-1381 
-1346 
-1353 
-1378 
-1318 
-1359 
-1366 
-1348 
-1289 
-1321 
-1370 
-1370 
-1376 
-1409 
-1466 
-1448 
-1423 
-1413 
-1420 
-1403 
-1384 
-1409 
-1450 
-1431 
-1422 
-1429 
-1412 
-1370 
-1343 
-1376 
-1391 
-1423 
-1456 
-1496 
-1520 
-1528 
-1518 
-1509 
-1508 
-1531 
-1522 
-1521 
-1520 
-1519 
-1518 
-1492 
-1491 
-1473 
-1456 
-1446 
-1437 
-1495 
-1501 
-1509 
-1550 
-1548 
-1581 
-1579 
-1578 
-1603 
-1543 
-1542 
-1575 
-1565 
-1556 
-1562 
-1570 
-1536 
-1518 
-1509 
-1458 
-1481 
-1481 
-1521 
-1562 
-1586 
-1559 
-1584 
-1575 
-1565 
-1547 
-1546 
-1537 
-1528 
-1509 
-1509 
-1450 
-1423 
-1414 
-1404 
-1362 
-1369 
-1393 
-1384 
-1425 
-1398 
-1406 
-1446 
-1478 
-1478 
-1443 
-1434 
-1383 
-1381 
-1372 
-1371 
-1312 
-1303 
-1343 
-1334 
-1258 
-1223 
-1214 
-1229 
-1254 
-1245 
-1285 
-1309 
-1325 
-1290 
-1281 
-1279 
-1262 
-1253 
-1243 
-1209 
-1208 
-1165 
-1181 
-1196 
-1137 
-1111 
-1126 
-1117 
-1108 
-1090 
-1131 
-1138 
-1162 
-1153 
-1193 
-1184 
-1175 
-1165 
-1156 
-1196 
-1137 
-1128 
-1151 
-1142 
-1100 
-1140 
-1139 
-1121 
-1087 
-1103 
-1143 
-1151 
-1175 
-1182 
-1206 
-1196 
-1204 
-1220 
-1218 
-1209 
-1183 
-1148 
-1181 
-1213 
-1162 
-1153 
-1168 
-1167 
-1141 
-1132 
-1131 
-1113 
-1137 
-1178 
-1218 
-1217 
-1250 
-1265 
-1264 
-1238 
-1254 
-1253 
-1234 
-1192 
-1191 
-1165 
-1164 
-1129 
-1112 
-1095 
-1101 
-1109 
-1150 
-1190 
-1198 
-1171 
-1212 
-1203 
-1193 
-1192 
-1183 
-1206 
-1156 
-1146 
-1137 
-1128 
-1068 
-1051 
-1016 
-1007 
-1014 
-1021 
-1012 
-1028 
-1010 
-1042 
-1066 
-1090 
-1064 
-1088 
-1087 
-1061 
-1043 
-1042 
-1050 
-990 
-989 
-979 
-962 
-953 
-918 
-934 
-925 
-915 
-956 
-988 
-1012 
-978 
-1010 
-1009 
-1000 
-982 
-1006 
-1004 
-962 
-953 
-935 
-942 
-925 
-915 
-923 
-938 
-929 
-886 
-885 
-926 
-900 
-940 
-964 
-988 
-962 
-970 
-993 
-984 
-975 
-973 
-956 
-996 
-1004 
-978 
-960 
-959 
-1000 
-957 
-981 
-979 
-1012 
-1003 
-1043 
-1084 
-1100 
-1115 
-1081 
-1096 
-1095 
-1086 
-1118 
-1134 
-1150 
-1132 
-1081 
-1121 
-1112 
-1095 
-1093 
-1109 
-1075 
-1090 
-1106 
-1146 
-1162 
-1128 
-1176 
-1184 
-1200 
-1190 
-1198 
-1221 
-1212 
-1211 
-1201 
-1234 
-1233 
-1215 
-1206 
-1213 
-1237 
-1195 
-1185 
-1192 
-1225 
-1240 
-1273 
-1288 
-1270 
-1303 
-1293 
-1317 
-1308 
-1265 
-1256 
-1296 
-1287 
-1253 
-1268 
-1209 
-1200 
-1148 
-1181 
-1171 
-1162 
-1153 
-1160 
-1201 
-1191 
-1182 
-1206 
-1246 
-1279 
-1236 
-1226 
-1234 
-1250 
-1231 
-1181 
-1146 
-1162 
-1128 
-1093 
-1101 
-1125 
-1115 
-1123 
-1146 
-1187 
-1228 
-1226 
-1234 
-1250 
-1240 
-1206 
-1171 
-1195 
-1203 
-1143 
-1176 
-1125 
-1157 
-1156 
-1188 
-1154 
-1186 
-1168 
-1159 
-1200 
-1190 
-1198 
-1213 
-1204 
-1203 
-1226 
-1217 
-1225 
-1240 
-1256 
-1246 
-1262 
-1286 
-1301 
-1276 
-1300 
-1340 
-1314 
-1329 
-1312 
-1353 
-1368 
-1342 
-1375 
-1415 
-1431 
-1396 
-1437 
-1428 
-1443 
-1459 
-1466 
-1490 
-1522 
-1479 
-1512 
-1503 
-1518 
-1500 
-1475 
-1465 
-1506 
-1496 
-1495 
-1519 
-1543 
-1509 
-1550 
-1590 
-1631 
-1621 
-1612 
-1628 
-1643 
-1634 
-1600 
-1615 
-1656 
-1662 
-1637 
-1628 
-1618 
-1642 
-1641 
-1640 
-1656 
-1646 
-1628 
-1661 
-1693 
-1725 
-1700 
-1698 
-1689 
-1679 
-1687 
-1686 
-1718 
-1709 
-1650 
-1665 
-1606 
-1571 
-1562 
-1553 
-1593 
-1584 
-1533 
-1565 
-1589 
-1596 
-1620 
-1594 
-1626 
-1609 
-1641 
-1606 
-1631 
-1621 
-1578 
-1569 
-1543 
-1534 
-1525 
-1515 
-1547 
-1546 
-1537 
-1536 
-1568 
-1609 
-1625 
-1623 
-1631 
-1671 
-1662 
-1603 
-1618 
-1634 
-1625 
-1590 
-1597 
-1562 
-1587 
-1619 
-1584 
-1559 
-1591 
-1606 
-1581 
-1571 
-1562 
-1603 
-1634 
-1600 
-1625 
-1640 
-1647 
-1646 
-1628 
-1653 
-1626 
-1625 
-1650 
-1656 
-1681 
-1671 
-1712 
-1703 
-1684 
-1709 
-1725 
-1740 
-1731 
-1746 
-1778 
-1761 
-1768 
-1759 
-1791 
-1790 
-1789 
-1754 
-1787 
-1761 
-1759 
-1767 
-1766 
-1765 
-1722 
-1721 
-1720 
-1728 
-1718 
-1759 
-1733 
-1748 
-1781 
-1771 
-1812 
-1794 
-1776 
-1750 
-1750 
-1756 
-1781 
-1746 
-1737 
-1686 
-1701 
-1684 
-1700 
-1690 
-1714 
-1721 
-1745 
-1728 
-1743 
-1734 
-1725 
-1715 
-1697 
-1662 
-1645 
-1628 
-1618 
-1659 
-1625 
-1631 
-1631 
-1621 
-1603 
-1594 
-1559 
-1534 
-1541 
-1515 
-1539 
-1496 
-1487 
-1478 
-1451 
-1425 
-1433 
-1440 
-1456 
-1471 
-1470 
-1494 
-1468 
-1434 
-1425 
-1415 
-1406 
-1396 
-1403 
-1378 
-1418 
-1384 
-1391 
-1390 
-1381 
-1329 
-1328 
-1303 
-1343 
-1359 
-1366 
-1373 
-1406 
-1396 
-1370 
-1361 
-1335 
-1309 
-1300 
-1290 
-1289 
-1279 
-1312 
-1278 
-1268 
-1234 
-1241 
-1240 
-1256 
-1296 
-1312 
-1319 
-1318 
-1342 
-1358 
-1340 
-1298 
-1321 
-1312 
-1303 
-1293 
-1334 
-1325 
-1323 
-1306 
-1346 
-1337 
-1328 
-1310 
-1309 
-1341 
-1315 
-1347 
-1362 
-1378 
-1353 
-1368 
-1384 
-1375 
-1365 
-1356 
-1346 
-1387 
-1328 
-1326 
-1317 
-1308 
-1265 
-1248 
-1238 
-1262 
-1269 
-1293 
-1334 
-1333 
-1331 
-1347 
-1371 
-1362 
-1328 
-1318 
-1309 
-1283 
-1282 
-1273 
-1263 
-1279 
-1253 
-1193 
-1217 
-1225 
-1173 
-1164 
-1154 
-1187 
-1228 
-1234 
-1225 
-1208 
-1240 
-1206 
-1213 
-1204 
-1136 
-1110 
-1126 
-1075 
-1065 
-1056 
-1021 
-1020 
-1003 
-1001 
-1009 
-1008 
-1040 
-1081 
-1046 
-1070 
-1095 
-1076 
-1034 
-1025 
-1015 
-1006 
-946 
-987 
-1011 
-1001 
-942 
-958 
-940 
-931 
-971 
-962 
-1003 
-1026 
-984 
-1008 
-1015 
-1006 
-996 
-987 
-1003 
-968 
-942 
-916 
-965 
-973 
-954 
-970 
-995 
-951 
-934 
-925 
-990 
-989 
-979 
-987 
-1028 
-1018 
-1009 
-1000 
-990 
-981 
-971 
-1004 
-1053 
-1060 
-1034 
-1075 
-1073 
-1106 
-1096 
-1087 
-1078 
-1110 
-1059 
-1100 
-1140 
-1173 
-1121 
-1112 
-1153 
-1126 
-1109 
-1100 
-1115 
-1106 
-1138 
-1179 
-1195 
-1193 
-1159 
-1158 
-1223 
-1223 
-1154 
-1187 
-1194 
-1234 
-1201 
-1208 
-1240 
-1239 
-1196 
-1187 
-1186 
-1185 
-1159 
-1200 
-1240 
-1281 
-1221 
-1262 
-1253 
-1293 
-1234 
-1233 
-1265 
-1256 
-1246 
-1237 
-1253 
-1251 
-1192 
-1200 
-1207 
-1181 
-1163 
-1154 
-1170 
-1193 
-1176 
-1175 
-1215 
-1256 
-1246 
-1237 
-1228 
-1218 
-1209 
-1200 
-1215 
-1231 
-1171 
-1212 
-1211 
-1193 
-1159 
-1166 
-1182 
-1123 
-1146 
-1187 
-1211 
-1243 
-1242 
-1250 
-1257 
-1281 
-1254 
-1254 
-1236 
-1226 
-1176 
-1191 
-1223 
-1206 
-1179 
-1187 
-1178 
-1168 
-1159 
-1191 
-1207 
-1198 
-1196 
-1245 
-1261 
-1318 
-1251 
-1283 
-1298 
-1289 
-1254 
-1262 
-1295 
-1309 
-1267 
-1308 
-1340 
-1339 
-1321 
-1312 
-1311 
-1310 
-1292 
-1325 
-1365 
-1406 
-1396 
-1429 
-1428 
-1460 
-1409 
-1400 
-1465 
-1431 
-1421 
-1462 
-1494 
-1459 
-1484 
-1450 
-1465 
-1456 
-1446 
-1437 
-1461 
-1468 
-1501 
-1533 
-1590 
-1581 
-1571 
-1562 
-1594 
-1559 
-1534 
-1550 
-1565 
-1572 
-1587 
-1553 
-1586 
-1568 
-1559 
-1516 
-1498 
-1481 
-1521 
-1562 
-1603 
-1601 
-1600 
-1600 
-1631 
-1631 
-1612 
-1595 
-1586 
-1559 
-1559 
-1550 
-1540 
-1522 
-1521 
-1512 
-1469 
-1443 
-1426 
-1475 
-1457 
-1472 
-1496 
-1537 
-1536 
-1526 
-1509 
-1525 
-1531 
-1472 
-1462 
-1445 
-1453 
-1434 
-1400 
-1433 
-1381 
-1331 
-1338 
-1354 
-1378 
-1401 
-1392 
-1441 
-1440 
-1439 
-1429 
-1462 
-1469 
-1443 
-1400 
-1425 
-1390 
-1381 
-1346 
-1353 
-1378 
-1318 
-1359 
-1366 
-1348 
-1289 
-1321 
-1370 
-1370 
-1376 
-1409 
-1466 
-1448 
-1423 
-1413 
-1420 
-1403 
-1384 
-1409 
-1450 
-1431 
-1422 
-1429 
-1412 
-1370 
-1343 
-1376 
-1391 
-1423 
-1456 
-1496 
-1520 
-1528 
-1518 
-1509 
-1508 
-1531 
-1522 
-1521 
-1520 
-1519 
-1518 
-1492 
-1491 
-1473 
-1456 
-1446 
-1437 
-1495 
-1501 
-1509 
-1550 
-1548 
-1581 
-1579 
-1578 
-1603 
-1543 
-1542 
-1575 
-1565 
-1556 
-1562 
-1570 
-1536 
-1518 
-1509 
-1458 
-1481 
-1481 
-1521 
-1562 
-1586 
-1559 
-1584 
-1575 
-1565 
-1547 
-1546 
-1537 
-1528 
-1509 
-1509 
-1450 
-1423 
-1414 
-1404 
-1362 
-1369 
-1393 
-1384 
-1425 
-1398 
-1406 
-1446 
-1478 
-1478 
-1443 
-1434 
-1383 
-1381 
-1372 
-1371 
-1312 
-1303 
-1343 
-1334 
-1258 
-1223 
-1214 
-1229 
-1254 
-1245 
-1285 
-1309 
-1325 
-1290 
-1281 
-1279 
-1262 
-1253 
-1243 
-1209 
-1208 
-1165 
-1181 
-1196 
-1137 
-1111 
-1126 
-1117 
-1108 
-1090 
-1131 
-1138 
-1162 
-1153 
-1193 
-1184 
-1175 
-1165 
-1156 
-1196 
-1137 
-1128 
-1151 
-1142 
-1100 
-1140 
-1139 
-1121 
-1087 
-1103 
-1143 
-1151 
-1175 
-1182 
-1206 
-1196 
-1204 
-1220 
-1218 
-1209 
-1183 
-1148 
-1181 
-1213 
-1162 
-1153 
-1168 
-1167 
-1141 
-1132 
-1131 
-1113 
-1137 
-1178 
-1218 
-1217 
-1250 
-1265 
-1264 
-1238 
-1254 
-1253 
-1234 
-1192 
-1191 
-1165 
-1164 
-1129 
-1112 
-1095 
-1101 
-1109 
-1150 
-1190 
-1198 
-1171 
-1212 
-1203 
-1193 
-1192 
-1183 
-1206 
-1156 
-1146 
-1137 
-1128 
-1068 
-1051 
-1016 
-1007 
-1014 
-1021 
-1012 
-1028 
-1010 
-1042 
-1066 
-1090 
-1064 
-1088 
-1087 
-1061 
-1043 
-1042 
-1050 
-990 
-989 
-979 
-962 
-953 
-918 
-934 
-925 
-915 
-956 
-988 
-1012 
-978 
-1010 
-1009 
-1000 
-982 
-1006 
-1004 
-962 
-953 
-935 
-942 
-925 
-915 
-923 
-938 
-929 
-886 
-885 
-926 
-900 
-940 
-964 
-988 
-962 
-970 
-993 
-984 
-975 
-973 
-956 
-996 
-1004 
-978 
-960 
-959 
-1000 
-957 
-981 
-979 
-1012 
-1003 
-1043 
-1084 
-1100 
-1115 
-1081 
-1096 
-1095 
-1086 
-1118 
-1134 
-1150 
-1132 
-1081 
-1121 
-1112 
-1095 
-1093 
-1109 
-1075 
-1090 
-1106 
-1146 
-1162 
-1128 
-1176 
-1184 
-1200 
-1190 
-1198 
-1221 
-1212 
-1211 
-1201 
-1234 
-1233 
-1215 
-1206 
-1213 
-1237 
-1195 
-1185 
-1192 
-1225 
-1240 
-1273 
-1288 
-1270 
-1303 
-1293 
-1317 
-1308 
-1265 
-1256 
-1296 
-1287 
-1253 
-1268 
-1209 
-1200 
-1148 
-1181 
-1171 
-1162 
-1153 
-1160 
-1201 
-1191 
-1182 
-1206 
-1246 
-1279 
-1236 
-1226 
-1234 
-1250 
-1231 
-1181 
-1146 
-1162 
-1128 
-1093 
-1101 
-1125 
-1115 
-1123 
-1146 
-1187 
-1228 
-1226 
-1234 
-1250 
-1240 
-1206 
-1171 
-1195 
-1203 
-1143 
-1176 
-1125 
-1157 
-1156 
-1188 
-1154 
-1186 
-1168 
-1159 
-1200 
-1190 
-1198 
-1213 
-1204 
-1203 
-1226 
-1217 
-1225 
-1240 
-1256 
-1246 
-1262 
-1286 
-1301 
-1276 
-1300 
-1340 
-1314 
-1329 
-1312 
-1353 
-1368 
-1342 
-1375 
-1415 
-1431 
-1396 
-1437 
-1428 
-1443 
-1459 
-1466 
-1490 
-1522 
-1479 
-1512 
-1503 
-1518 
-1500 
-1475 
-1465 
-1506 
-1496 
-1495 
-1519 
-1543 
-1509 
-1550 
-1590 
-1631 
-1621 
-1612 
-1628 
-1643 
-1634 
-1600 
-1615 
-1656 
-1662 
-1637 
-1628 
-1618 
-1642 
-1641 
-1640 
-1656 
-1646 
-1628 
-1661 
-1693 
-1725 
-1700 
-1698 
-1689 
-1679 
-1687 
-1686 
-1718 
-1709 
-1650 
-1665 
-1606 
-1571 
-1562 
-1553 
-1593 
-1584 
-1533 
-1565 
-1589 
-1596 
-1620 
-1594 
-1626 
-1609 
-1641 
-1606 
-1631 
-1621 
-1578 
-1569 
-1543 
-1534 
-1525 
-1515 
-1547 
-1546 
-1537 
-1536 
-1568 
-1609 
-1625 
-1623 
-1631 
-1671 
-1662 
-1603 
-1618 
-1634 
-1625 
-1590 
-1597 
-1562 
-1587 
-1619 
-1584 
-1559 
-1591 
-1606 
-1581 
-1571 
-1562 
-1603 
-1634 
-1600 
-1625 
-1640 
-1647 
-1646 
-1628 
-1653 
-1626 
-1625 
-1650 
-1656 
-1681 
-1671 
-1712 
-1703 
-1684 
-1709 
-1725 
-1740 
-1731 
-1746 
-1778 
-1761 
-1768 
-1759 
-1791 
-1790 
-1789 
-1754 
-1787 
-1761 
-1759 
-1767 
-1766 
-1765 
-1722 
-1721 
-1720 
-1728 
-1718 
-1759 
-1733 
-1748 
-1781 
-1771 
-1812 
-1794 
-1776 
-1750 
-1750 
-1756 
-1781 
-1746 
-1737 
-1686 
-1701 
-1684 
-1700 
-1690 
-1714 
-1721 
-1745 
-1728 
-1743 
-1734 
-1725 
-1715 
-1697 
-1662 
-1645 
-1628 
-1618 
-1659 
-1625 
-1631 
-1631 
-1621 
-1603 
-1594 
-1559 
-1534 
-1541 
-1515 
-1539 
-1496 
-1487 
-1478 
-1451 
-1425 
-1433 
-1440 
-1456 
-1471 
-1470 
-1494 
-1468 
-1434 
-1425 
-1415 
-1406 
-1396 
-1403 
-1378 
-1418 
-1384 
-1391 
-1390 
-1381 
-1329 
-1328 
-1303 
-1343 
-1359 
-1366 
-1373 
-1406 
-1396 
-1370 
-1361 
-1335 
-1309 
-1300 
-1290 
-1289 
-1279 
-1312 
-1278 
-1268 
-1234 
-1241 
-1240 
-1256 
-1296 
-1312 
-1319 
-1318 
-1342 
-1358 
-1340 
-1298 
-1321 
-1312 
-1303 
-1293 
-1334 
-1325 
-1323 
-1306 
-1346 
-1337 
-1328 
-1310 
-1309 
-1341 
-1315 
-1347 
-1362 
-1378 
-1353 
-1368 
-1384 
-1375 
-1365 
-1356 
-1346 
-1387 
-1328 
-1326 
-1317 
-1308 
-1265 
-1248 
-1238 
-1262 
-1269 
-1293 
-1334 
-1333 
-1331 
-1347 
-1371 
-1362 
-1328 
-1318 
-1309 
-1283 
-1282 
-1273 
-1263 
-1279 
-1253 
-1193 
-1217 
-1225 
-1173 
-1164 
-1154 
-1187 
-1228 
-1234 
-1225 
-1208 
-1240 
-1206 
-1213 
-1204 
-1136 
-1110 
-1126 
-1075 
-1065 
-1056 
-1021 
-1020 
-1003 
-1001 
-1009 
-1008 
-1040 
-1081 
-1046 
-1070 
-1095 
-1076 
-1034 
-1025 
-1015 
-1006 
-946 
-987 
-1011 
-1001 
-942 
-958 
-940 
-931 
-971 
-962 
-1003 
-1026 
-984 
-1008 
-1015 
-1006 
-996 
-987 
-1003 
-968 
-942 
-916 
-965 
-973 
-954 
-970 
-995 
-951 
-934 
-925 
-990 
-989 
-979 
-987 
-1028 
-1018 
-1009 
-1000 
-990 
-981 
-971 
-1004 
-1053 
-1060 
-1034 
-1075 
-1073 
-1106 
-1096 
-1087 
-1078 
-1110 
-1059 
-1100 
-1140 
-1173 
-1121 
-1112 
-1153 
-1126 
-1109 
-1100 
-1115 
-1106 
-1138 
-1179 
-1195 
-1193 
-1159 
-1158 
-1223 
-1223 
-1154 
-1187 
-1194 
-1234 
-1201 
-1208 
-1240 
-1239 
-1196 
-1187 
-1186 
-1185 
-1159 
-1200 
-1240 
-1281 
-1221 
-1262 
-1253 
-1293 
-1234 
-1233 
-1265 
-1256 
-1246 
-1237 
-1253 
-1251 
-1192 
-1200 
-1207 
-1181 
-1163 
-1154 
-1170 
-1193 
-1176 
-1175 
-1215 
-1256 
-1246 
-1237 
-1228 
-1218 
-1209 
-1200 
-1215 
-1231 
-1171 
-1212 
-1211 
-1193 
-1159 
-1166 
-1182 
-1123 
-1146 
-1187 
-1211 
-1243 
-1242 
-1250 
-1257 
-1281 
-1254 
-1254 
-1236 
-1226 
-1176 
-1191 
-1223 
-1206 
-1179 
-1187 
-1178 
-1168 
-1159 
-1191 
-1207 
-1198 
-1196 
-1245 
-1261 
-1318 
-1251 
-1283 
-1298 
-1289 
-1254 
-1262 
-1295 
-1309 
-1267 
-1308 
-1340 
-1339 
-1321 
-1312 
-1311 
-1310 
-1292 
-1325 
-1365 
-1406 
-1396 
-1429 
-1428 
-1460 
-1409 
-1400 
-1465 
-1431 
-1421 
-1462 
-1494 
-1459 
-1484 
-1450 
-1465 
-1456 
-1446 
-1437 
-1461 
-1468 
-1501 
-1533 
-1590 
-1581 
-1571 
-1562 
-1594 
-1559 
-1534 
-1550 
-1565 
-1572 
-1587 
-1553 
-1586 
-1568 
-1559 
-1516 
-1498 
-1481 
-1521 
-1562 
-1603 
-1601 
-1600 
-1600 
-1631 
-1631 
-1612 
-1595 
-1586 
-1559 
-1559 
-1550 
-1540 
-1522 
-1521 
-1512 
-1469 
-1443 
-1426 
-1475 
-1457 
-1472 
-1496 
-1537 
-1536 
-1526 
-1509 
-1525 
-1531 
-1472 
-1462 
-1445 
-1453 
-1434 
-1400 
-1433 
-1381 
-1331 
-1338 
-1354 
-1378 
-1401 
-1392 
-1441 
-1440 
-1439 
-1429 
-1462 
-1469 
-1443 
-1400 
-1425 
-1390 
-1381 
-1346 
-1353 
-1378 
-1318 
-1359 
-1366 
-1348 
-1289 
-1321 
-1370 
-1370 
-1376 
-1409 
-1466 
-1448 
-1423 
-1413 
-1420 
-1403 
-1384 
-1409 
-1450 
-1431 
-1422 
-1429 
-1412 
-1370 
-1343 
-1376 
-1391 
-1423 
-1456 
-1496 
-1520 
-1528 
-1518 
-1509 
-1508 
-1531 
-1522 
-1521 
-1520 
-1519 
-1518 
-1492 
-1491 
-1473 
-1456 
-1446 
-1437 
-1495 
-1501 
-1509 
-1550 
-1548 
-1581 
-1579 
-1578 
-1603 
-1543 
-1542 
-1575 
-1565 
-1556 
-1562 
-1570 
-1536 
-1518 
-1509 
-1458 
-1481 
-1481 
-1521 
-1562 
-1586 
-1559 
-1584 
-1575 
-1565 
-1547 
-1546 
-1537 
-1528 
-1509 
-1509 
-1450 
-1423 
-1414 
-1404 
-1362 
-1369 
-1393 
-1384 
-1425 
-1398 
-1406 
-1446 
-1478 
-1478 
-1443 
-1434 
-1383 
-1381 
-1372 
-1371 
-1312 
-1303 
-1343 
-1334 
-1258 
-1223 
-1214 
-1229 
-1254 
-1245 
-1285 
-1309 
-1325 
-1290 
-1281 
-1279 
-1262 
-1253 
-1243 
-1209 
-1208 
-1165 
-1181 
-1196 
-1137 
-1111 
-1126 
-1117 
-1108 
-1090 
-1131 
-1138 
-1162 
-1153 
-1193 
-1184 
-1175 
-1165 
-1156 
-1196 
-1137 
-1128 
-1151 
-1142 
-1100 
-1140 
-1139 
-1121 
-1087 
-1103 
-1143 
-1151 
-1175 
-1182 
-1206 
-1196 
-1204 
-1220 
-1218 
-1209 
-1183 
-1148 
-1181 
-1213 
-1162 
-1153 
-1168 
-1167 
-1141 
-1132 
-1131 
-1113 
-1137 
-1178 
-1218 
-1217 
-1250 
-1265 
-1264 
-1238 
-1254 
-1253 
-1234 
-1192 
-1191 
-1165 
-1164 
-1129 
-1112 
-1095 
-1101 
-1109 
-1150 
-1190 
-1198 
-1171 
-1212 
-1203 
-1193 
-1192 
-1183 
-1206 
-1156 
-1146 
-1137 
-1128 
-1068 
-1051 
-1016 
-1007 
-1014 
-1021 
-1012 
-1028 
-1010 
-1042 
-1066 
-1090 
-1064 
-1088 
-1087 
-1061 
-1043 
-1042 
-1050 
-990 
-989 
-979 
-962 
-953 
-918 
-934 
-925 
-915 
-956 
-988 
-1012 
-978 
-1010 
-1009 
-1000 
-982 
-1006 
-1004 
-962 
-953 
-935 
-942 
-925 
-915 
-923 
-938 
-929 
-886 
-885 
-926 
-900 
-940 
-964 
-988 
-962 
-970 
-993 
-984 
-975 
-973 
-956 
-996 
-1004 
-978 
-960 
-959 
-1000 
-957 
-981 
-979 
-1012 
-1003 
-1043 
-1084 
-1100 
-1115 
-1081 
-1096 
-1095 
-1086 
-1118 
-1134 
-1150 
-1132 
-1081 
-1121 
-1112 
-1095 
-1093 
-1109 
-1075 
-1090 
-1106 
-1146 
-1162 
-1128 
-1176 
-1184 
-1200 
-1190 
-1198 
-1221 
-1212 
-1211 
-1201 
-1234 
-1233 
-1215 
-1206 
-1213 
-1237 
-1195 
-1185 
-1192 
-1225 
-1240 
-1273 
-1288 
-1270 
-1303 
-1293 
-1317 
-1308 
-1265 
-1256 
-1296 
-1287 
-1253 
-1268 
-1209 
-1200 
-1148 
-1181 
-1171 
-1162 
-1153 
-1160 
-1201 
-1191 
-1182 
-1206 
-1246 
-1279 
-1236 
-1226 
-1234 
-1250 
-1231 
-1181 
-1146 
-1162 
-1128 
-1093 
-1101 
-1125 
-1115 
-1123 
-1146 
-1187 
-1228 
-1226 
-1234 
-1250 
-1240 
-1206 
-1171 
-1195 
-1203 
-1143 
-1176 
-1125 
-1157 
-1156 
-1188 
-1154 
-1186 
-1168 
-1159 
-1200 
-1190 
-1198 
-1213 
-1204 
-1203 
-1226 
-1217 
-1225 
-1240 
-1256 
-1246 
-1262 
-1286 
-1301 
-1276 
-1300 
-1340 
-1314 
-1329 
-1312 
-1353 
-1368 
-1342 
-1375 
-1415 
-1431 
-1396 
-1437 
-1428 
-1443 
-1459 
-1466 
-1490 
-1522 
-1479 
-1512 
-1503 
-1518 
-1500 
-1475 
-1465 
-1506 
-1496 
-1495 
-1519 
-1543 
-1509 
-1550 
-1590 
-1631 
-1621 
-1612 
-1628 
-1643 
-1634 
-1600 
-1615 
-1656 
-1662 
-1637 
-1628 
-1618 
-1642 
-1641 
-1640 
-1656 
-1646 
-1628 
-1661 
-1693 
-1725 
-1700 
-1698 
-1689 
-1679 
-1687 
-1686 
-1718 
-1709 
-1650 
-1665 
-1606 
-1571 
-1562 
-1553 
-1593 
-1584 
-1533 
-1565 
-1589 
-1596 
-1620 
-1594 
-1626 
-1609 
-1641 
-1606 
-1631 
-1621 
-1578 
-1569 
-1543 
-1534 
-1525 
-1515 
-1547 
-1546 
-1537 
-1536 
-1568 
-1609 

+ 0 - 3072
Simulink/angle5.csv

@@ -1,3072 +0,0 @@
-1150 
-1083 
-1092 
-1077 
-1053 
-986 
-937 
-930 
-989 
-1007 
-1057 
-1033 
-1025 
-935 
-910 
-886 
-887 
-838 
-814 
-830 
-848 
-799 
-834 
-892 
-968 
-1019 
-1086 
-1137 
-1196 
-1247 
-1323 
-1374 
-1425 
-1425 
-1426 
-1435 
-1428 
-1369 
-1329 
-1313 
-1331 
-1307 
-1282 
-1308 
-1325 
-1360 
-1376 
-1361 
-1337 
-1313 
-1330 
-1314 
-1315 
-1332 
-1308 
-1342 
-1326 
-1310 
-1320 
-1329 
-1321 
-1347 
-1348 
-1415 
-1416 
-1441 
-1476 
-1477 
-1453 
-1428 
-1412 
-1446 
-1439 
-1448 
-1415 
-1383 
-1359 
-1351 
-1360 
-1436 
-1470 
-1488 
-1555 
-1539 
-1540 
-1499 
-1467 
-1492 
-1451 
-1385 
-1328 
-1346 
-1287 
-1272 
-1306 
-1315 
-1366 
-1350 
-1409 
-1402 
-1336 
-1311 
-1229 
-1246 
-1181 
-1107 
-1115 
-1108 
-1034 
-1060 
-1051 
-1111 
-1153 
-1163 
-1230 
-1264 
-1206 
-1216 
-1192 
-1167 
-1159 
-1135 
-1086 
-1071 
-1046 
-1022 
-1056 
-1074 
-1125 
-1141 
-1201 
-1277 
-1261 
-1278 
-1304 
-1280 
-1256 
-1215 
-1207 
-1183 
-1167 
-1135 
-1118 
-1127 
-1145 
-1138 
-1197 
-1205 
-1265 
-1207 
-1217 
-1175 
-1168 
-1152 
-1170 
-1162 
-1162 
-1147 
-1148 
-1199 
-1225 
-1216 
-1276 
-1285 
-1328 
-1328 
-1379 
-1421 
-1456 
-1457 
-1482 
-1491 
-1500 
-1526 
-1493 
-1511 
-1503 
-1463 
-1439 
-1439 
-1415 
-1441 
-1442 
-1458 
-1493 
-1419 
-1403 
-1354 
-1304 
-1322 
-1248 
-1224 
-1200 
-1200 
-1201 
-1277 
-1311 
-1353 
-1395 
-1455 
-1514 
-1582 
-1615 
-1683 
-1700 
-1710 
-1660 
-1686 
-1678 
-1629 
-1564 
-1539 
-1515 
-1482 
-1417 
-1408 
-1468 
-1535 
-1520 
-1521 
-1487 
-1488 
-1439 
-1415 
-1425 
-1400 
-1359 
-1352 
-1336 
-1319 
-1295 
-1355 
-1431 
-1457 
-1482 
-1549 
-1584 
-1610 
-1601 
-1561 
-1587 
-1563 
-1489 
-1464 
-1440 
-1416 
-1342 
-1367 
-1409 
-1460 
-1470 
-1471 
-1546 
-1563 
-1456 
-1474 
-1500 
-1475 
-1451 
-1477 
-1503 
-1453 
-1362 
-1380 
-1356 
-1365 
-1307 
-1258 
-1292 
-1276 
-1193 
-1186 
-1212 
-1188 
-1114 
-1139 
-1165 
-1141 
-1075 
-1042 
-1068 
-1077 
-1095 
-1121 
-1171 
-1247 
-1189 
-1207 
-1208 
-1200 
-1126 
-1093 
-1078 
-1053 
-962 
-955 
-1031 
-1015 
-1032 
-1058 
-1100 
-1151 
-1126 
-1144 
-1187 
-1163 
-1089 
-1055 
-1081 
-1041 
-942 
-967 
-951 
-927 
-895 
-904 
-954 
-1022 
-998 
-999 
-975 
-958 
-868 
-877 
-878 
-878 
-771 
-822 
-831 
-832 
-857 
-925 
-1000 
-1035 
-1060 
-1136 
-1212 
-1254 
-1255 
-1280 
-1315 
-1324 
-1267 
-1258 
-1243 
-1194 
-1170 
-1137 
-1121 
-1138 
-1123 
-1149 
-1183 
-1150 
-1084 
-1043 
-1028 
-1003 
-979 
-955 
-1014 
-1023 
-999 
-1058 
-1084 
-1110 
-1135 
-1161 
-1237 
-1288 
-1289 
-1330 
-1340 
-1382 
-1342 
-1350 
-1384 
-1369 
-1345 
-1371 
-1354 
-1355 
-1298 
-1274 
-1258 
-1283 
-1301 
-1310 
-1353 
-1294 
-1287 
-1280 
-1256 
-1182 
-1140 
-1108 
-1084 
-1051 
-1060 
-1052 
-1112 
-1138 
-1180 
-1214 
-1265 
-1266 
-1267 
-1292 
-1243 
-1194 
-1170 
-1104 
-1071 
-1047 
-1006 
-982 
-925 
-958 
-984 
-1052 
-1078 
-1094 
-1104 
-1038 
-1047 
-1007 
-1015 
-958 
-959 
-860 
-860 
-861 
-804 
-855 
-864 
-914 
-898 
-907 
-892 
-884 
-884 
-786 
-720 
-721 
-679 
-655 
-598 
-624 
-650 
-625 
-684 
-727 
-753 
-728 
-754 
-730 
-714 
-724 
-707 
-716 
-734 
-685 
-660 
-711 
-662 
-630 
-656 
-647 
-715 
-683 
-667 
-709 
-701 
-644 
-670 
-663 
-663 
-639 
-648 
-649 
-625 
-558 
-559 
-594 
-628 
-611 
-679 
-688 
-681 
-607 
-582 
-591 
-584 
-510 
-477 
-486 
-470 
-463 
-506 
-564 
-615 
-616 
-692 
-767 
-843 
-869 
-936 
-962 
-954 
-897 
-923 
-932 
-858 
-825 
-801 
-844 
-803 
-678 
-662 
-730 
-797 
-782 
-757 
-783 
-701 
-635 
-618 
-636 
-629 
-538 
-531 
-589 
-615 
-599 
-642 
-700 
-776 
-844 
-920 
-996 
-1071 
-1047 
-1073 
-1149 
-1208 
-1150 
-1134 
-1152 
-1169 
-1053 
-1029 
-1038 
-1031 
-998 
-1032 
-1108 
-1084 
-1110 
-1076 
-1061 
-1087 
-963 
-1039 
-1064 
-1040 
-1016 
-1042 
-1108 
-1093 
-1069 
-1045 
-1121 
-1121 
-1105 
-1139 
-1182 
-1200 
-1175 
-1117 
-1168 
-1203 
-1111 
-1154 
-1180 
-1189 
-1082 
-1107 
-1099 
-1109 
-1085 
-1160 
-1236 
-1270 
-1246 
-1247 
-1280 
-1256 
-1166 
-1117 
-1142 
-1118 
-1002 
-1011 
-1029 
-1004 
-997 
-1031 
-1099 
-1125 
-1066 
-1076 
-1018 
-994 
-903 
-829 
-855 
-831 
-807 
-724 
-725 
-742 
-760 
-826 
-877 
-887 
-913 
-914 
-922 
-915 
-874 
-842 
-850 
-843 
-769 
-745 
-721 
-746 
-772 
-798 
-874 
-916 
-925 
-1001 
-1018 
-1003 
-978 
-987 
-955 
-914 
-899 
-907 
-883 
-834 
-827 
-810 
-877 
-878 
-938 
-989 
-989 
-931 
-849 
-867 
-859 
-868 
-852 
-862 
-846 
-838 
-864 
-923 
-916 
-975 
-1008 
-1059 
-1069 
-1078 
-1153 
-1145 
-1171 
-1156 
-1207 
-1232 
-1208 
-1184 
-1210 
-1201 
-1177 
-1128 
-1113 
-1089 
-1097 
-1090 
-1166 
-1133 
-1100 
-1076 
-1069 
-1045 
-1004 
-937 
-955 
-923 
-907 
-908 
-950 
-1001 
-1027 
-1094 
-1178 
-1220 
-1238 
-1306 
-1382 
-1415 
-1399 
-1409 
-1418 
-1410 
-1336 
-1312 
-1288 
-1297 
-1197 
-1123 
-1149 
-1217 
-1192 
-1268 
-1260 
-1270 
-1171 
-1146 
-1180 
-1173 
-1099 
-1116 
-1091 
-1076 
-1027 
-1078 
-1103 
-1120 
-1155 
-1206 
-1240 
-1282 
-1358 
-1342 
-1360 
-1385 
-1286 
-1253 
-1229 
-1214 
-1172 
-1140 
-1166 
-1142 
-1150 
-1168 
-1219 
-1245 
-1254 
-1246 
-1222 
-1239 
-1257 
-1250 
-1225 
-1209 
-1210 
-1153 
-1136 
-1154 
-1138 
-1156 
-1132 
-1132 
-1116 
-1084 
-1035 
-1018 
-1036 
-995 
-971 
-997 
-989 
-965 
-941 
-958 
-942 
-934 
-944 
-1020 
-1079 
-1071 
-1097 
-1081 
-1065 
-1050 
-975 
-976 
-910 
-878 
-853 
-871 
-855 
-856 
-857 
-932 
-966 
-992 
-1010 
-1051 
-1036 
-987 
-988 
-939 
-914 
-873 
-866 
-842 
-842 
-743 
-752 
-795 
-846 
-846 
-888 
-906 
-874 
-808 
-792 
-834 
-777 
-736 
-745 
-712 
-705 
-714 
-782 
-782 
-841 
-909 
-976 
-1051 
-1127 
-1153 
-1171 
-1214 
-1239 
-1215 
-1191 
-1208 
-1167 
-1184 
-1135 
-1145 
-1046 
-1037 
-1047 
-1073 
-1099 
-1125 
-1150 
-1067 
-1035 
-953 
-936 
-929 
-905 
-931 
-924 
-965 
-1008 
-1017 
-1060 
-1085 
-1127 
-1162 
-1196 
-1230 
-1264 
-1290 
-1316 
-1342 
-1325 
-1376 
-1360 
-1345 
-1337 
-1346 
-1313 
-1298 
-1274 
-1291 
-1233 
-1276 
-1277 
-1311 
-1278 
-1237 
-1246 
-1222 
-1182 
-1140 
-1083 
-1100 
-1085 
-1060 
-1036 
-1112 
-1138 
-1197 
-1214 
-1265 
-1316 
-1300 
-1292 
-1284 
-1244 
-1211 
-1146 
-1146 
-1105 
-1064 
-1049 
-1041 
-1025 
-1059 
-1052 
-1136 
-1186 
-1129 
-1155 
-1097 
-1107 
-1040 
-1024 
-1017 
-910 
-935 
-878 
-895 
-905 
-897 
-914 
-990 
-1041 
-959 
-942 
-934 
-894 
-837 
-796 
-846 
-772 
-731 
-682 
-741 
-725 
-726 
-777 
-853 
-836 
-821 
-830 
-856 
-865 
-840 
-833 
-809 
-827 
-752 
-778 
-779 
-788 
-764 
-764 
-815 
-799 
-792 
-842 
-868 
-844 
-845 
-846 
-888 
-897 
-873 
-849 
-875 
-850 
-826 
-852 
-861 
-853 
-846 
-880 
-881 
-907 
-865 
-816 
-784 
-760 
-727 
-736 
-745 
-763 
-722 
-739 
-790 
-816 
-875 
-917 
-1001 
-1044 
-1095 
-1121 
-1196 
-1222 
-1173 
-1124 
-1150 
-1083 
-1092 
-1077 
-1053 
-986 
-937 
-930 
-989 
-1007 
-1057 
-1033 
-1025 
-935 
-910 
-886 
-887 
-838 
-814 
-830 
-848 
-799 
-834 
-892 
-968 
-1019 
-1086 
-1137 
-1196 
-1247 
-1323 
-1374 
-1425 
-1425 
-1426 
-1435 
-1428 
-1369 
-1329 
-1313 
-1331 
-1307 
-1282 
-1308 
-1325 
-1360 
-1376 
-1361 
-1337 
-1313 
-1330 
-1314 
-1315 
-1332 
-1308 
-1342 
-1326 
-1310 
-1320 
-1329 
-1321 
-1347 
-1348 
-1415 
-1416 
-1441 
-1476 
-1477 
-1453 
-1428 
-1412 
-1446 
-1439 
-1448 
-1415 
-1383 
-1359 
-1351 
-1360 
-1436 
-1470 
-1488 
-1555 
-1539 
-1540 
-1499 
-1467 
-1492 
-1451 
-1385 
-1328 
-1346 
-1287 
-1272 
-1306 
-1315 
-1366 
-1350 
-1409 
-1402 
-1336 
-1311 
-1229 
-1246 
-1181 
-1107 
-1115 
-1108 
-1034 
-1060 
-1051 
-1111 
-1153 
-1163 
-1230 
-1264 
-1206 
-1216 
-1192 
-1167 
-1159 
-1135 
-1086 
-1071 
-1046 
-1022 
-1056 
-1074 
-1125 
-1141 
-1201 
-1277 
-1261 
-1278 
-1304 
-1280 
-1256 
-1215 
-1207 
-1183 
-1167 
-1135 
-1118 
-1127 
-1145 
-1138 
-1197 
-1205 
-1265 
-1207 
-1217 
-1175 
-1168 
-1152 
-1170 
-1162 
-1162 
-1147 
-1148 
-1199 
-1225 
-1216 
-1276 
-1285 
-1328 
-1328 
-1379 
-1421 
-1456 
-1457 
-1482 
-1491 
-1500 
-1526 
-1493 
-1511 
-1503 
-1463 
-1439 
-1439 
-1415 
-1441 
-1442 
-1458 
-1493 
-1419 
-1403 
-1354 
-1304 
-1322 
-1248 
-1224 
-1200 
-1200 
-1201 
-1277 
-1311 
-1353 
-1395 
-1455 
-1514 
-1582 
-1615 
-1683 
-1700 
-1710 
-1660 
-1686 
-1678 
-1629 
-1564 
-1539 
-1515 
-1482 
-1417 
-1408 
-1468 
-1535 
-1520 
-1521 
-1487 
-1488 
-1439 
-1415 
-1425 
-1400 
-1359 
-1352 
-1336 
-1319 
-1295 
-1355 
-1431 
-1457 
-1482 
-1549 
-1584 
-1610 
-1601 
-1561 
-1587 
-1563 
-1489 
-1464 
-1440 
-1416 
-1342 
-1367 
-1409 
-1460 
-1470 
-1471 
-1546 
-1563 
-1456 
-1474 
-1500 
-1475 
-1451 
-1477 
-1503 
-1453 
-1362 
-1380 
-1356 
-1365 
-1307 
-1258 
-1292 
-1276 
-1193 
-1186 
-1212 
-1188 
-1114 
-1139 
-1165 
-1141 
-1075 
-1042 
-1068 
-1077 
-1095 
-1121 
-1171 
-1247 
-1189 
-1207 
-1208 
-1200 
-1126 
-1093 
-1078 
-1053 
-962 
-955 
-1031 
-1015 
-1032 
-1058 
-1100 
-1151 
-1126 
-1144 
-1187 
-1163 
-1089 
-1055 
-1081 
-1041 
-942 
-967 
-951 
-927 
-895 
-904 
-954 
-1022 
-998 
-999 
-975 
-958 
-868 
-877 
-878 
-878 
-771 
-822 
-831 
-832 
-857 
-925 
-1000 
-1035 
-1060 
-1136 
-1212 
-1254 
-1255 
-1280 
-1315 
-1324 
-1267 
-1258 
-1243 
-1194 
-1170 
-1137 
-1121 
-1138 
-1123 
-1149 
-1183 
-1150 
-1084 
-1043 
-1028 
-1003 
-979 
-955 
-1014 
-1023 
-999 
-1058 
-1084 
-1110 
-1135 
-1161 
-1237 
-1288 
-1289 
-1330 
-1340 
-1382 
-1342 
-1350 
-1384 
-1369 
-1345 
-1371 
-1354 
-1355 
-1298 
-1274 
-1258 
-1283 
-1301 
-1310 
-1353 
-1294 
-1287 
-1280 
-1256 
-1182 
-1140 
-1108 
-1084 
-1051 
-1060 
-1052 
-1112 
-1138 
-1180 
-1214 
-1265 
-1266 
-1267 
-1292 
-1243 
-1194 
-1170 
-1104 
-1071 
-1047 
-1006 
-982 
-925 
-958 
-984 
-1052 
-1078 
-1094 
-1104 
-1038 
-1047 
-1007 
-1015 
-958 
-959 
-860 
-860 
-861 
-804 
-855 
-864 
-914 
-898 
-907 
-892 
-884 
-884 
-786 
-720 
-721 
-679 
-655 
-598 
-624 
-650 
-625 
-684 
-727 
-753 
-728 
-754 
-730 
-714 
-724 
-707 
-716 
-734 
-685 
-660 
-711 
-662 
-630 
-656 
-647 
-715 
-683 
-667 
-709 
-701 
-644 
-670 
-663 
-663 
-639 
-648 
-649 
-625 
-558 
-559 
-594 
-628 
-611 
-679 
-688 
-681 
-607 
-582 
-591 
-584 
-510 
-477 
-486 
-470 
-463 
-506 
-564 
-615 
-616 
-692 
-767 
-843 
-869 
-936 
-962 
-954 
-897 
-923 
-932 
-858 
-825 
-801 
-844 
-803 
-678 
-662 
-730 
-797 
-782 
-757 
-783 
-701 
-635 
-618 
-636 
-629 
-538 
-531 
-589 
-615 
-599 
-642 
-700 
-776 
-844 
-920 
-996 
-1071 
-1047 
-1073 
-1149 
-1208 
-1150 
-1134 
-1152 
-1169 
-1053 
-1029 
-1038 
-1031 
-998 
-1032 
-1108 
-1084 
-1110 
-1076 
-1061 
-1087 
-963 
-1039 
-1064 
-1040 
-1016 
-1042 
-1108 
-1093 
-1069 
-1045 
-1121 
-1121 
-1105 
-1139 
-1182 
-1200 
-1175 
-1117 
-1168 
-1203 
-1111 
-1154 
-1180 
-1189 
-1082 
-1107 
-1099 
-1109 
-1085 
-1160 
-1236 
-1270 
-1246 
-1247 
-1280 
-1256 
-1166 
-1117 
-1142 
-1118 
-1002 
-1011 
-1029 
-1004 
-997 
-1031 
-1099 
-1125 
-1066 
-1076 
-1018 
-994 
-903 
-829 
-855 
-831 
-807 
-724 
-725 
-742 
-760 
-826 
-877 
-887 
-913 
-914 
-922 
-915 
-874 
-842 
-850 
-843 
-769 
-745 
-721 
-746 
-772 
-798 
-874 
-916 
-925 
-1001 
-1018 
-1003 
-978 
-987 
-955 
-914 
-899 
-907 
-883 
-834 
-827 
-810 
-877 
-878 
-938 
-989 
-989 
-931 
-849 
-867 
-859 
-868 
-852 
-862 
-846 
-838 
-864 
-923 
-916 
-975 
-1008 
-1059 
-1069 
-1078 
-1153 
-1145 
-1171 
-1156 
-1207 
-1232 
-1208 
-1184 
-1210 
-1201 
-1177 
-1128 
-1113 
-1089 
-1097 
-1090 
-1166 
-1133 
-1100 
-1076 
-1069 
-1045 
-1004 
-937 
-955 
-923 
-907 
-908 
-950 
-1001 
-1027 
-1094 
-1178 
-1220 
-1238 
-1306 
-1382 
-1415 
-1399 
-1409 
-1418 
-1410 
-1336 
-1312 
-1288 
-1297 
-1197 
-1123 
-1149 
-1217 
-1192 
-1268 
-1260 
-1270 
-1171 
-1146 
-1180 
-1173 
-1099 
-1116 
-1091 
-1076 
-1027 
-1078 
-1103 
-1120 
-1155 
-1206 
-1240 
-1282 
-1358 
-1342 
-1360 
-1385 
-1286 
-1253 
-1229 
-1214 
-1172 
-1140 
-1166 
-1142 
-1150 
-1168 
-1219 
-1245 
-1254 
-1246 
-1222 
-1239 
-1257 
-1250 
-1225 
-1209 
-1210 
-1153 
-1136 
-1154 
-1138 
-1156 
-1132 
-1132 
-1116 
-1084 
-1035 
-1018 
-1036 
-995 
-971 
-997 
-989 
-965 
-941 
-958 
-942 
-934 
-944 
-1020 
-1079 
-1071 
-1097 
-1081 
-1065 
-1050 
-975 
-976 
-910 
-878 
-853 
-871 
-855 
-856 
-857 
-932 
-966 
-992 
-1010 
-1051 
-1036 
-987 
-988 
-939 
-914 
-873 
-866 
-842 
-842 
-743 
-752 
-795 
-846 
-846 
-888 
-906 
-874 
-808 
-792 
-834 
-777 
-736 
-745 
-712 
-705 
-714 
-782 
-782 
-841 
-909 
-976 
-1051 
-1127 
-1153 
-1171 
-1214 
-1239 
-1215 
-1191 
-1208 
-1167 
-1184 
-1135 
-1145 
-1046 
-1037 
-1047 
-1073 
-1099 
-1125 
-1150 
-1067 
-1035 
-953 
-936 
-929 
-905 
-931 
-924 
-965 
-1008 
-1017 
-1060 
-1085 
-1127 
-1162 
-1196 
-1230 
-1264 
-1290 
-1316 
-1342 
-1325 
-1376 
-1360 
-1345 
-1337 
-1346 
-1313 
-1298 
-1274 
-1291 
-1233 
-1276 
-1277 
-1311 
-1278 
-1237 
-1246 
-1222 
-1182 
-1140 
-1083 
-1100 
-1085 
-1060 
-1036 
-1112 
-1138 
-1197 
-1214 
-1265 
-1316 
-1300 
-1292 
-1284 
-1244 
-1211 
-1146 
-1146 
-1105 
-1064 
-1049 
-1041 
-1025 
-1059 
-1052 
-1136 
-1186 
-1129 
-1155 
-1097 
-1107 
-1040 
-1024 
-1017 
-910 
-935 
-878 
-895 
-905 
-897 
-914 
-990 
-1041 
-959 
-942 
-934 
-894 
-837 
-796 
-846 
-772 
-731 
-682 
-741 
-725 
-726 
-777 
-853 
-836 
-821 
-830 
-856 
-865 
-840 
-833 
-809 
-827 
-752 
-778 
-779 
-788 
-764 
-764 
-815 
-799 
-792 
-842 
-868 
-844 
-845 
-846 
-888 
-897 
-873 
-849 
-875 
-850 
-826 
-852 
-861 
-853 
-846 
-880 
-881 
-907 
-865 
-816 
-784 
-760 
-727 
-736 
-745 
-763 
-722 
-739 
-790 
-816 
-875 
-917 
-1001 
-1044 
-1095 
-1121 
-1196 
-1222 
-1173 
-1124 
-1150 
-1083 
-1092 
-1077 
-1053 
-986 
-937 
-930 
-989 
-1007 
-1057 
-1033 
-1025 
-935 
-910 
-886 
-887 
-838 
-814 
-830 
-848 
-799 
-834 
-892 
-968 
-1019 
-1086 
-1137 
-1196 
-1247 
-1323 
-1374 
-1425 
-1425 
-1426 
-1435 
-1428 
-1369 
-1329 
-1313 
-1331 
-1307 
-1282 
-1308 
-1325 
-1360 
-1376 
-1361 
-1337 
-1313 
-1330 
-1314 
-1315 
-1332 
-1308 
-1342 
-1326 
-1310 
-1320 
-1329 
-1321 
-1347 
-1348 
-1415 
-1416 
-1441 
-1476 
-1477 
-1453 
-1428 
-1412 
-1446 
-1439 
-1448 
-1415 
-1383 
-1359 
-1351 
-1360 
-1436 
-1470 
-1488 
-1555 
-1539 
-1540 
-1499 
-1467 
-1492 
-1451 
-1385 
-1328 
-1346 
-1287 
-1272 
-1306 
-1315 
-1366 
-1350 
-1409 
-1402 
-1336 
-1311 
-1229 
-1246 
-1181 
-1107 
-1115 
-1108 
-1034 
-1060 
-1051 
-1111 
-1153 
-1163 
-1230 
-1264 
-1206 
-1216 
-1192 
-1167 
-1159 
-1135 
-1086 
-1071 
-1046 
-1022 
-1056 
-1074 
-1125 
-1141 
-1201 
-1277 
-1261 
-1278 
-1304 
-1280 
-1256 
-1215 
-1207 
-1183 
-1167 
-1135 
-1118 
-1127 
-1145 
-1138 
-1197 
-1205 
-1265 
-1207 
-1217 
-1175 
-1168 
-1152 
-1170 
-1162 
-1162 
-1147 
-1148 
-1199 
-1225 
-1216 
-1276 
-1285 
-1328 
-1328 
-1379 
-1421 
-1456 
-1457 
-1482 
-1491 
-1500 
-1526 
-1493 
-1511 
-1503 
-1463 
-1439 
-1439 
-1415 
-1441 
-1442 
-1458 
-1493 
-1419 
-1403 
-1354 
-1304 
-1322 
-1248 
-1224 
-1200 
-1200 
-1201 
-1277 
-1311 
-1353 
-1395 
-1455 
-1514 
-1582 
-1615 
-1683 
-1700 
-1710 
-1660 
-1686 
-1678 
-1629 
-1564 
-1539 
-1515 
-1482 
-1417 
-1408 
-1468 
-1535 
-1520 
-1521 
-1487 
-1488 
-1439 
-1415 
-1425 
-1400 
-1359 
-1352 
-1336 
-1319 
-1295 
-1355 
-1431 
-1457 
-1482 
-1549 
-1584 
-1610 
-1601 
-1561 
-1587 
-1563 
-1489 
-1464 
-1440 
-1416 
-1342 
-1367 
-1409 
-1460 
-1470 
-1471 
-1546 
-1563 
-1456 
-1474 
-1500 
-1475 
-1451 
-1477 
-1503 
-1453 
-1362 
-1380 
-1356 
-1365 
-1307 
-1258 
-1292 
-1276 
-1193 
-1186 
-1212 
-1188 
-1114 
-1139 
-1165 
-1141 
-1075 
-1042 
-1068 
-1077 
-1095 
-1121 
-1171 
-1247 
-1189 
-1207 
-1208 
-1200 
-1126 
-1093 
-1078 
-1053 
-962 
-955 
-1031 
-1015 
-1032 
-1058 
-1100 
-1151 
-1126 
-1144 
-1187 
-1163 
-1089 
-1055 
-1081 
-1041 
-942 
-967 
-951 
-927 
-895 
-904 
-954 
-1022 
-998 
-999 
-975 
-958 
-868 
-877 
-878 
-878 
-771 
-822 
-831 
-832 
-857 
-925 
-1000 
-1035 
-1060 
-1136 
-1212 
-1254 
-1255 
-1280 
-1315 
-1324 
-1267 
-1258 
-1243 
-1194 
-1170 
-1137 
-1121 
-1138 
-1123 
-1149 
-1183 
-1150 
-1084 
-1043 
-1028 
-1003 
-979 
-955 
-1014 
-1023 
-999 
-1058 
-1084 
-1110 
-1135 
-1161 
-1237 
-1288 
-1289 
-1330 
-1340 
-1382 
-1342 
-1350 
-1384 
-1369 
-1345 
-1371 
-1354 
-1355 
-1298 
-1274 
-1258 
-1283 
-1301 
-1310 
-1353 
-1294 
-1287 
-1280 
-1256 
-1182 
-1140 
-1108 
-1084 
-1051 
-1060 
-1052 
-1112 
-1138 
-1180 
-1214 
-1265 
-1266 
-1267 
-1292 
-1243 
-1194 
-1170 
-1104 
-1071 
-1047 
-1006 
-982 
-925 
-958 
-984 
-1052 
-1078 
-1094 
-1104 
-1038 
-1047 
-1007 
-1015 
-958 
-959 
-860 
-860 
-861 
-804 
-855 
-864 
-914 
-898 
-907 
-892 
-884 
-884 
-786 
-720 
-721 
-679 
-655 
-598 
-624 
-650 
-625 
-684 
-727 
-753 
-728 
-754 
-730 
-714 
-724 
-707 
-716 
-734 
-685 
-660 
-711 
-662 
-630 
-656 
-647 
-715 
-683 
-667 
-709 
-701 
-644 
-670 
-663 
-663 
-639 
-648 
-649 
-625 
-558 
-559 
-594 
-628 
-611 
-679 
-688 
-681 
-607 
-582 
-591 
-584 
-510 
-477 
-486 
-470 
-463 
-506 
-564 
-615 
-616 
-692 
-767 
-843 
-869 
-936 
-962 
-954 
-897 
-923 
-932 
-858 
-825 
-801 
-844 
-803 
-678 
-662 
-730 
-797 
-782 
-757 
-783 
-701 
-635 
-618 
-636 
-629 
-538 
-531 
-589 
-615 
-599 
-642 
-700 
-776 
-844 
-920 
-996 
-1071 
-1047 
-1073 
-1149 
-1208 
-1150 
-1134 
-1152 
-1169 
-1053 
-1029 
-1038 
-1031 
-998 
-1032 
-1108 
-1084 
-1110 
-1076 
-1061 
-1087 
-963 
-1039 
-1064 
-1040 
-1016 
-1042 
-1108 
-1093 
-1069 
-1045 
-1121 
-1121 
-1105 
-1139 
-1182 
-1200 
-1175 
-1117 
-1168 
-1203 
-1111 
-1154 
-1180 
-1189 
-1082 
-1107 
-1099 
-1109 
-1085 
-1160 
-1236 
-1270 
-1246 
-1247 
-1280 
-1256 
-1166 
-1117 
-1142 
-1118 
-1002 
-1011 
-1029 
-1004 
-997 
-1031 
-1099 
-1125 
-1066 
-1076 
-1018 
-994 
-903 
-829 
-855 
-831 
-807 
-724 
-725 
-742 
-760 
-826 
-877 
-887 
-913 
-914 
-922 
-915 
-874 
-842 
-850 
-843 
-769 
-745 
-721 
-746 
-772 
-798 
-874 
-916 
-925 
-1001 
-1018 
-1003 
-978 
-987 
-955 
-914 
-899 
-907 
-883 
-834 
-827 
-810 
-877 
-878 
-938 
-989 
-989 
-931 
-849 
-867 
-859 
-868 
-852 
-862 
-846 
-838 
-864 
-923 
-916 
-975 
-1008 
-1059 
-1069 
-1078 
-1153 
-1145 
-1171 
-1156 
-1207 
-1232 
-1208 
-1184 
-1210 
-1201 
-1177 
-1128 
-1113 
-1089 
-1097 
-1090 
-1166 
-1133 
-1100 
-1076 
-1069 
-1045 
-1004 
-937 
-955 
-923 
-907 
-908 
-950 
-1001 
-1027 
-1094 
-1178 
-1220 
-1238 
-1306 
-1382 
-1415 
-1399 
-1409 
-1418 
-1410 
-1336 
-1312 
-1288 
-1297 
-1197 
-1123 
-1149 
-1217 
-1192 
-1268 
-1260 
-1270 
-1171 
-1146 
-1180 
-1173 
-1099 
-1116 
-1091 
-1076 
-1027 
-1078 
-1103 
-1120 
-1155 
-1206 
-1240 
-1282 
-1358 
-1342 
-1360 
-1385 
-1286 
-1253 
-1229 
-1214 
-1172 
-1140 
-1166 
-1142 
-1150 
-1168 
-1219 
-1245 
-1254 
-1246 
-1222 
-1239 
-1257 
-1250 
-1225 
-1209 
-1210 
-1153 
-1136 
-1154 
-1138 
-1156 
-1132 
-1132 
-1116 
-1084 
-1035 
-1018 
-1036 
-995 
-971 
-997 
-989 
-965 
-941 
-958 
-942 
-934 
-944 
-1020 
-1079 
-1071 
-1097 
-1081 
-1065 
-1050 
-975 
-976 
-910 
-878 
-853 
-871 
-855 
-856 
-857 
-932 
-966 
-992 
-1010 
-1051 
-1036 
-987 
-988 
-939 
-914 
-873 
-866 
-842 
-842 
-743 
-752 
-795 
-846 
-846 
-888 
-906 
-874 
-808 
-792 
-834 
-777 
-736 
-745 
-712 
-705 
-714 
-782 
-782 
-841 
-909 
-976 
-1051 
-1127 
-1153 
-1171 
-1214 
-1239 
-1215 
-1191 
-1208 
-1167 
-1184 
-1135 
-1145 
-1046 
-1037 
-1047 
-1073 
-1099 
-1125 
-1150 
-1067 
-1035 
-953 
-936 
-929 
-905 
-931 
-924 
-965 
-1008 
-1017 
-1060 
-1085 
-1127 
-1162 
-1196 
-1230 
-1264 
-1290 
-1316 
-1342 
-1325 
-1376 
-1360 
-1345 
-1337 
-1346 
-1313 
-1298 
-1274 
-1291 
-1233 
-1276 
-1277 
-1311 
-1278 
-1237 
-1246 
-1222 
-1182 
-1140 
-1083 
-1100 
-1085 
-1060 
-1036 
-1112 
-1138 
-1197 
-1214 
-1265 
-1316 
-1300 
-1292 
-1284 
-1244 
-1211 
-1146 
-1146 
-1105 
-1064 
-1049 
-1041 
-1025 
-1059 
-1052 
-1136 
-1186 
-1129 
-1155 
-1097 
-1107 
-1040 
-1024 
-1017 
-910 
-935 
-878 
-895 
-905 
-897 
-914 
-990 
-1041 
-959 
-942 
-934 
-894 
-837 
-796 
-846 
-772 
-731 
-682 
-741 
-725 
-726 
-777 
-853 
-836 
-821 
-830 
-856 
-865 
-840 
-833 
-809 
-827 
-752 
-778 
-779 
-788 
-764 
-764 
-815 
-799 
-792 
-842 
-868 
-844 
-845 
-846 
-888 
-897 
-873 
-849 
-875 
-850 
-826 
-852 
-861 
-853 
-846 
-880 
-881 
-907 
-865 
-816 
-784 
-760 
-727 
-736 
-745 
-763 
-722 
-739 
-790 
-816 
-875 
-917 
-1001 
-1044 
-1095 
-1121 
-1196 
-1222 
-1173 
-1124 

BIN
Simulink/dataset.mat


BIN
Simulink/ee_asm_drive_sensor_control.slxc


BIN
Simulink/ee_motor_pmsm_drive.slxc


BIN
Simulink/fir_new3.fda


+ 14 - 3
Simulink/foc_adrc.m

@@ -8,14 +8,25 @@ Ts                  = 5e-7;                         % [s] Model sampling time (2
 Ts_ctrl             = 6e-5;                     % [s] Controller sampling time (50us)5e-5
 f_speed_ctrl        = 500;                          % [Hz] Speed/torque Controller frequency = (500 Hz)
 Ts_Spd_ctl          = 1/f_speed_ctrl;
+PWM_Cnt             = 6000;
+PWM_Half_Cnt        = PWM_Cnt/2;
 
+Torque_Mode = 1;
+Speed_Mode = 2;
+Ctrl_Mode = Torque_Mode;
 %Simulink provider Motor parameters
 n_polePairs  = 4;        % [-] Number of motor pole pairs
 PM           = 0.01688;   % Permanent magnet flux linkage, 
 Ld           = 0.07e-3;% d-axis inductance, 
-Lq           = 0.09e-3; % q-axis inductance,
+Lq           = 0.178e-3; % q-axis inductance,
 Rs           = 0.011;   % Stator resistance,
 J            = 0.03945; % Moment of inertia,
-bandwith     = 5000;
+bandwith     = 1000*2*pi;
 i_Udc        = 96;      % DCbus max voltage
-
+lamda1 = -0.000001;
+lamda2 = -0.1;
+A=[-Rs/Ld 0 -1/Ld 0;0 -Rs/Ld 0 -1/Ld;0 0 0 -200;0 0 200 0];
+B=[1/Ld 0; 0 1/Ld;0 0 ;0 0];
+C=[1 0 0 0;0 1 0 0];
+D=[0 0 0 0;0 0 0 0];
+G=place(A', C', [-10 -8 -4 -1])';

BIN
Simulink/matlab.mat


+ 0 - 26
Simulink/untitled.m

@@ -1,26 +0,0 @@
-function Hd = untitled
-%UNTITLED 返回离散时间滤波器对象。
-
-% MATLAB Code
-% Generated by MATLAB(R) 9.9 and Signal Processing Toolbox 8.5.
-% Generated on: 18-Oct-2022 16:57:00
-
-% Equiripple Lowpass filter designed using the FIRPM function.
-
-% All frequency values are in Hz.
-Fs = 500;  % Sampling Frequency
-
-Fpass = 1.2;             % Passband Frequency
-Fstop = 6;               % Stopband Frequency
-Dpass = 0.057501127785;  % Passband Ripple
-Dstop = 0.0001;          % Stopband Attenuation
-dens  = 20;              % Density Factor
-
-% Calculate the order from the parameters using FIRPMORD.
-[N, Fo, Ao, W] = firpmord([Fpass, Fstop]/(Fs/2), [1 0], [Dpass, Dstop]);
-
-% Calculate the coefficients using the FIRPM function.
-b  = firpm(N, Fo, Ao, W, {dens});
-Hd = dfilt.dffir(b);
-
-% [EOF]