Prechádzať zdrojové kódy

update simulink module

Signed-off-by: huhui <huhui@sharkgulf.com>
huhui 3 rokov pred
rodič
commit
7724b404fb
100 zmenil súbory, kde vykonal 19208 pridanie a 1 odobranie
  1. BIN
      Simulink/FOC_FEM_PMSM.slx
  2. BIN
      Simulink/FOC_smo.slx
  3. 1 1
      Simulink/Motor_A1_dq_t_data.m
  4. BIN
      Simulink/PMSM_Motor_TL3.slxc
  5. 13 0
      Simulink/PMSM_Motor_TL3_sf.c
  6. 15 0
      Simulink/PMSM_Motor_TL3_sf.h
  7. BIN
      Simulink/PMSM_Motor_TL3_sf.mexw64
  8. 15 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/PMSM_Motor_TL3.bat
  9. 330 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/PMSM_Motor_TL3.mk
  10. 0 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/PMSM_Motor_TL3.rsp
  11. 7 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/PMSM_Motor_TL3_comp.rsp
  12. 97 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/PMSM_Motor_TL3_mid.h
  13. 0 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/PMSM_Motor_TL3_ref.rsp
  14. 1015 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/PMSM_Motor_TL3_sf.c
  15. 173 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/PMSM_Motor_TL3_sf.h
  16. 41 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/PMSM_Motor_TL3_sf_data.c
  17. 88 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/PMSM_Motor_TL3_sf_private.h
  18. 25 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/PMSM_Motor_TL3_sf_types.h
  19. 46 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/PMSM_Motor_TL3_sid.h
  20. BIN
      Simulink/PMSM_Motor_TL3_sfcn_rtw/buildInfo.mat
  21. BIN
      Simulink/PMSM_Motor_TL3_sfcn_rtw/codedescriptor.dmr
  22. BIN
      Simulink/PMSM_Motor_TL3_sfcn_rtw/compileInfo.mat
  23. 11 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/defines.txt
  24. 212 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/PMSM_Motor_TL3_mid_h.html
  25. 2048 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/PMSM_Motor_TL3_sf_c.html
  26. 33 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/PMSM_Motor_TL3_sf_codegen_rpt.html
  27. 343 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/PMSM_Motor_TL3_sf_contents.html
  28. 100 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/PMSM_Motor_TL3_sf_data_c.html
  29. 364 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/PMSM_Motor_TL3_sf_h.html
  30. 194 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/PMSM_Motor_TL3_sf_private_h.html
  31. 93 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/PMSM_Motor_TL3_sf_reducedblocks.html
  32. 87 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/PMSM_Motor_TL3_sf_subsystems.html
  33. 177 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/PMSM_Motor_TL3_sf_survey.html
  34. 68 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/PMSM_Motor_TL3_sf_types_h.html
  35. 110 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/PMSM_Motor_TL3_sid_h.html
  36. 184 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/css/coder_app.css
  37. 232 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/define.js
  38. BIN
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/hilite_warning.png
  39. 33 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/inspect.html
  40. 525 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/js/coder_app.js
  41. 1212 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/multiword_types_h.html
  42. 14 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/nav.html
  43. 69 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/navToolbar.html
  44. 306 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/rtGetInf_c.html
  45. 184 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/rtGetInf_h.html
  46. 226 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/rtGetNaN_c.html
  47. 180 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/rtGetNaN_h.html
  48. 226 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/rt_defines_h.html
  49. 376 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/rt_nonfinite_c.html
  50. 308 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/rt_nonfinite_h.html
  51. 2091 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/rtwhilite.js
  52. 31 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/rtwmsg.html
  53. 257 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/rtwreport.css
  54. 92 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/rtwreport_utils.js
  55. 210 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/rtwshrink.js
  56. 176 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/rtwtypes_h.html
  57. 559 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/search.js
  58. BIN
      Simulink/PMSM_Motor_TL3_sfcn_rtw/html/spinner.gif
  59. 4 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/mlEnv.txt
  60. 2 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/modelsources.txt
  61. 597 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/multiword_types.h
  62. 144 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/rtGetInf.c
  63. 83 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/rtGetInf.h
  64. 104 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/rtGetNaN.c
  65. 81 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/rtGetNaN.h
  66. 104 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/rt_defines.h
  67. 179 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/rt_nonfinite.c
  68. 145 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/rt_nonfinite.h
  69. 4 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/rtw_proj.tmw
  70. 79 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/rtwtypes.h
  71. BIN
      Simulink/PMSM_Motor_TL3_sfcn_rtw/rtwtypeschksum.mat
  72. 6 0
      Simulink/PMSM_Motor_TL3_sfcn_rtw/tmwinternal/simulink_cache.xml
  73. BIN
      Simulink/PWM.slxc
  74. 13 0
      Simulink/PWM_sf.c
  75. 15 0
      Simulink/PWM_sf.h
  76. BIN
      Simulink/PWM_sf.mexw64
  77. 15 0
      Simulink/PWM_sfcn_rtw/PWM.bat
  78. 322 0
      Simulink/PWM_sfcn_rtw/PWM.mk
  79. 0 0
      Simulink/PWM_sfcn_rtw/PWM.rsp
  80. 5 0
      Simulink/PWM_sfcn_rtw/PWM_comp.rsp
  81. 97 0
      Simulink/PWM_sfcn_rtw/PWM_mid.h
  82. 0 0
      Simulink/PWM_sfcn_rtw/PWM_ref.rsp
  83. 821 0
      Simulink/PWM_sfcn_rtw/PWM_sf.c
  84. 131 0
      Simulink/PWM_sfcn_rtw/PWM_sf.h
  85. 35 0
      Simulink/PWM_sfcn_rtw/PWM_sf_data.c
  86. 63 0
      Simulink/PWM_sfcn_rtw/PWM_sf_private.h
  87. 25 0
      Simulink/PWM_sfcn_rtw/PWM_sf_types.h
  88. 46 0
      Simulink/PWM_sfcn_rtw/PWM_sid.h
  89. BIN
      Simulink/PWM_sfcn_rtw/buildInfo.mat
  90. BIN
      Simulink/PWM_sfcn_rtw/codedescriptor.dmr
  91. BIN
      Simulink/PWM_sfcn_rtw/compileInfo.mat
  92. 11 0
      Simulink/PWM_sfcn_rtw/defines.txt
  93. 212 0
      Simulink/PWM_sfcn_rtw/html/PWM_mid_h.html
  94. 1660 0
      Simulink/PWM_sfcn_rtw/html/PWM_sf_c.html
  95. 33 0
      Simulink/PWM_sfcn_rtw/html/PWM_sf_codegen_rpt.html
  96. 334 0
      Simulink/PWM_sfcn_rtw/html/PWM_sf_contents.html
  97. 88 0
      Simulink/PWM_sfcn_rtw/html/PWM_sf_data_c.html
  98. 280 0
      Simulink/PWM_sfcn_rtw/html/PWM_sf_h.html
  99. 144 0
      Simulink/PWM_sfcn_rtw/html/PWM_sf_private_h.html
  100. 129 0
      Simulink/PWM_sfcn_rtw/html/PWM_sf_subsystems.html

BIN
Simulink/FOC_FEM_PMSM.slx


BIN
Simulink/FOC_smo.slx


+ 1 - 1
Simulink/Motor_A1_dq_t_data.m

@@ -29,7 +29,7 @@ Ctrl_Mode = Torque_Mode;
 %Simulink provider Motor parameters
 n_polePairs  = 5;        % [-] Number of motor pole pairs
 PM           = 0.01688;   % Permanent magnet flux linkage, 
-Ld           = 0.45e-4;%0.07e-3;% d-axis inductance, 
+Ld           = 0.625e-4;%0.45e-4;%0.07e-3;% d-axis inductance, 
 Lq           = 0.625e-4;%0.178e-3; % q-axis inductance,
 Rs           = 0.011;   % Stator resistance,
 J            = 0.03945; % Moment of inertia,

BIN
Simulink/PMSM_Motor_TL3.slxc


+ 13 - 0
Simulink/PMSM_Motor_TL3_sf.c

@@ -0,0 +1,13 @@
+/*
+ * Generated S-function Target for model PMSM_Motor_TL3. 
+ * This source file provides access to the generated S-function target
+ * for other models.
+ *
+ * Created: Fri Apr 14 12:51:02 2023
+ */
+
+#include "PMSM_Motor_TL3_sf.h"
+#include "PMSM_Motor_TL3_sfcn_rtw\PMSM_Motor_TL3_sf.c"
+#include "PMSM_Motor_TL3_sfcn_rtw\PMSM_Motor_TL3_sf_data.c"
+
+

+ 15 - 0
Simulink/PMSM_Motor_TL3_sf.h

@@ -0,0 +1,15 @@
+/*
+* Generated S-function Target for model PMSM_Motor_TL3. 
+* This file provides access to the generated S-function target
+* export file for other models.
+*
+* Created: Fri Apr 14 12:51:02 2023
+*/
+
+#ifndef RTWSFCN_PMSM_Motor_TL3_sf_H
+#define RTWSFCN_PMSM_Motor_TL3_sf_H
+
+#include "PMSM_Motor_TL3_sfcn_rtw\PMSM_Motor_TL3_sf.h"
+  #include "PMSM_Motor_TL3_sfcn_rtw\PMSM_Motor_TL3_sf_private.h"
+
+#endif

BIN
Simulink/PMSM_Motor_TL3_sf.mexw64


+ 15 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/PMSM_Motor_TL3.bat

@@ -0,0 +1,15 @@
+
+set "VSCMD_START_DIR=%CD%"
+call "d:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\VCVARSALL.BAT" amd64
+
+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 .
+nmake -f PMSM_Motor_TL3.mk MATLAB_ROOT=%MATLAB_ROOT% ALT_MATLAB_ROOT=%ALT_MATLAB_ROOT% MATLAB_BIN=%MATLAB_BIN% ALT_MATLAB_BIN=%ALT_MATLAB_BIN%  CREATEMODEL=1 USEPARAMVALUES=0 OPTS="-DTID01EQ=0"
+@if errorlevel 1 goto error_exit
+exit 0
+
+:error_exit
+echo The make command returned an error of %errorlevel%
+exit 1

+ 330 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/PMSM_Motor_TL3.mk

@@ -0,0 +1,330 @@
+# Copyright 1994-2020 The MathWorks, Inc.
+#
+#
+# Abstract:
+#       Template makefile for building a Windows-based stand-alone embedded
+#       real-time version of Simulink model using generated C code and the
+#          Microsoft Visual C/C++ compiler for x64.
+#
+#       Note that this template is automatically customized by the build 
+#       procedure to create "<model>.mk"
+#
+#       The following defines can be used to modify the behavior of the
+#       build:
+#         OPT_OPTS       - Optimization option. See DEFAULT_OPT_OPTS in
+#                          vctools.mak for default.
+#         OPTS           - User specific options.
+#         CPP_OPTS       - C++ compiler options.
+#         USER_SRCS      - Additional user sources, such as files needed by
+#                          S-functions.
+#         USER_INCLUDES  - Additional include paths
+#                          (i.e. USER_INCLUDES="-Iwhere-ever -Iwhere-ever2")
+#
+#       To enable debugging:
+#         set DEBUG_BUILD = 1, which will trigger OPTS=-Zi (may vary with
+#                               compiler version, see compiler doc) 
+#
+#       This template makefile is designed to be used with a system target
+#       file that contains 'rtwgensettings.BuildDirSuffix' see ert.tlc
+
+
+#------------------------ Macros read by make_rtw -----------------------------
+#
+# The following macros are read by the build procedure:
+#
+#  MAKECMD         - This is the command used to invoke the make utility
+#  HOST            - What platform this template makefile is targeted for
+#                    (i.e. PC or UNIX)
+#  BUILD           - Invoke make from the build procedure (yes/no)?
+#  SYS_TARGET_FILE - Name of system target file.
+
+MAKECMD         = nmake
+HOST            = PC
+BUILD           = yes
+SYS_TARGET_FILE = any
+BUILD_SUCCESS	= ^#^#^# Created
+
+# Opt in to simplified format by specifying compatible Toolchain
+TOOLCHAIN_NAME = [\
+    "Microsoft Visual C++ 2019 v16.0 | nmake (64-bit Windows)", \
+    "Microsoft Visual C++ 2017 v15.0 | nmake (64-bit Windows)", \
+    "Microsoft Visual C++ 2015 v14.0 | nmake (64-bit Windows)"]
+
+#---------------------- Tokens expanded by make_rtw ---------------------------
+#
+# The following tokens, when wrapped with "|>" and "<|" are expanded by the
+# build procedure.
+#
+#  MODEL_NAME          - Name of the Simulink block diagram
+#  MODEL_MODULES       - Any additional generated source modules
+#  MAKEFILE_NAME       - Name of makefile created from template makefile <model>.mk
+#  MATLAB_ROOT         - Path to where MATLAB is installed.
+#  MATLAB_BIN          - Path to MATLAB executable.
+#  S_FUNCTIONS_LIB     - List of S-functions libraries to link.
+#  NUMST               - Number of sample times
+#  NCSTATES            - Number of continuous states
+#  BUILDARGS           - Options passed in at the command line.
+#  MULTITASKING        - yes (1) or no (0): Is solver mode multitasking
+#  INTEGER_CODE        - yes (1) or no (0): Is generated code purely integer
+#  MAT_FILE            - yes (1) or no (0): Should mat file logging be done,
+#                        if 0, the generated code runs indefinitely
+#  MULTI_INSTANCE_CODE - Is the generated code multi instantiable (1/0)?
+#  MODELREFS           - List of referenced models
+#  SHRLIBTARGET        - Is this build intended for generation of a shared library instead 
+#                        of executable (1/0)?
+#  MAKEFILEBUILDER_TGT - Is this build performed by the MakefileBuilder class
+#                        e.g. to create a PIL executable?
+#  STANDALONE_SUPPRESS_EXE - Build the standalone target but only create object code modules 
+#                            and do not build an executable
+
+MODEL                   = PMSM_Motor_TL3
+MODULES                 = 
+PRODUCT                 = PMSM_Motor_TL3_sf.lib
+MAKEFILE                = PMSM_Motor_TL3.mk
+MATLAB_ROOT             = D:\Program Files\R2020b
+ALT_MATLAB_ROOT         = D:\Program Files\R2020b
+MATLAB_BIN              = D:\Program Files\R2020b\bin
+ALT_MATLAB_BIN          = D:\Program Files\R2020b\bin
+START_DIR               = E:\works\mcu\MC100\Simulink
+S_FUNCTIONS_LIB         = 
+NUMST                   = 1
+NCSTATES                = 0
+BUILDARGS               = MATLAB_ROOT=%MATLAB_ROOT% ALT_MATLAB_ROOT=%ALT_MATLAB_ROOT% MATLAB_BIN=%MATLAB_BIN% ALT_MATLAB_BIN=%ALT_MATLAB_BIN%  CREATEMODEL=1 USEPARAMVALUES=0 OPTS="-DTID01EQ=0"
+MULTITASKING            = 0
+INTEGER_CODE            = 0
+MAT_FILE                = 0
+ALLOCATIONFCN           = 0
+ONESTEPFCN              = 0
+TERMFCN                 = 1
+ENABLE_SLEXEC_SSBRIDGE  = 0
+MULTI_INSTANCE_CODE     = 0
+CLASSIC_INTERFACE       = 1
+MODELREFS               = 
+TARGET_LANG_EXT         = c
+SHRLIBTARGET            = 0
+MAKEFILEBUILDER_TGT     = 0
+STANDALONE_SUPPRESS_EXE = 0
+OPTIMIZATION_FLAGS      = /DNDEBUG /Od /Oy-
+ADDITIONAL_LDFLAGS      = 
+INTERLEAVED_COMPLEX_FLAGS = -R2018a
+DEFINES_CUSTOM          = 
+DEFINES_OTHER           = -DHAVESTDIO
+COMPILE_FLAGS_OTHER     = 
+SYSTEM_LIBS             = /LIBPATH:"D:\Program Files\R2020b\extern\lib\win64\microsoft" libut.lib libfixedpoint.lib
+MODEL_HAS_DYNAMICALLY_LOADED_SFCNS = 0
+
+# To enable debugging:
+# set DEBUG_BUILD = 1
+DEBUG_BUILD             = 0
+
+#--------------------------- Model and reference models -----------------------
+MODELLIB                  = 
+MODELREF_LINK_LIBS        = 
+MODELREF_LINK_RSPFILE     = PMSM_Motor_TL3_ref.rsp
+COMPILER_COMMAND_FILE     = PMSM_Motor_TL3_comp.rsp
+RELATIVE_PATH_TO_ANCHOR   = ..
+MODELREF_TARGET_TYPE      = SIM
+
+!if "$(MATLAB_ROOT)" != "$(ALT_MATLAB_ROOT)"
+MATLAB_ROOT = $(ALT_MATLAB_ROOT)
+!endif
+!if "$(MATLAB_BIN)" != "$(ALT_MATLAB_BIN)"
+MATLAB_BIN = $(ALT_MATLAB_BIN)
+!endif
+MATLAB_ARCH_BIN = $(MATLAB_BIN)\win64
+
+#--------------------------- Tool Specifications ------------------------------
+!include $(MATLAB_ROOT)\rtw\c\tools\vctools.mak
+
+CMD_FILE             = $(MODEL).rsp
+
+#------------------------------ Include/Lib Path ------------------------------
+
+INCLUDE = .;$(RELATIVE_PATH_TO_ANCHOR);$(INCLUDE)
+
+#----------------- Compiler and Linker Options --------------------------------
+
+# Optimization Options
+OPT_OPTS = $(DEFAULT_OPT_OPTS)
+
+# General User Options
+!if "$(DEBUG_BUILD)" == "0"
+DBG_FLAG =
+!else
+#   Set OPT_OPTS=-Zi and any additional flags for debugging
+DBG_FLAG = -Zi
+!endif
+
+!if "$(MODELREF_TARGET_TYPE)" == "SIM"
+MDLREF_FLAG = -DMDL_REF_SIM_TGT=1 
+!if "$(ENABLE_SLEXEC_SSBRIDGE)" != "0"
+MDLREF_FLAG = $(MDLREF_FLAG) -DENABLE_SLEXEC_SSBRIDGE=$(ENABLE_SLEXEC_SSBRIDGE)
+!endif
+!else
+MDLREF_FLAG =
+!endif
+
+!if "$(OPTIMIZATION_FLAGS)" != ""
+CC_OPTS = $(OPTS) $(COMPILE_FLAGS_OTHER) $(OPTIMIZATION_FLAGS)
+!else
+CC_OPTS = $(OPTS) $(COMPILE_FLAGS_OTHER) $(OPT_OPTS) 
+!endif
+
+CPP_REQ_DEFINES = -DMODEL=$(MODEL) -DNUMST=$(NUMST) -DNCSTATES=$(NCSTATES) \
+		  -DMAT_FILE=$(MAT_FILE) -DINTEGER_CODE=$(INTEGER_CODE) \
+		  -DONESTEPFCN=$(ONESTEPFCN) -DTERMFCN=$(TERMFCN) \
+		  -DHAVESTDIO -DMULTI_INSTANCE_CODE=$(MULTI_INSTANCE_CODE) \
+		  -DCLASSIC_INTERFACE=$(CLASSIC_INTERFACE) \
+		  -DALLOCATIONFCN=$(ALLOCATIONFCN) \
+		  $(DEFINES_CUSTOM) $(DEFINES_OTHER)
+
+!if "$(MODELREF_TARGET_TYPE)" == "SIM"
+CPP_REQ_DEFINES = $(CPP_REQ_DEFINES) $(MDLREF_FLAG)
+!else
+CPP_REQ_DEFINES = $(CPP_REQ_DEFINES) -DMT=$(MULTITASKING)
+!endif
+
+
+CPP_REQ_DEFINES = $(CPP_REQ_DEFINES) -DMODEL_HAS_DYNAMICALLY_LOADED_SFCNS=$(MODEL_HAS_DYNAMICALLY_LOADED_SFCNS)
+
+CVARSFLAG = $(cvarsdll)
+
+CFLAGS = $(cflags) @$(COMPILER_COMMAND_FILE) $(CVARSFLAG) \
+	 -D_CRT_SECURE_NO_WARNINGS $(DBG_FLAG) $(CC_OPTS) $(CPP_REQ_DEFINES) \
+	 $(USER_INCLUDES)
+
+CPPFLAGS = $(cflags) @$(COMPILER_COMMAND_FILE) $(CVARSFLAG) \
+	   -EHs -D_CRT_SECURE_NO_WARNINGS $(DBG_FLAG) $(CPP_OPTS) $(CC_OPTS) \
+	   $(CPP_REQ_DEFINES) $(USER_INCLUDES)
+
+LDFLAGS = $(ldebug) $(conflags) $(conlibs) $(ADDITIONAL_LDFLAGS)
+
+#----------------------------- Source Files -----------------------------------
+
+ADD_SRCS =
+
+SRCS = $(ADD_SRCS) $(MODULES) $(USER_SRCS)
+
+USER_SRCS =
+
+
+OBJS_CPP_UPPER = $(SRCS:.CPP=.obj)
+OBJS_CPP_LOWER = $(OBJS_CPP_UPPER:.cpp=.obj)
+OBJS_C_UPPER = $(OBJS_CPP_LOWER:.C=.obj)
+OBJS = $(OBJS_C_UPPER:.c=.obj)
+
+#-------------------------- Additional Libraries -------------------------------
+
+LIBS = 
+
+
+LIBS = $(LIBS) $(S_FUNCTIONS_LIB)
+
+#--------------------------------- Rules --------------------------------------
+all: set_environment_variables $(PRODUCT)
+
+!if "$(MODELREF_TARGET_TYPE)" == "NONE"
+#--- Shared library target (.dll) ---
+!if $(SHRLIBTARGET)==1
+$(PRODUCT) : $(LIBS) $(OBJS) $(LIBS) $(MODELREF_LINK_LIBS)
+	@cmd /C "echo ### Linking ..."
+	$(LD) $(LDFLAGS) $(LIBS) \
+    @$(CMD_FILE) @$(MODELREF_LINK_RSPFILE) -dll -def:$(MODEL).def -out:$@
+	@cmd /C "echo $(BUILD_SUCCESS) dynamically linked library  $(PRODUCT)"
+!else
+!if $(MAKEFILEBUILDER_TGT)==1
+PREBUILT_SRCS  = $(MODULES)
+PREBUILT_OBJS_CPP_UPPER = $(PREBUILT_SRCS:.CPP=.obj)
+PREBUILT_OBJS_CPP_LOWER = $(PREBUILT_OBJS_CPP_UPPER:.cpp=.obj)
+PREBUILT_OBJS_C_UPPER = $(PREBUILT_OBJS_CPP_LOWER:.C=.obj)
+PREBUILT_OBJS = $(PREBUILT_OBJS_C_UPPER:.c=.obj)
+$(PRODUCT) : $(LIBS) $(PREBUILT_OBJS) $(OBJS) $(MODELLIB) $(LIBS) $(MODELREF_LINK_LIBS)
+	@cmd /C "echo ### Linking ..."
+
+	@cmd /C "echo $(BUILD_SUCCESS) executable $(PRODUCT)"
+!else
+!if $(STANDALONE_SUPPRESS_EXE)==1
+#  Build object code only for top level model
+.PHONY: $(PRODUCT)
+$(PRODUCT) : $(LIBS) $(OBJS) $(LIBS)
+	@cmd /C "echo $(BUILD_SUCCESS) object modules $(PRODUCT)"
+!else
+#--- Stand-alone model (.exe) ---
+$(PRODUCT) : $(LIBS) $(OBJS) $(LIBS) $(MODELREF_LINK_LIBS)
+	@cmd /C "echo ### Linking ..."
+	$(LD) $(LDFLAGS) $(LIBS) @$(CMD_FILE) @$(MODELREF_LINK_RSPFILE) $(SYSTEM_LIBS) -out:$@
+	@cmd /C "echo $(BUILD_SUCCESS) executable $(PRODUCT)"
+!endif
+!endif
+!endif
+!else
+#--- Library target ---
+$(PRODUCT) : $(LIBS) $(OBJS) 
+	@cmd /C "echo ### Linking ..."
+
+
+!endif	
+
+
+#-------------------------- Support for building modules ----------------------
+{$(MATLAB_ROOT)\toolbox\physmod\powersys\powersys}.c.obj :
+	@cmd /C "echo ### Compiling $<"
+	$(CC) $(CFLAGS) $<
+
+{$(MATLAB_ROOT)\rtw\c\src}.c.obj :
+	@cmd /C "echo ### Compiling $<"
+	$(CC) $(CFLAGS) $<
+
+{$(MATLAB_ROOT)\simulink\src}.c.obj :
+	@cmd /C "echo ### Compiling $<"
+	$(CC) $(CFLAGS) $<
+
+
+
+{$(MATLAB_ROOT)\toolbox\physmod\powersys\powersys}.cpp.obj :
+	@cmd /C "echo ### Compiling $<"
+	$(CC) $(CPPFLAGS) $<
+
+{$(MATLAB_ROOT)\rtw\c\src}.cpp.obj :
+	@cmd /C "echo ### Compiling $<"
+	$(CC) $(CPPFLAGS) $<
+
+{$(MATLAB_ROOT)\simulink\src}.cpp.obj :
+	@cmd /C "echo ### Compiling $<"
+	$(CC) $(CPPFLAGS) $<
+
+
+
+
+# Put these rules last, otherwise nmake will check toolboxes first
+
+{$(RELATIVE_PATH_TO_ANCHOR)}.c.obj :
+	@cmd /C "echo ### Compiling $<"
+	$(CC) $(CFLAGS) $<
+
+{$(RELATIVE_PATH_TO_ANCHOR)}.cpp.obj :
+	@cmd /C "echo ### Compiling $<"
+	$(CC) $(CPPFLAGS) $<
+
+.c.obj :
+	@cmd /C "echo ### Compiling $<"
+	$(CC) $(CFLAGS) $<
+
+.cpp.obj :
+	@cmd /C "echo ### Compiling $<"
+	$(CC) $(CPPFLAGS) $<
+
+set_environment_variables:
+	@set INCLUDE=$(INCLUDE)
+	@set LIB=$(LIB)
+
+# Libraries:
+
+
+
+
+
+
+#----------------------------- Dependencies -----------------------------------
+
+

+ 0 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/PMSM_Motor_TL3.rsp


+ 7 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/PMSM_Motor_TL3_comp.rsp

@@ -0,0 +1,7 @@
+-IE:\works\mcu\MC100\Simulink
+-IE:\works\mcu\MC100\Simulink\PMSM_Motor_TL3_sfcn_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\toolbox\physmod\powersys\facts\facts"
+-I"D:\Program Files\R2020b\toolbox\physmod\powersys\DR\DR"

+ 97 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/PMSM_Motor_TL3_mid.h

@@ -0,0 +1,97 @@
+/*
+ * PMSM_Motor_TL3_mid.h
+ *
+ * Code generation for model "PMSM_Motor_TL3_sf".
+ *
+ * Model version              : 1.825
+ * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020
+ * C source code generated on : Fri Apr 14 12:51:02 2023
+ *
+ * Target selection: rtwsfcn.tlc
+ * Note: GRT includes extra infrastructure and instrumentation for prototyping
+ * Embedded hardware selection: ARM Compatible->ARM Cortex-M
+ * Emulation hardware selection:
+ *    Differs from embedded hardware (MATLAB Host)
+ * Code generation objectives:
+ *    1. Execution efficiency
+ *    2. RAM efficiency
+ * Validation result: Not run
+ *
+ * SOURCES: PMSM_Motor_TL3_sf.c
+ */
+
+#include "simstruc.h"
+#include "PMSM_Motor_TL3_sf.h"
+#if defined(MATLAB_MEX_FILE) || defined(RT_MALLOC)
+
+static int_T RegNumInputPorts(SimStruct *S, int_T nInputPorts)
+{
+  _ssSetNumInputPorts(S,nInputPorts);
+  return true;
+}
+
+static int_T RegNumOutputPorts(SimStruct *S, int_T nOutputPorts)
+{
+  _ssSetNumOutputPorts(S,nOutputPorts);
+  return true;
+}
+
+static int_T FcnSetErrorStatus(const SimStruct *S, DTypeId arg2)
+{
+  static char msg[256];
+  if (strlen(ssGetModelName(S)) < 128) {
+    sprintf(msg,
+            "S-function %s does not have a tlc file. It cannot use macros that access regDataType field in simstruct.",
+            ssGetModelName(S));
+  } else {
+    sprintf(msg,
+            "A S-function does not have a tlc file. It cannot use macros that access regDataType field in simstruct.");
+  }
+
+  ssSetErrorStatus(S, msg);
+  UNUSED_PARAMETER(arg2);
+  return 0;
+}
+
+static void * FcnSetErrorStatusWithReturnPtr(const SimStruct *S, DTypeId arg2)
+{
+  FcnSetErrorStatus(S,0);
+  UNUSED_PARAMETER(arg2);
+  return 0;
+}
+
+static int_T FcnSetErrorStatusWithArgPtr(const SimStruct *S, const void* arg2)
+{
+  FcnSetErrorStatus(S,0);
+  UNUSED_PARAMETER(arg2);
+  return 0;
+}
+
+#endif
+
+/* Instance data for model: PMSM_Motor_TL3 */
+void *PMSM_Motor_TL3_malloc(SimStruct *rts)
+{
+  /* Local SimStruct for the generated S-Function */
+  LocalS *lS = (LocalS *) malloc(sizeof(LocalS));
+  ss_VALIDATE_MEMORY(rts,lS);
+  (void) memset((char *) lS, 0,
+                sizeof(LocalS));
+  ssSetUserData(rts, lS);
+
+  /* block I/O */
+  {
+    void *b = malloc(sizeof(B_PMSM_Motor_TL3_T));
+    ss_VALIDATE_MEMORY(rts,b);
+    ssSetLocalBlockIO(rts, b);
+    (void) memset(b, 0,
+                  sizeof(B_PMSM_Motor_TL3_T));
+  }
+
+  /* model checksums */
+  ssSetChecksumVal(rts, 0, 3090714017U);
+  ssSetChecksumVal(rts, 1, 3929030705U);
+  ssSetChecksumVal(rts, 2, 1976178041U);
+  ssSetChecksumVal(rts, 3, 3610196154U);
+  return (NULL);
+}

+ 0 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/PMSM_Motor_TL3_ref.rsp


+ 1015 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/PMSM_Motor_TL3_sf.c

@@ -0,0 +1,1015 @@
+/*
+ * PMSM_Motor_TL3_sf.c
+ *
+ * Code generation for model "PMSM_Motor_TL3_sf".
+ *
+ * Model version              : 1.825
+ * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020
+ * C source code generated on : Fri Apr 14 12:51:02 2023
+ *
+ * Target selection: rtwsfcn.tlc
+ * Note: GRT includes extra infrastructure and instrumentation for prototyping
+ * Embedded hardware selection: ARM Compatible->ARM Cortex-M
+ * Emulation hardware selection:
+ *    Differs from embedded hardware (MATLAB Host)
+ * Code generation objectives:
+ *    1. Execution efficiency
+ *    2. RAM efficiency
+ * Validation result: Not run
+ */
+
+#include <math.h>
+#include "PMSM_Motor_TL3_sf.h"
+#include "PMSM_Motor_TL3_sf_private.h"
+#include "simstruc.h"
+#include "fixedpoint.h"
+#if defined(RT_MALLOC) || defined(MATLAB_MEX_FILE)
+
+extern void *PMSM_Motor_TL3_malloc(SimStruct *S);
+
+#endif
+
+#ifndef __RTW_UTFREE__
+#if defined (MATLAB_MEX_FILE)
+
+extern void * utMalloc(size_t);
+extern void utFree(void *);
+
+#endif
+#endif                                 /* #ifndef __RTW_UTFREE__ */
+
+/* Forward declaration for local functions */
+static real_T PMSM_Motor_TL3_rt_atan2d_snf(real_T u0, real_T u1);
+
+#if defined(MATLAB_MEX_FILE)
+#include "rt_nonfinite.c"
+#endif
+
+static const char_T *RT_MEMORY_ALLOCATION_ERROR =
+  "memory allocation error in generated S-Function";
+static real_T PMSM_Motor_TL3_rt_atan2d_snf(real_T u0, real_T u1)
+{
+  real_T y;
+  int32_T u0_0;
+  int32_T u1_0;
+  if (rtIsNaN(u0) || rtIsNaN(u1)) {
+    y = (rtNaN);
+  } else if (rtIsInf(u0) && rtIsInf(u1)) {
+    if (u0 > 0.0) {
+      u0_0 = 1;
+    } else {
+      u0_0 = -1;
+    }
+
+    if (u1 > 0.0) {
+      u1_0 = 1;
+    } else {
+      u1_0 = -1;
+    }
+
+    y = atan2(u0_0, u1_0);
+  } else if (u1 == 0.0) {
+    if (u0 > 0.0) {
+      y = RT_PI / 2.0;
+    } else if (u0 < 0.0) {
+      y = -(RT_PI / 2.0);
+    } else {
+      y = 0.0;
+    }
+  } else {
+    y = atan2(u0, u1);
+  }
+
+  return y;
+}
+
+/* System initialize for root system: '<Root>' */
+#define MDL_INITIALIZE_CONDITIONS
+
+static void mdlInitializeConditions(SimStruct *S)
+{
+  if (ssIsFirstInitCond(S)) {
+    B_PMSM_Motor_TL3_T *_rtB;
+    _rtB = ((B_PMSM_Motor_TL3_T *) ssGetLocalBlockIO(S));
+
+    /* InitializeConditions for DiscreteIntegrator: '<S11>/Discrete-Time Integrator1' */
+    ((real_T *)ssGetDWork(S, 0))[0] = 1.5707963267948966;
+
+    /* InitializeConditions for DiscreteIntegrator: '<S18>/Discrete-Time Integrator' */
+    ((real_T *)ssGetDWork(S, 1))[0] = 0.0;
+
+    /* InitializeConditions for DiscreteIntegrator: '<S17>/Discrete-Time Integrator' */
+    ((real_T *)ssGetDWork(S, 2))[0] = 0.0;
+
+    /* InitializeConditions for S-Function (sfun_spssw_discc): '<S20>/State-Space' incorporates:
+     *  Constant: '<S19>/Constant'
+     */
+    {
+      int32_T i, j;
+      real_T *Ds = (real_T*)((void**) ssGetDWork(S, 4))[3];
+
+      /* Copy and transpose D */
+      for (i=0; i<9; i++) {
+        for (j=0; j<9; j++)
+          Ds[i*9 + j] = (PMSM_Motor_TL3_ConstP.StateSpace_DS_param[i + j*9]);
+      }
+
+      {
+        /* Switches work vectors */
+        int_T *switch_status = (int_T*) ((void**) ssGetDWork(S, 4))[9];
+        int_T *gState = (int_T*)((void**) ssGetDWork(S, 4))[12];
+        real_T *yswitch = (real_T*)((void**) ssGetDWork(S, 4))[19];
+        int_T *switchTypes = (int_T*)((void**) ssGetDWork(S, 4))[20];
+        int_T *idxOutSw = (int_T*)((void**) ssGetDWork(S, 4))[21];
+        int_T *switch_status_init = (int_T*) ((void**) ssGetDWork(S, 4))[10];
+
+        /* Initialize work vectors */
+        switch_status[0] = 0;
+        switch_status_init[0] = 0;
+        gState[0] = (int_T) 0.0;
+        yswitch[0] = 1/0.001;
+        switchTypes[0] = (int_T)7.0;
+        idxOutSw[0] = ((int_T)0.0) - 1;
+        switch_status[1] = 0;
+        switch_status_init[1] = 0;
+        gState[1] = (int_T) 0.0;
+        yswitch[1] = 1/0.001;
+        switchTypes[1] = (int_T)7.0;
+        idxOutSw[1] = ((int_T)0.0) - 1;
+        switch_status[2] = 0;
+        switch_status_init[2] = 0;
+        gState[2] = (int_T) 0.0;
+        yswitch[2] = 1/0.001;
+        switchTypes[2] = (int_T)7.0;
+        idxOutSw[2] = ((int_T)0.0) - 1;
+        switch_status[3] = 0;
+        switch_status_init[3] = 0;
+        gState[3] = (int_T) 0.0;
+        yswitch[3] = 1/0.001;
+        switchTypes[3] = (int_T)7.0;
+        idxOutSw[3] = ((int_T)0.0) - 1;
+        switch_status[4] = 0;
+        switch_status_init[4] = 0;
+        gState[4] = (int_T) 0.0;
+        yswitch[4] = 1/0.001;
+        switchTypes[4] = (int_T)7.0;
+        idxOutSw[4] = ((int_T)0.0) - 1;
+        switch_status[5] = 0;
+        switch_status_init[5] = 0;
+        gState[5] = (int_T) 0.0;
+        yswitch[5] = 1/0.001;
+        switchTypes[5] = (int_T)7.0;
+        idxOutSw[5] = ((int_T)0.0) - 1;
+      }
+    }
+
+    /* InitializeConditions for UnitDelay: '<S4>/Unit Delay' */
+    ((real_T *)ssGetDWork(S, 3))[0] = 0.0;
+  } else {
+    B_PMSM_Motor_TL3_T *_rtB;
+    _rtB = ((B_PMSM_Motor_TL3_T *) ssGetLocalBlockIO(S));
+
+    /* InitializeConditions for DiscreteIntegrator: '<S11>/Discrete-Time Integrator1' */
+    ((real_T *)ssGetDWork(S, 0))[0] = 1.5707963267948966;
+
+    /* InitializeConditions for DiscreteIntegrator: '<S18>/Discrete-Time Integrator' */
+    ((real_T *)ssGetDWork(S, 1))[0] = 0.0;
+
+    /* InitializeConditions for DiscreteIntegrator: '<S17>/Discrete-Time Integrator' */
+    ((real_T *)ssGetDWork(S, 2))[0] = 0.0;
+
+    /* InitializeConditions for S-Function (sfun_spssw_discc): '<S20>/State-Space' incorporates:
+     *  Constant: '<S19>/Constant'
+     */
+    {
+      int32_T i, j;
+      real_T *Ds = (real_T*)((void**) ssGetDWork(S, 4))[3];
+
+      /* Copy and transpose D */
+      for (i=0; i<9; i++) {
+        for (j=0; j<9; j++)
+          Ds[i*9 + j] = (PMSM_Motor_TL3_ConstP.StateSpace_DS_param[i + j*9]);
+      }
+
+      {
+        /* Switches work vectors */
+        int_T *switch_status = (int_T*) ((void**) ssGetDWork(S, 4))[9];
+        int_T *gState = (int_T*)((void**) ssGetDWork(S, 4))[12];
+        real_T *yswitch = (real_T*)((void**) ssGetDWork(S, 4))[19];
+        int_T *switchTypes = (int_T*)((void**) ssGetDWork(S, 4))[20];
+        int_T *idxOutSw = (int_T*)((void**) ssGetDWork(S, 4))[21];
+        int_T *switch_status_init = (int_T*) ((void**) ssGetDWork(S, 4))[10];
+
+        /* Initialize work vectors */
+        switch_status[0] = 0;
+        switch_status_init[0] = 0;
+        gState[0] = (int_T) 0.0;
+        yswitch[0] = 1/0.001;
+        switchTypes[0] = (int_T)7.0;
+        idxOutSw[0] = ((int_T)0.0) - 1;
+        switch_status[1] = 0;
+        switch_status_init[1] = 0;
+        gState[1] = (int_T) 0.0;
+        yswitch[1] = 1/0.001;
+        switchTypes[1] = (int_T)7.0;
+        idxOutSw[1] = ((int_T)0.0) - 1;
+        switch_status[2] = 0;
+        switch_status_init[2] = 0;
+        gState[2] = (int_T) 0.0;
+        yswitch[2] = 1/0.001;
+        switchTypes[2] = (int_T)7.0;
+        idxOutSw[2] = ((int_T)0.0) - 1;
+        switch_status[3] = 0;
+        switch_status_init[3] = 0;
+        gState[3] = (int_T) 0.0;
+        yswitch[3] = 1/0.001;
+        switchTypes[3] = (int_T)7.0;
+        idxOutSw[3] = ((int_T)0.0) - 1;
+        switch_status[4] = 0;
+        switch_status_init[4] = 0;
+        gState[4] = (int_T) 0.0;
+        yswitch[4] = 1/0.001;
+        switchTypes[4] = (int_T)7.0;
+        idxOutSw[4] = ((int_T)0.0) - 1;
+        switch_status[5] = 0;
+        switch_status_init[5] = 0;
+        gState[5] = (int_T) 0.0;
+        yswitch[5] = 1/0.001;
+        switchTypes[5] = (int_T)7.0;
+        idxOutSw[5] = ((int_T)0.0) - 1;
+      }
+    }
+
+    /* InitializeConditions for UnitDelay: '<S4>/Unit Delay' */
+    ((real_T *)ssGetDWork(S, 3))[0] = 0.0;
+  }
+}
+
+/* Start for root system: '<Root>' */
+#define MDL_START
+
+static void mdlStart(SimStruct *S)
+{
+  /* instance underlying S-Function data */
+#if defined(RT_MALLOC) || defined(MATLAB_MEX_FILE)
+#if defined(MATLAB_MEX_FILE)
+
+  /* non-finites */
+  rt_InitInfAndNaN(sizeof(real_T));
+
+#endif
+
+  PMSM_Motor_TL3_malloc(S);
+  if (ssGetErrorStatus(S) != (NULL) ) {
+    return;
+  }
+
+#endif
+
+  {
+    B_PMSM_Motor_TL3_T *_rtB;
+    _rtB = ((B_PMSM_Motor_TL3_T *) ssGetLocalBlockIO(S));
+
+    /* Start for S-Function (sfun_spssw_discc): '<S20>/State-Space' incorporates:
+     *  Constant: '<S19>/Constant'
+     */
+
+    /* S-Function block: <S20>/State-Space */
+    {
+      ((void**) ssGetDWork(S, 4))[3] = (real_T*)calloc(9 * 9, sizeof(real_T));
+      ((void**) ssGetDWork(S, 4))[4] = (real_T*)calloc(9, sizeof(real_T));
+      ((void**) ssGetDWork(S, 4))[7] = (real_T*)calloc(9, sizeof(real_T));
+      ((void**) ssGetDWork(S, 4))[9] = (int_T*)calloc(6, sizeof(int_T));
+      ((void**) ssGetDWork(S, 4))[11] = (int_T*)calloc(6, sizeof(int_T));
+      ((void**) ssGetDWork(S, 4))[12] = (int_T*)calloc(6, sizeof(int_T));
+      ((void**) ssGetDWork(S, 4))[19] = (real_T*)calloc(6, sizeof(real_T));
+      ((void**) ssGetDWork(S, 4))[20] = (int_T*)calloc(6, sizeof(int_T));
+      ((void**) ssGetDWork(S, 4))[21] = (int_T*)calloc(6, sizeof(int_T));
+      ((void**) ssGetDWork(S, 4))[10] = (int_T*)calloc(6, sizeof(int_T));
+      ((void**) ssGetDWork(S, 4))[13] = (real_T*)calloc(6, sizeof(real_T));
+    }
+  }
+}
+
+/* Outputs for root system: '<Root>' */
+static void mdlOutputs(SimStruct *S, int_T tid)
+{
+  B_PMSM_Motor_TL3_T *_rtB;
+  real_T rtb_DataTypeConversion1;
+  real_T rtb_DataTypeConversion2;
+  real_T rtb_ElementaryMath_o1_tmp;
+  real_T rtb_ElementaryMath_o2_tmp;
+  _rtB = ((B_PMSM_Motor_TL3_T *) ssGetLocalBlockIO(S));
+
+  /* Trigonometry: '<S13>/Elementary Math' incorporates:
+   *  DiscreteIntegrator: '<S11>/Discrete-Time Integrator1'
+   *  Trigonometry: '<S16>/Trigonometric Function'
+   */
+  rtb_ElementaryMath_o1_tmp = sin(((real_T *)ssGetDWork(S, 0))[0]);
+  rtb_ElementaryMath_o2_tmp = cos(((real_T *)ssGetDWork(S, 0))[0]);
+
+  /* Fcn: '<S15>/Fcn' incorporates:
+   *  DiscreteIntegrator: '<S17>/Discrete-Time Integrator'
+   *  DiscreteIntegrator: '<S18>/Discrete-Time Integrator'
+   *  Trigonometry: '<S13>/Elementary Math'
+   */
+  _rtB->Fcn = ((real_T *)ssGetDWork(S, 1))[0] * rtb_ElementaryMath_o2_tmp +
+    ((real_T *)ssGetDWork(S, 2))[0] * rtb_ElementaryMath_o1_tmp;
+
+  /* Fcn: '<S15>/Fcn1' incorporates:
+   *  DiscreteIntegrator: '<S17>/Discrete-Time Integrator'
+   *  DiscreteIntegrator: '<S18>/Discrete-Time Integrator'
+   *  Trigonometry: '<S13>/Elementary Math'
+   */
+  _rtB->Fcn1 = ((-((real_T *)ssGetDWork(S, 1))[0] - 1.7320508075688772 *
+                 ((real_T *)ssGetDWork(S, 2))[0]) * rtb_ElementaryMath_o2_tmp +
+                (1.7320508075688772 * ((real_T *)ssGetDWork(S, 1))[0] - ((real_T
+    *)ssGetDWork(S, 2))[0]) * rtb_ElementaryMath_o1_tmp) * 0.5;
+
+  /* S-Function (sfun_spssw_discc): '<S20>/State-Space' incorporates:
+   *  Constant: '<S19>/Constant'
+   */
+
+  /* S-Function block: <S20>/State-Space */
+  {
+    real_T accum;
+
+    /* Circuit has switches */
+    int_T *switch_status = (int_T*) ((void**) ssGetDWork(S, 4))[9];
+    int_T *switch_status_init = (int_T*) ((void**) ssGetDWork(S, 4))[10];
+    int_T *SwitchChange = (int_T*) ((void**) ssGetDWork(S, 4))[11];
+    int_T *gState = (int_T*) ((void**) ssGetDWork(S, 4))[12];
+    real_T *yswitch = (real_T*)((void**) ssGetDWork(S, 4))[19];
+    int_T *switchTypes = (int_T*) ((void**) ssGetDWork(S, 4))[20];
+    int_T *idxOutSw = (int_T*) ((void**) ssGetDWork(S, 4))[21];
+    real_T *DxCol = (real_T*)((void**) ssGetDWork(S, 4))[4];
+    real_T *tmp2 = (real_T*)((void**) ssGetDWork(S, 4))[7];
+    real_T *uswlast = (real_T*)((void**) ssGetDWork(S, 4))[13];
+    int_T newState;
+    int_T swChanged = 0;
+    int loopsToDo = 20;
+    real_T temp;
+
+    /* keep an initial copy of switch_status*/
+    memcpy(switch_status_init, switch_status, 6 * sizeof(int_T));
+    memcpy(uswlast, &_rtB->StateSpace_o1[0], 6*sizeof(real_T));
+    do {
+      if (loopsToDo == 1) {            /* Need to reset some variables: */
+        swChanged = 0;
+
+        /* return to the original switch status*/
+        {
+          int_T i1;
+          for (i1=0; i1 < 6; i1++) {
+            swChanged = ((SwitchChange[i1] = switch_status_init[i1] -
+                          switch_status[i1]) != 0) ? 1 : swChanged;
+            switch_status[i1] = switch_status_init[i1];
+          }
+        }
+      } else {
+        /*
+         * Compute outputs:
+         * ---------------
+         */
+        real_T *Ds = (real_T*)((void**) ssGetDWork(S, 4))[3];
+
+        {
+          int_T i1;
+          real_T *y0 = &_rtB->StateSpace_o1[0];
+          for (i1=0; i1 < 9; i1++) {
+            accum = 0.0;
+
+            {
+              int_T i2;
+              const real_T *u0 = PMSM_Motor_TL3_ConstP.Constant_Value;
+              for (i2=0; i2 < 6; i2++) {
+                accum += *(Ds++) * u0[i2];
+              }
+
+              accum += *(Ds++) * _rtB->Fcn;
+              accum += *(Ds++) * _rtB->Fcn1;
+              accum += *(Ds++) * (*((const real_T**)ssGetInputPortSignalPtrs(S,
+                2)))[0];
+            }
+
+            y0[i1] = accum;
+          }
+        }
+
+        swChanged = 0;
+
+        {
+          int_T i1;
+          real_T *y0 = &_rtB->StateSpace_o1[0];
+          for (i1=0; i1 < 6; i1++) {
+            newState = ((y0[i1] > 0.0) && (gState[i1] > 0)) || (y0[i1] < 0.0) ?
+              1 : (((y0[i1] > 0.0) && gState[i1] == 0) ? 0 : switch_status[i1]);
+            swChanged = ((SwitchChange[i1] = newState - switch_status[i1]) != 0)
+              ? 1 : swChanged;
+            switch_status[i1] = newState;/* Keep new state */
+          }
+        }
+      }
+
+      /*
+       * Compute new As, Bs, Cs and Ds matrixes:
+       * --------------------------------------
+       */
+      if (swChanged) {
+        real_T *Ds = (real_T*)((void**) ssGetDWork(S, 4))[3];
+        real_T a1;
+
+        {
+          int_T i1;
+          for (i1=0; i1 < 6; i1++) {
+            if (SwitchChange[i1] != 0) {
+              a1 = 1000.0*SwitchChange[i1];
+              temp = 1/(1-Ds[i1*10]*a1);
+
+              {
+                int_T i2;
+                for (i2=0; i2 < 9; i2++) {
+                  DxCol[i2]= Ds[i2 * 9 + i1]*temp*a1;
+                }
+              }
+
+              DxCol[i1] = temp;
+
+              /* Copy row nSw of Ds into tmp2 and zero it out in Ds */
+              memcpy(tmp2, &Ds[i1 * 9], 9 * sizeof(real_T));
+              memset(&Ds[i1 * 9], '\0', 9 * sizeof(real_T));
+
+              /* Cs = Cs + DxCol * tmp1, Ds = Ds + DxCol * tmp2 *******************/
+              {
+                int_T i2;
+                for (i2=0; i2 < 9; i2++) {
+                  a1 = DxCol[i2];
+
+                  {
+                    int_T i3;
+                    for (i3=0; i3 < 9; i3++) {
+                      Ds[i2 * 9 + i3] += a1 * tmp2[i3];
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }                                /* if (swChanged) */
+    } while (swChanged > 0 && --loopsToDo > 0);
+
+    if (loopsToDo == 0) {
+      real_T *Ds = (real_T*)((void**) ssGetDWork(S, 4))[3];
+
+      {
+        int_T i1;
+        real_T *y0 = &_rtB->StateSpace_o1[0];
+        for (i1=0; i1 < 9; i1++) {
+          accum = 0.0;
+
+          {
+            int_T i2;
+            const real_T *u0 = PMSM_Motor_TL3_ConstP.Constant_Value;
+            for (i2=0; i2 < 6; i2++) {
+              accum += *(Ds++) * u0[i2];
+            }
+
+            accum += *(Ds++) * _rtB->Fcn;
+            accum += *(Ds++) * _rtB->Fcn1;
+            accum += *(Ds++) * (*((const real_T**)ssGetInputPortSignalPtrs(S, 2)))
+              [0];
+          }
+
+          y0[i1] = accum;
+        }
+      }
+    }
+
+    /* Output new switches states */
+    {
+      int_T i1;
+      real_T *y1 = &_rtB->StateSpace_o2[0];
+      for (i1=0; i1 < 6; i1++) {
+        y1[i1] = (real_T)switch_status[i1];
+      }
+    }
+  }
+
+  /* Fcn: '<S13>/Fcn3' incorporates:
+   *  Fcn: '<S13>/Fcn2'
+   *  Trigonometry: '<S13>/Elementary Math'
+   */
+  rtb_DataTypeConversion2 = 2.0 * _rtB->StateSpace_o1[6] + _rtB->StateSpace_o1[7];
+  rtb_DataTypeConversion1 = (rtb_DataTypeConversion2 * rtb_ElementaryMath_o1_tmp
+    + -1.7320508075688772 * _rtB->StateSpace_o1[7] * rtb_ElementaryMath_o2_tmp) *
+    0.33333333333333331;
+
+  /* Fcn: '<S13>/Fcn2' incorporates:
+   *  Trigonometry: '<S13>/Elementary Math'
+   */
+  rtb_DataTypeConversion2 = (rtb_DataTypeConversion2 * rtb_ElementaryMath_o2_tmp
+    + 1.7320508075688772 * _rtB->StateSpace_o1[7] * rtb_ElementaryMath_o1_tmp) *
+    0.33333333333333331;
+
+  /* Outport: '<Root>/Stator voltage Vs_q (V)' */
+  ((real_T *)ssGetOutputPortSignal(S, 5))[0] = rtb_DataTypeConversion2;
+
+  /* Gain: '<S11>/Gain' */
+  _rtB->Gain = 4.0 * *((const real_T **)ssGetInputPortSignalPtrs(S, 1))[0];
+
+  /* Sum: '<S18>/Sum1' incorporates:
+   *  DiscreteIntegrator: '<S17>/Discrete-Time Integrator'
+   *  DiscreteIntegrator: '<S18>/Discrete-Time Integrator'
+   *  Gain: '<S18>/1//Lq'
+   *  Gain: '<S18>/R//Lq'
+   *  Gain: '<S18>/lam//Lq'
+   *  Product: '<S18>/Product1'
+   */
+  _rtB->Sum1 = ((5617.9775280898875 * rtb_DataTypeConversion2 -
+                 61.797752808988761 * ((real_T *)ssGetDWork(S, 1))[0]) -
+                ((real_T *)ssGetDWork(S, 2))[0] * _rtB->Gain) -
+    67.415730337078656 * _rtB->Gain;
+
+  /* Sum: '<S17>/Sum' incorporates:
+   *  DiscreteIntegrator: '<S17>/Discrete-Time Integrator'
+   *  DiscreteIntegrator: '<S18>/Discrete-Time Integrator'
+   *  Gain: '<S17>/1//Ld'
+   *  Gain: '<S17>/R//Ld'
+   *  Product: '<S17>/Product'
+   */
+  _rtB->Sum = (5617.9775280898875 * rtb_DataTypeConversion1 - 61.797752808988761
+               * ((real_T *)ssGetDWork(S, 2))[0]) + _rtB->Gain * ((real_T *)
+    ssGetDWork(S, 1))[0];
+
+  /* Outport: '<Root>/Stator voltage Vs_d (V)' */
+  ((real_T *)ssGetOutputPortSignal(S, 6))[0] = rtb_DataTypeConversion1;
+
+  /* Sum: '<S4>/Add1' incorporates:
+   *  Constant: '<S4>/Filter_Constant'
+   *  Constant: '<S4>/One'
+   *  Product: '<S4>/Product'
+   *  Product: '<S4>/Product1'
+   *  UnitDelay: '<S4>/Unit Delay'
+   */
+  _rtB->Add1 = _rtB->StateSpace_o1[8] * 0.001 + 0.999 * ((real_T *)ssGetDWork(S,
+    3))[0];
+
+  /* Outport: '<Root>/Stator current is_b (A)' */
+  ((real_T *)ssGetOutputPortSignal(S, 1))[0] = _rtB->Fcn1;
+
+  /* Outport: '<Root>/Stator current is_c (A)' incorporates:
+   *  Sum: '<S15>/Sum'
+   */
+  ((real_T *)ssGetOutputPortSignal(S, 2))[0] = (0.0 - _rtB->Fcn1) - _rtB->Fcn;
+
+  /* Outport: '<Root>/Stator current is_a (A)' */
+  ((real_T *)ssGetOutputPortSignal(S, 0))[0] = _rtB->Fcn;
+
+  /* Outport: '<Root>/Stator current is_d (A)' incorporates:
+   *  DiscreteIntegrator: '<S17>/Discrete-Time Integrator'
+   */
+  ((real_T *)ssGetOutputPortSignal(S, 4))[0] = ((real_T *)ssGetDWork(S, 2))[0];
+
+  /* Outport: '<Root>/Electromagnetic torque Te (N*m)' incorporates:
+   *  DiscreteIntegrator: '<S17>/Discrete-Time Integrator'
+   *  DiscreteIntegrator: '<S18>/Discrete-Time Integrator'
+   *  Fcn: '<S9>/Te '
+   */
+  ((real_T *)ssGetOutputPortSignal(S, 12))[0] = (0.0 * ((real_T *)ssGetDWork(S,
+    1))[0] * ((real_T *)ssGetDWork(S, 2))[0] + 0.012 * ((real_T *)ssGetDWork(S,
+    1))[0]) * 6.0;
+
+  /* Outport: '<Root>/Stator current is_q (A)' incorporates:
+   *  DiscreteIntegrator: '<S18>/Discrete-Time Integrator'
+   */
+  ((real_T *)ssGetOutputPortSignal(S, 3))[0] = ((real_T *)ssGetDWork(S, 1))[0];
+
+  /* Outport: '<Root>/Rotor angle thetam (rad)' incorporates:
+   *  DiscreteIntegrator: '<S11>/Discrete-Time Integrator1'
+   *  Fcn: '<S11>/Fcn'
+   */
+  ((real_T *)ssGetOutputPortSignal(S, 11))[0] = (((real_T *)ssGetDWork(S, 0))[0]
+    - 1.5707963267948966) / 4.0;
+
+  /* Gain: '<S16>/rad2deg' incorporates:
+   *  Trigonometry: '<S16>/Trigonometric Function2'
+   */
+  rtb_DataTypeConversion2 = 57.295779513082323 * PMSM_Motor_TL3_rt_atan2d_snf
+    (rtb_ElementaryMath_o1_tmp, rtb_ElementaryMath_o2_tmp);
+
+  /* Outport: '<Root>/Hall effect signal h_a' incorporates:
+   *  Constant: '<S12>/Constant'
+   *  Constant: '<S12>/Constant1'
+   *  DataTypeConversion: '<S12>/Data Type Conversion'
+   *  Logic: '<S12>/Logical Operator'
+   *  RelationalOperator: '<S12>/Relational Operator1'
+   *  RelationalOperator: '<S12>/Relational Operator2'
+   */
+  ((real_T *)ssGetOutputPortSignal(S, 7))[0] = ((rtb_DataTypeConversion2 >=
+    -60.0) && (rtb_DataTypeConversion2 <= 120.0));
+
+  /* Outport: '<Root>/Hall effect signal h_b' incorporates:
+   *  Constant: '<S12>/Constant2'
+   *  Constant: '<S12>/Constant3'
+   *  DataTypeConversion: '<S12>/Data Type Conversion1'
+   *  Logic: '<S12>/Logical Operator1'
+   *  RelationalOperator: '<S12>/Relational Operator3'
+   *  RelationalOperator: '<S12>/Relational Operator4'
+   */
+  ((real_T *)ssGetOutputPortSignal(S, 8))[0] = ((rtb_DataTypeConversion2 >= 60.0)
+    || (rtb_DataTypeConversion2 <= -120.0));
+
+  /* Outport: '<Root>/Hall effect signal h_c' incorporates:
+   *  Constant: '<S12>/Constant4'
+   *  Constant: '<S12>/Constant5'
+   *  DataTypeConversion: '<S12>/Data Type Conversion2'
+   *  Logic: '<S12>/Logical Operator2'
+   *  RelationalOperator: '<S12>/Relational Operator5'
+   *  RelationalOperator: '<S12>/Relational Operator6'
+   */
+  ((real_T *)ssGetOutputPortSignal(S, 9))[0] = ((rtb_DataTypeConversion2 >=
+    -180.0) && (rtb_DataTypeConversion2 <= 0.0));
+
+  /* Outport: '<Root>/Rotor speed wm (rad//s)' */
+  ((real_T *)ssGetOutputPortSignal(S, 10))[0] = *((const real_T **)
+    ssGetInputPortSignalPtrs(S, 1))[0];
+  UNUSED_PARAMETER(tid);
+}
+
+/* Update for root system: '<Root>' */
+#define MDL_UPDATE
+
+static void mdlUpdate(SimStruct *S, int_T tid)
+{
+  B_PMSM_Motor_TL3_T *_rtB;
+  _rtB = ((B_PMSM_Motor_TL3_T *) ssGetLocalBlockIO(S));
+
+  /* Update for DiscreteIntegrator: '<S11>/Discrete-Time Integrator1' */
+  ((real_T *)ssGetDWork(S, 0))[0] = 5.0E-7 * _rtB->Gain + ((real_T *)ssGetDWork
+    (S, 0))[0];
+
+  /* Update for DiscreteIntegrator: '<S18>/Discrete-Time Integrator' */
+  ((real_T *)ssGetDWork(S, 1))[0] = 5.0E-7 * _rtB->Sum1 + ((real_T *)ssGetDWork
+    (S, 1))[0];
+
+  /* Update for DiscreteIntegrator: '<S17>/Discrete-Time Integrator' */
+  ((real_T *)ssGetDWork(S, 2))[0] = 5.0E-7 * _rtB->Sum + ((real_T *)ssGetDWork(S,
+    2))[0];
+
+  /* Update for S-Function (sfun_spssw_discc): '<S20>/State-Space' incorporates:
+   *  Constant: '<S19>/Constant'
+   */
+  {
+    int_T *gState = (int_T*)((void**) ssGetDWork(S, 4))[12];
+
+    /* Store switch gates values for next step */
+    *(gState++) = (int_T) (*(const real_T **)ssGetInputPortSignalPtrs(S, 0))[0];
+    *(gState++) = (int_T) (*(const real_T **)ssGetInputPortSignalPtrs(S, 0))[1];
+    *(gState++) = (int_T) (*(const real_T **)ssGetInputPortSignalPtrs(S, 0))[2];
+    *(gState++) = (int_T) (*(const real_T **)ssGetInputPortSignalPtrs(S, 0))[3];
+    *(gState++) = (int_T) (*(const real_T **)ssGetInputPortSignalPtrs(S, 0))[4];
+    *(gState++) = (int_T) (*(const real_T **)ssGetInputPortSignalPtrs(S, 0))[5];
+  }
+
+  /* Update for UnitDelay: '<S4>/Unit Delay' */
+  ((real_T *)ssGetDWork(S, 3))[0] = _rtB->Add1;
+  UNUSED_PARAMETER(tid);
+}
+
+/* Termination for root system: '<Root>' */
+static void mdlTerminate(SimStruct *S)
+{
+  B_PMSM_Motor_TL3_T *_rtB;
+  _rtB = ((B_PMSM_Motor_TL3_T *) ssGetLocalBlockIO(S));
+
+  /* Terminate for S-Function (sfun_spssw_discc): '<S20>/State-Space' incorporates:
+   *  Constant: '<S19>/Constant'
+   */
+
+  /* S-Function block: <S20>/State-Space */
+  {
+    /* Free memory */
+    free(((void**) ssGetDWork(S, 4))[3]);
+    free(((void**) ssGetDWork(S, 4))[4]);
+    free(((void**) ssGetDWork(S, 4))[7]);
+
+    /*
+     * Circuit has switches*/
+    free(((void**) ssGetDWork(S, 4))[12]);
+    free(((void**) ssGetDWork(S, 4))[9]);
+    free(((void**) ssGetDWork(S, 4))[11]);
+    free(((void**) ssGetDWork(S, 4))[10]);
+  }
+
+#if defined(RT_MALLOC) || defined(MATLAB_MEX_FILE)
+
+  if (ssGetUserData(S) != (NULL) ) {
+    rt_FREE(ssGetLocalBlockIO(S));
+  }
+
+  rt_FREE(ssGetUserData(S));
+
+#endif
+
+}
+
+#if defined(RT_MALLOC) || defined(MATLAB_MEX_FILE)
+#include "PMSM_Motor_TL3_mid.h"
+#endif
+
+/* Function to initialize sizes. */
+static void mdlInitializeSizes(SimStruct *S)
+{
+  ssSetNumSampleTimes(S, 1);           /* Number of sample times */
+  ssSetNumContStates(S, 0);            /* Number of continuous states */
+  ssSetNumNonsampledZCs(S, 0);         /* Number of nonsampled ZCs */
+
+  /* Number of output ports */
+  if (!ssSetNumOutputPorts(S, 13))
+    return;
+
+  /* outport number: 0 */
+  if (!ssSetOutputPortVectorDimension(S, 0, 1))
+    return;
+  if (ssGetSimMode(S) != SS_SIMMODE_SIZES_CALL_ONLY) {
+    ssSetOutputPortDataType(S, 0, SS_DOUBLE);
+  }
+
+  ssSetOutputPortSampleTime(S, 0, 5.0E-7);
+  ssSetOutputPortOffsetTime(S, 0, 0.0);
+  ssSetOutputPortOptimOpts(S, 0, SS_REUSABLE_AND_LOCAL);
+
+  /* outport number: 1 */
+  if (!ssSetOutputPortVectorDimension(S, 1, 1))
+    return;
+  if (ssGetSimMode(S) != SS_SIMMODE_SIZES_CALL_ONLY) {
+    ssSetOutputPortDataType(S, 1, SS_DOUBLE);
+  }
+
+  ssSetOutputPortSampleTime(S, 1, 5.0E-7);
+  ssSetOutputPortOffsetTime(S, 1, 0.0);
+  ssSetOutputPortOptimOpts(S, 1, SS_REUSABLE_AND_LOCAL);
+
+  /* outport number: 2 */
+  if (!ssSetOutputPortVectorDimension(S, 2, 1))
+    return;
+  if (ssGetSimMode(S) != SS_SIMMODE_SIZES_CALL_ONLY) {
+    ssSetOutputPortDataType(S, 2, SS_DOUBLE);
+  }
+
+  ssSetOutputPortSampleTime(S, 2, 5.0E-7);
+  ssSetOutputPortOffsetTime(S, 2, 0.0);
+  ssSetOutputPortOptimOpts(S, 2, SS_REUSABLE_AND_LOCAL);
+
+  /* outport number: 3 */
+  if (!ssSetOutputPortVectorDimension(S, 3, 1))
+    return;
+  if (ssGetSimMode(S) != SS_SIMMODE_SIZES_CALL_ONLY) {
+    ssSetOutputPortDataType(S, 3, SS_DOUBLE);
+  }
+
+  ssSetOutputPortSampleTime(S, 3, 5.0E-7);
+  ssSetOutputPortOffsetTime(S, 3, 0.0);
+  ssSetOutputPortOptimOpts(S, 3, SS_REUSABLE_AND_LOCAL);
+
+  /* outport number: 4 */
+  if (!ssSetOutputPortVectorDimension(S, 4, 1))
+    return;
+  if (ssGetSimMode(S) != SS_SIMMODE_SIZES_CALL_ONLY) {
+    ssSetOutputPortDataType(S, 4, SS_DOUBLE);
+  }
+
+  ssSetOutputPortSampleTime(S, 4, 5.0E-7);
+  ssSetOutputPortOffsetTime(S, 4, 0.0);
+  ssSetOutputPortOptimOpts(S, 4, SS_REUSABLE_AND_LOCAL);
+
+  /* outport number: 5 */
+  if (!ssSetOutputPortVectorDimension(S, 5, 1))
+    return;
+  if (ssGetSimMode(S) != SS_SIMMODE_SIZES_CALL_ONLY) {
+    ssSetOutputPortDataType(S, 5, SS_DOUBLE);
+  }
+
+  ssSetOutputPortSampleTime(S, 5, 5.0E-7);
+  ssSetOutputPortOffsetTime(S, 5, 0.0);
+  ssSetOutputPortOptimOpts(S, 5, SS_REUSABLE_AND_LOCAL);
+
+  /* outport number: 6 */
+  if (!ssSetOutputPortVectorDimension(S, 6, 1))
+    return;
+  if (ssGetSimMode(S) != SS_SIMMODE_SIZES_CALL_ONLY) {
+    ssSetOutputPortDataType(S, 6, SS_DOUBLE);
+  }
+
+  ssSetOutputPortSampleTime(S, 6, 5.0E-7);
+  ssSetOutputPortOffsetTime(S, 6, 0.0);
+  ssSetOutputPortOptimOpts(S, 6, SS_REUSABLE_AND_LOCAL);
+
+  /* outport number: 7 */
+  if (!ssSetOutputPortVectorDimension(S, 7, 1))
+    return;
+  if (ssGetSimMode(S) != SS_SIMMODE_SIZES_CALL_ONLY) {
+    ssSetOutputPortDataType(S, 7, SS_DOUBLE);
+  }
+
+  ssSetOutputPortSampleTime(S, 7, 5.0E-7);
+  ssSetOutputPortOffsetTime(S, 7, 0.0);
+  ssSetOutputPortOptimOpts(S, 7, SS_REUSABLE_AND_LOCAL);
+
+  /* outport number: 8 */
+  if (!ssSetOutputPortVectorDimension(S, 8, 1))
+    return;
+  if (ssGetSimMode(S) != SS_SIMMODE_SIZES_CALL_ONLY) {
+    ssSetOutputPortDataType(S, 8, SS_DOUBLE);
+  }
+
+  ssSetOutputPortSampleTime(S, 8, 5.0E-7);
+  ssSetOutputPortOffsetTime(S, 8, 0.0);
+  ssSetOutputPortOptimOpts(S, 8, SS_REUSABLE_AND_LOCAL);
+
+  /* outport number: 9 */
+  if (!ssSetOutputPortVectorDimension(S, 9, 1))
+    return;
+  if (ssGetSimMode(S) != SS_SIMMODE_SIZES_CALL_ONLY) {
+    ssSetOutputPortDataType(S, 9, SS_DOUBLE);
+  }
+
+  ssSetOutputPortSampleTime(S, 9, 5.0E-7);
+  ssSetOutputPortOffsetTime(S, 9, 0.0);
+  ssSetOutputPortOptimOpts(S, 9, SS_REUSABLE_AND_LOCAL);
+
+  /* outport number: 10 */
+  if (!ssSetOutputPortVectorDimension(S, 10, 1))
+    return;
+  if (ssGetSimMode(S) != SS_SIMMODE_SIZES_CALL_ONLY) {
+    ssSetOutputPortDataType(S, 10, SS_DOUBLE);
+  }
+
+  ssSetOutputPortSampleTime(S, 10, 5.0E-7);
+  ssSetOutputPortOffsetTime(S, 10, 0.0);
+  ssSetOutputPortOptimOpts(S, 10, SS_REUSABLE_AND_LOCAL);
+
+  /* outport number: 11 */
+  if (!ssSetOutputPortVectorDimension(S, 11, 1))
+    return;
+  if (ssGetSimMode(S) != SS_SIMMODE_SIZES_CALL_ONLY) {
+    ssSetOutputPortDataType(S, 11, SS_DOUBLE);
+  }
+
+  ssSetOutputPortSampleTime(S, 11, 5.0E-7);
+  ssSetOutputPortOffsetTime(S, 11, 0.0);
+  ssSetOutputPortOptimOpts(S, 11, SS_REUSABLE_AND_LOCAL);
+
+  /* outport number: 12 */
+  if (!ssSetOutputPortVectorDimension(S, 12, 1))
+    return;
+  if (ssGetSimMode(S) != SS_SIMMODE_SIZES_CALL_ONLY) {
+    ssSetOutputPortDataType(S, 12, SS_DOUBLE);
+  }
+
+  ssSetOutputPortSampleTime(S, 12, 5.0E-7);
+  ssSetOutputPortOffsetTime(S, 12, 0.0);
+  ssSetOutputPortOptimOpts(S, 12, SS_REUSABLE_AND_LOCAL);
+
+  /* Number of input ports */
+  if (!ssSetNumInputPorts(S, 3))
+    return;
+
+  /* inport number: 0 */
+  {
+    if (!ssSetInputPortVectorDimension(S, 0, 6))
+      return;
+    if (ssGetSimMode(S) != SS_SIMMODE_SIZES_CALL_ONLY) {
+      ssSetInputPortDataType(S, 0, SS_DOUBLE);
+    }
+
+    ssSetInputPortSampleTime(S, 0, 5.0E-7);
+    ssSetInputPortOffsetTime(S, 0, 0.0);
+    ssSetInputPortOverWritable(S, 0, 0);
+    ssSetInputPortOptimOpts(S, 0, SS_NOT_REUSABLE_AND_GLOBAL);
+  }
+
+  /* inport number: 1 */
+  {
+    if (!ssSetInputPortVectorDimension(S, 1, 1))
+      return;
+    if (ssGetSimMode(S) != SS_SIMMODE_SIZES_CALL_ONLY) {
+      ssSetInputPortDataType(S, 1, SS_DOUBLE);
+    }
+
+    ssSetInputPortDirectFeedThrough(S, 1, 1);
+    ssSetInputPortSampleTime(S, 1, 5.0E-7);
+    ssSetInputPortOffsetTime(S, 1, 0.0);
+    ssSetInputPortOverWritable(S, 1, 0);
+    ssSetInputPortOptimOpts(S, 1, SS_NOT_REUSABLE_AND_GLOBAL);
+  }
+
+  /* inport number: 2 */
+  {
+    if (!ssSetInputPortVectorDimension(S, 2, 1))
+      return;
+    if (ssGetSimMode(S) != SS_SIMMODE_SIZES_CALL_ONLY) {
+      ssSetInputPortDataType(S, 2, SS_DOUBLE);
+    }
+
+    ssSetInputPortDirectFeedThrough(S, 2, 1);
+    ssSetInputPortSampleTime(S, 2, 5.0E-7);
+    ssSetInputPortOffsetTime(S, 2, 0.0);
+    ssSetInputPortOverWritable(S, 2, 0);
+    ssSetInputPortOptimOpts(S, 2, SS_NOT_REUSABLE_AND_GLOBAL);
+  }
+
+  ssSetRTWGeneratedSFcn(S, 1);         /* Generated S-function */
+
+  /* DWork */
+  if (!ssSetNumDWork(S, 6)) {
+    return;
+  }
+
+  /* '<S11>/Discrete-Time Integrator1': DSTATE */
+  ssSetDWorkName(S, 0, "DWORK0");
+  ssSetDWorkWidth(S, 0, 1);
+  ssSetDWorkUsedAsDState(S, 0, 1);
+
+  /* '<S18>/Discrete-Time Integrator': DSTATE */
+  ssSetDWorkName(S, 1, "DWORK1");
+  ssSetDWorkWidth(S, 1, 1);
+  ssSetDWorkUsedAsDState(S, 1, 1);
+
+  /* '<S17>/Discrete-Time Integrator': DSTATE */
+  ssSetDWorkName(S, 2, "DWORK2");
+  ssSetDWorkWidth(S, 2, 1);
+  ssSetDWorkUsedAsDState(S, 2, 1);
+
+  /* '<S4>/Unit Delay': DSTATE */
+  ssSetDWorkName(S, 3, "DWORK3");
+  ssSetDWorkWidth(S, 3, 1);
+  ssSetDWorkUsedAsDState(S, 3, 1);
+
+  /* '<S20>/State-Space': PWORK */
+  ssSetDWorkName(S, 4, "DWORK4");
+  ssSetDWorkWidth(S, 4, 24);
+  ssSetDWorkDataType(S, 4, SS_POINTER);
+
+  /* '<S20>/State-Space': IWORK */
+  ssSetDWorkName(S, 5, "DWORK5");
+  ssSetDWorkWidth(S, 5, 11);
+  ssSetDWorkDataType(S, 5, SS_INTEGER);
+
+  /* Tunable Parameters */
+  ssSetNumSFcnParams(S, 0);
+
+  /* Number of expected parameters */
+#if defined(MATLAB_MEX_FILE)
+
+  if (ssGetNumSFcnParams(S) == ssGetSFcnParamsCount(S)) {
+
+#if defined(MDL_CHECK_PARAMETERS)
+
+    mdlCheckParameters(S);
+
+#endif                                 /* MDL_CHECK_PARAMETERS */
+
+    if (ssGetErrorStatus(S) != (NULL) ) {
+      return;
+    }
+  } else {
+    return;                /* Parameter mismatch will be reported by Simulink */
+  }
+
+#endif                                 /* MATLAB_MEX_FILE */
+
+  /* Options */
+  ssSetOptions(S, (SS_OPTION_RUNTIME_EXCEPTION_FREE_CODE |
+                   SS_OPTION_PORT_SAMPLE_TIMES_ASSIGNED ));
+
+#if SS_SFCN_FOR_SIM
+
+  {
+    ssSupportsMultipleExecInstances(S, true);
+    ssHasStateInsideForEachSS(S, false);
+  }
+
+#endif
+
+}
+
+/* Function to initialize sample times. */
+static void mdlInitializeSampleTimes(SimStruct *S)
+{
+  /* task periods */
+  ssSetSampleTime(S, 0, 5.0E-7);
+
+  /* task offsets */
+  ssSetOffsetTime(S, 0, 0.0);
+}
+
+#if defined(MATLAB_MEX_FILE)
+#include "fixedpoint.c"
+#include "simulink.c"
+#else
+#undef S_FUNCTION_NAME
+#define S_FUNCTION_NAME                PMSM_Motor_TL3_sf
+#include "cg_sfun.h"
+#endif                                 /* defined(MATLAB_MEX_FILE) */

+ 173 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/PMSM_Motor_TL3_sf.h

@@ -0,0 +1,173 @@
+/*
+ * PMSM_Motor_TL3_sf.h
+ *
+ * Code generation for model "PMSM_Motor_TL3_sf".
+ *
+ * Model version              : 1.825
+ * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020
+ * C source code generated on : Fri Apr 14 12:51:02 2023
+ *
+ * Target selection: rtwsfcn.tlc
+ * Note: GRT includes extra infrastructure and instrumentation for prototyping
+ * Embedded hardware selection: ARM Compatible->ARM Cortex-M
+ * Emulation hardware selection:
+ *    Differs from embedded hardware (MATLAB Host)
+ * Code generation objectives:
+ *    1. Execution efficiency
+ *    2. RAM efficiency
+ * Validation result: Not run
+ */
+
+#ifndef RTW_HEADER_PMSM_Motor_TL3_sf_h_
+#define RTW_HEADER_PMSM_Motor_TL3_sf_h_
+#include <math.h>
+#include <string.h>
+#include <stddef.h>
+#ifndef PMSM_Motor_TL3_sf_COMMON_INCLUDES_
+#define PMSM_Motor_TL3_sf_COMMON_INCLUDES_
+#include <stdlib.h>
+#define S_FUNCTION_NAME                PMSM_Motor_TL3_sf
+#define S_FUNCTION_LEVEL               2
+#define RTW_GENERATED_S_FUNCTION
+#include "rtwtypes.h"
+#include "simstruc.h"
+#include "fixedpoint.h"
+#if !defined(MATLAB_MEX_FILE)
+#include "rt_matrx.h"
+#endif
+
+#if !defined(RTW_SFUNCTION_DEFINES)
+#define RTW_SFUNCTION_DEFINES
+
+typedef struct {
+  void *blockIO;
+  void *defaultParam;
+  void *nonContDerivSig;
+} LocalS;
+
+#define ssSetLocalBlockIO(S, io)       ((LocalS *)ssGetUserData(S))->blockIO = ((void *)(io))
+#define ssGetLocalBlockIO(S)           ((LocalS *)ssGetUserData(S))->blockIO
+#define ssSetLocalDefaultParam(S, paramVector) ((LocalS *)ssGetUserData(S))->defaultParam = (paramVector)
+#define ssGetLocalDefaultParam(S)      ((LocalS *)ssGetUserData(S))->defaultParam
+#define ssSetLocalNonContDerivSig(S, pSig) ((LocalS *)ssGetUserData(S))->nonContDerivSig = (pSig)
+#define ssGetLocalNonContDerivSig(S)   ((LocalS *)ssGetUserData(S))->nonContDerivSig
+#endif
+#endif                                 /* PMSM_Motor_TL3_sf_COMMON_INCLUDES_ */
+
+#include "PMSM_Motor_TL3_sf_types.h"
+
+/* Shared type includes */
+#include "multiword_types.h"
+#include "rtGetNaN.h"
+#include "rt_nonfinite.h"
+#include "rt_defines.h"
+#include "rtGetInf.h"
+
+/* Block signals (default storage) */
+typedef struct {
+  real_T Fcn;                          /* '<S15>/Fcn' */
+  real_T Fcn1;                         /* '<S15>/Fcn1' */
+  real_T StateSpace_o1[9];             /* '<S20>/State-Space' */
+  real_T StateSpace_o2[6];             /* '<S20>/State-Space' */
+  real_T Gain;                         /* '<S11>/Gain' */
+  real_T Sum1;                         /* '<S18>/Sum1' */
+  real_T Sum;                          /* '<S17>/Sum' */
+  real_T Add1;                         /* '<S4>/Add1' */
+} B_PMSM_Motor_TL3_T;
+
+/* Constant parameters (default storage) */
+typedef struct {
+  /* Expression: zeros(1,Switches)
+   * Referenced by: '<S19>/Constant'
+   */
+  real_T Constant_Value[6];
+
+  /* Expression: S.D
+   * Referenced by: '<S20>/State-Space'
+   */
+  real_T StateSpace_DS_param[81];
+} ConstP_PMSM_Motor_TL3_T;
+
+/* External inputs (root inport signals with default storage) */
+typedef struct {
+  real_T *PWM[6];                      /* '<Root>/PWM' */
+  real_T *TL;                          /* '<Root>/TL' */
+  real_T *DC;                          /* '<Root>/DC' */
+} ExternalUPtrs_PMSM_Motor_TL3_T;
+
+/* External outputs (root outports fed by signals with default storage) */
+typedef struct {
+  real_T *Statorcurrentis_aA;          /* '<Root>/Stator current is_a (A)' */
+  real_T *Statorcurrentis_bA;          /* '<Root>/Stator current is_b (A)' */
+  real_T *Statorcurrentis_cA;          /* '<Root>/Stator current is_c (A)' */
+  real_T *Statorcurrentis_qA;          /* '<Root>/Stator current is_q (A)' */
+  real_T *Statorcurrentis_dA;          /* '<Root>/Stator current is_d (A)' */
+  real_T *StatorvoltageVs_qV;          /* '<Root>/Stator voltage Vs_q (V)' */
+  real_T *StatorvoltageVs_dV;          /* '<Root>/Stator voltage Vs_d (V)' */
+  real_T *Halleffectsignalh_a;         /* '<Root>/Hall effect signal h_a' */
+  real_T *Halleffectsignalh_b;         /* '<Root>/Hall effect signal h_b' */
+  real_T *Halleffectsignalh_c;         /* '<Root>/Hall effect signal h_c' */
+  real_T *Rotorspeedwmrads;            /* '<Root>/Rotor speed wm (rad//s)' */
+  real_T *Rotoranglethetamrad;         /* '<Root>/Rotor angle thetam (rad)' */
+  real_T *ElectromagnetictorqueTeNm;
+                                  /* '<Root>/Electromagnetic torque Te (N*m)' */
+} ExtY_PMSM_Motor_TL3_T;
+
+/* Constant parameters (default storage) */
+extern const ConstP_PMSM_Motor_TL3_T PMSM_Motor_TL3_ConstP;
+
+/*-
+ * These blocks were eliminated from the model due to optimizations:
+ *
+ * Block '<S4>/Data Type Duplicate' : Unused code path elimination
+ * Block '<S3>/do not delete this gain' : Eliminated nontunable gain of 1
+ * Block '<S1>/Data Type Conversion' : Eliminate redundant data type conversion
+ * Block '<S17>/Lq//Ld' : Eliminated nontunable gain of 1
+ * Block '<S18>/Ld//Lq' : Eliminated nontunable gain of 1
+ * Block '<S19>/Data Type Conversion' : Eliminate redundant data type conversion
+ */
+
+/*-
+ * 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_Motor_TL3')    - opens subsystem FOC_ADRC/PMSM_Motor_TL3
+ * hilite_system('FOC_ADRC/PMSM_Motor_TL3/Kp') - opens and selects block Kp
+ *
+ * Here is the system hierarchy for this model
+ *
+ * '<Root>' : 'FOC_ADRC'
+ * '<S1>'   : 'FOC_ADRC/PMSM_Motor_TL3'
+ * '<S2>'   : 'FOC_ADRC/PMSM_Motor_TL3/Controlled Voltage Source1'
+ * '<S3>'   : 'FOC_ADRC/PMSM_Motor_TL3/Current Measurement'
+ * '<S4>'   : 'FOC_ADRC/PMSM_Motor_TL3/IIR Filter1'
+ * '<S5>'   : 'FOC_ADRC/PMSM_Motor_TL3/Permanent Magnet Synchronous Machine1'
+ * '<S6>'   : 'FOC_ADRC/PMSM_Motor_TL3/Universal Bridge1'
+ * '<S7>'   : 'FOC_ADRC/PMSM_Motor_TL3/powergui'
+ * '<S8>'   : 'FOC_ADRC/PMSM_Motor_TL3/Current Measurement/Model'
+ * '<S9>'   : 'FOC_ADRC/PMSM_Motor_TL3/Permanent Magnet Synchronous Machine1/Electrical model'
+ * '<S10>'  : 'FOC_ADRC/PMSM_Motor_TL3/Permanent Magnet Synchronous Machine1/Measurements'
+ * '<S11>'  : 'FOC_ADRC/PMSM_Motor_TL3/Permanent Magnet Synchronous Machine1/Mechanical model'
+ * '<S12>'  : 'FOC_ADRC/PMSM_Motor_TL3/Permanent Magnet Synchronous Machine1/Electrical model/Hall effect sensor'
+ * '<S13>'  : 'FOC_ADRC/PMSM_Motor_TL3/Permanent Magnet Synchronous Machine1/Electrical model/abc2qd'
+ * '<S14>'  : 'FOC_ADRC/PMSM_Motor_TL3/Permanent Magnet Synchronous Machine1/Electrical model/iq,id'
+ * '<S15>'  : 'FOC_ADRC/PMSM_Motor_TL3/Permanent Magnet Synchronous Machine1/Electrical model/qd2abc'
+ * '<S16>'  : 'FOC_ADRC/PMSM_Motor_TL3/Permanent Magnet Synchronous Machine1/Electrical model/Hall effect sensor/Angle converter'
+ * '<S17>'  : 'FOC_ADRC/PMSM_Motor_TL3/Permanent Magnet Synchronous Machine1/Electrical model/iq,id/id'
+ * '<S18>'  : 'FOC_ADRC/PMSM_Motor_TL3/Permanent Magnet Synchronous Machine1/Electrical model/iq,id/iq'
+ * '<S19>'  : 'FOC_ADRC/PMSM_Motor_TL3/Universal Bridge1/Model'
+ * '<S20>'  : 'FOC_ADRC/PMSM_Motor_TL3/powergui/EquivalentModel1'
+ * '<S21>'  : 'FOC_ADRC/PMSM_Motor_TL3/powergui/EquivalentModel1/Gates'
+ * '<S22>'  : 'FOC_ADRC/PMSM_Motor_TL3/powergui/EquivalentModel1/Sources'
+ * '<S23>'  : 'FOC_ADRC/PMSM_Motor_TL3/powergui/EquivalentModel1/Status'
+ * '<S24>'  : 'FOC_ADRC/PMSM_Motor_TL3/powergui/EquivalentModel1/Yout'
+ */
+#endif                                 /* RTW_HEADER_PMSM_Motor_TL3_sf_h_ */

+ 41 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/PMSM_Motor_TL3_sf_data.c

@@ -0,0 +1,41 @@
+/*
+ * PMSM_Motor_TL3_sf_data.c
+ *
+ * Code generation for model "PMSM_Motor_TL3_sf".
+ *
+ * Model version              : 1.825
+ * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020
+ * C source code generated on : Fri Apr 14 12:51:02 2023
+ *
+ * Target selection: rtwsfcn.tlc
+ * Note: GRT includes extra infrastructure and instrumentation for prototyping
+ * Embedded hardware selection: ARM Compatible->ARM Cortex-M
+ * Emulation hardware selection:
+ *    Differs from embedded hardware (MATLAB Host)
+ * Code generation objectives:
+ *    1. Execution efficiency
+ *    2. RAM efficiency
+ * Validation result: Not run
+ */
+
+#include "PMSM_Motor_TL3_sf.h"
+#include "PMSM_Motor_TL3_sf_private.h"
+
+/* Constant parameters (default storage) */
+const ConstP_PMSM_Motor_TL3_T PMSM_Motor_TL3_ConstP = {
+  /* Expression: zeros(1,Switches)
+   * Referenced by: '<S19>/Constant'
+   */
+  { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 },
+
+  /* Expression: S.D
+   * Referenced by: '<S20>/State-Space'
+   */
+  { -25.0, 25.0, 0.0, 0.0, 0.0, 0.0, 25.0, 0.0, 0.5, 25.0, -25.0, 0.0, 0.0, 0.0,
+    0.0, -25.0, 0.0, 0.5, 0.0, 0.0, -25.0, 25.0, 0.0, 0.0, -25.0, 25.0, 0.5, 0.0,
+    0.0, 25.0, -25.0, 0.0, 0.0, 25.0, -25.0, 0.5, 0.0, 0.0, 0.0, 0.0, -25.0,
+    25.0, 0.0, -25.0, 0.5, 0.0, 0.0, 0.0, 0.0, 25.0, -25.0, 0.0, 25.0, 0.5, 25.0,
+    -25.0, 0.0, 0.0, -25.0, 25.0, -25.0, -25.0, 0.0, 0.0, 0.0, 25.0, -25.0,
+    -25.0, 25.0, 25.0, -50.0, 0.0, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.0, 0.0, 0.03
+  }
+};

+ 88 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/PMSM_Motor_TL3_sf_private.h

@@ -0,0 +1,88 @@
+/*
+ * PMSM_Motor_TL3_sf_private.h
+ *
+ * Code generation for model "PMSM_Motor_TL3_sf".
+ *
+ * Model version              : 1.825
+ * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020
+ * C source code generated on : Fri Apr 14 12:51:02 2023
+ *
+ * Target selection: rtwsfcn.tlc
+ * Note: GRT includes extra infrastructure and instrumentation for prototyping
+ * Embedded hardware selection: ARM Compatible->ARM Cortex-M
+ * Emulation hardware selection:
+ *    Differs from embedded hardware (MATLAB Host)
+ * Code generation objectives:
+ *    1. Execution efficiency
+ *    2. RAM efficiency
+ * Validation result: Not run
+ */
+
+#ifndef RTW_HEADER_PMSM_Motor_TL3_sf_private_h_
+#define RTW_HEADER_PMSM_Motor_TL3_sf_private_h_
+#include "rtwtypes.h"
+#include "multiword_types.h"
+#include <math.h>
+#include <stdlib.h>
+#if !defined(ss_VALIDATE_MEMORY)
+#define ss_VALIDATE_MEMORY(S, ptr)     if(!(ptr)) {\
+ ssSetErrorStatus(S, RT_MEMORY_ALLOCATION_ERROR);\
+ }
+#endif
+
+#if !defined(rt_FREE)
+#if !defined(_WIN32)
+#define rt_FREE(ptr)                   if((ptr) != (NULL)) {\
+ free((ptr));\
+ (ptr) = (NULL);\
+ }
+#else
+
+/* Visual and other windows compilers declare free without const */
+#define rt_FREE(ptr)                   if((ptr) != (NULL)) {\
+ free((void *)(ptr));\
+ (ptr) = (NULL);\
+ }
+#endif
+#endif
+
+#ifndef CodeFormat
+#define CodeFormat                     S-Function
+#else
+#undef CodeFormat
+#define CodeFormat                     S-Function
+#endif
+
+#ifndef S_FUNCTION_NAME
+#define S_FUNCTION_NAME                simulink_only_sfcn
+#else
+#undef S_FUNCTION_NAME
+#define S_FUNCTION_NAME                simulink_only_sfcn
+#endif
+
+#ifndef S_FUNCTION_LEVEL
+#define S_FUNCTION_LEVEL               2
+#else
+#undef S_FUNCTION_LEVEL
+#define S_FUNCTION_LEVEL               2
+#endif
+
+#ifndef RTW_GENERATED_S_FUNCTION
+#define RTW_GENERATED_S_FUNCTION
+#endif
+
+#ifndef rtmGetDataMapInfo
+# define rtmGetDataMapInfo(rtm)        NULL
+#endif
+
+#ifndef rtmSetDataMapInfo
+# define rtmSetDataMapInfo(rtm, val)
+#endif
+
+#if !defined(RTW_SFUNCTION_DEFINES)
+#define RTW_SFUNCTION_DEFINES
+#ifndef _RTW_COMMON_DEFINES_
+#define _RTW_COMMON_DEFINES_
+#endif
+#endif
+#endif                             /* RTW_HEADER_PMSM_Motor_TL3_sf_private_h_ */

+ 25 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/PMSM_Motor_TL3_sf_types.h

@@ -0,0 +1,25 @@
+/*
+ * PMSM_Motor_TL3_sf_types.h
+ *
+ * Code generation for model "PMSM_Motor_TL3_sf".
+ *
+ * Model version              : 1.825
+ * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020
+ * C source code generated on : Fri Apr 14 12:51:02 2023
+ *
+ * Target selection: rtwsfcn.tlc
+ * Note: GRT includes extra infrastructure and instrumentation for prototyping
+ * Embedded hardware selection: ARM Compatible->ARM Cortex-M
+ * Emulation hardware selection:
+ *    Differs from embedded hardware (MATLAB Host)
+ * Code generation objectives:
+ *    1. Execution efficiency
+ *    2. RAM efficiency
+ * Validation result: Not run
+ */
+
+#ifndef RTW_HEADER_PMSM_Motor_TL3_sf_types_h_
+#define RTW_HEADER_PMSM_Motor_TL3_sf_types_h_
+
+/* Model Code Variants */
+#endif                               /* RTW_HEADER_PMSM_Motor_TL3_sf_types_h_ */

+ 46 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/PMSM_Motor_TL3_sid.h

@@ -0,0 +1,46 @@
+/*
+ * PMSM_Motor_TL3_sid.h
+ *
+ * Code generation for model "PMSM_Motor_TL3_sf".
+ *
+ * Model version              : 1.825
+ * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020
+ * C source code generated on : Fri Apr 14 12:51:02 2023
+ *
+ * Target selection: rtwsfcn.tlc
+ * Note: GRT includes extra infrastructure and instrumentation for prototyping
+ * Embedded hardware selection: ARM Compatible->ARM Cortex-M
+ * Emulation hardware selection:
+ *    Differs from embedded hardware (MATLAB Host)
+ * Code generation objectives:
+ *    1. Execution efficiency
+ *    2. RAM efficiency
+ * Validation result: Not run
+ *
+ * SOURCES: PMSM_Motor_TL3_sf.c
+ */
+
+/* statically allocated instance data for model: PMSM_Motor_TL3 */
+{
+  {
+    /* Local SimStruct for the generated S-Function */
+    static LocalS slS;
+    LocalS *lS = &slS;
+    ssSetUserData(rts, lS);
+
+    /* block I/O */
+    {
+      static B_PMSM_Motor_TL3_T sfcnB;
+      void *b = (real_T *) &sfcnB;
+      ssSetLocalBlockIO(rts, b);
+      (void) memset(b, 0,
+                    sizeof(B_PMSM_Motor_TL3_T));
+    }
+
+    /* model checksums */
+    ssSetChecksumVal(rts, 0, 3090714017U);
+    ssSetChecksumVal(rts, 1, 3929030705U);
+    ssSetChecksumVal(rts, 2, 1976178041U);
+    ssSetChecksumVal(rts, 3, 3610196154U);
+  }
+}

BIN
Simulink/PMSM_Motor_TL3_sfcn_rtw/buildInfo.mat


BIN
Simulink/PMSM_Motor_TL3_sfcn_rtw/codedescriptor.dmr


BIN
Simulink/PMSM_Motor_TL3_sfcn_rtw/compileInfo.mat


+ 11 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/defines.txt

@@ -0,0 +1,11 @@
+MODEL=PMSM_Motor_TL3
+NUMST=1
+NCSTATES=0
+HAVESTDIO
+CLASSIC_INTERFACE=1
+ALLOCATIONFCN=0
+TID01EQ=0
+ONESTEPFCN=0
+TERMFCN=1
+MULTI_INSTANCE_CODE=0
+INTEGER_CODE=0

+ 212 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/html/PMSM_Motor_TL3_mid_h.html

@@ -0,0 +1,212 @@
+<!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"> * PMSM_Motor_TL3_mid.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 generation for model "PMSM_Motor_TL3_sf".</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.825</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 source code generated on : Fri Apr 14 12:51:02 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: rtwsfcn.tlc</span></td></tr>
+<tr name="11" id="11">
+<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
+<tr name="12" id="12">
+<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * Embedded hardware selection: ARM Compatible-&gt;ARM Cortex-M</span></td></tr>
+<tr name="13" id="13">
+<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> * Emulation hardware selection:</span></td></tr>
+<tr name="14" id="14">
+<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> *    Differs from embedded hardware (MATLAB Host)</span></td></tr>
+<tr name="15" id="15">
+<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Code generation objectives:</span></td></tr>
+<tr name="16" id="16">
+<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> *    1. Execution efficiency</span></td></tr>
+<tr name="17" id="17">
+<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> *    2. RAM efficiency</span></td></tr>
+<tr name="18" id="18">
+<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
+<tr name="19" id="19">
+<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="20" id="20">
+<td><a id="l20" class='ln'>20</a></td><td><span class="ct"> * SOURCES: PMSM_Motor_TL3_sf.c</span></td></tr>
+<tr name="21" id="21">
+<td><a id="l21" class='ln'>21</a></td><td><span class="ct"> */</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="pp">#include "simstruc.h"</span></td></tr>
+<tr name="24" id="24">
+<td><a id="l24" class='ln'>24</a></td><td><span class="pp">#include "PMSM_Motor_TL3_sf.h"</span></td></tr>
+<tr name="25" id="25">
+<td><a id="l25" class='ln'>25</a></td><td><span class="pp">#if</span> <a id="25c5" class="tk">defined</a>(<a id="25c13" class="tk">MATLAB_MEX_FILE</a>) <a id="25c30" class="tk">||</a> <a id="25c33" class="tk">defined</a>(<a id="25c41" class="tk">RT_MALLOC</a>)</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="kw">static</span> <a id="27c8" class="tk">int_T</a> <a id="27c14" class="tk">RegNumInputPorts</a>(<a id="27c31" class="tk">SimStruct</a> <a id="27c41" class="tk">*</a><a id="27c42" class="tk">S</a>, <a id="27c45" class="tk">int_T</a> <a id="27c51" class="tk">nInputPorts</a>)</td></tr>
+<tr name="28" id="28">
+<td><a id="l28" class='ln'>28</a></td><td><span class="br">{</span></td></tr>
+<tr name="29" id="29">
+<td><a id="l29" class='ln'>29</a></td><td>  <a id="29c3" class="tk">_ssSetNumInputPorts</a>(<a id="29c23" class="tk">S</a>,<a id="29c25" class="tk">nInputPorts</a>);</td></tr>
+<tr name="30" id="30">
+<td><a id="l30" class='ln'>30</a></td><td>  <span class="kw">return</span> true;</td></tr>
+<tr name="31" id="31">
+<td><a id="l31" class='ln'>31</a></td><td><span class="br">}</span></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="kw">static</span> <a id="33c8" class="tk">int_T</a> <a id="33c14" class="tk">RegNumOutputPorts</a>(<a id="33c32" class="tk">SimStruct</a> <a id="33c42" class="tk">*</a><a id="33c43" class="tk">S</a>, <a id="33c46" class="tk">int_T</a> <a id="33c52" class="tk">nOutputPorts</a>)</td></tr>
+<tr name="34" id="34">
+<td><a id="l34" class='ln'>34</a></td><td><span class="br">{</span></td></tr>
+<tr name="35" id="35">
+<td><a id="l35" class='ln'>35</a></td><td>  <a id="35c3" class="tk">_ssSetNumOutputPorts</a>(<a id="35c24" class="tk">S</a>,<a id="35c26" class="tk">nOutputPorts</a>);</td></tr>
+<tr name="36" id="36">
+<td><a id="l36" class='ln'>36</a></td><td>  <span class="kw">return</span> true;</td></tr>
+<tr name="37" id="37">
+<td><a id="l37" class='ln'>37</a></td><td><span class="br">}</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="kw">static</span> <a id="39c8" class="tk">int_T</a> <a id="39c14" class="tk">FcnSetErrorStatus</a>(<span class="kw">const</span> <a id="39c38" class="tk">SimStruct</a> <a id="39c48" class="tk">*</a><a id="39c49" class="tk">S</a>, <a id="39c52" class="tk">DTypeId</a> <a id="39c60" class="tk">arg2</a>)</td></tr>
+<tr name="40" id="40">
+<td><a id="l40" class='ln'>40</a></td><td><span class="br">{</span></td></tr>
+<tr name="41" id="41">
+<td><a id="l41" class='ln'>41</a></td><td>  <span class="kw">static</span> <span class="kw">char</span> <a id="41c15" class="tk">msg</a>[256];</td></tr>
+<tr name="42" id="42">
+<td><a id="l42" class='ln'>42</a></td><td>  <span class="kw">if</span> (<a id="42c7" class="tk">strlen</a>(<a id="42c14" class="tk">ssGetModelName</a>(<a id="42c29" class="tk">S</a>)) <a id="42c33" class="tk">&lt;</a> 128) <span class="br">{</span></td></tr>
+<tr name="43" id="43">
+<td><a id="l43" class='ln'>43</a></td><td>    <a id="43c5" class="tk">sprintf</a>(<a id="43c13" class="tk">msg</a>,</td></tr>
+<tr name="44" id="44">
+<td><a id="l44" class='ln'>44</a></td><td>            "S-function %s does not have a tlc file. It cannot use macros that access regDataType field in simstruct.",</td></tr>
+<tr name="45" id="45">
+<td><a id="l45" class='ln'>45</a></td><td>            <a id="45c13" class="tk">ssGetModelName</a>(<a id="45c28" class="tk">S</a>));</td></tr>
+<tr name="46" id="46">
+<td><a id="l46" class='ln'>46</a></td><td>  <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="47" id="47">
+<td><a id="l47" class='ln'>47</a></td><td>    <a id="47c5" class="tk">sprintf</a>(<a id="47c13" class="tk">msg</a>,</td></tr>
+<tr name="48" id="48">
+<td><a id="l48" class='ln'>48</a></td><td>            "A S-function does not have a tlc file. It cannot use macros that access regDataType field in simstruct.");</td></tr>
+<tr name="49" id="49">
+<td><a id="l49" class='ln'>49</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="50" id="50">
+<td><a id="l50" class='ln'>50</a></td><td></td></tr>
+<tr name="51" id="51">
+<td><a id="l51" class='ln'>51</a></td><td>  <a id="51c3" class="tk">ssSetErrorStatus</a>(<a id="51c20" class="tk">S</a>, <a id="51c23" class="tk">msg</a>);</td></tr>
+<tr name="52" id="52">
+<td><a id="l52" class='ln'>52</a></td><td>  <a id="52c3" class="tk">UNUSED_PARAMETER</a>(<a id="52c20" class="tk">arg2</a>);</td></tr>
+<tr name="53" id="53">
+<td><a id="l53" class='ln'>53</a></td><td>  <span class="kw">return</span> 0;</td></tr>
+<tr name="54" id="54">
+<td><a id="l54" class='ln'>54</a></td><td><span class="br">}</span></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><span class="kw">static</span> <span class="kw">void</span> <a id="56c13" class="tk">*</a> <a id="56c15" class="tk">FcnSetErrorStatusWithReturnPtr</a>(<span class="kw">const</span> <a id="56c52" class="tk">SimStruct</a> <a id="56c62" class="tk">*</a><a id="56c63" class="tk">S</a>, <a id="56c66" class="tk">DTypeId</a> <a id="56c74" class="tk">arg2</a>)</td></tr>
+<tr name="57" id="57">
+<td><a id="l57" class='ln'>57</a></td><td><span class="br">{</span></td></tr>
+<tr name="58" id="58">
+<td><a id="l58" class='ln'>58</a></td><td>  <a id="58c3" class="tk">FcnSetErrorStatus</a>(<a id="58c21" class="tk">S</a>,0);</td></tr>
+<tr name="59" id="59">
+<td><a id="l59" class='ln'>59</a></td><td>  <a id="59c3" class="tk">UNUSED_PARAMETER</a>(<a id="59c20" class="tk">arg2</a>);</td></tr>
+<tr name="60" id="60">
+<td><a id="l60" class='ln'>60</a></td><td>  <span class="kw">return</span> 0;</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><span class="kw">static</span> <a id="63c8" class="tk">int_T</a> <a id="63c14" class="tk">FcnSetErrorStatusWithArgPtr</a>(<span class="kw">const</span> <a id="63c48" class="tk">SimStruct</a> <a id="63c58" class="tk">*</a><a id="63c59" class="tk">S</a>, <span class="kw">const</span> <span class="kw">void</span><a id="63c72" class="tk">*</a> <a id="63c74" class="tk">arg2</a>)</td></tr>
+<tr name="64" id="64">
+<td><a id="l64" class='ln'>64</a></td><td><span class="br">{</span></td></tr>
+<tr name="65" id="65">
+<td><a id="l65" class='ln'>65</a></td><td>  <a id="65c3" class="tk">FcnSetErrorStatus</a>(<a id="65c21" class="tk">S</a>,0);</td></tr>
+<tr name="66" id="66">
+<td><a id="l66" class='ln'>66</a></td><td>  <a id="66c3" class="tk">UNUSED_PARAMETER</a>(<a id="66c20" class="tk">arg2</a>);</td></tr>
+<tr name="67" id="67">
+<td><a id="l67" class='ln'>67</a></td><td>  <span class="kw">return</span> 0;</td></tr>
+<tr name="68" id="68">
+<td><a id="l68" class='ln'>68</a></td><td><span class="br">}</span></td></tr>
+<tr name="69" id="69">
+<td><a id="l69" class='ln'>69</a></td><td></td></tr>
+<tr name="70" id="70">
+<td><a id="l70" class='ln'>70</a></td><td><span class="pp">#endif</span></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">/* Instance data for model: PMSM_Motor_TL3 */</span></td></tr>
+<tr name="73" id="73">
+<td><a id="l73" class='ln'>73</a></td><td><span class="kw">void</span> <a id="73c6" class="tk">*</a><a id="73c7" class="tk">PMSM_Motor_TL3_malloc</a>(<a id="73c29" class="tk">SimStruct</a> <a id="73c39" class="tk">*</a><a id="73c40" class="tk">rts</a>)</td></tr>
+<tr name="74" id="74">
+<td><a id="l74" class='ln'>74</a></td><td><span class="br">{</span></td></tr>
+<tr name="75" id="75">
+<td><a id="l75" class='ln'>75</a></td><td>  <span class="ct">/* Local SimStruct for the generated S-Function */</span></td></tr>
+<tr name="76" id="76">
+<td><a id="l76" class='ln'>76</a></td><td>  <a id="76c3" class="tk">LocalS</a> <a id="76c10" class="tk">*</a><a id="76c11" class="tk">lS</a> = (<a id="76c17" class="tk">LocalS</a> <a id="76c24" class="tk">*</a>) <a id="76c27" class="tk">malloc</a>(<span class="kw">sizeof</span>(<a id="76c41" class="tk">LocalS</a>));</td></tr>
+<tr name="77" id="77">
+<td><a id="l77" class='ln'>77</a></td><td>  <a id="77c3" class="tk">ss_VALIDATE_MEMORY</a>(<a id="77c22" class="tk">rts</a>,<a id="77c26" class="tk">lS</a>);</td></tr>
+<tr name="78" id="78">
+<td><a id="l78" class='ln'>78</a></td><td>  (<span class="kw">void</span>) <a id="78c10" class="tk">memset</a>((<span class="kw">char</span> <a id="78c23" class="tk">*</a>) <a id="78c26" class="tk">lS</a>, 0,</td></tr>
+<tr name="79" id="79">
+<td><a id="l79" class='ln'>79</a></td><td>                <span class="kw">sizeof</span>(<a id="79c24" class="tk">LocalS</a>));</td></tr>
+<tr name="80" id="80">
+<td><a id="l80" class='ln'>80</a></td><td>  <a id="80c3" class="tk">ssSetUserData</a>(<a id="80c17" class="tk">rts</a>, <a id="80c22" class="tk">lS</a>);</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">/* block I/O */</span></td></tr>
+<tr name="83" id="83">
+<td><a id="l83" class='ln'>83</a></td><td>  <span class="br">{</span></td></tr>
+<tr name="84" id="84">
+<td><a id="l84" class='ln'>84</a></td><td>    <span class="kw">void</span> <a id="84c10" class="tk">*</a><a id="84c11" class="tk">b</a> = <a id="84c15" class="tk">malloc</a>(<span class="kw">sizeof</span>(<a id="84c29" class="tk">B_PMSM_Motor_TL3_T</a>));</td></tr>
+<tr name="85" id="85">
+<td><a id="l85" class='ln'>85</a></td><td>    <a id="85c5" class="tk">ss_VALIDATE_MEMORY</a>(<a id="85c24" class="tk">rts</a>,<a id="85c28" class="tk">b</a>);</td></tr>
+<tr name="86" id="86">
+<td><a id="l86" class='ln'>86</a></td><td>    <a id="86c5" class="tk">ssSetLocalBlockIO</a>(<a id="86c23" class="tk">rts</a>, <a id="86c28" class="tk">b</a>);</td></tr>
+<tr name="87" id="87">
+<td><a id="l87" class='ln'>87</a></td><td>    (<span class="kw">void</span>) <a id="87c12" class="tk">memset</a>(<a id="87c19" class="tk">b</a>, 0,</td></tr>
+<tr name="88" id="88">
+<td><a id="l88" class='ln'>88</a></td><td>                  <span class="kw">sizeof</span>(<a id="88c26" class="tk">B_PMSM_Motor_TL3_T</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></td></tr>
+<tr name="91" id="91">
+<td><a id="l91" class='ln'>91</a></td><td>  <span class="ct">/* model checksums */</span></td></tr>
+<tr name="92" id="92">
+<td><a id="l92" class='ln'>92</a></td><td>  <a id="92c3" class="tk">ssSetChecksumVal</a>(<a id="92c20" class="tk">rts</a>, 0, 3090714017U);</td></tr>
+<tr name="93" id="93">
+<td><a id="l93" class='ln'>93</a></td><td>  <a id="93c3" class="tk">ssSetChecksumVal</a>(<a id="93c20" class="tk">rts</a>, 1, 3929030705U);</td></tr>
+<tr name="94" id="94">
+<td><a id="l94" class='ln'>94</a></td><td>  <a id="94c3" class="tk">ssSetChecksumVal</a>(<a id="94c20" class="tk">rts</a>, 2, 1976178041U);</td></tr>
+<tr name="95" id="95">
+<td><a id="l95" class='ln'>95</a></td><td>  <a id="95c3" class="tk">ssSetChecksumVal</a>(<a id="95c20" class="tk">rts</a>, 3, 3610196154U);</td></tr>
+<tr name="96" id="96">
+<td><a id="l96" class='ln'>96</a></td><td>  <span class="kw">return</span> (<a id="96c11" class="tk">NULL</a>);</td></tr>
+<tr name="97" id="97">
+<td><a id="l97" class='ln'>97</a></td><td><span class="br">}</span></td></tr>
+<tr name="98" id="98">
+<td><a id="l98" class='ln'>98</a></td><td></td></tr>
+</table>
+</pre>
+</body>
+</html>

+ 2048 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/html/PMSM_Motor_TL3_sf_c.html

@@ -0,0 +1,2048 @@
+<!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"> * PMSM_Motor_TL3_sf.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 generation for model "PMSM_Motor_TL3_sf".</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.825</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 source code generated on : Fri Apr 14 12:51:02 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: rtwsfcn.tlc</span></td></tr>
+<tr name="11" id="11">
+<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
+<tr name="12" id="12">
+<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * Embedded hardware selection: ARM Compatible-&gt;ARM Cortex-M</span></td></tr>
+<tr name="13" id="13">
+<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> * Emulation hardware selection:</span></td></tr>
+<tr name="14" id="14">
+<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> *    Differs from embedded hardware (MATLAB Host)</span></td></tr>
+<tr name="15" id="15">
+<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Code generation objectives:</span></td></tr>
+<tr name="16" id="16">
+<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> *    1. Execution efficiency</span></td></tr>
+<tr name="17" id="17">
+<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> *    2. RAM efficiency</span></td></tr>
+<tr name="18" id="18">
+<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
+<tr name="19" id="19">
+<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> */</span></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="pp">#include &lt;math.h&gt;</span></td></tr>
+<tr name="22" id="22">
+<td><a id="l22" class='ln'>22</a></td><td><span class="pp">#include "PMSM_Motor_TL3_sf.h"</span></td></tr>
+<tr name="23" id="23">
+<td><a id="l23" class='ln'>23</a></td><td><span class="pp">#include "PMSM_Motor_TL3_sf_private.h"</span></td></tr>
+<tr name="24" id="24">
+<td><a id="l24" class='ln'>24</a></td><td><span class="pp">#include "simstruc.h"</span></td></tr>
+<tr name="25" id="25">
+<td><a id="l25" class='ln'>25</a></td><td><span class="pp">#include "fixedpoint.h"</span></td></tr>
+<tr name="26" id="26">
+<td><a id="l26" class='ln'>26</a></td><td><span class="pp">#if</span> <a id="26c5" class="tk">defined</a>(<a id="26c13" class="tk">RT_MALLOC</a>) <a id="26c24" class="tk">||</a> <a id="26c27" class="tk">defined</a>(<a id="26c35" class="tk">MATLAB_MEX_FILE</a>)</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="kw">extern</span> <span class="kw">void</span> <a id="28c13" class="tk">*</a><a id="28c14" class="tk">PMSM_Motor_TL3_malloc</a>(<a id="28c36" class="tk">SimStruct</a> <a id="28c46" class="tk">*</a><a id="28c47" class="tk">S</a>);</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="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="pp">#ifndef</span> <a id="32c9" class="tk">__RTW_UTFREE__</a></td></tr>
+<tr name="33" id="33">
+<td><a id="l33" class='ln'>33</a></td><td><span class="pp">#if</span> <a id="33c5" class="tk">defined</a> (<a id="33c14" class="tk">MATLAB_MEX_FILE</a>)</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="kw">extern</span> <span class="kw">void</span> <a id="35c13" class="tk">*</a> <a id="35c15" class="tk">utMalloc</a>(<a id="35c24" class="tk">size_t</a>);</td></tr>
+<tr name="36" id="36">
+<td><a id="l36" class='ln'>36</a></td><td><span class="kw">extern</span> <span class="kw">void</span> <a id="36c13" class="tk">utFree</a>(<span class="kw">void</span> <a id="36c25" class="tk">*</a>);</td></tr>
+<tr name="37" id="37">
+<td><a id="l37" class='ln'>37</a></td><td></td></tr>
+<tr name="38" id="38">
+<td><a id="l38" class='ln'>38</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="39" id="39">
+<td><a id="l39" class='ln'>39</a></td><td><span class="pp">#endif</span>                                 <span class="ct">/* #ifndef __RTW_UTFREE__ */</span></td></tr>
+<tr name="40" id="40">
+<td><a id="l40" class='ln'>40</a></td><td></td></tr>
+<tr name="41" id="41">
+<td><a id="l41" class='ln'>41</a></td><td><span class="ct">/* Forward declaration for local functions */</span></td></tr>
+<tr name="42" id="42">
+<td><a id="l42" class='ln'>42</a></td><td><span class="kw">static</span> <a id="42c8" class="tk">real_T</a> <a id="42c15" class="tk">PMSM_Motor_TL3_rt_atan2d_snf</a>(<a id="42c44" class="tk">real_T</a> <a id="42c51" class="tk">u0</a>, <a id="42c55" class="tk">real_T</a> <a id="42c62" class="tk">u1</a>);</td></tr>
+<tr name="43" id="43">
+<td><a id="l43" class='ln'>43</a></td><td></td></tr>
+<tr name="44" id="44">
+<td><a id="l44" class='ln'>44</a></td><td><span class="pp">#if</span> <a id="44c5" class="tk">defined</a>(<a id="44c13" class="tk">MATLAB_MEX_FILE</a>)</td></tr>
+<tr name="45" id="45">
+<td><a id="l45" class='ln'>45</a></td><td><span class="pp">#include "rt_nonfinite.c"</span></td></tr>
+<tr name="46" id="46">
+<td><a id="l46" class='ln'>46</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="47" id="47">
+<td><a id="l47" class='ln'>47</a></td><td></td></tr>
+<tr name="48" id="48">
+<td><a id="l48" class='ln'>48</a></td><td><span class="kw">static</span> <span class="kw">const</span> <a id="48c14" class="tk">char_T</a> <a id="48c21" class="tk">*</a><a id="48c22" class="tk">RT_MEMORY_ALLOCATION_ERROR</a> =</td></tr>
+<tr name="49" id="49">
+<td><a id="l49" class='ln'>49</a></td><td>  "memory allocation error in generated S-Function";</td></tr>
+<tr name="50" id="50">
+<td><a id="l50" class='ln'>50</a></td><td><span class="kw">static</span> <a id="50c8" class="tk">real_T</a> <a id="50c15" class="tk">PMSM_Motor_TL3_rt_atan2d_snf</a>(<a id="50c44" class="tk">real_T</a> <a id="50c51" class="tk">u0</a>, <a id="50c55" class="tk">real_T</a> <a id="50c62" class="tk">u1</a>)</td></tr>
+<tr name="51" id="51">
+<td><a id="l51" class='ln'>51</a></td><td><span class="br">{</span></td></tr>
+<tr name="52" id="52">
+<td><a id="l52" class='ln'>52</a></td><td>  <a id="52c3" class="tk">real_T</a> <a id="52c10" class="tk">y</a>;</td></tr>
+<tr name="53" id="53">
+<td><a id="l53" class='ln'>53</a></td><td>  <a id="53c3" class="tk">int32_T</a> <a id="53c11" class="tk">u0_0</a>;</td></tr>
+<tr name="54" id="54">
+<td><a id="l54" class='ln'>54</a></td><td>  <a id="54c3" class="tk">int32_T</a> <a id="54c11" class="tk">u1_0</a>;</td></tr>
+<tr name="55" id="55">
+<td><a id="l55" class='ln'>55</a></td><td>  <span class="kw">if</span> (<a id="55c7" class="tk">rtIsNaN</a>(<a id="55c15" class="tk">u0</a>) <a id="55c19" class="tk">||</a> <a id="55c22" class="tk">rtIsNaN</a>(<a id="55c30" class="tk">u1</a>)) <span class="br">{</span></td></tr>
+<tr name="56" id="56">
+<td><a id="l56" class='ln'>56</a></td><td>    <a id="56c5" class="tk">y</a> = (<a id="56c10" class="tk">rtNaN</a>);</td></tr>
+<tr name="57" id="57">
+<td><a id="l57" class='ln'>57</a></td><td>  <span class="br">}</span> <span class="kw">else</span> <span class="kw">if</span> (<a id="57c14" class="tk">rtIsInf</a>(<a id="57c22" class="tk">u0</a>) <a id="57c26" class="tk">&amp;&amp;</a> <a id="57c29" class="tk">rtIsInf</a>(<a id="57c37" class="tk">u1</a>)) <span class="br">{</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="58c9" class="tk">u0</a> <a id="58c12" class="tk">&gt;</a> 0.0) <span class="br">{</span></td></tr>
+<tr name="59" id="59">
+<td><a id="l59" class='ln'>59</a></td><td>      <a id="59c7" class="tk">u0_0</a> = 1;</td></tr>
+<tr name="60" id="60">
+<td><a id="l60" class='ln'>60</a></td><td>    <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="61" id="61">
+<td><a id="l61" class='ln'>61</a></td><td>      <a id="61c7" class="tk">u0_0</a> = <a id="61c14" class="tk">-</a>1;</td></tr>
+<tr name="62" id="62">
+<td><a id="l62" class='ln'>62</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="63" id="63">
+<td><a id="l63" class='ln'>63</a></td><td></td></tr>
+<tr name="64" id="64">
+<td><a id="l64" class='ln'>64</a></td><td>    <span class="kw">if</span> (<a id="64c9" class="tk">u1</a> <a id="64c12" class="tk">&gt;</a> 0.0) <span class="br">{</span></td></tr>
+<tr name="65" id="65">
+<td><a id="l65" class='ln'>65</a></td><td>      <a id="65c7" class="tk">u1_0</a> = 1;</td></tr>
+<tr name="66" id="66">
+<td><a id="l66" class='ln'>66</a></td><td>    <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="67" id="67">
+<td><a id="l67" class='ln'>67</a></td><td>      <a id="67c7" class="tk">u1_0</a> = <a id="67c14" class="tk">-</a>1;</td></tr>
+<tr name="68" id="68">
+<td><a id="l68" class='ln'>68</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="69" id="69">
+<td><a id="l69" class='ln'>69</a></td><td></td></tr>
+<tr name="70" id="70">
+<td><a id="l70" class='ln'>70</a></td><td>    <a id="70c5" class="tk">y</a> = <a id="70c9" class="tk">atan2</a>(<a id="70c15" class="tk">u0_0</a>, <a id="70c21" class="tk">u1_0</a>);</td></tr>
+<tr name="71" id="71">
+<td><a id="l71" class='ln'>71</a></td><td>  <span class="br">}</span> <span class="kw">else</span> <span class="kw">if</span> (<a id="71c14" class="tk">u1</a> <a id="71c17" class="tk">==</a> 0.0) <span class="br">{</span></td></tr>
+<tr name="72" id="72">
+<td><a id="l72" class='ln'>72</a></td><td>    <span class="kw">if</span> (<a id="72c9" class="tk">u0</a> <a id="72c12" class="tk">&gt;</a> 0.0) <span class="br">{</span></td></tr>
+<tr name="73" id="73">
+<td><a id="l73" class='ln'>73</a></td><td>      <a id="73c7" class="tk">y</a> = <a id="73c11" class="tk">RT_PI</a> <a id="73c17" class="tk">/</a> 2.0;</td></tr>
+<tr name="74" id="74">
+<td><a id="l74" class='ln'>74</a></td><td>    <span class="br">}</span> <span class="kw">else</span> <span class="kw">if</span> (<a id="74c16" class="tk">u0</a> <a id="74c19" class="tk">&lt;</a> 0.0) <span class="br">{</span></td></tr>
+<tr name="75" id="75">
+<td><a id="l75" class='ln'>75</a></td><td>      <a id="75c7" class="tk">y</a> = <a id="75c11" class="tk">-</a>(<a id="75c13" class="tk">RT_PI</a> <a id="75c19" class="tk">/</a> 2.0);</td></tr>
+<tr name="76" id="76">
+<td><a id="l76" class='ln'>76</a></td><td>    <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="77" id="77">
+<td><a id="l77" class='ln'>77</a></td><td>      <a id="77c7" class="tk">y</a> = 0.0;</td></tr>
+<tr name="78" id="78">
+<td><a id="l78" class='ln'>78</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="79" id="79">
+<td><a id="l79" class='ln'>79</a></td><td>  <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="80" id="80">
+<td><a id="l80" class='ln'>80</a></td><td>    <a id="80c5" class="tk">y</a> = <a id="80c9" class="tk">atan2</a>(<a id="80c15" class="tk">u0</a>, <a id="80c19" class="tk">u1</a>);</td></tr>
+<tr name="81" id="81">
+<td><a id="l81" class='ln'>81</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="82" id="82">
+<td><a id="l82" class='ln'>82</a></td><td></td></tr>
+<tr name="83" id="83">
+<td><a id="l83" class='ln'>83</a></td><td>  <span class="kw">return</span> <a id="83c10" class="tk">y</a>;</td></tr>
+<tr name="84" id="84">
+<td><a id="l84" class='ln'>84</a></td><td><span class="br">}</span></td></tr>
+<tr name="85" id="85">
+<td><a id="l85" class='ln'>85</a></td><td></td></tr>
+<tr name="86" id="86">
+<td><a id="l86" class='ln'>86</a></td><td><span class="ct">/* System initialize for root system: '&lt;Root&gt;' */</span></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">MDL_INITIALIZE_CONDITIONS</a></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="kw">static</span> <span class="kw">void</span> <a id="89c13" class="tk">mdlInitializeConditions</a>(<a id="89c37" class="tk">SimStruct</a> <a id="89c47" class="tk">*</a><a id="89c48" class="tk">S</a>)</td></tr>
+<tr name="90" id="90">
+<td><a id="l90" class='ln'>90</a></td><td><span class="br">{</span></td></tr>
+<tr name="91" id="91">
+<td><a id="l91" class='ln'>91</a></td><td>  <span class="kw">if</span> (<a id="91c7" class="tk">ssIsFirstInitCond</a>(<a id="91c25" class="tk">S</a>)) <span class="br">{</span></td></tr>
+<tr name="92" id="92">
+<td><a id="l92" class='ln'>92</a></td><td>    <a id="92c5" class="tk">B_PMSM_Motor_TL3_T</a> <a id="92c24" class="tk">*</a><a id="92c25" class="tk">_rtB</a>;</td></tr>
+<tr name="93" id="93">
+<td><a id="l93" class='ln'>93</a></td><td>    <a id="93c5" class="tk">_rtB</a> = ((<a id="93c14" class="tk">B_PMSM_Motor_TL3_T</a> <a id="93c33" class="tk">*</a>) <a id="93c36" class="tk">ssGetLocalBlockIO</a>(<a id="93c54" class="tk">S</a>));</td></tr>
+<tr name="94" id="94">
+<td><a id="l94" class='ln'>94</a></td><td></td></tr>
+<tr name="95" id="95">
+<td><a id="l95" class='ln'>95</a></td><td>    <span class="ct">/* InitializeConditions for DiscreteIntegrator: '&lt;S11&gt;/Discrete-Time Integrator1' */</span></td></tr>
+<tr name="96" id="96">
+<td><a id="l96" class='ln'>96</a></td><td>    ((<a id="96c7" class="tk">real_T</a> <a id="96c14" class="tk">*</a>)<a id="96c16" class="tk">ssGetDWork</a>(<a id="96c27" class="tk">S</a>, 0))[0] = 1.5707963267948966;</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">/* InitializeConditions for DiscreteIntegrator: '&lt;S18&gt;/Discrete-Time Integrator' */</span></td></tr>
+<tr name="99" id="99">
+<td><a id="l99" class='ln'>99</a></td><td>    ((<a id="99c7" class="tk">real_T</a> <a id="99c14" class="tk">*</a>)<a id="99c16" class="tk">ssGetDWork</a>(<a id="99c27" class="tk">S</a>, 1))[0] = 0.0;</td></tr>
+<tr name="100" id="100">
+<td><a id="l100" class='ln'>100</a></td><td></td></tr>
+<tr name="101" id="101">
+<td><a id="l101" class='ln'>101</a></td><td>    <span class="ct">/* InitializeConditions for DiscreteIntegrator: '&lt;S17&gt;/Discrete-Time Integrator' */</span></td></tr>
+<tr name="102" id="102">
+<td><a id="l102" class='ln'>102</a></td><td>    ((<a id="102c7" class="tk">real_T</a> <a id="102c14" class="tk">*</a>)<a id="102c16" class="tk">ssGetDWork</a>(<a id="102c27" class="tk">S</a>, 2))[0] = 0.0;</td></tr>
+<tr name="103" id="103">
+<td><a id="l103" class='ln'>103</a></td><td></td></tr>
+<tr name="104" id="104">
+<td><a id="l104" class='ln'>104</a></td><td>    <span class="ct">/* InitializeConditions for S-Function (sfun_spssw_discc): '&lt;S20&gt;/State-Space' incorporates:</span></td></tr>
+<tr name="105" id="105">
+<td><a id="l105" class='ln'>105</a></td><td><span class="ct">     *  Constant: '&lt;S19&gt;/Constant'</span></td></tr>
+<tr name="106" id="106">
+<td><a id="l106" class='ln'>106</a></td><td><span class="ct">     */</span></td></tr>
+<tr name="107" id="107">
+<td><a id="l107" class='ln'>107</a></td><td>    <span class="br">{</span></td></tr>
+<tr name="108" id="108">
+<td><a id="l108" class='ln'>108</a></td><td>      <a id="108c7" class="tk">int32_T</a> <a id="108c15" class="tk">i</a>, <a id="108c18" class="tk">j</a>;</td></tr>
+<tr name="109" id="109">
+<td><a id="l109" class='ln'>109</a></td><td>      <a id="109c7" class="tk">real_T</a> <a id="109c14" class="tk">*</a><a id="109c15" class="tk">Ds</a> = (<a id="109c21" class="tk">real_T</a><a id="109c27" class="tk">*</a>)((<span class="kw">void</span><a id="109c35" class="tk">*</a><a id="109c36" class="tk">*</a>) <a id="109c39" class="tk">ssGetDWork</a>(<a id="109c50" class="tk">S</a>, 4))[3];</td></tr>
+<tr name="110" id="110">
+<td><a id="l110" class='ln'>110</a></td><td></td></tr>
+<tr name="111" id="111">
+<td><a id="l111" class='ln'>111</a></td><td>      <span class="ct">/* Copy and transpose D */</span></td></tr>
+<tr name="112" id="112">
+<td><a id="l112" class='ln'>112</a></td><td>      <span class="kw">for</span> (<a id="112c12" class="tk">i</a>=0; <a id="112c17" class="tk">i</a><a id="112c18" class="tk">&lt;</a>9; <a id="112c22" class="tk">i</a><a id="112c23" class="tk">++</a>) <span class="br">{</span></td></tr>
+<tr name="113" id="113">
+<td><a id="l113" class='ln'>113</a></td><td>        <span class="kw">for</span> (<a id="113c14" class="tk">j</a>=0; <a id="113c19" class="tk">j</a><a id="113c20" class="tk">&lt;</a>9; <a id="113c24" class="tk">j</a><a id="113c25" class="tk">++</a>)</td></tr>
+<tr name="114" id="114">
+<td><a id="l114" class='ln'>114</a></td><td>          <a id="114c11" class="tk">Ds</a>[<a id="114c14" class="tk">i</a><a id="114c15" class="tk">*</a>9 <a id="114c18" class="tk">+</a> <a id="114c20" class="tk">j</a>] = (<a id="114c26" class="tk">PMSM_Motor_TL3_ConstP</a>.<a id="114c48" class="tk">StateSpace_DS_param</a>[<a id="114c68" class="tk">i</a> <a id="114c70" class="tk">+</a> <a id="114c72" class="tk">j</a><a id="114c73" class="tk">*</a>9]);</td></tr>
+<tr name="115" id="115">
+<td><a id="l115" class='ln'>115</a></td><td>      <span class="br">}</span></td></tr>
+<tr name="116" id="116">
+<td><a id="l116" class='ln'>116</a></td><td></td></tr>
+<tr name="117" id="117">
+<td><a id="l117" class='ln'>117</a></td><td>      <span class="br">{</span></td></tr>
+<tr name="118" id="118">
+<td><a id="l118" class='ln'>118</a></td><td>        <span class="ct">/* Switches work vectors */</span></td></tr>
+<tr name="119" id="119">
+<td><a id="l119" class='ln'>119</a></td><td>        <a id="119c9" class="tk">int_T</a> <a id="119c15" class="tk">*</a><a id="119c16" class="tk">switch_status</a> = (<a id="119c33" class="tk">int_T</a><a id="119c38" class="tk">*</a>) ((<span class="kw">void</span><a id="119c47" class="tk">*</a><a id="119c48" class="tk">*</a>) <a id="119c51" class="tk">ssGetDWork</a>(<a id="119c62" class="tk">S</a>, 4))[9];</td></tr>
+<tr name="120" id="120">
+<td><a id="l120" class='ln'>120</a></td><td>        <a id="120c9" class="tk">int_T</a> <a id="120c15" class="tk">*</a><a id="120c16" class="tk">gState</a> = (<a id="120c26" class="tk">int_T</a><a id="120c31" class="tk">*</a>)((<span class="kw">void</span><a id="120c39" class="tk">*</a><a id="120c40" class="tk">*</a>) <a id="120c43" class="tk">ssGetDWork</a>(<a id="120c54" class="tk">S</a>, 4))[12];</td></tr>
+<tr name="121" id="121">
+<td><a id="l121" class='ln'>121</a></td><td>        <a id="121c9" class="tk">real_T</a> <a id="121c16" class="tk">*</a><a id="121c17" class="tk">yswitch</a> = (<a id="121c28" class="tk">real_T</a><a id="121c34" class="tk">*</a>)((<span class="kw">void</span><a id="121c42" class="tk">*</a><a id="121c43" class="tk">*</a>) <a id="121c46" class="tk">ssGetDWork</a>(<a id="121c57" class="tk">S</a>, 4))[19];</td></tr>
+<tr name="122" id="122">
+<td><a id="l122" class='ln'>122</a></td><td>        <a id="122c9" class="tk">int_T</a> <a id="122c15" class="tk">*</a><a id="122c16" class="tk">switchTypes</a> = (<a id="122c31" class="tk">int_T</a><a id="122c36" class="tk">*</a>)((<span class="kw">void</span><a id="122c44" class="tk">*</a><a id="122c45" class="tk">*</a>) <a id="122c48" class="tk">ssGetDWork</a>(<a id="122c59" class="tk">S</a>, 4))[20];</td></tr>
+<tr name="123" id="123">
+<td><a id="l123" class='ln'>123</a></td><td>        <a id="123c9" class="tk">int_T</a> <a id="123c15" class="tk">*</a><a id="123c16" class="tk">idxOutSw</a> = (<a id="123c28" class="tk">int_T</a><a id="123c33" class="tk">*</a>)((<span class="kw">void</span><a id="123c41" class="tk">*</a><a id="123c42" class="tk">*</a>) <a id="123c45" class="tk">ssGetDWork</a>(<a id="123c56" class="tk">S</a>, 4))[21];</td></tr>
+<tr name="124" id="124">
+<td><a id="l124" class='ln'>124</a></td><td>        <a id="124c9" class="tk">int_T</a> <a id="124c15" class="tk">*</a><a id="124c16" class="tk">switch_status_init</a> = (<a id="124c38" class="tk">int_T</a><a id="124c43" class="tk">*</a>) ((<span class="kw">void</span><a id="124c52" class="tk">*</a><a id="124c53" class="tk">*</a>) <a id="124c56" class="tk">ssGetDWork</a>(<a id="124c67" class="tk">S</a>, 4))[10];</td></tr>
+<tr name="125" id="125">
+<td><a id="l125" class='ln'>125</a></td><td></td></tr>
+<tr name="126" id="126">
+<td><a id="l126" class='ln'>126</a></td><td>        <span class="ct">/* Initialize work vectors */</span></td></tr>
+<tr name="127" id="127">
+<td><a id="l127" class='ln'>127</a></td><td>        <a id="127c9" class="tk">switch_status</a>[0] = 0;</td></tr>
+<tr name="128" id="128">
+<td><a id="l128" class='ln'>128</a></td><td>        <a id="128c9" class="tk">switch_status_init</a>[0] = 0;</td></tr>
+<tr name="129" id="129">
+<td><a id="l129" class='ln'>129</a></td><td>        <a id="129c9" class="tk">gState</a>[0] = (<a id="129c22" class="tk">int_T</a>) 0.0;</td></tr>
+<tr name="130" id="130">
+<td><a id="l130" class='ln'>130</a></td><td>        <a id="130c9" class="tk">yswitch</a>[0] = 1<a id="130c23" class="tk">/</a>0.001;</td></tr>
+<tr name="131" id="131">
+<td><a id="l131" class='ln'>131</a></td><td>        <a id="131c9" class="tk">switchTypes</a>[0] = (<a id="131c27" class="tk">int_T</a>)7.0;</td></tr>
+<tr name="132" id="132">
+<td><a id="l132" class='ln'>132</a></td><td>        <a id="132c9" class="tk">idxOutSw</a>[0] = ((<a id="132c25" class="tk">int_T</a>)0.0) <a id="132c36" class="tk">-</a> 1;</td></tr>
+<tr name="133" id="133">
+<td><a id="l133" class='ln'>133</a></td><td>        <a id="133c9" class="tk">switch_status</a>[1] = 0;</td></tr>
+<tr name="134" id="134">
+<td><a id="l134" class='ln'>134</a></td><td>        <a id="134c9" class="tk">switch_status_init</a>[1] = 0;</td></tr>
+<tr name="135" id="135">
+<td><a id="l135" class='ln'>135</a></td><td>        <a id="135c9" class="tk">gState</a>[1] = (<a id="135c22" class="tk">int_T</a>) 0.0;</td></tr>
+<tr name="136" id="136">
+<td><a id="l136" class='ln'>136</a></td><td>        <a id="136c9" class="tk">yswitch</a>[1] = 1<a id="136c23" class="tk">/</a>0.001;</td></tr>
+<tr name="137" id="137">
+<td><a id="l137" class='ln'>137</a></td><td>        <a id="137c9" class="tk">switchTypes</a>[1] = (<a id="137c27" class="tk">int_T</a>)7.0;</td></tr>
+<tr name="138" id="138">
+<td><a id="l138" class='ln'>138</a></td><td>        <a id="138c9" class="tk">idxOutSw</a>[1] = ((<a id="138c25" class="tk">int_T</a>)0.0) <a id="138c36" class="tk">-</a> 1;</td></tr>
+<tr name="139" id="139">
+<td><a id="l139" class='ln'>139</a></td><td>        <a id="139c9" class="tk">switch_status</a>[2] = 0;</td></tr>
+<tr name="140" id="140">
+<td><a id="l140" class='ln'>140</a></td><td>        <a id="140c9" class="tk">switch_status_init</a>[2] = 0;</td></tr>
+<tr name="141" id="141">
+<td><a id="l141" class='ln'>141</a></td><td>        <a id="141c9" class="tk">gState</a>[2] = (<a id="141c22" class="tk">int_T</a>) 0.0;</td></tr>
+<tr name="142" id="142">
+<td><a id="l142" class='ln'>142</a></td><td>        <a id="142c9" class="tk">yswitch</a>[2] = 1<a id="142c23" class="tk">/</a>0.001;</td></tr>
+<tr name="143" id="143">
+<td><a id="l143" class='ln'>143</a></td><td>        <a id="143c9" class="tk">switchTypes</a>[2] = (<a id="143c27" class="tk">int_T</a>)7.0;</td></tr>
+<tr name="144" id="144">
+<td><a id="l144" class='ln'>144</a></td><td>        <a id="144c9" class="tk">idxOutSw</a>[2] = ((<a id="144c25" class="tk">int_T</a>)0.0) <a id="144c36" class="tk">-</a> 1;</td></tr>
+<tr name="145" id="145">
+<td><a id="l145" class='ln'>145</a></td><td>        <a id="145c9" class="tk">switch_status</a>[3] = 0;</td></tr>
+<tr name="146" id="146">
+<td><a id="l146" class='ln'>146</a></td><td>        <a id="146c9" class="tk">switch_status_init</a>[3] = 0;</td></tr>
+<tr name="147" id="147">
+<td><a id="l147" class='ln'>147</a></td><td>        <a id="147c9" class="tk">gState</a>[3] = (<a id="147c22" class="tk">int_T</a>) 0.0;</td></tr>
+<tr name="148" id="148">
+<td><a id="l148" class='ln'>148</a></td><td>        <a id="148c9" class="tk">yswitch</a>[3] = 1<a id="148c23" class="tk">/</a>0.001;</td></tr>
+<tr name="149" id="149">
+<td><a id="l149" class='ln'>149</a></td><td>        <a id="149c9" class="tk">switchTypes</a>[3] = (<a id="149c27" class="tk">int_T</a>)7.0;</td></tr>
+<tr name="150" id="150">
+<td><a id="l150" class='ln'>150</a></td><td>        <a id="150c9" class="tk">idxOutSw</a>[3] = ((<a id="150c25" class="tk">int_T</a>)0.0) <a id="150c36" class="tk">-</a> 1;</td></tr>
+<tr name="151" id="151">
+<td><a id="l151" class='ln'>151</a></td><td>        <a id="151c9" class="tk">switch_status</a>[4] = 0;</td></tr>
+<tr name="152" id="152">
+<td><a id="l152" class='ln'>152</a></td><td>        <a id="152c9" class="tk">switch_status_init</a>[4] = 0;</td></tr>
+<tr name="153" id="153">
+<td><a id="l153" class='ln'>153</a></td><td>        <a id="153c9" class="tk">gState</a>[4] = (<a id="153c22" class="tk">int_T</a>) 0.0;</td></tr>
+<tr name="154" id="154">
+<td><a id="l154" class='ln'>154</a></td><td>        <a id="154c9" class="tk">yswitch</a>[4] = 1<a id="154c23" class="tk">/</a>0.001;</td></tr>
+<tr name="155" id="155">
+<td><a id="l155" class='ln'>155</a></td><td>        <a id="155c9" class="tk">switchTypes</a>[4] = (<a id="155c27" class="tk">int_T</a>)7.0;</td></tr>
+<tr name="156" id="156">
+<td><a id="l156" class='ln'>156</a></td><td>        <a id="156c9" class="tk">idxOutSw</a>[4] = ((<a id="156c25" class="tk">int_T</a>)0.0) <a id="156c36" class="tk">-</a> 1;</td></tr>
+<tr name="157" id="157">
+<td><a id="l157" class='ln'>157</a></td><td>        <a id="157c9" class="tk">switch_status</a>[5] = 0;</td></tr>
+<tr name="158" id="158">
+<td><a id="l158" class='ln'>158</a></td><td>        <a id="158c9" class="tk">switch_status_init</a>[5] = 0;</td></tr>
+<tr name="159" id="159">
+<td><a id="l159" class='ln'>159</a></td><td>        <a id="159c9" class="tk">gState</a>[5] = (<a id="159c22" class="tk">int_T</a>) 0.0;</td></tr>
+<tr name="160" id="160">
+<td><a id="l160" class='ln'>160</a></td><td>        <a id="160c9" class="tk">yswitch</a>[5] = 1<a id="160c23" class="tk">/</a>0.001;</td></tr>
+<tr name="161" id="161">
+<td><a id="l161" class='ln'>161</a></td><td>        <a id="161c9" class="tk">switchTypes</a>[5] = (<a id="161c27" class="tk">int_T</a>)7.0;</td></tr>
+<tr name="162" id="162">
+<td><a id="l162" class='ln'>162</a></td><td>        <a id="162c9" class="tk">idxOutSw</a>[5] = ((<a id="162c25" class="tk">int_T</a>)0.0) <a id="162c36" class="tk">-</a> 1;</td></tr>
+<tr name="163" id="163">
+<td><a id="l163" class='ln'>163</a></td><td>      <span class="br">}</span></td></tr>
+<tr name="164" id="164">
+<td><a id="l164" class='ln'>164</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="165" id="165">
+<td><a id="l165" class='ln'>165</a></td><td></td></tr>
+<tr name="166" id="166">
+<td><a id="l166" class='ln'>166</a></td><td>    <span class="ct">/* InitializeConditions for UnitDelay: '&lt;S4&gt;/Unit Delay' */</span></td></tr>
+<tr name="167" id="167">
+<td><a id="l167" class='ln'>167</a></td><td>    ((<a id="167c7" class="tk">real_T</a> <a id="167c14" class="tk">*</a>)<a id="167c16" class="tk">ssGetDWork</a>(<a id="167c27" class="tk">S</a>, 3))[0] = 0.0;</td></tr>
+<tr name="168" id="168">
+<td><a id="l168" class='ln'>168</a></td><td>  <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="169" id="169">
+<td><a id="l169" class='ln'>169</a></td><td>    <a id="169c5" class="tk">B_PMSM_Motor_TL3_T</a> <a id="169c24" class="tk">*</a><a id="169c25" class="tk">_rtB</a>;</td></tr>
+<tr name="170" id="170">
+<td><a id="l170" class='ln'>170</a></td><td>    <a id="170c5" class="tk">_rtB</a> = ((<a id="170c14" class="tk">B_PMSM_Motor_TL3_T</a> <a id="170c33" class="tk">*</a>) <a id="170c36" class="tk">ssGetLocalBlockIO</a>(<a id="170c54" class="tk">S</a>));</td></tr>
+<tr name="171" id="171">
+<td><a id="l171" class='ln'>171</a></td><td></td></tr>
+<tr name="172" id="172">
+<td><a id="l172" class='ln'>172</a></td><td>    <span class="ct">/* InitializeConditions for DiscreteIntegrator: '&lt;S11&gt;/Discrete-Time Integrator1' */</span></td></tr>
+<tr name="173" id="173">
+<td><a id="l173" class='ln'>173</a></td><td>    ((<a id="173c7" class="tk">real_T</a> <a id="173c14" class="tk">*</a>)<a id="173c16" class="tk">ssGetDWork</a>(<a id="173c27" class="tk">S</a>, 0))[0] = 1.5707963267948966;</td></tr>
+<tr name="174" id="174">
+<td><a id="l174" class='ln'>174</a></td><td></td></tr>
+<tr name="175" id="175">
+<td><a id="l175" class='ln'>175</a></td><td>    <span class="ct">/* InitializeConditions for DiscreteIntegrator: '&lt;S18&gt;/Discrete-Time Integrator' */</span></td></tr>
+<tr name="176" id="176">
+<td><a id="l176" class='ln'>176</a></td><td>    ((<a id="176c7" class="tk">real_T</a> <a id="176c14" class="tk">*</a>)<a id="176c16" class="tk">ssGetDWork</a>(<a id="176c27" class="tk">S</a>, 1))[0] = 0.0;</td></tr>
+<tr name="177" id="177">
+<td><a id="l177" class='ln'>177</a></td><td></td></tr>
+<tr name="178" id="178">
+<td><a id="l178" class='ln'>178</a></td><td>    <span class="ct">/* InitializeConditions for DiscreteIntegrator: '&lt;S17&gt;/Discrete-Time Integrator' */</span></td></tr>
+<tr name="179" id="179">
+<td><a id="l179" class='ln'>179</a></td><td>    ((<a id="179c7" class="tk">real_T</a> <a id="179c14" class="tk">*</a>)<a id="179c16" class="tk">ssGetDWork</a>(<a id="179c27" class="tk">S</a>, 2))[0] = 0.0;</td></tr>
+<tr name="180" id="180">
+<td><a id="l180" class='ln'>180</a></td><td></td></tr>
+<tr name="181" id="181">
+<td><a id="l181" class='ln'>181</a></td><td>    <span class="ct">/* InitializeConditions for S-Function (sfun_spssw_discc): '&lt;S20&gt;/State-Space' incorporates:</span></td></tr>
+<tr name="182" id="182">
+<td><a id="l182" class='ln'>182</a></td><td><span class="ct">     *  Constant: '&lt;S19&gt;/Constant'</span></td></tr>
+<tr name="183" id="183">
+<td><a id="l183" class='ln'>183</a></td><td><span class="ct">     */</span></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="185c7" class="tk">int32_T</a> <a id="185c15" class="tk">i</a>, <a id="185c18" class="tk">j</a>;</td></tr>
+<tr name="186" id="186">
+<td><a id="l186" class='ln'>186</a></td><td>      <a id="186c7" class="tk">real_T</a> <a id="186c14" class="tk">*</a><a id="186c15" class="tk">Ds</a> = (<a id="186c21" class="tk">real_T</a><a id="186c27" class="tk">*</a>)((<span class="kw">void</span><a id="186c35" class="tk">*</a><a id="186c36" class="tk">*</a>) <a id="186c39" class="tk">ssGetDWork</a>(<a id="186c50" class="tk">S</a>, 4))[3];</td></tr>
+<tr name="187" id="187">
+<td><a id="l187" class='ln'>187</a></td><td></td></tr>
+<tr name="188" id="188">
+<td><a id="l188" class='ln'>188</a></td><td>      <span class="ct">/* Copy and transpose D */</span></td></tr>
+<tr name="189" id="189">
+<td><a id="l189" class='ln'>189</a></td><td>      <span class="kw">for</span> (<a id="189c12" class="tk">i</a>=0; <a id="189c17" class="tk">i</a><a id="189c18" class="tk">&lt;</a>9; <a id="189c22" class="tk">i</a><a id="189c23" class="tk">++</a>) <span class="br">{</span></td></tr>
+<tr name="190" id="190">
+<td><a id="l190" class='ln'>190</a></td><td>        <span class="kw">for</span> (<a id="190c14" class="tk">j</a>=0; <a id="190c19" class="tk">j</a><a id="190c20" class="tk">&lt;</a>9; <a id="190c24" class="tk">j</a><a id="190c25" class="tk">++</a>)</td></tr>
+<tr name="191" id="191">
+<td><a id="l191" class='ln'>191</a></td><td>          <a id="191c11" class="tk">Ds</a>[<a id="191c14" class="tk">i</a><a id="191c15" class="tk">*</a>9 <a id="191c18" class="tk">+</a> <a id="191c20" class="tk">j</a>] = (<a id="191c26" class="tk">PMSM_Motor_TL3_ConstP</a>.<a id="191c48" class="tk">StateSpace_DS_param</a>[<a id="191c68" class="tk">i</a> <a id="191c70" class="tk">+</a> <a id="191c72" class="tk">j</a><a id="191c73" class="tk">*</a>9]);</td></tr>
+<tr name="192" id="192">
+<td><a id="l192" class='ln'>192</a></td><td>      <span class="br">}</span></td></tr>
+<tr name="193" id="193">
+<td><a id="l193" class='ln'>193</a></td><td></td></tr>
+<tr name="194" id="194">
+<td><a id="l194" class='ln'>194</a></td><td>      <span class="br">{</span></td></tr>
+<tr name="195" id="195">
+<td><a id="l195" class='ln'>195</a></td><td>        <span class="ct">/* Switches work vectors */</span></td></tr>
+<tr name="196" id="196">
+<td><a id="l196" class='ln'>196</a></td><td>        <a id="196c9" class="tk">int_T</a> <a id="196c15" class="tk">*</a><a id="196c16" class="tk">switch_status</a> = (<a id="196c33" class="tk">int_T</a><a id="196c38" class="tk">*</a>) ((<span class="kw">void</span><a id="196c47" class="tk">*</a><a id="196c48" class="tk">*</a>) <a id="196c51" class="tk">ssGetDWork</a>(<a id="196c62" class="tk">S</a>, 4))[9];</td></tr>
+<tr name="197" id="197">
+<td><a id="l197" class='ln'>197</a></td><td>        <a id="197c9" class="tk">int_T</a> <a id="197c15" class="tk">*</a><a id="197c16" class="tk">gState</a> = (<a id="197c26" class="tk">int_T</a><a id="197c31" class="tk">*</a>)((<span class="kw">void</span><a id="197c39" class="tk">*</a><a id="197c40" class="tk">*</a>) <a id="197c43" class="tk">ssGetDWork</a>(<a id="197c54" class="tk">S</a>, 4))[12];</td></tr>
+<tr name="198" id="198">
+<td><a id="l198" class='ln'>198</a></td><td>        <a id="198c9" class="tk">real_T</a> <a id="198c16" class="tk">*</a><a id="198c17" class="tk">yswitch</a> = (<a id="198c28" class="tk">real_T</a><a id="198c34" class="tk">*</a>)((<span class="kw">void</span><a id="198c42" class="tk">*</a><a id="198c43" class="tk">*</a>) <a id="198c46" class="tk">ssGetDWork</a>(<a id="198c57" class="tk">S</a>, 4))[19];</td></tr>
+<tr name="199" id="199">
+<td><a id="l199" class='ln'>199</a></td><td>        <a id="199c9" class="tk">int_T</a> <a id="199c15" class="tk">*</a><a id="199c16" class="tk">switchTypes</a> = (<a id="199c31" class="tk">int_T</a><a id="199c36" class="tk">*</a>)((<span class="kw">void</span><a id="199c44" class="tk">*</a><a id="199c45" class="tk">*</a>) <a id="199c48" class="tk">ssGetDWork</a>(<a id="199c59" class="tk">S</a>, 4))[20];</td></tr>
+<tr name="200" id="200">
+<td><a id="l200" class='ln'>200</a></td><td>        <a id="200c9" class="tk">int_T</a> <a id="200c15" class="tk">*</a><a id="200c16" class="tk">idxOutSw</a> = (<a id="200c28" class="tk">int_T</a><a id="200c33" class="tk">*</a>)((<span class="kw">void</span><a id="200c41" class="tk">*</a><a id="200c42" class="tk">*</a>) <a id="200c45" class="tk">ssGetDWork</a>(<a id="200c56" class="tk">S</a>, 4))[21];</td></tr>
+<tr name="201" id="201">
+<td><a id="l201" class='ln'>201</a></td><td>        <a id="201c9" class="tk">int_T</a> <a id="201c15" class="tk">*</a><a id="201c16" class="tk">switch_status_init</a> = (<a id="201c38" class="tk">int_T</a><a id="201c43" class="tk">*</a>) ((<span class="kw">void</span><a id="201c52" class="tk">*</a><a id="201c53" class="tk">*</a>) <a id="201c56" class="tk">ssGetDWork</a>(<a id="201c67" class="tk">S</a>, 4))[10];</td></tr>
+<tr name="202" id="202">
+<td><a id="l202" class='ln'>202</a></td><td></td></tr>
+<tr name="203" id="203">
+<td><a id="l203" class='ln'>203</a></td><td>        <span class="ct">/* Initialize work vectors */</span></td></tr>
+<tr name="204" id="204">
+<td><a id="l204" class='ln'>204</a></td><td>        <a id="204c9" class="tk">switch_status</a>[0] = 0;</td></tr>
+<tr name="205" id="205">
+<td><a id="l205" class='ln'>205</a></td><td>        <a id="205c9" class="tk">switch_status_init</a>[0] = 0;</td></tr>
+<tr name="206" id="206">
+<td><a id="l206" class='ln'>206</a></td><td>        <a id="206c9" class="tk">gState</a>[0] = (<a id="206c22" class="tk">int_T</a>) 0.0;</td></tr>
+<tr name="207" id="207">
+<td><a id="l207" class='ln'>207</a></td><td>        <a id="207c9" class="tk">yswitch</a>[0] = 1<a id="207c23" class="tk">/</a>0.001;</td></tr>
+<tr name="208" id="208">
+<td><a id="l208" class='ln'>208</a></td><td>        <a id="208c9" class="tk">switchTypes</a>[0] = (<a id="208c27" class="tk">int_T</a>)7.0;</td></tr>
+<tr name="209" id="209">
+<td><a id="l209" class='ln'>209</a></td><td>        <a id="209c9" class="tk">idxOutSw</a>[0] = ((<a id="209c25" class="tk">int_T</a>)0.0) <a id="209c36" class="tk">-</a> 1;</td></tr>
+<tr name="210" id="210">
+<td><a id="l210" class='ln'>210</a></td><td>        <a id="210c9" class="tk">switch_status</a>[1] = 0;</td></tr>
+<tr name="211" id="211">
+<td><a id="l211" class='ln'>211</a></td><td>        <a id="211c9" class="tk">switch_status_init</a>[1] = 0;</td></tr>
+<tr name="212" id="212">
+<td><a id="l212" class='ln'>212</a></td><td>        <a id="212c9" class="tk">gState</a>[1] = (<a id="212c22" class="tk">int_T</a>) 0.0;</td></tr>
+<tr name="213" id="213">
+<td><a id="l213" class='ln'>213</a></td><td>        <a id="213c9" class="tk">yswitch</a>[1] = 1<a id="213c23" class="tk">/</a>0.001;</td></tr>
+<tr name="214" id="214">
+<td><a id="l214" class='ln'>214</a></td><td>        <a id="214c9" class="tk">switchTypes</a>[1] = (<a id="214c27" class="tk">int_T</a>)7.0;</td></tr>
+<tr name="215" id="215">
+<td><a id="l215" class='ln'>215</a></td><td>        <a id="215c9" class="tk">idxOutSw</a>[1] = ((<a id="215c25" class="tk">int_T</a>)0.0) <a id="215c36" class="tk">-</a> 1;</td></tr>
+<tr name="216" id="216">
+<td><a id="l216" class='ln'>216</a></td><td>        <a id="216c9" class="tk">switch_status</a>[2] = 0;</td></tr>
+<tr name="217" id="217">
+<td><a id="l217" class='ln'>217</a></td><td>        <a id="217c9" class="tk">switch_status_init</a>[2] = 0;</td></tr>
+<tr name="218" id="218">
+<td><a id="l218" class='ln'>218</a></td><td>        <a id="218c9" class="tk">gState</a>[2] = (<a id="218c22" class="tk">int_T</a>) 0.0;</td></tr>
+<tr name="219" id="219">
+<td><a id="l219" class='ln'>219</a></td><td>        <a id="219c9" class="tk">yswitch</a>[2] = 1<a id="219c23" class="tk">/</a>0.001;</td></tr>
+<tr name="220" id="220">
+<td><a id="l220" class='ln'>220</a></td><td>        <a id="220c9" class="tk">switchTypes</a>[2] = (<a id="220c27" class="tk">int_T</a>)7.0;</td></tr>
+<tr name="221" id="221">
+<td><a id="l221" class='ln'>221</a></td><td>        <a id="221c9" class="tk">idxOutSw</a>[2] = ((<a id="221c25" class="tk">int_T</a>)0.0) <a id="221c36" class="tk">-</a> 1;</td></tr>
+<tr name="222" id="222">
+<td><a id="l222" class='ln'>222</a></td><td>        <a id="222c9" class="tk">switch_status</a>[3] = 0;</td></tr>
+<tr name="223" id="223">
+<td><a id="l223" class='ln'>223</a></td><td>        <a id="223c9" class="tk">switch_status_init</a>[3] = 0;</td></tr>
+<tr name="224" id="224">
+<td><a id="l224" class='ln'>224</a></td><td>        <a id="224c9" class="tk">gState</a>[3] = (<a id="224c22" class="tk">int_T</a>) 0.0;</td></tr>
+<tr name="225" id="225">
+<td><a id="l225" class='ln'>225</a></td><td>        <a id="225c9" class="tk">yswitch</a>[3] = 1<a id="225c23" class="tk">/</a>0.001;</td></tr>
+<tr name="226" id="226">
+<td><a id="l226" class='ln'>226</a></td><td>        <a id="226c9" class="tk">switchTypes</a>[3] = (<a id="226c27" class="tk">int_T</a>)7.0;</td></tr>
+<tr name="227" id="227">
+<td><a id="l227" class='ln'>227</a></td><td>        <a id="227c9" class="tk">idxOutSw</a>[3] = ((<a id="227c25" class="tk">int_T</a>)0.0) <a id="227c36" class="tk">-</a> 1;</td></tr>
+<tr name="228" id="228">
+<td><a id="l228" class='ln'>228</a></td><td>        <a id="228c9" class="tk">switch_status</a>[4] = 0;</td></tr>
+<tr name="229" id="229">
+<td><a id="l229" class='ln'>229</a></td><td>        <a id="229c9" class="tk">switch_status_init</a>[4] = 0;</td></tr>
+<tr name="230" id="230">
+<td><a id="l230" class='ln'>230</a></td><td>        <a id="230c9" class="tk">gState</a>[4] = (<a id="230c22" class="tk">int_T</a>) 0.0;</td></tr>
+<tr name="231" id="231">
+<td><a id="l231" class='ln'>231</a></td><td>        <a id="231c9" class="tk">yswitch</a>[4] = 1<a id="231c23" class="tk">/</a>0.001;</td></tr>
+<tr name="232" id="232">
+<td><a id="l232" class='ln'>232</a></td><td>        <a id="232c9" class="tk">switchTypes</a>[4] = (<a id="232c27" class="tk">int_T</a>)7.0;</td></tr>
+<tr name="233" id="233">
+<td><a id="l233" class='ln'>233</a></td><td>        <a id="233c9" class="tk">idxOutSw</a>[4] = ((<a id="233c25" class="tk">int_T</a>)0.0) <a id="233c36" class="tk">-</a> 1;</td></tr>
+<tr name="234" id="234">
+<td><a id="l234" class='ln'>234</a></td><td>        <a id="234c9" class="tk">switch_status</a>[5] = 0;</td></tr>
+<tr name="235" id="235">
+<td><a id="l235" class='ln'>235</a></td><td>        <a id="235c9" class="tk">switch_status_init</a>[5] = 0;</td></tr>
+<tr name="236" id="236">
+<td><a id="l236" class='ln'>236</a></td><td>        <a id="236c9" class="tk">gState</a>[5] = (<a id="236c22" class="tk">int_T</a>) 0.0;</td></tr>
+<tr name="237" id="237">
+<td><a id="l237" class='ln'>237</a></td><td>        <a id="237c9" class="tk">yswitch</a>[5] = 1<a id="237c23" class="tk">/</a>0.001;</td></tr>
+<tr name="238" id="238">
+<td><a id="l238" class='ln'>238</a></td><td>        <a id="238c9" class="tk">switchTypes</a>[5] = (<a id="238c27" class="tk">int_T</a>)7.0;</td></tr>
+<tr name="239" id="239">
+<td><a id="l239" class='ln'>239</a></td><td>        <a id="239c9" class="tk">idxOutSw</a>[5] = ((<a id="239c25" class="tk">int_T</a>)0.0) <a id="239c36" class="tk">-</a> 1;</td></tr>
+<tr name="240" id="240">
+<td><a id="l240" class='ln'>240</a></td><td>      <span class="br">}</span></td></tr>
+<tr name="241" id="241">
+<td><a id="l241" class='ln'>241</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="242" id="242">
+<td><a id="l242" class='ln'>242</a></td><td></td></tr>
+<tr name="243" id="243">
+<td><a id="l243" class='ln'>243</a></td><td>    <span class="ct">/* InitializeConditions for UnitDelay: '&lt;S4&gt;/Unit Delay' */</span></td></tr>
+<tr name="244" id="244">
+<td><a id="l244" class='ln'>244</a></td><td>    ((<a id="244c7" class="tk">real_T</a> <a id="244c14" class="tk">*</a>)<a id="244c16" class="tk">ssGetDWork</a>(<a id="244c27" class="tk">S</a>, 3))[0] = 0.0;</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><span class="br">}</span></td></tr>
+<tr name="247" id="247">
+<td><a id="l247" class='ln'>247</a></td><td></td></tr>
+<tr name="248" id="248">
+<td><a id="l248" class='ln'>248</a></td><td><span class="ct">/* Start for root system: '&lt;Root&gt;' */</span></td></tr>
+<tr name="249" id="249">
+<td><a id="l249" class='ln'>249</a></td><td><span class="pp">#define</span> <a id="249c9" class="tk">MDL_START</a></td></tr>
+<tr name="250" id="250">
+<td><a id="l250" class='ln'>250</a></td><td></td></tr>
+<tr name="251" id="251">
+<td><a id="l251" class='ln'>251</a></td><td><span class="kw">static</span> <span class="kw">void</span> <a id="251c13" class="tk">mdlStart</a>(<a id="251c22" class="tk">SimStruct</a> <a id="251c32" class="tk">*</a><a id="251c33" class="tk">S</a>)</td></tr>
+<tr name="252" id="252">
+<td><a id="l252" class='ln'>252</a></td><td><span class="br">{</span></td></tr>
+<tr name="253" id="253">
+<td><a id="l253" class='ln'>253</a></td><td>  <span class="ct">/* instance underlying S-Function data */</span></td></tr>
+<tr name="254" id="254">
+<td><a id="l254" class='ln'>254</a></td><td><span class="pp">#if</span> <a id="254c5" class="tk">defined</a>(<a id="254c13" class="tk">RT_MALLOC</a>) <a id="254c24" class="tk">||</a> <a id="254c27" class="tk">defined</a>(<a id="254c35" class="tk">MATLAB_MEX_FILE</a>)</td></tr>
+<tr name="255" id="255">
+<td><a id="l255" class='ln'>255</a></td><td><span class="pp">#if</span> <a id="255c5" class="tk">defined</a>(<a id="255c13" class="tk">MATLAB_MEX_FILE</a>)</td></tr>
+<tr name="256" id="256">
+<td><a id="l256" class='ln'>256</a></td><td></td></tr>
+<tr name="257" id="257">
+<td><a id="l257" class='ln'>257</a></td><td>  <span class="ct">/* non-finites */</span></td></tr>
+<tr name="258" id="258">
+<td><a id="l258" class='ln'>258</a></td><td>  <a id="258c3" class="tk">rt_InitInfAndNaN</a>(<span class="kw">sizeof</span>(<a id="258c27" class="tk">real_T</a>));</td></tr>
+<tr name="259" id="259">
+<td><a id="l259" class='ln'>259</a></td><td></td></tr>
+<tr name="260" id="260">
+<td><a id="l260" class='ln'>260</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="261" id="261">
+<td><a id="l261" class='ln'>261</a></td><td></td></tr>
+<tr name="262" id="262">
+<td><a id="l262" class='ln'>262</a></td><td>  <a id="262c3" class="tk">PMSM_Motor_TL3_malloc</a>(<a id="262c25" class="tk">S</a>);</td></tr>
+<tr name="263" id="263">
+<td><a id="l263" class='ln'>263</a></td><td>  <span class="kw">if</span> (<a id="263c7" class="tk">ssGetErrorStatus</a>(<a id="263c24" class="tk">S</a>) <a id="263c27" class="tk">!=</a> (<a id="263c31" class="tk">NULL</a>) ) <span class="br">{</span></td></tr>
+<tr name="264" id="264">
+<td><a id="l264" class='ln'>264</a></td><td>    <span class="kw">return</span>;</td></tr>
+<tr name="265" id="265">
+<td><a id="l265" class='ln'>265</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="266" id="266">
+<td><a id="l266" class='ln'>266</a></td><td></td></tr>
+<tr name="267" id="267">
+<td><a id="l267" class='ln'>267</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="268" id="268">
+<td><a id="l268" class='ln'>268</a></td><td></td></tr>
+<tr name="269" id="269">
+<td><a id="l269" class='ln'>269</a></td><td>  <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">B_PMSM_Motor_TL3_T</a> <a id="270c24" class="tk">*</a><a id="270c25" class="tk">_rtB</a>;</td></tr>
+<tr name="271" id="271">
+<td><a id="l271" class='ln'>271</a></td><td>    <a id="271c5" class="tk">_rtB</a> = ((<a id="271c14" class="tk">B_PMSM_Motor_TL3_T</a> <a id="271c33" class="tk">*</a>) <a id="271c36" class="tk">ssGetLocalBlockIO</a>(<a id="271c54" class="tk">S</a>));</td></tr>
+<tr name="272" id="272">
+<td><a id="l272" class='ln'>272</a></td><td></td></tr>
+<tr name="273" id="273">
+<td><a id="l273" class='ln'>273</a></td><td>    <span class="ct">/* Start for S-Function (sfun_spssw_discc): '&lt;S20&gt;/State-Space' incorporates:</span></td></tr>
+<tr name="274" id="274">
+<td><a id="l274" class='ln'>274</a></td><td><span class="ct">     *  Constant: '&lt;S19&gt;/Constant'</span></td></tr>
+<tr name="275" id="275">
+<td><a id="l275" class='ln'>275</a></td><td><span class="ct">     */</span></td></tr>
+<tr name="276" id="276">
+<td><a id="l276" class='ln'>276</a></td><td></td></tr>
+<tr name="277" id="277">
+<td><a id="l277" class='ln'>277</a></td><td>    <span class="ct">/* S-Function block: &lt;S20&gt;/State-Space */</span></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>      ((<span class="kw">void</span><a id="279c13" class="tk">*</a><a id="279c14" class="tk">*</a>) <a id="279c17" class="tk">ssGetDWork</a>(<a id="279c28" class="tk">S</a>, 4))[3] = (<a id="279c41" class="tk">real_T</a><a id="279c47" class="tk">*</a>)<a id="279c49" class="tk">calloc</a>(9 <a id="279c58" class="tk">*</a> 9, <span class="kw">sizeof</span>(<a id="279c70" class="tk">real_T</a>));</td></tr>
+<tr name="280" id="280">
+<td><a id="l280" class='ln'>280</a></td><td>      ((<span class="kw">void</span><a id="280c13" class="tk">*</a><a id="280c14" class="tk">*</a>) <a id="280c17" class="tk">ssGetDWork</a>(<a id="280c28" class="tk">S</a>, 4))[4] = (<a id="280c41" class="tk">real_T</a><a id="280c47" class="tk">*</a>)<a id="280c49" class="tk">calloc</a>(9, <span class="kw">sizeof</span>(<a id="280c66" class="tk">real_T</a>));</td></tr>
+<tr name="281" id="281">
+<td><a id="l281" class='ln'>281</a></td><td>      ((<span class="kw">void</span><a id="281c13" class="tk">*</a><a id="281c14" class="tk">*</a>) <a id="281c17" class="tk">ssGetDWork</a>(<a id="281c28" class="tk">S</a>, 4))[7] = (<a id="281c41" class="tk">real_T</a><a id="281c47" class="tk">*</a>)<a id="281c49" class="tk">calloc</a>(9, <span class="kw">sizeof</span>(<a id="281c66" class="tk">real_T</a>));</td></tr>
+<tr name="282" id="282">
+<td><a id="l282" class='ln'>282</a></td><td>      ((<span class="kw">void</span><a id="282c13" class="tk">*</a><a id="282c14" class="tk">*</a>) <a id="282c17" class="tk">ssGetDWork</a>(<a id="282c28" class="tk">S</a>, 4))[9] = (<a id="282c41" class="tk">int_T</a><a id="282c46" class="tk">*</a>)<a id="282c48" class="tk">calloc</a>(6, <span class="kw">sizeof</span>(<a id="282c65" class="tk">int_T</a>));</td></tr>
+<tr name="283" id="283">
+<td><a id="l283" class='ln'>283</a></td><td>      ((<span class="kw">void</span><a id="283c13" class="tk">*</a><a id="283c14" class="tk">*</a>) <a id="283c17" class="tk">ssGetDWork</a>(<a id="283c28" class="tk">S</a>, 4))[11] = (<a id="283c42" class="tk">int_T</a><a id="283c47" class="tk">*</a>)<a id="283c49" class="tk">calloc</a>(6, <span class="kw">sizeof</span>(<a id="283c66" class="tk">int_T</a>));</td></tr>
+<tr name="284" id="284">
+<td><a id="l284" class='ln'>284</a></td><td>      ((<span class="kw">void</span><a id="284c13" class="tk">*</a><a id="284c14" class="tk">*</a>) <a id="284c17" class="tk">ssGetDWork</a>(<a id="284c28" class="tk">S</a>, 4))[12] = (<a id="284c42" class="tk">int_T</a><a id="284c47" class="tk">*</a>)<a id="284c49" class="tk">calloc</a>(6, <span class="kw">sizeof</span>(<a id="284c66" class="tk">int_T</a>));</td></tr>
+<tr name="285" id="285">
+<td><a id="l285" class='ln'>285</a></td><td>      ((<span class="kw">void</span><a id="285c13" class="tk">*</a><a id="285c14" class="tk">*</a>) <a id="285c17" class="tk">ssGetDWork</a>(<a id="285c28" class="tk">S</a>, 4))[19] = (<a id="285c42" class="tk">real_T</a><a id="285c48" class="tk">*</a>)<a id="285c50" class="tk">calloc</a>(6, <span class="kw">sizeof</span>(<a id="285c67" class="tk">real_T</a>));</td></tr>
+<tr name="286" id="286">
+<td><a id="l286" class='ln'>286</a></td><td>      ((<span class="kw">void</span><a id="286c13" class="tk">*</a><a id="286c14" class="tk">*</a>) <a id="286c17" class="tk">ssGetDWork</a>(<a id="286c28" class="tk">S</a>, 4))[20] = (<a id="286c42" class="tk">int_T</a><a id="286c47" class="tk">*</a>)<a id="286c49" class="tk">calloc</a>(6, <span class="kw">sizeof</span>(<a id="286c66" class="tk">int_T</a>));</td></tr>
+<tr name="287" id="287">
+<td><a id="l287" class='ln'>287</a></td><td>      ((<span class="kw">void</span><a id="287c13" class="tk">*</a><a id="287c14" class="tk">*</a>) <a id="287c17" class="tk">ssGetDWork</a>(<a id="287c28" class="tk">S</a>, 4))[21] = (<a id="287c42" class="tk">int_T</a><a id="287c47" class="tk">*</a>)<a id="287c49" class="tk">calloc</a>(6, <span class="kw">sizeof</span>(<a id="287c66" class="tk">int_T</a>));</td></tr>
+<tr name="288" id="288">
+<td><a id="l288" class='ln'>288</a></td><td>      ((<span class="kw">void</span><a id="288c13" class="tk">*</a><a id="288c14" class="tk">*</a>) <a id="288c17" class="tk">ssGetDWork</a>(<a id="288c28" class="tk">S</a>, 4))[10] = (<a id="288c42" class="tk">int_T</a><a id="288c47" class="tk">*</a>)<a id="288c49" class="tk">calloc</a>(6, <span class="kw">sizeof</span>(<a id="288c66" class="tk">int_T</a>));</td></tr>
+<tr name="289" id="289">
+<td><a id="l289" class='ln'>289</a></td><td>      ((<span class="kw">void</span><a id="289c13" class="tk">*</a><a id="289c14" class="tk">*</a>) <a id="289c17" class="tk">ssGetDWork</a>(<a id="289c28" class="tk">S</a>, 4))[13] = (<a id="289c42" class="tk">real_T</a><a id="289c48" class="tk">*</a>)<a id="289c50" class="tk">calloc</a>(6, <span class="kw">sizeof</span>(<a id="289c67" class="tk">real_T</a>));</td></tr>
+<tr name="290" id="290">
+<td><a id="l290" class='ln'>290</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="291" id="291">
+<td><a id="l291" class='ln'>291</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="292" id="292">
+<td><a id="l292" class='ln'>292</a></td><td><span class="br">}</span></td></tr>
+<tr name="293" id="293">
+<td><a id="l293" class='ln'>293</a></td><td></td></tr>
+<tr name="294" id="294">
+<td><a id="l294" class='ln'>294</a></td><td><span class="ct">/* Outputs for root system: '&lt;Root&gt;' */</span></td></tr>
+<tr name="295" id="295">
+<td><a id="l295" class='ln'>295</a></td><td><span class="kw">static</span> <span class="kw">void</span> <a id="295c13" class="tk">mdlOutputs</a>(<a id="295c24" class="tk">SimStruct</a> <a id="295c34" class="tk">*</a><a id="295c35" class="tk">S</a>, <a id="295c38" class="tk">int_T</a> <a id="295c44" class="tk">tid</a>)</td></tr>
+<tr name="296" id="296">
+<td><a id="l296" class='ln'>296</a></td><td><span class="br">{</span></td></tr>
+<tr name="297" id="297">
+<td><a id="l297" class='ln'>297</a></td><td>  <a id="297c3" class="tk">B_PMSM_Motor_TL3_T</a> <a id="297c22" class="tk">*</a><a id="297c23" class="tk">_rtB</a>;</td></tr>
+<tr name="298" id="298">
+<td><a id="l298" class='ln'>298</a></td><td>  <a id="298c3" class="tk">real_T</a> <a id="298c10" class="tk">rtb_DataTypeConversion1</a>;</td></tr>
+<tr name="299" id="299">
+<td><a id="l299" class='ln'>299</a></td><td>  <a id="299c3" class="tk">real_T</a> <a id="299c10" class="tk">rtb_DataTypeConversion2</a>;</td></tr>
+<tr name="300" id="300">
+<td><a id="l300" class='ln'>300</a></td><td>  <a id="300c3" class="tk">real_T</a> <a id="300c10" class="tk">rtb_ElementaryMath_o1_tmp</a>;</td></tr>
+<tr name="301" id="301">
+<td><a id="l301" class='ln'>301</a></td><td>  <a id="301c3" class="tk">real_T</a> <a id="301c10" class="tk">rtb_ElementaryMath_o2_tmp</a>;</td></tr>
+<tr name="302" id="302">
+<td><a id="l302" class='ln'>302</a></td><td>  <a id="302c3" class="tk">_rtB</a> = ((<a id="302c12" class="tk">B_PMSM_Motor_TL3_T</a> <a id="302c31" class="tk">*</a>) <a id="302c34" class="tk">ssGetLocalBlockIO</a>(<a id="302c52" class="tk">S</a>));</td></tr>
+<tr name="303" id="303">
+<td><a id="l303" class='ln'>303</a></td><td></td></tr>
+<tr name="304" id="304">
+<td><a id="l304" class='ln'>304</a></td><td>  <span class="ct">/* Trigonometry: '&lt;S13&gt;/Elementary Math' incorporates:</span></td></tr>
+<tr name="305" id="305">
+<td><a id="l305" class='ln'>305</a></td><td><span class="ct">   *  DiscreteIntegrator: '&lt;S11&gt;/Discrete-Time Integrator1'</span></td></tr>
+<tr name="306" id="306">
+<td><a id="l306" class='ln'>306</a></td><td><span class="ct">   *  Trigonometry: '&lt;S16&gt;/Trigonometric Function'</span></td></tr>
+<tr name="307" id="307">
+<td><a id="l307" class='ln'>307</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="308" id="308">
+<td><a id="l308" class='ln'>308</a></td><td>  <a id="308c3" class="tk">rtb_ElementaryMath_o1_tmp</a> = <a id="308c31" class="tk">sin</a>(((<a id="308c37" class="tk">real_T</a> <a id="308c44" class="tk">*</a>)<a id="308c46" class="tk">ssGetDWork</a>(<a id="308c57" class="tk">S</a>, 0))[0]);</td></tr>
+<tr name="309" id="309">
+<td><a id="l309" class='ln'>309</a></td><td>  <a id="309c3" class="tk">rtb_ElementaryMath_o2_tmp</a> = <a id="309c31" class="tk">cos</a>(((<a id="309c37" class="tk">real_T</a> <a id="309c44" class="tk">*</a>)<a id="309c46" class="tk">ssGetDWork</a>(<a id="309c57" class="tk">S</a>, 0))[0]);</td></tr>
+<tr name="310" id="310">
+<td><a id="l310" class='ln'>310</a></td><td></td></tr>
+<tr name="311" id="311">
+<td><a id="l311" class='ln'>311</a></td><td>  <span class="ct">/* Fcn: '&lt;S15&gt;/Fcn' incorporates:</span></td></tr>
+<tr name="312" id="312">
+<td><a id="l312" class='ln'>312</a></td><td><span class="ct">   *  DiscreteIntegrator: '&lt;S17&gt;/Discrete-Time Integrator'</span></td></tr>
+<tr name="313" id="313">
+<td><a id="l313" class='ln'>313</a></td><td><span class="ct">   *  DiscreteIntegrator: '&lt;S18&gt;/Discrete-Time Integrator'</span></td></tr>
+<tr name="314" id="314">
+<td><a id="l314" class='ln'>314</a></td><td><span class="ct">   *  Trigonometry: '&lt;S13&gt;/Elementary Math'</span></td></tr>
+<tr name="315" id="315">
+<td><a id="l315" class='ln'>315</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="316" id="316">
+<td><a id="l316" class='ln'>316</a></td><td>  <a id="316c3" class="tk">_rtB</a>-&gt;<a id="316c9" class="tk">Fcn</a> = ((<a id="316c17" class="tk">real_T</a> <a id="316c24" class="tk">*</a>)<a id="316c26" class="tk">ssGetDWork</a>(<a id="316c37" class="tk">S</a>, 1))[0] <a id="316c47" class="tk">*</a> <a id="316c49" class="tk">rtb_ElementaryMath_o2_tmp</a> <a id="316c75" class="tk">+</a></td></tr>
+<tr name="317" id="317">
+<td><a id="l317" class='ln'>317</a></td><td>    ((<a id="317c7" class="tk">real_T</a> <a id="317c14" class="tk">*</a>)<a id="317c16" class="tk">ssGetDWork</a>(<a id="317c27" class="tk">S</a>, 2))[0] <a id="317c37" class="tk">*</a> <a id="317c39" class="tk">rtb_ElementaryMath_o1_tmp</a>;</td></tr>
+<tr name="318" id="318">
+<td><a id="l318" class='ln'>318</a></td><td></td></tr>
+<tr name="319" id="319">
+<td><a id="l319" class='ln'>319</a></td><td>  <span class="ct">/* Fcn: '&lt;S15&gt;/Fcn1' incorporates:</span></td></tr>
+<tr name="320" id="320">
+<td><a id="l320" class='ln'>320</a></td><td><span class="ct">   *  DiscreteIntegrator: '&lt;S17&gt;/Discrete-Time Integrator'</span></td></tr>
+<tr name="321" id="321">
+<td><a id="l321" class='ln'>321</a></td><td><span class="ct">   *  DiscreteIntegrator: '&lt;S18&gt;/Discrete-Time Integrator'</span></td></tr>
+<tr name="322" id="322">
+<td><a id="l322" class='ln'>322</a></td><td><span class="ct">   *  Trigonometry: '&lt;S13&gt;/Elementary Math'</span></td></tr>
+<tr name="323" id="323">
+<td><a id="l323" class='ln'>323</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="324" id="324">
+<td><a id="l324" class='ln'>324</a></td><td>  <a id="324c3" class="tk">_rtB</a>-&gt;<a id="324c9" class="tk">Fcn1</a> = ((<a id="324c18" class="tk">-</a>((<a id="324c21" class="tk">real_T</a> <a id="324c28" class="tk">*</a>)<a id="324c30" class="tk">ssGetDWork</a>(<a id="324c41" class="tk">S</a>, 1))[0] <a id="324c51" class="tk">-</a> 1.7320508075688772 <a id="324c72" class="tk">*</a></td></tr>
+<tr name="325" id="325">
+<td><a id="l325" class='ln'>325</a></td><td>                 ((<a id="325c20" class="tk">real_T</a> <a id="325c27" class="tk">*</a>)<a id="325c29" class="tk">ssGetDWork</a>(<a id="325c40" class="tk">S</a>, 2))[0]) <a id="325c51" class="tk">*</a> <a id="325c53" class="tk">rtb_ElementaryMath_o2_tmp</a> <a id="325c79" class="tk">+</a></td></tr>
+<tr name="326" id="326">
+<td><a id="l326" class='ln'>326</a></td><td>                (1.7320508075688772 <a id="326c37" class="tk">*</a> ((<a id="326c41" class="tk">real_T</a> <a id="326c48" class="tk">*</a>)<a id="326c50" class="tk">ssGetDWork</a>(<a id="326c61" class="tk">S</a>, 1))[0] <a id="326c71" class="tk">-</a> ((<a id="326c75" class="tk">real_T</a></td></tr>
+<tr name="327" id="327">
+<td><a id="l327" class='ln'>327</a></td><td>    <a id="327c5" class="tk">*</a>)<a id="327c7" class="tk">ssGetDWork</a>(<a id="327c18" class="tk">S</a>, 2))[0]) <a id="327c29" class="tk">*</a> <a id="327c31" class="tk">rtb_ElementaryMath_o1_tmp</a>) <a id="327c58" class="tk">*</a> 0.5;</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">/* S-Function (sfun_spssw_discc): '&lt;S20&gt;/State-Space' incorporates:</span></td></tr>
+<tr name="330" id="330">
+<td><a id="l330" class='ln'>330</a></td><td><span class="ct">   *  Constant: '&lt;S19&gt;/Constant'</span></td></tr>
+<tr name="331" id="331">
+<td><a id="l331" class='ln'>331</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="332" id="332">
+<td><a id="l332" class='ln'>332</a></td><td></td></tr>
+<tr name="333" id="333">
+<td><a id="l333" class='ln'>333</a></td><td>  <span class="ct">/* S-Function block: &lt;S20&gt;/State-Space */</span></td></tr>
+<tr name="334" id="334">
+<td><a id="l334" class='ln'>334</a></td><td>  <span class="br">{</span></td></tr>
+<tr name="335" id="335">
+<td><a id="l335" class='ln'>335</a></td><td>    <a id="335c5" class="tk">real_T</a> <a id="335c12" class="tk">accum</a>;</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">/* Circuit has switches */</span></td></tr>
+<tr name="338" id="338">
+<td><a id="l338" class='ln'>338</a></td><td>    <a id="338c5" class="tk">int_T</a> <a id="338c11" class="tk">*</a><a id="338c12" class="tk">switch_status</a> = (<a id="338c29" class="tk">int_T</a><a id="338c34" class="tk">*</a>) ((<span class="kw">void</span><a id="338c43" class="tk">*</a><a id="338c44" class="tk">*</a>) <a id="338c47" class="tk">ssGetDWork</a>(<a id="338c58" class="tk">S</a>, 4))[9];</td></tr>
+<tr name="339" id="339">
+<td><a id="l339" class='ln'>339</a></td><td>    <a id="339c5" class="tk">int_T</a> <a id="339c11" class="tk">*</a><a id="339c12" class="tk">switch_status_init</a> = (<a id="339c34" class="tk">int_T</a><a id="339c39" class="tk">*</a>) ((<span class="kw">void</span><a id="339c48" class="tk">*</a><a id="339c49" class="tk">*</a>) <a id="339c52" class="tk">ssGetDWork</a>(<a id="339c63" class="tk">S</a>, 4))[10];</td></tr>
+<tr name="340" id="340">
+<td><a id="l340" class='ln'>340</a></td><td>    <a id="340c5" class="tk">int_T</a> <a id="340c11" class="tk">*</a><a id="340c12" class="tk">SwitchChange</a> = (<a id="340c28" class="tk">int_T</a><a id="340c33" class="tk">*</a>) ((<span class="kw">void</span><a id="340c42" class="tk">*</a><a id="340c43" class="tk">*</a>) <a id="340c46" class="tk">ssGetDWork</a>(<a id="340c57" class="tk">S</a>, 4))[11];</td></tr>
+<tr name="341" id="341">
+<td><a id="l341" class='ln'>341</a></td><td>    <a id="341c5" class="tk">int_T</a> <a id="341c11" class="tk">*</a><a id="341c12" class="tk">gState</a> = (<a id="341c22" class="tk">int_T</a><a id="341c27" class="tk">*</a>) ((<span class="kw">void</span><a id="341c36" class="tk">*</a><a id="341c37" class="tk">*</a>) <a id="341c40" class="tk">ssGetDWork</a>(<a id="341c51" class="tk">S</a>, 4))[12];</td></tr>
+<tr name="342" id="342">
+<td><a id="l342" class='ln'>342</a></td><td>    <a id="342c5" class="tk">real_T</a> <a id="342c12" class="tk">*</a><a id="342c13" class="tk">yswitch</a> = (<a id="342c24" class="tk">real_T</a><a id="342c30" class="tk">*</a>)((<span class="kw">void</span><a id="342c38" class="tk">*</a><a id="342c39" class="tk">*</a>) <a id="342c42" class="tk">ssGetDWork</a>(<a id="342c53" class="tk">S</a>, 4))[19];</td></tr>
+<tr name="343" id="343">
+<td><a id="l343" class='ln'>343</a></td><td>    <a id="343c5" class="tk">int_T</a> <a id="343c11" class="tk">*</a><a id="343c12" class="tk">switchTypes</a> = (<a id="343c27" class="tk">int_T</a><a id="343c32" class="tk">*</a>) ((<span class="kw">void</span><a id="343c41" class="tk">*</a><a id="343c42" class="tk">*</a>) <a id="343c45" class="tk">ssGetDWork</a>(<a id="343c56" class="tk">S</a>, 4))[20];</td></tr>
+<tr name="344" id="344">
+<td><a id="l344" class='ln'>344</a></td><td>    <a id="344c5" class="tk">int_T</a> <a id="344c11" class="tk">*</a><a id="344c12" class="tk">idxOutSw</a> = (<a id="344c24" class="tk">int_T</a><a id="344c29" class="tk">*</a>) ((<span class="kw">void</span><a id="344c38" class="tk">*</a><a id="344c39" class="tk">*</a>) <a id="344c42" class="tk">ssGetDWork</a>(<a id="344c53" class="tk">S</a>, 4))[21];</td></tr>
+<tr name="345" id="345">
+<td><a id="l345" class='ln'>345</a></td><td>    <a id="345c5" class="tk">real_T</a> <a id="345c12" class="tk">*</a><a id="345c13" class="tk">DxCol</a> = (<a id="345c22" class="tk">real_T</a><a id="345c28" class="tk">*</a>)((<span class="kw">void</span><a id="345c36" class="tk">*</a><a id="345c37" class="tk">*</a>) <a id="345c40" class="tk">ssGetDWork</a>(<a id="345c51" class="tk">S</a>, 4))[4];</td></tr>
+<tr name="346" id="346">
+<td><a id="l346" class='ln'>346</a></td><td>    <a id="346c5" class="tk">real_T</a> <a id="346c12" class="tk">*</a><a id="346c13" class="tk">tmp2</a> = (<a id="346c21" class="tk">real_T</a><a id="346c27" class="tk">*</a>)((<span class="kw">void</span><a id="346c35" class="tk">*</a><a id="346c36" class="tk">*</a>) <a id="346c39" class="tk">ssGetDWork</a>(<a id="346c50" class="tk">S</a>, 4))[7];</td></tr>
+<tr name="347" id="347">
+<td><a id="l347" class='ln'>347</a></td><td>    <a id="347c5" class="tk">real_T</a> <a id="347c12" class="tk">*</a><a id="347c13" class="tk">uswlast</a> = (<a id="347c24" class="tk">real_T</a><a id="347c30" class="tk">*</a>)((<span class="kw">void</span><a id="347c38" class="tk">*</a><a id="347c39" class="tk">*</a>) <a id="347c42" class="tk">ssGetDWork</a>(<a id="347c53" class="tk">S</a>, 4))[13];</td></tr>
+<tr name="348" id="348">
+<td><a id="l348" class='ln'>348</a></td><td>    <a id="348c5" class="tk">int_T</a> <a id="348c11" class="tk">newState</a>;</td></tr>
+<tr name="349" id="349">
+<td><a id="l349" class='ln'>349</a></td><td>    <a id="349c5" class="tk">int_T</a> <a id="349c11" class="tk">swChanged</a> = 0;</td></tr>
+<tr name="350" id="350">
+<td><a id="l350" class='ln'>350</a></td><td>    <span class="kw">int</span> <a id="350c9" class="tk">loopsToDo</a> = 20;</td></tr>
+<tr name="351" id="351">
+<td><a id="l351" class='ln'>351</a></td><td>    <a id="351c5" class="tk">real_T</a> <a id="351c12" class="tk">temp</a>;</td></tr>
+<tr name="352" id="352">
+<td><a id="l352" class='ln'>352</a></td><td></td></tr>
+<tr name="353" id="353">
+<td><a id="l353" class='ln'>353</a></td><td>    <span class="ct">/* keep an initial copy of switch_status*/</span></td></tr>
+<tr name="354" id="354">
+<td><a id="l354" class='ln'>354</a></td><td>    <a id="354c5" class="tk">memcpy</a>(<a id="354c12" class="tk">switch_status_init</a>, <a id="354c32" class="tk">switch_status</a>, 6 <a id="354c49" class="tk">*</a> <span class="kw">sizeof</span>(<a id="354c58" class="tk">int_T</a>));</td></tr>
+<tr name="355" id="355">
+<td><a id="l355" class='ln'>355</a></td><td>    <a id="355c5" class="tk">memcpy</a>(<a id="355c12" class="tk">uswlast</a>, <a id="355c21" class="tk">&amp;</a><a id="355c22" class="tk">_rtB</a>-&gt;<a id="355c28" class="tk">StateSpace_o1</a>[0], 6<a id="355c47" class="tk">*</a><span class="kw">sizeof</span>(<a id="355c55" class="tk">real_T</a>));</td></tr>
+<tr name="356" id="356">
+<td><a id="l356" class='ln'>356</a></td><td>    <span class="kw">do</span> <span class="br">{</span></td></tr>
+<tr name="357" id="357">
+<td><a id="l357" class='ln'>357</a></td><td>      <span class="kw">if</span> (<a id="357c11" class="tk">loopsToDo</a> <a id="357c21" class="tk">==</a> 1) <span class="br">{</span>            <span class="ct">/* Need to reset some variables: */</span></td></tr>
+<tr name="358" id="358">
+<td><a id="l358" class='ln'>358</a></td><td>        <a id="358c9" class="tk">swChanged</a> = 0;</td></tr>
+<tr name="359" id="359">
+<td><a id="l359" class='ln'>359</a></td><td></td></tr>
+<tr name="360" id="360">
+<td><a id="l360" class='ln'>360</a></td><td>        <span class="ct">/* return to the original switch status*/</span></td></tr>
+<tr name="361" id="361">
+<td><a id="l361" class='ln'>361</a></td><td>        <span class="br">{</span></td></tr>
+<tr name="362" id="362">
+<td><a id="l362" class='ln'>362</a></td><td>          <a id="362c11" class="tk">int_T</a> <a id="362c17" class="tk">i1</a>;</td></tr>
+<tr name="363" id="363">
+<td><a id="l363" class='ln'>363</a></td><td>          <span class="kw">for</span> (<a id="363c16" class="tk">i1</a>=0; <a id="363c22" class="tk">i1</a> <a id="363c25" class="tk">&lt;</a> 6; <a id="363c30" class="tk">i1</a><a id="363c32" class="tk">++</a>) <span class="br">{</span></td></tr>
+<tr name="364" id="364">
+<td><a id="l364" class='ln'>364</a></td><td>            <a id="364c13" class="tk">swChanged</a> = ((<a id="364c27" class="tk">SwitchChange</a>[<a id="364c40" class="tk">i1</a>] = <a id="364c46" class="tk">switch_status_init</a>[<a id="364c65" class="tk">i1</a>] <a id="364c69" class="tk">-</a></td></tr>
+<tr name="365" id="365">
+<td><a id="l365" class='ln'>365</a></td><td>                          <a id="365c27" class="tk">switch_status</a>[<a id="365c41" class="tk">i1</a>]) <a id="365c46" class="tk">!=</a> 0) <a id="365c52" class="tk">?</a> 1 <a id="365c56" class="tk">:</a> <a id="365c58" class="tk">swChanged</a>;</td></tr>
+<tr name="366" id="366">
+<td><a id="l366" class='ln'>366</a></td><td>            <a id="366c13" class="tk">switch_status</a>[<a id="366c27" class="tk">i1</a>] = <a id="366c33" class="tk">switch_status_init</a>[<a id="366c52" class="tk">i1</a>];</td></tr>
+<tr name="367" id="367">
+<td><a id="l367" class='ln'>367</a></td><td>          <span class="br">}</span></td></tr>
+<tr name="368" id="368">
+<td><a id="l368" class='ln'>368</a></td><td>        <span class="br">}</span></td></tr>
+<tr name="369" id="369">
+<td><a id="l369" class='ln'>369</a></td><td>      <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="370" id="370">
+<td><a id="l370" class='ln'>370</a></td><td>        <span class="ct">/*</span></td></tr>
+<tr name="371" id="371">
+<td><a id="l371" class='ln'>371</a></td><td><span class="ct">         * Compute outputs:</span></td></tr>
+<tr name="372" id="372">
+<td><a id="l372" class='ln'>372</a></td><td><span class="ct">         * ---------------</span></td></tr>
+<tr name="373" id="373">
+<td><a id="l373" class='ln'>373</a></td><td><span class="ct">         */</span></td></tr>
+<tr name="374" id="374">
+<td><a id="l374" class='ln'>374</a></td><td>        <a id="374c9" class="tk">real_T</a> <a id="374c16" class="tk">*</a><a id="374c17" class="tk">Ds</a> = (<a id="374c23" class="tk">real_T</a><a id="374c29" class="tk">*</a>)((<span class="kw">void</span><a id="374c37" class="tk">*</a><a id="374c38" class="tk">*</a>) <a id="374c41" class="tk">ssGetDWork</a>(<a id="374c52" class="tk">S</a>, 4))[3];</td></tr>
+<tr name="375" id="375">
+<td><a id="l375" class='ln'>375</a></td><td></td></tr>
+<tr name="376" id="376">
+<td><a id="l376" class='ln'>376</a></td><td>        <span class="br">{</span></td></tr>
+<tr name="377" id="377">
+<td><a id="l377" class='ln'>377</a></td><td>          <a id="377c11" class="tk">int_T</a> <a id="377c17" class="tk">i1</a>;</td></tr>
+<tr name="378" id="378">
+<td><a id="l378" class='ln'>378</a></td><td>          <a id="378c11" class="tk">real_T</a> <a id="378c18" class="tk">*</a><a id="378c19" class="tk">y0</a> = <a id="378c24" class="tk">&amp;</a><a id="378c25" class="tk">_rtB</a>-&gt;<a id="378c31" class="tk">StateSpace_o1</a>[0];</td></tr>
+<tr name="379" id="379">
+<td><a id="l379" class='ln'>379</a></td><td>          <span class="kw">for</span> (<a id="379c16" class="tk">i1</a>=0; <a id="379c22" class="tk">i1</a> <a id="379c25" class="tk">&lt;</a> 9; <a id="379c30" class="tk">i1</a><a id="379c32" class="tk">++</a>) <span class="br">{</span></td></tr>
+<tr name="380" id="380">
+<td><a id="l380" class='ln'>380</a></td><td>            <a id="380c13" class="tk">accum</a> = 0.0;</td></tr>
+<tr name="381" id="381">
+<td><a id="l381" class='ln'>381</a></td><td></td></tr>
+<tr name="382" id="382">
+<td><a id="l382" class='ln'>382</a></td><td>            <span class="br">{</span></td></tr>
+<tr name="383" id="383">
+<td><a id="l383" class='ln'>383</a></td><td>              <a id="383c15" class="tk">int_T</a> <a id="383c21" class="tk">i2</a>;</td></tr>
+<tr name="384" id="384">
+<td><a id="l384" class='ln'>384</a></td><td>              <span class="kw">const</span> <a id="384c21" class="tk">real_T</a> <a id="384c28" class="tk">*</a><a id="384c29" class="tk">u0</a> = <a id="384c34" class="tk">PMSM_Motor_TL3_ConstP</a>.<a id="384c56" class="tk">Constant_Value</a>;</td></tr>
+<tr name="385" id="385">
+<td><a id="l385" class='ln'>385</a></td><td>              <span class="kw">for</span> (<a id="385c20" class="tk">i2</a>=0; <a id="385c26" class="tk">i2</a> <a id="385c29" class="tk">&lt;</a> 6; <a id="385c34" class="tk">i2</a><a id="385c36" class="tk">++</a>) <span class="br">{</span></td></tr>
+<tr name="386" id="386">
+<td><a id="l386" class='ln'>386</a></td><td>                <a id="386c17" class="tk">accum</a> <a id="386c23" class="tk">+=</a> <a id="386c26" class="tk">*</a>(<a id="386c28" class="tk">Ds</a><a id="386c30" class="tk">++</a>) <a id="386c34" class="tk">*</a> <a id="386c36" class="tk">u0</a>[<a id="386c39" class="tk">i2</a>];</td></tr>
+<tr name="387" id="387">
+<td><a id="l387" class='ln'>387</a></td><td>              <span class="br">}</span></td></tr>
+<tr name="388" id="388">
+<td><a id="l388" class='ln'>388</a></td><td></td></tr>
+<tr name="389" id="389">
+<td><a id="l389" class='ln'>389</a></td><td>              <a id="389c15" class="tk">accum</a> <a id="389c21" class="tk">+=</a> <a id="389c24" class="tk">*</a>(<a id="389c26" class="tk">Ds</a><a id="389c28" class="tk">++</a>) <a id="389c32" class="tk">*</a> <a id="389c34" class="tk">_rtB</a>-&gt;<a id="389c40" class="tk">Fcn</a>;</td></tr>
+<tr name="390" id="390">
+<td><a id="l390" class='ln'>390</a></td><td>              <a id="390c15" class="tk">accum</a> <a id="390c21" class="tk">+=</a> <a id="390c24" class="tk">*</a>(<a id="390c26" class="tk">Ds</a><a id="390c28" class="tk">++</a>) <a id="390c32" class="tk">*</a> <a id="390c34" class="tk">_rtB</a>-&gt;<a id="390c40" class="tk">Fcn1</a>;</td></tr>
+<tr name="391" id="391">
+<td><a id="l391" class='ln'>391</a></td><td>              <a id="391c15" class="tk">accum</a> <a id="391c21" class="tk">+=</a> <a id="391c24" class="tk">*</a>(<a id="391c26" class="tk">Ds</a><a id="391c28" class="tk">++</a>) <a id="391c32" class="tk">*</a> (<a id="391c35" class="tk">*</a>((<span class="kw">const</span> <a id="391c44" class="tk">real_T</a><a id="391c50" class="tk">*</a><a id="391c51" class="tk">*</a>)<a id="391c53" class="tk">ssGetInputPortSignalPtrs</a>(<a id="391c78" class="tk">S</a>,</td></tr>
+<tr name="392" id="392">
+<td><a id="l392" class='ln'>392</a></td><td>                2)))[0];</td></tr>
+<tr name="393" id="393">
+<td><a id="l393" class='ln'>393</a></td><td>            <span class="br">}</span></td></tr>
+<tr name="394" id="394">
+<td><a id="l394" class='ln'>394</a></td><td></td></tr>
+<tr name="395" id="395">
+<td><a id="l395" class='ln'>395</a></td><td>            <a id="395c13" class="tk">y0</a>[<a id="395c16" class="tk">i1</a>] = <a id="395c22" class="tk">accum</a>;</td></tr>
+<tr name="396" id="396">
+<td><a id="l396" class='ln'>396</a></td><td>          <span class="br">}</span></td></tr>
+<tr name="397" id="397">
+<td><a id="l397" class='ln'>397</a></td><td>        <span class="br">}</span></td></tr>
+<tr name="398" id="398">
+<td><a id="l398" class='ln'>398</a></td><td></td></tr>
+<tr name="399" id="399">
+<td><a id="l399" class='ln'>399</a></td><td>        <a id="399c9" class="tk">swChanged</a> = 0;</td></tr>
+<tr name="400" id="400">
+<td><a id="l400" class='ln'>400</a></td><td></td></tr>
+<tr name="401" id="401">
+<td><a id="l401" class='ln'>401</a></td><td>        <span class="br">{</span></td></tr>
+<tr name="402" id="402">
+<td><a id="l402" class='ln'>402</a></td><td>          <a id="402c11" class="tk">int_T</a> <a id="402c17" class="tk">i1</a>;</td></tr>
+<tr name="403" id="403">
+<td><a id="l403" class='ln'>403</a></td><td>          <a id="403c11" class="tk">real_T</a> <a id="403c18" class="tk">*</a><a id="403c19" class="tk">y0</a> = <a id="403c24" class="tk">&amp;</a><a id="403c25" class="tk">_rtB</a>-&gt;<a id="403c31" class="tk">StateSpace_o1</a>[0];</td></tr>
+<tr name="404" id="404">
+<td><a id="l404" class='ln'>404</a></td><td>          <span class="kw">for</span> (<a id="404c16" class="tk">i1</a>=0; <a id="404c22" class="tk">i1</a> <a id="404c25" class="tk">&lt;</a> 6; <a id="404c30" class="tk">i1</a><a id="404c32" class="tk">++</a>) <span class="br">{</span></td></tr>
+<tr name="405" id="405">
+<td><a id="l405" class='ln'>405</a></td><td>            <a id="405c13" class="tk">newState</a> = ((<a id="405c26" class="tk">y0</a>[<a id="405c29" class="tk">i1</a>] <a id="405c33" class="tk">&gt;</a> 0.0) <a id="405c40" class="tk">&amp;&amp;</a> (<a id="405c44" class="tk">gState</a>[<a id="405c51" class="tk">i1</a>] <a id="405c55" class="tk">&gt;</a> 0)) <a id="405c61" class="tk">||</a> (<a id="405c65" class="tk">y0</a>[<a id="405c68" class="tk">i1</a>] <a id="405c72" class="tk">&lt;</a> 0.0) <a id="405c79" class="tk">?</a></td></tr>
+<tr name="406" id="406">
+<td><a id="l406" class='ln'>406</a></td><td>              1 <a id="406c17" class="tk">:</a> (((<a id="406c22" class="tk">y0</a>[<a id="406c25" class="tk">i1</a>] <a id="406c29" class="tk">&gt;</a> 0.0) <a id="406c36" class="tk">&amp;&amp;</a> <a id="406c39" class="tk">gState</a>[<a id="406c46" class="tk">i1</a>] <a id="406c50" class="tk">==</a> 0) <a id="406c56" class="tk">?</a> 0 <a id="406c60" class="tk">:</a> <a id="406c62" class="tk">switch_status</a>[<a id="406c76" class="tk">i1</a>]);</td></tr>
+<tr name="407" id="407">
+<td><a id="l407" class='ln'>407</a></td><td>            <a id="407c13" class="tk">swChanged</a> = ((<a id="407c27" class="tk">SwitchChange</a>[<a id="407c40" class="tk">i1</a>] = <a id="407c46" class="tk">newState</a> <a id="407c55" class="tk">-</a> <a id="407c57" class="tk">switch_status</a>[<a id="407c71" class="tk">i1</a>]) <a id="407c76" class="tk">!=</a> 0)</td></tr>
+<tr name="408" id="408">
+<td><a id="l408" class='ln'>408</a></td><td>              <a id="408c15" class="tk">?</a> 1 <a id="408c19" class="tk">:</a> <a id="408c21" class="tk">swChanged</a>;</td></tr>
+<tr name="409" id="409">
+<td><a id="l409" class='ln'>409</a></td><td>            <a id="409c13" class="tk">switch_status</a>[<a id="409c27" class="tk">i1</a>] = <a id="409c33" class="tk">newState</a>;<span class="ct">/* Keep new state */</span></td></tr>
+<tr name="410" id="410">
+<td><a id="l410" class='ln'>410</a></td><td>          <span class="br">}</span></td></tr>
+<tr name="411" id="411">
+<td><a id="l411" class='ln'>411</a></td><td>        <span class="br">}</span></td></tr>
+<tr name="412" id="412">
+<td><a id="l412" class='ln'>412</a></td><td>      <span class="br">}</span></td></tr>
+<tr name="413" id="413">
+<td><a id="l413" class='ln'>413</a></td><td></td></tr>
+<tr name="414" id="414">
+<td><a id="l414" class='ln'>414</a></td><td>      <span class="ct">/*</span></td></tr>
+<tr name="415" id="415">
+<td><a id="l415" class='ln'>415</a></td><td><span class="ct">       * Compute new As, Bs, Cs and Ds matrixes:</span></td></tr>
+<tr name="416" id="416">
+<td><a id="l416" class='ln'>416</a></td><td><span class="ct">       * --------------------------------------</span></td></tr>
+<tr name="417" id="417">
+<td><a id="l417" class='ln'>417</a></td><td><span class="ct">       */</span></td></tr>
+<tr name="418" id="418">
+<td><a id="l418" class='ln'>418</a></td><td>      <span class="kw">if</span> (<a id="418c11" class="tk">swChanged</a>) <span class="br">{</span></td></tr>
+<tr name="419" id="419">
+<td><a id="l419" class='ln'>419</a></td><td>        <a id="419c9" class="tk">real_T</a> <a id="419c16" class="tk">*</a><a id="419c17" class="tk">Ds</a> = (<a id="419c23" class="tk">real_T</a><a id="419c29" class="tk">*</a>)((<span class="kw">void</span><a id="419c37" class="tk">*</a><a id="419c38" class="tk">*</a>) <a id="419c41" class="tk">ssGetDWork</a>(<a id="419c52" class="tk">S</a>, 4))[3];</td></tr>
+<tr name="420" id="420">
+<td><a id="l420" class='ln'>420</a></td><td>        <a id="420c9" class="tk">real_T</a> <a id="420c16" class="tk">a1</a>;</td></tr>
+<tr name="421" id="421">
+<td><a id="l421" class='ln'>421</a></td><td></td></tr>
+<tr name="422" id="422">
+<td><a id="l422" class='ln'>422</a></td><td>        <span class="br">{</span></td></tr>
+<tr name="423" id="423">
+<td><a id="l423" class='ln'>423</a></td><td>          <a id="423c11" class="tk">int_T</a> <a id="423c17" class="tk">i1</a>;</td></tr>
+<tr name="424" id="424">
+<td><a id="l424" class='ln'>424</a></td><td>          <span class="kw">for</span> (<a id="424c16" class="tk">i1</a>=0; <a id="424c22" class="tk">i1</a> <a id="424c25" class="tk">&lt;</a> 6; <a id="424c30" class="tk">i1</a><a id="424c32" class="tk">++</a>) <span class="br">{</span></td></tr>
+<tr name="425" id="425">
+<td><a id="l425" class='ln'>425</a></td><td>            <span class="kw">if</span> (<a id="425c17" class="tk">SwitchChange</a>[<a id="425c30" class="tk">i1</a>] <a id="425c34" class="tk">!=</a> 0) <span class="br">{</span></td></tr>
+<tr name="426" id="426">
+<td><a id="l426" class='ln'>426</a></td><td>              <a id="426c15" class="tk">a1</a> = 1000.0<a id="426c26" class="tk">*</a><a id="426c27" class="tk">SwitchChange</a>[<a id="426c40" class="tk">i1</a>];</td></tr>
+<tr name="427" id="427">
+<td><a id="l427" class='ln'>427</a></td><td>              <a id="427c15" class="tk">temp</a> = 1<a id="427c23" class="tk">/</a>(1<a id="427c26" class="tk">-</a><a id="427c27" class="tk">Ds</a>[<a id="427c30" class="tk">i1</a><a id="427c32" class="tk">*</a>10]<a id="427c36" class="tk">*</a><a id="427c37" class="tk">a1</a>);</td></tr>
+<tr name="428" id="428">
+<td><a id="l428" class='ln'>428</a></td><td></td></tr>
+<tr name="429" id="429">
+<td><a id="l429" class='ln'>429</a></td><td>              <span class="br">{</span></td></tr>
+<tr name="430" id="430">
+<td><a id="l430" class='ln'>430</a></td><td>                <a id="430c17" class="tk">int_T</a> <a id="430c23" class="tk">i2</a>;</td></tr>
+<tr name="431" id="431">
+<td><a id="l431" class='ln'>431</a></td><td>                <span class="kw">for</span> (<a id="431c22" class="tk">i2</a>=0; <a id="431c28" class="tk">i2</a> <a id="431c31" class="tk">&lt;</a> 9; <a id="431c36" class="tk">i2</a><a id="431c38" class="tk">++</a>) <span class="br">{</span></td></tr>
+<tr name="432" id="432">
+<td><a id="l432" class='ln'>432</a></td><td>                  <a id="432c19" class="tk">DxCol</a>[<a id="432c25" class="tk">i2</a>]= <a id="432c30" class="tk">Ds</a>[<a id="432c33" class="tk">i2</a> <a id="432c36" class="tk">*</a> 9 <a id="432c40" class="tk">+</a> <a id="432c42" class="tk">i1</a>]<a id="432c45" class="tk">*</a><a id="432c46" class="tk">temp</a><a id="432c50" class="tk">*</a><a id="432c51" class="tk">a1</a>;</td></tr>
+<tr name="433" id="433">
+<td><a id="l433" class='ln'>433</a></td><td>                <span class="br">}</span></td></tr>
+<tr name="434" id="434">
+<td><a id="l434" class='ln'>434</a></td><td>              <span class="br">}</span></td></tr>
+<tr name="435" id="435">
+<td><a id="l435" class='ln'>435</a></td><td></td></tr>
+<tr name="436" id="436">
+<td><a id="l436" class='ln'>436</a></td><td>              <a id="436c15" class="tk">DxCol</a>[<a id="436c21" class="tk">i1</a>] = <a id="436c27" class="tk">temp</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">/* Copy row nSw of Ds into tmp2 and zero it out in Ds */</span></td></tr>
+<tr name="439" id="439">
+<td><a id="l439" class='ln'>439</a></td><td>              <a id="439c15" class="tk">memcpy</a>(<a id="439c22" class="tk">tmp2</a>, <a id="439c28" class="tk">&amp;</a><a id="439c29" class="tk">Ds</a>[<a id="439c32" class="tk">i1</a> <a id="439c35" class="tk">*</a> 9], 9 <a id="439c43" class="tk">*</a> <span class="kw">sizeof</span>(<a id="439c52" class="tk">real_T</a>));</td></tr>
+<tr name="440" id="440">
+<td><a id="l440" class='ln'>440</a></td><td>              <a id="440c15" class="tk">memset</a>(<a id="440c22" class="tk">&amp;</a><a id="440c23" class="tk">Ds</a>[<a id="440c26" class="tk">i1</a> <a id="440c29" class="tk">*</a> 9], '\0', 9 <a id="440c43" class="tk">*</a> <span class="kw">sizeof</span>(<a id="440c52" class="tk">real_T</a>));</td></tr>
+<tr name="441" id="441">
+<td><a id="l441" class='ln'>441</a></td><td></td></tr>
+<tr name="442" id="442">
+<td><a id="l442" class='ln'>442</a></td><td>              <span class="ct">/* Cs = Cs + DxCol * tmp1, Ds = Ds + DxCol * tmp2 *******************/</span></td></tr>
+<tr name="443" id="443">
+<td><a id="l443" class='ln'>443</a></td><td>              <span class="br">{</span></td></tr>
+<tr name="444" id="444">
+<td><a id="l444" class='ln'>444</a></td><td>                <a id="444c17" class="tk">int_T</a> <a id="444c23" class="tk">i2</a>;</td></tr>
+<tr name="445" id="445">
+<td><a id="l445" class='ln'>445</a></td><td>                <span class="kw">for</span> (<a id="445c22" class="tk">i2</a>=0; <a id="445c28" class="tk">i2</a> <a id="445c31" class="tk">&lt;</a> 9; <a id="445c36" class="tk">i2</a><a id="445c38" class="tk">++</a>) <span class="br">{</span></td></tr>
+<tr name="446" id="446">
+<td><a id="l446" class='ln'>446</a></td><td>                  <a id="446c19" class="tk">a1</a> = <a id="446c24" class="tk">DxCol</a>[<a id="446c30" class="tk">i2</a>];</td></tr>
+<tr name="447" id="447">
+<td><a id="l447" class='ln'>447</a></td><td></td></tr>
+<tr name="448" id="448">
+<td><a id="l448" class='ln'>448</a></td><td>                  <span class="br">{</span></td></tr>
+<tr name="449" id="449">
+<td><a id="l449" class='ln'>449</a></td><td>                    <a id="449c21" class="tk">int_T</a> <a id="449c27" class="tk">i3</a>;</td></tr>
+<tr name="450" id="450">
+<td><a id="l450" class='ln'>450</a></td><td>                    <span class="kw">for</span> (<a id="450c26" class="tk">i3</a>=0; <a id="450c32" class="tk">i3</a> <a id="450c35" class="tk">&lt;</a> 9; <a id="450c40" class="tk">i3</a><a id="450c42" class="tk">++</a>) <span class="br">{</span></td></tr>
+<tr name="451" id="451">
+<td><a id="l451" class='ln'>451</a></td><td>                      <a id="451c23" class="tk">Ds</a>[<a id="451c26" class="tk">i2</a> <a id="451c29" class="tk">*</a> 9 <a id="451c33" class="tk">+</a> <a id="451c35" class="tk">i3</a>] <a id="451c39" class="tk">+=</a> <a id="451c42" class="tk">a1</a> <a id="451c45" class="tk">*</a> <a id="451c47" class="tk">tmp2</a>[<a id="451c52" class="tk">i3</a>];</td></tr>
+<tr name="452" id="452">
+<td><a id="l452" class='ln'>452</a></td><td>                    <span class="br">}</span></td></tr>
+<tr name="453" id="453">
+<td><a id="l453" class='ln'>453</a></td><td>                  <span class="br">}</span></td></tr>
+<tr name="454" id="454">
+<td><a id="l454" class='ln'>454</a></td><td>                <span class="br">}</span></td></tr>
+<tr name="455" id="455">
+<td><a id="l455" class='ln'>455</a></td><td>              <span class="br">}</span></td></tr>
+<tr name="456" id="456">
+<td><a id="l456" class='ln'>456</a></td><td>            <span class="br">}</span></td></tr>
+<tr name="457" id="457">
+<td><a id="l457" class='ln'>457</a></td><td>          <span class="br">}</span></td></tr>
+<tr name="458" id="458">
+<td><a id="l458" class='ln'>458</a></td><td>        <span class="br">}</span></td></tr>
+<tr name="459" id="459">
+<td><a id="l459" class='ln'>459</a></td><td>      <span class="br">}</span>                                <span class="ct">/* if (swChanged) */</span></td></tr>
+<tr name="460" id="460">
+<td><a id="l460" class='ln'>460</a></td><td>    <span class="br">}</span> <span class="kw">while</span> (<a id="460c14" class="tk">swChanged</a> <a id="460c24" class="tk">&gt;</a> 0 <a id="460c28" class="tk">&amp;&amp;</a> <a id="460c31" class="tk">--</a><a id="460c33" class="tk">loopsToDo</a> <a id="460c43" class="tk">&gt;</a> 0);</td></tr>
+<tr name="461" id="461">
+<td><a id="l461" class='ln'>461</a></td><td></td></tr>
+<tr name="462" id="462">
+<td><a id="l462" class='ln'>462</a></td><td>    <span class="kw">if</span> (<a id="462c9" class="tk">loopsToDo</a> <a id="462c19" class="tk">==</a> 0) <span class="br">{</span></td></tr>
+<tr name="463" id="463">
+<td><a id="l463" class='ln'>463</a></td><td>      <a id="463c7" class="tk">real_T</a> <a id="463c14" class="tk">*</a><a id="463c15" class="tk">Ds</a> = (<a id="463c21" class="tk">real_T</a><a id="463c27" class="tk">*</a>)((<span class="kw">void</span><a id="463c35" class="tk">*</a><a id="463c36" class="tk">*</a>) <a id="463c39" class="tk">ssGetDWork</a>(<a id="463c50" class="tk">S</a>, 4))[3];</td></tr>
+<tr name="464" id="464">
+<td><a id="l464" class='ln'>464</a></td><td></td></tr>
+<tr name="465" id="465">
+<td><a id="l465" class='ln'>465</a></td><td>      <span class="br">{</span></td></tr>
+<tr name="466" id="466">
+<td><a id="l466" class='ln'>466</a></td><td>        <a id="466c9" class="tk">int_T</a> <a id="466c15" class="tk">i1</a>;</td></tr>
+<tr name="467" id="467">
+<td><a id="l467" class='ln'>467</a></td><td>        <a id="467c9" class="tk">real_T</a> <a id="467c16" class="tk">*</a><a id="467c17" class="tk">y0</a> = <a id="467c22" class="tk">&amp;</a><a id="467c23" class="tk">_rtB</a>-&gt;<a id="467c29" class="tk">StateSpace_o1</a>[0];</td></tr>
+<tr name="468" id="468">
+<td><a id="l468" class='ln'>468</a></td><td>        <span class="kw">for</span> (<a id="468c14" class="tk">i1</a>=0; <a id="468c20" class="tk">i1</a> <a id="468c23" class="tk">&lt;</a> 9; <a id="468c28" class="tk">i1</a><a id="468c30" class="tk">++</a>) <span class="br">{</span></td></tr>
+<tr name="469" id="469">
+<td><a id="l469" class='ln'>469</a></td><td>          <a id="469c11" class="tk">accum</a> = 0.0;</td></tr>
+<tr name="470" id="470">
+<td><a id="l470" class='ln'>470</a></td><td></td></tr>
+<tr name="471" id="471">
+<td><a id="l471" class='ln'>471</a></td><td>          <span class="br">{</span></td></tr>
+<tr name="472" id="472">
+<td><a id="l472" class='ln'>472</a></td><td>            <a id="472c13" class="tk">int_T</a> <a id="472c19" class="tk">i2</a>;</td></tr>
+<tr name="473" id="473">
+<td><a id="l473" class='ln'>473</a></td><td>            <span class="kw">const</span> <a id="473c19" class="tk">real_T</a> <a id="473c26" class="tk">*</a><a id="473c27" class="tk">u0</a> = <a id="473c32" class="tk">PMSM_Motor_TL3_ConstP</a>.<a id="473c54" class="tk">Constant_Value</a>;</td></tr>
+<tr name="474" id="474">
+<td><a id="l474" class='ln'>474</a></td><td>            <span class="kw">for</span> (<a id="474c18" class="tk">i2</a>=0; <a id="474c24" class="tk">i2</a> <a id="474c27" class="tk">&lt;</a> 6; <a id="474c32" class="tk">i2</a><a id="474c34" class="tk">++</a>) <span class="br">{</span></td></tr>
+<tr name="475" id="475">
+<td><a id="l475" class='ln'>475</a></td><td>              <a id="475c15" class="tk">accum</a> <a id="475c21" class="tk">+=</a> <a id="475c24" class="tk">*</a>(<a id="475c26" class="tk">Ds</a><a id="475c28" class="tk">++</a>) <a id="475c32" class="tk">*</a> <a id="475c34" class="tk">u0</a>[<a id="475c37" class="tk">i2</a>];</td></tr>
+<tr name="476" id="476">
+<td><a id="l476" class='ln'>476</a></td><td>            <span class="br">}</span></td></tr>
+<tr name="477" id="477">
+<td><a id="l477" class='ln'>477</a></td><td></td></tr>
+<tr name="478" id="478">
+<td><a id="l478" class='ln'>478</a></td><td>            <a id="478c13" class="tk">accum</a> <a id="478c19" class="tk">+=</a> <a id="478c22" class="tk">*</a>(<a id="478c24" class="tk">Ds</a><a id="478c26" class="tk">++</a>) <a id="478c30" class="tk">*</a> <a id="478c32" class="tk">_rtB</a>-&gt;<a id="478c38" class="tk">Fcn</a>;</td></tr>
+<tr name="479" id="479">
+<td><a id="l479" class='ln'>479</a></td><td>            <a id="479c13" class="tk">accum</a> <a id="479c19" class="tk">+=</a> <a id="479c22" class="tk">*</a>(<a id="479c24" class="tk">Ds</a><a id="479c26" class="tk">++</a>) <a id="479c30" class="tk">*</a> <a id="479c32" class="tk">_rtB</a>-&gt;<a id="479c38" class="tk">Fcn1</a>;</td></tr>
+<tr name="480" id="480">
+<td><a id="l480" class='ln'>480</a></td><td>            <a id="480c13" class="tk">accum</a> <a id="480c19" class="tk">+=</a> <a id="480c22" class="tk">*</a>(<a id="480c24" class="tk">Ds</a><a id="480c26" class="tk">++</a>) <a id="480c30" class="tk">*</a> (<a id="480c33" class="tk">*</a>((<span class="kw">const</span> <a id="480c42" class="tk">real_T</a><a id="480c48" class="tk">*</a><a id="480c49" class="tk">*</a>)<a id="480c51" class="tk">ssGetInputPortSignalPtrs</a>(<a id="480c76" class="tk">S</a>, 2)))</td></tr>
+<tr name="481" id="481">
+<td><a id="l481" class='ln'>481</a></td><td>              [0];</td></tr>
+<tr name="482" id="482">
+<td><a id="l482" class='ln'>482</a></td><td>          <span class="br">}</span></td></tr>
+<tr name="483" id="483">
+<td><a id="l483" class='ln'>483</a></td><td></td></tr>
+<tr name="484" id="484">
+<td><a id="l484" class='ln'>484</a></td><td>          <a id="484c11" class="tk">y0</a>[<a id="484c14" class="tk">i1</a>] = <a id="484c20" class="tk">accum</a>;</td></tr>
+<tr name="485" id="485">
+<td><a id="l485" class='ln'>485</a></td><td>        <span class="br">}</span></td></tr>
+<tr name="486" id="486">
+<td><a id="l486" class='ln'>486</a></td><td>      <span class="br">}</span></td></tr>
+<tr name="487" id="487">
+<td><a id="l487" class='ln'>487</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="488" id="488">
+<td><a id="l488" class='ln'>488</a></td><td></td></tr>
+<tr name="489" id="489">
+<td><a id="l489" class='ln'>489</a></td><td>    <span class="ct">/* Output new switches states */</span></td></tr>
+<tr name="490" id="490">
+<td><a id="l490" class='ln'>490</a></td><td>    <span class="br">{</span></td></tr>
+<tr name="491" id="491">
+<td><a id="l491" class='ln'>491</a></td><td>      <a id="491c7" class="tk">int_T</a> <a id="491c13" class="tk">i1</a>;</td></tr>
+<tr name="492" id="492">
+<td><a id="l492" class='ln'>492</a></td><td>      <a id="492c7" class="tk">real_T</a> <a id="492c14" class="tk">*</a><a id="492c15" class="tk">y1</a> = <a id="492c20" class="tk">&amp;</a><a id="492c21" class="tk">_rtB</a>-&gt;<a id="492c27" class="tk">StateSpace_o2</a>[0];</td></tr>
+<tr name="493" id="493">
+<td><a id="l493" class='ln'>493</a></td><td>      <span class="kw">for</span> (<a id="493c12" class="tk">i1</a>=0; <a id="493c18" class="tk">i1</a> <a id="493c21" class="tk">&lt;</a> 6; <a id="493c26" class="tk">i1</a><a id="493c28" class="tk">++</a>) <span class="br">{</span></td></tr>
+<tr name="494" id="494">
+<td><a id="l494" class='ln'>494</a></td><td>        <a id="494c9" class="tk">y1</a>[<a id="494c12" class="tk">i1</a>] = (<a id="494c19" class="tk">real_T</a>)<a id="494c26" class="tk">switch_status</a>[<a id="494c40" class="tk">i1</a>];</td></tr>
+<tr name="495" id="495">
+<td><a id="l495" class='ln'>495</a></td><td>      <span class="br">}</span></td></tr>
+<tr name="496" id="496">
+<td><a id="l496" class='ln'>496</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="497" id="497">
+<td><a id="l497" class='ln'>497</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="498" id="498">
+<td><a id="l498" class='ln'>498</a></td><td></td></tr>
+<tr name="499" id="499">
+<td><a id="l499" class='ln'>499</a></td><td>  <span class="ct">/* Fcn: '&lt;S13&gt;/Fcn3' incorporates:</span></td></tr>
+<tr name="500" id="500">
+<td><a id="l500" class='ln'>500</a></td><td><span class="ct">   *  Fcn: '&lt;S13&gt;/Fcn2'</span></td></tr>
+<tr name="501" id="501">
+<td><a id="l501" class='ln'>501</a></td><td><span class="ct">   *  Trigonometry: '&lt;S13&gt;/Elementary Math'</span></td></tr>
+<tr name="502" id="502">
+<td><a id="l502" class='ln'>502</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="503" id="503">
+<td><a id="l503" class='ln'>503</a></td><td>  <a id="503c3" class="tk">rtb_DataTypeConversion2</a> = 2.0 <a id="503c33" class="tk">*</a> <a id="503c35" class="tk">_rtB</a>-&gt;<a id="503c41" class="tk">StateSpace_o1</a>[6] <a id="503c58" class="tk">+</a> <a id="503c60" class="tk">_rtB</a>-&gt;<a id="503c66" class="tk">StateSpace_o1</a>[7];</td></tr>
+<tr name="504" id="504">
+<td><a id="l504" class='ln'>504</a></td><td>  <a id="504c3" class="tk">rtb_DataTypeConversion1</a> = (<a id="504c30" class="tk">rtb_DataTypeConversion2</a> <a id="504c54" class="tk">*</a> <a id="504c56" class="tk">rtb_ElementaryMath_o1_tmp</a></td></tr>
+<tr name="505" id="505">
+<td><a id="l505" class='ln'>505</a></td><td>    <a id="505c5" class="tk">+</a> <a id="505c7" class="tk">-</a>1.7320508075688772 <a id="505c27" class="tk">*</a> <a id="505c29" class="tk">_rtB</a>-&gt;<a id="505c35" class="tk">StateSpace_o1</a>[7] <a id="505c52" class="tk">*</a> <a id="505c54" class="tk">rtb_ElementaryMath_o2_tmp</a>) <a id="505c81" class="tk">*</a></td></tr>
+<tr name="506" id="506">
+<td><a id="l506" class='ln'>506</a></td><td>    0.33333333333333331;</td></tr>
+<tr name="507" id="507">
+<td><a id="l507" class='ln'>507</a></td><td></td></tr>
+<tr name="508" id="508">
+<td><a id="l508" class='ln'>508</a></td><td>  <span class="ct">/* Fcn: '&lt;S13&gt;/Fcn2' incorporates:</span></td></tr>
+<tr name="509" id="509">
+<td><a id="l509" class='ln'>509</a></td><td><span class="ct">   *  Trigonometry: '&lt;S13&gt;/Elementary Math'</span></td></tr>
+<tr name="510" id="510">
+<td><a id="l510" class='ln'>510</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="511" id="511">
+<td><a id="l511" class='ln'>511</a></td><td>  <a id="511c3" class="tk">rtb_DataTypeConversion2</a> = (<a id="511c30" class="tk">rtb_DataTypeConversion2</a> <a id="511c54" class="tk">*</a> <a id="511c56" class="tk">rtb_ElementaryMath_o2_tmp</a></td></tr>
+<tr name="512" id="512">
+<td><a id="l512" class='ln'>512</a></td><td>    <a id="512c5" class="tk">+</a> 1.7320508075688772 <a id="512c26" class="tk">*</a> <a id="512c28" class="tk">_rtB</a>-&gt;<a id="512c34" class="tk">StateSpace_o1</a>[7] <a id="512c51" class="tk">*</a> <a id="512c53" class="tk">rtb_ElementaryMath_o1_tmp</a>) <a id="512c80" class="tk">*</a></td></tr>
+<tr name="513" id="513">
+<td><a id="l513" class='ln'>513</a></td><td>    0.33333333333333331;</td></tr>
+<tr name="514" id="514">
+<td><a id="l514" class='ln'>514</a></td><td></td></tr>
+<tr name="515" id="515">
+<td><a id="l515" class='ln'>515</a></td><td>  <span class="ct">/* Outport: '&lt;Root&gt;/Stator voltage Vs_q (V)' */</span></td></tr>
+<tr name="516" id="516">
+<td><a id="l516" class='ln'>516</a></td><td>  ((<a id="516c5" class="tk">real_T</a> <a id="516c12" class="tk">*</a>)<a id="516c14" class="tk">ssGetOutputPortSignal</a>(<a id="516c36" class="tk">S</a>, 5))[0] = <a id="516c48" class="tk">rtb_DataTypeConversion2</a>;</td></tr>
+<tr name="517" id="517">
+<td><a id="l517" class='ln'>517</a></td><td></td></tr>
+<tr name="518" id="518">
+<td><a id="l518" class='ln'>518</a></td><td>  <span class="ct">/* Gain: '&lt;S11&gt;/Gain' */</span></td></tr>
+<tr name="519" id="519">
+<td><a id="l519" class='ln'>519</a></td><td>  <a id="519c3" class="tk">_rtB</a>-&gt;<a id="519c9" class="tk">Gain</a> = 4.0 <a id="519c20" class="tk">*</a> <a id="519c22" class="tk">*</a>((<span class="kw">const</span> <a id="519c31" class="tk">real_T</a> <a id="519c38" class="tk">*</a><a id="519c39" class="tk">*</a>)<a id="519c41" class="tk">ssGetInputPortSignalPtrs</a>(<a id="519c66" class="tk">S</a>, 1))[0];</td></tr>
+<tr name="520" id="520">
+<td><a id="l520" class='ln'>520</a></td><td></td></tr>
+<tr name="521" id="521">
+<td><a id="l521" class='ln'>521</a></td><td>  <span class="ct">/* Sum: '&lt;S18&gt;/Sum1' incorporates:</span></td></tr>
+<tr name="522" id="522">
+<td><a id="l522" class='ln'>522</a></td><td><span class="ct">   *  DiscreteIntegrator: '&lt;S17&gt;/Discrete-Time Integrator'</span></td></tr>
+<tr name="523" id="523">
+<td><a id="l523" class='ln'>523</a></td><td><span class="ct">   *  DiscreteIntegrator: '&lt;S18&gt;/Discrete-Time Integrator'</span></td></tr>
+<tr name="524" id="524">
+<td><a id="l524" class='ln'>524</a></td><td><span class="ct">   *  Gain: '&lt;S18&gt;/1//Lq'</span></td></tr>
+<tr name="525" id="525">
+<td><a id="l525" class='ln'>525</a></td><td><span class="ct">   *  Gain: '&lt;S18&gt;/R//Lq'</span></td></tr>
+<tr name="526" id="526">
+<td><a id="l526" class='ln'>526</a></td><td><span class="ct">   *  Gain: '&lt;S18&gt;/lam//Lq'</span></td></tr>
+<tr name="527" id="527">
+<td><a id="l527" class='ln'>527</a></td><td><span class="ct">   *  Product: '&lt;S18&gt;/Product1'</span></td></tr>
+<tr name="528" id="528">
+<td><a id="l528" class='ln'>528</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="529" id="529">
+<td><a id="l529" class='ln'>529</a></td><td>  <a id="529c3" class="tk">_rtB</a>-&gt;<a id="529c9" class="tk">Sum1</a> = ((5617.9775280898875 <a id="529c37" class="tk">*</a> <a id="529c39" class="tk">rtb_DataTypeConversion2</a> <a id="529c63" class="tk">-</a></td></tr>
+<tr name="530" id="530">
+<td><a id="l530" class='ln'>530</a></td><td>                 61.797752808988761 <a id="530c37" class="tk">*</a> ((<a id="530c41" class="tk">real_T</a> <a id="530c48" class="tk">*</a>)<a id="530c50" class="tk">ssGetDWork</a>(<a id="530c61" class="tk">S</a>, 1))[0]) <a id="530c72" class="tk">-</a></td></tr>
+<tr name="531" id="531">
+<td><a id="l531" class='ln'>531</a></td><td>                ((<a id="531c19" class="tk">real_T</a> <a id="531c26" class="tk">*</a>)<a id="531c28" class="tk">ssGetDWork</a>(<a id="531c39" class="tk">S</a>, 2))[0] <a id="531c49" class="tk">*</a> <a id="531c51" class="tk">_rtB</a>-&gt;<a id="531c57" class="tk">Gain</a>) <a id="531c63" class="tk">-</a></td></tr>
+<tr name="532" id="532">
+<td><a id="l532" class='ln'>532</a></td><td>    67.415730337078656 <a id="532c24" class="tk">*</a> <a id="532c26" class="tk">_rtB</a>-&gt;<a id="532c32" class="tk">Gain</a>;</td></tr>
+<tr name="533" id="533">
+<td><a id="l533" class='ln'>533</a></td><td></td></tr>
+<tr name="534" id="534">
+<td><a id="l534" class='ln'>534</a></td><td>  <span class="ct">/* Sum: '&lt;S17&gt;/Sum' incorporates:</span></td></tr>
+<tr name="535" id="535">
+<td><a id="l535" class='ln'>535</a></td><td><span class="ct">   *  DiscreteIntegrator: '&lt;S17&gt;/Discrete-Time Integrator'</span></td></tr>
+<tr name="536" id="536">
+<td><a id="l536" class='ln'>536</a></td><td><span class="ct">   *  DiscreteIntegrator: '&lt;S18&gt;/Discrete-Time Integrator'</span></td></tr>
+<tr name="537" id="537">
+<td><a id="l537" class='ln'>537</a></td><td><span class="ct">   *  Gain: '&lt;S17&gt;/1//Ld'</span></td></tr>
+<tr name="538" id="538">
+<td><a id="l538" class='ln'>538</a></td><td><span class="ct">   *  Gain: '&lt;S17&gt;/R//Ld'</span></td></tr>
+<tr name="539" id="539">
+<td><a id="l539" class='ln'>539</a></td><td><span class="ct">   *  Product: '&lt;S17&gt;/Product'</span></td></tr>
+<tr name="540" id="540">
+<td><a id="l540" class='ln'>540</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="541" id="541">
+<td><a id="l541" class='ln'>541</a></td><td>  <a id="541c3" class="tk">_rtB</a>-&gt;<a id="541c9" class="tk">Sum</a> = (5617.9775280898875 <a id="541c35" class="tk">*</a> <a id="541c37" class="tk">rtb_DataTypeConversion1</a> <a id="541c61" class="tk">-</a> 61.797752808988761</td></tr>
+<tr name="542" id="542">
+<td><a id="l542" class='ln'>542</a></td><td>               <a id="542c16" class="tk">*</a> ((<a id="542c20" class="tk">real_T</a> <a id="542c27" class="tk">*</a>)<a id="542c29" class="tk">ssGetDWork</a>(<a id="542c40" class="tk">S</a>, 2))[0]) <a id="542c51" class="tk">+</a> <a id="542c53" class="tk">_rtB</a>-&gt;<a id="542c59" class="tk">Gain</a> <a id="542c64" class="tk">*</a> ((<a id="542c68" class="tk">real_T</a> <a id="542c75" class="tk">*</a>)</td></tr>
+<tr name="543" id="543">
+<td><a id="l543" class='ln'>543</a></td><td>    <a id="543c5" class="tk">ssGetDWork</a>(<a id="543c16" class="tk">S</a>, 1))[0];</td></tr>
+<tr name="544" id="544">
+<td><a id="l544" class='ln'>544</a></td><td></td></tr>
+<tr name="545" id="545">
+<td><a id="l545" class='ln'>545</a></td><td>  <span class="ct">/* Outport: '&lt;Root&gt;/Stator voltage Vs_d (V)' */</span></td></tr>
+<tr name="546" id="546">
+<td><a id="l546" class='ln'>546</a></td><td>  ((<a id="546c5" class="tk">real_T</a> <a id="546c12" class="tk">*</a>)<a id="546c14" class="tk">ssGetOutputPortSignal</a>(<a id="546c36" class="tk">S</a>, 6))[0] = <a id="546c48" class="tk">rtb_DataTypeConversion1</a>;</td></tr>
+<tr name="547" id="547">
+<td><a id="l547" class='ln'>547</a></td><td></td></tr>
+<tr name="548" id="548">
+<td><a id="l548" class='ln'>548</a></td><td>  <span class="ct">/* Sum: '&lt;S4&gt;/Add1' incorporates:</span></td></tr>
+<tr name="549" id="549">
+<td><a id="l549" class='ln'>549</a></td><td><span class="ct">   *  Constant: '&lt;S4&gt;/Filter_Constant'</span></td></tr>
+<tr name="550" id="550">
+<td><a id="l550" class='ln'>550</a></td><td><span class="ct">   *  Constant: '&lt;S4&gt;/One'</span></td></tr>
+<tr name="551" id="551">
+<td><a id="l551" class='ln'>551</a></td><td><span class="ct">   *  Product: '&lt;S4&gt;/Product'</span></td></tr>
+<tr name="552" id="552">
+<td><a id="l552" class='ln'>552</a></td><td><span class="ct">   *  Product: '&lt;S4&gt;/Product1'</span></td></tr>
+<tr name="553" id="553">
+<td><a id="l553" class='ln'>553</a></td><td><span class="ct">   *  UnitDelay: '&lt;S4&gt;/Unit Delay'</span></td></tr>
+<tr name="554" id="554">
+<td><a id="l554" class='ln'>554</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="555" id="555">
+<td><a id="l555" class='ln'>555</a></td><td>  <a id="555c3" class="tk">_rtB</a>-&gt;<a id="555c9" class="tk">Add1</a> = <a id="555c16" class="tk">_rtB</a>-&gt;<a id="555c22" class="tk">StateSpace_o1</a>[8] <a id="555c39" class="tk">*</a> 0.001 <a id="555c47" class="tk">+</a> 0.999 <a id="555c55" class="tk">*</a> ((<a id="555c59" class="tk">real_T</a> <a id="555c66" class="tk">*</a>)<a id="555c68" class="tk">ssGetDWork</a>(<a id="555c79" class="tk">S</a>,</td></tr>
+<tr name="556" id="556">
+<td><a id="l556" class='ln'>556</a></td><td>    3))[0];</td></tr>
+<tr name="557" id="557">
+<td><a id="l557" class='ln'>557</a></td><td></td></tr>
+<tr name="558" id="558">
+<td><a id="l558" class='ln'>558</a></td><td>  <span class="ct">/* Outport: '&lt;Root&gt;/Stator current is_b (A)' */</span></td></tr>
+<tr name="559" id="559">
+<td><a id="l559" class='ln'>559</a></td><td>  ((<a id="559c5" class="tk">real_T</a> <a id="559c12" class="tk">*</a>)<a id="559c14" class="tk">ssGetOutputPortSignal</a>(<a id="559c36" class="tk">S</a>, 1))[0] = <a id="559c48" class="tk">_rtB</a>-&gt;<a id="559c54" class="tk">Fcn1</a>;</td></tr>
+<tr name="560" id="560">
+<td><a id="l560" class='ln'>560</a></td><td></td></tr>
+<tr name="561" id="561">
+<td><a id="l561" class='ln'>561</a></td><td>  <span class="ct">/* Outport: '&lt;Root&gt;/Stator current is_c (A)' incorporates:</span></td></tr>
+<tr name="562" id="562">
+<td><a id="l562" class='ln'>562</a></td><td><span class="ct">   *  Sum: '&lt;S15&gt;/Sum'</span></td></tr>
+<tr name="563" id="563">
+<td><a id="l563" class='ln'>563</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="564" id="564">
+<td><a id="l564" class='ln'>564</a></td><td>  ((<a id="564c5" class="tk">real_T</a> <a id="564c12" class="tk">*</a>)<a id="564c14" class="tk">ssGetOutputPortSignal</a>(<a id="564c36" class="tk">S</a>, 2))[0] = (0.0 <a id="564c53" class="tk">-</a> <a id="564c55" class="tk">_rtB</a>-&gt;<a id="564c61" class="tk">Fcn1</a>) <a id="564c67" class="tk">-</a> <a id="564c69" class="tk">_rtB</a>-&gt;<a id="564c75" class="tk">Fcn</a>;</td></tr>
+<tr name="565" id="565">
+<td><a id="l565" class='ln'>565</a></td><td></td></tr>
+<tr name="566" id="566">
+<td><a id="l566" class='ln'>566</a></td><td>  <span class="ct">/* Outport: '&lt;Root&gt;/Stator current is_a (A)' */</span></td></tr>
+<tr name="567" id="567">
+<td><a id="l567" class='ln'>567</a></td><td>  ((<a id="567c5" class="tk">real_T</a> <a id="567c12" class="tk">*</a>)<a id="567c14" class="tk">ssGetOutputPortSignal</a>(<a id="567c36" class="tk">S</a>, 0))[0] = <a id="567c48" class="tk">_rtB</a>-&gt;<a id="567c54" class="tk">Fcn</a>;</td></tr>
+<tr name="568" id="568">
+<td><a id="l568" class='ln'>568</a></td><td></td></tr>
+<tr name="569" id="569">
+<td><a id="l569" class='ln'>569</a></td><td>  <span class="ct">/* Outport: '&lt;Root&gt;/Stator current is_d (A)' incorporates:</span></td></tr>
+<tr name="570" id="570">
+<td><a id="l570" class='ln'>570</a></td><td><span class="ct">   *  DiscreteIntegrator: '&lt;S17&gt;/Discrete-Time Integrator'</span></td></tr>
+<tr name="571" id="571">
+<td><a id="l571" class='ln'>571</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="572" id="572">
+<td><a id="l572" class='ln'>572</a></td><td>  ((<a id="572c5" class="tk">real_T</a> <a id="572c12" class="tk">*</a>)<a id="572c14" class="tk">ssGetOutputPortSignal</a>(<a id="572c36" class="tk">S</a>, 4))[0] = ((<a id="572c50" class="tk">real_T</a> <a id="572c57" class="tk">*</a>)<a id="572c59" class="tk">ssGetDWork</a>(<a id="572c70" class="tk">S</a>, 2))[0];</td></tr>
+<tr name="573" id="573">
+<td><a id="l573" class='ln'>573</a></td><td></td></tr>
+<tr name="574" id="574">
+<td><a id="l574" class='ln'>574</a></td><td>  <span class="ct">/* Outport: '&lt;Root&gt;/Electromagnetic torque Te (N*m)' incorporates:</span></td></tr>
+<tr name="575" id="575">
+<td><a id="l575" class='ln'>575</a></td><td><span class="ct">   *  DiscreteIntegrator: '&lt;S17&gt;/Discrete-Time Integrator'</span></td></tr>
+<tr name="576" id="576">
+<td><a id="l576" class='ln'>576</a></td><td><span class="ct">   *  DiscreteIntegrator: '&lt;S18&gt;/Discrete-Time Integrator'</span></td></tr>
+<tr name="577" id="577">
+<td><a id="l577" class='ln'>577</a></td><td><span class="ct">   *  Fcn: '&lt;S9&gt;/Te '</span></td></tr>
+<tr name="578" id="578">
+<td><a id="l578" class='ln'>578</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="579" id="579">
+<td><a id="l579" class='ln'>579</a></td><td>  ((<a id="579c5" class="tk">real_T</a> <a id="579c12" class="tk">*</a>)<a id="579c14" class="tk">ssGetOutputPortSignal</a>(<a id="579c36" class="tk">S</a>, 12))[0] = (0.0 <a id="579c54" class="tk">*</a> ((<a id="579c58" class="tk">real_T</a> <a id="579c65" class="tk">*</a>)<a id="579c67" class="tk">ssGetDWork</a>(<a id="579c78" class="tk">S</a>,</td></tr>
+<tr name="580" id="580">
+<td><a id="l580" class='ln'>580</a></td><td>    1))[0] <a id="580c12" class="tk">*</a> ((<a id="580c16" class="tk">real_T</a> <a id="580c23" class="tk">*</a>)<a id="580c25" class="tk">ssGetDWork</a>(<a id="580c36" class="tk">S</a>, 2))[0] <a id="580c46" class="tk">+</a> 0.012 <a id="580c54" class="tk">*</a> ((<a id="580c58" class="tk">real_T</a> <a id="580c65" class="tk">*</a>)<a id="580c67" class="tk">ssGetDWork</a>(<a id="580c78" class="tk">S</a>,</td></tr>
+<tr name="581" id="581">
+<td><a id="l581" class='ln'>581</a></td><td>    1))[0]) <a id="581c13" class="tk">*</a> 6.0;</td></tr>
+<tr name="582" id="582">
+<td><a id="l582" class='ln'>582</a></td><td></td></tr>
+<tr name="583" id="583">
+<td><a id="l583" class='ln'>583</a></td><td>  <span class="ct">/* Outport: '&lt;Root&gt;/Stator current is_q (A)' incorporates:</span></td></tr>
+<tr name="584" id="584">
+<td><a id="l584" class='ln'>584</a></td><td><span class="ct">   *  DiscreteIntegrator: '&lt;S18&gt;/Discrete-Time Integrator'</span></td></tr>
+<tr name="585" id="585">
+<td><a id="l585" class='ln'>585</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="586" id="586">
+<td><a id="l586" class='ln'>586</a></td><td>  ((<a id="586c5" class="tk">real_T</a> <a id="586c12" class="tk">*</a>)<a id="586c14" class="tk">ssGetOutputPortSignal</a>(<a id="586c36" class="tk">S</a>, 3))[0] = ((<a id="586c50" class="tk">real_T</a> <a id="586c57" class="tk">*</a>)<a id="586c59" class="tk">ssGetDWork</a>(<a id="586c70" class="tk">S</a>, 1))[0];</td></tr>
+<tr name="587" id="587">
+<td><a id="l587" class='ln'>587</a></td><td></td></tr>
+<tr name="588" id="588">
+<td><a id="l588" class='ln'>588</a></td><td>  <span class="ct">/* Outport: '&lt;Root&gt;/Rotor angle thetam (rad)' incorporates:</span></td></tr>
+<tr name="589" id="589">
+<td><a id="l589" class='ln'>589</a></td><td><span class="ct">   *  DiscreteIntegrator: '&lt;S11&gt;/Discrete-Time Integrator1'</span></td></tr>
+<tr name="590" id="590">
+<td><a id="l590" class='ln'>590</a></td><td><span class="ct">   *  Fcn: '&lt;S11&gt;/Fcn'</span></td></tr>
+<tr name="591" id="591">
+<td><a id="l591" class='ln'>591</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="592" id="592">
+<td><a id="l592" class='ln'>592</a></td><td>  ((<a id="592c5" class="tk">real_T</a> <a id="592c12" class="tk">*</a>)<a id="592c14" class="tk">ssGetOutputPortSignal</a>(<a id="592c36" class="tk">S</a>, 11))[0] = (((<a id="592c52" class="tk">real_T</a> <a id="592c59" class="tk">*</a>)<a id="592c61" class="tk">ssGetDWork</a>(<a id="592c72" class="tk">S</a>, 0))[0]</td></tr>
+<tr name="593" id="593">
+<td><a id="l593" class='ln'>593</a></td><td>    <a id="593c5" class="tk">-</a> 1.5707963267948966) <a id="593c27" class="tk">/</a> 4.0;</td></tr>
+<tr name="594" id="594">
+<td><a id="l594" class='ln'>594</a></td><td></td></tr>
+<tr name="595" id="595">
+<td><a id="l595" class='ln'>595</a></td><td>  <span class="ct">/* Gain: '&lt;S16&gt;/rad2deg' incorporates:</span></td></tr>
+<tr name="596" id="596">
+<td><a id="l596" class='ln'>596</a></td><td><span class="ct">   *  Trigonometry: '&lt;S16&gt;/Trigonometric Function2'</span></td></tr>
+<tr name="597" id="597">
+<td><a id="l597" class='ln'>597</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="598" id="598">
+<td><a id="l598" class='ln'>598</a></td><td>  <a id="598c3" class="tk">rtb_DataTypeConversion2</a> = 57.295779513082323 <a id="598c48" class="tk">*</a> <a id="598c50" class="tk">PMSM_Motor_TL3_rt_atan2d_snf</a></td></tr>
+<tr name="599" id="599">
+<td><a id="l599" class='ln'>599</a></td><td>    (<a id="599c6" class="tk">rtb_ElementaryMath_o1_tmp</a>, <a id="599c33" class="tk">rtb_ElementaryMath_o2_tmp</a>);</td></tr>
+<tr name="600" id="600">
+<td><a id="l600" class='ln'>600</a></td><td></td></tr>
+<tr name="601" id="601">
+<td><a id="l601" class='ln'>601</a></td><td>  <span class="ct">/* Outport: '&lt;Root&gt;/Hall effect signal h_a' incorporates:</span></td></tr>
+<tr name="602" id="602">
+<td><a id="l602" class='ln'>602</a></td><td><span class="ct">   *  Constant: '&lt;S12&gt;/Constant'</span></td></tr>
+<tr name="603" id="603">
+<td><a id="l603" class='ln'>603</a></td><td><span class="ct">   *  Constant: '&lt;S12&gt;/Constant1'</span></td></tr>
+<tr name="604" id="604">
+<td><a id="l604" class='ln'>604</a></td><td><span class="ct">   *  DataTypeConversion: '&lt;S12&gt;/Data Type Conversion'</span></td></tr>
+<tr name="605" id="605">
+<td><a id="l605" class='ln'>605</a></td><td><span class="ct">   *  Logic: '&lt;S12&gt;/Logical Operator'</span></td></tr>
+<tr name="606" id="606">
+<td><a id="l606" class='ln'>606</a></td><td><span class="ct">   *  RelationalOperator: '&lt;S12&gt;/Relational Operator1'</span></td></tr>
+<tr name="607" id="607">
+<td><a id="l607" class='ln'>607</a></td><td><span class="ct">   *  RelationalOperator: '&lt;S12&gt;/Relational Operator2'</span></td></tr>
+<tr name="608" id="608">
+<td><a id="l608" class='ln'>608</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="609" id="609">
+<td><a id="l609" class='ln'>609</a></td><td>  ((<a id="609c5" class="tk">real_T</a> <a id="609c12" class="tk">*</a>)<a id="609c14" class="tk">ssGetOutputPortSignal</a>(<a id="609c36" class="tk">S</a>, 7))[0] = ((<a id="609c50" class="tk">rtb_DataTypeConversion2</a> <a id="609c74" class="tk">&gt;=</a></td></tr>
+<tr name="610" id="610">
+<td><a id="l610" class='ln'>610</a></td><td>    <a id="610c5" class="tk">-</a>60.0) <a id="610c12" class="tk">&amp;&amp;</a> (<a id="610c16" class="tk">rtb_DataTypeConversion2</a> <a id="610c40" class="tk">&lt;=</a> 120.0));</td></tr>
+<tr name="611" id="611">
+<td><a id="l611" class='ln'>611</a></td><td></td></tr>
+<tr name="612" id="612">
+<td><a id="l612" class='ln'>612</a></td><td>  <span class="ct">/* Outport: '&lt;Root&gt;/Hall effect signal h_b' incorporates:</span></td></tr>
+<tr name="613" id="613">
+<td><a id="l613" class='ln'>613</a></td><td><span class="ct">   *  Constant: '&lt;S12&gt;/Constant2'</span></td></tr>
+<tr name="614" id="614">
+<td><a id="l614" class='ln'>614</a></td><td><span class="ct">   *  Constant: '&lt;S12&gt;/Constant3'</span></td></tr>
+<tr name="615" id="615">
+<td><a id="l615" class='ln'>615</a></td><td><span class="ct">   *  DataTypeConversion: '&lt;S12&gt;/Data Type Conversion1'</span></td></tr>
+<tr name="616" id="616">
+<td><a id="l616" class='ln'>616</a></td><td><span class="ct">   *  Logic: '&lt;S12&gt;/Logical Operator1'</span></td></tr>
+<tr name="617" id="617">
+<td><a id="l617" class='ln'>617</a></td><td><span class="ct">   *  RelationalOperator: '&lt;S12&gt;/Relational Operator3'</span></td></tr>
+<tr name="618" id="618">
+<td><a id="l618" class='ln'>618</a></td><td><span class="ct">   *  RelationalOperator: '&lt;S12&gt;/Relational Operator4'</span></td></tr>
+<tr name="619" id="619">
+<td><a id="l619" class='ln'>619</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="620" id="620">
+<td><a id="l620" class='ln'>620</a></td><td>  ((<a id="620c5" class="tk">real_T</a> <a id="620c12" class="tk">*</a>)<a id="620c14" class="tk">ssGetOutputPortSignal</a>(<a id="620c36" class="tk">S</a>, 8))[0] = ((<a id="620c50" class="tk">rtb_DataTypeConversion2</a> <a id="620c74" class="tk">&gt;=</a> 60.0)</td></tr>
+<tr name="621" id="621">
+<td><a id="l621" class='ln'>621</a></td><td>    <a id="621c5" class="tk">||</a> (<a id="621c9" class="tk">rtb_DataTypeConversion2</a> <a id="621c33" class="tk">&lt;=</a> <a id="621c36" class="tk">-</a>120.0));</td></tr>
+<tr name="622" id="622">
+<td><a id="l622" class='ln'>622</a></td><td></td></tr>
+<tr name="623" id="623">
+<td><a id="l623" class='ln'>623</a></td><td>  <span class="ct">/* Outport: '&lt;Root&gt;/Hall effect signal h_c' incorporates:</span></td></tr>
+<tr name="624" id="624">
+<td><a id="l624" class='ln'>624</a></td><td><span class="ct">   *  Constant: '&lt;S12&gt;/Constant4'</span></td></tr>
+<tr name="625" id="625">
+<td><a id="l625" class='ln'>625</a></td><td><span class="ct">   *  Constant: '&lt;S12&gt;/Constant5'</span></td></tr>
+<tr name="626" id="626">
+<td><a id="l626" class='ln'>626</a></td><td><span class="ct">   *  DataTypeConversion: '&lt;S12&gt;/Data Type Conversion2'</span></td></tr>
+<tr name="627" id="627">
+<td><a id="l627" class='ln'>627</a></td><td><span class="ct">   *  Logic: '&lt;S12&gt;/Logical Operator2'</span></td></tr>
+<tr name="628" id="628">
+<td><a id="l628" class='ln'>628</a></td><td><span class="ct">   *  RelationalOperator: '&lt;S12&gt;/Relational Operator5'</span></td></tr>
+<tr name="629" id="629">
+<td><a id="l629" class='ln'>629</a></td><td><span class="ct">   *  RelationalOperator: '&lt;S12&gt;/Relational Operator6'</span></td></tr>
+<tr name="630" id="630">
+<td><a id="l630" class='ln'>630</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="631" id="631">
+<td><a id="l631" class='ln'>631</a></td><td>  ((<a id="631c5" class="tk">real_T</a> <a id="631c12" class="tk">*</a>)<a id="631c14" class="tk">ssGetOutputPortSignal</a>(<a id="631c36" class="tk">S</a>, 9))[0] = ((<a id="631c50" class="tk">rtb_DataTypeConversion2</a> <a id="631c74" class="tk">&gt;=</a></td></tr>
+<tr name="632" id="632">
+<td><a id="l632" class='ln'>632</a></td><td>    <a id="632c5" class="tk">-</a>180.0) <a id="632c13" class="tk">&amp;&amp;</a> (<a id="632c17" class="tk">rtb_DataTypeConversion2</a> <a id="632c41" class="tk">&lt;=</a> 0.0));</td></tr>
+<tr name="633" id="633">
+<td><a id="l633" class='ln'>633</a></td><td></td></tr>
+<tr name="634" id="634">
+<td><a id="l634" class='ln'>634</a></td><td>  <span class="ct">/* Outport: '&lt;Root&gt;/Rotor speed wm (rad//s)' */</span></td></tr>
+<tr name="635" id="635">
+<td><a id="l635" class='ln'>635</a></td><td>  ((<a id="635c5" class="tk">real_T</a> <a id="635c12" class="tk">*</a>)<a id="635c14" class="tk">ssGetOutputPortSignal</a>(<a id="635c36" class="tk">S</a>, 10))[0] = <a id="635c49" class="tk">*</a>((<span class="kw">const</span> <a id="635c58" class="tk">real_T</a> <a id="635c65" class="tk">*</a><a id="635c66" class="tk">*</a>)</td></tr>
+<tr name="636" id="636">
+<td><a id="l636" class='ln'>636</a></td><td>    <a id="636c5" class="tk">ssGetInputPortSignalPtrs</a>(<a id="636c30" class="tk">S</a>, 1))[0];</td></tr>
+<tr name="637" id="637">
+<td><a id="l637" class='ln'>637</a></td><td>  <a id="637c3" class="tk">UNUSED_PARAMETER</a>(<a id="637c20" class="tk">tid</a>);</td></tr>
+<tr name="638" id="638">
+<td><a id="l638" class='ln'>638</a></td><td><span class="br">}</span></td></tr>
+<tr name="639" id="639">
+<td><a id="l639" class='ln'>639</a></td><td></td></tr>
+<tr name="640" id="640">
+<td><a id="l640" class='ln'>640</a></td><td><span class="ct">/* Update for root system: '&lt;Root&gt;' */</span></td></tr>
+<tr name="641" id="641">
+<td><a id="l641" class='ln'>641</a></td><td><span class="pp">#define</span> <a id="641c9" class="tk">MDL_UPDATE</a></td></tr>
+<tr name="642" id="642">
+<td><a id="l642" class='ln'>642</a></td><td></td></tr>
+<tr name="643" id="643">
+<td><a id="l643" class='ln'>643</a></td><td><span class="kw">static</span> <span class="kw">void</span> <a id="643c13" class="tk">mdlUpdate</a>(<a id="643c23" class="tk">SimStruct</a> <a id="643c33" class="tk">*</a><a id="643c34" class="tk">S</a>, <a id="643c37" class="tk">int_T</a> <a id="643c43" class="tk">tid</a>)</td></tr>
+<tr name="644" id="644">
+<td><a id="l644" class='ln'>644</a></td><td><span class="br">{</span></td></tr>
+<tr name="645" id="645">
+<td><a id="l645" class='ln'>645</a></td><td>  <a id="645c3" class="tk">B_PMSM_Motor_TL3_T</a> <a id="645c22" class="tk">*</a><a id="645c23" class="tk">_rtB</a>;</td></tr>
+<tr name="646" id="646">
+<td><a id="l646" class='ln'>646</a></td><td>  <a id="646c3" class="tk">_rtB</a> = ((<a id="646c12" class="tk">B_PMSM_Motor_TL3_T</a> <a id="646c31" class="tk">*</a>) <a id="646c34" class="tk">ssGetLocalBlockIO</a>(<a id="646c52" class="tk">S</a>));</td></tr>
+<tr name="647" id="647">
+<td><a id="l647" class='ln'>647</a></td><td></td></tr>
+<tr name="648" id="648">
+<td><a id="l648" class='ln'>648</a></td><td>  <span class="ct">/* Update for DiscreteIntegrator: '&lt;S11&gt;/Discrete-Time Integrator1' */</span></td></tr>
+<tr name="649" id="649">
+<td><a id="l649" class='ln'>649</a></td><td>  ((<a id="649c5" class="tk">real_T</a> <a id="649c12" class="tk">*</a>)<a id="649c14" class="tk">ssGetDWork</a>(<a id="649c25" class="tk">S</a>, 0))[0] = 5.0E-7 <a id="649c44" class="tk">*</a> <a id="649c46" class="tk">_rtB</a>-&gt;<a id="649c52" class="tk">Gain</a> <a id="649c57" class="tk">+</a> ((<a id="649c61" class="tk">real_T</a> <a id="649c68" class="tk">*</a>)<a id="649c70" class="tk">ssGetDWork</a></td></tr>
+<tr name="650" id="650">
+<td><a id="l650" class='ln'>650</a></td><td>    (<a id="650c6" class="tk">S</a>, 0))[0];</td></tr>
+<tr name="651" id="651">
+<td><a id="l651" class='ln'>651</a></td><td></td></tr>
+<tr name="652" id="652">
+<td><a id="l652" class='ln'>652</a></td><td>  <span class="ct">/* Update for DiscreteIntegrator: '&lt;S18&gt;/Discrete-Time Integrator' */</span></td></tr>
+<tr name="653" id="653">
+<td><a id="l653" class='ln'>653</a></td><td>  ((<a id="653c5" class="tk">real_T</a> <a id="653c12" class="tk">*</a>)<a id="653c14" class="tk">ssGetDWork</a>(<a id="653c25" class="tk">S</a>, 1))[0] = 5.0E-7 <a id="653c44" class="tk">*</a> <a id="653c46" class="tk">_rtB</a>-&gt;<a id="653c52" class="tk">Sum1</a> <a id="653c57" class="tk">+</a> ((<a id="653c61" class="tk">real_T</a> <a id="653c68" class="tk">*</a>)<a id="653c70" class="tk">ssGetDWork</a></td></tr>
+<tr name="654" id="654">
+<td><a id="l654" class='ln'>654</a></td><td>    (<a id="654c6" class="tk">S</a>, 1))[0];</td></tr>
+<tr name="655" id="655">
+<td><a id="l655" class='ln'>655</a></td><td></td></tr>
+<tr name="656" id="656">
+<td><a id="l656" class='ln'>656</a></td><td>  <span class="ct">/* Update for DiscreteIntegrator: '&lt;S17&gt;/Discrete-Time Integrator' */</span></td></tr>
+<tr name="657" id="657">
+<td><a id="l657" class='ln'>657</a></td><td>  ((<a id="657c5" class="tk">real_T</a> <a id="657c12" class="tk">*</a>)<a id="657c14" class="tk">ssGetDWork</a>(<a id="657c25" class="tk">S</a>, 2))[0] = 5.0E-7 <a id="657c44" class="tk">*</a> <a id="657c46" class="tk">_rtB</a>-&gt;<a id="657c52" class="tk">Sum</a> <a id="657c56" class="tk">+</a> ((<a id="657c60" class="tk">real_T</a> <a id="657c67" class="tk">*</a>)<a id="657c69" class="tk">ssGetDWork</a>(<a id="657c80" class="tk">S</a>,</td></tr>
+<tr name="658" id="658">
+<td><a id="l658" class='ln'>658</a></td><td>    2))[0];</td></tr>
+<tr name="659" id="659">
+<td><a id="l659" class='ln'>659</a></td><td></td></tr>
+<tr name="660" id="660">
+<td><a id="l660" class='ln'>660</a></td><td>  <span class="ct">/* Update for S-Function (sfun_spssw_discc): '&lt;S20&gt;/State-Space' incorporates:</span></td></tr>
+<tr name="661" id="661">
+<td><a id="l661" class='ln'>661</a></td><td><span class="ct">   *  Constant: '&lt;S19&gt;/Constant'</span></td></tr>
+<tr name="662" id="662">
+<td><a id="l662" class='ln'>662</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="663" id="663">
+<td><a id="l663" class='ln'>663</a></td><td>  <span class="br">{</span></td></tr>
+<tr name="664" id="664">
+<td><a id="l664" class='ln'>664</a></td><td>    <a id="664c5" class="tk">int_T</a> <a id="664c11" class="tk">*</a><a id="664c12" class="tk">gState</a> = (<a id="664c22" class="tk">int_T</a><a id="664c27" class="tk">*</a>)((<span class="kw">void</span><a id="664c35" class="tk">*</a><a id="664c36" class="tk">*</a>) <a id="664c39" class="tk">ssGetDWork</a>(<a id="664c50" class="tk">S</a>, 4))[12];</td></tr>
+<tr name="665" id="665">
+<td><a id="l665" class='ln'>665</a></td><td></td></tr>
+<tr name="666" id="666">
+<td><a id="l666" class='ln'>666</a></td><td>    <span class="ct">/* Store switch gates values for next step */</span></td></tr>
+<tr name="667" id="667">
+<td><a id="l667" class='ln'>667</a></td><td>    <a id="667c5" class="tk">*</a>(<a id="667c7" class="tk">gState</a><a id="667c13" class="tk">++</a>) = (<a id="667c20" class="tk">int_T</a>) (<a id="667c28" class="tk">*</a>(<span class="kw">const</span> <a id="667c36" class="tk">real_T</a> <a id="667c43" class="tk">*</a><a id="667c44" class="tk">*</a>)<a id="667c46" class="tk">ssGetInputPortSignalPtrs</a>(<a id="667c71" class="tk">S</a>, 0))[0];</td></tr>
+<tr name="668" id="668">
+<td><a id="l668" class='ln'>668</a></td><td>    <a id="668c5" class="tk">*</a>(<a id="668c7" class="tk">gState</a><a id="668c13" class="tk">++</a>) = (<a id="668c20" class="tk">int_T</a>) (<a id="668c28" class="tk">*</a>(<span class="kw">const</span> <a id="668c36" class="tk">real_T</a> <a id="668c43" class="tk">*</a><a id="668c44" class="tk">*</a>)<a id="668c46" class="tk">ssGetInputPortSignalPtrs</a>(<a id="668c71" class="tk">S</a>, 0))[1];</td></tr>
+<tr name="669" id="669">
+<td><a id="l669" class='ln'>669</a></td><td>    <a id="669c5" class="tk">*</a>(<a id="669c7" class="tk">gState</a><a id="669c13" class="tk">++</a>) = (<a id="669c20" class="tk">int_T</a>) (<a id="669c28" class="tk">*</a>(<span class="kw">const</span> <a id="669c36" class="tk">real_T</a> <a id="669c43" class="tk">*</a><a id="669c44" class="tk">*</a>)<a id="669c46" class="tk">ssGetInputPortSignalPtrs</a>(<a id="669c71" class="tk">S</a>, 0))[2];</td></tr>
+<tr name="670" id="670">
+<td><a id="l670" class='ln'>670</a></td><td>    <a id="670c5" class="tk">*</a>(<a id="670c7" class="tk">gState</a><a id="670c13" class="tk">++</a>) = (<a id="670c20" class="tk">int_T</a>) (<a id="670c28" class="tk">*</a>(<span class="kw">const</span> <a id="670c36" class="tk">real_T</a> <a id="670c43" class="tk">*</a><a id="670c44" class="tk">*</a>)<a id="670c46" class="tk">ssGetInputPortSignalPtrs</a>(<a id="670c71" class="tk">S</a>, 0))[3];</td></tr>
+<tr name="671" id="671">
+<td><a id="l671" class='ln'>671</a></td><td>    <a id="671c5" class="tk">*</a>(<a id="671c7" class="tk">gState</a><a id="671c13" class="tk">++</a>) = (<a id="671c20" class="tk">int_T</a>) (<a id="671c28" class="tk">*</a>(<span class="kw">const</span> <a id="671c36" class="tk">real_T</a> <a id="671c43" class="tk">*</a><a id="671c44" class="tk">*</a>)<a id="671c46" class="tk">ssGetInputPortSignalPtrs</a>(<a id="671c71" class="tk">S</a>, 0))[4];</td></tr>
+<tr name="672" id="672">
+<td><a id="l672" class='ln'>672</a></td><td>    <a id="672c5" class="tk">*</a>(<a id="672c7" class="tk">gState</a><a id="672c13" class="tk">++</a>) = (<a id="672c20" class="tk">int_T</a>) (<a id="672c28" class="tk">*</a>(<span class="kw">const</span> <a id="672c36" class="tk">real_T</a> <a id="672c43" class="tk">*</a><a id="672c44" class="tk">*</a>)<a id="672c46" class="tk">ssGetInputPortSignalPtrs</a>(<a id="672c71" class="tk">S</a>, 0))[5];</td></tr>
+<tr name="673" id="673">
+<td><a id="l673" class='ln'>673</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="674" id="674">
+<td><a id="l674" class='ln'>674</a></td><td></td></tr>
+<tr name="675" id="675">
+<td><a id="l675" class='ln'>675</a></td><td>  <span class="ct">/* Update for UnitDelay: '&lt;S4&gt;/Unit Delay' */</span></td></tr>
+<tr name="676" id="676">
+<td><a id="l676" class='ln'>676</a></td><td>  ((<a id="676c5" class="tk">real_T</a> <a id="676c12" class="tk">*</a>)<a id="676c14" class="tk">ssGetDWork</a>(<a id="676c25" class="tk">S</a>, 3))[0] = <a id="676c37" class="tk">_rtB</a>-&gt;<a id="676c43" class="tk">Add1</a>;</td></tr>
+<tr name="677" id="677">
+<td><a id="l677" class='ln'>677</a></td><td>  <a id="677c3" class="tk">UNUSED_PARAMETER</a>(<a id="677c20" class="tk">tid</a>);</td></tr>
+<tr name="678" id="678">
+<td><a id="l678" class='ln'>678</a></td><td><span class="br">}</span></td></tr>
+<tr name="679" id="679">
+<td><a id="l679" class='ln'>679</a></td><td></td></tr>
+<tr name="680" id="680">
+<td><a id="l680" class='ln'>680</a></td><td><span class="ct">/* Termination for root system: '&lt;Root&gt;' */</span></td></tr>
+<tr name="681" id="681">
+<td><a id="l681" class='ln'>681</a></td><td><span class="kw">static</span> <span class="kw">void</span> <a id="681c13" class="tk">mdlTerminate</a>(<a id="681c26" class="tk">SimStruct</a> <a id="681c36" class="tk">*</a><a id="681c37" class="tk">S</a>)</td></tr>
+<tr name="682" id="682">
+<td><a id="l682" class='ln'>682</a></td><td><span class="br">{</span></td></tr>
+<tr name="683" id="683">
+<td><a id="l683" class='ln'>683</a></td><td>  <a id="683c3" class="tk">B_PMSM_Motor_TL3_T</a> <a id="683c22" class="tk">*</a><a id="683c23" class="tk">_rtB</a>;</td></tr>
+<tr name="684" id="684">
+<td><a id="l684" class='ln'>684</a></td><td>  <a id="684c3" class="tk">_rtB</a> = ((<a id="684c12" class="tk">B_PMSM_Motor_TL3_T</a> <a id="684c31" class="tk">*</a>) <a id="684c34" class="tk">ssGetLocalBlockIO</a>(<a id="684c52" class="tk">S</a>));</td></tr>
+<tr name="685" id="685">
+<td><a id="l685" class='ln'>685</a></td><td></td></tr>
+<tr name="686" id="686">
+<td><a id="l686" class='ln'>686</a></td><td>  <span class="ct">/* Terminate for S-Function (sfun_spssw_discc): '&lt;S20&gt;/State-Space' incorporates:</span></td></tr>
+<tr name="687" id="687">
+<td><a id="l687" class='ln'>687</a></td><td><span class="ct">   *  Constant: '&lt;S19&gt;/Constant'</span></td></tr>
+<tr name="688" id="688">
+<td><a id="l688" class='ln'>688</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="689" id="689">
+<td><a id="l689" class='ln'>689</a></td><td></td></tr>
+<tr name="690" id="690">
+<td><a id="l690" class='ln'>690</a></td><td>  <span class="ct">/* S-Function block: &lt;S20&gt;/State-Space */</span></td></tr>
+<tr name="691" id="691">
+<td><a id="l691" class='ln'>691</a></td><td>  <span class="br">{</span></td></tr>
+<tr name="692" id="692">
+<td><a id="l692" class='ln'>692</a></td><td>    <span class="ct">/* Free memory */</span></td></tr>
+<tr name="693" id="693">
+<td><a id="l693" class='ln'>693</a></td><td>    <a id="693c5" class="tk">free</a>(((<span class="kw">void</span><a id="693c16" class="tk">*</a><a id="693c17" class="tk">*</a>) <a id="693c20" class="tk">ssGetDWork</a>(<a id="693c31" class="tk">S</a>, 4))[3]);</td></tr>
+<tr name="694" id="694">
+<td><a id="l694" class='ln'>694</a></td><td>    <a id="694c5" class="tk">free</a>(((<span class="kw">void</span><a id="694c16" class="tk">*</a><a id="694c17" class="tk">*</a>) <a id="694c20" class="tk">ssGetDWork</a>(<a id="694c31" class="tk">S</a>, 4))[4]);</td></tr>
+<tr name="695" id="695">
+<td><a id="l695" class='ln'>695</a></td><td>    <a id="695c5" class="tk">free</a>(((<span class="kw">void</span><a id="695c16" class="tk">*</a><a id="695c17" class="tk">*</a>) <a id="695c20" class="tk">ssGetDWork</a>(<a id="695c31" class="tk">S</a>, 4))[7]);</td></tr>
+<tr name="696" id="696">
+<td><a id="l696" class='ln'>696</a></td><td></td></tr>
+<tr name="697" id="697">
+<td><a id="l697" class='ln'>697</a></td><td>    <span class="ct">/*</span></td></tr>
+<tr name="698" id="698">
+<td><a id="l698" class='ln'>698</a></td><td><span class="ct">     * Circuit has switches*/</span></td></tr>
+<tr name="699" id="699">
+<td><a id="l699" class='ln'>699</a></td><td>    <a id="699c5" class="tk">free</a>(((<span class="kw">void</span><a id="699c16" class="tk">*</a><a id="699c17" class="tk">*</a>) <a id="699c20" class="tk">ssGetDWork</a>(<a id="699c31" class="tk">S</a>, 4))[12]);</td></tr>
+<tr name="700" id="700">
+<td><a id="l700" class='ln'>700</a></td><td>    <a id="700c5" class="tk">free</a>(((<span class="kw">void</span><a id="700c16" class="tk">*</a><a id="700c17" class="tk">*</a>) <a id="700c20" class="tk">ssGetDWork</a>(<a id="700c31" class="tk">S</a>, 4))[9]);</td></tr>
+<tr name="701" id="701">
+<td><a id="l701" class='ln'>701</a></td><td>    <a id="701c5" class="tk">free</a>(((<span class="kw">void</span><a id="701c16" class="tk">*</a><a id="701c17" class="tk">*</a>) <a id="701c20" class="tk">ssGetDWork</a>(<a id="701c31" class="tk">S</a>, 4))[11]);</td></tr>
+<tr name="702" id="702">
+<td><a id="l702" class='ln'>702</a></td><td>    <a id="702c5" class="tk">free</a>(((<span class="kw">void</span><a id="702c16" class="tk">*</a><a id="702c17" class="tk">*</a>) <a id="702c20" class="tk">ssGetDWork</a>(<a id="702c31" class="tk">S</a>, 4))[10]);</td></tr>
+<tr name="703" id="703">
+<td><a id="l703" class='ln'>703</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="704" id="704">
+<td><a id="l704" class='ln'>704</a></td><td></td></tr>
+<tr name="705" id="705">
+<td><a id="l705" class='ln'>705</a></td><td><span class="pp">#if</span> <a id="705c5" class="tk">defined</a>(<a id="705c13" class="tk">RT_MALLOC</a>) <a id="705c24" class="tk">||</a> <a id="705c27" class="tk">defined</a>(<a id="705c35" class="tk">MATLAB_MEX_FILE</a>)</td></tr>
+<tr name="706" id="706">
+<td><a id="l706" class='ln'>706</a></td><td></td></tr>
+<tr name="707" id="707">
+<td><a id="l707" class='ln'>707</a></td><td>  <span class="kw">if</span> (<a id="707c7" class="tk">ssGetUserData</a>(<a id="707c21" class="tk">S</a>) <a id="707c24" class="tk">!=</a> (<a id="707c28" class="tk">NULL</a>) ) <span class="br">{</span></td></tr>
+<tr name="708" id="708">
+<td><a id="l708" class='ln'>708</a></td><td>    <a id="708c5" class="tk">rt_FREE</a>(<a id="708c13" class="tk">ssGetLocalBlockIO</a>(<a id="708c31" class="tk">S</a>));</td></tr>
+<tr name="709" id="709">
+<td><a id="l709" class='ln'>709</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="710" id="710">
+<td><a id="l710" class='ln'>710</a></td><td></td></tr>
+<tr name="711" id="711">
+<td><a id="l711" class='ln'>711</a></td><td>  <a id="711c3" class="tk">rt_FREE</a>(<a id="711c11" class="tk">ssGetUserData</a>(<a id="711c25" class="tk">S</a>));</td></tr>
+<tr name="712" id="712">
+<td><a id="l712" class='ln'>712</a></td><td></td></tr>
+<tr name="713" id="713">
+<td><a id="l713" class='ln'>713</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="714" id="714">
+<td><a id="l714" class='ln'>714</a></td><td></td></tr>
+<tr name="715" id="715">
+<td><a id="l715" class='ln'>715</a></td><td><span class="br">}</span></td></tr>
+<tr name="716" id="716">
+<td><a id="l716" class='ln'>716</a></td><td></td></tr>
+<tr name="717" id="717">
+<td><a id="l717" class='ln'>717</a></td><td><span class="pp">#if</span> <a id="717c5" class="tk">defined</a>(<a id="717c13" class="tk">RT_MALLOC</a>) <a id="717c24" class="tk">||</a> <a id="717c27" class="tk">defined</a>(<a id="717c35" class="tk">MATLAB_MEX_FILE</a>)</td></tr>
+<tr name="718" id="718">
+<td><a id="l718" class='ln'>718</a></td><td><span class="pp">#include "PMSM_Motor_TL3_mid.h"</span></td></tr>
+<tr name="719" id="719">
+<td><a id="l719" class='ln'>719</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="720" id="720">
+<td><a id="l720" class='ln'>720</a></td><td></td></tr>
+<tr name="721" id="721">
+<td><a id="l721" class='ln'>721</a></td><td><span class="ct">/* Function to initialize sizes. */</span></td></tr>
+<tr name="722" id="722">
+<td><a id="l722" class='ln'>722</a></td><td><span class="kw">static</span> <span class="kw">void</span> <a id="722c13" class="tk">mdlInitializeSizes</a>(<a id="722c32" class="tk">SimStruct</a> <a id="722c42" class="tk">*</a><a id="722c43" class="tk">S</a>)</td></tr>
+<tr name="723" id="723">
+<td><a id="l723" class='ln'>723</a></td><td><span class="br">{</span></td></tr>
+<tr name="724" id="724">
+<td><a id="l724" class='ln'>724</a></td><td>  <a id="724c3" class="tk">ssSetNumSampleTimes</a>(<a id="724c23" class="tk">S</a>, 1);           <span class="ct">/* Number of sample times */</span></td></tr>
+<tr name="725" id="725">
+<td><a id="l725" class='ln'>725</a></td><td>  <a id="725c3" class="tk">ssSetNumContStates</a>(<a id="725c22" class="tk">S</a>, 0);            <span class="ct">/* Number of continuous states */</span></td></tr>
+<tr name="726" id="726">
+<td><a id="l726" class='ln'>726</a></td><td>  <a id="726c3" class="tk">ssSetNumNonsampledZCs</a>(<a id="726c25" class="tk">S</a>, 0);         <span class="ct">/* Number of nonsampled ZCs */</span></td></tr>
+<tr name="727" id="727">
+<td><a id="l727" class='ln'>727</a></td><td></td></tr>
+<tr name="728" id="728">
+<td><a id="l728" class='ln'>728</a></td><td>  <span class="ct">/* Number of output ports */</span></td></tr>
+<tr name="729" id="729">
+<td><a id="l729" class='ln'>729</a></td><td>  <span class="kw">if</span> (<a id="729c7" class="tk">!</a><a id="729c8" class="tk">ssSetNumOutputPorts</a>(<a id="729c28" class="tk">S</a>, 13))</td></tr>
+<tr name="730" id="730">
+<td><a id="l730" class='ln'>730</a></td><td>    <span class="kw">return</span>;</td></tr>
+<tr name="731" id="731">
+<td><a id="l731" class='ln'>731</a></td><td></td></tr>
+<tr name="732" id="732">
+<td><a id="l732" class='ln'>732</a></td><td>  <span class="ct">/* outport number: 0 */</span></td></tr>
+<tr name="733" id="733">
+<td><a id="l733" class='ln'>733</a></td><td>  <span class="kw">if</span> (<a id="733c7" class="tk">!</a><a id="733c8" class="tk">ssSetOutputPortVectorDimension</a>(<a id="733c39" class="tk">S</a>, 0, 1))</td></tr>
+<tr name="734" id="734">
+<td><a id="l734" class='ln'>734</a></td><td>    <span class="kw">return</span>;</td></tr>
+<tr name="735" id="735">
+<td><a id="l735" class='ln'>735</a></td><td>  <span class="kw">if</span> (<a id="735c7" class="tk">ssGetSimMode</a>(<a id="735c20" class="tk">S</a>) <a id="735c23" class="tk">!=</a> <a id="735c26" class="tk">SS_SIMMODE_SIZES_CALL_ONLY</a>) <span class="br">{</span></td></tr>
+<tr name="736" id="736">
+<td><a id="l736" class='ln'>736</a></td><td>    <a id="736c5" class="tk">ssSetOutputPortDataType</a>(<a id="736c29" class="tk">S</a>, 0, <a id="736c35" class="tk">SS_DOUBLE</a>);</td></tr>
+<tr name="737" id="737">
+<td><a id="l737" class='ln'>737</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="738" id="738">
+<td><a id="l738" class='ln'>738</a></td><td></td></tr>
+<tr name="739" id="739">
+<td><a id="l739" class='ln'>739</a></td><td>  <a id="739c3" class="tk">ssSetOutputPortSampleTime</a>(<a id="739c29" class="tk">S</a>, 0, 5.0E-7);</td></tr>
+<tr name="740" id="740">
+<td><a id="l740" class='ln'>740</a></td><td>  <a id="740c3" class="tk">ssSetOutputPortOffsetTime</a>(<a id="740c29" class="tk">S</a>, 0, 0.0);</td></tr>
+<tr name="741" id="741">
+<td><a id="l741" class='ln'>741</a></td><td>  <a id="741c3" class="tk">ssSetOutputPortOptimOpts</a>(<a id="741c28" class="tk">S</a>, 0, <a id="741c34" class="tk">SS_REUSABLE_AND_LOCAL</a>);</td></tr>
+<tr name="742" id="742">
+<td><a id="l742" class='ln'>742</a></td><td></td></tr>
+<tr name="743" id="743">
+<td><a id="l743" class='ln'>743</a></td><td>  <span class="ct">/* outport number: 1 */</span></td></tr>
+<tr name="744" id="744">
+<td><a id="l744" class='ln'>744</a></td><td>  <span class="kw">if</span> (<a id="744c7" class="tk">!</a><a id="744c8" class="tk">ssSetOutputPortVectorDimension</a>(<a id="744c39" class="tk">S</a>, 1, 1))</td></tr>
+<tr name="745" id="745">
+<td><a id="l745" class='ln'>745</a></td><td>    <span class="kw">return</span>;</td></tr>
+<tr name="746" id="746">
+<td><a id="l746" class='ln'>746</a></td><td>  <span class="kw">if</span> (<a id="746c7" class="tk">ssGetSimMode</a>(<a id="746c20" class="tk">S</a>) <a id="746c23" class="tk">!=</a> <a id="746c26" class="tk">SS_SIMMODE_SIZES_CALL_ONLY</a>) <span class="br">{</span></td></tr>
+<tr name="747" id="747">
+<td><a id="l747" class='ln'>747</a></td><td>    <a id="747c5" class="tk">ssSetOutputPortDataType</a>(<a id="747c29" class="tk">S</a>, 1, <a id="747c35" class="tk">SS_DOUBLE</a>);</td></tr>
+<tr name="748" id="748">
+<td><a id="l748" class='ln'>748</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="749" id="749">
+<td><a id="l749" class='ln'>749</a></td><td></td></tr>
+<tr name="750" id="750">
+<td><a id="l750" class='ln'>750</a></td><td>  <a id="750c3" class="tk">ssSetOutputPortSampleTime</a>(<a id="750c29" class="tk">S</a>, 1, 5.0E-7);</td></tr>
+<tr name="751" id="751">
+<td><a id="l751" class='ln'>751</a></td><td>  <a id="751c3" class="tk">ssSetOutputPortOffsetTime</a>(<a id="751c29" class="tk">S</a>, 1, 0.0);</td></tr>
+<tr name="752" id="752">
+<td><a id="l752" class='ln'>752</a></td><td>  <a id="752c3" class="tk">ssSetOutputPortOptimOpts</a>(<a id="752c28" class="tk">S</a>, 1, <a id="752c34" class="tk">SS_REUSABLE_AND_LOCAL</a>);</td></tr>
+<tr name="753" id="753">
+<td><a id="l753" class='ln'>753</a></td><td></td></tr>
+<tr name="754" id="754">
+<td><a id="l754" class='ln'>754</a></td><td>  <span class="ct">/* outport number: 2 */</span></td></tr>
+<tr name="755" id="755">
+<td><a id="l755" class='ln'>755</a></td><td>  <span class="kw">if</span> (<a id="755c7" class="tk">!</a><a id="755c8" class="tk">ssSetOutputPortVectorDimension</a>(<a id="755c39" class="tk">S</a>, 2, 1))</td></tr>
+<tr name="756" id="756">
+<td><a id="l756" class='ln'>756</a></td><td>    <span class="kw">return</span>;</td></tr>
+<tr name="757" id="757">
+<td><a id="l757" class='ln'>757</a></td><td>  <span class="kw">if</span> (<a id="757c7" class="tk">ssGetSimMode</a>(<a id="757c20" class="tk">S</a>) <a id="757c23" class="tk">!=</a> <a id="757c26" class="tk">SS_SIMMODE_SIZES_CALL_ONLY</a>) <span class="br">{</span></td></tr>
+<tr name="758" id="758">
+<td><a id="l758" class='ln'>758</a></td><td>    <a id="758c5" class="tk">ssSetOutputPortDataType</a>(<a id="758c29" class="tk">S</a>, 2, <a id="758c35" class="tk">SS_DOUBLE</a>);</td></tr>
+<tr name="759" id="759">
+<td><a id="l759" class='ln'>759</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="760" id="760">
+<td><a id="l760" class='ln'>760</a></td><td></td></tr>
+<tr name="761" id="761">
+<td><a id="l761" class='ln'>761</a></td><td>  <a id="761c3" class="tk">ssSetOutputPortSampleTime</a>(<a id="761c29" class="tk">S</a>, 2, 5.0E-7);</td></tr>
+<tr name="762" id="762">
+<td><a id="l762" class='ln'>762</a></td><td>  <a id="762c3" class="tk">ssSetOutputPortOffsetTime</a>(<a id="762c29" class="tk">S</a>, 2, 0.0);</td></tr>
+<tr name="763" id="763">
+<td><a id="l763" class='ln'>763</a></td><td>  <a id="763c3" class="tk">ssSetOutputPortOptimOpts</a>(<a id="763c28" class="tk">S</a>, 2, <a id="763c34" class="tk">SS_REUSABLE_AND_LOCAL</a>);</td></tr>
+<tr name="764" id="764">
+<td><a id="l764" class='ln'>764</a></td><td></td></tr>
+<tr name="765" id="765">
+<td><a id="l765" class='ln'>765</a></td><td>  <span class="ct">/* outport number: 3 */</span></td></tr>
+<tr name="766" id="766">
+<td><a id="l766" class='ln'>766</a></td><td>  <span class="kw">if</span> (<a id="766c7" class="tk">!</a><a id="766c8" class="tk">ssSetOutputPortVectorDimension</a>(<a id="766c39" class="tk">S</a>, 3, 1))</td></tr>
+<tr name="767" id="767">
+<td><a id="l767" class='ln'>767</a></td><td>    <span class="kw">return</span>;</td></tr>
+<tr name="768" id="768">
+<td><a id="l768" class='ln'>768</a></td><td>  <span class="kw">if</span> (<a id="768c7" class="tk">ssGetSimMode</a>(<a id="768c20" class="tk">S</a>) <a id="768c23" class="tk">!=</a> <a id="768c26" class="tk">SS_SIMMODE_SIZES_CALL_ONLY</a>) <span class="br">{</span></td></tr>
+<tr name="769" id="769">
+<td><a id="l769" class='ln'>769</a></td><td>    <a id="769c5" class="tk">ssSetOutputPortDataType</a>(<a id="769c29" class="tk">S</a>, 3, <a id="769c35" class="tk">SS_DOUBLE</a>);</td></tr>
+<tr name="770" id="770">
+<td><a id="l770" class='ln'>770</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="771" id="771">
+<td><a id="l771" class='ln'>771</a></td><td></td></tr>
+<tr name="772" id="772">
+<td><a id="l772" class='ln'>772</a></td><td>  <a id="772c3" class="tk">ssSetOutputPortSampleTime</a>(<a id="772c29" class="tk">S</a>, 3, 5.0E-7);</td></tr>
+<tr name="773" id="773">
+<td><a id="l773" class='ln'>773</a></td><td>  <a id="773c3" class="tk">ssSetOutputPortOffsetTime</a>(<a id="773c29" class="tk">S</a>, 3, 0.0);</td></tr>
+<tr name="774" id="774">
+<td><a id="l774" class='ln'>774</a></td><td>  <a id="774c3" class="tk">ssSetOutputPortOptimOpts</a>(<a id="774c28" class="tk">S</a>, 3, <a id="774c34" class="tk">SS_REUSABLE_AND_LOCAL</a>);</td></tr>
+<tr name="775" id="775">
+<td><a id="l775" class='ln'>775</a></td><td></td></tr>
+<tr name="776" id="776">
+<td><a id="l776" class='ln'>776</a></td><td>  <span class="ct">/* outport number: 4 */</span></td></tr>
+<tr name="777" id="777">
+<td><a id="l777" class='ln'>777</a></td><td>  <span class="kw">if</span> (<a id="777c7" class="tk">!</a><a id="777c8" class="tk">ssSetOutputPortVectorDimension</a>(<a id="777c39" class="tk">S</a>, 4, 1))</td></tr>
+<tr name="778" id="778">
+<td><a id="l778" class='ln'>778</a></td><td>    <span class="kw">return</span>;</td></tr>
+<tr name="779" id="779">
+<td><a id="l779" class='ln'>779</a></td><td>  <span class="kw">if</span> (<a id="779c7" class="tk">ssGetSimMode</a>(<a id="779c20" class="tk">S</a>) <a id="779c23" class="tk">!=</a> <a id="779c26" class="tk">SS_SIMMODE_SIZES_CALL_ONLY</a>) <span class="br">{</span></td></tr>
+<tr name="780" id="780">
+<td><a id="l780" class='ln'>780</a></td><td>    <a id="780c5" class="tk">ssSetOutputPortDataType</a>(<a id="780c29" class="tk">S</a>, 4, <a id="780c35" class="tk">SS_DOUBLE</a>);</td></tr>
+<tr name="781" id="781">
+<td><a id="l781" class='ln'>781</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="782" id="782">
+<td><a id="l782" class='ln'>782</a></td><td></td></tr>
+<tr name="783" id="783">
+<td><a id="l783" class='ln'>783</a></td><td>  <a id="783c3" class="tk">ssSetOutputPortSampleTime</a>(<a id="783c29" class="tk">S</a>, 4, 5.0E-7);</td></tr>
+<tr name="784" id="784">
+<td><a id="l784" class='ln'>784</a></td><td>  <a id="784c3" class="tk">ssSetOutputPortOffsetTime</a>(<a id="784c29" class="tk">S</a>, 4, 0.0);</td></tr>
+<tr name="785" id="785">
+<td><a id="l785" class='ln'>785</a></td><td>  <a id="785c3" class="tk">ssSetOutputPortOptimOpts</a>(<a id="785c28" class="tk">S</a>, 4, <a id="785c34" class="tk">SS_REUSABLE_AND_LOCAL</a>);</td></tr>
+<tr name="786" id="786">
+<td><a id="l786" class='ln'>786</a></td><td></td></tr>
+<tr name="787" id="787">
+<td><a id="l787" class='ln'>787</a></td><td>  <span class="ct">/* outport number: 5 */</span></td></tr>
+<tr name="788" id="788">
+<td><a id="l788" class='ln'>788</a></td><td>  <span class="kw">if</span> (<a id="788c7" class="tk">!</a><a id="788c8" class="tk">ssSetOutputPortVectorDimension</a>(<a id="788c39" class="tk">S</a>, 5, 1))</td></tr>
+<tr name="789" id="789">
+<td><a id="l789" class='ln'>789</a></td><td>    <span class="kw">return</span>;</td></tr>
+<tr name="790" id="790">
+<td><a id="l790" class='ln'>790</a></td><td>  <span class="kw">if</span> (<a id="790c7" class="tk">ssGetSimMode</a>(<a id="790c20" class="tk">S</a>) <a id="790c23" class="tk">!=</a> <a id="790c26" class="tk">SS_SIMMODE_SIZES_CALL_ONLY</a>) <span class="br">{</span></td></tr>
+<tr name="791" id="791">
+<td><a id="l791" class='ln'>791</a></td><td>    <a id="791c5" class="tk">ssSetOutputPortDataType</a>(<a id="791c29" class="tk">S</a>, 5, <a id="791c35" class="tk">SS_DOUBLE</a>);</td></tr>
+<tr name="792" id="792">
+<td><a id="l792" class='ln'>792</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="793" id="793">
+<td><a id="l793" class='ln'>793</a></td><td></td></tr>
+<tr name="794" id="794">
+<td><a id="l794" class='ln'>794</a></td><td>  <a id="794c3" class="tk">ssSetOutputPortSampleTime</a>(<a id="794c29" class="tk">S</a>, 5, 5.0E-7);</td></tr>
+<tr name="795" id="795">
+<td><a id="l795" class='ln'>795</a></td><td>  <a id="795c3" class="tk">ssSetOutputPortOffsetTime</a>(<a id="795c29" class="tk">S</a>, 5, 0.0);</td></tr>
+<tr name="796" id="796">
+<td><a id="l796" class='ln'>796</a></td><td>  <a id="796c3" class="tk">ssSetOutputPortOptimOpts</a>(<a id="796c28" class="tk">S</a>, 5, <a id="796c34" class="tk">SS_REUSABLE_AND_LOCAL</a>);</td></tr>
+<tr name="797" id="797">
+<td><a id="l797" class='ln'>797</a></td><td></td></tr>
+<tr name="798" id="798">
+<td><a id="l798" class='ln'>798</a></td><td>  <span class="ct">/* outport number: 6 */</span></td></tr>
+<tr name="799" id="799">
+<td><a id="l799" class='ln'>799</a></td><td>  <span class="kw">if</span> (<a id="799c7" class="tk">!</a><a id="799c8" class="tk">ssSetOutputPortVectorDimension</a>(<a id="799c39" class="tk">S</a>, 6, 1))</td></tr>
+<tr name="800" id="800">
+<td><a id="l800" class='ln'>800</a></td><td>    <span class="kw">return</span>;</td></tr>
+<tr name="801" id="801">
+<td><a id="l801" class='ln'>801</a></td><td>  <span class="kw">if</span> (<a id="801c7" class="tk">ssGetSimMode</a>(<a id="801c20" class="tk">S</a>) <a id="801c23" class="tk">!=</a> <a id="801c26" class="tk">SS_SIMMODE_SIZES_CALL_ONLY</a>) <span class="br">{</span></td></tr>
+<tr name="802" id="802">
+<td><a id="l802" class='ln'>802</a></td><td>    <a id="802c5" class="tk">ssSetOutputPortDataType</a>(<a id="802c29" class="tk">S</a>, 6, <a id="802c35" class="tk">SS_DOUBLE</a>);</td></tr>
+<tr name="803" id="803">
+<td><a id="l803" class='ln'>803</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="804" id="804">
+<td><a id="l804" class='ln'>804</a></td><td></td></tr>
+<tr name="805" id="805">
+<td><a id="l805" class='ln'>805</a></td><td>  <a id="805c3" class="tk">ssSetOutputPortSampleTime</a>(<a id="805c29" class="tk">S</a>, 6, 5.0E-7);</td></tr>
+<tr name="806" id="806">
+<td><a id="l806" class='ln'>806</a></td><td>  <a id="806c3" class="tk">ssSetOutputPortOffsetTime</a>(<a id="806c29" class="tk">S</a>, 6, 0.0);</td></tr>
+<tr name="807" id="807">
+<td><a id="l807" class='ln'>807</a></td><td>  <a id="807c3" class="tk">ssSetOutputPortOptimOpts</a>(<a id="807c28" class="tk">S</a>, 6, <a id="807c34" class="tk">SS_REUSABLE_AND_LOCAL</a>);</td></tr>
+<tr name="808" id="808">
+<td><a id="l808" class='ln'>808</a></td><td></td></tr>
+<tr name="809" id="809">
+<td><a id="l809" class='ln'>809</a></td><td>  <span class="ct">/* outport number: 7 */</span></td></tr>
+<tr name="810" id="810">
+<td><a id="l810" class='ln'>810</a></td><td>  <span class="kw">if</span> (<a id="810c7" class="tk">!</a><a id="810c8" class="tk">ssSetOutputPortVectorDimension</a>(<a id="810c39" class="tk">S</a>, 7, 1))</td></tr>
+<tr name="811" id="811">
+<td><a id="l811" class='ln'>811</a></td><td>    <span class="kw">return</span>;</td></tr>
+<tr name="812" id="812">
+<td><a id="l812" class='ln'>812</a></td><td>  <span class="kw">if</span> (<a id="812c7" class="tk">ssGetSimMode</a>(<a id="812c20" class="tk">S</a>) <a id="812c23" class="tk">!=</a> <a id="812c26" class="tk">SS_SIMMODE_SIZES_CALL_ONLY</a>) <span class="br">{</span></td></tr>
+<tr name="813" id="813">
+<td><a id="l813" class='ln'>813</a></td><td>    <a id="813c5" class="tk">ssSetOutputPortDataType</a>(<a id="813c29" class="tk">S</a>, 7, <a id="813c35" class="tk">SS_DOUBLE</a>);</td></tr>
+<tr name="814" id="814">
+<td><a id="l814" class='ln'>814</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="815" id="815">
+<td><a id="l815" class='ln'>815</a></td><td></td></tr>
+<tr name="816" id="816">
+<td><a id="l816" class='ln'>816</a></td><td>  <a id="816c3" class="tk">ssSetOutputPortSampleTime</a>(<a id="816c29" class="tk">S</a>, 7, 5.0E-7);</td></tr>
+<tr name="817" id="817">
+<td><a id="l817" class='ln'>817</a></td><td>  <a id="817c3" class="tk">ssSetOutputPortOffsetTime</a>(<a id="817c29" class="tk">S</a>, 7, 0.0);</td></tr>
+<tr name="818" id="818">
+<td><a id="l818" class='ln'>818</a></td><td>  <a id="818c3" class="tk">ssSetOutputPortOptimOpts</a>(<a id="818c28" class="tk">S</a>, 7, <a id="818c34" class="tk">SS_REUSABLE_AND_LOCAL</a>);</td></tr>
+<tr name="819" id="819">
+<td><a id="l819" class='ln'>819</a></td><td></td></tr>
+<tr name="820" id="820">
+<td><a id="l820" class='ln'>820</a></td><td>  <span class="ct">/* outport number: 8 */</span></td></tr>
+<tr name="821" id="821">
+<td><a id="l821" class='ln'>821</a></td><td>  <span class="kw">if</span> (<a id="821c7" class="tk">!</a><a id="821c8" class="tk">ssSetOutputPortVectorDimension</a>(<a id="821c39" class="tk">S</a>, 8, 1))</td></tr>
+<tr name="822" id="822">
+<td><a id="l822" class='ln'>822</a></td><td>    <span class="kw">return</span>;</td></tr>
+<tr name="823" id="823">
+<td><a id="l823" class='ln'>823</a></td><td>  <span class="kw">if</span> (<a id="823c7" class="tk">ssGetSimMode</a>(<a id="823c20" class="tk">S</a>) <a id="823c23" class="tk">!=</a> <a id="823c26" class="tk">SS_SIMMODE_SIZES_CALL_ONLY</a>) <span class="br">{</span></td></tr>
+<tr name="824" id="824">
+<td><a id="l824" class='ln'>824</a></td><td>    <a id="824c5" class="tk">ssSetOutputPortDataType</a>(<a id="824c29" class="tk">S</a>, 8, <a id="824c35" class="tk">SS_DOUBLE</a>);</td></tr>
+<tr name="825" id="825">
+<td><a id="l825" class='ln'>825</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="826" id="826">
+<td><a id="l826" class='ln'>826</a></td><td></td></tr>
+<tr name="827" id="827">
+<td><a id="l827" class='ln'>827</a></td><td>  <a id="827c3" class="tk">ssSetOutputPortSampleTime</a>(<a id="827c29" class="tk">S</a>, 8, 5.0E-7);</td></tr>
+<tr name="828" id="828">
+<td><a id="l828" class='ln'>828</a></td><td>  <a id="828c3" class="tk">ssSetOutputPortOffsetTime</a>(<a id="828c29" class="tk">S</a>, 8, 0.0);</td></tr>
+<tr name="829" id="829">
+<td><a id="l829" class='ln'>829</a></td><td>  <a id="829c3" class="tk">ssSetOutputPortOptimOpts</a>(<a id="829c28" class="tk">S</a>, 8, <a id="829c34" class="tk">SS_REUSABLE_AND_LOCAL</a>);</td></tr>
+<tr name="830" id="830">
+<td><a id="l830" class='ln'>830</a></td><td></td></tr>
+<tr name="831" id="831">
+<td><a id="l831" class='ln'>831</a></td><td>  <span class="ct">/* outport number: 9 */</span></td></tr>
+<tr name="832" id="832">
+<td><a id="l832" class='ln'>832</a></td><td>  <span class="kw">if</span> (<a id="832c7" class="tk">!</a><a id="832c8" class="tk">ssSetOutputPortVectorDimension</a>(<a id="832c39" class="tk">S</a>, 9, 1))</td></tr>
+<tr name="833" id="833">
+<td><a id="l833" class='ln'>833</a></td><td>    <span class="kw">return</span>;</td></tr>
+<tr name="834" id="834">
+<td><a id="l834" class='ln'>834</a></td><td>  <span class="kw">if</span> (<a id="834c7" class="tk">ssGetSimMode</a>(<a id="834c20" class="tk">S</a>) <a id="834c23" class="tk">!=</a> <a id="834c26" class="tk">SS_SIMMODE_SIZES_CALL_ONLY</a>) <span class="br">{</span></td></tr>
+<tr name="835" id="835">
+<td><a id="l835" class='ln'>835</a></td><td>    <a id="835c5" class="tk">ssSetOutputPortDataType</a>(<a id="835c29" class="tk">S</a>, 9, <a id="835c35" class="tk">SS_DOUBLE</a>);</td></tr>
+<tr name="836" id="836">
+<td><a id="l836" class='ln'>836</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="837" id="837">
+<td><a id="l837" class='ln'>837</a></td><td></td></tr>
+<tr name="838" id="838">
+<td><a id="l838" class='ln'>838</a></td><td>  <a id="838c3" class="tk">ssSetOutputPortSampleTime</a>(<a id="838c29" class="tk">S</a>, 9, 5.0E-7);</td></tr>
+<tr name="839" id="839">
+<td><a id="l839" class='ln'>839</a></td><td>  <a id="839c3" class="tk">ssSetOutputPortOffsetTime</a>(<a id="839c29" class="tk">S</a>, 9, 0.0);</td></tr>
+<tr name="840" id="840">
+<td><a id="l840" class='ln'>840</a></td><td>  <a id="840c3" class="tk">ssSetOutputPortOptimOpts</a>(<a id="840c28" class="tk">S</a>, 9, <a id="840c34" class="tk">SS_REUSABLE_AND_LOCAL</a>);</td></tr>
+<tr name="841" id="841">
+<td><a id="l841" class='ln'>841</a></td><td></td></tr>
+<tr name="842" id="842">
+<td><a id="l842" class='ln'>842</a></td><td>  <span class="ct">/* outport number: 10 */</span></td></tr>
+<tr name="843" id="843">
+<td><a id="l843" class='ln'>843</a></td><td>  <span class="kw">if</span> (<a id="843c7" class="tk">!</a><a id="843c8" class="tk">ssSetOutputPortVectorDimension</a>(<a id="843c39" class="tk">S</a>, 10, 1))</td></tr>
+<tr name="844" id="844">
+<td><a id="l844" class='ln'>844</a></td><td>    <span class="kw">return</span>;</td></tr>
+<tr name="845" id="845">
+<td><a id="l845" class='ln'>845</a></td><td>  <span class="kw">if</span> (<a id="845c7" class="tk">ssGetSimMode</a>(<a id="845c20" class="tk">S</a>) <a id="845c23" class="tk">!=</a> <a id="845c26" class="tk">SS_SIMMODE_SIZES_CALL_ONLY</a>) <span class="br">{</span></td></tr>
+<tr name="846" id="846">
+<td><a id="l846" class='ln'>846</a></td><td>    <a id="846c5" class="tk">ssSetOutputPortDataType</a>(<a id="846c29" class="tk">S</a>, 10, <a id="846c36" class="tk">SS_DOUBLE</a>);</td></tr>
+<tr name="847" id="847">
+<td><a id="l847" class='ln'>847</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="848" id="848">
+<td><a id="l848" class='ln'>848</a></td><td></td></tr>
+<tr name="849" id="849">
+<td><a id="l849" class='ln'>849</a></td><td>  <a id="849c3" class="tk">ssSetOutputPortSampleTime</a>(<a id="849c29" class="tk">S</a>, 10, 5.0E-7);</td></tr>
+<tr name="850" id="850">
+<td><a id="l850" class='ln'>850</a></td><td>  <a id="850c3" class="tk">ssSetOutputPortOffsetTime</a>(<a id="850c29" class="tk">S</a>, 10, 0.0);</td></tr>
+<tr name="851" id="851">
+<td><a id="l851" class='ln'>851</a></td><td>  <a id="851c3" class="tk">ssSetOutputPortOptimOpts</a>(<a id="851c28" class="tk">S</a>, 10, <a id="851c35" class="tk">SS_REUSABLE_AND_LOCAL</a>);</td></tr>
+<tr name="852" id="852">
+<td><a id="l852" class='ln'>852</a></td><td></td></tr>
+<tr name="853" id="853">
+<td><a id="l853" class='ln'>853</a></td><td>  <span class="ct">/* outport number: 11 */</span></td></tr>
+<tr name="854" id="854">
+<td><a id="l854" class='ln'>854</a></td><td>  <span class="kw">if</span> (<a id="854c7" class="tk">!</a><a id="854c8" class="tk">ssSetOutputPortVectorDimension</a>(<a id="854c39" class="tk">S</a>, 11, 1))</td></tr>
+<tr name="855" id="855">
+<td><a id="l855" class='ln'>855</a></td><td>    <span class="kw">return</span>;</td></tr>
+<tr name="856" id="856">
+<td><a id="l856" class='ln'>856</a></td><td>  <span class="kw">if</span> (<a id="856c7" class="tk">ssGetSimMode</a>(<a id="856c20" class="tk">S</a>) <a id="856c23" class="tk">!=</a> <a id="856c26" class="tk">SS_SIMMODE_SIZES_CALL_ONLY</a>) <span class="br">{</span></td></tr>
+<tr name="857" id="857">
+<td><a id="l857" class='ln'>857</a></td><td>    <a id="857c5" class="tk">ssSetOutputPortDataType</a>(<a id="857c29" class="tk">S</a>, 11, <a id="857c36" class="tk">SS_DOUBLE</a>);</td></tr>
+<tr name="858" id="858">
+<td><a id="l858" class='ln'>858</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="859" id="859">
+<td><a id="l859" class='ln'>859</a></td><td></td></tr>
+<tr name="860" id="860">
+<td><a id="l860" class='ln'>860</a></td><td>  <a id="860c3" class="tk">ssSetOutputPortSampleTime</a>(<a id="860c29" class="tk">S</a>, 11, 5.0E-7);</td></tr>
+<tr name="861" id="861">
+<td><a id="l861" class='ln'>861</a></td><td>  <a id="861c3" class="tk">ssSetOutputPortOffsetTime</a>(<a id="861c29" class="tk">S</a>, 11, 0.0);</td></tr>
+<tr name="862" id="862">
+<td><a id="l862" class='ln'>862</a></td><td>  <a id="862c3" class="tk">ssSetOutputPortOptimOpts</a>(<a id="862c28" class="tk">S</a>, 11, <a id="862c35" class="tk">SS_REUSABLE_AND_LOCAL</a>);</td></tr>
+<tr name="863" id="863">
+<td><a id="l863" class='ln'>863</a></td><td></td></tr>
+<tr name="864" id="864">
+<td><a id="l864" class='ln'>864</a></td><td>  <span class="ct">/* outport number: 12 */</span></td></tr>
+<tr name="865" id="865">
+<td><a id="l865" class='ln'>865</a></td><td>  <span class="kw">if</span> (<a id="865c7" class="tk">!</a><a id="865c8" class="tk">ssSetOutputPortVectorDimension</a>(<a id="865c39" class="tk">S</a>, 12, 1))</td></tr>
+<tr name="866" id="866">
+<td><a id="l866" class='ln'>866</a></td><td>    <span class="kw">return</span>;</td></tr>
+<tr name="867" id="867">
+<td><a id="l867" class='ln'>867</a></td><td>  <span class="kw">if</span> (<a id="867c7" class="tk">ssGetSimMode</a>(<a id="867c20" class="tk">S</a>) <a id="867c23" class="tk">!=</a> <a id="867c26" class="tk">SS_SIMMODE_SIZES_CALL_ONLY</a>) <span class="br">{</span></td></tr>
+<tr name="868" id="868">
+<td><a id="l868" class='ln'>868</a></td><td>    <a id="868c5" class="tk">ssSetOutputPortDataType</a>(<a id="868c29" class="tk">S</a>, 12, <a id="868c36" class="tk">SS_DOUBLE</a>);</td></tr>
+<tr name="869" id="869">
+<td><a id="l869" class='ln'>869</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="870" id="870">
+<td><a id="l870" class='ln'>870</a></td><td></td></tr>
+<tr name="871" id="871">
+<td><a id="l871" class='ln'>871</a></td><td>  <a id="871c3" class="tk">ssSetOutputPortSampleTime</a>(<a id="871c29" class="tk">S</a>, 12, 5.0E-7);</td></tr>
+<tr name="872" id="872">
+<td><a id="l872" class='ln'>872</a></td><td>  <a id="872c3" class="tk">ssSetOutputPortOffsetTime</a>(<a id="872c29" class="tk">S</a>, 12, 0.0);</td></tr>
+<tr name="873" id="873">
+<td><a id="l873" class='ln'>873</a></td><td>  <a id="873c3" class="tk">ssSetOutputPortOptimOpts</a>(<a id="873c28" class="tk">S</a>, 12, <a id="873c35" class="tk">SS_REUSABLE_AND_LOCAL</a>);</td></tr>
+<tr name="874" id="874">
+<td><a id="l874" class='ln'>874</a></td><td></td></tr>
+<tr name="875" id="875">
+<td><a id="l875" class='ln'>875</a></td><td>  <span class="ct">/* Number of input ports */</span></td></tr>
+<tr name="876" id="876">
+<td><a id="l876" class='ln'>876</a></td><td>  <span class="kw">if</span> (<a id="876c7" class="tk">!</a><a id="876c8" class="tk">ssSetNumInputPorts</a>(<a id="876c27" class="tk">S</a>, 3))</td></tr>
+<tr name="877" id="877">
+<td><a id="l877" class='ln'>877</a></td><td>    <span class="kw">return</span>;</td></tr>
+<tr name="878" id="878">
+<td><a id="l878" class='ln'>878</a></td><td></td></tr>
+<tr name="879" id="879">
+<td><a id="l879" class='ln'>879</a></td><td>  <span class="ct">/* inport number: 0 */</span></td></tr>
+<tr name="880" id="880">
+<td><a id="l880" class='ln'>880</a></td><td>  <span class="br">{</span></td></tr>
+<tr name="881" id="881">
+<td><a id="l881" class='ln'>881</a></td><td>    <span class="kw">if</span> (<a id="881c9" class="tk">!</a><a id="881c10" class="tk">ssSetInputPortVectorDimension</a>(<a id="881c40" class="tk">S</a>, 0, 6))</td></tr>
+<tr name="882" id="882">
+<td><a id="l882" class='ln'>882</a></td><td>      <span class="kw">return</span>;</td></tr>
+<tr name="883" id="883">
+<td><a id="l883" class='ln'>883</a></td><td>    <span class="kw">if</span> (<a id="883c9" class="tk">ssGetSimMode</a>(<a id="883c22" class="tk">S</a>) <a id="883c25" class="tk">!=</a> <a id="883c28" class="tk">SS_SIMMODE_SIZES_CALL_ONLY</a>) <span class="br">{</span></td></tr>
+<tr name="884" id="884">
+<td><a id="l884" class='ln'>884</a></td><td>      <a id="884c7" class="tk">ssSetInputPortDataType</a>(<a id="884c30" class="tk">S</a>, 0, <a id="884c36" class="tk">SS_DOUBLE</a>);</td></tr>
+<tr name="885" id="885">
+<td><a id="l885" class='ln'>885</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="886" id="886">
+<td><a id="l886" class='ln'>886</a></td><td></td></tr>
+<tr name="887" id="887">
+<td><a id="l887" class='ln'>887</a></td><td>    <a id="887c5" class="tk">ssSetInputPortSampleTime</a>(<a id="887c30" class="tk">S</a>, 0, 5.0E-7);</td></tr>
+<tr name="888" id="888">
+<td><a id="l888" class='ln'>888</a></td><td>    <a id="888c5" class="tk">ssSetInputPortOffsetTime</a>(<a id="888c30" class="tk">S</a>, 0, 0.0);</td></tr>
+<tr name="889" id="889">
+<td><a id="l889" class='ln'>889</a></td><td>    <a id="889c5" class="tk">ssSetInputPortOverWritable</a>(<a id="889c32" class="tk">S</a>, 0, 0);</td></tr>
+<tr name="890" id="890">
+<td><a id="l890" class='ln'>890</a></td><td>    <a id="890c5" class="tk">ssSetInputPortOptimOpts</a>(<a id="890c29" class="tk">S</a>, 0, <a id="890c35" class="tk">SS_NOT_REUSABLE_AND_GLOBAL</a>);</td></tr>
+<tr name="891" id="891">
+<td><a id="l891" class='ln'>891</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="892" id="892">
+<td><a id="l892" class='ln'>892</a></td><td></td></tr>
+<tr name="893" id="893">
+<td><a id="l893" class='ln'>893</a></td><td>  <span class="ct">/* inport number: 1 */</span></td></tr>
+<tr name="894" id="894">
+<td><a id="l894" class='ln'>894</a></td><td>  <span class="br">{</span></td></tr>
+<tr name="895" id="895">
+<td><a id="l895" class='ln'>895</a></td><td>    <span class="kw">if</span> (<a id="895c9" class="tk">!</a><a id="895c10" class="tk">ssSetInputPortVectorDimension</a>(<a id="895c40" class="tk">S</a>, 1, 1))</td></tr>
+<tr name="896" id="896">
+<td><a id="l896" class='ln'>896</a></td><td>      <span class="kw">return</span>;</td></tr>
+<tr name="897" id="897">
+<td><a id="l897" class='ln'>897</a></td><td>    <span class="kw">if</span> (<a id="897c9" class="tk">ssGetSimMode</a>(<a id="897c22" class="tk">S</a>) <a id="897c25" class="tk">!=</a> <a id="897c28" class="tk">SS_SIMMODE_SIZES_CALL_ONLY</a>) <span class="br">{</span></td></tr>
+<tr name="898" id="898">
+<td><a id="l898" class='ln'>898</a></td><td>      <a id="898c7" class="tk">ssSetInputPortDataType</a>(<a id="898c30" class="tk">S</a>, 1, <a id="898c36" class="tk">SS_DOUBLE</a>);</td></tr>
+<tr name="899" id="899">
+<td><a id="l899" class='ln'>899</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="900" id="900">
+<td><a id="l900" class='ln'>900</a></td><td></td></tr>
+<tr name="901" id="901">
+<td><a id="l901" class='ln'>901</a></td><td>    <a id="901c5" class="tk">ssSetInputPortDirectFeedThrough</a>(<a id="901c37" class="tk">S</a>, 1, 1);</td></tr>
+<tr name="902" id="902">
+<td><a id="l902" class='ln'>902</a></td><td>    <a id="902c5" class="tk">ssSetInputPortSampleTime</a>(<a id="902c30" class="tk">S</a>, 1, 5.0E-7);</td></tr>
+<tr name="903" id="903">
+<td><a id="l903" class='ln'>903</a></td><td>    <a id="903c5" class="tk">ssSetInputPortOffsetTime</a>(<a id="903c30" class="tk">S</a>, 1, 0.0);</td></tr>
+<tr name="904" id="904">
+<td><a id="l904" class='ln'>904</a></td><td>    <a id="904c5" class="tk">ssSetInputPortOverWritable</a>(<a id="904c32" class="tk">S</a>, 1, 0);</td></tr>
+<tr name="905" id="905">
+<td><a id="l905" class='ln'>905</a></td><td>    <a id="905c5" class="tk">ssSetInputPortOptimOpts</a>(<a id="905c29" class="tk">S</a>, 1, <a id="905c35" class="tk">SS_NOT_REUSABLE_AND_GLOBAL</a>);</td></tr>
+<tr name="906" id="906">
+<td><a id="l906" class='ln'>906</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="907" id="907">
+<td><a id="l907" class='ln'>907</a></td><td></td></tr>
+<tr name="908" id="908">
+<td><a id="l908" class='ln'>908</a></td><td>  <span class="ct">/* inport number: 2 */</span></td></tr>
+<tr name="909" id="909">
+<td><a id="l909" class='ln'>909</a></td><td>  <span class="br">{</span></td></tr>
+<tr name="910" id="910">
+<td><a id="l910" class='ln'>910</a></td><td>    <span class="kw">if</span> (<a id="910c9" class="tk">!</a><a id="910c10" class="tk">ssSetInputPortVectorDimension</a>(<a id="910c40" class="tk">S</a>, 2, 1))</td></tr>
+<tr name="911" id="911">
+<td><a id="l911" class='ln'>911</a></td><td>      <span class="kw">return</span>;</td></tr>
+<tr name="912" id="912">
+<td><a id="l912" class='ln'>912</a></td><td>    <span class="kw">if</span> (<a id="912c9" class="tk">ssGetSimMode</a>(<a id="912c22" class="tk">S</a>) <a id="912c25" class="tk">!=</a> <a id="912c28" class="tk">SS_SIMMODE_SIZES_CALL_ONLY</a>) <span class="br">{</span></td></tr>
+<tr name="913" id="913">
+<td><a id="l913" class='ln'>913</a></td><td>      <a id="913c7" class="tk">ssSetInputPortDataType</a>(<a id="913c30" class="tk">S</a>, 2, <a id="913c36" class="tk">SS_DOUBLE</a>);</td></tr>
+<tr name="914" id="914">
+<td><a id="l914" class='ln'>914</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="915" id="915">
+<td><a id="l915" class='ln'>915</a></td><td></td></tr>
+<tr name="916" id="916">
+<td><a id="l916" class='ln'>916</a></td><td>    <a id="916c5" class="tk">ssSetInputPortDirectFeedThrough</a>(<a id="916c37" class="tk">S</a>, 2, 1);</td></tr>
+<tr name="917" id="917">
+<td><a id="l917" class='ln'>917</a></td><td>    <a id="917c5" class="tk">ssSetInputPortSampleTime</a>(<a id="917c30" class="tk">S</a>, 2, 5.0E-7);</td></tr>
+<tr name="918" id="918">
+<td><a id="l918" class='ln'>918</a></td><td>    <a id="918c5" class="tk">ssSetInputPortOffsetTime</a>(<a id="918c30" class="tk">S</a>, 2, 0.0);</td></tr>
+<tr name="919" id="919">
+<td><a id="l919" class='ln'>919</a></td><td>    <a id="919c5" class="tk">ssSetInputPortOverWritable</a>(<a id="919c32" class="tk">S</a>, 2, 0);</td></tr>
+<tr name="920" id="920">
+<td><a id="l920" class='ln'>920</a></td><td>    <a id="920c5" class="tk">ssSetInputPortOptimOpts</a>(<a id="920c29" class="tk">S</a>, 2, <a id="920c35" class="tk">SS_NOT_REUSABLE_AND_GLOBAL</a>);</td></tr>
+<tr name="921" id="921">
+<td><a id="l921" class='ln'>921</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="922" id="922">
+<td><a id="l922" class='ln'>922</a></td><td></td></tr>
+<tr name="923" id="923">
+<td><a id="l923" class='ln'>923</a></td><td>  <a id="923c3" class="tk">ssSetRTWGeneratedSFcn</a>(<a id="923c25" class="tk">S</a>, 1);         <span class="ct">/* Generated S-function */</span></td></tr>
+<tr name="924" id="924">
+<td><a id="l924" class='ln'>924</a></td><td></td></tr>
+<tr name="925" id="925">
+<td><a id="l925" class='ln'>925</a></td><td>  <span class="ct">/* DWork */</span></td></tr>
+<tr name="926" id="926">
+<td><a id="l926" class='ln'>926</a></td><td>  <span class="kw">if</span> (<a id="926c7" class="tk">!</a><a id="926c8" class="tk">ssSetNumDWork</a>(<a id="926c22" class="tk">S</a>, 6)) <span class="br">{</span></td></tr>
+<tr name="927" id="927">
+<td><a id="l927" class='ln'>927</a></td><td>    <span class="kw">return</span>;</td></tr>
+<tr name="928" id="928">
+<td><a id="l928" class='ln'>928</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="929" id="929">
+<td><a id="l929" class='ln'>929</a></td><td></td></tr>
+<tr name="930" id="930">
+<td><a id="l930" class='ln'>930</a></td><td>  <span class="ct">/* '&lt;S11&gt;/Discrete-Time Integrator1': DSTATE */</span></td></tr>
+<tr name="931" id="931">
+<td><a id="l931" class='ln'>931</a></td><td>  <a id="931c3" class="tk">ssSetDWorkName</a>(<a id="931c18" class="tk">S</a>, 0, "DWORK0");</td></tr>
+<tr name="932" id="932">
+<td><a id="l932" class='ln'>932</a></td><td>  <a id="932c3" class="tk">ssSetDWorkWidth</a>(<a id="932c19" class="tk">S</a>, 0, 1);</td></tr>
+<tr name="933" id="933">
+<td><a id="l933" class='ln'>933</a></td><td>  <a id="933c3" class="tk">ssSetDWorkUsedAsDState</a>(<a id="933c26" class="tk">S</a>, 0, 1);</td></tr>
+<tr name="934" id="934">
+<td><a id="l934" class='ln'>934</a></td><td></td></tr>
+<tr name="935" id="935">
+<td><a id="l935" class='ln'>935</a></td><td>  <span class="ct">/* '&lt;S18&gt;/Discrete-Time Integrator': DSTATE */</span></td></tr>
+<tr name="936" id="936">
+<td><a id="l936" class='ln'>936</a></td><td>  <a id="936c3" class="tk">ssSetDWorkName</a>(<a id="936c18" class="tk">S</a>, 1, "DWORK1");</td></tr>
+<tr name="937" id="937">
+<td><a id="l937" class='ln'>937</a></td><td>  <a id="937c3" class="tk">ssSetDWorkWidth</a>(<a id="937c19" class="tk">S</a>, 1, 1);</td></tr>
+<tr name="938" id="938">
+<td><a id="l938" class='ln'>938</a></td><td>  <a id="938c3" class="tk">ssSetDWorkUsedAsDState</a>(<a id="938c26" class="tk">S</a>, 1, 1);</td></tr>
+<tr name="939" id="939">
+<td><a id="l939" class='ln'>939</a></td><td></td></tr>
+<tr name="940" id="940">
+<td><a id="l940" class='ln'>940</a></td><td>  <span class="ct">/* '&lt;S17&gt;/Discrete-Time Integrator': DSTATE */</span></td></tr>
+<tr name="941" id="941">
+<td><a id="l941" class='ln'>941</a></td><td>  <a id="941c3" class="tk">ssSetDWorkName</a>(<a id="941c18" class="tk">S</a>, 2, "DWORK2");</td></tr>
+<tr name="942" id="942">
+<td><a id="l942" class='ln'>942</a></td><td>  <a id="942c3" class="tk">ssSetDWorkWidth</a>(<a id="942c19" class="tk">S</a>, 2, 1);</td></tr>
+<tr name="943" id="943">
+<td><a id="l943" class='ln'>943</a></td><td>  <a id="943c3" class="tk">ssSetDWorkUsedAsDState</a>(<a id="943c26" class="tk">S</a>, 2, 1);</td></tr>
+<tr name="944" id="944">
+<td><a id="l944" class='ln'>944</a></td><td></td></tr>
+<tr name="945" id="945">
+<td><a id="l945" class='ln'>945</a></td><td>  <span class="ct">/* '&lt;S4&gt;/Unit Delay': DSTATE */</span></td></tr>
+<tr name="946" id="946">
+<td><a id="l946" class='ln'>946</a></td><td>  <a id="946c3" class="tk">ssSetDWorkName</a>(<a id="946c18" class="tk">S</a>, 3, "DWORK3");</td></tr>
+<tr name="947" id="947">
+<td><a id="l947" class='ln'>947</a></td><td>  <a id="947c3" class="tk">ssSetDWorkWidth</a>(<a id="947c19" class="tk">S</a>, 3, 1);</td></tr>
+<tr name="948" id="948">
+<td><a id="l948" class='ln'>948</a></td><td>  <a id="948c3" class="tk">ssSetDWorkUsedAsDState</a>(<a id="948c26" class="tk">S</a>, 3, 1);</td></tr>
+<tr name="949" id="949">
+<td><a id="l949" class='ln'>949</a></td><td></td></tr>
+<tr name="950" id="950">
+<td><a id="l950" class='ln'>950</a></td><td>  <span class="ct">/* '&lt;S20&gt;/State-Space': PWORK */</span></td></tr>
+<tr name="951" id="951">
+<td><a id="l951" class='ln'>951</a></td><td>  <a id="951c3" class="tk">ssSetDWorkName</a>(<a id="951c18" class="tk">S</a>, 4, "DWORK4");</td></tr>
+<tr name="952" id="952">
+<td><a id="l952" class='ln'>952</a></td><td>  <a id="952c3" class="tk">ssSetDWorkWidth</a>(<a id="952c19" class="tk">S</a>, 4, 24);</td></tr>
+<tr name="953" id="953">
+<td><a id="l953" class='ln'>953</a></td><td>  <a id="953c3" class="tk">ssSetDWorkDataType</a>(<a id="953c22" class="tk">S</a>, 4, <a id="953c28" class="tk">SS_POINTER</a>);</td></tr>
+<tr name="954" id="954">
+<td><a id="l954" class='ln'>954</a></td><td></td></tr>
+<tr name="955" id="955">
+<td><a id="l955" class='ln'>955</a></td><td>  <span class="ct">/* '&lt;S20&gt;/State-Space': IWORK */</span></td></tr>
+<tr name="956" id="956">
+<td><a id="l956" class='ln'>956</a></td><td>  <a id="956c3" class="tk">ssSetDWorkName</a>(<a id="956c18" class="tk">S</a>, 5, "DWORK5");</td></tr>
+<tr name="957" id="957">
+<td><a id="l957" class='ln'>957</a></td><td>  <a id="957c3" class="tk">ssSetDWorkWidth</a>(<a id="957c19" class="tk">S</a>, 5, 11);</td></tr>
+<tr name="958" id="958">
+<td><a id="l958" class='ln'>958</a></td><td>  <a id="958c3" class="tk">ssSetDWorkDataType</a>(<a id="958c22" class="tk">S</a>, 5, <a id="958c28" class="tk">SS_INTEGER</a>);</td></tr>
+<tr name="959" id="959">
+<td><a id="l959" class='ln'>959</a></td><td></td></tr>
+<tr name="960" id="960">
+<td><a id="l960" class='ln'>960</a></td><td>  <span class="ct">/* Tunable Parameters */</span></td></tr>
+<tr name="961" id="961">
+<td><a id="l961" class='ln'>961</a></td><td>  <a id="961c3" class="tk">ssSetNumSFcnParams</a>(<a id="961c22" class="tk">S</a>, 0);</td></tr>
+<tr name="962" id="962">
+<td><a id="l962" class='ln'>962</a></td><td></td></tr>
+<tr name="963" id="963">
+<td><a id="l963" class='ln'>963</a></td><td>  <span class="ct">/* Number of expected parameters */</span></td></tr>
+<tr name="964" id="964">
+<td><a id="l964" class='ln'>964</a></td><td><span class="pp">#if</span> <a id="964c5" class="tk">defined</a>(<a id="964c13" class="tk">MATLAB_MEX_FILE</a>)</td></tr>
+<tr name="965" id="965">
+<td><a id="l965" class='ln'>965</a></td><td></td></tr>
+<tr name="966" id="966">
+<td><a id="l966" class='ln'>966</a></td><td>  <span class="kw">if</span> (<a id="966c7" class="tk">ssGetNumSFcnParams</a>(<a id="966c26" class="tk">S</a>) <a id="966c29" class="tk">==</a> <a id="966c32" class="tk">ssGetSFcnParamsCount</a>(<a id="966c53" class="tk">S</a>)) <span class="br">{</span></td></tr>
+<tr name="967" id="967">
+<td><a id="l967" class='ln'>967</a></td><td></td></tr>
+<tr name="968" id="968">
+<td><a id="l968" class='ln'>968</a></td><td><span class="pp">#if</span> <a id="968c5" class="tk">defined</a>(<a id="968c13" class="tk">MDL_CHECK_PARAMETERS</a>)</td></tr>
+<tr name="969" id="969">
+<td><a id="l969" class='ln'>969</a></td><td></td></tr>
+<tr name="970" id="970">
+<td><a id="l970" class='ln'>970</a></td><td>    <a id="970c5" class="tk">mdlCheckParameters</a>(<a id="970c24" class="tk">S</a>);</td></tr>
+<tr name="971" id="971">
+<td><a id="l971" class='ln'>971</a></td><td></td></tr>
+<tr name="972" id="972">
+<td><a id="l972" class='ln'>972</a></td><td><span class="pp">#endif</span>                                 <span class="ct">/* MDL_CHECK_PARAMETERS */</span></td></tr>
+<tr name="973" id="973">
+<td><a id="l973" class='ln'>973</a></td><td></td></tr>
+<tr name="974" id="974">
+<td><a id="l974" class='ln'>974</a></td><td>    <span class="kw">if</span> (<a id="974c9" class="tk">ssGetErrorStatus</a>(<a id="974c26" class="tk">S</a>) <a id="974c29" class="tk">!=</a> (<a id="974c33" class="tk">NULL</a>) ) <span class="br">{</span></td></tr>
+<tr name="975" id="975">
+<td><a id="l975" class='ln'>975</a></td><td>      <span class="kw">return</span>;</td></tr>
+<tr name="976" id="976">
+<td><a id="l976" class='ln'>976</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="977" id="977">
+<td><a id="l977" class='ln'>977</a></td><td>  <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="978" id="978">
+<td><a id="l978" class='ln'>978</a></td><td>    <span class="kw">return</span>;                <span class="ct">/* Parameter mismatch will be reported by Simulink */</span></td></tr>
+<tr name="979" id="979">
+<td><a id="l979" class='ln'>979</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="980" id="980">
+<td><a id="l980" class='ln'>980</a></td><td></td></tr>
+<tr name="981" id="981">
+<td><a id="l981" class='ln'>981</a></td><td><span class="pp">#endif</span>                                 <span class="ct">/* MATLAB_MEX_FILE */</span></td></tr>
+<tr name="982" id="982">
+<td><a id="l982" class='ln'>982</a></td><td></td></tr>
+<tr name="983" id="983">
+<td><a id="l983" class='ln'>983</a></td><td>  <span class="ct">/* Options */</span></td></tr>
+<tr name="984" id="984">
+<td><a id="l984" class='ln'>984</a></td><td>  <a id="984c3" class="tk">ssSetOptions</a>(<a id="984c16" class="tk">S</a>, (<a id="984c20" class="tk">SS_OPTION_RUNTIME_EXCEPTION_FREE_CODE</a> <a id="984c58" class="tk">|</a></td></tr>
+<tr name="985" id="985">
+<td><a id="l985" class='ln'>985</a></td><td>                   <a id="985c20" class="tk">SS_OPTION_PORT_SAMPLE_TIMES_ASSIGNED</a> ));</td></tr>
+<tr name="986" id="986">
+<td><a id="l986" class='ln'>986</a></td><td></td></tr>
+<tr name="987" id="987">
+<td><a id="l987" class='ln'>987</a></td><td><span class="pp">#if</span> <a id="987c5" class="tk">SS_SFCN_FOR_SIM</a></td></tr>
+<tr name="988" id="988">
+<td><a id="l988" class='ln'>988</a></td><td></td></tr>
+<tr name="989" id="989">
+<td><a id="l989" class='ln'>989</a></td><td>  <span class="br">{</span></td></tr>
+<tr name="990" id="990">
+<td><a id="l990" class='ln'>990</a></td><td>    <a id="990c5" class="tk">ssSupportsMultipleExecInstances</a>(<a id="990c37" class="tk">S</a>, true);</td></tr>
+<tr name="991" id="991">
+<td><a id="l991" class='ln'>991</a></td><td>    <a id="991c5" class="tk">ssHasStateInsideForEachSS</a>(<a id="991c31" class="tk">S</a>, false);</td></tr>
+<tr name="992" id="992">
+<td><a id="l992" class='ln'>992</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="993" id="993">
+<td><a id="l993" class='ln'>993</a></td><td></td></tr>
+<tr name="994" id="994">
+<td><a id="l994" class='ln'>994</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="995" id="995">
+<td><a id="l995" class='ln'>995</a></td><td></td></tr>
+<tr name="996" id="996">
+<td><a id="l996" class='ln'>996</a></td><td><span class="br">}</span></td></tr>
+<tr name="997" id="997">
+<td><a id="l997" class='ln'>997</a></td><td></td></tr>
+<tr name="998" id="998">
+<td><a id="l998" class='ln'>998</a></td><td><span class="ct">/* Function to initialize sample times. */</span></td></tr>
+<tr name="999" id="999">
+<td><a id="l999" class='ln'>999</a></td><td><span class="kw">static</span> <span class="kw">void</span> <a id="999c13" class="tk">mdlInitializeSampleTimes</a>(<a id="999c38" class="tk">SimStruct</a> <a id="999c48" class="tk">*</a><a id="999c49" class="tk">S</a>)</td></tr>
+<tr name="1000" id="1000">
+<td><a id="l1000" class='ln'>1000</a></td><td><span class="br">{</span></td></tr>
+<tr name="1001" id="1001">
+<td><a id="l1001" class='ln'>1001</a></td><td>  <span class="ct">/* task periods */</span></td></tr>
+<tr name="1002" id="1002">
+<td><a id="l1002" class='ln'>1002</a></td><td>  <a id="1002c3" class="tk">ssSetSampleTime</a>(<a id="1002c19" class="tk">S</a>, 0, 5.0E-7);</td></tr>
+<tr name="1003" id="1003">
+<td><a id="l1003" class='ln'>1003</a></td><td></td></tr>
+<tr name="1004" id="1004">
+<td><a id="l1004" class='ln'>1004</a></td><td>  <span class="ct">/* task offsets */</span></td></tr>
+<tr name="1005" id="1005">
+<td><a id="l1005" class='ln'>1005</a></td><td>  <a id="1005c3" class="tk">ssSetOffsetTime</a>(<a id="1005c19" class="tk">S</a>, 0, 0.0);</td></tr>
+<tr name="1006" id="1006">
+<td><a id="l1006" class='ln'>1006</a></td><td><span class="br">}</span></td></tr>
+<tr name="1007" id="1007">
+<td><a id="l1007" class='ln'>1007</a></td><td></td></tr>
+<tr name="1008" id="1008">
+<td><a id="l1008" class='ln'>1008</a></td><td><span class="pp">#if</span> <a id="1008c5" class="tk">defined</a>(<a id="1008c13" class="tk">MATLAB_MEX_FILE</a>)</td></tr>
+<tr name="1009" id="1009">
+<td><a id="l1009" class='ln'>1009</a></td><td><span class="pp">#include "fixedpoint.c"</span></td></tr>
+<tr name="1010" id="1010">
+<td><a id="l1010" class='ln'>1010</a></td><td><span class="pp">#include "simulink.c"</span></td></tr>
+<tr name="1011" id="1011">
+<td><a id="l1011" class='ln'>1011</a></td><td><span class="pp">#else</span></td></tr>
+<tr name="1012" id="1012">
+<td><a id="l1012" class='ln'>1012</a></td><td><span class="pp">#undef</span> <a id="1012c8" class="tk">S_FUNCTION_NAME</a></td></tr>
+<tr name="1013" id="1013">
+<td><a id="l1013" class='ln'>1013</a></td><td><span class="pp">#define</span> <a id="1013c9" class="tk">S_FUNCTION_NAME</a>                <a id="1013c40" class="tk">PMSM_Motor_TL3_sf</a></td></tr>
+<tr name="1014" id="1014">
+<td><a id="l1014" class='ln'>1014</a></td><td><span class="pp">#include "cg_sfun.h"</span></td></tr>
+<tr name="1015" id="1015">
+<td><a id="l1015" class='ln'>1015</a></td><td><span class="pp">#endif</span>                                 <span class="ct">/* defined(MATLAB_MEX_FILE) */</span></td></tr>
+<tr name="1016" id="1016">
+<td><a id="l1016" class='ln'>1016</a></td><td></td></tr>
+</table>
+</pre>
+</body>
+</html>

+ 33 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/html/PMSM_Motor_TL3_sf_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:2499"; </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>
+PMSM_Motor_TL3 Code Generation Report
+</title>
+
+</head>
+<frameset cols="25%,75%,0%" id="main" border="2">
+<frame scrolling="auto" src="PMSM_Motor_TL3_sf_contents.html" name="rtwreport_contents_frame" id="rtwreport_contents_frame" onLoad="loadDocFrameSource('PMSM_Motor_TL3_sf')">
+
+</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>

+ 343 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/html/PMSM_Motor_TL3_sf_contents.html

@@ -0,0 +1,343 @@
+<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="PMSM_Motor_TL3_sf_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="PMSM_Motor_TL3_sf_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="PMSM_Motor_TL3_sf_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>
+
+</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="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','4')"><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="PMSM_Motor_TL3_sf_c.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="PMSM_Motor_TL3_sf_c.html" NAME="rtwIdGenFileLinks">
+PMSM_Motor_TL3_sf.c
+</A>
+<span> </span>
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<A HREF="PMSM_Motor_TL3_sf_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="PMSM_Motor_TL3_sf_h.html" NAME="rtwIdGenFileLinks">
+PMSM_Motor_TL3_sf.h
+</A>
+<span> </span>
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<A HREF="PMSM_Motor_TL3_sf_private_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="PMSM_Motor_TL3_sf_private_h.html" NAME="rtwIdGenFileLinks">
+PMSM_Motor_TL3_sf_private.h
+</A>
+<span> </span>
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<A HREF="PMSM_Motor_TL3_sf_types_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="PMSM_Motor_TL3_sf_types_h.html" NAME="rtwIdGenFileLinks">
+PMSM_Motor_TL3_sf_types.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="Data" label="Data 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,'Data','Data files','1')"><span style="font-family:monospace" id = "Data_button">[-]</span></span>
+</td>
+<td width="100%" align="left" valign="top">
+<span id="Data_name"><b>Data files</b></span>
+</td>
+
+</tr>
+<tr>
+<td width="0%" align="left" valign="top">
+<span id="Data_indent"></span>
+</td>
+<td width="100%" align="left" valign="top">
+<table cellspacing="0" cellpadding="4" width="100%" bgcolor="#ffffff" id="Data_table" border="0">
+<tr>
+<td align="left" valign="top">
+<A HREF="PMSM_Motor_TL3_sf_data_c.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="PMSM_Motor_TL3_sf_data_c.html" NAME="rtwIdGenFileLinks">
+PMSM_Motor_TL3_sf_data.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="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','9')"><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 (9)</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="multiword_types_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="multiword_types_h.html" NAME="rtwIdGenFileLinks">
+multiword_types.h
+</A>
+<span> </span>
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<A HREF="rtGetInf_c.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="rtGetInf_c.html" NAME="rtwIdGenFileLinks">
+rtGetInf.c
+</A>
+<span> </span>
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<A HREF="rtGetInf_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="rtGetInf_h.html" NAME="rtwIdGenFileLinks">
+rtGetInf.h
+</A>
+<span> </span>
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<A HREF="rtGetNaN_c.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="rtGetNaN_c.html" NAME="rtwIdGenFileLinks">
+rtGetNaN.c
+</A>
+<span> </span>
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<A HREF="rtGetNaN_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="rtGetNaN_h.html" NAME="rtwIdGenFileLinks">
+rtGetNaN.h
+</A>
+<span> </span>
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<A HREF="rt_defines_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="rt_defines_h.html" NAME="rtwIdGenFileLinks">
+rt_defines.h
+</A>
+<span> </span>
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<A HREF="rt_nonfinite_c.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="rt_nonfinite_c.html" NAME="rtwIdGenFileLinks">
+rt_nonfinite.c
+</A>
+<span> </span>
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<A HREF="rt_nonfinite_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="rt_nonfinite_h.html" NAME="rtwIdGenFileLinks">
+rt_nonfinite.h
+</A>
+<span> </span>
+</td>
+
+</tr>
+<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>
+<tr>
+<td align="left" valign="top">
+<table cellspacing="0" cellpadding="1" width="100%" bgcolor="#ffffff" id="Interface" label="Interface 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,'Interface','Interface files','2')"><span style="font-family:monospace" id = "Interface_button">[+]</span></span>
+</td>
+<td width="100%" align="left" valign="top">
+<span id="Interface_name"><b>Interface files (2)</b></span>
+</td>
+
+</tr>
+<tr>
+<td width="0%" align="left" valign="top">
+<span id="Interface_indent"></span>
+</td>
+<td width="100%" align="left" valign="top">
+<table cellspacing="0" cellpadding="4" width="100%" bgcolor="#ffffff" id="Interface_table" style="display:none" border="0">
+<tr>
+<td align="left" valign="top">
+<A HREF="PMSM_Motor_TL3_mid_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="PMSM_Motor_TL3_mid_h.html" NAME="rtwIdGenFileLinks">
+PMSM_Motor_TL3_mid.h
+</A>
+<span> </span>
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<A HREF="PMSM_Motor_TL3_sid_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="PMSM_Motor_TL3_sid_h.html" NAME="rtwIdGenFileLinks">
+PMSM_Motor_TL3_sid.h
+</A>
+<span> </span>
+</td>
+
+</tr>
+
+</table>
+
+</td>
+
+</tr>
+
+</table>
+
+</td>
+
+</tr>
+
+</table>
+<hr />
+</body>
+
+</html>

+ 100 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/html/PMSM_Motor_TL3_sf_data_c.html

@@ -0,0 +1,100 @@
+<!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"> * PMSM_Motor_TL3_sf_data.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 generation for model "PMSM_Motor_TL3_sf".</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.825</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 source code generated on : Fri Apr 14 12:51:02 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: rtwsfcn.tlc</span></td></tr>
+<tr name="11" id="11">
+<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
+<tr name="12" id="12">
+<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * Embedded hardware selection: ARM Compatible-&gt;ARM Cortex-M</span></td></tr>
+<tr name="13" id="13">
+<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> * Emulation hardware selection:</span></td></tr>
+<tr name="14" id="14">
+<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> *    Differs from embedded hardware (MATLAB Host)</span></td></tr>
+<tr name="15" id="15">
+<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Code generation objectives:</span></td></tr>
+<tr name="16" id="16">
+<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> *    1. Execution efficiency</span></td></tr>
+<tr name="17" id="17">
+<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> *    2. RAM efficiency</span></td></tr>
+<tr name="18" id="18">
+<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
+<tr name="19" id="19">
+<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> */</span></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="pp">#include "PMSM_Motor_TL3_sf.h"</span></td></tr>
+<tr name="22" id="22">
+<td><a id="l22" class='ln'>22</a></td><td><span class="pp">#include "PMSM_Motor_TL3_sf_private.h"</span></td></tr>
+<tr name="23" id="23">
+<td><a id="l23" class='ln'>23</a></td><td></td></tr>
+<tr name="24" id="24">
+<td><a id="l24" class='ln'>24</a></td><td><span class="ct">/* Constant parameters (default storage) */</span></td></tr>
+<tr name="25" id="25">
+<td><a id="l25" class='ln'>25</a></td><td><span class="kw">const</span> <a id="25c7" class="tk">ConstP_PMSM_Motor_TL3_T</a> <a id="25c31" class="tk">PMSM_Motor_TL3_ConstP</a> = <span class="br">{</span></td></tr>
+<tr name="26" id="26">
+<td><a id="l26" class='ln'>26</a></td><td>  <span class="ct">/* Expression: zeros(1,Switches)</span></td></tr>
+<tr name="27" id="27">
+<td><a id="l27" class='ln'>27</a></td><td><span class="ct">   * Referenced by: '&lt;S19&gt;/Constant'</span></td></tr>
+<tr name="28" id="28">
+<td><a id="l28" class='ln'>28</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="29" id="29">
+<td><a id="l29" class='ln'>29</a></td><td>  <span class="br">{</span> 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 <span class="br">}</span>,</td></tr>
+<tr name="30" id="30">
+<td><a id="l30" class='ln'>30</a></td><td></td></tr>
+<tr name="31" id="31">
+<td><a id="l31" class='ln'>31</a></td><td>  <span class="ct">/* Expression: S.D</span></td></tr>
+<tr name="32" id="32">
+<td><a id="l32" class='ln'>32</a></td><td><span class="ct">   * Referenced by: '&lt;S20&gt;/State-Space'</span></td></tr>
+<tr name="33" id="33">
+<td><a id="l33" class='ln'>33</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="34" id="34">
+<td><a id="l34" class='ln'>34</a></td><td>  <span class="br">{</span> <a id="34c5" class="tk">-</a>25.0, 25.0, 0.0, 0.0, 0.0, 0.0, 25.0, 0.0, 0.5, 25.0, <a id="34c60" class="tk">-</a>25.0, 0.0, 0.0, 0.0,</td></tr>
+<tr name="35" id="35">
+<td><a id="l35" class='ln'>35</a></td><td>    0.0, <a id="35c10" class="tk">-</a>25.0, 0.0, 0.5, 0.0, 0.0, <a id="35c37" class="tk">-</a>25.0, 25.0, 0.0, 0.0, <a id="35c60" class="tk">-</a>25.0, 25.0, 0.5, 0.0,</td></tr>
+<tr name="36" id="36">
+<td><a id="l36" class='ln'>36</a></td><td>    0.0, 25.0, <a id="36c16" class="tk">-</a>25.0, 0.0, 0.0, 25.0, <a id="36c39" class="tk">-</a>25.0, 0.5, 0.0, 0.0, 0.0, 0.0, <a id="36c71" class="tk">-</a>25.0,</td></tr>
+<tr name="37" id="37">
+<td><a id="l37" class='ln'>37</a></td><td>    25.0, 0.0, <a id="37c16" class="tk">-</a>25.0, 0.5, 0.0, 0.0, 0.0, 0.0, 25.0, <a id="37c54" class="tk">-</a>25.0, 0.0, 25.0, 0.5, 25.0,</td></tr>
+<tr name="38" id="38">
+<td><a id="l38" class='ln'>38</a></td><td>    <a id="38c5" class="tk">-</a>25.0, 0.0, 0.0, <a id="38c22" class="tk">-</a>25.0, 25.0, <a id="38c35" class="tk">-</a>25.0, <a id="38c42" class="tk">-</a>25.0, 0.0, 0.0, 0.0, 25.0, <a id="38c70" class="tk">-</a>25.0,</td></tr>
+<tr name="39" id="39">
+<td><a id="l39" class='ln'>39</a></td><td>    <a id="39c5" class="tk">-</a>25.0, 25.0, 25.0, <a id="39c24" class="tk">-</a>50.0, 0.0, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.0, 0.0, 0.03</td></tr>
+<tr name="40" id="40">
+<td><a id="l40" class='ln'>40</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="41" id="41">
+<td><a id="l41" class='ln'>41</a></td><td><span class="br">}</span>;</td></tr>
+<tr name="42" id="42">
+<td><a id="l42" class='ln'>42</a></td><td></td></tr>
+</table>
+</pre>
+</body>
+</html>

+ 364 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/html/PMSM_Motor_TL3_sf_h.html

@@ -0,0 +1,364 @@
+<!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"> * PMSM_Motor_TL3_sf.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 generation for model "PMSM_Motor_TL3_sf".</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.825</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 source code generated on : Fri Apr 14 12:51:02 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: rtwsfcn.tlc</span></td></tr>
+<tr name="11" id="11">
+<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
+<tr name="12" id="12">
+<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * Embedded hardware selection: ARM Compatible-&gt;ARM Cortex-M</span></td></tr>
+<tr name="13" id="13">
+<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> * Emulation hardware selection:</span></td></tr>
+<tr name="14" id="14">
+<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> *    Differs from embedded hardware (MATLAB Host)</span></td></tr>
+<tr name="15" id="15">
+<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Code generation objectives:</span></td></tr>
+<tr name="16" id="16">
+<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> *    1. Execution efficiency</span></td></tr>
+<tr name="17" id="17">
+<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> *    2. RAM efficiency</span></td></tr>
+<tr name="18" id="18">
+<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
+<tr name="19" id="19">
+<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> */</span></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="pp">#ifndef</span> <a id="21c9" class="tk">RTW_HEADER_PMSM_Motor_TL3_sf_h_</a></td></tr>
+<tr name="22" id="22">
+<td><a id="l22" class='ln'>22</a></td><td><span class="pp">#define</span> <a id="22c9" class="tk">RTW_HEADER_PMSM_Motor_TL3_sf_h_</a></td></tr>
+<tr name="23" id="23">
+<td><a id="l23" class='ln'>23</a></td><td><span class="pp">#include &lt;math.h&gt;</span></td></tr>
+<tr name="24" id="24">
+<td><a id="l24" class='ln'>24</a></td><td><span class="pp">#include &lt;string.h&gt;</span></td></tr>
+<tr name="25" id="25">
+<td><a id="l25" class='ln'>25</a></td><td><span class="pp">#include &lt;stddef.h&gt;</span></td></tr>
+<tr name="26" id="26">
+<td><a id="l26" class='ln'>26</a></td><td><span class="pp">#ifndef</span> <a id="26c9" class="tk">PMSM_Motor_TL3_sf_COMMON_INCLUDES_</a></td></tr>
+<tr name="27" id="27">
+<td><a id="l27" class='ln'>27</a></td><td><span class="pp">#define</span> <a id="27c9" class="tk">PMSM_Motor_TL3_sf_COMMON_INCLUDES_</a></td></tr>
+<tr name="28" id="28">
+<td><a id="l28" class='ln'>28</a></td><td><span class="pp">#include &lt;stdlib.h&gt;</span></td></tr>
+<tr name="29" id="29">
+<td><a id="l29" class='ln'>29</a></td><td><span class="pp">#define</span> <a id="29c9" class="tk">S_FUNCTION_NAME</a>                <a id="29c40" class="tk">PMSM_Motor_TL3_sf</a></td></tr>
+<tr name="30" id="30">
+<td><a id="l30" class='ln'>30</a></td><td><span class="pp">#define</span> <a id="30c9" class="tk">S_FUNCTION_LEVEL</a>               2</td></tr>
+<tr name="31" id="31">
+<td><a id="l31" class='ln'>31</a></td><td><span class="pp">#define</span> <a id="31c9" class="tk">RTW_GENERATED_S_FUNCTION</a></td></tr>
+<tr name="32" id="32">
+<td><a id="l32" class='ln'>32</a></td><td><span class="pp">#include "rtwtypes.h"</span></td></tr>
+<tr name="33" id="33">
+<td><a id="l33" class='ln'>33</a></td><td><span class="pp">#include "simstruc.h"</span></td></tr>
+<tr name="34" id="34">
+<td><a id="l34" class='ln'>34</a></td><td><span class="pp">#include "fixedpoint.h"</span></td></tr>
+<tr name="35" id="35">
+<td><a id="l35" class='ln'>35</a></td><td><span class="pp">#if</span> <a id="35c5" class="tk">!</a><a id="35c6" class="tk">defined</a>(<a id="35c14" class="tk">MATLAB_MEX_FILE</a>)</td></tr>
+<tr name="36" id="36">
+<td><a id="l36" class='ln'>36</a></td><td><span class="pp">#include "rt_matrx.h"</span></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="pp">#if</span> <a id="39c5" class="tk">!</a><a id="39c6" class="tk">defined</a>(<a id="39c14" class="tk">RTW_SFUNCTION_DEFINES</a>)</td></tr>
+<tr name="40" id="40">
+<td><a id="l40" class='ln'>40</a></td><td><span class="pp">#define</span> <a id="40c9" class="tk">RTW_SFUNCTION_DEFINES</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">void</span> <a id="43c8" class="tk">*</a><a id="43c9" class="tk">blockIO</a>;</td></tr>
+<tr name="44" id="44">
+<td><a id="l44" class='ln'>44</a></td><td>  <span class="kw">void</span> <a id="44c8" class="tk">*</a><a id="44c9" class="tk">defaultParam</a>;</td></tr>
+<tr name="45" id="45">
+<td><a id="l45" class='ln'>45</a></td><td>  <span class="kw">void</span> <a id="45c8" class="tk">*</a><a id="45c9" class="tk">nonContDerivSig</a>;</td></tr>
+<tr name="46" id="46">
+<td><a id="l46" class='ln'>46</a></td><td><span class="br">}</span> <a id="46c3" class="tk">LocalS</a>;</td></tr>
+<tr name="47" id="47">
+<td><a id="l47" class='ln'>47</a></td><td></td></tr>
+<tr name="48" id="48">
+<td><a id="l48" class='ln'>48</a></td><td><span class="pp">#define</span> <a id="48c9" class="tk">ssSetLocalBlockIO</a>(<a id="48c27" class="tk">S</a>, <a id="48c30" class="tk">io</a>)       ((<a id="48c42" class="tk">LocalS</a> <a id="48c49" class="tk">*</a>)<a id="48c51" class="tk">ssGetUserData</a>(<a id="48c65" class="tk">S</a>))-&gt;<a id="48c70" class="tk">blockIO</a> = ((<span class="kw">void</span> <a id="48c87" class="tk">*</a>)(<a id="48c90" class="tk">io</a>))</td></tr>
+<tr name="49" id="49">
+<td><a id="l49" class='ln'>49</a></td><td><span class="pp">#define</span> <a id="49c9" class="tk">ssGetLocalBlockIO</a>(<a id="49c27" class="tk">S</a>)           ((<a id="49c42" class="tk">LocalS</a> <a id="49c49" class="tk">*</a>)<a id="49c51" class="tk">ssGetUserData</a>(<a id="49c65" class="tk">S</a>))-&gt;<a id="49c70" class="tk">blockIO</a></td></tr>
+<tr name="50" id="50">
+<td><a id="l50" class='ln'>50</a></td><td><span class="pp">#define</span> <a id="50c9" class="tk">ssSetLocalDefaultParam</a>(<a id="50c32" class="tk">S</a>, <a id="50c35" class="tk">paramVector</a>) ((<a id="50c50" class="tk">LocalS</a> <a id="50c57" class="tk">*</a>)<a id="50c59" class="tk">ssGetUserData</a>(<a id="50c73" class="tk">S</a>))-&gt;<a id="50c78" class="tk">defaultParam</a> = (<a id="50c94" class="tk">paramVector</a>)</td></tr>
+<tr name="51" id="51">
+<td><a id="l51" class='ln'>51</a></td><td><span class="pp">#define</span> <a id="51c9" class="tk">ssGetLocalDefaultParam</a>(<a id="51c32" class="tk">S</a>)      ((<a id="51c42" class="tk">LocalS</a> <a id="51c49" class="tk">*</a>)<a id="51c51" class="tk">ssGetUserData</a>(<a id="51c65" class="tk">S</a>))-&gt;<a id="51c70" class="tk">defaultParam</a></td></tr>
+<tr name="52" id="52">
+<td><a id="l52" class='ln'>52</a></td><td><span class="pp">#define</span> <a id="52c9" class="tk">ssSetLocalNonContDerivSig</a>(<a id="52c35" class="tk">S</a>, <a id="52c38" class="tk">pSig</a>) ((<a id="52c46" class="tk">LocalS</a> <a id="52c53" class="tk">*</a>)<a id="52c55" class="tk">ssGetUserData</a>(<a id="52c69" class="tk">S</a>))-&gt;<a id="52c74" class="tk">nonContDerivSig</a> = (<a id="52c93" class="tk">pSig</a>)</td></tr>
+<tr name="53" id="53">
+<td><a id="l53" class='ln'>53</a></td><td><span class="pp">#define</span> <a id="53c9" class="tk">ssGetLocalNonContDerivSig</a>(<a id="53c35" class="tk">S</a>)   ((<a id="53c42" class="tk">LocalS</a> <a id="53c49" class="tk">*</a>)<a id="53c51" class="tk">ssGetUserData</a>(<a id="53c65" class="tk">S</a>))-&gt;<a id="53c70" class="tk">nonContDerivSig</a></td></tr>
+<tr name="54" id="54">
+<td><a id="l54" class='ln'>54</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="55" id="55">
+<td><a id="l55" class='ln'>55</a></td><td><span class="pp">#endif</span>                                 <span class="ct">/* PMSM_Motor_TL3_sf_COMMON_INCLUDES_ */</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="pp">#include "PMSM_Motor_TL3_sf_types.h"</span></td></tr>
+<tr name="58" id="58">
+<td><a id="l58" class='ln'>58</a></td><td></td></tr>
+<tr name="59" id="59">
+<td><a id="l59" class='ln'>59</a></td><td><span class="ct">/* Shared type includes */</span></td></tr>
+<tr name="60" id="60">
+<td><a id="l60" class='ln'>60</a></td><td><span class="pp">#include "multiword_types.h"</span></td></tr>
+<tr name="61" id="61">
+<td><a id="l61" class='ln'>61</a></td><td><span class="pp">#include "rtGetNaN.h"</span></td></tr>
+<tr name="62" id="62">
+<td><a id="l62" class='ln'>62</a></td><td><span class="pp">#include "rt_nonfinite.h"</span></td></tr>
+<tr name="63" id="63">
+<td><a id="l63" class='ln'>63</a></td><td><span class="pp">#include "rt_defines.h"</span></td></tr>
+<tr name="64" id="64">
+<td><a id="l64" class='ln'>64</a></td><td><span class="pp">#include "rtGetInf.h"</span></td></tr>
+<tr name="65" id="65">
+<td><a id="l65" class='ln'>65</a></td><td></td></tr>
+<tr name="66" id="66">
+<td><a id="l66" class='ln'>66</a></td><td><span class="ct">/* Block signals (default storage) */</span></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">struct</span> <span class="br">{</span></td></tr>
+<tr name="68" id="68">
+<td><a id="l68" class='ln'>68</a></td><td>  <a id="68c3" class="tk">real_T</a> <a id="68c10" class="tk">Fcn</a>;                          <span class="ct">/* '&lt;S15&gt;/Fcn' */</span></td></tr>
+<tr name="69" id="69">
+<td><a id="l69" class='ln'>69</a></td><td>  <a id="69c3" class="tk">real_T</a> <a id="69c10" class="tk">Fcn1</a>;                         <span class="ct">/* '&lt;S15&gt;/Fcn1' */</span></td></tr>
+<tr name="70" id="70">
+<td><a id="l70" class='ln'>70</a></td><td>  <a id="70c3" class="tk">real_T</a> <a id="70c10" class="tk">StateSpace_o1</a>[9];             <span class="ct">/* '&lt;S20&gt;/State-Space' */</span></td></tr>
+<tr name="71" id="71">
+<td><a id="l71" class='ln'>71</a></td><td>  <a id="71c3" class="tk">real_T</a> <a id="71c10" class="tk">StateSpace_o2</a>[6];             <span class="ct">/* '&lt;S20&gt;/State-Space' */</span></td></tr>
+<tr name="72" id="72">
+<td><a id="l72" class='ln'>72</a></td><td>  <a id="72c3" class="tk">real_T</a> <a id="72c10" class="tk">Gain</a>;                         <span class="ct">/* '&lt;S11&gt;/Gain' */</span></td></tr>
+<tr name="73" id="73">
+<td><a id="l73" class='ln'>73</a></td><td>  <a id="73c3" class="tk">real_T</a> <a id="73c10" class="tk">Sum1</a>;                         <span class="ct">/* '&lt;S18&gt;/Sum1' */</span></td></tr>
+<tr name="74" id="74">
+<td><a id="l74" class='ln'>74</a></td><td>  <a id="74c3" class="tk">real_T</a> <a id="74c10" class="tk">Sum</a>;                          <span class="ct">/* '&lt;S17&gt;/Sum' */</span></td></tr>
+<tr name="75" id="75">
+<td><a id="l75" class='ln'>75</a></td><td>  <a id="75c3" class="tk">real_T</a> <a id="75c10" class="tk">Add1</a>;                         <span class="ct">/* '&lt;S4&gt;/Add1' */</span></td></tr>
+<tr name="76" id="76">
+<td><a id="l76" class='ln'>76</a></td><td><span class="br">}</span> <a id="76c3" class="tk">B_PMSM_Motor_TL3_T</a>;</td></tr>
+<tr name="77" id="77">
+<td><a id="l77" class='ln'>77</a></td><td></td></tr>
+<tr name="78" id="78">
+<td><a id="l78" class='ln'>78</a></td><td><span class="ct">/* Constant parameters (default storage) */</span></td></tr>
+<tr name="79" id="79">
+<td><a id="l79" class='ln'>79</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="80" id="80">
+<td><a id="l80" class='ln'>80</a></td><td>  <span class="ct">/* Expression: zeros(1,Switches)</span></td></tr>
+<tr name="81" id="81">
+<td><a id="l81" class='ln'>81</a></td><td><span class="ct">   * Referenced by: '&lt;S19&gt;/Constant'</span></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>  <a id="83c3" class="tk">real_T</a> <a id="83c10" class="tk">Constant_Value</a>[6];</td></tr>
+<tr name="84" id="84">
+<td><a id="l84" class='ln'>84</a></td><td></td></tr>
+<tr name="85" id="85">
+<td><a id="l85" class='ln'>85</a></td><td>  <span class="ct">/* Expression: S.D</span></td></tr>
+<tr name="86" id="86">
+<td><a id="l86" class='ln'>86</a></td><td><span class="ct">   * Referenced by: '&lt;S20&gt;/State-Space'</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="88c3" class="tk">real_T</a> <a id="88c10" class="tk">StateSpace_DS_param</a>[81];</td></tr>
+<tr name="89" id="89">
+<td><a id="l89" class='ln'>89</a></td><td><span class="br">}</span> <a id="89c3" class="tk">ConstP_PMSM_Motor_TL3_T</a>;</td></tr>
+<tr name="90" id="90">
+<td><a id="l90" class='ln'>90</a></td><td></td></tr>
+<tr name="91" id="91">
+<td><a id="l91" class='ln'>91</a></td><td><span class="ct">/* External inputs (root inport signals with default storage) */</span></td></tr>
+<tr name="92" id="92">
+<td><a id="l92" class='ln'>92</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="93" id="93">
+<td><a id="l93" class='ln'>93</a></td><td>  <a id="93c3" class="tk">real_T</a> <a id="93c10" class="tk">*</a><a id="93c11" class="tk">PWM</a>[6];                      <span class="ct">/* '&lt;Root&gt;/PWM' */</span></td></tr>
+<tr name="94" id="94">
+<td><a id="l94" class='ln'>94</a></td><td>  <a id="94c3" class="tk">real_T</a> <a id="94c10" class="tk">*</a><a id="94c11" class="tk">TL</a>;                          <span class="ct">/* '&lt;Root&gt;/TL' */</span></td></tr>
+<tr name="95" id="95">
+<td><a id="l95" class='ln'>95</a></td><td>  <a id="95c3" class="tk">real_T</a> <a id="95c10" class="tk">*</a><a id="95c11" class="tk">DC</a>;                          <span class="ct">/* '&lt;Root&gt;/DC' */</span></td></tr>
+<tr name="96" id="96">
+<td><a id="l96" class='ln'>96</a></td><td><span class="br">}</span> <a id="96c3" class="tk">ExternalUPtrs_PMSM_Motor_TL3_T</a>;</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">/* External outputs (root outports fed by signals with default storage) */</span></td></tr>
+<tr name="99" id="99">
+<td><a id="l99" class='ln'>99</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="100" id="100">
+<td><a id="l100" class='ln'>100</a></td><td>  <a id="100c3" class="tk">real_T</a> <a id="100c10" class="tk">*</a><a id="100c11" class="tk">Statorcurrentis_aA</a>;          <span class="ct">/* '&lt;Root&gt;/Stator current is_a (A)' */</span></td></tr>
+<tr name="101" id="101">
+<td><a id="l101" class='ln'>101</a></td><td>  <a id="101c3" class="tk">real_T</a> <a id="101c10" class="tk">*</a><a id="101c11" class="tk">Statorcurrentis_bA</a>;          <span class="ct">/* '&lt;Root&gt;/Stator current is_b (A)' */</span></td></tr>
+<tr name="102" id="102">
+<td><a id="l102" class='ln'>102</a></td><td>  <a id="102c3" class="tk">real_T</a> <a id="102c10" class="tk">*</a><a id="102c11" class="tk">Statorcurrentis_cA</a>;          <span class="ct">/* '&lt;Root&gt;/Stator current is_c (A)' */</span></td></tr>
+<tr name="103" id="103">
+<td><a id="l103" class='ln'>103</a></td><td>  <a id="103c3" class="tk">real_T</a> <a id="103c10" class="tk">*</a><a id="103c11" class="tk">Statorcurrentis_qA</a>;          <span class="ct">/* '&lt;Root&gt;/Stator current is_q (A)' */</span></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">*</a><a id="104c11" class="tk">Statorcurrentis_dA</a>;          <span class="ct">/* '&lt;Root&gt;/Stator current is_d (A)' */</span></td></tr>
+<tr name="105" id="105">
+<td><a id="l105" class='ln'>105</a></td><td>  <a id="105c3" class="tk">real_T</a> <a id="105c10" class="tk">*</a><a id="105c11" class="tk">StatorvoltageVs_qV</a>;          <span class="ct">/* '&lt;Root&gt;/Stator voltage Vs_q (V)' */</span></td></tr>
+<tr name="106" id="106">
+<td><a id="l106" class='ln'>106</a></td><td>  <a id="106c3" class="tk">real_T</a> <a id="106c10" class="tk">*</a><a id="106c11" class="tk">StatorvoltageVs_dV</a>;          <span class="ct">/* '&lt;Root&gt;/Stator voltage Vs_d (V)' */</span></td></tr>
+<tr name="107" id="107">
+<td><a id="l107" class='ln'>107</a></td><td>  <a id="107c3" class="tk">real_T</a> <a id="107c10" class="tk">*</a><a id="107c11" class="tk">Halleffectsignalh_a</a>;         <span class="ct">/* '&lt;Root&gt;/Hall effect signal h_a' */</span></td></tr>
+<tr name="108" id="108">
+<td><a id="l108" class='ln'>108</a></td><td>  <a id="108c3" class="tk">real_T</a> <a id="108c10" class="tk">*</a><a id="108c11" class="tk">Halleffectsignalh_b</a>;         <span class="ct">/* '&lt;Root&gt;/Hall effect signal h_b' */</span></td></tr>
+<tr name="109" id="109">
+<td><a id="l109" class='ln'>109</a></td><td>  <a id="109c3" class="tk">real_T</a> <a id="109c10" class="tk">*</a><a id="109c11" class="tk">Halleffectsignalh_c</a>;         <span class="ct">/* '&lt;Root&gt;/Hall effect signal h_c' */</span></td></tr>
+<tr name="110" id="110">
+<td><a id="l110" class='ln'>110</a></td><td>  <a id="110c3" class="tk">real_T</a> <a id="110c10" class="tk">*</a><a id="110c11" class="tk">Rotorspeedwmrads</a>;            <span class="ct">/* '&lt;Root&gt;/Rotor speed wm (rad//s)' */</span></td></tr>
+<tr name="111" id="111">
+<td><a id="l111" class='ln'>111</a></td><td>  <a id="111c3" class="tk">real_T</a> <a id="111c10" class="tk">*</a><a id="111c11" class="tk">Rotoranglethetamrad</a>;         <span class="ct">/* '&lt;Root&gt;/Rotor angle thetam (rad)' */</span></td></tr>
+<tr name="112" id="112">
+<td><a id="l112" class='ln'>112</a></td><td>  <a id="112c3" class="tk">real_T</a> <a id="112c10" class="tk">*</a><a id="112c11" class="tk">ElectromagnetictorqueTeNm</a>;</td></tr>
+<tr name="113" id="113">
+<td><a id="l113" class='ln'>113</a></td><td>                                  <span class="ct">/* '&lt;Root&gt;/Electromagnetic torque Te (N*m)' */</span></td></tr>
+<tr name="114" id="114">
+<td><a id="l114" class='ln'>114</a></td><td><span class="br">}</span> <a id="114c3" class="tk">ExtY_PMSM_Motor_TL3_T</a>;</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">/* Constant parameters (default storage) */</span></td></tr>
+<tr name="117" id="117">
+<td><a id="l117" class='ln'>117</a></td><td><span class="kw">extern</span> <span class="kw">const</span> <a id="117c14" class="tk">ConstP_PMSM_Motor_TL3_T</a> <a id="117c38" class="tk">PMSM_Motor_TL3_ConstP</a>;</td></tr>
+<tr name="118" id="118">
+<td><a id="l118" class='ln'>118</a></td><td></td></tr>
+<tr name="119" id="119">
+<td><a id="l119" class='ln'>119</a></td><td><span class="ct">/*-</span></td></tr>
+<tr name="120" id="120">
+<td><a id="l120" class='ln'>120</a></td><td><span class="ct"> * These blocks were eliminated from the model due to optimizations:</span></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"> * Block '&lt;S4&gt;/Data Type Duplicate' : 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;S3&gt;/do not delete this gain' : Eliminated nontunable gain of 1</span></td></tr>
+<tr name="124" id="124">
+<td><a id="l124" class='ln'>124</a></td><td><span class="ct"> * Block '&lt;S1&gt;/Data Type Conversion' : Eliminate redundant data type conversion</span></td></tr>
+<tr name="125" id="125">
+<td><a id="l125" class='ln'>125</a></td><td><span class="ct"> * Block '&lt;S17&gt;/Lq//Ld' : Eliminated nontunable gain of 1</span></td></tr>
+<tr name="126" id="126">
+<td><a id="l126" class='ln'>126</a></td><td><span class="ct"> * Block '&lt;S18&gt;/Ld//Lq' : Eliminated nontunable gain of 1</span></td></tr>
+<tr name="127" id="127">
+<td><a id="l127" class='ln'>127</a></td><td><span class="ct"> * Block '&lt;S19&gt;/Data Type Conversion' : Eliminate redundant data type conversion</span></td></tr>
+<tr name="128" id="128">
+<td><a id="l128" class='ln'>128</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="129" id="129">
+<td><a id="l129" class='ln'>129</a></td><td></td></tr>
+<tr name="130" id="130">
+<td><a id="l130" class='ln'>130</a></td><td><span class="ct">/*-</span></td></tr>
+<tr name="131" id="131">
+<td><a id="l131" class='ln'>131</a></td><td><span class="ct"> * The generated code includes comments that allow you to trace directly</span></td></tr>
+<tr name="132" id="132">
+<td><a id="l132" class='ln'>132</a></td><td><span class="ct"> * back to the appropriate location in the model.  The basic format</span></td></tr>
+<tr name="133" id="133">
+<td><a id="l133" class='ln'>133</a></td><td><span class="ct"> * is &lt;system&gt;/block_name, where system is the system number (uniquely</span></td></tr>
+<tr name="134" id="134">
+<td><a id="l134" class='ln'>134</a></td><td><span class="ct"> * assigned by Simulink) and block_name is the name of the block.</span></td></tr>
+<tr name="135" id="135">
+<td><a id="l135" class='ln'>135</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="136" id="136">
+<td><a id="l136" class='ln'>136</a></td><td><span class="ct"> * Note that this particular code originates from a subsystem build,</span></td></tr>
+<tr name="137" id="137">
+<td><a id="l137" class='ln'>137</a></td><td><span class="ct"> * and has its own system numbers different from the parent model.</span></td></tr>
+<tr name="138" id="138">
+<td><a id="l138" class='ln'>138</a></td><td><span class="ct"> * Refer to the system hierarchy for this subsystem below, and use the</span></td></tr>
+<tr name="139" id="139">
+<td><a id="l139" class='ln'>139</a></td><td><span class="ct"> * MATLAB hilite_system command to trace the generated code back</span></td></tr>
+<tr name="140" id="140">
+<td><a id="l140" class='ln'>140</a></td><td><span class="ct"> * to the parent model.  For example,</span></td></tr>
+<tr name="141" id="141">
+<td><a id="l141" class='ln'>141</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="142" id="142">
+<td><a id="l142" class='ln'>142</a></td><td><span class="ct"> * hilite_system('FOC_ADRC/PMSM_Motor_TL3')    - opens subsystem FOC_ADRC/PMSM_Motor_TL3</span></td></tr>
+<tr name="143" id="143">
+<td><a id="l143" class='ln'>143</a></td><td><span class="ct"> * hilite_system('FOC_ADRC/PMSM_Motor_TL3/Kp') - opens and selects block Kp</span></td></tr>
+<tr name="144" id="144">
+<td><a id="l144" class='ln'>144</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="145" id="145">
+<td><a id="l145" class='ln'>145</a></td><td><span class="ct"> * Here is the system hierarchy for this model</span></td></tr>
+<tr name="146" id="146">
+<td><a id="l146" class='ln'>146</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="147" id="147">
+<td><a id="l147" class='ln'>147</a></td><td><span class="ct"> * '&lt;Root&gt;' : 'FOC_ADRC'</span></td></tr>
+<tr name="148" id="148">
+<td><a id="l148" class='ln'>148</a></td><td><span class="ct"> * '&lt;S1&gt;'   : 'FOC_ADRC/PMSM_Motor_TL3'</span></td></tr>
+<tr name="149" id="149">
+<td><a id="l149" class='ln'>149</a></td><td><span class="ct"> * '&lt;S2&gt;'   : 'FOC_ADRC/PMSM_Motor_TL3/Controlled Voltage Source1'</span></td></tr>
+<tr name="150" id="150">
+<td><a id="l150" class='ln'>150</a></td><td><span class="ct"> * '&lt;S3&gt;'   : 'FOC_ADRC/PMSM_Motor_TL3/Current Measurement'</span></td></tr>
+<tr name="151" id="151">
+<td><a id="l151" class='ln'>151</a></td><td><span class="ct"> * '&lt;S4&gt;'   : 'FOC_ADRC/PMSM_Motor_TL3/IIR Filter1'</span></td></tr>
+<tr name="152" id="152">
+<td><a id="l152" class='ln'>152</a></td><td><span class="ct"> * '&lt;S5&gt;'   : 'FOC_ADRC/PMSM_Motor_TL3/Permanent Magnet Synchronous Machine1'</span></td></tr>
+<tr name="153" id="153">
+<td><a id="l153" class='ln'>153</a></td><td><span class="ct"> * '&lt;S6&gt;'   : 'FOC_ADRC/PMSM_Motor_TL3/Universal Bridge1'</span></td></tr>
+<tr name="154" id="154">
+<td><a id="l154" class='ln'>154</a></td><td><span class="ct"> * '&lt;S7&gt;'   : 'FOC_ADRC/PMSM_Motor_TL3/powergui'</span></td></tr>
+<tr name="155" id="155">
+<td><a id="l155" class='ln'>155</a></td><td><span class="ct"> * '&lt;S8&gt;'   : 'FOC_ADRC/PMSM_Motor_TL3/Current Measurement/Model'</span></td></tr>
+<tr name="156" id="156">
+<td><a id="l156" class='ln'>156</a></td><td><span class="ct"> * '&lt;S9&gt;'   : 'FOC_ADRC/PMSM_Motor_TL3/Permanent Magnet Synchronous Machine1/Electrical model'</span></td></tr>
+<tr name="157" id="157">
+<td><a id="l157" class='ln'>157</a></td><td><span class="ct"> * '&lt;S10&gt;'  : 'FOC_ADRC/PMSM_Motor_TL3/Permanent Magnet Synchronous Machine1/Measurements'</span></td></tr>
+<tr name="158" id="158">
+<td><a id="l158" class='ln'>158</a></td><td><span class="ct"> * '&lt;S11&gt;'  : 'FOC_ADRC/PMSM_Motor_TL3/Permanent Magnet Synchronous Machine1/Mechanical model'</span></td></tr>
+<tr name="159" id="159">
+<td><a id="l159" class='ln'>159</a></td><td><span class="ct"> * '&lt;S12&gt;'  : 'FOC_ADRC/PMSM_Motor_TL3/Permanent Magnet Synchronous Machine1/Electrical model/Hall effect sensor'</span></td></tr>
+<tr name="160" id="160">
+<td><a id="l160" class='ln'>160</a></td><td><span class="ct"> * '&lt;S13&gt;'  : 'FOC_ADRC/PMSM_Motor_TL3/Permanent Magnet Synchronous Machine1/Electrical model/abc2qd'</span></td></tr>
+<tr name="161" id="161">
+<td><a id="l161" class='ln'>161</a></td><td><span class="ct"> * '&lt;S14&gt;'  : 'FOC_ADRC/PMSM_Motor_TL3/Permanent Magnet Synchronous Machine1/Electrical model/iq,id'</span></td></tr>
+<tr name="162" id="162">
+<td><a id="l162" class='ln'>162</a></td><td><span class="ct"> * '&lt;S15&gt;'  : 'FOC_ADRC/PMSM_Motor_TL3/Permanent Magnet Synchronous Machine1/Electrical model/qd2abc'</span></td></tr>
+<tr name="163" id="163">
+<td><a id="l163" class='ln'>163</a></td><td><span class="ct"> * '&lt;S16&gt;'  : 'FOC_ADRC/PMSM_Motor_TL3/Permanent Magnet Synchronous Machine1/Electrical model/Hall effect sensor/Angle converter'</span></td></tr>
+<tr name="164" id="164">
+<td><a id="l164" class='ln'>164</a></td><td><span class="ct"> * '&lt;S17&gt;'  : 'FOC_ADRC/PMSM_Motor_TL3/Permanent Magnet Synchronous Machine1/Electrical model/iq,id/id'</span></td></tr>
+<tr name="165" id="165">
+<td><a id="l165" class='ln'>165</a></td><td><span class="ct"> * '&lt;S18&gt;'  : 'FOC_ADRC/PMSM_Motor_TL3/Permanent Magnet Synchronous Machine1/Electrical model/iq,id/iq'</span></td></tr>
+<tr name="166" id="166">
+<td><a id="l166" class='ln'>166</a></td><td><span class="ct"> * '&lt;S19&gt;'  : 'FOC_ADRC/PMSM_Motor_TL3/Universal Bridge1/Model'</span></td></tr>
+<tr name="167" id="167">
+<td><a id="l167" class='ln'>167</a></td><td><span class="ct"> * '&lt;S20&gt;'  : 'FOC_ADRC/PMSM_Motor_TL3/powergui/EquivalentModel1'</span></td></tr>
+<tr name="168" id="168">
+<td><a id="l168" class='ln'>168</a></td><td><span class="ct"> * '&lt;S21&gt;'  : 'FOC_ADRC/PMSM_Motor_TL3/powergui/EquivalentModel1/Gates'</span></td></tr>
+<tr name="169" id="169">
+<td><a id="l169" class='ln'>169</a></td><td><span class="ct"> * '&lt;S22&gt;'  : 'FOC_ADRC/PMSM_Motor_TL3/powergui/EquivalentModel1/Sources'</span></td></tr>
+<tr name="170" id="170">
+<td><a id="l170" class='ln'>170</a></td><td><span class="ct"> * '&lt;S23&gt;'  : 'FOC_ADRC/PMSM_Motor_TL3/powergui/EquivalentModel1/Status'</span></td></tr>
+<tr name="171" id="171">
+<td><a id="l171" class='ln'>171</a></td><td><span class="ct"> * '&lt;S24&gt;'  : 'FOC_ADRC/PMSM_Motor_TL3/powergui/EquivalentModel1/Yout'</span></td></tr>
+<tr name="172" id="172">
+<td><a id="l172" class='ln'>172</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="173" id="173">
+<td><a id="l173" class='ln'>173</a></td><td><span class="pp">#endif</span>                                 <span class="ct">/* RTW_HEADER_PMSM_Motor_TL3_sf_h_ */</span></td></tr>
+<tr name="174" id="174">
+<td><a id="l174" class='ln'>174</a></td><td></td></tr>
+</table>
+</pre>
+</body>
+</html>

+ 194 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/html/PMSM_Motor_TL3_sf_private_h.html

@@ -0,0 +1,194 @@
+<!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"> * PMSM_Motor_TL3_sf_private.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 generation for model "PMSM_Motor_TL3_sf".</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.825</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 source code generated on : Fri Apr 14 12:51:02 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: rtwsfcn.tlc</span></td></tr>
+<tr name="11" id="11">
+<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
+<tr name="12" id="12">
+<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * Embedded hardware selection: ARM Compatible-&gt;ARM Cortex-M</span></td></tr>
+<tr name="13" id="13">
+<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> * Emulation hardware selection:</span></td></tr>
+<tr name="14" id="14">
+<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> *    Differs from embedded hardware (MATLAB Host)</span></td></tr>
+<tr name="15" id="15">
+<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Code generation objectives:</span></td></tr>
+<tr name="16" id="16">
+<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> *    1. Execution efficiency</span></td></tr>
+<tr name="17" id="17">
+<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> *    2. RAM efficiency</span></td></tr>
+<tr name="18" id="18">
+<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
+<tr name="19" id="19">
+<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> */</span></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="pp">#ifndef</span> <a id="21c9" class="tk">RTW_HEADER_PMSM_Motor_TL3_sf_private_h_</a></td></tr>
+<tr name="22" id="22">
+<td><a id="l22" class='ln'>22</a></td><td><span class="pp">#define</span> <a id="22c9" class="tk">RTW_HEADER_PMSM_Motor_TL3_sf_private_h_</a></td></tr>
+<tr name="23" id="23">
+<td><a id="l23" class='ln'>23</a></td><td><span class="pp">#include "rtwtypes.h"</span></td></tr>
+<tr name="24" id="24">
+<td><a id="l24" class='ln'>24</a></td><td><span class="pp">#include "multiword_types.h"</span></td></tr>
+<tr name="25" id="25">
+<td><a id="l25" class='ln'>25</a></td><td><span class="pp">#include &lt;math.h&gt;</span></td></tr>
+<tr name="26" id="26">
+<td><a id="l26" class='ln'>26</a></td><td><span class="pp">#include &lt;stdlib.h&gt;</span></td></tr>
+<tr name="27" id="27">
+<td><a id="l27" class='ln'>27</a></td><td><span class="pp">#if</span> <a id="27c5" class="tk">!</a><a id="27c6" class="tk">defined</a>(<a id="27c14" class="tk">ss_VALIDATE_MEMORY</a>)</td></tr>
+<tr name="28" id="28">
+<td><a id="l28" class='ln'>28</a></td><td><span class="pp">#define</span> <a id="28c9" class="tk">ss_VALIDATE_MEMORY</a>(<a id="28c28" class="tk">S</a>, <a id="28c31" class="tk">ptr</a>)     <span class="kw">if</span>(<a id="28c43" class="tk">!</a>(<a id="28c45" class="tk">ptr</a>)) <span class="br">{\</span></td></tr>
+<tr name="29" id="29">
+<td><a id="l29" class='ln'>29</a></td><td> <a id="29c53" class="tk">ssSetErrorStatus</a>(<a id="29c70" class="tk">S</a>, <a id="29c73" class="tk">RT_MEMORY_ALLOCATION_ERROR</a>);\</td></tr>
+<tr name="30" id="30">
+<td><a id="l30" class='ln'>30</a></td><td> <span class="br">}</span></td></tr>
+<tr name="31" id="31">
+<td><a id="l31" class='ln'>31</a></td><td><span class="pp">#endif</span></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="pp">#if</span> <a id="33c5" class="tk">!</a><a id="33c6" class="tk">defined</a>(<a id="33c14" class="tk">rt_FREE</a>)</td></tr>
+<tr name="34" id="34">
+<td><a id="l34" class='ln'>34</a></td><td><span class="pp">#if</span> <a id="34c5" class="tk">!</a><a id="34c6" class="tk">defined</a>(<a id="34c14" class="tk">_WIN32</a>)</td></tr>
+<tr name="35" id="35">
+<td><a id="l35" class='ln'>35</a></td><td><span class="pp">#define</span> <a id="35c9" class="tk">rt_FREE</a>(<a id="35c17" class="tk">ptr</a>)                   <span class="kw">if</span>((<a id="35c44" class="tk">ptr</a>) <a id="35c49" class="tk">!=</a> (<a id="35c53" class="tk">NULL</a>)) <span class="br">{\</span></td></tr>
+<tr name="36" id="36">
+<td><a id="l36" class='ln'>36</a></td><td> <a id="36c62" class="tk">free</a>((<a id="36c68" class="tk">ptr</a>));\</td></tr>
+<tr name="37" id="37">
+<td><a id="l37" class='ln'>37</a></td><td> (<a id="37c76" class="tk">ptr</a>) = (<a id="37c84" class="tk">NULL</a>);\</td></tr>
+<tr name="38" id="38">
+<td><a id="l38" class='ln'>38</a></td><td> <span class="br">}</span></td></tr>
+<tr name="39" id="39">
+<td><a id="l39" class='ln'>39</a></td><td><span class="pp">#else</span></td></tr>
+<tr name="40" id="40">
+<td><a id="l40" class='ln'>40</a></td><td></td></tr>
+<tr name="41" id="41">
+<td><a id="l41" class='ln'>41</a></td><td><span class="ct">/* Visual and other windows compilers declare free without const */</span></td></tr>
+<tr name="42" id="42">
+<td><a id="l42" class='ln'>42</a></td><td><span class="pp">#define</span> <a id="42c9" class="tk">rt_FREE</a>(<a id="42c17" class="tk">ptr</a>)                   <span class="kw">if</span>((<a id="42c44" class="tk">ptr</a>) <a id="42c49" class="tk">!=</a> (<a id="42c53" class="tk">NULL</a>)) <span class="br">{\</span></td></tr>
+<tr name="43" id="43">
+<td><a id="l43" class='ln'>43</a></td><td> <a id="43c62" class="tk">free</a>((<span class="kw">void</span> <a id="43c73" class="tk">*</a>)(<a id="43c76" class="tk">ptr</a>));\</td></tr>
+<tr name="44" id="44">
+<td><a id="l44" class='ln'>44</a></td><td> (<a id="44c84" class="tk">ptr</a>) = (<a id="44c92" class="tk">NULL</a>);\</td></tr>
+<tr name="45" id="45">
+<td><a id="l45" class='ln'>45</a></td><td> <span class="br">}</span></td></tr>
+<tr name="46" id="46">
+<td><a id="l46" class='ln'>46</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="47" id="47">
+<td><a id="l47" class='ln'>47</a></td><td><span class="pp">#endif</span></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="pp">#ifndef</span> <a id="49c9" class="tk">CodeFormat</a></td></tr>
+<tr name="50" id="50">
+<td><a id="l50" class='ln'>50</a></td><td><span class="pp">#define</span> <a id="50c9" class="tk">CodeFormat</a>                     <a id="50c40" class="tk">S</a><a id="50c41" class="tk">-</a><a id="50c42" class="tk">Function</a></td></tr>
+<tr name="51" id="51">
+<td><a id="l51" class='ln'>51</a></td><td><span class="pp">#else</span></td></tr>
+<tr name="52" id="52">
+<td><a id="l52" class='ln'>52</a></td><td><span class="pp">#undef</span> <a id="52c8" class="tk">CodeFormat</a></td></tr>
+<tr name="53" id="53">
+<td><a id="l53" class='ln'>53</a></td><td><span class="pp">#define</span> <a id="53c9" class="tk">CodeFormat</a>                     <a id="53c40" class="tk">S</a><a id="53c41" class="tk">-</a><a id="53c42" class="tk">Function</a></td></tr>
+<tr name="54" id="54">
+<td><a id="l54" class='ln'>54</a></td><td><span class="pp">#endif</span></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><span class="pp">#ifndef</span> <a id="56c9" class="tk">S_FUNCTION_NAME</a></td></tr>
+<tr name="57" id="57">
+<td><a id="l57" class='ln'>57</a></td><td><span class="pp">#define</span> <a id="57c9" class="tk">S_FUNCTION_NAME</a>                <a id="57c40" class="tk">simulink_only_sfcn</a></td></tr>
+<tr name="58" id="58">
+<td><a id="l58" class='ln'>58</a></td><td><span class="pp">#else</span></td></tr>
+<tr name="59" id="59">
+<td><a id="l59" class='ln'>59</a></td><td><span class="pp">#undef</span> <a id="59c8" class="tk">S_FUNCTION_NAME</a></td></tr>
+<tr name="60" id="60">
+<td><a id="l60" class='ln'>60</a></td><td><span class="pp">#define</span> <a id="60c9" class="tk">S_FUNCTION_NAME</a>                <a id="60c40" class="tk">simulink_only_sfcn</a></td></tr>
+<tr name="61" id="61">
+<td><a id="l61" class='ln'>61</a></td><td><span class="pp">#endif</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><span class="pp">#ifndef</span> <a id="63c9" class="tk">S_FUNCTION_LEVEL</a></td></tr>
+<tr name="64" id="64">
+<td><a id="l64" class='ln'>64</a></td><td><span class="pp">#define</span> <a id="64c9" class="tk">S_FUNCTION_LEVEL</a>               2</td></tr>
+<tr name="65" id="65">
+<td><a id="l65" class='ln'>65</a></td><td><span class="pp">#else</span></td></tr>
+<tr name="66" id="66">
+<td><a id="l66" class='ln'>66</a></td><td><span class="pp">#undef</span> <a id="66c8" class="tk">S_FUNCTION_LEVEL</a></td></tr>
+<tr name="67" id="67">
+<td><a id="l67" class='ln'>67</a></td><td><span class="pp">#define</span> <a id="67c9" class="tk">S_FUNCTION_LEVEL</a>               2</td></tr>
+<tr name="68" id="68">
+<td><a id="l68" class='ln'>68</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="69" id="69">
+<td><a id="l69" class='ln'>69</a></td><td></td></tr>
+<tr name="70" id="70">
+<td><a id="l70" class='ln'>70</a></td><td><span class="pp">#ifndef</span> <a id="70c9" class="tk">RTW_GENERATED_S_FUNCTION</a></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">RTW_GENERATED_S_FUNCTION</a></td></tr>
+<tr name="72" id="72">
+<td><a id="l72" class='ln'>72</a></td><td><span class="pp">#endif</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="pp">#ifndef</span> <a id="74c9" class="tk">rtmGetDataMapInfo</a></td></tr>
+<tr name="75" id="75">
+<td><a id="l75" class='ln'>75</a></td><td><span class="pp"># define</span> <a id="75c10" class="tk">rtmGetDataMapInfo</a>(<a id="75c28" class="tk">rtm</a>)        <a id="75c40" class="tk">NULL</a></td></tr>
+<tr name="76" id="76">
+<td><a id="l76" class='ln'>76</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="77" id="77">
+<td><a id="l77" class='ln'>77</a></td><td></td></tr>
+<tr name="78" id="78">
+<td><a id="l78" class='ln'>78</a></td><td><span class="pp">#ifndef</span> <a id="78c9" class="tk">rtmSetDataMapInfo</a></td></tr>
+<tr name="79" id="79">
+<td><a id="l79" class='ln'>79</a></td><td><span class="pp"># define</span> <a id="79c10" class="tk">rtmSetDataMapInfo</a>(<a id="79c28" class="tk">rtm</a>, <a id="79c33" class="tk">val</a>)</td></tr>
+<tr name="80" id="80">
+<td><a id="l80" class='ln'>80</a></td><td><span class="pp">#endif</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="pp">#if</span> <a id="82c5" class="tk">!</a><a id="82c6" class="tk">defined</a>(<a id="82c14" class="tk">RTW_SFUNCTION_DEFINES</a>)</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">RTW_SFUNCTION_DEFINES</a></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">_RTW_COMMON_DEFINES_</a></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">_RTW_COMMON_DEFINES_</a></td></tr>
+<tr name="86" id="86">
+<td><a id="l86" class='ln'>86</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="87" id="87">
+<td><a id="l87" class='ln'>87</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="88" id="88">
+<td><a id="l88" class='ln'>88</a></td><td><span class="pp">#endif</span>                             <span class="ct">/* RTW_HEADER_PMSM_Motor_TL3_sf_private_h_ */</span></td></tr>
+<tr name="89" id="89">
+<td><a id="l89" class='ln'>89</a></td><td></td></tr>
+</table>
+</pre>
+</body>
+</html>

+ 93 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/html/PMSM_Motor_TL3_sf_reducedblocks.html

@@ -0,0 +1,93 @@
+<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 PMSM_Motor_TL3
+</title>
+
+</head>
+<body onload="try {if (top) {if (top.rtwPageOnLoad) top.rtwPageOnLoad('rtwIdReducedBlocks'); else local_onload();}} catch(err) {};">
+<h1>
+Eliminated blocks in PMSM_Motor_TL3
+</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;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;S3&gt;/do not delete this gain
+</td>
+<td align="left" valign="top">
+Eliminated nontunable gain of 1
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S1&gt;/Data Type Conversion
+</td>
+<td align="left" valign="top">
+Eliminate redundant data type conversion
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S17&gt;/Lq//Ld
+</td>
+<td align="left" valign="top">
+Eliminated nontunable gain of 1
+</td>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S18&gt;/Ld//Lq
+</td>
+<td align="left" valign="top">
+Eliminated nontunable gain of 1
+</td>
+
+</tr>
+<tr class="odd">
+<td align="left" valign="top">
+&lt;S19&gt;/Data Type Conversion
+</td>
+<td align="left" valign="top">
+Eliminate redundant data type conversion
+</td>
+
+</tr>
+
+</table>
+
+</body>
+
+</html>

+ 87 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/html/PMSM_Motor_TL3_sf_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 PMSM_Motor_TL3
+</title>
+
+</head>
+<body onload="try {if (top) {if (top.rtwPageOnLoad) top.rtwPageOnLoad('rtwIdSubsystem'); else local_onload();}} catch(err) {};">
+<h1>
+Non-virtual subsystems in PMSM_Motor_TL3
+</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/PMSM_Motor_TL3_sfcn_rtw/html/PMSM_Motor_TL3_sf_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 'PMSM_Motor_TL3'
+</title>
+
+</head>
+<body onload="try {if (top) {if (top.rtwPageOnLoad) top.rtwPageOnLoad('rtwIdSummaryPage'); else local_onload();}} catch(err) {};">
+<h1>
+Code Generation Report for 'PMSM_Motor_TL3'
+</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.825
+</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/rtwsfcn/PMSM_Motor_TL3/tmwinternal/binfo.mat?PMSM_Motor_TL3" 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">
+rtwsfcn.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">
+Fri Apr 14 12:51:02 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>

+ 68 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/html/PMSM_Motor_TL3_sf_types_h.html

@@ -0,0 +1,68 @@
+<!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"> * PMSM_Motor_TL3_sf_types.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 generation for model "PMSM_Motor_TL3_sf".</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.825</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 source code generated on : Fri Apr 14 12:51:02 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: rtwsfcn.tlc</span></td></tr>
+<tr name="11" id="11">
+<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
+<tr name="12" id="12">
+<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * Embedded hardware selection: ARM Compatible-&gt;ARM Cortex-M</span></td></tr>
+<tr name="13" id="13">
+<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> * Emulation hardware selection:</span></td></tr>
+<tr name="14" id="14">
+<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> *    Differs from embedded hardware (MATLAB Host)</span></td></tr>
+<tr name="15" id="15">
+<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Code generation objectives:</span></td></tr>
+<tr name="16" id="16">
+<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> *    1. Execution efficiency</span></td></tr>
+<tr name="17" id="17">
+<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> *    2. RAM efficiency</span></td></tr>
+<tr name="18" id="18">
+<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
+<tr name="19" id="19">
+<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> */</span></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="pp">#ifndef</span> <a id="21c9" class="tk">RTW_HEADER_PMSM_Motor_TL3_sf_types_h_</a></td></tr>
+<tr name="22" id="22">
+<td><a id="l22" class='ln'>22</a></td><td><span class="pp">#define</span> <a id="22c9" class="tk">RTW_HEADER_PMSM_Motor_TL3_sf_types_h_</a></td></tr>
+<tr name="23" id="23">
+<td><a id="l23" class='ln'>23</a></td><td></td></tr>
+<tr name="24" id="24">
+<td><a id="l24" class='ln'>24</a></td><td><span class="ct">/* Model Code Variants */</span></td></tr>
+<tr name="25" id="25">
+<td><a id="l25" class='ln'>25</a></td><td><span class="pp">#endif</span>                               <span class="ct">/* RTW_HEADER_PMSM_Motor_TL3_sf_types_h_ */</span></td></tr>
+<tr name="26" id="26">
+<td><a id="l26" class='ln'>26</a></td><td></td></tr>
+</table>
+</pre>
+</body>
+</html>

+ 110 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/html/PMSM_Motor_TL3_sid_h.html

@@ -0,0 +1,110 @@
+<!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"> * PMSM_Motor_TL3_sid.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 generation for model "PMSM_Motor_TL3_sf".</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.825</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 source code generated on : Fri Apr 14 12:51:02 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: rtwsfcn.tlc</span></td></tr>
+<tr name="11" id="11">
+<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
+<tr name="12" id="12">
+<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * Embedded hardware selection: ARM Compatible-&gt;ARM Cortex-M</span></td></tr>
+<tr name="13" id="13">
+<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> * Emulation hardware selection:</span></td></tr>
+<tr name="14" id="14">
+<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> *    Differs from embedded hardware (MATLAB Host)</span></td></tr>
+<tr name="15" id="15">
+<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Code generation objectives:</span></td></tr>
+<tr name="16" id="16">
+<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> *    1. Execution efficiency</span></td></tr>
+<tr name="17" id="17">
+<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> *    2. RAM efficiency</span></td></tr>
+<tr name="18" id="18">
+<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
+<tr name="19" id="19">
+<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="20" id="20">
+<td><a id="l20" class='ln'>20</a></td><td><span class="ct"> * SOURCES: PMSM_Motor_TL3_sf.c</span></td></tr>
+<tr name="21" id="21">
+<td><a id="l21" class='ln'>21</a></td><td><span class="ct"> */</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="ct">/* statically allocated instance data for model: PMSM_Motor_TL3 */</span></td></tr>
+<tr name="24" id="24">
+<td><a id="l24" class='ln'>24</a></td><td><span class="br">{</span></td></tr>
+<tr name="25" id="25">
+<td><a id="l25" class='ln'>25</a></td><td>  <span class="br">{</span></td></tr>
+<tr name="26" id="26">
+<td><a id="l26" class='ln'>26</a></td><td>    <span class="ct">/* Local SimStruct for the generated S-Function */</span></td></tr>
+<tr name="27" id="27">
+<td><a id="l27" class='ln'>27</a></td><td>    <span class="kw">static</span> <a id="27c12" class="tk">LocalS</a> <a id="27c19" class="tk">slS</a>;</td></tr>
+<tr name="28" id="28">
+<td><a id="l28" class='ln'>28</a></td><td>    <a id="28c5" class="tk">LocalS</a> <a id="28c12" class="tk">*</a><a id="28c13" class="tk">lS</a> = <a id="28c18" class="tk">&amp;</a><a id="28c19" class="tk">slS</a>;</td></tr>
+<tr name="29" id="29">
+<td><a id="l29" class='ln'>29</a></td><td>    <a id="29c5" class="tk">ssSetUserData</a>(<a id="29c19" class="tk">rts</a>, <a id="29c24" class="tk">lS</a>);</td></tr>
+<tr name="30" id="30">
+<td><a id="l30" class='ln'>30</a></td><td></td></tr>
+<tr name="31" id="31">
+<td><a id="l31" class='ln'>31</a></td><td>    <span class="ct">/* block I/O */</span></td></tr>
+<tr name="32" id="32">
+<td><a id="l32" class='ln'>32</a></td><td>    <span class="br">{</span></td></tr>
+<tr name="33" id="33">
+<td><a id="l33" class='ln'>33</a></td><td>      <span class="kw">static</span> <a id="33c14" class="tk">B_PMSM_Motor_TL3_T</a> <a id="33c33" class="tk">sfcnB</a>;</td></tr>
+<tr name="34" id="34">
+<td><a id="l34" class='ln'>34</a></td><td>      <span class="kw">void</span> <a id="34c12" class="tk">*</a><a id="34c13" class="tk">b</a> = (<a id="34c18" class="tk">real_T</a> <a id="34c25" class="tk">*</a>) <a id="34c28" class="tk">&amp;</a><a id="34c29" class="tk">sfcnB</a>;</td></tr>
+<tr name="35" id="35">
+<td><a id="l35" class='ln'>35</a></td><td>      <a id="35c7" class="tk">ssSetLocalBlockIO</a>(<a id="35c25" class="tk">rts</a>, <a id="35c30" class="tk">b</a>);</td></tr>
+<tr name="36" id="36">
+<td><a id="l36" class='ln'>36</a></td><td>      (<span class="kw">void</span>) <a id="36c14" class="tk">memset</a>(<a id="36c21" class="tk">b</a>, 0,</td></tr>
+<tr name="37" id="37">
+<td><a id="l37" class='ln'>37</a></td><td>                    <span class="kw">sizeof</span>(<a id="37c28" class="tk">B_PMSM_Motor_TL3_T</a>));</td></tr>
+<tr name="38" id="38">
+<td><a id="l38" class='ln'>38</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="39" id="39">
+<td><a id="l39" class='ln'>39</a></td><td></td></tr>
+<tr name="40" id="40">
+<td><a id="l40" class='ln'>40</a></td><td>    <span class="ct">/* model checksums */</span></td></tr>
+<tr name="41" id="41">
+<td><a id="l41" class='ln'>41</a></td><td>    <a id="41c5" class="tk">ssSetChecksumVal</a>(<a id="41c22" class="tk">rts</a>, 0, 3090714017U);</td></tr>
+<tr name="42" id="42">
+<td><a id="l42" class='ln'>42</a></td><td>    <a id="42c5" class="tk">ssSetChecksumVal</a>(<a id="42c22" class="tk">rts</a>, 1, 3929030705U);</td></tr>
+<tr name="43" id="43">
+<td><a id="l43" class='ln'>43</a></td><td>    <a id="43c5" class="tk">ssSetChecksumVal</a>(<a id="43c22" class="tk">rts</a>, 2, 1976178041U);</td></tr>
+<tr name="44" id="44">
+<td><a id="l44" class='ln'>44</a></td><td>    <a id="44c5" class="tk">ssSetChecksumVal</a>(<a id="44c22" class="tk">rts</a>, 3, 3610196154U);</td></tr>
+<tr name="45" id="45">
+<td><a id="l45" class='ln'>45</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="46" id="46">
+<td><a id="l46" class='ln'>46</a></td><td><span class="br">}</span></td></tr>
+<tr name="47" id="47">
+<td><a id="l47" class='ln'>47</a></td><td></td></tr>
+</table>
+</pre>
+</body>
+</html>

+ 184 - 0
Simulink/PMSM_Motor_TL3_sfcn_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;
+}
+

+ 232 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/html/define.js

@@ -0,0 +1,232 @@
+function CodeDefine() { 
+this.def = new Array();
+this.def["PMSM_Motor_TL3_sf.c:RT_MEMORY_ALLOCATION_ERROR"] = {file: "PMSM_Motor_TL3_sf_c.html",line:48,type:"var"};
+this.def["PMSM_Motor_TL3_sf.c:PMSM_Motor_TL3_rt_atan2d_snf"] = {file: "PMSM_Motor_TL3_sf_c.html",line:50,type:"fcn"};
+this.def["PMSM_Motor_TL3_sf.c:mdlInitializeConditions"] = {file: "PMSM_Motor_TL3_sf_c.html",line:89,type:"fcn"};
+this.def["PMSM_Motor_TL3_sf.c:mdlStart"] = {file: "PMSM_Motor_TL3_sf_c.html",line:251,type:"fcn"};
+this.def["PMSM_Motor_TL3_sf.c:mdlOutputs"] = {file: "PMSM_Motor_TL3_sf_c.html",line:295,type:"fcn"};
+this.def["PMSM_Motor_TL3_sf.c:mdlUpdate"] = {file: "PMSM_Motor_TL3_sf_c.html",line:643,type:"fcn"};
+this.def["PMSM_Motor_TL3_sf.c:mdlTerminate"] = {file: "PMSM_Motor_TL3_sf_c.html",line:681,type:"fcn"};
+this.def["PMSM_Motor_TL3_sf.c:mdlInitializeSizes"] = {file: "PMSM_Motor_TL3_sf_c.html",line:722,type:"fcn"};
+this.def["PMSM_Motor_TL3_sf.c:mdlInitializeSampleTimes"] = {file: "PMSM_Motor_TL3_sf_c.html",line:999,type:"fcn"};
+this.def["LocalS"] = {file: "PMSM_Motor_TL3_sf_h.html",line:46,type:"type"};
+this.def["B_PMSM_Motor_TL3_T"] = {file: "PMSM_Motor_TL3_sf_h.html",line:76,type:"type"};
+this.def["ConstP_PMSM_Motor_TL3_T"] = {file: "PMSM_Motor_TL3_sf_h.html",line:89,type:"type"};
+this.def["ExternalUPtrs_PMSM_Motor_TL3_T"] = {file: "PMSM_Motor_TL3_sf_h.html",line:96,type:"type"};
+this.def["ExtY_PMSM_Motor_TL3_T"] = {file: "PMSM_Motor_TL3_sf_h.html",line:114,type:"type"};
+this.def["PMSM_Motor_TL3_ConstP"] = {file: "PMSM_Motor_TL3_sf_data_c.html",line:25,type:"var"};
+this.def["chunk_T"] = {file: "multiword_types_h.html",line:28,type:"type"};
+this.def["uchunk_T"] = {file: "multiword_types_h.html",line:29,type:"type"};
+this.def["longlong_T"] = {file: "multiword_types_h.html",line:34,type:"type"};
+this.def["int128m_T"] = {file: "multiword_types_h.html",line:41,type:"type"};
+this.def["cint128m_T"] = {file: "multiword_types_h.html",line:46,type:"type"};
+this.def["uint128m_T"] = {file: "multiword_types_h.html",line:50,type:"type"};
+this.def["cuint128m_T"] = {file: "multiword_types_h.html",line:55,type:"type"};
+this.def["int192m_T"] = {file: "multiword_types_h.html",line:59,type:"type"};
+this.def["cint192m_T"] = {file: "multiword_types_h.html",line:64,type:"type"};
+this.def["uint192m_T"] = {file: "multiword_types_h.html",line:68,type:"type"};
+this.def["cuint192m_T"] = {file: "multiword_types_h.html",line:73,type:"type"};
+this.def["int256m_T"] = {file: "multiword_types_h.html",line:77,type:"type"};
+this.def["cint256m_T"] = {file: "multiword_types_h.html",line:82,type:"type"};
+this.def["uint256m_T"] = {file: "multiword_types_h.html",line:86,type:"type"};
+this.def["cuint256m_T"] = {file: "multiword_types_h.html",line:91,type:"type"};
+this.def["int320m_T"] = {file: "multiword_types_h.html",line:95,type:"type"};
+this.def["cint320m_T"] = {file: "multiword_types_h.html",line:100,type:"type"};
+this.def["uint320m_T"] = {file: "multiword_types_h.html",line:104,type:"type"};
+this.def["cuint320m_T"] = {file: "multiword_types_h.html",line:109,type:"type"};
+this.def["int384m_T"] = {file: "multiword_types_h.html",line:113,type:"type"};
+this.def["cint384m_T"] = {file: "multiword_types_h.html",line:118,type:"type"};
+this.def["uint384m_T"] = {file: "multiword_types_h.html",line:122,type:"type"};
+this.def["cuint384m_T"] = {file: "multiword_types_h.html",line:127,type:"type"};
+this.def["int448m_T"] = {file: "multiword_types_h.html",line:131,type:"type"};
+this.def["cint448m_T"] = {file: "multiword_types_h.html",line:136,type:"type"};
+this.def["uint448m_T"] = {file: "multiword_types_h.html",line:140,type:"type"};
+this.def["cuint448m_T"] = {file: "multiword_types_h.html",line:145,type:"type"};
+this.def["int512m_T"] = {file: "multiword_types_h.html",line:149,type:"type"};
+this.def["cint512m_T"] = {file: "multiword_types_h.html",line:154,type:"type"};
+this.def["uint512m_T"] = {file: "multiword_types_h.html",line:158,type:"type"};
+this.def["cuint512m_T"] = {file: "multiword_types_h.html",line:163,type:"type"};
+this.def["int576m_T"] = {file: "multiword_types_h.html",line:167,type:"type"};
+this.def["cint576m_T"] = {file: "multiword_types_h.html",line:172,type:"type"};
+this.def["uint576m_T"] = {file: "multiword_types_h.html",line:176,type:"type"};
+this.def["cuint576m_T"] = {file: "multiword_types_h.html",line:181,type:"type"};
+this.def["int640m_T"] = {file: "multiword_types_h.html",line:185,type:"type"};
+this.def["cint640m_T"] = {file: "multiword_types_h.html",line:190,type:"type"};
+this.def["uint640m_T"] = {file: "multiword_types_h.html",line:194,type:"type"};
+this.def["cuint640m_T"] = {file: "multiword_types_h.html",line:199,type:"type"};
+this.def["int704m_T"] = {file: "multiword_types_h.html",line:203,type:"type"};
+this.def["cint704m_T"] = {file: "multiword_types_h.html",line:208,type:"type"};
+this.def["uint704m_T"] = {file: "multiword_types_h.html",line:212,type:"type"};
+this.def["cuint704m_T"] = {file: "multiword_types_h.html",line:217,type:"type"};
+this.def["int768m_T"] = {file: "multiword_types_h.html",line:221,type:"type"};
+this.def["cint768m_T"] = {file: "multiword_types_h.html",line:226,type:"type"};
+this.def["uint768m_T"] = {file: "multiword_types_h.html",line:230,type:"type"};
+this.def["cuint768m_T"] = {file: "multiword_types_h.html",line:235,type:"type"};
+this.def["int832m_T"] = {file: "multiword_types_h.html",line:239,type:"type"};
+this.def["cint832m_T"] = {file: "multiword_types_h.html",line:244,type:"type"};
+this.def["uint832m_T"] = {file: "multiword_types_h.html",line:248,type:"type"};
+this.def["cuint832m_T"] = {file: "multiword_types_h.html",line:253,type:"type"};
+this.def["int896m_T"] = {file: "multiword_types_h.html",line:257,type:"type"};
+this.def["cint896m_T"] = {file: "multiword_types_h.html",line:262,type:"type"};
+this.def["uint896m_T"] = {file: "multiword_types_h.html",line:266,type:"type"};
+this.def["cuint896m_T"] = {file: "multiword_types_h.html",line:271,type:"type"};
+this.def["int960m_T"] = {file: "multiword_types_h.html",line:275,type:"type"};
+this.def["cint960m_T"] = {file: "multiword_types_h.html",line:280,type:"type"};
+this.def["uint960m_T"] = {file: "multiword_types_h.html",line:284,type:"type"};
+this.def["cuint960m_T"] = {file: "multiword_types_h.html",line:289,type:"type"};
+this.def["int1024m_T"] = {file: "multiword_types_h.html",line:293,type:"type"};
+this.def["cint1024m_T"] = {file: "multiword_types_h.html",line:298,type:"type"};
+this.def["uint1024m_T"] = {file: "multiword_types_h.html",line:302,type:"type"};
+this.def["cuint1024m_T"] = {file: "multiword_types_h.html",line:307,type:"type"};
+this.def["int1088m_T"] = {file: "multiword_types_h.html",line:311,type:"type"};
+this.def["cint1088m_T"] = {file: "multiword_types_h.html",line:316,type:"type"};
+this.def["uint1088m_T"] = {file: "multiword_types_h.html",line:320,type:"type"};
+this.def["cuint1088m_T"] = {file: "multiword_types_h.html",line:325,type:"type"};
+this.def["int1152m_T"] = {file: "multiword_types_h.html",line:329,type:"type"};
+this.def["cint1152m_T"] = {file: "multiword_types_h.html",line:334,type:"type"};
+this.def["uint1152m_T"] = {file: "multiword_types_h.html",line:338,type:"type"};
+this.def["cuint1152m_T"] = {file: "multiword_types_h.html",line:343,type:"type"};
+this.def["int1216m_T"] = {file: "multiword_types_h.html",line:347,type:"type"};
+this.def["cint1216m_T"] = {file: "multiword_types_h.html",line:352,type:"type"};
+this.def["uint1216m_T"] = {file: "multiword_types_h.html",line:356,type:"type"};
+this.def["cuint1216m_T"] = {file: "multiword_types_h.html",line:361,type:"type"};
+this.def["int1280m_T"] = {file: "multiword_types_h.html",line:365,type:"type"};
+this.def["cint1280m_T"] = {file: "multiword_types_h.html",line:370,type:"type"};
+this.def["uint1280m_T"] = {file: "multiword_types_h.html",line:374,type:"type"};
+this.def["cuint1280m_T"] = {file: "multiword_types_h.html",line:379,type:"type"};
+this.def["int1344m_T"] = {file: "multiword_types_h.html",line:383,type:"type"};
+this.def["cint1344m_T"] = {file: "multiword_types_h.html",line:388,type:"type"};
+this.def["uint1344m_T"] = {file: "multiword_types_h.html",line:392,type:"type"};
+this.def["cuint1344m_T"] = {file: "multiword_types_h.html",line:397,type:"type"};
+this.def["int1408m_T"] = {file: "multiword_types_h.html",line:401,type:"type"};
+this.def["cint1408m_T"] = {file: "multiword_types_h.html",line:406,type:"type"};
+this.def["uint1408m_T"] = {file: "multiword_types_h.html",line:410,type:"type"};
+this.def["cuint1408m_T"] = {file: "multiword_types_h.html",line:415,type:"type"};
+this.def["int1472m_T"] = {file: "multiword_types_h.html",line:419,type:"type"};
+this.def["cint1472m_T"] = {file: "multiword_types_h.html",line:424,type:"type"};
+this.def["uint1472m_T"] = {file: "multiword_types_h.html",line:428,type:"type"};
+this.def["cuint1472m_T"] = {file: "multiword_types_h.html",line:433,type:"type"};
+this.def["int1536m_T"] = {file: "multiword_types_h.html",line:437,type:"type"};
+this.def["cint1536m_T"] = {file: "multiword_types_h.html",line:442,type:"type"};
+this.def["uint1536m_T"] = {file: "multiword_types_h.html",line:446,type:"type"};
+this.def["cuint1536m_T"] = {file: "multiword_types_h.html",line:451,type:"type"};
+this.def["int1600m_T"] = {file: "multiword_types_h.html",line:455,type:"type"};
+this.def["cint1600m_T"] = {file: "multiword_types_h.html",line:460,type:"type"};
+this.def["uint1600m_T"] = {file: "multiword_types_h.html",line:464,type:"type"};
+this.def["cuint1600m_T"] = {file: "multiword_types_h.html",line:469,type:"type"};
+this.def["int1664m_T"] = {file: "multiword_types_h.html",line:473,type:"type"};
+this.def["cint1664m_T"] = {file: "multiword_types_h.html",line:478,type:"type"};
+this.def["uint1664m_T"] = {file: "multiword_types_h.html",line:482,type:"type"};
+this.def["cuint1664m_T"] = {file: "multiword_types_h.html",line:487,type:"type"};
+this.def["int1728m_T"] = {file: "multiword_types_h.html",line:491,type:"type"};
+this.def["cint1728m_T"] = {file: "multiword_types_h.html",line:496,type:"type"};
+this.def["uint1728m_T"] = {file: "multiword_types_h.html",line:500,type:"type"};
+this.def["cuint1728m_T"] = {file: "multiword_types_h.html",line:505,type:"type"};
+this.def["int1792m_T"] = {file: "multiword_types_h.html",line:509,type:"type"};
+this.def["cint1792m_T"] = {file: "multiword_types_h.html",line:514,type:"type"};
+this.def["uint1792m_T"] = {file: "multiword_types_h.html",line:518,type:"type"};
+this.def["cuint1792m_T"] = {file: "multiword_types_h.html",line:523,type:"type"};
+this.def["int1856m_T"] = {file: "multiword_types_h.html",line:527,type:"type"};
+this.def["cint1856m_T"] = {file: "multiword_types_h.html",line:532,type:"type"};
+this.def["uint1856m_T"] = {file: "multiword_types_h.html",line:536,type:"type"};
+this.def["cuint1856m_T"] = {file: "multiword_types_h.html",line:541,type:"type"};
+this.def["int1920m_T"] = {file: "multiword_types_h.html",line:545,type:"type"};
+this.def["cint1920m_T"] = {file: "multiword_types_h.html",line:550,type:"type"};
+this.def["uint1920m_T"] = {file: "multiword_types_h.html",line:554,type:"type"};
+this.def["cuint1920m_T"] = {file: "multiword_types_h.html",line:559,type:"type"};
+this.def["int1984m_T"] = {file: "multiword_types_h.html",line:563,type:"type"};
+this.def["cint1984m_T"] = {file: "multiword_types_h.html",line:568,type:"type"};
+this.def["uint1984m_T"] = {file: "multiword_types_h.html",line:572,type:"type"};
+this.def["cuint1984m_T"] = {file: "multiword_types_h.html",line:577,type:"type"};
+this.def["int2048m_T"] = {file: "multiword_types_h.html",line:581,type:"type"};
+this.def["cint2048m_T"] = {file: "multiword_types_h.html",line:586,type:"type"};
+this.def["uint2048m_T"] = {file: "multiword_types_h.html",line:590,type:"type"};
+this.def["cuint2048m_T"] = {file: "multiword_types_h.html",line:595,type:"type"};
+this.def["rtGetInf"] = {file: "rtGetInf_c.html",line:32,type:"fcn"};
+this.def["rtGetInfF"] = {file: "rtGetInf_c.html",line:80,type:"fcn"};
+this.def["rtGetMinusInf"] = {file: "rtGetInf_c.html",line:91,type:"fcn"};
+this.def["rtGetMinusInfF"] = {file: "rtGetInf_c.html",line:139,type:"fcn"};
+this.def["rtGetNaN"] = {file: "rtGetNaN_c.html",line:32,type:"fcn"};
+this.def["rtGetNaNF"] = {file: "rtGetNaN_c.html",line:80,type:"fcn"};
+this.def["rtInf"] = {file: "rt_nonfinite_c.html",line:77,type:"var"};
+this.def["rtMinusInf"] = {file: "rt_nonfinite_c.html",line:83,type:"var"};
+this.def["rtNaN"] = {file: "rt_nonfinite_c.html",line:89,type:"var"};
+this.def["rtInfF"] = {file: "rt_nonfinite_c.html",line:95,type:"var"};
+this.def["rtMinusInfF"] = {file: "rt_nonfinite_c.html",line:101,type:"var"};
+this.def["rtNaNF"] = {file: "rt_nonfinite_c.html",line:107,type:"var"};
+this.def["rt_InitInfAndNaN"] = {file: "rt_nonfinite_c.html",line:119,type:"fcn"};
+this.def["rtIsInf"] = {file: "rt_nonfinite_c.html",line:131,type:"fcn"};
+this.def["rtIsInfF"] = {file: "rt_nonfinite_c.html",line:136,type:"fcn"};
+this.def["rtIsNaN"] = {file: "rt_nonfinite_c.html",line:141,type:"fcn"};
+this.def["rtIsNaNF"] = {file: "rt_nonfinite_c.html",line:164,type:"fcn"};
+this.def["BigEndianIEEEDouble"] = {file: "rt_nonfinite_h.html",line:113,type:"type"};
+this.def["LittleEndianIEEEDouble"] = {file: "rt_nonfinite_h.html",line:121,type:"type"};
+this.def["IEEESingle"] = {file: "rt_nonfinite_h.html",line:129,type:"type"};
+this.def["pointer_T"] = {file: "rtwtypes_h.html",line:28,type:"type"};
+this.def["int64_T"] = {file: "rtwtypes_h.html",line:46,type:"type"};
+this.def["uint64_T"] = {file: "rtwtypes_h.html",line:53,type:"type"};
+this.def["cint64_T"] = {file: "rtwtypes_h.html",line:66,type:"type"};
+this.def["cuint64_T"] = {file: "rtwtypes_h.html",line:76,type:"type"};
+this.def["PMSM_Motor_TL3_mid.h:RegNumInputPorts"] = {file: "PMSM_Motor_TL3_mid_h.html",line:27,type:"fcn"};
+this.def["PMSM_Motor_TL3_mid.h:RegNumOutputPorts"] = {file: "PMSM_Motor_TL3_mid_h.html",line:33,type:"fcn"};
+this.def["PMSM_Motor_TL3_mid.h:FcnSetErrorStatus"] = {file: "PMSM_Motor_TL3_mid_h.html",line:39,type:"fcn"};
+this.def["PMSM_Motor_TL3_mid.h:FcnSetErrorStatusWithReturnPtr"] = {file: "PMSM_Motor_TL3_mid_h.html",line:56,type:"fcn"};
+this.def["PMSM_Motor_TL3_mid.h:FcnSetErrorStatusWithArgPtr"] = {file: "PMSM_Motor_TL3_mid_h.html",line:63,type:"fcn"};
+this.def["PMSM_Motor_TL3_malloc"] = {file: "PMSM_Motor_TL3_mid_h.html",line:73,type:"fcn"};
+}
+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["PMSM_Motor_TL3_sf_c.html"] = "../PMSM_Motor_TL3_sf.c";
+	this.html2Root["PMSM_Motor_TL3_sf_c.html"] = "PMSM_Motor_TL3_sf_c.html";
+	this.html2SrcPath["PMSM_Motor_TL3_sf_h.html"] = "../PMSM_Motor_TL3_sf.h";
+	this.html2Root["PMSM_Motor_TL3_sf_h.html"] = "PMSM_Motor_TL3_sf_h.html";
+	this.html2SrcPath["PMSM_Motor_TL3_sf_private_h.html"] = "../PMSM_Motor_TL3_sf_private.h";
+	this.html2Root["PMSM_Motor_TL3_sf_private_h.html"] = "PMSM_Motor_TL3_sf_private_h.html";
+	this.html2SrcPath["PMSM_Motor_TL3_sf_types_h.html"] = "../PMSM_Motor_TL3_sf_types.h";
+	this.html2Root["PMSM_Motor_TL3_sf_types_h.html"] = "PMSM_Motor_TL3_sf_types_h.html";
+	this.html2SrcPath["PMSM_Motor_TL3_sf_data_c.html"] = "../PMSM_Motor_TL3_sf_data.c";
+	this.html2Root["PMSM_Motor_TL3_sf_data_c.html"] = "PMSM_Motor_TL3_sf_data_c.html";
+	this.html2SrcPath["multiword_types_h.html"] = "../multiword_types.h";
+	this.html2Root["multiword_types_h.html"] = "multiword_types_h.html";
+	this.html2SrcPath["rtGetInf_c.html"] = "../rtGetInf.c";
+	this.html2Root["rtGetInf_c.html"] = "rtGetInf_c.html";
+	this.html2SrcPath["rtGetInf_h.html"] = "../rtGetInf.h";
+	this.html2Root["rtGetInf_h.html"] = "rtGetInf_h.html";
+	this.html2SrcPath["rtGetNaN_c.html"] = "../rtGetNaN.c";
+	this.html2Root["rtGetNaN_c.html"] = "rtGetNaN_c.html";
+	this.html2SrcPath["rtGetNaN_h.html"] = "../rtGetNaN.h";
+	this.html2Root["rtGetNaN_h.html"] = "rtGetNaN_h.html";
+	this.html2SrcPath["rt_defines_h.html"] = "../rt_defines.h";
+	this.html2Root["rt_defines_h.html"] = "rt_defines_h.html";
+	this.html2SrcPath["rt_nonfinite_c.html"] = "../rt_nonfinite.c";
+	this.html2Root["rt_nonfinite_c.html"] = "rt_nonfinite_c.html";
+	this.html2SrcPath["rt_nonfinite_h.html"] = "../rt_nonfinite.h";
+	this.html2Root["rt_nonfinite_h.html"] = "rt_nonfinite_h.html";
+	this.html2SrcPath["rtwtypes_h.html"] = "../rtwtypes.h";
+	this.html2Root["rtwtypes_h.html"] = "rtwtypes_h.html";
+	this.html2SrcPath["PMSM_Motor_TL3_mid_h.html"] = "../PMSM_Motor_TL3_mid.h";
+	this.html2Root["PMSM_Motor_TL3_mid_h.html"] = "PMSM_Motor_TL3_mid_h.html";
+	this.html2SrcPath["PMSM_Motor_TL3_sid_h.html"] = "../PMSM_Motor_TL3_sid.h";
+	this.html2Root["PMSM_Motor_TL3_sid_h.html"] = "PMSM_Motor_TL3_sid_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 = [
+"PMSM_Motor_TL3_sf_c.html","PMSM_Motor_TL3_sf_h.html","PMSM_Motor_TL3_sf_private_h.html","PMSM_Motor_TL3_sf_types_h.html","PMSM_Motor_TL3_sf_data_c.html","multiword_types_h.html","rtGetInf_c.html","rtGetInf_h.html","rtGetNaN_c.html","rtGetNaN_h.html","rt_defines_h.html","rt_nonfinite_c.html","rt_nonfinite_h.html","rtwtypes_h.html","PMSM_Motor_TL3_mid_h.html","PMSM_Motor_TL3_sid_h.html"];

BIN
Simulink/PMSM_Motor_TL3_sfcn_rtw/html/hilite_warning.png


+ 33 - 0
Simulink/PMSM_Motor_TL3_sfcn_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/PMSM_Motor_TL3_sfcn_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);
+    }
+};

+ 1212 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/html/multiword_types_h.html

@@ -0,0 +1,1212 @@
+<!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"> * multiword_types.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 generation for model "PMSM_Motor_TL3_sf".</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.825</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 source code generated on : Fri Apr 14 12:51:02 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: rtwsfcn.tlc</span></td></tr>
+<tr name="11" id="11">
+<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
+<tr name="12" id="12">
+<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * Embedded hardware selection: ARM Compatible-&gt;ARM Cortex-M</span></td></tr>
+<tr name="13" id="13">
+<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> * Emulation hardware selection:</span></td></tr>
+<tr name="14" id="14">
+<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> *    Differs from embedded hardware (MATLAB Host)</span></td></tr>
+<tr name="15" id="15">
+<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Code generation objectives:</span></td></tr>
+<tr name="16" id="16">
+<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> *    1. Execution efficiency</span></td></tr>
+<tr name="17" id="17">
+<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> *    2. RAM efficiency</span></td></tr>
+<tr name="18" id="18">
+<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
+<tr name="19" id="19">
+<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> */</span></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="pp">#ifndef</span> <a id="21c9" class="tk">MULTIWORD_TYPES_H</a></td></tr>
+<tr name="22" id="22">
+<td><a id="l22" class='ln'>22</a></td><td><span class="pp">#define</span> <a id="22c9" class="tk">MULTIWORD_TYPES_H</a></td></tr>
+<tr name="23" id="23">
+<td><a id="l23" class='ln'>23</a></td><td><span class="pp">#include "rtwtypes.h"</span></td></tr>
+<tr name="24" id="24">
+<td><a id="l24" class='ln'>24</a></td><td></td></tr>
+<tr name="25" id="25">
+<td><a id="l25" class='ln'>25</a></td><td><span class="ct">/*</span></td></tr>
+<tr name="26" id="26">
+<td><a id="l26" class='ln'>26</a></td><td><span class="ct"> * Definitions supporting external data access</span></td></tr>
+<tr name="27" id="27">
+<td><a id="l27" class='ln'>27</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="28" id="28">
+<td><a id="l28" class='ln'>28</a></td><td><span class="kw">typedef</span> <a id="28c9" class="tk">int64_T</a> <a id="28c17" class="tk">chunk_T</a>;</td></tr>
+<tr name="29" id="29">
+<td><a id="l29" class='ln'>29</a></td><td><span class="kw">typedef</span> <a id="29c9" class="tk">uint64_T</a> <a id="29c18" class="tk">uchunk_T</a>;</td></tr>
+<tr name="30" id="30">
+<td><a id="l30" class='ln'>30</a></td><td></td></tr>
+<tr name="31" id="31">
+<td><a id="l31" class='ln'>31</a></td><td><span class="ct">/*</span></td></tr>
+<tr name="32" id="32">
+<td><a id="l32" class='ln'>32</a></td><td><span class="ct"> * MultiWord supporting definitions</span></td></tr>
+<tr name="33" id="33">
+<td><a id="l33" class='ln'>33</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="34" id="34">
+<td><a id="l34" class='ln'>34</a></td><td><span class="kw">typedef</span> <span class="kw">long</span> <span class="kw">long</span> <a id="34c19" class="tk">longlong_T</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">/*</span></td></tr>
+<tr name="37" id="37">
+<td><a id="l37" class='ln'>37</a></td><td><span class="ct"> * MultiWord types</span></td></tr>
+<tr name="38" id="38">
+<td><a id="l38" class='ln'>38</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="39" id="39">
+<td><a id="l39" class='ln'>39</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="40" id="40">
+<td><a id="l40" class='ln'>40</a></td><td>  <a id="40c3" class="tk">uint64_T</a> <a id="40c12" class="tk">chunks</a>[2];</td></tr>
+<tr name="41" id="41">
+<td><a id="l41" class='ln'>41</a></td><td><span class="br">}</span> <a id="41c3" class="tk">int128m_T</a>;</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="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">int128m_T</a> <a id="44c13" class="tk">re</a>;</td></tr>
+<tr name="45" id="45">
+<td><a id="l45" class='ln'>45</a></td><td>  <a id="45c3" class="tk">int128m_T</a> <a id="45c13" class="tk">im</a>;</td></tr>
+<tr name="46" id="46">
+<td><a id="l46" class='ln'>46</a></td><td><span class="br">}</span> <a id="46c3" class="tk">cint128m_T</a>;</td></tr>
+<tr name="47" id="47">
+<td><a id="l47" class='ln'>47</a></td><td></td></tr>
+<tr name="48" id="48">
+<td><a id="l48" class='ln'>48</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="49" id="49">
+<td><a id="l49" class='ln'>49</a></td><td>  <a id="49c3" class="tk">uint64_T</a> <a id="49c12" class="tk">chunks</a>[2];</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">uint128m_T</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="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="53" id="53">
+<td><a id="l53" class='ln'>53</a></td><td>  <a id="53c3" class="tk">uint128m_T</a> <a id="53c14" class="tk">re</a>;</td></tr>
+<tr name="54" id="54">
+<td><a id="l54" class='ln'>54</a></td><td>  <a id="54c3" class="tk">uint128m_T</a> <a id="54c14" class="tk">im</a>;</td></tr>
+<tr name="55" id="55">
+<td><a id="l55" class='ln'>55</a></td><td><span class="br">}</span> <a id="55c3" class="tk">cuint128m_T</a>;</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="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="58" id="58">
+<td><a id="l58" class='ln'>58</a></td><td>  <a id="58c3" class="tk">uint64_T</a> <a id="58c12" class="tk">chunks</a>[3];</td></tr>
+<tr name="59" id="59">
+<td><a id="l59" class='ln'>59</a></td><td><span class="br">}</span> <a id="59c3" class="tk">int192m_T</a>;</td></tr>
+<tr name="60" id="60">
+<td><a id="l60" class='ln'>60</a></td><td></td></tr>
+<tr name="61" id="61">
+<td><a id="l61" class='ln'>61</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="62" id="62">
+<td><a id="l62" class='ln'>62</a></td><td>  <a id="62c3" class="tk">int192m_T</a> <a id="62c13" class="tk">re</a>;</td></tr>
+<tr name="63" id="63">
+<td><a id="l63" class='ln'>63</a></td><td>  <a id="63c3" class="tk">int192m_T</a> <a id="63c13" class="tk">im</a>;</td></tr>
+<tr name="64" id="64">
+<td><a id="l64" class='ln'>64</a></td><td><span class="br">}</span> <a id="64c3" class="tk">cint192m_T</a>;</td></tr>
+<tr name="65" id="65">
+<td><a id="l65" class='ln'>65</a></td><td></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">struct</span> <span class="br">{</span></td></tr>
+<tr name="67" id="67">
+<td><a id="l67" class='ln'>67</a></td><td>  <a id="67c3" class="tk">uint64_T</a> <a id="67c12" class="tk">chunks</a>[3];</td></tr>
+<tr name="68" id="68">
+<td><a id="l68" class='ln'>68</a></td><td><span class="br">}</span> <a id="68c3" class="tk">uint192m_T</a>;</td></tr>
+<tr name="69" id="69">
+<td><a id="l69" class='ln'>69</a></td><td></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">struct</span> <span class="br">{</span></td></tr>
+<tr name="71" id="71">
+<td><a id="l71" class='ln'>71</a></td><td>  <a id="71c3" class="tk">uint192m_T</a> <a id="71c14" class="tk">re</a>;</td></tr>
+<tr name="72" id="72">
+<td><a id="l72" class='ln'>72</a></td><td>  <a id="72c3" class="tk">uint192m_T</a> <a id="72c14" class="tk">im</a>;</td></tr>
+<tr name="73" id="73">
+<td><a id="l73" class='ln'>73</a></td><td><span class="br">}</span> <a id="73c3" class="tk">cuint192m_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="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="76" id="76">
+<td><a id="l76" class='ln'>76</a></td><td>  <a id="76c3" class="tk">uint64_T</a> <a id="76c12" class="tk">chunks</a>[4];</td></tr>
+<tr name="77" id="77">
+<td><a id="l77" class='ln'>77</a></td><td><span class="br">}</span> <a id="77c3" class="tk">int256m_T</a>;</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="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="80" id="80">
+<td><a id="l80" class='ln'>80</a></td><td>  <a id="80c3" class="tk">int256m_T</a> <a id="80c13" class="tk">re</a>;</td></tr>
+<tr name="81" id="81">
+<td><a id="l81" class='ln'>81</a></td><td>  <a id="81c3" class="tk">int256m_T</a> <a id="81c13" class="tk">im</a>;</td></tr>
+<tr name="82" id="82">
+<td><a id="l82" class='ln'>82</a></td><td><span class="br">}</span> <a id="82c3" class="tk">cint256m_T</a>;</td></tr>
+<tr name="83" id="83">
+<td><a id="l83" class='ln'>83</a></td><td></td></tr>
+<tr name="84" id="84">
+<td><a id="l84" class='ln'>84</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="85" id="85">
+<td><a id="l85" class='ln'>85</a></td><td>  <a id="85c3" class="tk">uint64_T</a> <a id="85c12" class="tk">chunks</a>[4];</td></tr>
+<tr name="86" id="86">
+<td><a id="l86" class='ln'>86</a></td><td><span class="br">}</span> <a id="86c3" class="tk">uint256m_T</a>;</td></tr>
+<tr name="87" id="87">
+<td><a id="l87" class='ln'>87</a></td><td></td></tr>
+<tr name="88" id="88">
+<td><a id="l88" class='ln'>88</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="89" id="89">
+<td><a id="l89" class='ln'>89</a></td><td>  <a id="89c3" class="tk">uint256m_T</a> <a id="89c14" class="tk">re</a>;</td></tr>
+<tr name="90" id="90">
+<td><a id="l90" class='ln'>90</a></td><td>  <a id="90c3" class="tk">uint256m_T</a> <a id="90c14" class="tk">im</a>;</td></tr>
+<tr name="91" id="91">
+<td><a id="l91" class='ln'>91</a></td><td><span class="br">}</span> <a id="91c3" class="tk">cuint256m_T</a>;</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="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="94" id="94">
+<td><a id="l94" class='ln'>94</a></td><td>  <a id="94c3" class="tk">uint64_T</a> <a id="94c12" class="tk">chunks</a>[5];</td></tr>
+<tr name="95" id="95">
+<td><a id="l95" class='ln'>95</a></td><td><span class="br">}</span> <a id="95c3" class="tk">int320m_T</a>;</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="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="98" id="98">
+<td><a id="l98" class='ln'>98</a></td><td>  <a id="98c3" class="tk">int320m_T</a> <a id="98c13" class="tk">re</a>;</td></tr>
+<tr name="99" id="99">
+<td><a id="l99" class='ln'>99</a></td><td>  <a id="99c3" class="tk">int320m_T</a> <a id="99c13" class="tk">im</a>;</td></tr>
+<tr name="100" id="100">
+<td><a id="l100" class='ln'>100</a></td><td><span class="br">}</span> <a id="100c3" class="tk">cint320m_T</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="kw">typedef</span> <span class="kw">struct</span> <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">uint64_T</a> <a id="103c12" class="tk">chunks</a>[5];</td></tr>
+<tr name="104" id="104">
+<td><a id="l104" class='ln'>104</a></td><td><span class="br">}</span> <a id="104c3" class="tk">uint320m_T</a>;</td></tr>
+<tr name="105" id="105">
+<td><a id="l105" class='ln'>105</a></td><td></td></tr>
+<tr name="106" id="106">
+<td><a id="l106" class='ln'>106</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="107" id="107">
+<td><a id="l107" class='ln'>107</a></td><td>  <a id="107c3" class="tk">uint320m_T</a> <a id="107c14" class="tk">re</a>;</td></tr>
+<tr name="108" id="108">
+<td><a id="l108" class='ln'>108</a></td><td>  <a id="108c3" class="tk">uint320m_T</a> <a id="108c14" class="tk">im</a>;</td></tr>
+<tr name="109" id="109">
+<td><a id="l109" class='ln'>109</a></td><td><span class="br">}</span> <a id="109c3" class="tk">cuint320m_T</a>;</td></tr>
+<tr name="110" id="110">
+<td><a id="l110" class='ln'>110</a></td><td></td></tr>
+<tr name="111" id="111">
+<td><a id="l111" class='ln'>111</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="112" id="112">
+<td><a id="l112" class='ln'>112</a></td><td>  <a id="112c3" class="tk">uint64_T</a> <a id="112c12" class="tk">chunks</a>[6];</td></tr>
+<tr name="113" id="113">
+<td><a id="l113" class='ln'>113</a></td><td><span class="br">}</span> <a id="113c3" class="tk">int384m_T</a>;</td></tr>
+<tr name="114" id="114">
+<td><a id="l114" class='ln'>114</a></td><td></td></tr>
+<tr name="115" id="115">
+<td><a id="l115" class='ln'>115</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="116" id="116">
+<td><a id="l116" class='ln'>116</a></td><td>  <a id="116c3" class="tk">int384m_T</a> <a id="116c13" class="tk">re</a>;</td></tr>
+<tr name="117" id="117">
+<td><a id="l117" class='ln'>117</a></td><td>  <a id="117c3" class="tk">int384m_T</a> <a id="117c13" class="tk">im</a>;</td></tr>
+<tr name="118" id="118">
+<td><a id="l118" class='ln'>118</a></td><td><span class="br">}</span> <a id="118c3" class="tk">cint384m_T</a>;</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="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="121" id="121">
+<td><a id="l121" class='ln'>121</a></td><td>  <a id="121c3" class="tk">uint64_T</a> <a id="121c12" class="tk">chunks</a>[6];</td></tr>
+<tr name="122" id="122">
+<td><a id="l122" class='ln'>122</a></td><td><span class="br">}</span> <a id="122c3" class="tk">uint384m_T</a>;</td></tr>
+<tr name="123" id="123">
+<td><a id="l123" class='ln'>123</a></td><td></td></tr>
+<tr name="124" id="124">
+<td><a id="l124" class='ln'>124</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="125" id="125">
+<td><a id="l125" class='ln'>125</a></td><td>  <a id="125c3" class="tk">uint384m_T</a> <a id="125c14" class="tk">re</a>;</td></tr>
+<tr name="126" id="126">
+<td><a id="l126" class='ln'>126</a></td><td>  <a id="126c3" class="tk">uint384m_T</a> <a id="126c14" class="tk">im</a>;</td></tr>
+<tr name="127" id="127">
+<td><a id="l127" class='ln'>127</a></td><td><span class="br">}</span> <a id="127c3" class="tk">cuint384m_T</a>;</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><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="130" id="130">
+<td><a id="l130" class='ln'>130</a></td><td>  <a id="130c3" class="tk">uint64_T</a> <a id="130c12" class="tk">chunks</a>[7];</td></tr>
+<tr name="131" id="131">
+<td><a id="l131" class='ln'>131</a></td><td><span class="br">}</span> <a id="131c3" class="tk">int448m_T</a>;</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="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="134" id="134">
+<td><a id="l134" class='ln'>134</a></td><td>  <a id="134c3" class="tk">int448m_T</a> <a id="134c13" class="tk">re</a>;</td></tr>
+<tr name="135" id="135">
+<td><a id="l135" class='ln'>135</a></td><td>  <a id="135c3" class="tk">int448m_T</a> <a id="135c13" class="tk">im</a>;</td></tr>
+<tr name="136" id="136">
+<td><a id="l136" class='ln'>136</a></td><td><span class="br">}</span> <a id="136c3" class="tk">cint448m_T</a>;</td></tr>
+<tr name="137" id="137">
+<td><a id="l137" class='ln'>137</a></td><td></td></tr>
+<tr name="138" id="138">
+<td><a id="l138" class='ln'>138</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="139" id="139">
+<td><a id="l139" class='ln'>139</a></td><td>  <a id="139c3" class="tk">uint64_T</a> <a id="139c12" class="tk">chunks</a>[7];</td></tr>
+<tr name="140" id="140">
+<td><a id="l140" class='ln'>140</a></td><td><span class="br">}</span> <a id="140c3" class="tk">uint448m_T</a>;</td></tr>
+<tr name="141" id="141">
+<td><a id="l141" class='ln'>141</a></td><td></td></tr>
+<tr name="142" id="142">
+<td><a id="l142" class='ln'>142</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="143" id="143">
+<td><a id="l143" class='ln'>143</a></td><td>  <a id="143c3" class="tk">uint448m_T</a> <a id="143c14" class="tk">re</a>;</td></tr>
+<tr name="144" id="144">
+<td><a id="l144" class='ln'>144</a></td><td>  <a id="144c3" class="tk">uint448m_T</a> <a id="144c14" class="tk">im</a>;</td></tr>
+<tr name="145" id="145">
+<td><a id="l145" class='ln'>145</a></td><td><span class="br">}</span> <a id="145c3" class="tk">cuint448m_T</a>;</td></tr>
+<tr name="146" id="146">
+<td><a id="l146" class='ln'>146</a></td><td></td></tr>
+<tr name="147" id="147">
+<td><a id="l147" class='ln'>147</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="148" id="148">
+<td><a id="l148" class='ln'>148</a></td><td>  <a id="148c3" class="tk">uint64_T</a> <a id="148c12" class="tk">chunks</a>[8];</td></tr>
+<tr name="149" id="149">
+<td><a id="l149" class='ln'>149</a></td><td><span class="br">}</span> <a id="149c3" class="tk">int512m_T</a>;</td></tr>
+<tr name="150" id="150">
+<td><a id="l150" class='ln'>150</a></td><td></td></tr>
+<tr name="151" id="151">
+<td><a id="l151" class='ln'>151</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="152" id="152">
+<td><a id="l152" class='ln'>152</a></td><td>  <a id="152c3" class="tk">int512m_T</a> <a id="152c13" class="tk">re</a>;</td></tr>
+<tr name="153" id="153">
+<td><a id="l153" class='ln'>153</a></td><td>  <a id="153c3" class="tk">int512m_T</a> <a id="153c13" class="tk">im</a>;</td></tr>
+<tr name="154" id="154">
+<td><a id="l154" class='ln'>154</a></td><td><span class="br">}</span> <a id="154c3" class="tk">cint512m_T</a>;</td></tr>
+<tr name="155" id="155">
+<td><a id="l155" class='ln'>155</a></td><td></td></tr>
+<tr name="156" id="156">
+<td><a id="l156" class='ln'>156</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="157" id="157">
+<td><a id="l157" class='ln'>157</a></td><td>  <a id="157c3" class="tk">uint64_T</a> <a id="157c12" class="tk">chunks</a>[8];</td></tr>
+<tr name="158" id="158">
+<td><a id="l158" class='ln'>158</a></td><td><span class="br">}</span> <a id="158c3" class="tk">uint512m_T</a>;</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="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="161" id="161">
+<td><a id="l161" class='ln'>161</a></td><td>  <a id="161c3" class="tk">uint512m_T</a> <a id="161c14" class="tk">re</a>;</td></tr>
+<tr name="162" id="162">
+<td><a id="l162" class='ln'>162</a></td><td>  <a id="162c3" class="tk">uint512m_T</a> <a id="162c14" class="tk">im</a>;</td></tr>
+<tr name="163" id="163">
+<td><a id="l163" class='ln'>163</a></td><td><span class="br">}</span> <a id="163c3" class="tk">cuint512m_T</a>;</td></tr>
+<tr name="164" id="164">
+<td><a id="l164" class='ln'>164</a></td><td></td></tr>
+<tr name="165" id="165">
+<td><a id="l165" class='ln'>165</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="166" id="166">
+<td><a id="l166" class='ln'>166</a></td><td>  <a id="166c3" class="tk">uint64_T</a> <a id="166c12" class="tk">chunks</a>[9];</td></tr>
+<tr name="167" id="167">
+<td><a id="l167" class='ln'>167</a></td><td><span class="br">}</span> <a id="167c3" class="tk">int576m_T</a>;</td></tr>
+<tr name="168" id="168">
+<td><a id="l168" class='ln'>168</a></td><td></td></tr>
+<tr name="169" id="169">
+<td><a id="l169" class='ln'>169</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="170" id="170">
+<td><a id="l170" class='ln'>170</a></td><td>  <a id="170c3" class="tk">int576m_T</a> <a id="170c13" class="tk">re</a>;</td></tr>
+<tr name="171" id="171">
+<td><a id="l171" class='ln'>171</a></td><td>  <a id="171c3" class="tk">int576m_T</a> <a id="171c13" class="tk">im</a>;</td></tr>
+<tr name="172" id="172">
+<td><a id="l172" class='ln'>172</a></td><td><span class="br">}</span> <a id="172c3" class="tk">cint576m_T</a>;</td></tr>
+<tr name="173" id="173">
+<td><a id="l173" class='ln'>173</a></td><td></td></tr>
+<tr name="174" id="174">
+<td><a id="l174" class='ln'>174</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="175" id="175">
+<td><a id="l175" class='ln'>175</a></td><td>  <a id="175c3" class="tk">uint64_T</a> <a id="175c12" class="tk">chunks</a>[9];</td></tr>
+<tr name="176" id="176">
+<td><a id="l176" class='ln'>176</a></td><td><span class="br">}</span> <a id="176c3" class="tk">uint576m_T</a>;</td></tr>
+<tr name="177" id="177">
+<td><a id="l177" class='ln'>177</a></td><td></td></tr>
+<tr name="178" id="178">
+<td><a id="l178" class='ln'>178</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="179" id="179">
+<td><a id="l179" class='ln'>179</a></td><td>  <a id="179c3" class="tk">uint576m_T</a> <a id="179c14" class="tk">re</a>;</td></tr>
+<tr name="180" id="180">
+<td><a id="l180" class='ln'>180</a></td><td>  <a id="180c3" class="tk">uint576m_T</a> <a id="180c14" class="tk">im</a>;</td></tr>
+<tr name="181" id="181">
+<td><a id="l181" class='ln'>181</a></td><td><span class="br">}</span> <a id="181c3" class="tk">cuint576m_T</a>;</td></tr>
+<tr name="182" id="182">
+<td><a id="l182" class='ln'>182</a></td><td></td></tr>
+<tr name="183" id="183">
+<td><a id="l183" class='ln'>183</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="184" id="184">
+<td><a id="l184" class='ln'>184</a></td><td>  <a id="184c3" class="tk">uint64_T</a> <a id="184c12" class="tk">chunks</a>[10];</td></tr>
+<tr name="185" id="185">
+<td><a id="l185" class='ln'>185</a></td><td><span class="br">}</span> <a id="185c3" class="tk">int640m_T</a>;</td></tr>
+<tr name="186" id="186">
+<td><a id="l186" class='ln'>186</a></td><td></td></tr>
+<tr name="187" id="187">
+<td><a id="l187" class='ln'>187</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="188" id="188">
+<td><a id="l188" class='ln'>188</a></td><td>  <a id="188c3" class="tk">int640m_T</a> <a id="188c13" class="tk">re</a>;</td></tr>
+<tr name="189" id="189">
+<td><a id="l189" class='ln'>189</a></td><td>  <a id="189c3" class="tk">int640m_T</a> <a id="189c13" class="tk">im</a>;</td></tr>
+<tr name="190" id="190">
+<td><a id="l190" class='ln'>190</a></td><td><span class="br">}</span> <a id="190c3" class="tk">cint640m_T</a>;</td></tr>
+<tr name="191" id="191">
+<td><a id="l191" class='ln'>191</a></td><td></td></tr>
+<tr name="192" id="192">
+<td><a id="l192" class='ln'>192</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="193" id="193">
+<td><a id="l193" class='ln'>193</a></td><td>  <a id="193c3" class="tk">uint64_T</a> <a id="193c12" class="tk">chunks</a>[10];</td></tr>
+<tr name="194" id="194">
+<td><a id="l194" class='ln'>194</a></td><td><span class="br">}</span> <a id="194c3" class="tk">uint640m_T</a>;</td></tr>
+<tr name="195" id="195">
+<td><a id="l195" class='ln'>195</a></td><td></td></tr>
+<tr name="196" id="196">
+<td><a id="l196" class='ln'>196</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <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">uint640m_T</a> <a id="197c14" class="tk">re</a>;</td></tr>
+<tr name="198" id="198">
+<td><a id="l198" class='ln'>198</a></td><td>  <a id="198c3" class="tk">uint640m_T</a> <a id="198c14" class="tk">im</a>;</td></tr>
+<tr name="199" id="199">
+<td><a id="l199" class='ln'>199</a></td><td><span class="br">}</span> <a id="199c3" class="tk">cuint640m_T</a>;</td></tr>
+<tr name="200" id="200">
+<td><a id="l200" class='ln'>200</a></td><td></td></tr>
+<tr name="201" id="201">
+<td><a id="l201" class='ln'>201</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="202" id="202">
+<td><a id="l202" class='ln'>202</a></td><td>  <a id="202c3" class="tk">uint64_T</a> <a id="202c12" class="tk">chunks</a>[11];</td></tr>
+<tr name="203" id="203">
+<td><a id="l203" class='ln'>203</a></td><td><span class="br">}</span> <a id="203c3" class="tk">int704m_T</a>;</td></tr>
+<tr name="204" id="204">
+<td><a id="l204" class='ln'>204</a></td><td></td></tr>
+<tr name="205" id="205">
+<td><a id="l205" class='ln'>205</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="206" id="206">
+<td><a id="l206" class='ln'>206</a></td><td>  <a id="206c3" class="tk">int704m_T</a> <a id="206c13" class="tk">re</a>;</td></tr>
+<tr name="207" id="207">
+<td><a id="l207" class='ln'>207</a></td><td>  <a id="207c3" class="tk">int704m_T</a> <a id="207c13" class="tk">im</a>;</td></tr>
+<tr name="208" id="208">
+<td><a id="l208" class='ln'>208</a></td><td><span class="br">}</span> <a id="208c3" class="tk">cint704m_T</a>;</td></tr>
+<tr name="209" id="209">
+<td><a id="l209" class='ln'>209</a></td><td></td></tr>
+<tr name="210" id="210">
+<td><a id="l210" class='ln'>210</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="211" id="211">
+<td><a id="l211" class='ln'>211</a></td><td>  <a id="211c3" class="tk">uint64_T</a> <a id="211c12" class="tk">chunks</a>[11];</td></tr>
+<tr name="212" id="212">
+<td><a id="l212" class='ln'>212</a></td><td><span class="br">}</span> <a id="212c3" class="tk">uint704m_T</a>;</td></tr>
+<tr name="213" id="213">
+<td><a id="l213" class='ln'>213</a></td><td></td></tr>
+<tr name="214" id="214">
+<td><a id="l214" class='ln'>214</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="215" id="215">
+<td><a id="l215" class='ln'>215</a></td><td>  <a id="215c3" class="tk">uint704m_T</a> <a id="215c14" class="tk">re</a>;</td></tr>
+<tr name="216" id="216">
+<td><a id="l216" class='ln'>216</a></td><td>  <a id="216c3" class="tk">uint704m_T</a> <a id="216c14" class="tk">im</a>;</td></tr>
+<tr name="217" id="217">
+<td><a id="l217" class='ln'>217</a></td><td><span class="br">}</span> <a id="217c3" class="tk">cuint704m_T</a>;</td></tr>
+<tr name="218" id="218">
+<td><a id="l218" class='ln'>218</a></td><td></td></tr>
+<tr name="219" id="219">
+<td><a id="l219" class='ln'>219</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="220" id="220">
+<td><a id="l220" class='ln'>220</a></td><td>  <a id="220c3" class="tk">uint64_T</a> <a id="220c12" class="tk">chunks</a>[12];</td></tr>
+<tr name="221" id="221">
+<td><a id="l221" class='ln'>221</a></td><td><span class="br">}</span> <a id="221c3" class="tk">int768m_T</a>;</td></tr>
+<tr name="222" id="222">
+<td><a id="l222" class='ln'>222</a></td><td></td></tr>
+<tr name="223" id="223">
+<td><a id="l223" class='ln'>223</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="224" id="224">
+<td><a id="l224" class='ln'>224</a></td><td>  <a id="224c3" class="tk">int768m_T</a> <a id="224c13" class="tk">re</a>;</td></tr>
+<tr name="225" id="225">
+<td><a id="l225" class='ln'>225</a></td><td>  <a id="225c3" class="tk">int768m_T</a> <a id="225c13" class="tk">im</a>;</td></tr>
+<tr name="226" id="226">
+<td><a id="l226" class='ln'>226</a></td><td><span class="br">}</span> <a id="226c3" class="tk">cint768m_T</a>;</td></tr>
+<tr name="227" id="227">
+<td><a id="l227" class='ln'>227</a></td><td></td></tr>
+<tr name="228" id="228">
+<td><a id="l228" class='ln'>228</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="229" id="229">
+<td><a id="l229" class='ln'>229</a></td><td>  <a id="229c3" class="tk">uint64_T</a> <a id="229c12" class="tk">chunks</a>[12];</td></tr>
+<tr name="230" id="230">
+<td><a id="l230" class='ln'>230</a></td><td><span class="br">}</span> <a id="230c3" class="tk">uint768m_T</a>;</td></tr>
+<tr name="231" id="231">
+<td><a id="l231" class='ln'>231</a></td><td></td></tr>
+<tr name="232" id="232">
+<td><a id="l232" class='ln'>232</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="233" id="233">
+<td><a id="l233" class='ln'>233</a></td><td>  <a id="233c3" class="tk">uint768m_T</a> <a id="233c14" class="tk">re</a>;</td></tr>
+<tr name="234" id="234">
+<td><a id="l234" class='ln'>234</a></td><td>  <a id="234c3" class="tk">uint768m_T</a> <a id="234c14" class="tk">im</a>;</td></tr>
+<tr name="235" id="235">
+<td><a id="l235" class='ln'>235</a></td><td><span class="br">}</span> <a id="235c3" class="tk">cuint768m_T</a>;</td></tr>
+<tr name="236" id="236">
+<td><a id="l236" class='ln'>236</a></td><td></td></tr>
+<tr name="237" id="237">
+<td><a id="l237" class='ln'>237</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="238" id="238">
+<td><a id="l238" class='ln'>238</a></td><td>  <a id="238c3" class="tk">uint64_T</a> <a id="238c12" class="tk">chunks</a>[13];</td></tr>
+<tr name="239" id="239">
+<td><a id="l239" class='ln'>239</a></td><td><span class="br">}</span> <a id="239c3" class="tk">int832m_T</a>;</td></tr>
+<tr name="240" id="240">
+<td><a id="l240" class='ln'>240</a></td><td></td></tr>
+<tr name="241" id="241">
+<td><a id="l241" class='ln'>241</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="242" id="242">
+<td><a id="l242" class='ln'>242</a></td><td>  <a id="242c3" class="tk">int832m_T</a> <a id="242c13" class="tk">re</a>;</td></tr>
+<tr name="243" id="243">
+<td><a id="l243" class='ln'>243</a></td><td>  <a id="243c3" class="tk">int832m_T</a> <a id="243c13" class="tk">im</a>;</td></tr>
+<tr name="244" id="244">
+<td><a id="l244" class='ln'>244</a></td><td><span class="br">}</span> <a id="244c3" class="tk">cint832m_T</a>;</td></tr>
+<tr name="245" id="245">
+<td><a id="l245" class='ln'>245</a></td><td></td></tr>
+<tr name="246" id="246">
+<td><a id="l246" class='ln'>246</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="247" id="247">
+<td><a id="l247" class='ln'>247</a></td><td>  <a id="247c3" class="tk">uint64_T</a> <a id="247c12" class="tk">chunks</a>[13];</td></tr>
+<tr name="248" id="248">
+<td><a id="l248" class='ln'>248</a></td><td><span class="br">}</span> <a id="248c3" class="tk">uint832m_T</a>;</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="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="251" id="251">
+<td><a id="l251" class='ln'>251</a></td><td>  <a id="251c3" class="tk">uint832m_T</a> <a id="251c14" class="tk">re</a>;</td></tr>
+<tr name="252" id="252">
+<td><a id="l252" class='ln'>252</a></td><td>  <a id="252c3" class="tk">uint832m_T</a> <a id="252c14" class="tk">im</a>;</td></tr>
+<tr name="253" id="253">
+<td><a id="l253" class='ln'>253</a></td><td><span class="br">}</span> <a id="253c3" class="tk">cuint832m_T</a>;</td></tr>
+<tr name="254" id="254">
+<td><a id="l254" class='ln'>254</a></td><td></td></tr>
+<tr name="255" id="255">
+<td><a id="l255" class='ln'>255</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <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">uint64_T</a> <a id="256c12" class="tk">chunks</a>[14];</td></tr>
+<tr name="257" id="257">
+<td><a id="l257" class='ln'>257</a></td><td><span class="br">}</span> <a id="257c3" class="tk">int896m_T</a>;</td></tr>
+<tr name="258" id="258">
+<td><a id="l258" class='ln'>258</a></td><td></td></tr>
+<tr name="259" id="259">
+<td><a id="l259" class='ln'>259</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="260" id="260">
+<td><a id="l260" class='ln'>260</a></td><td>  <a id="260c3" class="tk">int896m_T</a> <a id="260c13" class="tk">re</a>;</td></tr>
+<tr name="261" id="261">
+<td><a id="l261" class='ln'>261</a></td><td>  <a id="261c3" class="tk">int896m_T</a> <a id="261c13" class="tk">im</a>;</td></tr>
+<tr name="262" id="262">
+<td><a id="l262" class='ln'>262</a></td><td><span class="br">}</span> <a id="262c3" class="tk">cint896m_T</a>;</td></tr>
+<tr name="263" id="263">
+<td><a id="l263" class='ln'>263</a></td><td></td></tr>
+<tr name="264" id="264">
+<td><a id="l264" class='ln'>264</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="265" id="265">
+<td><a id="l265" class='ln'>265</a></td><td>  <a id="265c3" class="tk">uint64_T</a> <a id="265c12" class="tk">chunks</a>[14];</td></tr>
+<tr name="266" id="266">
+<td><a id="l266" class='ln'>266</a></td><td><span class="br">}</span> <a id="266c3" class="tk">uint896m_T</a>;</td></tr>
+<tr name="267" id="267">
+<td><a id="l267" class='ln'>267</a></td><td></td></tr>
+<tr name="268" id="268">
+<td><a id="l268" class='ln'>268</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="269" id="269">
+<td><a id="l269" class='ln'>269</a></td><td>  <a id="269c3" class="tk">uint896m_T</a> <a id="269c14" class="tk">re</a>;</td></tr>
+<tr name="270" id="270">
+<td><a id="l270" class='ln'>270</a></td><td>  <a id="270c3" class="tk">uint896m_T</a> <a id="270c14" class="tk">im</a>;</td></tr>
+<tr name="271" id="271">
+<td><a id="l271" class='ln'>271</a></td><td><span class="br">}</span> <a id="271c3" class="tk">cuint896m_T</a>;</td></tr>
+<tr name="272" id="272">
+<td><a id="l272" class='ln'>272</a></td><td></td></tr>
+<tr name="273" id="273">
+<td><a id="l273" class='ln'>273</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="274" id="274">
+<td><a id="l274" class='ln'>274</a></td><td>  <a id="274c3" class="tk">uint64_T</a> <a id="274c12" class="tk">chunks</a>[15];</td></tr>
+<tr name="275" id="275">
+<td><a id="l275" class='ln'>275</a></td><td><span class="br">}</span> <a id="275c3" class="tk">int960m_T</a>;</td></tr>
+<tr name="276" id="276">
+<td><a id="l276" class='ln'>276</a></td><td></td></tr>
+<tr name="277" id="277">
+<td><a id="l277" class='ln'>277</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="278" id="278">
+<td><a id="l278" class='ln'>278</a></td><td>  <a id="278c3" class="tk">int960m_T</a> <a id="278c13" class="tk">re</a>;</td></tr>
+<tr name="279" id="279">
+<td><a id="l279" class='ln'>279</a></td><td>  <a id="279c3" class="tk">int960m_T</a> <a id="279c13" class="tk">im</a>;</td></tr>
+<tr name="280" id="280">
+<td><a id="l280" class='ln'>280</a></td><td><span class="br">}</span> <a id="280c3" class="tk">cint960m_T</a>;</td></tr>
+<tr name="281" id="281">
+<td><a id="l281" class='ln'>281</a></td><td></td></tr>
+<tr name="282" id="282">
+<td><a id="l282" class='ln'>282</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="283" id="283">
+<td><a id="l283" class='ln'>283</a></td><td>  <a id="283c3" class="tk">uint64_T</a> <a id="283c12" class="tk">chunks</a>[15];</td></tr>
+<tr name="284" id="284">
+<td><a id="l284" class='ln'>284</a></td><td><span class="br">}</span> <a id="284c3" class="tk">uint960m_T</a>;</td></tr>
+<tr name="285" id="285">
+<td><a id="l285" class='ln'>285</a></td><td></td></tr>
+<tr name="286" id="286">
+<td><a id="l286" class='ln'>286</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <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">uint960m_T</a> <a id="287c14" class="tk">re</a>;</td></tr>
+<tr name="288" id="288">
+<td><a id="l288" class='ln'>288</a></td><td>  <a id="288c3" class="tk">uint960m_T</a> <a id="288c14" class="tk">im</a>;</td></tr>
+<tr name="289" id="289">
+<td><a id="l289" class='ln'>289</a></td><td><span class="br">}</span> <a id="289c3" class="tk">cuint960m_T</a>;</td></tr>
+<tr name="290" id="290">
+<td><a id="l290" class='ln'>290</a></td><td></td></tr>
+<tr name="291" id="291">
+<td><a id="l291" class='ln'>291</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="292" id="292">
+<td><a id="l292" class='ln'>292</a></td><td>  <a id="292c3" class="tk">uint64_T</a> <a id="292c12" class="tk">chunks</a>[16];</td></tr>
+<tr name="293" id="293">
+<td><a id="l293" class='ln'>293</a></td><td><span class="br">}</span> <a id="293c3" class="tk">int1024m_T</a>;</td></tr>
+<tr name="294" id="294">
+<td><a id="l294" class='ln'>294</a></td><td></td></tr>
+<tr name="295" id="295">
+<td><a id="l295" class='ln'>295</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="296" id="296">
+<td><a id="l296" class='ln'>296</a></td><td>  <a id="296c3" class="tk">int1024m_T</a> <a id="296c14" class="tk">re</a>;</td></tr>
+<tr name="297" id="297">
+<td><a id="l297" class='ln'>297</a></td><td>  <a id="297c3" class="tk">int1024m_T</a> <a id="297c14" class="tk">im</a>;</td></tr>
+<tr name="298" id="298">
+<td><a id="l298" class='ln'>298</a></td><td><span class="br">}</span> <a id="298c3" class="tk">cint1024m_T</a>;</td></tr>
+<tr name="299" id="299">
+<td><a id="l299" class='ln'>299</a></td><td></td></tr>
+<tr name="300" id="300">
+<td><a id="l300" class='ln'>300</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="301" id="301">
+<td><a id="l301" class='ln'>301</a></td><td>  <a id="301c3" class="tk">uint64_T</a> <a id="301c12" class="tk">chunks</a>[16];</td></tr>
+<tr name="302" id="302">
+<td><a id="l302" class='ln'>302</a></td><td><span class="br">}</span> <a id="302c3" class="tk">uint1024m_T</a>;</td></tr>
+<tr name="303" id="303">
+<td><a id="l303" class='ln'>303</a></td><td></td></tr>
+<tr name="304" id="304">
+<td><a id="l304" class='ln'>304</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="305" id="305">
+<td><a id="l305" class='ln'>305</a></td><td>  <a id="305c3" class="tk">uint1024m_T</a> <a id="305c15" class="tk">re</a>;</td></tr>
+<tr name="306" id="306">
+<td><a id="l306" class='ln'>306</a></td><td>  <a id="306c3" class="tk">uint1024m_T</a> <a id="306c15" class="tk">im</a>;</td></tr>
+<tr name="307" id="307">
+<td><a id="l307" class='ln'>307</a></td><td><span class="br">}</span> <a id="307c3" class="tk">cuint1024m_T</a>;</td></tr>
+<tr name="308" id="308">
+<td><a id="l308" class='ln'>308</a></td><td></td></tr>
+<tr name="309" id="309">
+<td><a id="l309" class='ln'>309</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="310" id="310">
+<td><a id="l310" class='ln'>310</a></td><td>  <a id="310c3" class="tk">uint64_T</a> <a id="310c12" class="tk">chunks</a>[17];</td></tr>
+<tr name="311" id="311">
+<td><a id="l311" class='ln'>311</a></td><td><span class="br">}</span> <a id="311c3" class="tk">int1088m_T</a>;</td></tr>
+<tr name="312" id="312">
+<td><a id="l312" class='ln'>312</a></td><td></td></tr>
+<tr name="313" id="313">
+<td><a id="l313" class='ln'>313</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="314" id="314">
+<td><a id="l314" class='ln'>314</a></td><td>  <a id="314c3" class="tk">int1088m_T</a> <a id="314c14" class="tk">re</a>;</td></tr>
+<tr name="315" id="315">
+<td><a id="l315" class='ln'>315</a></td><td>  <a id="315c3" class="tk">int1088m_T</a> <a id="315c14" class="tk">im</a>;</td></tr>
+<tr name="316" id="316">
+<td><a id="l316" class='ln'>316</a></td><td><span class="br">}</span> <a id="316c3" class="tk">cint1088m_T</a>;</td></tr>
+<tr name="317" id="317">
+<td><a id="l317" class='ln'>317</a></td><td></td></tr>
+<tr name="318" id="318">
+<td><a id="l318" class='ln'>318</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="319" id="319">
+<td><a id="l319" class='ln'>319</a></td><td>  <a id="319c3" class="tk">uint64_T</a> <a id="319c12" class="tk">chunks</a>[17];</td></tr>
+<tr name="320" id="320">
+<td><a id="l320" class='ln'>320</a></td><td><span class="br">}</span> <a id="320c3" class="tk">uint1088m_T</a>;</td></tr>
+<tr name="321" id="321">
+<td><a id="l321" class='ln'>321</a></td><td></td></tr>
+<tr name="322" id="322">
+<td><a id="l322" class='ln'>322</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="323" id="323">
+<td><a id="l323" class='ln'>323</a></td><td>  <a id="323c3" class="tk">uint1088m_T</a> <a id="323c15" class="tk">re</a>;</td></tr>
+<tr name="324" id="324">
+<td><a id="l324" class='ln'>324</a></td><td>  <a id="324c3" class="tk">uint1088m_T</a> <a id="324c15" class="tk">im</a>;</td></tr>
+<tr name="325" id="325">
+<td><a id="l325" class='ln'>325</a></td><td><span class="br">}</span> <a id="325c3" class="tk">cuint1088m_T</a>;</td></tr>
+<tr name="326" id="326">
+<td><a id="l326" class='ln'>326</a></td><td></td></tr>
+<tr name="327" id="327">
+<td><a id="l327" class='ln'>327</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="328" id="328">
+<td><a id="l328" class='ln'>328</a></td><td>  <a id="328c3" class="tk">uint64_T</a> <a id="328c12" class="tk">chunks</a>[18];</td></tr>
+<tr name="329" id="329">
+<td><a id="l329" class='ln'>329</a></td><td><span class="br">}</span> <a id="329c3" class="tk">int1152m_T</a>;</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="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="332" id="332">
+<td><a id="l332" class='ln'>332</a></td><td>  <a id="332c3" class="tk">int1152m_T</a> <a id="332c14" class="tk">re</a>;</td></tr>
+<tr name="333" id="333">
+<td><a id="l333" class='ln'>333</a></td><td>  <a id="333c3" class="tk">int1152m_T</a> <a id="333c14" class="tk">im</a>;</td></tr>
+<tr name="334" id="334">
+<td><a id="l334" class='ln'>334</a></td><td><span class="br">}</span> <a id="334c3" class="tk">cint1152m_T</a>;</td></tr>
+<tr name="335" id="335">
+<td><a id="l335" class='ln'>335</a></td><td></td></tr>
+<tr name="336" id="336">
+<td><a id="l336" class='ln'>336</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="337" id="337">
+<td><a id="l337" class='ln'>337</a></td><td>  <a id="337c3" class="tk">uint64_T</a> <a id="337c12" class="tk">chunks</a>[18];</td></tr>
+<tr name="338" id="338">
+<td><a id="l338" class='ln'>338</a></td><td><span class="br">}</span> <a id="338c3" class="tk">uint1152m_T</a>;</td></tr>
+<tr name="339" id="339">
+<td><a id="l339" class='ln'>339</a></td><td></td></tr>
+<tr name="340" id="340">
+<td><a id="l340" class='ln'>340</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="341" id="341">
+<td><a id="l341" class='ln'>341</a></td><td>  <a id="341c3" class="tk">uint1152m_T</a> <a id="341c15" class="tk">re</a>;</td></tr>
+<tr name="342" id="342">
+<td><a id="l342" class='ln'>342</a></td><td>  <a id="342c3" class="tk">uint1152m_T</a> <a id="342c15" class="tk">im</a>;</td></tr>
+<tr name="343" id="343">
+<td><a id="l343" class='ln'>343</a></td><td><span class="br">}</span> <a id="343c3" class="tk">cuint1152m_T</a>;</td></tr>
+<tr name="344" id="344">
+<td><a id="l344" class='ln'>344</a></td><td></td></tr>
+<tr name="345" id="345">
+<td><a id="l345" class='ln'>345</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="346" id="346">
+<td><a id="l346" class='ln'>346</a></td><td>  <a id="346c3" class="tk">uint64_T</a> <a id="346c12" class="tk">chunks</a>[19];</td></tr>
+<tr name="347" id="347">
+<td><a id="l347" class='ln'>347</a></td><td><span class="br">}</span> <a id="347c3" class="tk">int1216m_T</a>;</td></tr>
+<tr name="348" id="348">
+<td><a id="l348" class='ln'>348</a></td><td></td></tr>
+<tr name="349" id="349">
+<td><a id="l349" class='ln'>349</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="350" id="350">
+<td><a id="l350" class='ln'>350</a></td><td>  <a id="350c3" class="tk">int1216m_T</a> <a id="350c14" class="tk">re</a>;</td></tr>
+<tr name="351" id="351">
+<td><a id="l351" class='ln'>351</a></td><td>  <a id="351c3" class="tk">int1216m_T</a> <a id="351c14" class="tk">im</a>;</td></tr>
+<tr name="352" id="352">
+<td><a id="l352" class='ln'>352</a></td><td><span class="br">}</span> <a id="352c3" class="tk">cint1216m_T</a>;</td></tr>
+<tr name="353" id="353">
+<td><a id="l353" class='ln'>353</a></td><td></td></tr>
+<tr name="354" id="354">
+<td><a id="l354" class='ln'>354</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="355" id="355">
+<td><a id="l355" class='ln'>355</a></td><td>  <a id="355c3" class="tk">uint64_T</a> <a id="355c12" class="tk">chunks</a>[19];</td></tr>
+<tr name="356" id="356">
+<td><a id="l356" class='ln'>356</a></td><td><span class="br">}</span> <a id="356c3" class="tk">uint1216m_T</a>;</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="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="359" id="359">
+<td><a id="l359" class='ln'>359</a></td><td>  <a id="359c3" class="tk">uint1216m_T</a> <a id="359c15" class="tk">re</a>;</td></tr>
+<tr name="360" id="360">
+<td><a id="l360" class='ln'>360</a></td><td>  <a id="360c3" class="tk">uint1216m_T</a> <a id="360c15" class="tk">im</a>;</td></tr>
+<tr name="361" id="361">
+<td><a id="l361" class='ln'>361</a></td><td><span class="br">}</span> <a id="361c3" class="tk">cuint1216m_T</a>;</td></tr>
+<tr name="362" id="362">
+<td><a id="l362" class='ln'>362</a></td><td></td></tr>
+<tr name="363" id="363">
+<td><a id="l363" class='ln'>363</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="364" id="364">
+<td><a id="l364" class='ln'>364</a></td><td>  <a id="364c3" class="tk">uint64_T</a> <a id="364c12" class="tk">chunks</a>[20];</td></tr>
+<tr name="365" id="365">
+<td><a id="l365" class='ln'>365</a></td><td><span class="br">}</span> <a id="365c3" class="tk">int1280m_T</a>;</td></tr>
+<tr name="366" id="366">
+<td><a id="l366" class='ln'>366</a></td><td></td></tr>
+<tr name="367" id="367">
+<td><a id="l367" class='ln'>367</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="368" id="368">
+<td><a id="l368" class='ln'>368</a></td><td>  <a id="368c3" class="tk">int1280m_T</a> <a id="368c14" class="tk">re</a>;</td></tr>
+<tr name="369" id="369">
+<td><a id="l369" class='ln'>369</a></td><td>  <a id="369c3" class="tk">int1280m_T</a> <a id="369c14" class="tk">im</a>;</td></tr>
+<tr name="370" id="370">
+<td><a id="l370" class='ln'>370</a></td><td><span class="br">}</span> <a id="370c3" class="tk">cint1280m_T</a>;</td></tr>
+<tr name="371" id="371">
+<td><a id="l371" class='ln'>371</a></td><td></td></tr>
+<tr name="372" id="372">
+<td><a id="l372" class='ln'>372</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="373" id="373">
+<td><a id="l373" class='ln'>373</a></td><td>  <a id="373c3" class="tk">uint64_T</a> <a id="373c12" class="tk">chunks</a>[20];</td></tr>
+<tr name="374" id="374">
+<td><a id="l374" class='ln'>374</a></td><td><span class="br">}</span> <a id="374c3" class="tk">uint1280m_T</a>;</td></tr>
+<tr name="375" id="375">
+<td><a id="l375" class='ln'>375</a></td><td></td></tr>
+<tr name="376" id="376">
+<td><a id="l376" class='ln'>376</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="377" id="377">
+<td><a id="l377" class='ln'>377</a></td><td>  <a id="377c3" class="tk">uint1280m_T</a> <a id="377c15" class="tk">re</a>;</td></tr>
+<tr name="378" id="378">
+<td><a id="l378" class='ln'>378</a></td><td>  <a id="378c3" class="tk">uint1280m_T</a> <a id="378c15" class="tk">im</a>;</td></tr>
+<tr name="379" id="379">
+<td><a id="l379" class='ln'>379</a></td><td><span class="br">}</span> <a id="379c3" class="tk">cuint1280m_T</a>;</td></tr>
+<tr name="380" id="380">
+<td><a id="l380" class='ln'>380</a></td><td></td></tr>
+<tr name="381" id="381">
+<td><a id="l381" class='ln'>381</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="382" id="382">
+<td><a id="l382" class='ln'>382</a></td><td>  <a id="382c3" class="tk">uint64_T</a> <a id="382c12" class="tk">chunks</a>[21];</td></tr>
+<tr name="383" id="383">
+<td><a id="l383" class='ln'>383</a></td><td><span class="br">}</span> <a id="383c3" class="tk">int1344m_T</a>;</td></tr>
+<tr name="384" id="384">
+<td><a id="l384" class='ln'>384</a></td><td></td></tr>
+<tr name="385" id="385">
+<td><a id="l385" class='ln'>385</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="386" id="386">
+<td><a id="l386" class='ln'>386</a></td><td>  <a id="386c3" class="tk">int1344m_T</a> <a id="386c14" class="tk">re</a>;</td></tr>
+<tr name="387" id="387">
+<td><a id="l387" class='ln'>387</a></td><td>  <a id="387c3" class="tk">int1344m_T</a> <a id="387c14" class="tk">im</a>;</td></tr>
+<tr name="388" id="388">
+<td><a id="l388" class='ln'>388</a></td><td><span class="br">}</span> <a id="388c3" class="tk">cint1344m_T</a>;</td></tr>
+<tr name="389" id="389">
+<td><a id="l389" class='ln'>389</a></td><td></td></tr>
+<tr name="390" id="390">
+<td><a id="l390" class='ln'>390</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="391" id="391">
+<td><a id="l391" class='ln'>391</a></td><td>  <a id="391c3" class="tk">uint64_T</a> <a id="391c12" class="tk">chunks</a>[21];</td></tr>
+<tr name="392" id="392">
+<td><a id="l392" class='ln'>392</a></td><td><span class="br">}</span> <a id="392c3" class="tk">uint1344m_T</a>;</td></tr>
+<tr name="393" id="393">
+<td><a id="l393" class='ln'>393</a></td><td></td></tr>
+<tr name="394" id="394">
+<td><a id="l394" class='ln'>394</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="395" id="395">
+<td><a id="l395" class='ln'>395</a></td><td>  <a id="395c3" class="tk">uint1344m_T</a> <a id="395c15" class="tk">re</a>;</td></tr>
+<tr name="396" id="396">
+<td><a id="l396" class='ln'>396</a></td><td>  <a id="396c3" class="tk">uint1344m_T</a> <a id="396c15" class="tk">im</a>;</td></tr>
+<tr name="397" id="397">
+<td><a id="l397" class='ln'>397</a></td><td><span class="br">}</span> <a id="397c3" class="tk">cuint1344m_T</a>;</td></tr>
+<tr name="398" id="398">
+<td><a id="l398" class='ln'>398</a></td><td></td></tr>
+<tr name="399" id="399">
+<td><a id="l399" class='ln'>399</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="400" id="400">
+<td><a id="l400" class='ln'>400</a></td><td>  <a id="400c3" class="tk">uint64_T</a> <a id="400c12" class="tk">chunks</a>[22];</td></tr>
+<tr name="401" id="401">
+<td><a id="l401" class='ln'>401</a></td><td><span class="br">}</span> <a id="401c3" class="tk">int1408m_T</a>;</td></tr>
+<tr name="402" id="402">
+<td><a id="l402" class='ln'>402</a></td><td></td></tr>
+<tr name="403" id="403">
+<td><a id="l403" class='ln'>403</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="404" id="404">
+<td><a id="l404" class='ln'>404</a></td><td>  <a id="404c3" class="tk">int1408m_T</a> <a id="404c14" class="tk">re</a>;</td></tr>
+<tr name="405" id="405">
+<td><a id="l405" class='ln'>405</a></td><td>  <a id="405c3" class="tk">int1408m_T</a> <a id="405c14" class="tk">im</a>;</td></tr>
+<tr name="406" id="406">
+<td><a id="l406" class='ln'>406</a></td><td><span class="br">}</span> <a id="406c3" class="tk">cint1408m_T</a>;</td></tr>
+<tr name="407" id="407">
+<td><a id="l407" class='ln'>407</a></td><td></td></tr>
+<tr name="408" id="408">
+<td><a id="l408" class='ln'>408</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="409" id="409">
+<td><a id="l409" class='ln'>409</a></td><td>  <a id="409c3" class="tk">uint64_T</a> <a id="409c12" class="tk">chunks</a>[22];</td></tr>
+<tr name="410" id="410">
+<td><a id="l410" class='ln'>410</a></td><td><span class="br">}</span> <a id="410c3" class="tk">uint1408m_T</a>;</td></tr>
+<tr name="411" id="411">
+<td><a id="l411" class='ln'>411</a></td><td></td></tr>
+<tr name="412" id="412">
+<td><a id="l412" class='ln'>412</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="413" id="413">
+<td><a id="l413" class='ln'>413</a></td><td>  <a id="413c3" class="tk">uint1408m_T</a> <a id="413c15" class="tk">re</a>;</td></tr>
+<tr name="414" id="414">
+<td><a id="l414" class='ln'>414</a></td><td>  <a id="414c3" class="tk">uint1408m_T</a> <a id="414c15" class="tk">im</a>;</td></tr>
+<tr name="415" id="415">
+<td><a id="l415" class='ln'>415</a></td><td><span class="br">}</span> <a id="415c3" class="tk">cuint1408m_T</a>;</td></tr>
+<tr name="416" id="416">
+<td><a id="l416" class='ln'>416</a></td><td></td></tr>
+<tr name="417" id="417">
+<td><a id="l417" class='ln'>417</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="418" id="418">
+<td><a id="l418" class='ln'>418</a></td><td>  <a id="418c3" class="tk">uint64_T</a> <a id="418c12" class="tk">chunks</a>[23];</td></tr>
+<tr name="419" id="419">
+<td><a id="l419" class='ln'>419</a></td><td><span class="br">}</span> <a id="419c3" class="tk">int1472m_T</a>;</td></tr>
+<tr name="420" id="420">
+<td><a id="l420" class='ln'>420</a></td><td></td></tr>
+<tr name="421" id="421">
+<td><a id="l421" class='ln'>421</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="422" id="422">
+<td><a id="l422" class='ln'>422</a></td><td>  <a id="422c3" class="tk">int1472m_T</a> <a id="422c14" class="tk">re</a>;</td></tr>
+<tr name="423" id="423">
+<td><a id="l423" class='ln'>423</a></td><td>  <a id="423c3" class="tk">int1472m_T</a> <a id="423c14" class="tk">im</a>;</td></tr>
+<tr name="424" id="424">
+<td><a id="l424" class='ln'>424</a></td><td><span class="br">}</span> <a id="424c3" class="tk">cint1472m_T</a>;</td></tr>
+<tr name="425" id="425">
+<td><a id="l425" class='ln'>425</a></td><td></td></tr>
+<tr name="426" id="426">
+<td><a id="l426" class='ln'>426</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="427" id="427">
+<td><a id="l427" class='ln'>427</a></td><td>  <a id="427c3" class="tk">uint64_T</a> <a id="427c12" class="tk">chunks</a>[23];</td></tr>
+<tr name="428" id="428">
+<td><a id="l428" class='ln'>428</a></td><td><span class="br">}</span> <a id="428c3" class="tk">uint1472m_T</a>;</td></tr>
+<tr name="429" id="429">
+<td><a id="l429" class='ln'>429</a></td><td></td></tr>
+<tr name="430" id="430">
+<td><a id="l430" class='ln'>430</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="431" id="431">
+<td><a id="l431" class='ln'>431</a></td><td>  <a id="431c3" class="tk">uint1472m_T</a> <a id="431c15" class="tk">re</a>;</td></tr>
+<tr name="432" id="432">
+<td><a id="l432" class='ln'>432</a></td><td>  <a id="432c3" class="tk">uint1472m_T</a> <a id="432c15" class="tk">im</a>;</td></tr>
+<tr name="433" id="433">
+<td><a id="l433" class='ln'>433</a></td><td><span class="br">}</span> <a id="433c3" class="tk">cuint1472m_T</a>;</td></tr>
+<tr name="434" id="434">
+<td><a id="l434" class='ln'>434</a></td><td></td></tr>
+<tr name="435" id="435">
+<td><a id="l435" class='ln'>435</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="436" id="436">
+<td><a id="l436" class='ln'>436</a></td><td>  <a id="436c3" class="tk">uint64_T</a> <a id="436c12" class="tk">chunks</a>[24];</td></tr>
+<tr name="437" id="437">
+<td><a id="l437" class='ln'>437</a></td><td><span class="br">}</span> <a id="437c3" class="tk">int1536m_T</a>;</td></tr>
+<tr name="438" id="438">
+<td><a id="l438" class='ln'>438</a></td><td></td></tr>
+<tr name="439" id="439">
+<td><a id="l439" class='ln'>439</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="440" id="440">
+<td><a id="l440" class='ln'>440</a></td><td>  <a id="440c3" class="tk">int1536m_T</a> <a id="440c14" class="tk">re</a>;</td></tr>
+<tr name="441" id="441">
+<td><a id="l441" class='ln'>441</a></td><td>  <a id="441c3" class="tk">int1536m_T</a> <a id="441c14" class="tk">im</a>;</td></tr>
+<tr name="442" id="442">
+<td><a id="l442" class='ln'>442</a></td><td><span class="br">}</span> <a id="442c3" class="tk">cint1536m_T</a>;</td></tr>
+<tr name="443" id="443">
+<td><a id="l443" class='ln'>443</a></td><td></td></tr>
+<tr name="444" id="444">
+<td><a id="l444" class='ln'>444</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="445" id="445">
+<td><a id="l445" class='ln'>445</a></td><td>  <a id="445c3" class="tk">uint64_T</a> <a id="445c12" class="tk">chunks</a>[24];</td></tr>
+<tr name="446" id="446">
+<td><a id="l446" class='ln'>446</a></td><td><span class="br">}</span> <a id="446c3" class="tk">uint1536m_T</a>;</td></tr>
+<tr name="447" id="447">
+<td><a id="l447" class='ln'>447</a></td><td></td></tr>
+<tr name="448" id="448">
+<td><a id="l448" class='ln'>448</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="449" id="449">
+<td><a id="l449" class='ln'>449</a></td><td>  <a id="449c3" class="tk">uint1536m_T</a> <a id="449c15" class="tk">re</a>;</td></tr>
+<tr name="450" id="450">
+<td><a id="l450" class='ln'>450</a></td><td>  <a id="450c3" class="tk">uint1536m_T</a> <a id="450c15" class="tk">im</a>;</td></tr>
+<tr name="451" id="451">
+<td><a id="l451" class='ln'>451</a></td><td><span class="br">}</span> <a id="451c3" class="tk">cuint1536m_T</a>;</td></tr>
+<tr name="452" id="452">
+<td><a id="l452" class='ln'>452</a></td><td></td></tr>
+<tr name="453" id="453">
+<td><a id="l453" class='ln'>453</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="454" id="454">
+<td><a id="l454" class='ln'>454</a></td><td>  <a id="454c3" class="tk">uint64_T</a> <a id="454c12" class="tk">chunks</a>[25];</td></tr>
+<tr name="455" id="455">
+<td><a id="l455" class='ln'>455</a></td><td><span class="br">}</span> <a id="455c3" class="tk">int1600m_T</a>;</td></tr>
+<tr name="456" id="456">
+<td><a id="l456" class='ln'>456</a></td><td></td></tr>
+<tr name="457" id="457">
+<td><a id="l457" class='ln'>457</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="458" id="458">
+<td><a id="l458" class='ln'>458</a></td><td>  <a id="458c3" class="tk">int1600m_T</a> <a id="458c14" class="tk">re</a>;</td></tr>
+<tr name="459" id="459">
+<td><a id="l459" class='ln'>459</a></td><td>  <a id="459c3" class="tk">int1600m_T</a> <a id="459c14" class="tk">im</a>;</td></tr>
+<tr name="460" id="460">
+<td><a id="l460" class='ln'>460</a></td><td><span class="br">}</span> <a id="460c3" class="tk">cint1600m_T</a>;</td></tr>
+<tr name="461" id="461">
+<td><a id="l461" class='ln'>461</a></td><td></td></tr>
+<tr name="462" id="462">
+<td><a id="l462" class='ln'>462</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="463" id="463">
+<td><a id="l463" class='ln'>463</a></td><td>  <a id="463c3" class="tk">uint64_T</a> <a id="463c12" class="tk">chunks</a>[25];</td></tr>
+<tr name="464" id="464">
+<td><a id="l464" class='ln'>464</a></td><td><span class="br">}</span> <a id="464c3" class="tk">uint1600m_T</a>;</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="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="467" id="467">
+<td><a id="l467" class='ln'>467</a></td><td>  <a id="467c3" class="tk">uint1600m_T</a> <a id="467c15" class="tk">re</a>;</td></tr>
+<tr name="468" id="468">
+<td><a id="l468" class='ln'>468</a></td><td>  <a id="468c3" class="tk">uint1600m_T</a> <a id="468c15" class="tk">im</a>;</td></tr>
+<tr name="469" id="469">
+<td><a id="l469" class='ln'>469</a></td><td><span class="br">}</span> <a id="469c3" class="tk">cuint1600m_T</a>;</td></tr>
+<tr name="470" id="470">
+<td><a id="l470" class='ln'>470</a></td><td></td></tr>
+<tr name="471" id="471">
+<td><a id="l471" class='ln'>471</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="472" id="472">
+<td><a id="l472" class='ln'>472</a></td><td>  <a id="472c3" class="tk">uint64_T</a> <a id="472c12" class="tk">chunks</a>[26];</td></tr>
+<tr name="473" id="473">
+<td><a id="l473" class='ln'>473</a></td><td><span class="br">}</span> <a id="473c3" class="tk">int1664m_T</a>;</td></tr>
+<tr name="474" id="474">
+<td><a id="l474" class='ln'>474</a></td><td></td></tr>
+<tr name="475" id="475">
+<td><a id="l475" class='ln'>475</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="476" id="476">
+<td><a id="l476" class='ln'>476</a></td><td>  <a id="476c3" class="tk">int1664m_T</a> <a id="476c14" class="tk">re</a>;</td></tr>
+<tr name="477" id="477">
+<td><a id="l477" class='ln'>477</a></td><td>  <a id="477c3" class="tk">int1664m_T</a> <a id="477c14" class="tk">im</a>;</td></tr>
+<tr name="478" id="478">
+<td><a id="l478" class='ln'>478</a></td><td><span class="br">}</span> <a id="478c3" class="tk">cint1664m_T</a>;</td></tr>
+<tr name="479" id="479">
+<td><a id="l479" class='ln'>479</a></td><td></td></tr>
+<tr name="480" id="480">
+<td><a id="l480" class='ln'>480</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="481" id="481">
+<td><a id="l481" class='ln'>481</a></td><td>  <a id="481c3" class="tk">uint64_T</a> <a id="481c12" class="tk">chunks</a>[26];</td></tr>
+<tr name="482" id="482">
+<td><a id="l482" class='ln'>482</a></td><td><span class="br">}</span> <a id="482c3" class="tk">uint1664m_T</a>;</td></tr>
+<tr name="483" id="483">
+<td><a id="l483" class='ln'>483</a></td><td></td></tr>
+<tr name="484" id="484">
+<td><a id="l484" class='ln'>484</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="485" id="485">
+<td><a id="l485" class='ln'>485</a></td><td>  <a id="485c3" class="tk">uint1664m_T</a> <a id="485c15" class="tk">re</a>;</td></tr>
+<tr name="486" id="486">
+<td><a id="l486" class='ln'>486</a></td><td>  <a id="486c3" class="tk">uint1664m_T</a> <a id="486c15" class="tk">im</a>;</td></tr>
+<tr name="487" id="487">
+<td><a id="l487" class='ln'>487</a></td><td><span class="br">}</span> <a id="487c3" class="tk">cuint1664m_T</a>;</td></tr>
+<tr name="488" id="488">
+<td><a id="l488" class='ln'>488</a></td><td></td></tr>
+<tr name="489" id="489">
+<td><a id="l489" class='ln'>489</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="490" id="490">
+<td><a id="l490" class='ln'>490</a></td><td>  <a id="490c3" class="tk">uint64_T</a> <a id="490c12" class="tk">chunks</a>[27];</td></tr>
+<tr name="491" id="491">
+<td><a id="l491" class='ln'>491</a></td><td><span class="br">}</span> <a id="491c3" class="tk">int1728m_T</a>;</td></tr>
+<tr name="492" id="492">
+<td><a id="l492" class='ln'>492</a></td><td></td></tr>
+<tr name="493" id="493">
+<td><a id="l493" class='ln'>493</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="494" id="494">
+<td><a id="l494" class='ln'>494</a></td><td>  <a id="494c3" class="tk">int1728m_T</a> <a id="494c14" class="tk">re</a>;</td></tr>
+<tr name="495" id="495">
+<td><a id="l495" class='ln'>495</a></td><td>  <a id="495c3" class="tk">int1728m_T</a> <a id="495c14" class="tk">im</a>;</td></tr>
+<tr name="496" id="496">
+<td><a id="l496" class='ln'>496</a></td><td><span class="br">}</span> <a id="496c3" class="tk">cint1728m_T</a>;</td></tr>
+<tr name="497" id="497">
+<td><a id="l497" class='ln'>497</a></td><td></td></tr>
+<tr name="498" id="498">
+<td><a id="l498" class='ln'>498</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="499" id="499">
+<td><a id="l499" class='ln'>499</a></td><td>  <a id="499c3" class="tk">uint64_T</a> <a id="499c12" class="tk">chunks</a>[27];</td></tr>
+<tr name="500" id="500">
+<td><a id="l500" class='ln'>500</a></td><td><span class="br">}</span> <a id="500c3" class="tk">uint1728m_T</a>;</td></tr>
+<tr name="501" id="501">
+<td><a id="l501" class='ln'>501</a></td><td></td></tr>
+<tr name="502" id="502">
+<td><a id="l502" class='ln'>502</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="503" id="503">
+<td><a id="l503" class='ln'>503</a></td><td>  <a id="503c3" class="tk">uint1728m_T</a> <a id="503c15" class="tk">re</a>;</td></tr>
+<tr name="504" id="504">
+<td><a id="l504" class='ln'>504</a></td><td>  <a id="504c3" class="tk">uint1728m_T</a> <a id="504c15" class="tk">im</a>;</td></tr>
+<tr name="505" id="505">
+<td><a id="l505" class='ln'>505</a></td><td><span class="br">}</span> <a id="505c3" class="tk">cuint1728m_T</a>;</td></tr>
+<tr name="506" id="506">
+<td><a id="l506" class='ln'>506</a></td><td></td></tr>
+<tr name="507" id="507">
+<td><a id="l507" class='ln'>507</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="508" id="508">
+<td><a id="l508" class='ln'>508</a></td><td>  <a id="508c3" class="tk">uint64_T</a> <a id="508c12" class="tk">chunks</a>[28];</td></tr>
+<tr name="509" id="509">
+<td><a id="l509" class='ln'>509</a></td><td><span class="br">}</span> <a id="509c3" class="tk">int1792m_T</a>;</td></tr>
+<tr name="510" id="510">
+<td><a id="l510" class='ln'>510</a></td><td></td></tr>
+<tr name="511" id="511">
+<td><a id="l511" class='ln'>511</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="512" id="512">
+<td><a id="l512" class='ln'>512</a></td><td>  <a id="512c3" class="tk">int1792m_T</a> <a id="512c14" class="tk">re</a>;</td></tr>
+<tr name="513" id="513">
+<td><a id="l513" class='ln'>513</a></td><td>  <a id="513c3" class="tk">int1792m_T</a> <a id="513c14" class="tk">im</a>;</td></tr>
+<tr name="514" id="514">
+<td><a id="l514" class='ln'>514</a></td><td><span class="br">}</span> <a id="514c3" class="tk">cint1792m_T</a>;</td></tr>
+<tr name="515" id="515">
+<td><a id="l515" class='ln'>515</a></td><td></td></tr>
+<tr name="516" id="516">
+<td><a id="l516" class='ln'>516</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="517" id="517">
+<td><a id="l517" class='ln'>517</a></td><td>  <a id="517c3" class="tk">uint64_T</a> <a id="517c12" class="tk">chunks</a>[28];</td></tr>
+<tr name="518" id="518">
+<td><a id="l518" class='ln'>518</a></td><td><span class="br">}</span> <a id="518c3" class="tk">uint1792m_T</a>;</td></tr>
+<tr name="519" id="519">
+<td><a id="l519" class='ln'>519</a></td><td></td></tr>
+<tr name="520" id="520">
+<td><a id="l520" class='ln'>520</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="521" id="521">
+<td><a id="l521" class='ln'>521</a></td><td>  <a id="521c3" class="tk">uint1792m_T</a> <a id="521c15" class="tk">re</a>;</td></tr>
+<tr name="522" id="522">
+<td><a id="l522" class='ln'>522</a></td><td>  <a id="522c3" class="tk">uint1792m_T</a> <a id="522c15" class="tk">im</a>;</td></tr>
+<tr name="523" id="523">
+<td><a id="l523" class='ln'>523</a></td><td><span class="br">}</span> <a id="523c3" class="tk">cuint1792m_T</a>;</td></tr>
+<tr name="524" id="524">
+<td><a id="l524" class='ln'>524</a></td><td></td></tr>
+<tr name="525" id="525">
+<td><a id="l525" class='ln'>525</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="526" id="526">
+<td><a id="l526" class='ln'>526</a></td><td>  <a id="526c3" class="tk">uint64_T</a> <a id="526c12" class="tk">chunks</a>[29];</td></tr>
+<tr name="527" id="527">
+<td><a id="l527" class='ln'>527</a></td><td><span class="br">}</span> <a id="527c3" class="tk">int1856m_T</a>;</td></tr>
+<tr name="528" id="528">
+<td><a id="l528" class='ln'>528</a></td><td></td></tr>
+<tr name="529" id="529">
+<td><a id="l529" class='ln'>529</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="530" id="530">
+<td><a id="l530" class='ln'>530</a></td><td>  <a id="530c3" class="tk">int1856m_T</a> <a id="530c14" class="tk">re</a>;</td></tr>
+<tr name="531" id="531">
+<td><a id="l531" class='ln'>531</a></td><td>  <a id="531c3" class="tk">int1856m_T</a> <a id="531c14" class="tk">im</a>;</td></tr>
+<tr name="532" id="532">
+<td><a id="l532" class='ln'>532</a></td><td><span class="br">}</span> <a id="532c3" class="tk">cint1856m_T</a>;</td></tr>
+<tr name="533" id="533">
+<td><a id="l533" class='ln'>533</a></td><td></td></tr>
+<tr name="534" id="534">
+<td><a id="l534" class='ln'>534</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="535" id="535">
+<td><a id="l535" class='ln'>535</a></td><td>  <a id="535c3" class="tk">uint64_T</a> <a id="535c12" class="tk">chunks</a>[29];</td></tr>
+<tr name="536" id="536">
+<td><a id="l536" class='ln'>536</a></td><td><span class="br">}</span> <a id="536c3" class="tk">uint1856m_T</a>;</td></tr>
+<tr name="537" id="537">
+<td><a id="l537" class='ln'>537</a></td><td></td></tr>
+<tr name="538" id="538">
+<td><a id="l538" class='ln'>538</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="539" id="539">
+<td><a id="l539" class='ln'>539</a></td><td>  <a id="539c3" class="tk">uint1856m_T</a> <a id="539c15" class="tk">re</a>;</td></tr>
+<tr name="540" id="540">
+<td><a id="l540" class='ln'>540</a></td><td>  <a id="540c3" class="tk">uint1856m_T</a> <a id="540c15" class="tk">im</a>;</td></tr>
+<tr name="541" id="541">
+<td><a id="l541" class='ln'>541</a></td><td><span class="br">}</span> <a id="541c3" class="tk">cuint1856m_T</a>;</td></tr>
+<tr name="542" id="542">
+<td><a id="l542" class='ln'>542</a></td><td></td></tr>
+<tr name="543" id="543">
+<td><a id="l543" class='ln'>543</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="544" id="544">
+<td><a id="l544" class='ln'>544</a></td><td>  <a id="544c3" class="tk">uint64_T</a> <a id="544c12" class="tk">chunks</a>[30];</td></tr>
+<tr name="545" id="545">
+<td><a id="l545" class='ln'>545</a></td><td><span class="br">}</span> <a id="545c3" class="tk">int1920m_T</a>;</td></tr>
+<tr name="546" id="546">
+<td><a id="l546" class='ln'>546</a></td><td></td></tr>
+<tr name="547" id="547">
+<td><a id="l547" class='ln'>547</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="548" id="548">
+<td><a id="l548" class='ln'>548</a></td><td>  <a id="548c3" class="tk">int1920m_T</a> <a id="548c14" class="tk">re</a>;</td></tr>
+<tr name="549" id="549">
+<td><a id="l549" class='ln'>549</a></td><td>  <a id="549c3" class="tk">int1920m_T</a> <a id="549c14" class="tk">im</a>;</td></tr>
+<tr name="550" id="550">
+<td><a id="l550" class='ln'>550</a></td><td><span class="br">}</span> <a id="550c3" class="tk">cint1920m_T</a>;</td></tr>
+<tr name="551" id="551">
+<td><a id="l551" class='ln'>551</a></td><td></td></tr>
+<tr name="552" id="552">
+<td><a id="l552" class='ln'>552</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="553" id="553">
+<td><a id="l553" class='ln'>553</a></td><td>  <a id="553c3" class="tk">uint64_T</a> <a id="553c12" class="tk">chunks</a>[30];</td></tr>
+<tr name="554" id="554">
+<td><a id="l554" class='ln'>554</a></td><td><span class="br">}</span> <a id="554c3" class="tk">uint1920m_T</a>;</td></tr>
+<tr name="555" id="555">
+<td><a id="l555" class='ln'>555</a></td><td></td></tr>
+<tr name="556" id="556">
+<td><a id="l556" class='ln'>556</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="557" id="557">
+<td><a id="l557" class='ln'>557</a></td><td>  <a id="557c3" class="tk">uint1920m_T</a> <a id="557c15" class="tk">re</a>;</td></tr>
+<tr name="558" id="558">
+<td><a id="l558" class='ln'>558</a></td><td>  <a id="558c3" class="tk">uint1920m_T</a> <a id="558c15" class="tk">im</a>;</td></tr>
+<tr name="559" id="559">
+<td><a id="l559" class='ln'>559</a></td><td><span class="br">}</span> <a id="559c3" class="tk">cuint1920m_T</a>;</td></tr>
+<tr name="560" id="560">
+<td><a id="l560" class='ln'>560</a></td><td></td></tr>
+<tr name="561" id="561">
+<td><a id="l561" class='ln'>561</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="562" id="562">
+<td><a id="l562" class='ln'>562</a></td><td>  <a id="562c3" class="tk">uint64_T</a> <a id="562c12" class="tk">chunks</a>[31];</td></tr>
+<tr name="563" id="563">
+<td><a id="l563" class='ln'>563</a></td><td><span class="br">}</span> <a id="563c3" class="tk">int1984m_T</a>;</td></tr>
+<tr name="564" id="564">
+<td><a id="l564" class='ln'>564</a></td><td></td></tr>
+<tr name="565" id="565">
+<td><a id="l565" class='ln'>565</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="566" id="566">
+<td><a id="l566" class='ln'>566</a></td><td>  <a id="566c3" class="tk">int1984m_T</a> <a id="566c14" class="tk">re</a>;</td></tr>
+<tr name="567" id="567">
+<td><a id="l567" class='ln'>567</a></td><td>  <a id="567c3" class="tk">int1984m_T</a> <a id="567c14" class="tk">im</a>;</td></tr>
+<tr name="568" id="568">
+<td><a id="l568" class='ln'>568</a></td><td><span class="br">}</span> <a id="568c3" class="tk">cint1984m_T</a>;</td></tr>
+<tr name="569" id="569">
+<td><a id="l569" class='ln'>569</a></td><td></td></tr>
+<tr name="570" id="570">
+<td><a id="l570" class='ln'>570</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="571" id="571">
+<td><a id="l571" class='ln'>571</a></td><td>  <a id="571c3" class="tk">uint64_T</a> <a id="571c12" class="tk">chunks</a>[31];</td></tr>
+<tr name="572" id="572">
+<td><a id="l572" class='ln'>572</a></td><td><span class="br">}</span> <a id="572c3" class="tk">uint1984m_T</a>;</td></tr>
+<tr name="573" id="573">
+<td><a id="l573" class='ln'>573</a></td><td></td></tr>
+<tr name="574" id="574">
+<td><a id="l574" class='ln'>574</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="575" id="575">
+<td><a id="l575" class='ln'>575</a></td><td>  <a id="575c3" class="tk">uint1984m_T</a> <a id="575c15" class="tk">re</a>;</td></tr>
+<tr name="576" id="576">
+<td><a id="l576" class='ln'>576</a></td><td>  <a id="576c3" class="tk">uint1984m_T</a> <a id="576c15" class="tk">im</a>;</td></tr>
+<tr name="577" id="577">
+<td><a id="l577" class='ln'>577</a></td><td><span class="br">}</span> <a id="577c3" class="tk">cuint1984m_T</a>;</td></tr>
+<tr name="578" id="578">
+<td><a id="l578" class='ln'>578</a></td><td></td></tr>
+<tr name="579" id="579">
+<td><a id="l579" class='ln'>579</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="580" id="580">
+<td><a id="l580" class='ln'>580</a></td><td>  <a id="580c3" class="tk">uint64_T</a> <a id="580c12" class="tk">chunks</a>[32];</td></tr>
+<tr name="581" id="581">
+<td><a id="l581" class='ln'>581</a></td><td><span class="br">}</span> <a id="581c3" class="tk">int2048m_T</a>;</td></tr>
+<tr name="582" id="582">
+<td><a id="l582" class='ln'>582</a></td><td></td></tr>
+<tr name="583" id="583">
+<td><a id="l583" class='ln'>583</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="584" id="584">
+<td><a id="l584" class='ln'>584</a></td><td>  <a id="584c3" class="tk">int2048m_T</a> <a id="584c14" class="tk">re</a>;</td></tr>
+<tr name="585" id="585">
+<td><a id="l585" class='ln'>585</a></td><td>  <a id="585c3" class="tk">int2048m_T</a> <a id="585c14" class="tk">im</a>;</td></tr>
+<tr name="586" id="586">
+<td><a id="l586" class='ln'>586</a></td><td><span class="br">}</span> <a id="586c3" class="tk">cint2048m_T</a>;</td></tr>
+<tr name="587" id="587">
+<td><a id="l587" class='ln'>587</a></td><td></td></tr>
+<tr name="588" id="588">
+<td><a id="l588" class='ln'>588</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="589" id="589">
+<td><a id="l589" class='ln'>589</a></td><td>  <a id="589c3" class="tk">uint64_T</a> <a id="589c12" class="tk">chunks</a>[32];</td></tr>
+<tr name="590" id="590">
+<td><a id="l590" class='ln'>590</a></td><td><span class="br">}</span> <a id="590c3" class="tk">uint2048m_T</a>;</td></tr>
+<tr name="591" id="591">
+<td><a id="l591" class='ln'>591</a></td><td></td></tr>
+<tr name="592" id="592">
+<td><a id="l592" class='ln'>592</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="593" id="593">
+<td><a id="l593" class='ln'>593</a></td><td>  <a id="593c3" class="tk">uint2048m_T</a> <a id="593c15" class="tk">re</a>;</td></tr>
+<tr name="594" id="594">
+<td><a id="l594" class='ln'>594</a></td><td>  <a id="594c3" class="tk">uint2048m_T</a> <a id="594c15" class="tk">im</a>;</td></tr>
+<tr name="595" id="595">
+<td><a id="l595" class='ln'>595</a></td><td><span class="br">}</span> <a id="595c3" class="tk">cuint2048m_T</a>;</td></tr>
+<tr name="596" id="596">
+<td><a id="l596" class='ln'>596</a></td><td></td></tr>
+<tr name="597" id="597">
+<td><a id="l597" class='ln'>597</a></td><td><span class="pp">#endif</span>                                 <span class="ct">/* MULTIWORD_TYPES_H */</span></td></tr>
+<tr name="598" id="598">
+<td><a id="l598" class='ln'>598</a></td><td></td></tr>
+</table>
+</pre>
+</body>
+</html>

+ 14 - 0
Simulink/PMSM_Motor_TL3_sfcn_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/PMSM_Motor_TL3_sfcn_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
+-->

+ 306 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/html/rtGetInf_c.html

@@ -0,0 +1,306 @@
+<!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"> * rtGetInf.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 generation for model "PMSM_Motor_TL3_sf".</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.825</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 source code generated on : Fri Apr 14 12:51:02 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: rtwsfcn.tlc</span></td></tr>
+<tr name="11" id="11">
+<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
+<tr name="12" id="12">
+<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * Embedded hardware selection: ARM Compatible-&gt;ARM Cortex-M</span></td></tr>
+<tr name="13" id="13">
+<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> * Emulation hardware selection:</span></td></tr>
+<tr name="14" id="14">
+<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> *    Differs from embedded hardware (MATLAB Host)</span></td></tr>
+<tr name="15" id="15">
+<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Code generation objectives:</span></td></tr>
+<tr name="16" id="16">
+<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> *    1. Execution efficiency</span></td></tr>
+<tr name="17" id="17">
+<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> *    2. RAM efficiency</span></td></tr>
+<tr name="18" id="18">
+<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
+<tr name="19" id="19">
+<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> */</span></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">/*</span></td></tr>
+<tr name="22" id="22">
+<td><a id="l22" class='ln'>22</a></td><td><span class="ct"> * Abstract:</span></td></tr>
+<tr name="23" id="23">
+<td><a id="l23" class='ln'>23</a></td><td><span class="ct"> *      Function to initialize non-finite, Inf</span></td></tr>
+<tr name="24" id="24">
+<td><a id="l24" class='ln'>24</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="25" id="25">
+<td><a id="l25" class='ln'>25</a></td><td><span class="pp">#include "rtGetInf.h"</span></td></tr>
+<tr name="26" id="26">
+<td><a id="l26" class='ln'>26</a></td><td><span class="pp">#define</span> <a id="26c9" class="tk">NumBitsPerChar</a>                 8U</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">/*</span></td></tr>
+<tr name="29" id="29">
+<td><a id="l29" class='ln'>29</a></td><td><span class="ct"> * Initialize rtInf needed by the generated code.</span></td></tr>
+<tr name="30" id="30">
+<td><a id="l30" class='ln'>30</a></td><td><span class="ct"> * Inf is initialized as non-signaling. Assumes IEEE.</span></td></tr>
+<tr name="31" id="31">
+<td><a id="l31" class='ln'>31</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="32" id="32">
+<td><a id="l32" class='ln'>32</a></td><td><a id="32c1" class="tk">real_T</a> <a id="32c8" class="tk">rtGetInf</a>(<span class="kw">void</span>)</td></tr>
+<tr name="33" id="33">
+<td><a id="l33" class='ln'>33</a></td><td><span class="br">{</span></td></tr>
+<tr name="34" id="34">
+<td><a id="l34" class='ln'>34</a></td><td>  <a id="34c3" class="tk">size_t</a> <a id="34c10" class="tk">bitsPerReal</a> = <span class="kw">sizeof</span>(<a id="34c31" class="tk">real_T</a>) <a id="34c39" class="tk">*</a> (<a id="34c42" class="tk">NumBitsPerChar</a>);</td></tr>
+<tr name="35" id="35">
+<td><a id="l35" class='ln'>35</a></td><td>  <a id="35c3" class="tk">real_T</a> <a id="35c10" class="tk">inf</a> = 0.0;</td></tr>
+<tr name="36" id="36">
+<td><a id="l36" class='ln'>36</a></td><td>  <span class="kw">if</span> (<a id="36c7" class="tk">bitsPerReal</a> <a id="36c19" class="tk">==</a> 32U) <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">inf</a> = <a id="37c11" class="tk">rtGetInfF</a>();</td></tr>
+<tr name="38" id="38">
+<td><a id="l38" class='ln'>38</a></td><td>  <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="39" id="39">
+<td><a id="l39" class='ln'>39</a></td><td>    <a id="39c5" class="tk">uint16_T</a> <a id="39c14" class="tk">one</a> = 1U;</td></tr>
+<tr name="40" id="40">
+<td><a id="l40" class='ln'>40</a></td><td>    <span class="kw">enum</span> <span class="br">{</span></td></tr>
+<tr name="41" id="41">
+<td><a id="l41" class='ln'>41</a></td><td>      <a id="41c7" class="tk">LittleEndian</a>,</td></tr>
+<tr name="42" id="42">
+<td><a id="l42" class='ln'>42</a></td><td>      <a id="42c7" class="tk">BigEndian</a></td></tr>
+<tr name="43" id="43">
+<td><a id="l43" class='ln'>43</a></td><td>    <span class="br">}</span> <a id="43c7" class="tk">machByteOrder</a> = (<a id="43c24" class="tk">*</a>((<a id="43c27" class="tk">uint8_T</a> <a id="43c35" class="tk">*</a>) <a id="43c38" class="tk">&amp;</a><a id="43c39" class="tk">one</a>) <a id="43c44" class="tk">==</a> 1U) <a id="43c51" class="tk">?</a> <a id="43c53" class="tk">LittleEndian</a> <a id="43c66" class="tk">:</a> <a id="43c68" class="tk">BigEndian</a>;</td></tr>
+<tr name="44" id="44">
+<td><a id="l44" class='ln'>44</a></td><td>    <span class="kw">switch</span> (<a id="44c13" class="tk">machByteOrder</a>) <span class="br">{</span></td></tr>
+<tr name="45" id="45">
+<td><a id="l45" class='ln'>45</a></td><td>     <span class="kw">case</span> <a id="45c11" class="tk">LittleEndian</a><a id="45c23" class="tk">:</a></td></tr>
+<tr name="46" id="46">
+<td><a id="l46" class='ln'>46</a></td><td>      <span class="br">{</span></td></tr>
+<tr name="47" id="47">
+<td><a id="l47" class='ln'>47</a></td><td>        <span class="kw">union</span> <span class="br">{</span></td></tr>
+<tr name="48" id="48">
+<td><a id="l48" class='ln'>48</a></td><td>          <a id="48c11" class="tk">LittleEndianIEEEDouble</a> <a id="48c34" class="tk">bitVal</a>;</td></tr>
+<tr name="49" id="49">
+<td><a id="l49" class='ln'>49</a></td><td>          <a id="49c11" class="tk">real_T</a> <a id="49c18" class="tk">fltVal</a>;</td></tr>
+<tr name="50" id="50">
+<td><a id="l50" class='ln'>50</a></td><td>        <span class="br">}</span> <a id="50c11" class="tk">tmpVal</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>        <a id="52c9" class="tk">tmpVal</a>.<a id="52c16" class="tk">bitVal</a>.<a id="52c23" class="tk">words</a>.<a id="52c29" class="tk">wordH</a> = 0x7FF00000U;</td></tr>
+<tr name="53" id="53">
+<td><a id="l53" class='ln'>53</a></td><td>        <a id="53c9" class="tk">tmpVal</a>.<a id="53c16" class="tk">bitVal</a>.<a id="53c23" class="tk">words</a>.<a id="53c29" class="tk">wordL</a> = 0x00000000U;</td></tr>
+<tr name="54" id="54">
+<td><a id="l54" class='ln'>54</a></td><td>        <a id="54c9" class="tk">inf</a> = <a id="54c15" class="tk">tmpVal</a>.<a id="54c22" class="tk">fltVal</a>;</td></tr>
+<tr name="55" id="55">
+<td><a id="l55" class='ln'>55</a></td><td>        <span class="kw">break</span>;</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="kw">case</span> <a id="58c11" class="tk">BigEndian</a><a id="58c20" class="tk">:</a></td></tr>
+<tr name="59" id="59">
+<td><a id="l59" class='ln'>59</a></td><td>      <span class="br">{</span></td></tr>
+<tr name="60" id="60">
+<td><a id="l60" class='ln'>60</a></td><td>        <span class="kw">union</span> <span class="br">{</span></td></tr>
+<tr name="61" id="61">
+<td><a id="l61" class='ln'>61</a></td><td>          <a id="61c11" class="tk">BigEndianIEEEDouble</a> <a id="61c31" class="tk">bitVal</a>;</td></tr>
+<tr name="62" id="62">
+<td><a id="l62" class='ln'>62</a></td><td>          <a id="62c11" class="tk">real_T</a> <a id="62c18" class="tk">fltVal</a>;</td></tr>
+<tr name="63" id="63">
+<td><a id="l63" class='ln'>63</a></td><td>        <span class="br">}</span> <a id="63c11" class="tk">tmpVal</a>;</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>        <a id="65c9" class="tk">tmpVal</a>.<a id="65c16" class="tk">bitVal</a>.<a id="65c23" class="tk">words</a>.<a id="65c29" class="tk">wordH</a> = 0x7FF00000U;</td></tr>
+<tr name="66" id="66">
+<td><a id="l66" class='ln'>66</a></td><td>        <a id="66c9" class="tk">tmpVal</a>.<a id="66c16" class="tk">bitVal</a>.<a id="66c23" class="tk">words</a>.<a id="66c29" class="tk">wordL</a> = 0x00000000U;</td></tr>
+<tr name="67" id="67">
+<td><a id="l67" class='ln'>67</a></td><td>        <a id="67c9" class="tk">inf</a> = <a id="67c15" class="tk">tmpVal</a>.<a id="67c22" class="tk">fltVal</a>;</td></tr>
+<tr name="68" id="68">
+<td><a id="l68" class='ln'>68</a></td><td>        <span class="kw">break</span>;</td></tr>
+<tr name="69" id="69">
+<td><a id="l69" class='ln'>69</a></td><td>      <span class="br">}</span></td></tr>
+<tr name="70" id="70">
+<td><a id="l70" class='ln'>70</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="71" id="71">
+<td><a id="l71" class='ln'>71</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="72" id="72">
+<td><a id="l72" class='ln'>72</a></td><td></td></tr>
+<tr name="73" id="73">
+<td><a id="l73" class='ln'>73</a></td><td>  <span class="kw">return</span> <a id="73c10" class="tk">inf</a>;</td></tr>
+<tr name="74" id="74">
+<td><a id="l74" class='ln'>74</a></td><td><span class="br">}</span></td></tr>
+<tr name="75" id="75">
+<td><a id="l75" class='ln'>75</a></td><td></td></tr>
+<tr name="76" id="76">
+<td><a id="l76" class='ln'>76</a></td><td><span class="ct">/*</span></td></tr>
+<tr name="77" id="77">
+<td><a id="l77" class='ln'>77</a></td><td><span class="ct"> * Initialize rtInfF needed by the generated code.</span></td></tr>
+<tr name="78" id="78">
+<td><a id="l78" class='ln'>78</a></td><td><span class="ct"> * Inf is initialized as non-signaling. Assumes IEEE.</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><a id="80c1" class="tk">real32_T</a> <a id="80c10" class="tk">rtGetInfF</a>(<span class="kw">void</span>)</td></tr>
+<tr name="81" id="81">
+<td><a id="l81" class='ln'>81</a></td><td><span class="br">{</span></td></tr>
+<tr name="82" id="82">
+<td><a id="l82" class='ln'>82</a></td><td>  <a id="82c3" class="tk">IEEESingle</a> <a id="82c14" class="tk">infF</a>;</td></tr>
+<tr name="83" id="83">
+<td><a id="l83" class='ln'>83</a></td><td>  <a id="83c3" class="tk">infF</a>.<a id="83c8" class="tk">wordL</a>.<a id="83c14" class="tk">wordLuint</a> = 0x7F800000U;</td></tr>
+<tr name="84" id="84">
+<td><a id="l84" class='ln'>84</a></td><td>  <span class="kw">return</span> <a id="84c10" class="tk">infF</a>.<a id="84c15" class="tk">wordL</a>.<a id="84c21" class="tk">wordLreal</a>;</td></tr>
+<tr name="85" id="85">
+<td><a id="l85" class='ln'>85</a></td><td><span class="br">}</span></td></tr>
+<tr name="86" id="86">
+<td><a id="l86" class='ln'>86</a></td><td></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><span class="ct"> * Initialize rtMinusInf needed by the generated code.</span></td></tr>
+<tr name="89" id="89">
+<td><a id="l89" class='ln'>89</a></td><td><span class="ct"> * Inf is initialized as non-signaling. Assumes IEEE.</span></td></tr>
+<tr name="90" id="90">
+<td><a id="l90" class='ln'>90</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="91" id="91">
+<td><a id="l91" class='ln'>91</a></td><td><a id="91c1" class="tk">real_T</a> <a id="91c8" class="tk">rtGetMinusInf</a>(<span class="kw">void</span>)</td></tr>
+<tr name="92" id="92">
+<td><a id="l92" class='ln'>92</a></td><td><span class="br">{</span></td></tr>
+<tr name="93" id="93">
+<td><a id="l93" class='ln'>93</a></td><td>  <a id="93c3" class="tk">size_t</a> <a id="93c10" class="tk">bitsPerReal</a> = <span class="kw">sizeof</span>(<a id="93c31" class="tk">real_T</a>) <a id="93c39" class="tk">*</a> (<a id="93c42" class="tk">NumBitsPerChar</a>);</td></tr>
+<tr name="94" id="94">
+<td><a id="l94" class='ln'>94</a></td><td>  <a id="94c3" class="tk">real_T</a> <a id="94c10" class="tk">minf</a> = 0.0;</td></tr>
+<tr name="95" id="95">
+<td><a id="l95" class='ln'>95</a></td><td>  <span class="kw">if</span> (<a id="95c7" class="tk">bitsPerReal</a> <a id="95c19" class="tk">==</a> 32U) <span class="br">{</span></td></tr>
+<tr name="96" id="96">
+<td><a id="l96" class='ln'>96</a></td><td>    <a id="96c5" class="tk">minf</a> = <a id="96c12" class="tk">rtGetMinusInfF</a>();</td></tr>
+<tr name="97" id="97">
+<td><a id="l97" class='ln'>97</a></td><td>  <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="98" id="98">
+<td><a id="l98" class='ln'>98</a></td><td>    <a id="98c5" class="tk">uint16_T</a> <a id="98c14" class="tk">one</a> = 1U;</td></tr>
+<tr name="99" id="99">
+<td><a id="l99" class='ln'>99</a></td><td>    <span class="kw">enum</span> <span class="br">{</span></td></tr>
+<tr name="100" id="100">
+<td><a id="l100" class='ln'>100</a></td><td>      <a id="100c7" class="tk">LittleEndian</a>,</td></tr>
+<tr name="101" id="101">
+<td><a id="l101" class='ln'>101</a></td><td>      <a id="101c7" class="tk">BigEndian</a></td></tr>
+<tr name="102" id="102">
+<td><a id="l102" class='ln'>102</a></td><td>    <span class="br">}</span> <a id="102c7" class="tk">machByteOrder</a> = (<a id="102c24" class="tk">*</a>((<a id="102c27" class="tk">uint8_T</a> <a id="102c35" class="tk">*</a>) <a id="102c38" class="tk">&amp;</a><a id="102c39" class="tk">one</a>) <a id="102c44" class="tk">==</a> 1U) <a id="102c51" class="tk">?</a> <a id="102c53" class="tk">LittleEndian</a> <a id="102c66" class="tk">:</a> <a id="102c68" class="tk">BigEndian</a>;</td></tr>
+<tr name="103" id="103">
+<td><a id="l103" class='ln'>103</a></td><td>    <span class="kw">switch</span> (<a id="103c13" class="tk">machByteOrder</a>) <span class="br">{</span></td></tr>
+<tr name="104" id="104">
+<td><a id="l104" class='ln'>104</a></td><td>     <span class="kw">case</span> <a id="104c11" class="tk">LittleEndian</a><a id="104c23" class="tk">:</a></td></tr>
+<tr name="105" id="105">
+<td><a id="l105" class='ln'>105</a></td><td>      <span class="br">{</span></td></tr>
+<tr name="106" id="106">
+<td><a id="l106" class='ln'>106</a></td><td>        <span class="kw">union</span> <span class="br">{</span></td></tr>
+<tr name="107" id="107">
+<td><a id="l107" class='ln'>107</a></td><td>          <a id="107c11" class="tk">LittleEndianIEEEDouble</a> <a id="107c34" class="tk">bitVal</a>;</td></tr>
+<tr name="108" id="108">
+<td><a id="l108" class='ln'>108</a></td><td>          <a id="108c11" class="tk">real_T</a> <a id="108c18" class="tk">fltVal</a>;</td></tr>
+<tr name="109" id="109">
+<td><a id="l109" class='ln'>109</a></td><td>        <span class="br">}</span> <a id="109c11" class="tk">tmpVal</a>;</td></tr>
+<tr name="110" id="110">
+<td><a id="l110" class='ln'>110</a></td><td></td></tr>
+<tr name="111" id="111">
+<td><a id="l111" class='ln'>111</a></td><td>        <a id="111c9" class="tk">tmpVal</a>.<a id="111c16" class="tk">bitVal</a>.<a id="111c23" class="tk">words</a>.<a id="111c29" class="tk">wordH</a> = 0xFFF00000U;</td></tr>
+<tr name="112" id="112">
+<td><a id="l112" class='ln'>112</a></td><td>        <a id="112c9" class="tk">tmpVal</a>.<a id="112c16" class="tk">bitVal</a>.<a id="112c23" class="tk">words</a>.<a id="112c29" class="tk">wordL</a> = 0x00000000U;</td></tr>
+<tr name="113" id="113">
+<td><a id="l113" class='ln'>113</a></td><td>        <a id="113c9" class="tk">minf</a> = <a id="113c16" class="tk">tmpVal</a>.<a id="113c23" class="tk">fltVal</a>;</td></tr>
+<tr name="114" id="114">
+<td><a id="l114" class='ln'>114</a></td><td>        <span class="kw">break</span>;</td></tr>
+<tr name="115" id="115">
+<td><a id="l115" class='ln'>115</a></td><td>      <span class="br">}</span></td></tr>
+<tr name="116" id="116">
+<td><a id="l116" class='ln'>116</a></td><td></td></tr>
+<tr name="117" id="117">
+<td><a id="l117" class='ln'>117</a></td><td>     <span class="kw">case</span> <a id="117c11" class="tk">BigEndian</a><a id="117c20" class="tk">:</a></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>        <span class="kw">union</span> <span class="br">{</span></td></tr>
+<tr name="120" id="120">
+<td><a id="l120" class='ln'>120</a></td><td>          <a id="120c11" class="tk">BigEndianIEEEDouble</a> <a id="120c31" class="tk">bitVal</a>;</td></tr>
+<tr name="121" id="121">
+<td><a id="l121" class='ln'>121</a></td><td>          <a id="121c11" class="tk">real_T</a> <a id="121c18" class="tk">fltVal</a>;</td></tr>
+<tr name="122" id="122">
+<td><a id="l122" class='ln'>122</a></td><td>        <span class="br">}</span> <a id="122c11" class="tk">tmpVal</a>;</td></tr>
+<tr name="123" id="123">
+<td><a id="l123" class='ln'>123</a></td><td></td></tr>
+<tr name="124" id="124">
+<td><a id="l124" class='ln'>124</a></td><td>        <a id="124c9" class="tk">tmpVal</a>.<a id="124c16" class="tk">bitVal</a>.<a id="124c23" class="tk">words</a>.<a id="124c29" class="tk">wordH</a> = 0xFFF00000U;</td></tr>
+<tr name="125" id="125">
+<td><a id="l125" class='ln'>125</a></td><td>        <a id="125c9" class="tk">tmpVal</a>.<a id="125c16" class="tk">bitVal</a>.<a id="125c23" class="tk">words</a>.<a id="125c29" class="tk">wordL</a> = 0x00000000U;</td></tr>
+<tr name="126" id="126">
+<td><a id="l126" class='ln'>126</a></td><td>        <a id="126c9" class="tk">minf</a> = <a id="126c16" class="tk">tmpVal</a>.<a id="126c23" class="tk">fltVal</a>;</td></tr>
+<tr name="127" id="127">
+<td><a id="l127" class='ln'>127</a></td><td>        <span class="kw">break</span>;</td></tr>
+<tr name="128" id="128">
+<td><a id="l128" class='ln'>128</a></td><td>      <span class="br">}</span></td></tr>
+<tr name="129" id="129">
+<td><a id="l129" class='ln'>129</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="130" id="130">
+<td><a id="l130" class='ln'>130</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="131" id="131">
+<td><a id="l131" class='ln'>131</a></td><td></td></tr>
+<tr name="132" id="132">
+<td><a id="l132" class='ln'>132</a></td><td>  <span class="kw">return</span> <a id="132c10" class="tk">minf</a>;</td></tr>
+<tr name="133" id="133">
+<td><a id="l133" class='ln'>133</a></td><td><span class="br">}</span></td></tr>
+<tr name="134" id="134">
+<td><a id="l134" class='ln'>134</a></td><td></td></tr>
+<tr name="135" id="135">
+<td><a id="l135" class='ln'>135</a></td><td><span class="ct">/*</span></td></tr>
+<tr name="136" id="136">
+<td><a id="l136" class='ln'>136</a></td><td><span class="ct"> * Initialize rtMinusInfF needed by the generated code.</span></td></tr>
+<tr name="137" id="137">
+<td><a id="l137" class='ln'>137</a></td><td><span class="ct"> * Inf is initialized as non-signaling. Assumes IEEE.</span></td></tr>
+<tr name="138" id="138">
+<td><a id="l138" class='ln'>138</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="139" id="139">
+<td><a id="l139" class='ln'>139</a></td><td><a id="139c1" class="tk">real32_T</a> <a id="139c10" class="tk">rtGetMinusInfF</a>(<span class="kw">void</span>)</td></tr>
+<tr name="140" id="140">
+<td><a id="l140" class='ln'>140</a></td><td><span class="br">{</span></td></tr>
+<tr name="141" id="141">
+<td><a id="l141" class='ln'>141</a></td><td>  <a id="141c3" class="tk">IEEESingle</a> <a id="141c14" class="tk">minfF</a>;</td></tr>
+<tr name="142" id="142">
+<td><a id="l142" class='ln'>142</a></td><td>  <a id="142c3" class="tk">minfF</a>.<a id="142c9" class="tk">wordL</a>.<a id="142c15" class="tk">wordLuint</a> = 0xFF800000U;</td></tr>
+<tr name="143" id="143">
+<td><a id="l143" class='ln'>143</a></td><td>  <span class="kw">return</span> <a id="143c10" class="tk">minfF</a>.<a id="143c16" class="tk">wordL</a>.<a id="143c22" class="tk">wordLreal</a>;</td></tr>
+<tr name="144" id="144">
+<td><a id="l144" class='ln'>144</a></td><td><span class="br">}</span></td></tr>
+<tr name="145" id="145">
+<td><a id="l145" class='ln'>145</a></td><td></td></tr>
+</table>
+</pre>
+</body>
+</html>

+ 184 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/html/rtGetInf_h.html

@@ -0,0 +1,184 @@
+<!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></td></tr>
+<tr name="2" id="2">
+<td><a id="l2" class='ln'>2</a></td><td></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">  * rtGetInf.h</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">    * Code generation for model "PMSM_Motor_TL3_sf".</span></td></tr>
+<tr name="7" id="7">
+<td><a id="l7" class='ln'>7</a></td><td><span class="ct">  *</span></td></tr>
+<tr name="8" id="8">
+<td><a id="l8" class='ln'>8</a></td><td><span class="ct">  * Model version              : 1.825</span></td></tr>
+<tr name="9" id="9">
+<td><a id="l9" class='ln'>9</a></td><td><span class="ct">  * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020</span></td></tr>
+<tr name="10" id="10">
+<td><a id="l10" class='ln'>10</a></td><td><span class="ct">  * C source code generated on : Fri Apr 14 12:51:02 2023</span></td></tr>
+<tr name="11" id="11">
+<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * </span></td></tr>
+<tr name="12" id="12">
+<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * Target selection: rtwsfcn.tlc</span></td></tr>
+<tr name="13" id="13">
+<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
+<tr name="14" id="14">
+<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> * Embedded hardware selection: ARM Compatible-&gt;ARM Cortex-M</span></td></tr>
+<tr name="15" id="15">
+<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Emulation hardware selection: </span></td></tr>
+<tr name="16" id="16">
+<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> *    Differs from embedded hardware (MATLAB Host)</span></td></tr>
+<tr name="17" id="17">
+<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> * Code generation objectives: </span></td></tr>
+<tr name="18" id="18">
+<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> *    1. Execution efficiency</span></td></tr>
+<tr name="19" id="19">
+<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> *    2. RAM efficiency</span></td></tr>
+<tr name="20" id="20">
+<td><a id="l20" class='ln'>20</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
+<tr name="21" id="21">
+<td><a id="l21" class='ln'>21</a></td><td><span class="ct">  */</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></td></tr>
+<tr name="24" id="24">
+<td><a id="l24" class='ln'>24</a></td><td>  <span class="pp">#ifndef</span> <a id="24c11" class="tk">RTW_HEADER_rtGetInf_h_</a></td></tr>
+<tr name="25" id="25">
+<td><a id="l25" class='ln'>25</a></td><td>  <span class="pp">#define</span> <a id="25c11" class="tk">RTW_HEADER_rtGetInf_h_</a></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></td></tr>
+<tr name="28" id="28">
+<td><a id="l28" class='ln'>28</a></td><td>    </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>  </td></tr>
+<tr name="31" id="31">
+<td><a id="l31" class='ln'>31</a></td><td><span class="pp">#include &lt;stddef.h&gt;</span></td></tr>
+<tr name="32" id="32">
+<td><a id="l32" class='ln'>32</a></td><td>  <span class="pp">#include "rtwtypes.h"</span></td></tr>
+<tr name="33" id="33">
+<td><a id="l33" class='ln'>33</a></td><td>  <span class="pp">#include "rt_nonfinite.h"</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></td></tr>
+<tr name="36" id="36">
+<td><a id="l36" class='ln'>36</a></td><td></td></tr>
+<tr name="37" id="37">
+<td><a id="l37" class='ln'>37</a></td><td>  </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>  </td></tr>
+<tr name="40" id="40">
+<td><a id="l40" class='ln'>40</a></td><td></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></td></tr>
+<tr name="43" id="43">
+<td><a id="l43" class='ln'>43</a></td><td>  </td></tr>
+<tr name="44" id="44">
+<td><a id="l44" class='ln'>44</a></td><td></td></tr>
+<tr name="45" id="45">
+<td><a id="l45" class='ln'>45</a></td><td>  </td></tr>
+<tr name="46" id="46">
+<td><a id="l46" class='ln'>46</a></td><td></td></tr>
+<tr name="47" id="47">
+<td><a id="l47" class='ln'>47</a></td><td>  </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>  </td></tr>
+<tr name="50" id="50">
+<td><a id="l50" class='ln'>50</a></td><td></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></td></tr>
+<tr name="53" id="53">
+<td><a id="l53" class='ln'>53</a></td><td>  </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>  </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>  </td></tr>
+<tr name="58" id="58">
+<td><a id="l58" class='ln'>58</a></td><td></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></td></tr>
+<tr name="61" id="61">
+<td><a id="l61" class='ln'>61</a></td><td>  </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>  </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>    </td></tr>
+<tr name="66" id="66">
+<td><a id="l66" class='ln'>66</a></td><td>    <span class="kw">extern</span> <a id="66c12" class="tk">real_T</a> <a id="66c19" class="tk">rtGetInf</a>(<span class="kw">void</span>);</td></tr>
+<tr name="67" id="67">
+<td><a id="l67" class='ln'>67</a></td><td>      <span class="kw">extern</span> <a id="67c14" class="tk">real32_T</a> <a id="67c23" class="tk">rtGetInfF</a>(<span class="kw">void</span>);</td></tr>
+<tr name="68" id="68">
+<td><a id="l68" class='ln'>68</a></td><td>      <span class="kw">extern</span> <a id="68c14" class="tk">real_T</a> <a id="68c21" class="tk">rtGetMinusInf</a>(<span class="kw">void</span>);</td></tr>
+<tr name="69" id="69">
+<td><a id="l69" class='ln'>69</a></td><td>      <span class="kw">extern</span> <a id="69c14" class="tk">real32_T</a> <a id="69c23" class="tk">rtGetMinusInfF</a>(<span class="kw">void</span>);</td></tr>
+<tr name="70" id="70">
+<td><a id="l70" class='ln'>70</a></td><td>    </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></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></td></tr>
+<tr name="75" id="75">
+<td><a id="l75" class='ln'>75</a></td><td>  </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>  </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>  </td></tr>
+<tr name="80" id="80">
+<td><a id="l80" class='ln'>80</a></td><td></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></td></tr>
+<tr name="83" id="83">
+<td><a id="l83" class='ln'>83</a></td><td>    <span class="pp">#endif</span> <span class="ct">/* RTW_HEADER_rtGetInf_h_ */</span></td></tr>
+<tr name="84" id="84">
+<td><a id="l84" class='ln'>84</a></td><td></td></tr>
+</table>
+</pre>
+</body>
+</html>

+ 226 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/html/rtGetNaN_c.html

@@ -0,0 +1,226 @@
+<!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"> * rtGetNaN.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 generation for model "PMSM_Motor_TL3_sf".</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.825</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 source code generated on : Fri Apr 14 12:51:02 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: rtwsfcn.tlc</span></td></tr>
+<tr name="11" id="11">
+<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
+<tr name="12" id="12">
+<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * Embedded hardware selection: ARM Compatible-&gt;ARM Cortex-M</span></td></tr>
+<tr name="13" id="13">
+<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> * Emulation hardware selection:</span></td></tr>
+<tr name="14" id="14">
+<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> *    Differs from embedded hardware (MATLAB Host)</span></td></tr>
+<tr name="15" id="15">
+<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Code generation objectives:</span></td></tr>
+<tr name="16" id="16">
+<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> *    1. Execution efficiency</span></td></tr>
+<tr name="17" id="17">
+<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> *    2. RAM efficiency</span></td></tr>
+<tr name="18" id="18">
+<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
+<tr name="19" id="19">
+<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> */</span></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">/*</span></td></tr>
+<tr name="22" id="22">
+<td><a id="l22" class='ln'>22</a></td><td><span class="ct"> * Abstract:</span></td></tr>
+<tr name="23" id="23">
+<td><a id="l23" class='ln'>23</a></td><td><span class="ct"> *      Function to initialize non-finite, NaN</span></td></tr>
+<tr name="24" id="24">
+<td><a id="l24" class='ln'>24</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="25" id="25">
+<td><a id="l25" class='ln'>25</a></td><td><span class="pp">#include "rtGetNaN.h"</span></td></tr>
+<tr name="26" id="26">
+<td><a id="l26" class='ln'>26</a></td><td><span class="pp">#define</span> <a id="26c9" class="tk">NumBitsPerChar</a>                 8U</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">/*</span></td></tr>
+<tr name="29" id="29">
+<td><a id="l29" class='ln'>29</a></td><td><span class="ct"> * Initialize rtNaN needed by the generated code.</span></td></tr>
+<tr name="30" id="30">
+<td><a id="l30" class='ln'>30</a></td><td><span class="ct"> * NaN is initialized as non-signaling. Assumes IEEE.</span></td></tr>
+<tr name="31" id="31">
+<td><a id="l31" class='ln'>31</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="32" id="32">
+<td><a id="l32" class='ln'>32</a></td><td><a id="32c1" class="tk">real_T</a> <a id="32c8" class="tk">rtGetNaN</a>(<span class="kw">void</span>)</td></tr>
+<tr name="33" id="33">
+<td><a id="l33" class='ln'>33</a></td><td><span class="br">{</span></td></tr>
+<tr name="34" id="34">
+<td><a id="l34" class='ln'>34</a></td><td>  <a id="34c3" class="tk">size_t</a> <a id="34c10" class="tk">bitsPerReal</a> = <span class="kw">sizeof</span>(<a id="34c31" class="tk">real_T</a>) <a id="34c39" class="tk">*</a> (<a id="34c42" class="tk">NumBitsPerChar</a>);</td></tr>
+<tr name="35" id="35">
+<td><a id="l35" class='ln'>35</a></td><td>  <a id="35c3" class="tk">real_T</a> <a id="35c10" class="tk">nan</a> = 0.0;</td></tr>
+<tr name="36" id="36">
+<td><a id="l36" class='ln'>36</a></td><td>  <span class="kw">if</span> (<a id="36c7" class="tk">bitsPerReal</a> <a id="36c19" class="tk">==</a> 32U) <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">nan</a> = <a id="37c11" class="tk">rtGetNaNF</a>();</td></tr>
+<tr name="38" id="38">
+<td><a id="l38" class='ln'>38</a></td><td>  <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="39" id="39">
+<td><a id="l39" class='ln'>39</a></td><td>    <a id="39c5" class="tk">uint16_T</a> <a id="39c14" class="tk">one</a> = 1U;</td></tr>
+<tr name="40" id="40">
+<td><a id="l40" class='ln'>40</a></td><td>    <span class="kw">enum</span> <span class="br">{</span></td></tr>
+<tr name="41" id="41">
+<td><a id="l41" class='ln'>41</a></td><td>      <a id="41c7" class="tk">LittleEndian</a>,</td></tr>
+<tr name="42" id="42">
+<td><a id="l42" class='ln'>42</a></td><td>      <a id="42c7" class="tk">BigEndian</a></td></tr>
+<tr name="43" id="43">
+<td><a id="l43" class='ln'>43</a></td><td>    <span class="br">}</span> <a id="43c7" class="tk">machByteOrder</a> = (<a id="43c24" class="tk">*</a>((<a id="43c27" class="tk">uint8_T</a> <a id="43c35" class="tk">*</a>) <a id="43c38" class="tk">&amp;</a><a id="43c39" class="tk">one</a>) <a id="43c44" class="tk">==</a> 1U) <a id="43c51" class="tk">?</a> <a id="43c53" class="tk">LittleEndian</a> <a id="43c66" class="tk">:</a> <a id="43c68" class="tk">BigEndian</a>;</td></tr>
+<tr name="44" id="44">
+<td><a id="l44" class='ln'>44</a></td><td>    <span class="kw">switch</span> (<a id="44c13" class="tk">machByteOrder</a>) <span class="br">{</span></td></tr>
+<tr name="45" id="45">
+<td><a id="l45" class='ln'>45</a></td><td>     <span class="kw">case</span> <a id="45c11" class="tk">LittleEndian</a><a id="45c23" class="tk">:</a></td></tr>
+<tr name="46" id="46">
+<td><a id="l46" class='ln'>46</a></td><td>      <span class="br">{</span></td></tr>
+<tr name="47" id="47">
+<td><a id="l47" class='ln'>47</a></td><td>        <span class="kw">union</span> <span class="br">{</span></td></tr>
+<tr name="48" id="48">
+<td><a id="l48" class='ln'>48</a></td><td>          <a id="48c11" class="tk">LittleEndianIEEEDouble</a> <a id="48c34" class="tk">bitVal</a>;</td></tr>
+<tr name="49" id="49">
+<td><a id="l49" class='ln'>49</a></td><td>          <a id="49c11" class="tk">real_T</a> <a id="49c18" class="tk">fltVal</a>;</td></tr>
+<tr name="50" id="50">
+<td><a id="l50" class='ln'>50</a></td><td>        <span class="br">}</span> <a id="50c11" class="tk">tmpVal</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>        <a id="52c9" class="tk">tmpVal</a>.<a id="52c16" class="tk">bitVal</a>.<a id="52c23" class="tk">words</a>.<a id="52c29" class="tk">wordH</a> = 0xFFF80000U;</td></tr>
+<tr name="53" id="53">
+<td><a id="l53" class='ln'>53</a></td><td>        <a id="53c9" class="tk">tmpVal</a>.<a id="53c16" class="tk">bitVal</a>.<a id="53c23" class="tk">words</a>.<a id="53c29" class="tk">wordL</a> = 0x00000000U;</td></tr>
+<tr name="54" id="54">
+<td><a id="l54" class='ln'>54</a></td><td>        <a id="54c9" class="tk">nan</a> = <a id="54c15" class="tk">tmpVal</a>.<a id="54c22" class="tk">fltVal</a>;</td></tr>
+<tr name="55" id="55">
+<td><a id="l55" class='ln'>55</a></td><td>        <span class="kw">break</span>;</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="kw">case</span> <a id="58c11" class="tk">BigEndian</a><a id="58c20" class="tk">:</a></td></tr>
+<tr name="59" id="59">
+<td><a id="l59" class='ln'>59</a></td><td>      <span class="br">{</span></td></tr>
+<tr name="60" id="60">
+<td><a id="l60" class='ln'>60</a></td><td>        <span class="kw">union</span> <span class="br">{</span></td></tr>
+<tr name="61" id="61">
+<td><a id="l61" class='ln'>61</a></td><td>          <a id="61c11" class="tk">BigEndianIEEEDouble</a> <a id="61c31" class="tk">bitVal</a>;</td></tr>
+<tr name="62" id="62">
+<td><a id="l62" class='ln'>62</a></td><td>          <a id="62c11" class="tk">real_T</a> <a id="62c18" class="tk">fltVal</a>;</td></tr>
+<tr name="63" id="63">
+<td><a id="l63" class='ln'>63</a></td><td>        <span class="br">}</span> <a id="63c11" class="tk">tmpVal</a>;</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>        <a id="65c9" class="tk">tmpVal</a>.<a id="65c16" class="tk">bitVal</a>.<a id="65c23" class="tk">words</a>.<a id="65c29" class="tk">wordH</a> = 0x7FFFFFFFU;</td></tr>
+<tr name="66" id="66">
+<td><a id="l66" class='ln'>66</a></td><td>        <a id="66c9" class="tk">tmpVal</a>.<a id="66c16" class="tk">bitVal</a>.<a id="66c23" class="tk">words</a>.<a id="66c29" class="tk">wordL</a> = 0xFFFFFFFFU;</td></tr>
+<tr name="67" id="67">
+<td><a id="l67" class='ln'>67</a></td><td>        <a id="67c9" class="tk">nan</a> = <a id="67c15" class="tk">tmpVal</a>.<a id="67c22" class="tk">fltVal</a>;</td></tr>
+<tr name="68" id="68">
+<td><a id="l68" class='ln'>68</a></td><td>        <span class="kw">break</span>;</td></tr>
+<tr name="69" id="69">
+<td><a id="l69" class='ln'>69</a></td><td>      <span class="br">}</span></td></tr>
+<tr name="70" id="70">
+<td><a id="l70" class='ln'>70</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="71" id="71">
+<td><a id="l71" class='ln'>71</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="72" id="72">
+<td><a id="l72" class='ln'>72</a></td><td></td></tr>
+<tr name="73" id="73">
+<td><a id="l73" class='ln'>73</a></td><td>  <span class="kw">return</span> <a id="73c10" class="tk">nan</a>;</td></tr>
+<tr name="74" id="74">
+<td><a id="l74" class='ln'>74</a></td><td><span class="br">}</span></td></tr>
+<tr name="75" id="75">
+<td><a id="l75" class='ln'>75</a></td><td></td></tr>
+<tr name="76" id="76">
+<td><a id="l76" class='ln'>76</a></td><td><span class="ct">/*</span></td></tr>
+<tr name="77" id="77">
+<td><a id="l77" class='ln'>77</a></td><td><span class="ct"> * Initialize rtNaNF needed by the generated code.</span></td></tr>
+<tr name="78" id="78">
+<td><a id="l78" class='ln'>78</a></td><td><span class="ct"> * NaN is initialized as non-signaling. Assumes IEEE.</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><a id="80c1" class="tk">real32_T</a> <a id="80c10" class="tk">rtGetNaNF</a>(<span class="kw">void</span>)</td></tr>
+<tr name="81" id="81">
+<td><a id="l81" class='ln'>81</a></td><td><span class="br">{</span></td></tr>
+<tr name="82" id="82">
+<td><a id="l82" class='ln'>82</a></td><td>  <a id="82c3" class="tk">IEEESingle</a> <a id="82c14" 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="83" id="83">
+<td><a id="l83" class='ln'>83</a></td><td></td></tr>
+<tr name="84" id="84">
+<td><a id="l84" class='ln'>84</a></td><td>  <a id="84c3" class="tk">uint16_T</a> <a id="84c12" class="tk">one</a> = 1U;</td></tr>
+<tr name="85" id="85">
+<td><a id="l85" class='ln'>85</a></td><td>  <span class="kw">enum</span> <span class="br">{</span></td></tr>
+<tr name="86" id="86">
+<td><a id="l86" class='ln'>86</a></td><td>    <a id="86c5" class="tk">LittleEndian</a>,</td></tr>
+<tr name="87" id="87">
+<td><a id="l87" class='ln'>87</a></td><td>    <a id="87c5" class="tk">BigEndian</a></td></tr>
+<tr name="88" id="88">
+<td><a id="l88" class='ln'>88</a></td><td>  <span class="br">}</span> <a id="88c5" class="tk">machByteOrder</a> = (<a id="88c22" class="tk">*</a>((<a id="88c25" class="tk">uint8_T</a> <a id="88c33" class="tk">*</a>) <a id="88c36" class="tk">&amp;</a><a id="88c37" class="tk">one</a>) <a id="88c42" class="tk">==</a> 1U) <a id="88c49" class="tk">?</a> <a id="88c51" class="tk">LittleEndian</a> <a id="88c64" class="tk">:</a> <a id="88c66" class="tk">BigEndian</a>;</td></tr>
+<tr name="89" id="89">
+<td><a id="l89" class='ln'>89</a></td><td>  <span class="kw">switch</span> (<a id="89c11" class="tk">machByteOrder</a>) <span class="br">{</span></td></tr>
+<tr name="90" id="90">
+<td><a id="l90" class='ln'>90</a></td><td>   <span class="kw">case</span> <a id="90c9" class="tk">LittleEndian</a><a id="90c21" class="tk">:</a></td></tr>
+<tr name="91" id="91">
+<td><a id="l91" class='ln'>91</a></td><td>    <span class="br">{</span></td></tr>
+<tr name="92" id="92">
+<td><a id="l92" class='ln'>92</a></td><td>      <a id="92c7" class="tk">nanF</a>.<a id="92c12" class="tk">wordL</a>.<a id="92c18" class="tk">wordLuint</a> = 0xFFC00000U;</td></tr>
+<tr name="93" id="93">
+<td><a id="l93" class='ln'>93</a></td><td>      <span class="kw">break</span>;</td></tr>
+<tr name="94" id="94">
+<td><a id="l94" class='ln'>94</a></td><td>    <span class="br">}</span></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="kw">case</span> <a id="96c9" class="tk">BigEndian</a><a id="96c18" class="tk">:</a></td></tr>
+<tr name="97" id="97">
+<td><a id="l97" class='ln'>97</a></td><td>    <span class="br">{</span></td></tr>
+<tr name="98" id="98">
+<td><a id="l98" class='ln'>98</a></td><td>      <a id="98c7" class="tk">nanF</a>.<a id="98c12" class="tk">wordL</a>.<a id="98c18" class="tk">wordLuint</a> = 0x7FFFFFFFU;</td></tr>
+<tr name="99" id="99">
+<td><a id="l99" class='ln'>99</a></td><td>      <span class="kw">break</span>;</td></tr>
+<tr name="100" id="100">
+<td><a id="l100" class='ln'>100</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="101" id="101">
+<td><a id="l101" class='ln'>101</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="102" id="102">
+<td><a id="l102" class='ln'>102</a></td><td></td></tr>
+<tr name="103" id="103">
+<td><a id="l103" class='ln'>103</a></td><td>  <span class="kw">return</span> <a id="103c10" class="tk">nanF</a>.<a id="103c15" class="tk">wordL</a>.<a id="103c21" class="tk">wordLreal</a>;</td></tr>
+<tr name="104" id="104">
+<td><a id="l104" class='ln'>104</a></td><td><span class="br">}</span></td></tr>
+<tr name="105" id="105">
+<td><a id="l105" class='ln'>105</a></td><td></td></tr>
+</table>
+</pre>
+</body>
+</html>

+ 180 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/html/rtGetNaN_h.html

@@ -0,0 +1,180 @@
+<!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></td></tr>
+<tr name="2" id="2">
+<td><a id="l2" class='ln'>2</a></td><td></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">  * rtGetNaN.h</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">    * Code generation for model "PMSM_Motor_TL3_sf".</span></td></tr>
+<tr name="7" id="7">
+<td><a id="l7" class='ln'>7</a></td><td><span class="ct">  *</span></td></tr>
+<tr name="8" id="8">
+<td><a id="l8" class='ln'>8</a></td><td><span class="ct">  * Model version              : 1.825</span></td></tr>
+<tr name="9" id="9">
+<td><a id="l9" class='ln'>9</a></td><td><span class="ct">  * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020</span></td></tr>
+<tr name="10" id="10">
+<td><a id="l10" class='ln'>10</a></td><td><span class="ct">  * C source code generated on : Fri Apr 14 12:51:02 2023</span></td></tr>
+<tr name="11" id="11">
+<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * </span></td></tr>
+<tr name="12" id="12">
+<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * Target selection: rtwsfcn.tlc</span></td></tr>
+<tr name="13" id="13">
+<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
+<tr name="14" id="14">
+<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> * Embedded hardware selection: ARM Compatible-&gt;ARM Cortex-M</span></td></tr>
+<tr name="15" id="15">
+<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Emulation hardware selection: </span></td></tr>
+<tr name="16" id="16">
+<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> *    Differs from embedded hardware (MATLAB Host)</span></td></tr>
+<tr name="17" id="17">
+<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> * Code generation objectives: </span></td></tr>
+<tr name="18" id="18">
+<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> *    1. Execution efficiency</span></td></tr>
+<tr name="19" id="19">
+<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> *    2. RAM efficiency</span></td></tr>
+<tr name="20" id="20">
+<td><a id="l20" class='ln'>20</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
+<tr name="21" id="21">
+<td><a id="l21" class='ln'>21</a></td><td><span class="ct">  */</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></td></tr>
+<tr name="24" id="24">
+<td><a id="l24" class='ln'>24</a></td><td>  <span class="pp">#ifndef</span> <a id="24c11" class="tk">RTW_HEADER_rtGetNaN_h_</a></td></tr>
+<tr name="25" id="25">
+<td><a id="l25" class='ln'>25</a></td><td>  <span class="pp">#define</span> <a id="25c11" class="tk">RTW_HEADER_rtGetNaN_h_</a></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></td></tr>
+<tr name="28" id="28">
+<td><a id="l28" class='ln'>28</a></td><td>    </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>  </td></tr>
+<tr name="31" id="31">
+<td><a id="l31" class='ln'>31</a></td><td><span class="pp">#include &lt;stddef.h&gt;</span></td></tr>
+<tr name="32" id="32">
+<td><a id="l32" class='ln'>32</a></td><td>  <span class="pp">#include "rtwtypes.h"</span></td></tr>
+<tr name="33" id="33">
+<td><a id="l33" class='ln'>33</a></td><td>  <span class="pp">#include "rt_nonfinite.h"</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></td></tr>
+<tr name="36" id="36">
+<td><a id="l36" class='ln'>36</a></td><td></td></tr>
+<tr name="37" id="37">
+<td><a id="l37" class='ln'>37</a></td><td>  </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>  </td></tr>
+<tr name="40" id="40">
+<td><a id="l40" class='ln'>40</a></td><td></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></td></tr>
+<tr name="43" id="43">
+<td><a id="l43" class='ln'>43</a></td><td>  </td></tr>
+<tr name="44" id="44">
+<td><a id="l44" class='ln'>44</a></td><td></td></tr>
+<tr name="45" id="45">
+<td><a id="l45" class='ln'>45</a></td><td>  </td></tr>
+<tr name="46" id="46">
+<td><a id="l46" class='ln'>46</a></td><td></td></tr>
+<tr name="47" id="47">
+<td><a id="l47" class='ln'>47</a></td><td>  </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>  </td></tr>
+<tr name="50" id="50">
+<td><a id="l50" class='ln'>50</a></td><td></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></td></tr>
+<tr name="53" id="53">
+<td><a id="l53" class='ln'>53</a></td><td>  </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>  </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>  </td></tr>
+<tr name="58" id="58">
+<td><a id="l58" class='ln'>58</a></td><td></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></td></tr>
+<tr name="61" id="61">
+<td><a id="l61" class='ln'>61</a></td><td>  </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>  </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>    </td></tr>
+<tr name="66" id="66">
+<td><a id="l66" class='ln'>66</a></td><td>    <span class="kw">extern</span> <a id="66c12" class="tk">real_T</a> <a id="66c19" class="tk">rtGetNaN</a>(<span class="kw">void</span>);</td></tr>
+<tr name="67" id="67">
+<td><a id="l67" class='ln'>67</a></td><td>      <span class="kw">extern</span> <a id="67c14" class="tk">real32_T</a> <a id="67c23" class="tk">rtGetNaNF</a>(<span class="kw">void</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></td></tr>
+<tr name="70" id="70">
+<td><a id="l70" class='ln'>70</a></td><td></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></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></td></tr>
+<tr name="75" id="75">
+<td><a id="l75" class='ln'>75</a></td><td>  </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>  </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>  </td></tr>
+<tr name="80" id="80">
+<td><a id="l80" class='ln'>80</a></td><td></td></tr>
+<tr name="81" id="81">
+<td><a id="l81" class='ln'>81</a></td><td>    <span class="pp">#endif</span> <span class="ct">/* RTW_HEADER_rtGetNaN_h_ */</span></td></tr>
+<tr name="82" id="82">
+<td><a id="l82" class='ln'>82</a></td><td></td></tr>
+</table>
+</pre>
+</body>
+</html>

+ 226 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/html/rt_defines_h.html

@@ -0,0 +1,226 @@
+<!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></td></tr>
+<tr name="2" id="2">
+<td><a id="l2" class='ln'>2</a></td><td></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">  * rt_defines.h</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">    * Code generation for model "PMSM_Motor_TL3_sf".</span></td></tr>
+<tr name="7" id="7">
+<td><a id="l7" class='ln'>7</a></td><td><span class="ct">  *</span></td></tr>
+<tr name="8" id="8">
+<td><a id="l8" class='ln'>8</a></td><td><span class="ct">  * Model version              : 1.825</span></td></tr>
+<tr name="9" id="9">
+<td><a id="l9" class='ln'>9</a></td><td><span class="ct">  * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020</span></td></tr>
+<tr name="10" id="10">
+<td><a id="l10" class='ln'>10</a></td><td><span class="ct">  * C source code generated on : Fri Apr 14 12:51:02 2023</span></td></tr>
+<tr name="11" id="11">
+<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * </span></td></tr>
+<tr name="12" id="12">
+<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * Target selection: rtwsfcn.tlc</span></td></tr>
+<tr name="13" id="13">
+<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
+<tr name="14" id="14">
+<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> * Embedded hardware selection: ARM Compatible-&gt;ARM Cortex-M</span></td></tr>
+<tr name="15" id="15">
+<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Emulation hardware selection: </span></td></tr>
+<tr name="16" id="16">
+<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> *    Differs from embedded hardware (MATLAB Host)</span></td></tr>
+<tr name="17" id="17">
+<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> * Code generation objectives: </span></td></tr>
+<tr name="18" id="18">
+<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> *    1. Execution efficiency</span></td></tr>
+<tr name="19" id="19">
+<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> *    2. RAM efficiency</span></td></tr>
+<tr name="20" id="20">
+<td><a id="l20" class='ln'>20</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
+<tr name="21" id="21">
+<td><a id="l21" class='ln'>21</a></td><td><span class="ct">  */</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></td></tr>
+<tr name="24" id="24">
+<td><a id="l24" class='ln'>24</a></td><td>  <span class="pp">#ifndef</span> <a id="24c11" class="tk">RTW_HEADER_rt_defines_h_</a></td></tr>
+<tr name="25" id="25">
+<td><a id="l25" class='ln'>25</a></td><td>  <span class="pp">#define</span> <a id="25c11" class="tk">RTW_HEADER_rt_defines_h_</a></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></td></tr>
+<tr name="28" id="28">
+<td><a id="l28" class='ln'>28</a></td><td>    </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>  </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>  </td></tr>
+<tr name="33" id="33">
+<td><a id="l33" class='ln'>33</a></td><td></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></td></tr>
+<tr name="36" id="36">
+<td><a id="l36" class='ln'>36</a></td><td>  </td></tr>
+<tr name="37" id="37">
+<td><a id="l37" class='ln'>37</a></td><td></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></td></tr>
+<tr name="40" id="40">
+<td><a id="l40" class='ln'>40</a></td><td>  </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>  </td></tr>
+<tr name="43" id="43">
+<td><a id="l43" class='ln'>43</a></td><td></td></tr>
+<tr name="44" id="44">
+<td><a id="l44" class='ln'>44</a></td><td>  </td></tr>
+<tr name="45" id="45">
+<td><a id="l45" class='ln'>45</a></td><td></td></tr>
+<tr name="46" id="46">
+<td><a id="l46" class='ln'>46</a></td><td>  </td></tr>
+<tr name="47" id="47">
+<td><a id="l47" class='ln'>47</a></td><td></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></td></tr>
+<tr name="50" id="50">
+<td><a id="l50" class='ln'>50</a></td><td>  </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>  </td></tr>
+<tr name="53" id="53">
+<td><a id="l53" class='ln'>53</a></td><td></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></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></td></tr>
+<tr name="58" id="58">
+<td><a id="l58" class='ln'>58</a></td><td>  </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>    </td></tr>
+<tr name="61" id="61">
+<td><a id="l61" class='ln'>61</a></td><td></td></tr>
+<tr name="62" id="62">
+<td><a id="l62" class='ln'>62</a></td><td> <span class="ct">/*===========*</span></td></tr>
+<tr name="63" id="63">
+<td><a id="l63" class='ln'>63</a></td><td><span class="ct">  * Constants *</span></td></tr>
+<tr name="64" id="64">
+<td><a id="l64" class='ln'>64</a></td><td><span class="ct">  *===========*/</span></td></tr>
+<tr name="65" id="65">
+<td><a id="l65" class='ln'>65</a></td><td>  </td></tr>
+<tr name="66" id="66">
+<td><a id="l66" class='ln'>66</a></td><td>  <span class="pp">#define</span> <a id="66c11" class="tk">RT_PI</a>          3.14159265358979323846</td></tr>
+<tr name="67" id="67">
+<td><a id="l67" class='ln'>67</a></td><td>  <span class="pp">#define</span> <a id="67c11" class="tk">RT_PIF</a>         3.1415927F</td></tr>
+<tr name="68" id="68">
+<td><a id="l68" class='ln'>68</a></td><td>  <span class="pp">#define</span> <a id="68c11" class="tk">RT_LN_10</a>       2.30258509299404568402</td></tr>
+<tr name="69" id="69">
+<td><a id="l69" class='ln'>69</a></td><td>  <span class="pp">#define</span> <a id="69c11" class="tk">RT_LN_10F</a>      2.3025851F</td></tr>
+<tr name="70" id="70">
+<td><a id="l70" class='ln'>70</a></td><td>  <span class="pp">#define</span> <a id="70c11" class="tk">RT_LOG10E</a>      0.43429448190325182765</td></tr>
+<tr name="71" id="71">
+<td><a id="l71" class='ln'>71</a></td><td>  <span class="pp">#define</span> <a id="71c11" class="tk">RT_LOG10EF</a>     0.43429449F</td></tr>
+<tr name="72" id="72">
+<td><a id="l72" class='ln'>72</a></td><td>  <span class="pp">#define</span> <a id="72c11" class="tk">RT_E</a>           2.7182818284590452354</td></tr>
+<tr name="73" id="73">
+<td><a id="l73" class='ln'>73</a></td><td>  <span class="pp">#define</span> <a id="73c11" class="tk">RT_EF</a>          2.7182817F</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">   * UNUSED_PARAMETER(x)  </span></td></tr>
+<tr name="77" id="77">
+<td><a id="l77" class='ln'>77</a></td><td><span class="ct">   *   Used to specify that a function parameter (argument) is required but not  </span></td></tr>
+<tr name="78" id="78">
+<td><a id="l78" class='ln'>78</a></td><td><span class="ct">   *   accessed by the function body.  </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">#ifndef</span> <a id="80c11" class="tk">UNUSED_PARAMETER</a>  </td></tr>
+<tr name="81" id="81">
+<td><a id="l81" class='ln'>81</a></td><td>  <span class="pp">#if</span> <a id="81c7" class="tk">defined</a>(<a id="81c15" class="tk">__LCC__</a>)  </td></tr>
+<tr name="82" id="82">
+<td><a id="l82" class='ln'>82</a></td><td>  <span class="pp">#define</span> <a id="82c11" class="tk">UNUSED_PARAMETER</a>(<a id="82c28" class="tk">x</a>)  <span class="ct">/* do nothing */</span>  </td></tr>
+<tr name="83" id="83">
+<td><a id="l83" class='ln'>83</a></td><td>  <span class="pp">#else</span>  </td></tr>
+<tr name="84" id="84">
+<td><a id="l84" class='ln'>84</a></td><td>  <span class="ct">/*  </span></td></tr>
+<tr name="85" id="85">
+<td><a id="l85" class='ln'>85</a></td><td><span class="ct">   * This is the semi-ANSI standard way of indicating that an </span></td></tr>
+<tr name="86" id="86">
+<td><a id="l86" class='ln'>86</a></td><td><span class="ct">   * unused function parameter is required.  </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>  <span class="pp">#define</span> <a id="88c11" class="tk">UNUSED_PARAMETER</a>(<a id="88c28" class="tk">x</a>) (<span class="kw">void</span>) (<a id="88c39" class="tk">x</a>)  </td></tr>
+<tr name="89" id="89">
+<td><a id="l89" class='ln'>89</a></td><td>  <span class="pp">#endif</span>  </td></tr>
+<tr name="90" id="90">
+<td><a id="l90" class='ln'>90</a></td><td>  <span class="pp">#endif</span>  </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></td></tr>
+<tr name="93" id="93">
+<td><a id="l93" class='ln'>93</a></td><td></td></tr>
+<tr name="94" id="94">
+<td><a id="l94" class='ln'>94</a></td><td>  </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>  </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>  </td></tr>
+<tr name="99" id="99">
+<td><a id="l99" class='ln'>99</a></td><td></td></tr>
+<tr name="100" id="100">
+<td><a id="l100" class='ln'>100</a></td><td>  </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>  </td></tr>
+<tr name="103" id="103">
+<td><a id="l103" class='ln'>103</a></td><td></td></tr>
+<tr name="104" id="104">
+<td><a id="l104" class='ln'>104</a></td><td>    <span class="pp">#endif</span> <span class="ct">/* RTW_HEADER_rt_defines_h_ */</span></td></tr>
+<tr name="105" id="105">
+<td><a id="l105" class='ln'>105</a></td><td></td></tr>
+</table>
+</pre>
+</body>
+</html>

+ 376 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/html/rt_nonfinite_c.html

@@ -0,0 +1,376 @@
+<!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></td></tr>
+<tr name="2" id="2">
+<td><a id="l2" class='ln'>2</a></td><td></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">  * rt_nonfinite.c</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">    * Code generation for model "PMSM_Motor_TL3_sf".</span></td></tr>
+<tr name="7" id="7">
+<td><a id="l7" class='ln'>7</a></td><td><span class="ct">  *</span></td></tr>
+<tr name="8" id="8">
+<td><a id="l8" class='ln'>8</a></td><td><span class="ct">  * Model version              : 1.825</span></td></tr>
+<tr name="9" id="9">
+<td><a id="l9" class='ln'>9</a></td><td><span class="ct">  * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020</span></td></tr>
+<tr name="10" id="10">
+<td><a id="l10" class='ln'>10</a></td><td><span class="ct">  * C source code generated on : Fri Apr 14 12:51:02 2023</span></td></tr>
+<tr name="11" id="11">
+<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * </span></td></tr>
+<tr name="12" id="12">
+<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * Target selection: rtwsfcn.tlc</span></td></tr>
+<tr name="13" id="13">
+<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
+<tr name="14" id="14">
+<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> * Embedded hardware selection: ARM Compatible-&gt;ARM Cortex-M</span></td></tr>
+<tr name="15" id="15">
+<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Emulation hardware selection: </span></td></tr>
+<tr name="16" id="16">
+<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> *    Differs from embedded hardware (MATLAB Host)</span></td></tr>
+<tr name="17" id="17">
+<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> * Code generation objectives: </span></td></tr>
+<tr name="18" id="18">
+<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> *    1. Execution efficiency</span></td></tr>
+<tr name="19" id="19">
+<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> *    2. RAM efficiency</span></td></tr>
+<tr name="20" id="20">
+<td><a id="l20" class='ln'>20</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
+<tr name="21" id="21">
+<td><a id="l21" class='ln'>21</a></td><td><span class="ct">  */</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></td></tr>
+<tr name="24" id="24">
+<td><a id="l24" class='ln'>24</a></td><td></td></tr>
+<tr name="25" id="25">
+<td><a id="l25" class='ln'>25</a></td><td>    </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">/*</span></td></tr>
+<tr name="28" id="28">
+<td><a id="l28" class='ln'>28</a></td><td><span class="ct">  * Abstract:</span></td></tr>
+<tr name="29" id="29">
+<td><a id="l29" class='ln'>29</a></td><td><span class="ct">  *      Function to initialize non-finites,</span></td></tr>
+<tr name="30" id="30">
+<td><a id="l30" class='ln'>30</a></td><td><span class="ct">  *      (Inf, NaN and -Inf).</span></td></tr>
+<tr name="31" id="31">
+<td><a id="l31" class='ln'>31</a></td><td><span class="ct">  */</span></td></tr>
+<tr name="32" id="32">
+<td><a id="l32" class='ln'>32</a></td><td>    <span class="pp">#include "rt_nonfinite.h"</span></td></tr>
+<tr name="33" id="33">
+<td><a id="l33" class='ln'>33</a></td><td></td></tr>
+<tr name="34" id="34">
+<td><a id="l34" class='ln'>34</a></td><td>          <span class="pp">#include "rtGetNaN.h"</span></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="pp">#include "rtGetInf.h"</span></td></tr>
+<tr name="37" id="37">
+<td><a id="l37" class='ln'>37</a></td><td>      </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></td></tr>
+<tr name="40" id="40">
+<td><a id="l40" class='ln'>40</a></td><td>    </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></td></tr>
+<tr name="43" id="43">
+<td><a id="l43" class='ln'>43</a></td><td>  </td></tr>
+<tr name="44" id="44">
+<td><a id="l44" class='ln'>44</a></td><td></td></tr>
+<tr name="45" id="45">
+<td><a id="l45" class='ln'>45</a></td><td>  </td></tr>
+<tr name="46" id="46">
+<td><a id="l46" class='ln'>46</a></td><td></td></tr>
+<tr name="47" id="47">
+<td><a id="l47" class='ln'>47</a></td><td>  </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="pp">#define</span> <a id="49c13" class="tk">NumBitsPerChar</a>  8U</td></tr>
+<tr name="50" id="50">
+<td><a id="l50" class='ln'>50</a></td><td></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>  </td></tr>
+<tr name="53" id="53">
+<td><a id="l53" class='ln'>53</a></td><td></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></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></td></tr>
+<tr name="58" id="58">
+<td><a id="l58" class='ln'>58</a></td><td>  </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>  </td></tr>
+<tr name="61" id="61">
+<td><a id="l61" class='ln'>61</a></td><td></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></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></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></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></td></tr>
+<tr name="70" id="70">
+<td><a id="l70" class='ln'>70</a></td><td>  </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>  </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>  </td></tr>
+<tr name="75" id="75">
+<td><a id="l75" class='ln'>75</a></td><td></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>  <a id="77c3" class="tk">real_T</a> <a id="77c10" class="tk">rtInf</a>;</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></td></tr>
+<tr name="80" id="80">
+<td><a id="l80" class='ln'>80</a></td><td>  </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></td></tr>
+<tr name="83" id="83">
+<td><a id="l83" class='ln'>83</a></td><td>  <a id="83c3" class="tk">real_T</a> <a id="83c10" class="tk">rtMinusInf</a>;</td></tr>
+<tr name="84" id="84">
+<td><a id="l84" class='ln'>84</a></td><td></td></tr>
+<tr name="85" id="85">
+<td><a id="l85" class='ln'>85</a></td><td></td></tr>
+<tr name="86" id="86">
+<td><a id="l86" class='ln'>86</a></td><td>  </td></tr>
+<tr name="87" id="87">
+<td><a id="l87" class='ln'>87</a></td><td></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>  <a id="89c3" class="tk">real_T</a> <a id="89c10" class="tk">rtNaN</a>;</td></tr>
+<tr name="90" id="90">
+<td><a id="l90" class='ln'>90</a></td><td></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>  </td></tr>
+<tr name="93" id="93">
+<td><a id="l93" class='ln'>93</a></td><td></td></tr>
+<tr name="94" id="94">
+<td><a id="l94" class='ln'>94</a></td><td></td></tr>
+<tr name="95" id="95">
+<td><a id="l95" class='ln'>95</a></td><td>  <a id="95c3" class="tk">real32_T</a> <a id="95c12" class="tk">rtInfF</a>;</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></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></td></tr>
+<tr name="100" id="100">
+<td><a id="l100" class='ln'>100</a></td><td></td></tr>
+<tr name="101" id="101">
+<td><a id="l101" class='ln'>101</a></td><td>  <a id="101c3" class="tk">real32_T</a> <a id="101c12" class="tk">rtMinusInfF</a>;</td></tr>
+<tr name="102" id="102">
+<td><a id="l102" class='ln'>102</a></td><td></td></tr>
+<tr name="103" id="103">
+<td><a id="l103" class='ln'>103</a></td><td></td></tr>
+<tr name="104" id="104">
+<td><a id="l104" class='ln'>104</a></td><td>  </td></tr>
+<tr name="105" id="105">
+<td><a id="l105" class='ln'>105</a></td><td></td></tr>
+<tr name="106" id="106">
+<td><a id="l106" class='ln'>106</a></td><td></td></tr>
+<tr name="107" id="107">
+<td><a id="l107" class='ln'>107</a></td><td>  <a id="107c3" class="tk">real32_T</a> <a id="107c12" class="tk">rtNaNF</a>;</td></tr>
+<tr name="108" id="108">
+<td><a id="l108" class='ln'>108</a></td><td></td></tr>
+<tr name="109" id="109">
+<td><a id="l109" class='ln'>109</a></td><td></td></tr>
+<tr name="110" id="110">
+<td><a id="l110" class='ln'>110</a></td><td></td></tr>
+<tr name="111" id="111">
+<td><a id="l111" class='ln'>111</a></td><td></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>    </td></tr>
+<tr name="114" id="114">
+<td><a id="l114" class='ln'>114</a></td><td>  <span class="ct">/* </span></td></tr>
+<tr name="115" id="115">
+<td><a id="l115" class='ln'>115</a></td><td><span class="ct"> * Initialize the rtInf, rtMinusInf, and rtNaN needed by the</span></td></tr>
+<tr name="116" id="116">
+<td><a id="l116" class='ln'>116</a></td><td><span class="ct"> * generated code. NaN is initialized as non-signaling. Assumes IEEE.</span></td></tr>
+<tr name="117" id="117">
+<td><a id="l117" class='ln'>117</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="118" id="118">
+<td><a id="l118" class='ln'>118</a></td><td></td></tr>
+<tr name="119" id="119">
+<td><a id="l119" class='ln'>119</a></td><td>     <span class="kw">void</span> <a id="119c11" class="tk">rt_InitInfAndNaN</a>(<a id="119c28" class="tk">size_t</a> <a id="119c35" class="tk">realSize</a>) <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="kw">void</span>) (<a id="121c13" class="tk">realSize</a>); </td></tr>
+<tr name="122" id="122">
+<td><a id="l122" class='ln'>122</a></td><td>    <a id="122c5" class="tk">rtNaN</a> = <a id="122c13" class="tk">rtGetNaN</a>();</td></tr>
+<tr name="123" id="123">
+<td><a id="l123" class='ln'>123</a></td><td>    <a id="123c5" class="tk">rtNaNF</a> = <a id="123c14" class="tk">rtGetNaNF</a>();</td></tr>
+<tr name="124" id="124">
+<td><a id="l124" class='ln'>124</a></td><td>    <a id="124c5" class="tk">rtInf</a> = <a id="124c13" class="tk">rtGetInf</a>();</td></tr>
+<tr name="125" id="125">
+<td><a id="l125" class='ln'>125</a></td><td>    <a id="125c5" class="tk">rtInfF</a> = <a id="125c14" class="tk">rtGetInfF</a>();</td></tr>
+<tr name="126" id="126">
+<td><a id="l126" class='ln'>126</a></td><td>    <a id="126c5" class="tk">rtMinusInf</a> = <a id="126c18" class="tk">rtGetMinusInf</a>();</td></tr>
+<tr name="127" id="127">
+<td><a id="l127" class='ln'>127</a></td><td>    <a id="127c5" class="tk">rtMinusInfF</a> = <a id="127c19" class="tk">rtGetMinusInfF</a>();</td></tr>
+<tr name="128" id="128">
+<td><a id="l128" class='ln'>128</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="129" id="129">
+<td><a id="l129" class='ln'>129</a></td><td>    </td></tr>
+<tr name="130" id="130">
+<td><a id="l130" class='ln'>130</a></td><td>  <span class="ct">/* Test if value is infinite */</span></td></tr>
+<tr name="131" id="131">
+<td><a id="l131" class='ln'>131</a></td><td>     <a id="131c6" class="tk">boolean_T</a> <a id="131c16" class="tk">rtIsInf</a>(<a id="131c24" class="tk">real_T</a> <a id="131c31" class="tk">value</a>) <span class="br">{</span></td></tr>
+<tr name="132" id="132">
+<td><a id="l132" class='ln'>132</a></td><td>    <span class="kw">return</span> (<a id="132c13" class="tk">boolean_T</a>)((<a id="132c25" class="tk">value</a><a id="132c30" class="tk">==</a><a id="132c32" class="tk">rtInf</a> <a id="132c38" class="tk">||</a> <a id="132c41" class="tk">value</a><a id="132c46" class="tk">==</a><a id="132c48" class="tk">rtMinusInf</a>) <a id="132c60" class="tk">?</a> 1U <a id="132c65" class="tk">:</a> 0U);</td></tr>
+<tr name="133" id="133">
+<td><a id="l133" class='ln'>133</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="134" id="134">
+<td><a id="l134" class='ln'>134</a></td><td>    </td></tr>
+<tr name="135" id="135">
+<td><a id="l135" class='ln'>135</a></td><td>  <span class="ct">/* Test if single-precision value is infinite */</span></td></tr>
+<tr name="136" id="136">
+<td><a id="l136" class='ln'>136</a></td><td>     <a id="136c6" class="tk">boolean_T</a> <a id="136c16" class="tk">rtIsInfF</a>(<a id="136c25" class="tk">real32_T</a> <a id="136c34" class="tk">value</a>) <span class="br">{</span></td></tr>
+<tr name="137" id="137">
+<td><a id="l137" class='ln'>137</a></td><td>    <span class="kw">return</span> (<a id="137c13" class="tk">boolean_T</a>)(((<a id="137c26" class="tk">value</a>)<a id="137c32" class="tk">==</a><a id="137c34" class="tk">rtInfF</a> <a id="137c41" class="tk">||</a> (<a id="137c45" class="tk">value</a>)<a id="137c51" class="tk">==</a><a id="137c53" class="tk">rtMinusInfF</a>) <a id="137c66" class="tk">?</a> 1U <a id="137c71" class="tk">:</a> 0U);</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>    </td></tr>
+<tr name="140" id="140">
+<td><a id="l140" class='ln'>140</a></td><td>  <span class="ct">/* Test if value is not a number */</span></td></tr>
+<tr name="141" id="141">
+<td><a id="l141" class='ln'>141</a></td><td>     <a id="141c6" class="tk">boolean_T</a> <a id="141c16" class="tk">rtIsNaN</a>(<a id="141c24" class="tk">real_T</a> <a id="141c31" class="tk">value</a>) <span class="br">{</span></td></tr>
+<tr name="142" id="142">
+<td><a id="l142" class='ln'>142</a></td><td>    <a id="142c5" class="tk">boolean_T</a> <a id="142c15" class="tk">result</a> = (<a id="142c25" class="tk">boolean_T</a>) 0;</td></tr>
+<tr name="143" id="143">
+<td><a id="l143" class='ln'>143</a></td><td>    <a id="143c5" class="tk">size_t</a> <a id="143c12" class="tk">bitsPerReal</a> = <span class="kw">sizeof</span>(<a id="143c33" class="tk">real_T</a>) <a id="143c41" class="tk">*</a> (<a id="143c44" class="tk">NumBitsPerChar</a>);</td></tr>
+<tr name="144" id="144">
+<td><a id="l144" class='ln'>144</a></td><td>    </td></tr>
+<tr name="145" id="145">
+<td><a id="l145" class='ln'>145</a></td><td>    <span class="kw">if</span> (<a id="145c9" class="tk">bitsPerReal</a> <a id="145c21" class="tk">==</a> 32U) <span class="br">{</span></td></tr>
+<tr name="146" id="146">
+<td><a id="l146" class='ln'>146</a></td><td>      <a id="146c7" class="tk">result</a> = <a id="146c16" class="tk">rtIsNaNF</a>((<a id="146c26" class="tk">real32_T</a>)<a id="146c35" class="tk">value</a>);</td></tr>
+<tr name="147" id="147">
+<td><a id="l147" class='ln'>147</a></td><td>    <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="148" id="148">
+<td><a id="l148" class='ln'>148</a></td><td>          </td></tr>
+<tr name="149" id="149">
+<td><a id="l149" class='ln'>149</a></td><td>  <span class="kw">union</span> <span class="br">{</span></td></tr>
+<tr name="150" id="150">
+<td><a id="l150" class='ln'>150</a></td><td>    <a id="150c5" class="tk">LittleEndianIEEEDouble</a> <a id="150c28" class="tk">bitVal</a>;</td></tr>
+<tr name="151" id="151">
+<td><a id="l151" class='ln'>151</a></td><td>    <a id="151c5" class="tk">real_T</a> <a id="151c12" class="tk">fltVal</a>;</td></tr>
+<tr name="152" id="152">
+<td><a id="l152" class='ln'>152</a></td><td>  <span class="br">}</span> <a id="152c5" class="tk">tmpVal</a>;</td></tr>
+<tr name="153" id="153">
+<td><a id="l153" class='ln'>153</a></td><td>  <a id="153c3" class="tk">tmpVal</a>.<a id="153c10" class="tk">fltVal</a> = <a id="153c19" class="tk">value</a>;</td></tr>
+<tr name="154" id="154">
+<td><a id="l154" class='ln'>154</a></td><td>  <a id="154c3" class="tk">result</a> = (<a id="154c13" class="tk">boolean_T</a>)((<a id="154c25" class="tk">tmpVal</a>.<a id="154c32" class="tk">bitVal</a>.<a id="154c39" class="tk">words</a>.<a id="154c45" class="tk">wordH</a> <a id="154c51" class="tk">&amp;</a> 0x7FF00000) <a id="154c65" class="tk">==</a> 0x7FF00000 <a id="154c79" class="tk">&amp;&amp;</a></td></tr>
+<tr name="155" id="155">
+<td><a id="l155" class='ln'>155</a></td><td>                       ( (<a id="155c27" class="tk">tmpVal</a>.<a id="155c34" class="tk">bitVal</a>.<a id="155c41" class="tk">words</a>.<a id="155c47" class="tk">wordH</a> <a id="155c53" class="tk">&amp;</a> 0x000FFFFF) <a id="155c67" class="tk">!=</a> 0 <a id="155c72" class="tk">||</a></td></tr>
+<tr name="156" id="156">
+<td><a id="l156" class='ln'>156</a></td><td>                         (<a id="156c27" class="tk">tmpVal</a>.<a id="156c34" class="tk">bitVal</a>.<a id="156c41" class="tk">words</a>.<a id="156c47" class="tk">wordL</a> <a id="156c53" class="tk">!=</a> 0) ));</td></tr>
+<tr name="157" id="157">
+<td><a id="l157" class='ln'>157</a></td><td></td></tr>
+<tr name="158" id="158">
+<td><a id="l158" class='ln'>158</a></td><td></td></tr>
+<tr name="159" id="159">
+<td><a id="l159" class='ln'>159</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="160" id="160">
+<td><a id="l160" class='ln'>160</a></td><td>    <span class="kw">return</span> <a id="160c12" class="tk">result</a>;</td></tr>
+<tr name="161" id="161">
+<td><a id="l161" class='ln'>161</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="162" id="162">
+<td><a id="l162" class='ln'>162</a></td><td>    </td></tr>
+<tr name="163" id="163">
+<td><a id="l163" class='ln'>163</a></td><td>  <span class="ct">/* Test if single-precision value is not a number */</span></td></tr>
+<tr name="164" id="164">
+<td><a id="l164" class='ln'>164</a></td><td>     <a id="164c6" class="tk">boolean_T</a> <a id="164c16" class="tk">rtIsNaNF</a>(<a id="164c25" class="tk">real32_T</a> <a id="164c34" class="tk">value</a>) <span class="br">{</span></td></tr>
+<tr name="165" id="165">
+<td><a id="l165" class='ln'>165</a></td><td>    <a id="165c5" class="tk">IEEESingle</a> <a id="165c16" class="tk">tmp</a>;</td></tr>
+<tr name="166" id="166">
+<td><a id="l166" class='ln'>166</a></td><td>    <a id="166c5" class="tk">tmp</a>.<a id="166c9" class="tk">wordL</a>.<a id="166c15" class="tk">wordLreal</a> = <a id="166c27" class="tk">value</a>;</td></tr>
+<tr name="167" id="167">
+<td><a id="l167" class='ln'>167</a></td><td>    <span class="kw">return</span> (<a id="167c13" class="tk">boolean_T</a>)( (<a id="167c26" class="tk">tmp</a>.<a id="167c30" class="tk">wordL</a>.<a id="167c36" class="tk">wordLuint</a> <a id="167c46" class="tk">&amp;</a> 0x7F800000) <a id="167c60" class="tk">==</a> 0x7F800000 <a id="167c74" class="tk">&amp;&amp;</a></td></tr>
+<tr name="168" id="168">
+<td><a id="l168" class='ln'>168</a></td><td>                        (<a id="168c26" class="tk">tmp</a>.<a id="168c30" class="tk">wordL</a>.<a id="168c36" class="tk">wordLuint</a> <a id="168c46" class="tk">&amp;</a> 0x007FFFFF) <a id="168c60" class="tk">!=</a> 0 );</td></tr>
+<tr name="169" id="169">
+<td><a id="l169" class='ln'>169</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="170" id="170">
+<td><a id="l170" class='ln'>170</a></td><td>    </td></tr>
+<tr name="171" id="171">
+<td><a id="l171" class='ln'>171</a></td><td></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>  </td></tr>
+<tr name="174" id="174">
+<td><a id="l174" class='ln'>174</a></td><td></td></tr>
+<tr name="175" id="175">
+<td><a id="l175" class='ln'>175</a></td><td>  </td></tr>
+<tr name="176" id="176">
+<td><a id="l176" class='ln'>176</a></td><td></td></tr>
+<tr name="177" id="177">
+<td><a id="l177" class='ln'>177</a></td><td>  </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>  </td></tr>
+<tr name="180" id="180">
+<td><a id="l180" class='ln'>180</a></td><td></td></tr>
+</table>
+</pre>
+</body>
+</html>

+ 308 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/html/rt_nonfinite_h.html

@@ -0,0 +1,308 @@
+<!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></td></tr>
+<tr name="2" id="2">
+<td><a id="l2" class='ln'>2</a></td><td></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">  * rt_nonfinite.h</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">    * Code generation for model "PMSM_Motor_TL3_sf".</span></td></tr>
+<tr name="7" id="7">
+<td><a id="l7" class='ln'>7</a></td><td><span class="ct">  *</span></td></tr>
+<tr name="8" id="8">
+<td><a id="l8" class='ln'>8</a></td><td><span class="ct">  * Model version              : 1.825</span></td></tr>
+<tr name="9" id="9">
+<td><a id="l9" class='ln'>9</a></td><td><span class="ct">  * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020</span></td></tr>
+<tr name="10" id="10">
+<td><a id="l10" class='ln'>10</a></td><td><span class="ct">  * C source code generated on : Fri Apr 14 12:51:02 2023</span></td></tr>
+<tr name="11" id="11">
+<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * </span></td></tr>
+<tr name="12" id="12">
+<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * Target selection: rtwsfcn.tlc</span></td></tr>
+<tr name="13" id="13">
+<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
+<tr name="14" id="14">
+<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> * Embedded hardware selection: ARM Compatible-&gt;ARM Cortex-M</span></td></tr>
+<tr name="15" id="15">
+<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Emulation hardware selection: </span></td></tr>
+<tr name="16" id="16">
+<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> *    Differs from embedded hardware (MATLAB Host)</span></td></tr>
+<tr name="17" id="17">
+<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> * Code generation objectives: </span></td></tr>
+<tr name="18" id="18">
+<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> *    1. Execution efficiency</span></td></tr>
+<tr name="19" id="19">
+<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> *    2. RAM efficiency</span></td></tr>
+<tr name="20" id="20">
+<td><a id="l20" class='ln'>20</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
+<tr name="21" id="21">
+<td><a id="l21" class='ln'>21</a></td><td><span class="ct">  */</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></td></tr>
+<tr name="24" id="24">
+<td><a id="l24" class='ln'>24</a></td><td>  <span class="pp">#ifndef</span> <a id="24c11" class="tk">RTW_HEADER_rt_nonfinite_h_</a></td></tr>
+<tr name="25" id="25">
+<td><a id="l25" class='ln'>25</a></td><td>  <span class="pp">#define</span> <a id="25c11" class="tk">RTW_HEADER_rt_nonfinite_h_</a></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></td></tr>
+<tr name="28" id="28">
+<td><a id="l28" class='ln'>28</a></td><td>    </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>  </td></tr>
+<tr name="31" id="31">
+<td><a id="l31" class='ln'>31</a></td><td><span class="pp">#include &lt;stddef.h&gt;</span></td></tr>
+<tr name="32" id="32">
+<td><a id="l32" class='ln'>32</a></td><td>  <span class="pp">#include "rtwtypes.h"</span></td></tr>
+<tr name="33" id="33">
+<td><a id="l33" class='ln'>33</a></td><td></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></td></tr>
+<tr name="36" id="36">
+<td><a id="l36" class='ln'>36</a></td><td>  </td></tr>
+<tr name="37" id="37">
+<td><a id="l37" class='ln'>37</a></td><td></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></td></tr>
+<tr name="40" id="40">
+<td><a id="l40" class='ln'>40</a></td><td>  </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>  </td></tr>
+<tr name="43" id="43">
+<td><a id="l43" class='ln'>43</a></td><td></td></tr>
+<tr name="44" id="44">
+<td><a id="l44" class='ln'>44</a></td><td>  </td></tr>
+<tr name="45" id="45">
+<td><a id="l45" class='ln'>45</a></td><td></td></tr>
+<tr name="46" id="46">
+<td><a id="l46" class='ln'>46</a></td><td>  </td></tr>
+<tr name="47" id="47">
+<td><a id="l47" class='ln'>47</a></td><td></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></td></tr>
+<tr name="50" id="50">
+<td><a id="l50" class='ln'>50</a></td><td>  </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>  </td></tr>
+<tr name="53" id="53">
+<td><a id="l53" class='ln'>53</a></td><td></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></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></td></tr>
+<tr name="58" id="58">
+<td><a id="l58" class='ln'>58</a></td><td>  </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>  </td></tr>
+<tr name="61" id="61">
+<td><a id="l61" class='ln'>61</a></td><td></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></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>  </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></td></tr>
+<tr name="68" id="68">
+<td><a id="l68" class='ln'>68</a></td><td>  <span class="kw">extern</span> <a id="68c10" class="tk">real_T</a> <a id="68c17" class="tk">rtInf</a>;</td></tr>
+<tr name="69" id="69">
+<td><a id="l69" class='ln'>69</a></td><td></td></tr>
+<tr name="70" id="70">
+<td><a id="l70" class='ln'>70</a></td><td></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></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="kw">extern</span> <a id="74c10" class="tk">real_T</a> <a id="74c17" class="tk">rtMinusInf</a>;</td></tr>
+<tr name="75" id="75">
+<td><a id="l75" class='ln'>75</a></td><td></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>  </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></td></tr>
+<tr name="80" id="80">
+<td><a id="l80" class='ln'>80</a></td><td>  <span class="kw">extern</span> <a id="80c10" class="tk">real_T</a> <a id="80c17" class="tk">rtNaN</a>;</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></td></tr>
+<tr name="83" id="83">
+<td><a id="l83" class='ln'>83</a></td><td>  </td></tr>
+<tr name="84" id="84">
+<td><a id="l84" class='ln'>84</a></td><td></td></tr>
+<tr name="85" id="85">
+<td><a id="l85" class='ln'>85</a></td><td></td></tr>
+<tr name="86" id="86">
+<td><a id="l86" class='ln'>86</a></td><td>  <span class="kw">extern</span> <a id="86c10" class="tk">real32_T</a> <a id="86c19" class="tk">rtInfF</a>;</td></tr>
+<tr name="87" id="87">
+<td><a id="l87" class='ln'>87</a></td><td></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>  </td></tr>
+<tr name="90" id="90">
+<td><a id="l90" class='ln'>90</a></td><td></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="kw">extern</span> <a id="92c10" class="tk">real32_T</a> <a id="92c19" class="tk">rtMinusInfF</a>;</td></tr>
+<tr name="93" id="93">
+<td><a id="l93" class='ln'>93</a></td><td></td></tr>
+<tr name="94" id="94">
+<td><a id="l94" class='ln'>94</a></td><td></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></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="kw">extern</span> <a id="98c10" class="tk">real32_T</a> <a id="98c19" class="tk">rtNaNF</a>;</td></tr>
+<tr name="99" id="99">
+<td><a id="l99" class='ln'>99</a></td><td></td></tr>
+<tr name="100" id="100">
+<td><a id="l100" class='ln'>100</a></td><td></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="kw">extern</span> <span class="kw">void</span> <a id="102c17" class="tk">rt_InitInfAndNaN</a>(<a id="102c34" class="tk">size_t</a> <a id="102c41" class="tk">realSize</a>);</td></tr>
+<tr name="103" id="103">
+<td><a id="l103" class='ln'>103</a></td><td>      <span class="kw">extern</span> <a id="103c14" class="tk">boolean_T</a> <a id="103c24" class="tk">rtIsInf</a>(<a id="103c32" class="tk">real_T</a> <a id="103c39" class="tk">value</a>);</td></tr>
+<tr name="104" id="104">
+<td><a id="l104" class='ln'>104</a></td><td>      <span class="kw">extern</span> <a id="104c14" class="tk">boolean_T</a> <a id="104c24" class="tk">rtIsInfF</a>(<a id="104c33" class="tk">real32_T</a> <a id="104c42" class="tk">value</a>);</td></tr>
+<tr name="105" id="105">
+<td><a id="l105" class='ln'>105</a></td><td>      <span class="kw">extern</span> <a id="105c14" class="tk">boolean_T</a> <a id="105c24" class="tk">rtIsNaN</a>(<a id="105c32" class="tk">real_T</a> <a id="105c39" class="tk">value</a>);</td></tr>
+<tr name="106" id="106">
+<td><a id="l106" class='ln'>106</a></td><td>      <span class="kw">extern</span> <a id="106c14" class="tk">boolean_T</a> <a id="106c24" class="tk">rtIsNaNF</a>(<a id="106c33" class="tk">real32_T</a> <a id="106c42" class="tk">value</a>);</td></tr>
+<tr name="107" id="107">
+<td><a id="l107" class='ln'>107</a></td><td>    </td></tr>
+<tr name="108" id="108">
+<td><a id="l108" class='ln'>108</a></td><td>  <span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="109" id="109">
+<td><a id="l109" class='ln'>109</a></td><td>    <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="110" id="110">
+<td><a id="l110" class='ln'>110</a></td><td>        <a id="110c9" class="tk">uint32_T</a> <a id="110c18" class="tk">wordH</a>;</td></tr>
+<tr name="111" id="111">
+<td><a id="l111" class='ln'>111</a></td><td>        <a id="111c9" class="tk">uint32_T</a> <a id="111c18" class="tk">wordL</a>;</td></tr>
+<tr name="112" id="112">
+<td><a id="l112" class='ln'>112</a></td><td>    <span class="br">}</span> <a id="112c7" class="tk">words</a>;</td></tr>
+<tr name="113" id="113">
+<td><a id="l113" class='ln'>113</a></td><td>  <span class="br">}</span> <a id="113c5" class="tk">BigEndianIEEEDouble</a>;</td></tr>
+<tr name="114" id="114">
+<td><a id="l114" class='ln'>114</a></td><td>  </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="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="117" id="117">
+<td><a id="l117" class='ln'>117</a></td><td>    <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="118" id="118">
+<td><a id="l118" class='ln'>118</a></td><td>        <a id="118c9" class="tk">uint32_T</a> <a id="118c18" class="tk">wordL</a>;</td></tr>
+<tr name="119" id="119">
+<td><a id="l119" class='ln'>119</a></td><td>        <a id="119c9" class="tk">uint32_T</a> <a id="119c18" class="tk">wordH</a>;</td></tr>
+<tr name="120" id="120">
+<td><a id="l120" class='ln'>120</a></td><td>    <span class="br">}</span> <a id="120c7" class="tk">words</a>;</td></tr>
+<tr name="121" id="121">
+<td><a id="l121" class='ln'>121</a></td><td>  <span class="br">}</span> <a id="121c5" class="tk">LittleEndianIEEEDouble</a>;</td></tr>
+<tr name="122" id="122">
+<td><a id="l122" class='ln'>122</a></td><td></td></tr>
+<tr name="123" id="123">
+<td><a id="l123" class='ln'>123</a></td><td>  </td></tr>
+<tr name="124" id="124">
+<td><a id="l124" class='ln'>124</a></td><td>  <span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="125" id="125">
+<td><a id="l125" class='ln'>125</a></td><td>    <span class="kw">union</span> <span class="br">{</span></td></tr>
+<tr name="126" id="126">
+<td><a id="l126" class='ln'>126</a></td><td>      <a id="126c7" class="tk">real32_T</a> <a id="126c16" class="tk">wordLreal</a>;</td></tr>
+<tr name="127" id="127">
+<td><a id="l127" class='ln'>127</a></td><td>      <a id="127c7" class="tk">uint32_T</a> <a id="127c16" class="tk">wordLuint</a>;</td></tr>
+<tr name="128" id="128">
+<td><a id="l128" class='ln'>128</a></td><td>    <span class="br">}</span> <a id="128c7" class="tk">wordL</a>;</td></tr>
+<tr name="129" id="129">
+<td><a id="l129" class='ln'>129</a></td><td>  <span class="br">}</span> <a id="129c5" class="tk">IEEESingle</a>;</td></tr>
+<tr name="130" id="130">
+<td><a id="l130" class='ln'>130</a></td><td>  </td></tr>
+<tr name="131" id="131">
+<td><a id="l131" class='ln'>131</a></td><td>  </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></td></tr>
+<tr name="134" id="134">
+<td><a id="l134" class='ln'>134</a></td><td></td></tr>
+<tr name="135" id="135">
+<td><a id="l135" class='ln'>135</a></td><td>  </td></tr>
+<tr name="136" id="136">
+<td><a id="l136" class='ln'>136</a></td><td></td></tr>
+<tr name="137" id="137">
+<td><a id="l137" class='ln'>137</a></td><td>  </td></tr>
+<tr name="138" id="138">
+<td><a id="l138" class='ln'>138</a></td><td></td></tr>
+<tr name="139" id="139">
+<td><a id="l139" class='ln'>139</a></td><td>  </td></tr>
+<tr name="140" id="140">
+<td><a id="l140" class='ln'>140</a></td><td></td></tr>
+<tr name="141" id="141">
+<td><a id="l141" class='ln'>141</a></td><td>  </td></tr>
+<tr name="142" id="142">
+<td><a id="l142" class='ln'>142</a></td><td></td></tr>
+<tr name="143" id="143">
+<td><a id="l143" class='ln'>143</a></td><td>  </td></tr>
+<tr name="144" id="144">
+<td><a id="l144" class='ln'>144</a></td><td></td></tr>
+<tr name="145" id="145">
+<td><a id="l145" class='ln'>145</a></td><td>    <span class="pp">#endif</span> <span class="ct">/* RTW_HEADER_rt_nonfinite_h_ */</span></td></tr>
+<tr name="146" id="146">
+<td><a id="l146" class='ln'>146</a></td><td></td></tr>
+</table>
+</pre>
+</body>
+</html>

+ 2091 - 0
Simulink/PMSM_Motor_TL3_sfcn_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/PMSM_Motor_TL3_sfcn_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/PMSM_Motor_TL3_sfcn_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/PMSM_Motor_TL3_sfcn_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/PMSM_Motor_TL3_sfcn_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');
+        }
+    }
+}

+ 176 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/html/rtwtypes_h.html

@@ -0,0 +1,176 @@
+<!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"> * 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 generation for model "PMSM_Motor_TL3_sf".</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.825</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 source code generated on : Fri Apr 14 12:51:02 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: rtwsfcn.tlc</span></td></tr>
+<tr name="11" id="11">
+<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
+<tr name="12" id="12">
+<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * Embedded hardware selection: ARM Compatible-&gt;ARM Cortex-M</span></td></tr>
+<tr name="13" id="13">
+<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> * Emulation hardware selection:</span></td></tr>
+<tr name="14" id="14">
+<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> *    Differs from embedded hardware (MATLAB Host)</span></td></tr>
+<tr name="15" id="15">
+<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Code generation objectives:</span></td></tr>
+<tr name="16" id="16">
+<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> *    1. Execution efficiency</span></td></tr>
+<tr name="17" id="17">
+<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> *    2. RAM efficiency</span></td></tr>
+<tr name="18" id="18">
+<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
+<tr name="19" id="19">
+<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> */</span></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="pp">#ifndef</span> <a id="21c9" class="tk">RTWTYPES_H</a></td></tr>
+<tr name="22" id="22">
+<td><a id="l22" class='ln'>22</a></td><td><span class="pp">#define</span> <a id="22c9" class="tk">RTWTYPES_H</a></td></tr>
+<tr name="23" id="23">
+<td><a id="l23" class='ln'>23</a></td><td><span class="pp">#include "tmwtypes.h"</span></td></tr>
+<tr name="24" id="24">
+<td><a id="l24" class='ln'>24</a></td><td><span class="pp">#include "simstruc_types.h"</span></td></tr>
+<tr name="25" id="25">
+<td><a id="l25" class='ln'>25</a></td><td><span class="pp">#ifndef</span> <a id="25c9" class="tk">POINTER_T</a></td></tr>
+<tr name="26" id="26">
+<td><a id="l26" class='ln'>26</a></td><td><span class="pp">#define</span> <a id="26c9" class="tk">POINTER_T</a></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="kw">typedef</span> <span class="kw">void</span> <a id="28c14" class="tk">*</a> <a id="28c16" class="tk">pointer_T</a>;</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="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">/* Logical type definitions */</span></td></tr>
+<tr name="33" id="33">
+<td><a id="l33" class='ln'>33</a></td><td><span class="pp">#if</span> (<a id="33c6" class="tk">!</a><a id="33c7" class="tk">defined</a>(<a id="33c15" class="tk">__cplusplus</a>))</td></tr>
+<tr name="34" id="34">
+<td><a id="l34" class='ln'>34</a></td><td><span class="pp">#ifndef</span> false</td></tr>
+<tr name="35" id="35">
+<td><a id="l35" class='ln'>35</a></td><td><span class="pp">#define</span> false                          (0U)</td></tr>
+<tr name="36" id="36">
+<td><a id="l36" class='ln'>36</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="37" id="37">
+<td><a id="l37" class='ln'>37</a></td><td></td></tr>
+<tr name="38" id="38">
+<td><a id="l38" class='ln'>38</a></td><td><span class="pp">#ifndef</span> true</td></tr>
+<tr name="39" id="39">
+<td><a id="l39" class='ln'>39</a></td><td><span class="pp">#define</span> true                           (1U)</td></tr>
+<tr name="40" id="40">
+<td><a id="l40" class='ln'>40</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="41" id="41">
+<td><a id="l41" class='ln'>41</a></td><td><span class="pp">#endif</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="pp">#ifndef</span> <a id="43c9" class="tk">INT64_T</a></td></tr>
+<tr name="44" id="44">
+<td><a id="l44" class='ln'>44</a></td><td><span class="pp">#define</span> <a id="44c9" class="tk">INT64_T</a></td></tr>
+<tr name="45" id="45">
+<td><a id="l45" class='ln'>45</a></td><td></td></tr>
+<tr name="46" id="46">
+<td><a id="l46" class='ln'>46</a></td><td><span class="kw">typedef</span> <span class="kw">long</span> <span class="kw">long</span> <a id="46c19" class="tk">int64_T</a>;</td></tr>
+<tr name="47" id="47">
+<td><a id="l47" class='ln'>47</a></td><td></td></tr>
+<tr name="48" id="48">
+<td><a id="l48" class='ln'>48</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="49" id="49">
+<td><a id="l49" class='ln'>49</a></td><td></td></tr>
+<tr name="50" id="50">
+<td><a id="l50" class='ln'>50</a></td><td><span class="pp">#ifndef</span> <a id="50c9" class="tk">UINT64_T</a></td></tr>
+<tr name="51" id="51">
+<td><a id="l51" class='ln'>51</a></td><td><span class="pp">#define</span> <a id="51c9" class="tk">UINT64_T</a></td></tr>
+<tr name="52" id="52">
+<td><a id="l52" class='ln'>52</a></td><td></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">unsigned</span> <span class="kw">long</span> <span class="kw">long</span> <a id="53c28" class="tk">uint64_T</a>;</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="pp">#endif</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">/*===========================================================================*</span></td></tr>
+<tr name="58" id="58">
+<td><a id="l58" class='ln'>58</a></td><td><span class="ct"> * Additional complex number type definitions                                           *</span></td></tr>
+<tr name="59" id="59">
+<td><a id="l59" class='ln'>59</a></td><td><span class="ct"> *===========================================================================*/</span></td></tr>
+<tr name="60" id="60">
+<td><a id="l60" class='ln'>60</a></td><td><span class="pp">#ifndef</span> <a id="60c9" class="tk">CINT64_T</a></td></tr>
+<tr name="61" id="61">
+<td><a id="l61" class='ln'>61</a></td><td><span class="pp">#define</span> <a id="61c9" class="tk">CINT64_T</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="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="64" id="64">
+<td><a id="l64" class='ln'>64</a></td><td>  <a id="64c3" class="tk">int64_T</a> <a id="64c11" class="tk">re</a>;</td></tr>
+<tr name="65" id="65">
+<td><a id="l65" class='ln'>65</a></td><td>  <a id="65c3" class="tk">int64_T</a> <a id="65c11" class="tk">im</a>;</td></tr>
+<tr name="66" id="66">
+<td><a id="l66" class='ln'>66</a></td><td><span class="br">}</span> <a id="66c3" class="tk">cint64_T</a>;</td></tr>
+<tr name="67" id="67">
+<td><a id="l67" class='ln'>67</a></td><td></td></tr>
+<tr name="68" id="68">
+<td><a id="l68" class='ln'>68</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="69" id="69">
+<td><a id="l69" class='ln'>69</a></td><td></td></tr>
+<tr name="70" id="70">
+<td><a id="l70" class='ln'>70</a></td><td><span class="pp">#ifndef</span> <a id="70c9" class="tk">CUINT64_T</a></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">CUINT64_T</a></td></tr>
+<tr name="72" id="72">
+<td><a id="l72" class='ln'>72</a></td><td></td></tr>
+<tr name="73" id="73">
+<td><a id="l73" class='ln'>73</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="74" id="74">
+<td><a id="l74" class='ln'>74</a></td><td>  <a id="74c3" class="tk">uint64_T</a> <a id="74c12" class="tk">re</a>;</td></tr>
+<tr name="75" id="75">
+<td><a id="l75" class='ln'>75</a></td><td>  <a id="75c3" class="tk">uint64_T</a> <a id="75c12" class="tk">im</a>;</td></tr>
+<tr name="76" id="76">
+<td><a id="l76" class='ln'>76</a></td><td><span class="br">}</span> <a id="76c3" class="tk">cuint64_T</a>;</td></tr>
+<tr name="77" id="77">
+<td><a id="l77" class='ln'>77</a></td><td></td></tr>
+<tr name="78" id="78">
+<td><a id="l78" class='ln'>78</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="79" id="79">
+<td><a id="l79" class='ln'>79</a></td><td><span class="pp">#endif</span>                                 <span class="ct">/* RTWTYPES_H */</span></td></tr>
+<tr name="80" id="80">
+<td><a id="l80" class='ln'>80</a></td><td></td></tr>
+</table>
+</pre>
+</body>
+</html>

+ 559 - 0
Simulink/PMSM_Motor_TL3_sfcn_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/PMSM_Motor_TL3_sfcn_rtw/html/spinner.gif


+ 4 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/mlEnv.txt

@@ -0,0 +1,4 @@
+MATLAB_ROOT=G:
+ALT_MATLAB_ROOT=G:
+MATLAB_BIN=G:\bin
+ALT_MATLAB_BIN=G:\bin

+ 2 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/modelsources.txt

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

+ 597 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/multiword_types.h

@@ -0,0 +1,597 @@
+/*
+ * multiword_types.h
+ *
+ * Code generation for model "PMSM_Motor_TL3_sf".
+ *
+ * Model version              : 1.825
+ * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020
+ * C source code generated on : Fri Apr 14 12:51:02 2023
+ *
+ * Target selection: rtwsfcn.tlc
+ * Note: GRT includes extra infrastructure and instrumentation for prototyping
+ * Embedded hardware selection: ARM Compatible->ARM Cortex-M
+ * Emulation hardware selection:
+ *    Differs from embedded hardware (MATLAB Host)
+ * Code generation objectives:
+ *    1. Execution efficiency
+ *    2. RAM efficiency
+ * Validation result: Not run
+ */
+
+#ifndef MULTIWORD_TYPES_H
+#define MULTIWORD_TYPES_H
+#include "rtwtypes.h"
+
+/*
+ * Definitions supporting external data access
+ */
+typedef int64_T chunk_T;
+typedef uint64_T uchunk_T;
+
+/*
+ * MultiWord supporting definitions
+ */
+typedef long long longlong_T;
+
+/*
+ * MultiWord types
+ */
+typedef struct {
+  uint64_T chunks[2];
+} int128m_T;
+
+typedef struct {
+  int128m_T re;
+  int128m_T im;
+} cint128m_T;
+
+typedef struct {
+  uint64_T chunks[2];
+} uint128m_T;
+
+typedef struct {
+  uint128m_T re;
+  uint128m_T im;
+} cuint128m_T;
+
+typedef struct {
+  uint64_T chunks[3];
+} int192m_T;
+
+typedef struct {
+  int192m_T re;
+  int192m_T im;
+} cint192m_T;
+
+typedef struct {
+  uint64_T chunks[3];
+} uint192m_T;
+
+typedef struct {
+  uint192m_T re;
+  uint192m_T im;
+} cuint192m_T;
+
+typedef struct {
+  uint64_T chunks[4];
+} int256m_T;
+
+typedef struct {
+  int256m_T re;
+  int256m_T im;
+} cint256m_T;
+
+typedef struct {
+  uint64_T chunks[4];
+} uint256m_T;
+
+typedef struct {
+  uint256m_T re;
+  uint256m_T im;
+} cuint256m_T;
+
+typedef struct {
+  uint64_T chunks[5];
+} int320m_T;
+
+typedef struct {
+  int320m_T re;
+  int320m_T im;
+} cint320m_T;
+
+typedef struct {
+  uint64_T chunks[5];
+} uint320m_T;
+
+typedef struct {
+  uint320m_T re;
+  uint320m_T im;
+} cuint320m_T;
+
+typedef struct {
+  uint64_T chunks[6];
+} int384m_T;
+
+typedef struct {
+  int384m_T re;
+  int384m_T im;
+} cint384m_T;
+
+typedef struct {
+  uint64_T chunks[6];
+} uint384m_T;
+
+typedef struct {
+  uint384m_T re;
+  uint384m_T im;
+} cuint384m_T;
+
+typedef struct {
+  uint64_T chunks[7];
+} int448m_T;
+
+typedef struct {
+  int448m_T re;
+  int448m_T im;
+} cint448m_T;
+
+typedef struct {
+  uint64_T chunks[7];
+} uint448m_T;
+
+typedef struct {
+  uint448m_T re;
+  uint448m_T im;
+} cuint448m_T;
+
+typedef struct {
+  uint64_T chunks[8];
+} int512m_T;
+
+typedef struct {
+  int512m_T re;
+  int512m_T im;
+} cint512m_T;
+
+typedef struct {
+  uint64_T chunks[8];
+} uint512m_T;
+
+typedef struct {
+  uint512m_T re;
+  uint512m_T im;
+} cuint512m_T;
+
+typedef struct {
+  uint64_T chunks[9];
+} int576m_T;
+
+typedef struct {
+  int576m_T re;
+  int576m_T im;
+} cint576m_T;
+
+typedef struct {
+  uint64_T chunks[9];
+} uint576m_T;
+
+typedef struct {
+  uint576m_T re;
+  uint576m_T im;
+} cuint576m_T;
+
+typedef struct {
+  uint64_T chunks[10];
+} int640m_T;
+
+typedef struct {
+  int640m_T re;
+  int640m_T im;
+} cint640m_T;
+
+typedef struct {
+  uint64_T chunks[10];
+} uint640m_T;
+
+typedef struct {
+  uint640m_T re;
+  uint640m_T im;
+} cuint640m_T;
+
+typedef struct {
+  uint64_T chunks[11];
+} int704m_T;
+
+typedef struct {
+  int704m_T re;
+  int704m_T im;
+} cint704m_T;
+
+typedef struct {
+  uint64_T chunks[11];
+} uint704m_T;
+
+typedef struct {
+  uint704m_T re;
+  uint704m_T im;
+} cuint704m_T;
+
+typedef struct {
+  uint64_T chunks[12];
+} int768m_T;
+
+typedef struct {
+  int768m_T re;
+  int768m_T im;
+} cint768m_T;
+
+typedef struct {
+  uint64_T chunks[12];
+} uint768m_T;
+
+typedef struct {
+  uint768m_T re;
+  uint768m_T im;
+} cuint768m_T;
+
+typedef struct {
+  uint64_T chunks[13];
+} int832m_T;
+
+typedef struct {
+  int832m_T re;
+  int832m_T im;
+} cint832m_T;
+
+typedef struct {
+  uint64_T chunks[13];
+} uint832m_T;
+
+typedef struct {
+  uint832m_T re;
+  uint832m_T im;
+} cuint832m_T;
+
+typedef struct {
+  uint64_T chunks[14];
+} int896m_T;
+
+typedef struct {
+  int896m_T re;
+  int896m_T im;
+} cint896m_T;
+
+typedef struct {
+  uint64_T chunks[14];
+} uint896m_T;
+
+typedef struct {
+  uint896m_T re;
+  uint896m_T im;
+} cuint896m_T;
+
+typedef struct {
+  uint64_T chunks[15];
+} int960m_T;
+
+typedef struct {
+  int960m_T re;
+  int960m_T im;
+} cint960m_T;
+
+typedef struct {
+  uint64_T chunks[15];
+} uint960m_T;
+
+typedef struct {
+  uint960m_T re;
+  uint960m_T im;
+} cuint960m_T;
+
+typedef struct {
+  uint64_T chunks[16];
+} int1024m_T;
+
+typedef struct {
+  int1024m_T re;
+  int1024m_T im;
+} cint1024m_T;
+
+typedef struct {
+  uint64_T chunks[16];
+} uint1024m_T;
+
+typedef struct {
+  uint1024m_T re;
+  uint1024m_T im;
+} cuint1024m_T;
+
+typedef struct {
+  uint64_T chunks[17];
+} int1088m_T;
+
+typedef struct {
+  int1088m_T re;
+  int1088m_T im;
+} cint1088m_T;
+
+typedef struct {
+  uint64_T chunks[17];
+} uint1088m_T;
+
+typedef struct {
+  uint1088m_T re;
+  uint1088m_T im;
+} cuint1088m_T;
+
+typedef struct {
+  uint64_T chunks[18];
+} int1152m_T;
+
+typedef struct {
+  int1152m_T re;
+  int1152m_T im;
+} cint1152m_T;
+
+typedef struct {
+  uint64_T chunks[18];
+} uint1152m_T;
+
+typedef struct {
+  uint1152m_T re;
+  uint1152m_T im;
+} cuint1152m_T;
+
+typedef struct {
+  uint64_T chunks[19];
+} int1216m_T;
+
+typedef struct {
+  int1216m_T re;
+  int1216m_T im;
+} cint1216m_T;
+
+typedef struct {
+  uint64_T chunks[19];
+} uint1216m_T;
+
+typedef struct {
+  uint1216m_T re;
+  uint1216m_T im;
+} cuint1216m_T;
+
+typedef struct {
+  uint64_T chunks[20];
+} int1280m_T;
+
+typedef struct {
+  int1280m_T re;
+  int1280m_T im;
+} cint1280m_T;
+
+typedef struct {
+  uint64_T chunks[20];
+} uint1280m_T;
+
+typedef struct {
+  uint1280m_T re;
+  uint1280m_T im;
+} cuint1280m_T;
+
+typedef struct {
+  uint64_T chunks[21];
+} int1344m_T;
+
+typedef struct {
+  int1344m_T re;
+  int1344m_T im;
+} cint1344m_T;
+
+typedef struct {
+  uint64_T chunks[21];
+} uint1344m_T;
+
+typedef struct {
+  uint1344m_T re;
+  uint1344m_T im;
+} cuint1344m_T;
+
+typedef struct {
+  uint64_T chunks[22];
+} int1408m_T;
+
+typedef struct {
+  int1408m_T re;
+  int1408m_T im;
+} cint1408m_T;
+
+typedef struct {
+  uint64_T chunks[22];
+} uint1408m_T;
+
+typedef struct {
+  uint1408m_T re;
+  uint1408m_T im;
+} cuint1408m_T;
+
+typedef struct {
+  uint64_T chunks[23];
+} int1472m_T;
+
+typedef struct {
+  int1472m_T re;
+  int1472m_T im;
+} cint1472m_T;
+
+typedef struct {
+  uint64_T chunks[23];
+} uint1472m_T;
+
+typedef struct {
+  uint1472m_T re;
+  uint1472m_T im;
+} cuint1472m_T;
+
+typedef struct {
+  uint64_T chunks[24];
+} int1536m_T;
+
+typedef struct {
+  int1536m_T re;
+  int1536m_T im;
+} cint1536m_T;
+
+typedef struct {
+  uint64_T chunks[24];
+} uint1536m_T;
+
+typedef struct {
+  uint1536m_T re;
+  uint1536m_T im;
+} cuint1536m_T;
+
+typedef struct {
+  uint64_T chunks[25];
+} int1600m_T;
+
+typedef struct {
+  int1600m_T re;
+  int1600m_T im;
+} cint1600m_T;
+
+typedef struct {
+  uint64_T chunks[25];
+} uint1600m_T;
+
+typedef struct {
+  uint1600m_T re;
+  uint1600m_T im;
+} cuint1600m_T;
+
+typedef struct {
+  uint64_T chunks[26];
+} int1664m_T;
+
+typedef struct {
+  int1664m_T re;
+  int1664m_T im;
+} cint1664m_T;
+
+typedef struct {
+  uint64_T chunks[26];
+} uint1664m_T;
+
+typedef struct {
+  uint1664m_T re;
+  uint1664m_T im;
+} cuint1664m_T;
+
+typedef struct {
+  uint64_T chunks[27];
+} int1728m_T;
+
+typedef struct {
+  int1728m_T re;
+  int1728m_T im;
+} cint1728m_T;
+
+typedef struct {
+  uint64_T chunks[27];
+} uint1728m_T;
+
+typedef struct {
+  uint1728m_T re;
+  uint1728m_T im;
+} cuint1728m_T;
+
+typedef struct {
+  uint64_T chunks[28];
+} int1792m_T;
+
+typedef struct {
+  int1792m_T re;
+  int1792m_T im;
+} cint1792m_T;
+
+typedef struct {
+  uint64_T chunks[28];
+} uint1792m_T;
+
+typedef struct {
+  uint1792m_T re;
+  uint1792m_T im;
+} cuint1792m_T;
+
+typedef struct {
+  uint64_T chunks[29];
+} int1856m_T;
+
+typedef struct {
+  int1856m_T re;
+  int1856m_T im;
+} cint1856m_T;
+
+typedef struct {
+  uint64_T chunks[29];
+} uint1856m_T;
+
+typedef struct {
+  uint1856m_T re;
+  uint1856m_T im;
+} cuint1856m_T;
+
+typedef struct {
+  uint64_T chunks[30];
+} int1920m_T;
+
+typedef struct {
+  int1920m_T re;
+  int1920m_T im;
+} cint1920m_T;
+
+typedef struct {
+  uint64_T chunks[30];
+} uint1920m_T;
+
+typedef struct {
+  uint1920m_T re;
+  uint1920m_T im;
+} cuint1920m_T;
+
+typedef struct {
+  uint64_T chunks[31];
+} int1984m_T;
+
+typedef struct {
+  int1984m_T re;
+  int1984m_T im;
+} cint1984m_T;
+
+typedef struct {
+  uint64_T chunks[31];
+} uint1984m_T;
+
+typedef struct {
+  uint1984m_T re;
+  uint1984m_T im;
+} cuint1984m_T;
+
+typedef struct {
+  uint64_T chunks[32];
+} int2048m_T;
+
+typedef struct {
+  int2048m_T re;
+  int2048m_T im;
+} cint2048m_T;
+
+typedef struct {
+  uint64_T chunks[32];
+} uint2048m_T;
+
+typedef struct {
+  uint2048m_T re;
+  uint2048m_T im;
+} cuint2048m_T;
+
+#endif                                 /* MULTIWORD_TYPES_H */

+ 144 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/rtGetInf.c

@@ -0,0 +1,144 @@
+/*
+ * rtGetInf.c
+ *
+ * Code generation for model "PMSM_Motor_TL3_sf".
+ *
+ * Model version              : 1.825
+ * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020
+ * C source code generated on : Fri Apr 14 12:51:02 2023
+ *
+ * Target selection: rtwsfcn.tlc
+ * Note: GRT includes extra infrastructure and instrumentation for prototyping
+ * Embedded hardware selection: ARM Compatible->ARM Cortex-M
+ * Emulation hardware selection:
+ *    Differs from embedded hardware (MATLAB Host)
+ * Code generation objectives:
+ *    1. Execution efficiency
+ *    2. RAM efficiency
+ * Validation result: Not run
+ */
+
+/*
+ * Abstract:
+ *      Function to initialize non-finite, Inf
+ */
+#include "rtGetInf.h"
+#define NumBitsPerChar                 8U
+
+/*
+ * Initialize rtInf needed by the generated code.
+ * Inf is initialized as non-signaling. Assumes IEEE.
+ */
+real_T rtGetInf(void)
+{
+  size_t bitsPerReal = sizeof(real_T) * (NumBitsPerChar);
+  real_T inf = 0.0;
+  if (bitsPerReal == 32U) {
+    inf = rtGetInfF();
+  } else {
+    uint16_T one = 1U;
+    enum {
+      LittleEndian,
+      BigEndian
+    } machByteOrder = (*((uint8_T *) &one) == 1U) ? LittleEndian : BigEndian;
+    switch (machByteOrder) {
+     case LittleEndian:
+      {
+        union {
+          LittleEndianIEEEDouble bitVal;
+          real_T fltVal;
+        } tmpVal;
+
+        tmpVal.bitVal.words.wordH = 0x7FF00000U;
+        tmpVal.bitVal.words.wordL = 0x00000000U;
+        inf = tmpVal.fltVal;
+        break;
+      }
+
+     case BigEndian:
+      {
+        union {
+          BigEndianIEEEDouble bitVal;
+          real_T fltVal;
+        } tmpVal;
+
+        tmpVal.bitVal.words.wordH = 0x7FF00000U;
+        tmpVal.bitVal.words.wordL = 0x00000000U;
+        inf = tmpVal.fltVal;
+        break;
+      }
+    }
+  }
+
+  return inf;
+}
+
+/*
+ * Initialize rtInfF needed by the generated code.
+ * Inf is initialized as non-signaling. Assumes IEEE.
+ */
+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.
+ */
+real_T rtGetMinusInf(void)
+{
+  size_t bitsPerReal = sizeof(real_T) * (NumBitsPerChar);
+  real_T minf = 0.0;
+  if (bitsPerReal == 32U) {
+    minf = rtGetMinusInfF();
+  } else {
+    uint16_T one = 1U;
+    enum {
+      LittleEndian,
+      BigEndian
+    } machByteOrder = (*((uint8_T *) &one) == 1U) ? LittleEndian : BigEndian;
+    switch (machByteOrder) {
+     case LittleEndian:
+      {
+        union {
+          LittleEndianIEEEDouble bitVal;
+          real_T fltVal;
+        } tmpVal;
+
+        tmpVal.bitVal.words.wordH = 0xFFF00000U;
+        tmpVal.bitVal.words.wordL = 0x00000000U;
+        minf = tmpVal.fltVal;
+        break;
+      }
+
+     case BigEndian:
+      {
+        union {
+          BigEndianIEEEDouble bitVal;
+          real_T fltVal;
+        } tmpVal;
+
+        tmpVal.bitVal.words.wordH = 0xFFF00000U;
+        tmpVal.bitVal.words.wordL = 0x00000000U;
+        minf = tmpVal.fltVal;
+        break;
+      }
+    }
+  }
+
+  return minf;
+}
+
+/*
+ * Initialize rtMinusInfF needed by the generated code.
+ * Inf is initialized as non-signaling. Assumes IEEE.
+ */
+real32_T rtGetMinusInfF(void)
+{
+  IEEESingle minfF;
+  minfF.wordL.wordLuint = 0xFF800000U;
+  return minfF.wordL.wordLreal;
+}

+ 83 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/rtGetInf.h

@@ -0,0 +1,83 @@
+
+
+    /*
+  * rtGetInf.h
+  *
+    * Code generation for model "PMSM_Motor_TL3_sf".
+  *
+  * Model version              : 1.825
+  * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020
+  * C source code generated on : Fri Apr 14 12:51:02 2023
+ * 
+ * Target selection: rtwsfcn.tlc
+ * Note: GRT includes extra infrastructure and instrumentation for prototyping
+ * Embedded hardware selection: ARM Compatible->ARM Cortex-M
+ * Emulation hardware selection: 
+ *    Differs from embedded hardware (MATLAB Host)
+ * Code generation objectives: 
+ *    1. Execution efficiency
+ *    2. RAM efficiency
+ * Validation result: Not run
+  */
+
+
+  #ifndef RTW_HEADER_rtGetInf_h_
+  #define RTW_HEADER_rtGetInf_h_
+  
+
+    
+
+  
+#include <stddef.h>
+  #include "rtwtypes.h"
+  #include "rt_nonfinite.h"
+  
+
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+    
+    extern real_T rtGetInf(void);
+      extern real32_T rtGetInfF(void);
+      extern real_T rtGetMinusInf(void);
+      extern real32_T rtGetMinusInfF(void);
+    
+
+
+  
+
+  
+
+  
+
+  
+
+  
+
+    #endif /* RTW_HEADER_rtGetInf_h_ */

+ 104 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/rtGetNaN.c

@@ -0,0 +1,104 @@
+/*
+ * rtGetNaN.c
+ *
+ * Code generation for model "PMSM_Motor_TL3_sf".
+ *
+ * Model version              : 1.825
+ * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020
+ * C source code generated on : Fri Apr 14 12:51:02 2023
+ *
+ * Target selection: rtwsfcn.tlc
+ * Note: GRT includes extra infrastructure and instrumentation for prototyping
+ * Embedded hardware selection: ARM Compatible->ARM Cortex-M
+ * Emulation hardware selection:
+ *    Differs from embedded hardware (MATLAB Host)
+ * Code generation objectives:
+ *    1. Execution efficiency
+ *    2. RAM efficiency
+ * Validation result: Not run
+ */
+
+/*
+ * Abstract:
+ *      Function to initialize non-finite, NaN
+ */
+#include "rtGetNaN.h"
+#define NumBitsPerChar                 8U
+
+/*
+ * Initialize rtNaN needed by the generated code.
+ * NaN is initialized as non-signaling. Assumes IEEE.
+ */
+real_T rtGetNaN(void)
+{
+  size_t bitsPerReal = sizeof(real_T) * (NumBitsPerChar);
+  real_T nan = 0.0;
+  if (bitsPerReal == 32U) {
+    nan = rtGetNaNF();
+  } else {
+    uint16_T one = 1U;
+    enum {
+      LittleEndian,
+      BigEndian
+    } machByteOrder = (*((uint8_T *) &one) == 1U) ? LittleEndian : BigEndian;
+    switch (machByteOrder) {
+     case LittleEndian:
+      {
+        union {
+          LittleEndianIEEEDouble bitVal;
+          real_T fltVal;
+        } tmpVal;
+
+        tmpVal.bitVal.words.wordH = 0xFFF80000U;
+        tmpVal.bitVal.words.wordL = 0x00000000U;
+        nan = tmpVal.fltVal;
+        break;
+      }
+
+     case BigEndian:
+      {
+        union {
+          BigEndianIEEEDouble bitVal;
+          real_T fltVal;
+        } tmpVal;
+
+        tmpVal.bitVal.words.wordH = 0x7FFFFFFFU;
+        tmpVal.bitVal.words.wordL = 0xFFFFFFFFU;
+        nan = tmpVal.fltVal;
+        break;
+      }
+    }
+  }
+
+  return nan;
+}
+
+/*
+ * Initialize rtNaNF needed by the generated code.
+ * NaN is initialized as non-signaling. Assumes IEEE.
+ */
+real32_T rtGetNaNF(void)
+{
+  IEEESingle nanF = { { 0 } };
+
+  uint16_T one = 1U;
+  enum {
+    LittleEndian,
+    BigEndian
+  } machByteOrder = (*((uint8_T *) &one) == 1U) ? LittleEndian : BigEndian;
+  switch (machByteOrder) {
+   case LittleEndian:
+    {
+      nanF.wordL.wordLuint = 0xFFC00000U;
+      break;
+    }
+
+   case BigEndian:
+    {
+      nanF.wordL.wordLuint = 0x7FFFFFFFU;
+      break;
+    }
+  }
+
+  return nanF.wordL.wordLreal;
+}

+ 81 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/rtGetNaN.h

@@ -0,0 +1,81 @@
+
+
+    /*
+  * rtGetNaN.h
+  *
+    * Code generation for model "PMSM_Motor_TL3_sf".
+  *
+  * Model version              : 1.825
+  * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020
+  * C source code generated on : Fri Apr 14 12:51:02 2023
+ * 
+ * Target selection: rtwsfcn.tlc
+ * Note: GRT includes extra infrastructure and instrumentation for prototyping
+ * Embedded hardware selection: ARM Compatible->ARM Cortex-M
+ * Emulation hardware selection: 
+ *    Differs from embedded hardware (MATLAB Host)
+ * Code generation objectives: 
+ *    1. Execution efficiency
+ *    2. RAM efficiency
+ * Validation result: Not run
+  */
+
+
+  #ifndef RTW_HEADER_rtGetNaN_h_
+  #define RTW_HEADER_rtGetNaN_h_
+  
+
+    
+
+  
+#include <stddef.h>
+  #include "rtwtypes.h"
+  #include "rt_nonfinite.h"
+
+
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+    
+    extern real_T rtGetNaN(void);
+      extern real32_T rtGetNaNF(void);
+    
+
+
+  
+
+  
+
+  
+
+  
+
+  
+
+    #endif /* RTW_HEADER_rtGetNaN_h_ */

+ 104 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/rt_defines.h

@@ -0,0 +1,104 @@
+
+
+   /*
+  * rt_defines.h
+  *
+    * Code generation for model "PMSM_Motor_TL3_sf".
+  *
+  * Model version              : 1.825
+  * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020
+  * C source code generated on : Fri Apr 14 12:51:02 2023
+ * 
+ * Target selection: rtwsfcn.tlc
+ * Note: GRT includes extra infrastructure and instrumentation for prototyping
+ * Embedded hardware selection: ARM Compatible->ARM Cortex-M
+ * Emulation hardware selection: 
+ *    Differs from embedded hardware (MATLAB Host)
+ * Code generation objectives: 
+ *    1. Execution efficiency
+ *    2. RAM efficiency
+ * Validation result: Not run
+  */
+
+
+  #ifndef RTW_HEADER_rt_defines_h_
+  #define RTW_HEADER_rt_defines_h_
+  
+
+    
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+    
+
+ /*===========*
+  * 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  
+
+
+
+  
+
+  
+
+  
+
+  
+
+  
+
+    #endif /* RTW_HEADER_rt_defines_h_ */

+ 179 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/rt_nonfinite.c

@@ -0,0 +1,179 @@
+
+
+    /*
+  * rt_nonfinite.c
+  *
+    * Code generation for model "PMSM_Motor_TL3_sf".
+  *
+  * Model version              : 1.825
+  * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020
+  * C source code generated on : Fri Apr 14 12:51:02 2023
+ * 
+ * Target selection: rtwsfcn.tlc
+ * Note: GRT includes extra infrastructure and instrumentation for prototyping
+ * Embedded hardware selection: ARM Compatible->ARM Cortex-M
+ * Emulation hardware selection: 
+ *    Differs from embedded hardware (MATLAB Host)
+ * Code generation objectives: 
+ *    1. Execution efficiency
+ *    2. RAM efficiency
+ * Validation result: Not run
+  */
+
+
+
+    
+
+    /*
+  * Abstract:
+  *      Function to initialize non-finites,
+  *      (Inf, NaN and -Inf).
+  */
+    #include "rt_nonfinite.h"
+
+          #include "rtGetNaN.h"
+      
+        #include "rtGetInf.h"
+      
+    
+
+    
+
+
+  
+
+  
+
+  
+
+    #define NumBitsPerChar  8U
+
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+
+  real_T rtInf;
+
+
+  
+
+
+  real_T rtMinusInf;
+
+
+  
+
+
+  real_T rtNaN;
+
+
+  
+
+
+  real32_T rtInfF;
+
+
+  
+
+
+  real32_T rtMinusInfF;
+
+
+  
+
+
+  real32_T rtNaNF;
+
+
+
+
+
+    
+  /* 
+ * Initialize the rtInf, rtMinusInf, and rtNaN needed by the
+ * generated code. NaN is initialized as non-signaling. Assumes IEEE.
+ */
+
+     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 */
+     boolean_T rtIsInf(real_T value) {
+    return (boolean_T)((value==rtInf || value==rtMinusInf) ? 1U : 0U);
+  }
+    
+  /* Test if single-precision value is infinite */
+     boolean_T rtIsInfF(real32_T value) {
+    return (boolean_T)(((value)==rtInfF || (value)==rtMinusInfF) ? 1U : 0U);
+  }
+    
+  /* Test if value is not a number */
+     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 */
+     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 );
+  }
+    
+
+
+  
+
+  
+
+  
+
+  

+ 145 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/rt_nonfinite.h

@@ -0,0 +1,145 @@
+
+
+    /*
+  * rt_nonfinite.h
+  *
+    * Code generation for model "PMSM_Motor_TL3_sf".
+  *
+  * Model version              : 1.825
+  * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020
+  * C source code generated on : Fri Apr 14 12:51:02 2023
+ * 
+ * Target selection: rtwsfcn.tlc
+ * Note: GRT includes extra infrastructure and instrumentation for prototyping
+ * Embedded hardware selection: ARM Compatible->ARM Cortex-M
+ * Emulation hardware selection: 
+ *    Differs from embedded hardware (MATLAB Host)
+ * Code generation objectives: 
+ *    1. Execution efficiency
+ *    2. RAM efficiency
+ * Validation result: Not run
+  */
+
+
+  #ifndef RTW_HEADER_rt_nonfinite_h_
+  #define RTW_HEADER_rt_nonfinite_h_
+  
+
+    
+
+  
+#include <stddef.h>
+  #include "rtwtypes.h"
+
+
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+  
+
+     
+  
+
+
+  extern real_T rtInf;
+
+
+  
+
+
+  extern real_T rtMinusInf;
+
+
+  
+
+
+  extern real_T rtNaN;
+
+
+  
+
+
+  extern real32_T rtInfF;
+
+
+  
+
+
+  extern real32_T rtMinusInfF;
+
+
+  
+
+
+  extern real32_T rtNaNF;
+
+
+
+    extern void rt_InitInfAndNaN(size_t realSize);
+      extern boolean_T rtIsInf(real_T value);
+      extern boolean_T rtIsInfF(real32_T value);
+      extern boolean_T rtIsNaN(real_T value);
+      extern 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;
+  
+  
+   
+
+
+  
+
+  
+
+  
+
+  
+
+  
+
+    #endif /* RTW_HEADER_rt_nonfinite_h_ */

+ 4 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/rtw_proj.tmw

@@ -0,0 +1,4 @@
+Simulink Coder project for PMSM_Motor_TL3 using D:\Program Files\R2020b\toolbox\coder\compile\tmf\rtwsfcn_vcx64.tmf. 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\rtwsfcn\PMSM_Motor_TL3\tmwinternal\binfo.mat

+ 79 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/rtwtypes.h

@@ -0,0 +1,79 @@
+/*
+ * rtwtypes.h
+ *
+ * Code generation for model "PMSM_Motor_TL3_sf".
+ *
+ * Model version              : 1.825
+ * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020
+ * C source code generated on : Fri Apr 14 12:51:02 2023
+ *
+ * Target selection: rtwsfcn.tlc
+ * Note: GRT includes extra infrastructure and instrumentation for prototyping
+ * Embedded hardware selection: ARM Compatible->ARM Cortex-M
+ * Emulation hardware selection:
+ *    Differs from embedded hardware (MATLAB Host)
+ * Code generation objectives:
+ *    1. Execution efficiency
+ *    2. RAM efficiency
+ * Validation result: Not run
+ */
+
+#ifndef RTWTYPES_H
+#define RTWTYPES_H
+#include "tmwtypes.h"
+#include "simstruc_types.h"
+#ifndef POINTER_T
+#define POINTER_T
+
+typedef void * pointer_T;
+
+#endif
+
+/* Logical type definitions */
+#if (!defined(__cplusplus))
+#ifndef false
+#define false                          (0U)
+#endif
+
+#ifndef true
+#define true                           (1U)
+#endif
+#endif
+
+#ifndef INT64_T
+#define INT64_T
+
+typedef long long int64_T;
+
+#endif
+
+#ifndef UINT64_T
+#define UINT64_T
+
+typedef unsigned long long uint64_T;
+
+#endif
+
+/*===========================================================================*
+ * Additional complex number type definitions                                           *
+ *===========================================================================*/
+#ifndef CINT64_T
+#define CINT64_T
+
+typedef struct {
+  int64_T re;
+  int64_T im;
+} cint64_T;
+
+#endif
+
+#ifndef CUINT64_T
+#define CUINT64_T
+
+typedef struct {
+  uint64_T re;
+  uint64_T im;
+} cuint64_T;
+
+#endif
+#endif                                 /* RTWTYPES_H */

BIN
Simulink/PMSM_Motor_TL3_sfcn_rtw/rtwtypeschksum.mat


+ 6 - 0
Simulink/PMSM_Motor_TL3_sfcn_rtw/tmwinternal/simulink_cache.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<MF0 version="1.1" packageUris="http://schema.mathworks.com/mf0/SlCache/19700101">
+  <slcache.FileAttributes type="slcache.FileAttributes" uuid="55a3745a-c10b-4042-9766-87e65d421a6b">
+    <checksum>HNlZ/gdB9WSU5sImmp/HLQ==</checksum>
+  </slcache.FileAttributes>
+</MF0>

BIN
Simulink/PWM.slxc


+ 13 - 0
Simulink/PWM_sf.c

@@ -0,0 +1,13 @@
+/*
+ * Generated S-function Target for model PWM. 
+ * This source file provides access to the generated S-function target
+ * for other models.
+ *
+ * Created: Fri Apr 14 12:53:29 2023
+ */
+
+#include "PWM_sf.h"
+#include "PWM_sfcn_rtw\PWM_sf.c"
+#include "PWM_sfcn_rtw\PWM_sf_data.c"
+
+

+ 15 - 0
Simulink/PWM_sf.h

@@ -0,0 +1,15 @@
+/*
+* Generated S-function Target for model PWM. 
+* This file provides access to the generated S-function target
+* export file for other models.
+*
+* Created: Fri Apr 14 12:53:29 2023
+*/
+
+#ifndef RTWSFCN_PWM_sf_H
+#define RTWSFCN_PWM_sf_H
+
+#include "PWM_sfcn_rtw\PWM_sf.h"
+  #include "PWM_sfcn_rtw\PWM_sf_private.h"
+
+#endif

BIN
Simulink/PWM_sf.mexw64


+ 15 - 0
Simulink/PWM_sfcn_rtw/PWM.bat

@@ -0,0 +1,15 @@
+
+set "VSCMD_START_DIR=%CD%"
+call "d:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\VCVARSALL.BAT" amd64
+
+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 .
+nmake -f PWM.mk MATLAB_ROOT=%MATLAB_ROOT% ALT_MATLAB_ROOT=%ALT_MATLAB_ROOT% MATLAB_BIN=%MATLAB_BIN% ALT_MATLAB_BIN=%ALT_MATLAB_BIN%  CREATEMODEL=1 USEPARAMVALUES=0 OPTS="-DTID01EQ=0"
+@if errorlevel 1 goto error_exit
+exit 0
+
+:error_exit
+echo The make command returned an error of %errorlevel%
+exit 1

+ 322 - 0
Simulink/PWM_sfcn_rtw/PWM.mk

@@ -0,0 +1,322 @@
+# Copyright 1994-2020 The MathWorks, Inc.
+#
+#
+# Abstract:
+#       Template makefile for building a Windows-based stand-alone embedded
+#       real-time version of Simulink model using generated C code and the
+#          Microsoft Visual C/C++ compiler for x64.
+#
+#       Note that this template is automatically customized by the build 
+#       procedure to create "<model>.mk"
+#
+#       The following defines can be used to modify the behavior of the
+#       build:
+#         OPT_OPTS       - Optimization option. See DEFAULT_OPT_OPTS in
+#                          vctools.mak for default.
+#         OPTS           - User specific options.
+#         CPP_OPTS       - C++ compiler options.
+#         USER_SRCS      - Additional user sources, such as files needed by
+#                          S-functions.
+#         USER_INCLUDES  - Additional include paths
+#                          (i.e. USER_INCLUDES="-Iwhere-ever -Iwhere-ever2")
+#
+#       To enable debugging:
+#         set DEBUG_BUILD = 1, which will trigger OPTS=-Zi (may vary with
+#                               compiler version, see compiler doc) 
+#
+#       This template makefile is designed to be used with a system target
+#       file that contains 'rtwgensettings.BuildDirSuffix' see ert.tlc
+
+
+#------------------------ Macros read by make_rtw -----------------------------
+#
+# The following macros are read by the build procedure:
+#
+#  MAKECMD         - This is the command used to invoke the make utility
+#  HOST            - What platform this template makefile is targeted for
+#                    (i.e. PC or UNIX)
+#  BUILD           - Invoke make from the build procedure (yes/no)?
+#  SYS_TARGET_FILE - Name of system target file.
+
+MAKECMD         = nmake
+HOST            = PC
+BUILD           = yes
+SYS_TARGET_FILE = any
+BUILD_SUCCESS	= ^#^#^# Created
+
+# Opt in to simplified format by specifying compatible Toolchain
+TOOLCHAIN_NAME = [\
+    "Microsoft Visual C++ 2019 v16.0 | nmake (64-bit Windows)", \
+    "Microsoft Visual C++ 2017 v15.0 | nmake (64-bit Windows)", \
+    "Microsoft Visual C++ 2015 v14.0 | nmake (64-bit Windows)"]
+
+#---------------------- Tokens expanded by make_rtw ---------------------------
+#
+# The following tokens, when wrapped with "|>" and "<|" are expanded by the
+# build procedure.
+#
+#  MODEL_NAME          - Name of the Simulink block diagram
+#  MODEL_MODULES       - Any additional generated source modules
+#  MAKEFILE_NAME       - Name of makefile created from template makefile <model>.mk
+#  MATLAB_ROOT         - Path to where MATLAB is installed.
+#  MATLAB_BIN          - Path to MATLAB executable.
+#  S_FUNCTIONS_LIB     - List of S-functions libraries to link.
+#  NUMST               - Number of sample times
+#  NCSTATES            - Number of continuous states
+#  BUILDARGS           - Options passed in at the command line.
+#  MULTITASKING        - yes (1) or no (0): Is solver mode multitasking
+#  INTEGER_CODE        - yes (1) or no (0): Is generated code purely integer
+#  MAT_FILE            - yes (1) or no (0): Should mat file logging be done,
+#                        if 0, the generated code runs indefinitely
+#  MULTI_INSTANCE_CODE - Is the generated code multi instantiable (1/0)?
+#  MODELREFS           - List of referenced models
+#  SHRLIBTARGET        - Is this build intended for generation of a shared library instead 
+#                        of executable (1/0)?
+#  MAKEFILEBUILDER_TGT - Is this build performed by the MakefileBuilder class
+#                        e.g. to create a PIL executable?
+#  STANDALONE_SUPPRESS_EXE - Build the standalone target but only create object code modules 
+#                            and do not build an executable
+
+MODEL                   = PWM
+MODULES                 = 
+PRODUCT                 = PWM_sf.lib
+MAKEFILE                = PWM.mk
+MATLAB_ROOT             = D:\Program Files\R2020b
+ALT_MATLAB_ROOT         = D:\Program Files\R2020b
+MATLAB_BIN              = D:\Program Files\R2020b\bin
+ALT_MATLAB_BIN          = D:\Program Files\R2020b\bin
+START_DIR               = E:\works\mcu\MC100\Simulink
+S_FUNCTIONS_LIB         = 
+NUMST                   = 2
+NCSTATES                = 0
+BUILDARGS               = MATLAB_ROOT=%MATLAB_ROOT% ALT_MATLAB_ROOT=%ALT_MATLAB_ROOT% MATLAB_BIN=%MATLAB_BIN% ALT_MATLAB_BIN=%ALT_MATLAB_BIN%  CREATEMODEL=1 USEPARAMVALUES=0 OPTS="-DTID01EQ=0"
+MULTITASKING            = 1
+INTEGER_CODE            = 0
+MAT_FILE                = 0
+ALLOCATIONFCN           = 0
+ONESTEPFCN              = 0
+TERMFCN                 = 1
+ENABLE_SLEXEC_SSBRIDGE  = 0
+MULTI_INSTANCE_CODE     = 0
+CLASSIC_INTERFACE       = 1
+MODELREFS               = 
+TARGET_LANG_EXT         = c
+SHRLIBTARGET            = 0
+MAKEFILEBUILDER_TGT     = 0
+STANDALONE_SUPPRESS_EXE = 0
+OPTIMIZATION_FLAGS      = /DNDEBUG /Od /Oy-
+ADDITIONAL_LDFLAGS      = 
+INTERLEAVED_COMPLEX_FLAGS = -R2018a
+DEFINES_CUSTOM          = 
+DEFINES_OTHER           = -DHAVESTDIO
+COMPILE_FLAGS_OTHER     = 
+SYSTEM_LIBS             = /LIBPATH:"D:\Program Files\R2020b\extern\lib\win64\microsoft" libut.lib libfixedpoint.lib
+MODEL_HAS_DYNAMICALLY_LOADED_SFCNS = 0
+
+# To enable debugging:
+# set DEBUG_BUILD = 1
+DEBUG_BUILD             = 0
+
+#--------------------------- Model and reference models -----------------------
+MODELLIB                  = 
+MODELREF_LINK_LIBS        = 
+MODELREF_LINK_RSPFILE     = PWM_ref.rsp
+COMPILER_COMMAND_FILE     = PWM_comp.rsp
+RELATIVE_PATH_TO_ANCHOR   = ..
+MODELREF_TARGET_TYPE      = SIM
+
+!if "$(MATLAB_ROOT)" != "$(ALT_MATLAB_ROOT)"
+MATLAB_ROOT = $(ALT_MATLAB_ROOT)
+!endif
+!if "$(MATLAB_BIN)" != "$(ALT_MATLAB_BIN)"
+MATLAB_BIN = $(ALT_MATLAB_BIN)
+!endif
+MATLAB_ARCH_BIN = $(MATLAB_BIN)\win64
+
+#--------------------------- Tool Specifications ------------------------------
+!include $(MATLAB_ROOT)\rtw\c\tools\vctools.mak
+
+CMD_FILE             = $(MODEL).rsp
+
+#------------------------------ Include/Lib Path ------------------------------
+
+INCLUDE = .;$(RELATIVE_PATH_TO_ANCHOR);$(INCLUDE)
+
+#----------------- Compiler and Linker Options --------------------------------
+
+# Optimization Options
+OPT_OPTS = $(DEFAULT_OPT_OPTS)
+
+# General User Options
+!if "$(DEBUG_BUILD)" == "0"
+DBG_FLAG =
+!else
+#   Set OPT_OPTS=-Zi and any additional flags for debugging
+DBG_FLAG = -Zi
+!endif
+
+!if "$(MODELREF_TARGET_TYPE)" == "SIM"
+MDLREF_FLAG = -DMDL_REF_SIM_TGT=1 
+!if "$(ENABLE_SLEXEC_SSBRIDGE)" != "0"
+MDLREF_FLAG = $(MDLREF_FLAG) -DENABLE_SLEXEC_SSBRIDGE=$(ENABLE_SLEXEC_SSBRIDGE)
+!endif
+!else
+MDLREF_FLAG =
+!endif
+
+!if "$(OPTIMIZATION_FLAGS)" != ""
+CC_OPTS = $(OPTS) $(COMPILE_FLAGS_OTHER) $(OPTIMIZATION_FLAGS)
+!else
+CC_OPTS = $(OPTS) $(COMPILE_FLAGS_OTHER) $(OPT_OPTS) 
+!endif
+
+CPP_REQ_DEFINES = -DMODEL=$(MODEL) -DNUMST=$(NUMST) -DNCSTATES=$(NCSTATES) \
+		  -DMAT_FILE=$(MAT_FILE) -DINTEGER_CODE=$(INTEGER_CODE) \
+		  -DONESTEPFCN=$(ONESTEPFCN) -DTERMFCN=$(TERMFCN) \
+		  -DHAVESTDIO -DMULTI_INSTANCE_CODE=$(MULTI_INSTANCE_CODE) \
+		  -DCLASSIC_INTERFACE=$(CLASSIC_INTERFACE) \
+		  -DALLOCATIONFCN=$(ALLOCATIONFCN) \
+		  $(DEFINES_CUSTOM) $(DEFINES_OTHER)
+
+!if "$(MODELREF_TARGET_TYPE)" == "SIM"
+CPP_REQ_DEFINES = $(CPP_REQ_DEFINES) $(MDLREF_FLAG)
+!else
+CPP_REQ_DEFINES = $(CPP_REQ_DEFINES) -DMT=$(MULTITASKING)
+!endif
+
+
+CPP_REQ_DEFINES = $(CPP_REQ_DEFINES) -DMODEL_HAS_DYNAMICALLY_LOADED_SFCNS=$(MODEL_HAS_DYNAMICALLY_LOADED_SFCNS)
+
+CVARSFLAG = $(cvarsdll)
+
+CFLAGS = $(cflags) @$(COMPILER_COMMAND_FILE) $(CVARSFLAG) \
+	 -D_CRT_SECURE_NO_WARNINGS $(DBG_FLAG) $(CC_OPTS) $(CPP_REQ_DEFINES) \
+	 $(USER_INCLUDES)
+
+CPPFLAGS = $(cflags) @$(COMPILER_COMMAND_FILE) $(CVARSFLAG) \
+	   -EHs -D_CRT_SECURE_NO_WARNINGS $(DBG_FLAG) $(CPP_OPTS) $(CC_OPTS) \
+	   $(CPP_REQ_DEFINES) $(USER_INCLUDES)
+
+LDFLAGS = $(ldebug) $(conflags) $(conlibs) $(ADDITIONAL_LDFLAGS)
+
+#----------------------------- Source Files -----------------------------------
+
+ADD_SRCS =
+
+SRCS = $(ADD_SRCS) $(MODULES) $(USER_SRCS)
+
+USER_SRCS =
+
+
+OBJS_CPP_UPPER = $(SRCS:.CPP=.obj)
+OBJS_CPP_LOWER = $(OBJS_CPP_UPPER:.cpp=.obj)
+OBJS_C_UPPER = $(OBJS_CPP_LOWER:.C=.obj)
+OBJS = $(OBJS_C_UPPER:.c=.obj)
+
+#-------------------------- Additional Libraries -------------------------------
+
+LIBS = 
+
+
+LIBS = $(LIBS) $(S_FUNCTIONS_LIB)
+
+#--------------------------------- Rules --------------------------------------
+all: set_environment_variables $(PRODUCT)
+
+!if "$(MODELREF_TARGET_TYPE)" == "NONE"
+#--- Shared library target (.dll) ---
+!if $(SHRLIBTARGET)==1
+$(PRODUCT) : $(LIBS) $(OBJS) $(LIBS) $(MODELREF_LINK_LIBS)
+	@cmd /C "echo ### Linking ..."
+	$(LD) $(LDFLAGS) $(LIBS) \
+    @$(CMD_FILE) @$(MODELREF_LINK_RSPFILE) -dll -def:$(MODEL).def -out:$@
+	@cmd /C "echo $(BUILD_SUCCESS) dynamically linked library  $(PRODUCT)"
+!else
+!if $(MAKEFILEBUILDER_TGT)==1
+PREBUILT_SRCS  = $(MODULES)
+PREBUILT_OBJS_CPP_UPPER = $(PREBUILT_SRCS:.CPP=.obj)
+PREBUILT_OBJS_CPP_LOWER = $(PREBUILT_OBJS_CPP_UPPER:.cpp=.obj)
+PREBUILT_OBJS_C_UPPER = $(PREBUILT_OBJS_CPP_LOWER:.C=.obj)
+PREBUILT_OBJS = $(PREBUILT_OBJS_C_UPPER:.c=.obj)
+$(PRODUCT) : $(LIBS) $(PREBUILT_OBJS) $(OBJS) $(MODELLIB) $(LIBS) $(MODELREF_LINK_LIBS)
+	@cmd /C "echo ### Linking ..."
+
+	@cmd /C "echo $(BUILD_SUCCESS) executable $(PRODUCT)"
+!else
+!if $(STANDALONE_SUPPRESS_EXE)==1
+#  Build object code only for top level model
+.PHONY: $(PRODUCT)
+$(PRODUCT) : $(LIBS) $(OBJS) $(LIBS)
+	@cmd /C "echo $(BUILD_SUCCESS) object modules $(PRODUCT)"
+!else
+#--- Stand-alone model (.exe) ---
+$(PRODUCT) : $(LIBS) $(OBJS) $(LIBS) $(MODELREF_LINK_LIBS)
+	@cmd /C "echo ### Linking ..."
+	$(LD) $(LDFLAGS) $(LIBS) @$(CMD_FILE) @$(MODELREF_LINK_RSPFILE) $(SYSTEM_LIBS) -out:$@
+	@cmd /C "echo $(BUILD_SUCCESS) executable $(PRODUCT)"
+!endif
+!endif
+!endif
+!else
+#--- Library target ---
+$(PRODUCT) : $(LIBS) $(OBJS) 
+	@cmd /C "echo ### Linking ..."
+
+
+!endif	
+
+
+#-------------------------- Support for building modules ----------------------
+{$(MATLAB_ROOT)\rtw\c\src}.c.obj :
+	@cmd /C "echo ### Compiling $<"
+	$(CC) $(CFLAGS) $<
+
+{$(MATLAB_ROOT)\simulink\src}.c.obj :
+	@cmd /C "echo ### Compiling $<"
+	$(CC) $(CFLAGS) $<
+
+
+
+{$(MATLAB_ROOT)\rtw\c\src}.cpp.obj :
+	@cmd /C "echo ### Compiling $<"
+	$(CC) $(CPPFLAGS) $<
+
+{$(MATLAB_ROOT)\simulink\src}.cpp.obj :
+	@cmd /C "echo ### Compiling $<"
+	$(CC) $(CPPFLAGS) $<
+
+
+
+
+# Put these rules last, otherwise nmake will check toolboxes first
+
+{$(RELATIVE_PATH_TO_ANCHOR)}.c.obj :
+	@cmd /C "echo ### Compiling $<"
+	$(CC) $(CFLAGS) $<
+
+{$(RELATIVE_PATH_TO_ANCHOR)}.cpp.obj :
+	@cmd /C "echo ### Compiling $<"
+	$(CC) $(CPPFLAGS) $<
+
+.c.obj :
+	@cmd /C "echo ### Compiling $<"
+	$(CC) $(CFLAGS) $<
+
+.cpp.obj :
+	@cmd /C "echo ### Compiling $<"
+	$(CC) $(CPPFLAGS) $<
+
+set_environment_variables:
+	@set INCLUDE=$(INCLUDE)
+	@set LIB=$(LIB)
+
+# Libraries:
+
+
+
+
+
+
+#----------------------------- Dependencies -----------------------------------
+
+

+ 0 - 0
Simulink/PWM_sfcn_rtw/PWM.rsp


+ 5 - 0
Simulink/PWM_sfcn_rtw/PWM_comp.rsp

@@ -0,0 +1,5 @@
+-IE:\works\mcu\MC100\Simulink
+-IE:\works\mcu\MC100\Simulink\PWM_sfcn_rtw
+-I"D:\Program Files\R2020b\extern\include"
+-I"D:\Program Files\R2020b\simulink\include"
+-I"D:\Program Files\R2020b\rtw\c\src"

+ 97 - 0
Simulink/PWM_sfcn_rtw/PWM_mid.h

@@ -0,0 +1,97 @@
+/*
+ * PWM_mid.h
+ *
+ * Code generation for model "PWM_sf".
+ *
+ * Model version              : 1.825
+ * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020
+ * C source code generated on : Fri Apr 14 12:53:29 2023
+ *
+ * Target selection: rtwsfcn.tlc
+ * Note: GRT includes extra infrastructure and instrumentation for prototyping
+ * Embedded hardware selection: ARM Compatible->ARM Cortex-M
+ * Emulation hardware selection:
+ *    Differs from embedded hardware (MATLAB Host)
+ * Code generation objectives:
+ *    1. Execution efficiency
+ *    2. RAM efficiency
+ * Validation result: Not run
+ *
+ * SOURCES: PWM_sf.c
+ */
+
+#include "simstruc.h"
+#include "PWM_sf.h"
+#if defined(MATLAB_MEX_FILE) || defined(RT_MALLOC)
+
+static int_T RegNumInputPorts(SimStruct *S, int_T nInputPorts)
+{
+  _ssSetNumInputPorts(S,nInputPorts);
+  return true;
+}
+
+static int_T RegNumOutputPorts(SimStruct *S, int_T nOutputPorts)
+{
+  _ssSetNumOutputPorts(S,nOutputPorts);
+  return true;
+}
+
+static int_T FcnSetErrorStatus(const SimStruct *S, DTypeId arg2)
+{
+  static char msg[256];
+  if (strlen(ssGetModelName(S)) < 128) {
+    sprintf(msg,
+            "S-function %s does not have a tlc file. It cannot use macros that access regDataType field in simstruct.",
+            ssGetModelName(S));
+  } else {
+    sprintf(msg,
+            "A S-function does not have a tlc file. It cannot use macros that access regDataType field in simstruct.");
+  }
+
+  ssSetErrorStatus(S, msg);
+  UNUSED_PARAMETER(arg2);
+  return 0;
+}
+
+static void * FcnSetErrorStatusWithReturnPtr(const SimStruct *S, DTypeId arg2)
+{
+  FcnSetErrorStatus(S,0);
+  UNUSED_PARAMETER(arg2);
+  return 0;
+}
+
+static int_T FcnSetErrorStatusWithArgPtr(const SimStruct *S, const void* arg2)
+{
+  FcnSetErrorStatus(S,0);
+  UNUSED_PARAMETER(arg2);
+  return 0;
+}
+
+#endif
+
+/* Instance data for model: PWM */
+void *PWM_malloc(SimStruct *rts)
+{
+  /* Local SimStruct for the generated S-Function */
+  LocalS *lS = (LocalS *) malloc(sizeof(LocalS));
+  ss_VALIDATE_MEMORY(rts,lS);
+  (void) memset((char *) lS, 0,
+                sizeof(LocalS));
+  ssSetUserData(rts, lS);
+
+  /* block I/O */
+  {
+    void *b = malloc(sizeof(B_PWM_T));
+    ss_VALIDATE_MEMORY(rts,b);
+    ssSetLocalBlockIO(rts, b);
+    (void) memset(b, 0,
+                  sizeof(B_PWM_T));
+  }
+
+  /* model checksums */
+  ssSetChecksumVal(rts, 0, 1460315084U);
+  ssSetChecksumVal(rts, 1, 1873271935U);
+  ssSetChecksumVal(rts, 2, 11797905U);
+  ssSetChecksumVal(rts, 3, 1909962613U);
+  return (NULL);
+}

+ 0 - 0
Simulink/PWM_sfcn_rtw/PWM_ref.rsp


+ 821 - 0
Simulink/PWM_sfcn_rtw/PWM_sf.c

@@ -0,0 +1,821 @@
+/*
+ * PWM_sf.c
+ *
+ * Code generation for model "PWM_sf".
+ *
+ * Model version              : 1.825
+ * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020
+ * C source code generated on : Fri Apr 14 12:53:29 2023
+ *
+ * Target selection: rtwsfcn.tlc
+ * Note: GRT includes extra infrastructure and instrumentation for prototyping
+ * Embedded hardware selection: ARM Compatible->ARM Cortex-M
+ * Emulation hardware selection:
+ *    Differs from embedded hardware (MATLAB Host)
+ * Code generation objectives:
+ *    1. Execution efficiency
+ *    2. RAM efficiency
+ * Validation result: Not run
+ */
+
+#include <math.h>
+#include "PWM_sf.h"
+#include "PWM_sf_private.h"
+#include "simstruc.h"
+#include "fixedpoint.h"
+#if defined(RT_MALLOC) || defined(MATLAB_MEX_FILE)
+
+extern void *PWM_malloc(SimStruct *S);
+
+#endif
+
+#ifndef __RTW_UTFREE__
+#if defined (MATLAB_MEX_FILE)
+
+extern void * utMalloc(size_t);
+extern void utFree(void *);
+
+#endif
+#endif                                 /* #ifndef __RTW_UTFREE__ */
+
+/* Forward declaration for local functions */
+static real_T PWM_rt_remd_snf(real_T u0, real_T u1);
+
+#if defined(MATLAB_MEX_FILE)
+#include "rt_nonfinite.c"
+#endif
+
+static const char_T *RT_MEMORY_ALLOCATION_ERROR =
+  "memory allocation error in generated S-Function";
+
+/*
+ * Time delay interpolation routine
+ *
+ * The linear interpolation is performed using the formula:
+ *
+ *          (t2 - tMinusDelay)         (tMinusDelay - t1)
+ * u(t)  =  ----------------- * u1  +  ------------------- * u2
+ *              (t2 - t1)                  (t2 - t1)
+ */
+real_T PWM_sf_rt_TDelayInterpolate(
+  real_T tMinusDelay,                 /* tMinusDelay = currentSimTime - delay */
+  real_T tStart,
+  real_T *tBuf,
+  real_T *uBuf,
+  int_T bufSz,
+  int_T *lastIdx,
+  int_T oldestIdx,
+  int_T newIdx,
+  real_T initOutput,
+  boolean_T discrete,
+  boolean_T minorStepAndTAtLastMajorOutput)
+{
+  int_T i;
+  real_T yout, t1, t2, u1, u2;
+
+  /*
+   * If there is only one data point in the buffer, this data point must be
+   * the t= 0 and tMinusDelay > t0, it ask for something unknown. The best
+   * guess if initial output as well
+   */
+  if ((newIdx == 0) && (oldestIdx ==0 ) && (tMinusDelay > tStart))
+    return initOutput;
+
+  /*
+   * If tMinusDelay is less than zero, should output initial value
+   */
+  if (tMinusDelay <= tStart)
+    return initOutput;
+
+  /* For fixed buffer extrapolation:
+   * if tMinusDelay is small than the time at oldestIdx, if discrete, output
+   * tailptr value,  else use tailptr and tailptr+1 value to extrapolate
+   * It is also for fixed buffer. Note: The same condition can happen for transport delay block where
+   * use tStart and and t[tail] other than using t[tail] and t[tail+1].
+   * See below
+   */
+  if ((tMinusDelay <= tBuf[oldestIdx] ) ) {
+    if (discrete) {
+      return(uBuf[oldestIdx]);
+    } else {
+      int_T tempIdx= oldestIdx + 1;
+      if (oldestIdx == bufSz-1)
+        tempIdx = 0;
+      t1= tBuf[oldestIdx];
+      t2= tBuf[tempIdx];
+      u1= uBuf[oldestIdx];
+      u2= uBuf[tempIdx];
+      if (t2 == t1) {
+        if (tMinusDelay >= t2) {
+          yout = u2;
+        } else {
+          yout = u1;
+        }
+      } else {
+        real_T f1 = (t2-tMinusDelay) / (t2-t1);
+        real_T f2 = 1.0 - f1;
+
+        /*
+         * Use Lagrange's interpolation formula.  Exact outputs at t1, t2.
+         */
+        yout = f1*u1 + f2*u2;
+      }
+
+      return yout;
+    }
+  }
+
+  /*
+   * When block does not have direct feedthrough, we use the table of
+   * values to extrapolate off the end of the table for delays that are less
+   * than 0 (less then step size).  This is not completely accurate.  The
+   * chain of events is as follows for a given time t.  Major output - look
+   * in table.  Update - add entry to table.  Now, if we call the output at
+   * time t again, there is a new entry in the table. For very small delays,
+   * this means that we will have a different answer from the previous call
+   * to the output fcn at the same time t.  The following code prevents this
+   * from happening.
+   */
+  if (minorStepAndTAtLastMajorOutput) {
+    /* pretend that the new entry has not been added to table */
+    if (newIdx != 0) {
+      if (*lastIdx == newIdx) {
+        (*lastIdx)--;
+      }
+
+      newIdx--;
+    } else {
+      if (*lastIdx == newIdx) {
+        *lastIdx = bufSz-1;
+      }
+
+      newIdx = bufSz - 1;
+    }
+  }
+
+  i = *lastIdx;
+  if (tBuf[i] < tMinusDelay) {
+    /* Look forward starting at last index */
+    while (tBuf[i] < tMinusDelay) {
+      /* May occur if the delay is less than step-size - extrapolate */
+      if (i == newIdx)
+        break;
+      i = ( i < (bufSz-1) ) ? (i+1) : 0;/* move through buffer */
+    }
+  } else {
+    /*
+     * Look backwards starting at last index which can happen when the
+     * delay time increases.
+     */
+    while (tBuf[i] >= tMinusDelay) {
+      /*
+       * Due to the entry condition at top of function, we
+       * should never hit the end.
+       */
+      i = (i > 0) ? i-1 : (bufSz-1);   /* move through buffer */
+    }
+
+    i = ( i < (bufSz-1) ) ? (i+1) : 0;
+  }
+
+  *lastIdx = i;
+  if (discrete) {
+    /*
+     * tempEps = 128 * eps;
+     * localEps = max(tempEps, tempEps*fabs(tBuf[i]))/2;
+     */
+    double tempEps = (DBL_EPSILON) * 128.0;
+    double localEps = tempEps * fabs(tBuf[i]);
+    if (tempEps > localEps) {
+      localEps = tempEps;
+    }
+
+    localEps = localEps / 2.0;
+    if (tMinusDelay >= (tBuf[i] - localEps)) {
+      yout = uBuf[i];
+    } else {
+      if (i == 0) {
+        yout = uBuf[bufSz-1];
+      } else {
+        yout = uBuf[i-1];
+      }
+    }
+  } else {
+    if (i == 0) {
+      t1 = tBuf[bufSz-1];
+      u1 = uBuf[bufSz-1];
+    } else {
+      t1 = tBuf[i-1];
+      u1 = uBuf[i-1];
+    }
+
+    t2 = tBuf[i];
+    u2 = uBuf[i];
+    if (t2 == t1) {
+      if (tMinusDelay >= t2) {
+        yout = u2;
+      } else {
+        yout = u1;
+      }
+    } else {
+      real_T f1 = (t2-tMinusDelay) / (t2-t1);
+      real_T f2 = 1.0 - f1;
+
+      /*
+       * Use Lagrange's interpolation formula.  Exact outputs at t1, t2.
+       */
+      yout = f1*u1 + f2*u2;
+    }
+  }
+
+  return(yout);
+}
+
+real_T PWM_look1_binlx(real_T u0, const real_T bp0[], const real_T table[],
+  uint32_T maxIndex)
+{
+  real_T frac;
+  real_T yL_0d0;
+  uint32_T bpIdx;
+  uint32_T iLeft;
+  uint32_T iRght;
+
+  /* Column-major Lookup 1-D
+     Search method: 'binary'
+     Use previous index: 'off'
+     Interpolation method: 'Linear point-slope'
+     Extrapolation method: 'Linear'
+     Use last breakpoint for index at or above upper limit: 'off'
+     Remove protection against out-of-range input in generated code: 'off'
+   */
+  /* Prelookup - Index and Fraction
+     Index Search method: 'binary'
+     Extrapolation method: 'Linear'
+     Use previous index: 'off'
+     Use last breakpoint for index at or above upper limit: 'off'
+     Remove protection against out-of-range input in generated code: 'off'
+   */
+  if (u0 <= bp0[0U]) {
+    iLeft = 0U;
+    frac = (u0 - bp0[0U]) / (bp0[1U] - bp0[0U]);
+  } else if (u0 < bp0[maxIndex]) {
+    /* Binary Search */
+    bpIdx = maxIndex >> 1U;
+    iLeft = 0U;
+    iRght = maxIndex;
+    while (iRght - iLeft > 1U) {
+      if (u0 < bp0[bpIdx]) {
+        iRght = bpIdx;
+      } else {
+        iLeft = bpIdx;
+      }
+
+      bpIdx = (iRght + iLeft) >> 1U;
+    }
+
+    frac = (u0 - bp0[iLeft]) / (bp0[iLeft + 1U] - bp0[iLeft]);
+  } else {
+    iLeft = maxIndex - 1U;
+    frac = (u0 - bp0[maxIndex - 1U]) / (bp0[maxIndex] - bp0[maxIndex - 1U]);
+  }
+
+  /* Column-major Interpolation 1-D
+     Interpolation method: 'Linear point-slope'
+     Use last breakpoint for index at or above upper limit: 'off'
+     Overflow mode: 'wrapping'
+   */
+  yL_0d0 = table[iLeft];
+  return (table[iLeft + 1U] - yL_0d0) * frac + yL_0d0;
+}
+
+static real_T PWM_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;
+}
+
+/* Start for root system: '<Root>' */
+#define MDL_START
+
+static void mdlStart(SimStruct *S)
+{
+  /* instance underlying S-Function data */
+#if defined(RT_MALLOC) || defined(MATLAB_MEX_FILE)
+#if defined(MATLAB_MEX_FILE)
+
+  /* non-finites */
+  rt_InitInfAndNaN(sizeof(real_T));
+
+  /* Check for invalid switching between solver types */
+  if (ssIsVariableStepSolver(S)) {
+    ssSetErrorStatus(S, "This Simulink Coder generated "
+                     "S-Function cannot be used in a simulation with "
+                     "a solver type of variable-step "
+                     "because this S-Function was created from a model with "
+                     "solver type of fixed-step and it has continuous time blocks. "
+                     "See the Solver page of the simulation parameters dialog.");
+    return;
+  }
+
+  if (fabs(ssGetFixedStepSize(S) - 5.0E-7) > mxGetEps()*100*5.0E-7) {
+    ssSetErrorStatus(S, "This Simulink Coder generated "
+                     "S-Function cannot be used in a simulation with "
+                     "the current fixed step size "
+                     "because this S-Function was created from a model with "
+                     "a fixed step size of 5.0E-7 and had both "
+                     "continuous blocks and discrete blocks running at this rate. "
+                     "See the Solver page of the simulation parameters dialog.");
+    return;
+  }
+
+#endif
+
+  PWM_malloc(S);
+  if (ssGetErrorStatus(S) != (NULL) ) {
+    return;
+  }
+
+#endif
+
+  {
+    B_PWM_T *_rtB;
+    _rtB = ((B_PWM_T *) ssGetLocalBlockIO(S));
+
+    /* Start for TransportDelay: '<S2>/Transport Delay' */
+    {
+      real_T *pBuffer = &((real_T*) ssGetDWork(S, 0))[1];
+      ((int_T*) ssGetDWork(S, 6))[0] = 0;
+      ((int_T*) ssGetDWork(S, 6))[1] = 0;
+      ((int_T*) ssGetDWork(S, 6))[2] = 0;
+      ((int_T*) ssGetDWork(S, 6))[3] = 1024;
+      pBuffer[0] = 0.0;
+      pBuffer[1024] = ssGetT(S);
+      ((void**) ssGetDWork(S, 3))[0] = (void *) &pBuffer[0];
+      ((void**) ssGetDWork(S, 3))[1] = (void *) &pBuffer[1024];
+    }
+
+    /* Start for TransportDelay: '<S2>/Transport Delay1' */
+    {
+      real_T *pBuffer = &((real_T*) ssGetDWork(S, 1))[1];
+      ((int_T*) ssGetDWork(S, 7))[0] = 0;
+      ((int_T*) ssGetDWork(S, 7))[1] = 0;
+      ((int_T*) ssGetDWork(S, 7))[2] = 0;
+      ((int_T*) ssGetDWork(S, 7))[3] = 1024;
+      pBuffer[0] = 0.0;
+      pBuffer[1024] = ssGetT(S);
+      ((void**) ssGetDWork(S, 4))[0] = (void *) &pBuffer[0];
+      ((void**) ssGetDWork(S, 4))[1] = (void *) &pBuffer[1024];
+    }
+
+    /* Start for TransportDelay: '<S2>/Transport Delay2' */
+    {
+      real_T *pBuffer = &((real_T*) ssGetDWork(S, 2))[1];
+      ((int_T*) ssGetDWork(S, 8))[0] = 0;
+      ((int_T*) ssGetDWork(S, 8))[1] = 0;
+      ((int_T*) ssGetDWork(S, 8))[2] = 0;
+      ((int_T*) ssGetDWork(S, 8))[3] = 1024;
+      pBuffer[0] = 0.0;
+      pBuffer[1024] = ssGetT(S);
+      ((void**) ssGetDWork(S, 5))[0] = (void *) &pBuffer[0];
+      ((void**) ssGetDWork(S, 5))[1] = (void *) &pBuffer[1024];
+    }
+  }
+}
+
+/* Outputs for root system: '<Root>' */
+static void mdlOutputs(SimStruct *S, int_T tid)
+{
+  /* local block i/o variables */
+  real_T rtb_TransportDelay1;
+  real_T rtb_TransportDelay2;
+  real_T rtb_TransportDelay;
+  B_PWM_T *_rtB;
+  real_T expr_2_0_0;
+  real_T rtb_Abs;
+  real_T rtb_Abs2;
+  boolean_T rtb_RelationalOperator;
+  boolean_T rtb_RelationalOperator1;
+  boolean_T rtb_RelationalOperator2;
+  _rtB = ((B_PWM_T *) ssGetLocalBlockIO(S));
+  if (ssIsContinuousTask(S, tid)) {
+    /* S-Function (sfun_tstart): '<S3>/startTime' */
+    /* S-Function Block (sfun_tstart): <S3>/startTime */
+    expr_2_0_0 = ssGetTStart(S);
+
+    /* Lookup_n-D: '<S3>/Look-Up Table1' incorporates:
+     *  Clock: '<S3>/Clock'
+     *  Constant: '<S3>/Constant'
+     *  Math: '<S3>/Math Function'
+     *  Sum: '<S3>/Sum'
+     */
+    expr_2_0_0 = PWM_look1_binlx(PWM_rt_remd_snf(ssGetT(S) - expr_2_0_0, 0.0001),
+      PWM_ConstP.LookUpTable1_bp01Data, PWM_ConstP.LookUpTable1_tableData, 2U);
+
+    /* RelationalOperator: '<S2>/Relational Operator' */
+    rtb_RelationalOperator = (expr_2_0_0 > *((const real_T **)
+      ssGetInputPortSignalPtrs(S, 0))[0]);
+
+    /* TransportDelay: '<S2>/Transport Delay' */
+    {
+      real_T **uBuffer = (real_T**)&((void**) ssGetDWork(S, 3))[0];
+      real_T **tBuffer = (real_T**)&((void**) ssGetDWork(S, 3))[1];
+      real_T simTime = ssGetT(S);
+      real_T tMinusDelay = simTime - 2.0E-6;
+      rtb_TransportDelay = PWM_sf_rt_TDelayInterpolate(
+        tMinusDelay,
+        0.0,
+        *tBuffer,
+        *uBuffer,
+        ((int_T*) ssGetDWork(S, 6))[3],
+        &((int_T*) ssGetDWork(S, 6))[2],
+        ((int_T*) ssGetDWork(S, 6))[0],
+        ((int_T*) ssGetDWork(S, 6))[1],
+        0.0,
+        0,
+        (boolean_T) (ssIsMinorTimeStep(S) && (ssGetTimeOfLastOutput(S) == ssGetT
+        (S))));
+    }
+
+    /* DataTypeConversion: '<S2>/Data Type Conversion3' incorporates:
+     *  Logic: '<S2>/Logical Operator'
+     */
+    rtb_Abs2 = !rtb_RelationalOperator;
+
+    /* Abs: '<S2>/Abs' incorporates:
+     *  DataTypeConversion: '<S2>/Data Type Conversion3'
+     *  Sum: '<S2>/Subtract'
+     */
+    rtb_Abs = fabs(rtb_Abs2 - rtb_TransportDelay);
+
+    /* Product: '<S2>/Product' */
+    _rtB->Product = rtb_Abs2 * rtb_Abs;
+
+    /* Product: '<S2>/Product1' */
+    _rtB->Product1 = rtb_Abs * rtb_TransportDelay;
+
+    /* RelationalOperator: '<S2>/Relational Operator1' */
+    rtb_RelationalOperator1 = (expr_2_0_0 > *((const real_T **)
+      ssGetInputPortSignalPtrs(S, 0))[1]);
+
+    /* TransportDelay: '<S2>/Transport Delay1' */
+    {
+      real_T **uBuffer = (real_T**)&((void**) ssGetDWork(S, 4))[0];
+      real_T **tBuffer = (real_T**)&((void**) ssGetDWork(S, 4))[1];
+      real_T simTime = ssGetT(S);
+      real_T tMinusDelay = simTime - 2.0E-6;
+      rtb_TransportDelay1 = PWM_sf_rt_TDelayInterpolate(
+        tMinusDelay,
+        0.0,
+        *tBuffer,
+        *uBuffer,
+        ((int_T*) ssGetDWork(S, 7))[3],
+        &((int_T*) ssGetDWork(S, 7))[2],
+        ((int_T*) ssGetDWork(S, 7))[0],
+        ((int_T*) ssGetDWork(S, 7))[1],
+        0.0,
+        0,
+        (boolean_T) (ssIsMinorTimeStep(S) && (ssGetTimeOfLastOutput(S) == ssGetT
+        (S))));
+    }
+
+    /* RelationalOperator: '<S2>/Relational Operator2' */
+    rtb_RelationalOperator2 = (expr_2_0_0 > *((const real_T **)
+      ssGetInputPortSignalPtrs(S, 0))[2]);
+
+    /* TransportDelay: '<S2>/Transport Delay2' */
+    {
+      real_T **uBuffer = (real_T**)&((void**) ssGetDWork(S, 5))[0];
+      real_T **tBuffer = (real_T**)&((void**) ssGetDWork(S, 5))[1];
+      real_T simTime = ssGetT(S);
+      real_T tMinusDelay = simTime - 2.0E-6;
+      rtb_TransportDelay2 = PWM_sf_rt_TDelayInterpolate(
+        tMinusDelay,
+        0.0,
+        *tBuffer,
+        *uBuffer,
+        ((int_T*) ssGetDWork(S, 8))[3],
+        &((int_T*) ssGetDWork(S, 8))[2],
+        ((int_T*) ssGetDWork(S, 8))[0],
+        ((int_T*) ssGetDWork(S, 8))[1],
+        0.0,
+        0,
+        (boolean_T) (ssIsMinorTimeStep(S) && (ssGetTimeOfLastOutput(S) == ssGetT
+        (S))));
+    }
+
+    /* DataTypeConversion: '<S2>/Data Type Conversion1' incorporates:
+     *  Logic: '<S2>/Logical Operator1'
+     *  ManualSwitch: '<S1>/Manual Switch'
+     */
+    rtb_Abs2 = !rtb_RelationalOperator1;
+
+    /* Abs: '<S2>/Abs1' incorporates:
+     *  DataTypeConversion: '<S2>/Data Type Conversion1'
+     *  ManualSwitch: '<S1>/Manual Switch'
+     *  Sum: '<S2>/Subtract1'
+     */
+    expr_2_0_0 = fabs(rtb_Abs2 - rtb_TransportDelay1);
+
+    /* Outport: '<Root>/PWMb' incorporates:
+     *  ManualSwitch: '<S1>/Manual Switch'
+     *  Product: '<S2>/Product2'
+     *  Product: '<S2>/Product3'
+     */
+    ((real_T *)ssGetOutputPortSignal(S, 0))[2] = rtb_Abs2 * expr_2_0_0;
+    ((real_T *)ssGetOutputPortSignal(S, 0))[3] = expr_2_0_0 *
+      rtb_TransportDelay1;
+
+    /* DataTypeConversion: '<S2>/Data Type Conversion5' incorporates:
+     *  Logic: '<S2>/Logical Operator2'
+     *  ManualSwitch: '<S1>/Manual Switch'
+     */
+    expr_2_0_0 = !rtb_RelationalOperator2;
+
+    /* Abs: '<S2>/Abs2' incorporates:
+     *  ManualSwitch: '<S1>/Manual Switch'
+     *  Sum: '<S2>/Subtract2'
+     */
+    rtb_Abs2 = fabs(expr_2_0_0 - rtb_TransportDelay2);
+
+    /* Outport: '<Root>/PWMb' incorporates:
+     *  ManualSwitch: '<S1>/Manual Switch'
+     *  Product: '<S2>/Product4'
+     *  Product: '<S2>/Product5'
+     */
+    ((real_T *)ssGetOutputPortSignal(S, 0))[0] = _rtB->Product;
+    ((real_T *)ssGetOutputPortSignal(S, 0))[1] = _rtB->Product1;
+    ((real_T *)ssGetOutputPortSignal(S, 0))[4] = expr_2_0_0 * rtb_Abs2;
+    ((real_T *)ssGetOutputPortSignal(S, 0))[5] = rtb_Abs2 * rtb_TransportDelay2;
+
+    /* DataTypeConversion: '<S2>/Data Type Conversion6' */
+    _rtB->DataTypeConversion6 = rtb_RelationalOperator2;
+
+    /* DataTypeConversion: '<S2>/Data Type Conversion2' */
+    _rtB->DataTypeConversion2 = rtb_RelationalOperator1;
+  }
+
+  if (ssIsSampleHit(S, 1, tid)) {
+  }
+
+  if (ssIsContinuousTask(S, tid)) {
+    /* DataTypeConversion: '<S2>/Data Type Conversion4' */
+    _rtB->DataTypeConversion4 = rtb_RelationalOperator;
+  }
+
+  UNUSED_PARAMETER(tid);
+}
+
+/* Update for root system: '<Root>' */
+#define MDL_UPDATE
+
+static void mdlUpdate(SimStruct *S, int_T tid)
+{
+  B_PWM_T *_rtB;
+  _rtB = ((B_PWM_T *) ssGetLocalBlockIO(S));
+  if (ssIsContinuousTask(S, tid)) {
+    /* Update for TransportDelay: '<S2>/Transport Delay' */
+    {
+      real_T **uBuffer = (real_T**)&((void**) ssGetDWork(S, 3))[0];
+      real_T **tBuffer = (real_T**)&((void**) ssGetDWork(S, 3))[1];
+      real_T simTime = ssGetT(S);
+      ((int_T*) ssGetDWork(S, 6))[1] = ((((int_T*) ssGetDWork(S, 6))[1] <
+        (((int_T*) ssGetDWork(S, 6))[3]-1)) ? (((int_T*) ssGetDWork(S, 6))[1]+1)
+        : 0);
+      if (((int_T*) ssGetDWork(S, 6))[1] == ((int_T*) ssGetDWork(S, 6))[0]) {
+        ((int_T*) ssGetDWork(S, 6))[0] = ((((int_T*) ssGetDWork(S, 6))[0] <
+          (((int_T*) ssGetDWork(S, 6))[3]-1)) ? (((int_T*) ssGetDWork(S, 6))[0]+
+          1) : 0);
+      }
+
+      (*tBuffer)[((int_T*) ssGetDWork(S, 6))[1]] = simTime;
+      (*uBuffer)[((int_T*) ssGetDWork(S, 6))[1]] = _rtB->DataTypeConversion4;
+    }
+
+    /* Update for TransportDelay: '<S2>/Transport Delay1' */
+    {
+      real_T **uBuffer = (real_T**)&((void**) ssGetDWork(S, 4))[0];
+      real_T **tBuffer = (real_T**)&((void**) ssGetDWork(S, 4))[1];
+      real_T simTime = ssGetT(S);
+      ((int_T*) ssGetDWork(S, 7))[1] = ((((int_T*) ssGetDWork(S, 7))[1] <
+        (((int_T*) ssGetDWork(S, 7))[3]-1)) ? (((int_T*) ssGetDWork(S, 7))[1]+1)
+        : 0);
+      if (((int_T*) ssGetDWork(S, 7))[1] == ((int_T*) ssGetDWork(S, 7))[0]) {
+        ((int_T*) ssGetDWork(S, 7))[0] = ((((int_T*) ssGetDWork(S, 7))[0] <
+          (((int_T*) ssGetDWork(S, 7))[3]-1)) ? (((int_T*) ssGetDWork(S, 7))[0]+
+          1) : 0);
+      }
+
+      (*tBuffer)[((int_T*) ssGetDWork(S, 7))[1]] = simTime;
+      (*uBuffer)[((int_T*) ssGetDWork(S, 7))[1]] = _rtB->DataTypeConversion2;
+    }
+
+    /* Update for TransportDelay: '<S2>/Transport Delay2' */
+    {
+      real_T **uBuffer = (real_T**)&((void**) ssGetDWork(S, 5))[0];
+      real_T **tBuffer = (real_T**)&((void**) ssGetDWork(S, 5))[1];
+      real_T simTime = ssGetT(S);
+      ((int_T*) ssGetDWork(S, 8))[1] = ((((int_T*) ssGetDWork(S, 8))[1] <
+        (((int_T*) ssGetDWork(S, 8))[3]-1)) ? (((int_T*) ssGetDWork(S, 8))[1]+1)
+        : 0);
+      if (((int_T*) ssGetDWork(S, 8))[1] == ((int_T*) ssGetDWork(S, 8))[0]) {
+        ((int_T*) ssGetDWork(S, 8))[0] = ((((int_T*) ssGetDWork(S, 8))[0] <
+          (((int_T*) ssGetDWork(S, 8))[3]-1)) ? (((int_T*) ssGetDWork(S, 8))[0]+
+          1) : 0);
+      }
+
+      (*tBuffer)[((int_T*) ssGetDWork(S, 8))[1]] = simTime;
+      (*uBuffer)[((int_T*) ssGetDWork(S, 8))[1]] = _rtB->DataTypeConversion6;
+    }
+  }
+
+  UNUSED_PARAMETER(tid);
+}
+
+/* Termination for root system: '<Root>' */
+static void mdlTerminate(SimStruct *S)
+{
+  B_PWM_T *_rtB;
+  _rtB = ((B_PWM_T *) ssGetLocalBlockIO(S));
+
+#if defined(RT_MALLOC) || defined(MATLAB_MEX_FILE)
+
+  if (ssGetUserData(S) != (NULL) ) {
+    rt_FREE(ssGetLocalBlockIO(S));
+  }
+
+  rt_FREE(ssGetUserData(S));
+
+#endif
+
+}
+
+#if defined(RT_MALLOC) || defined(MATLAB_MEX_FILE)
+#include "PWM_mid.h"
+#endif
+
+/* Function to initialize sizes. */
+static void mdlInitializeSizes(SimStruct *S)
+{
+  ssSetNumSampleTimes(S, 2);           /* Number of sample times */
+  ssSetNumContStates(S, 0);            /* Number of continuous states */
+  ssSetNumNonsampledZCs(S, 0);         /* Number of nonsampled ZCs */
+
+  /* Number of output ports */
+  if (!ssSetNumOutputPorts(S, 1))
+    return;
+
+  /* outport number: 0 */
+  if (!ssSetOutputPortVectorDimension(S, 0, 6))
+    return;
+  if (ssGetSimMode(S) != SS_SIMMODE_SIZES_CALL_ONLY) {
+    ssSetOutputPortDataType(S, 0, SS_DOUBLE);
+  }
+
+  ssSetOutputPortSampleTime(S, 0, 0.0);
+  ssSetOutputPortOffsetTime(S, 0, 0.0);
+  ssSetOutputPortOptimOpts(S, 0, SS_REUSABLE_AND_LOCAL);
+
+  /* Number of input ports */
+  if (!ssSetNumInputPorts(S, 1))
+    return;
+
+  /* inport number: 0 */
+  {
+    if (!ssSetInputPortVectorDimension(S, 0, 3))
+      return;
+    if (ssGetSimMode(S) != SS_SIMMODE_SIZES_CALL_ONLY) {
+      ssSetInputPortDataType(S, 0, SS_DOUBLE);
+    }
+
+    ssSetInputPortDirectFeedThrough(S, 0, 1);
+    ssSetInputPortSampleTime(S, 0, 5.0E-7);
+    ssSetInputPortOffsetTime(S, 0, 0.0);
+    ssSetInputPortOverWritable(S, 0, 0);
+    ssSetInputPortOptimOpts(S, 0, SS_NOT_REUSABLE_AND_GLOBAL);
+  }
+
+  ssSetRTWGeneratedSFcn(S, 1);         /* Generated S-function */
+
+  /* DWork */
+  if (!ssSetNumDWork(S, 9)) {
+    return;
+  }
+
+  /* '<S2>/Transport Delay': RWORK */
+  ssSetDWorkName(S, 0, "DWORK0");
+  ssSetDWorkWidth(S, 0, 2049);
+
+  /* '<S2>/Transport Delay1': RWORK */
+  ssSetDWorkName(S, 1, "DWORK1");
+  ssSetDWorkWidth(S, 1, 2049);
+
+  /* '<S2>/Transport Delay2': RWORK */
+  ssSetDWorkName(S, 2, "DWORK2");
+  ssSetDWorkWidth(S, 2, 2049);
+
+  /* '<S2>/Transport Delay': PWORK */
+  ssSetDWorkName(S, 3, "DWORK3");
+  ssSetDWorkWidth(S, 3, 2);
+  ssSetDWorkDataType(S, 3, SS_POINTER);
+
+  /* '<S2>/Transport Delay1': PWORK */
+  ssSetDWorkName(S, 4, "DWORK4");
+  ssSetDWorkWidth(S, 4, 2);
+  ssSetDWorkDataType(S, 4, SS_POINTER);
+
+  /* '<S2>/Transport Delay2': PWORK */
+  ssSetDWorkName(S, 5, "DWORK5");
+  ssSetDWorkWidth(S, 5, 2);
+  ssSetDWorkDataType(S, 5, SS_POINTER);
+
+  /* '<S2>/Transport Delay': IWORK */
+  ssSetDWorkName(S, 6, "DWORK6");
+  ssSetDWorkWidth(S, 6, 4);
+  ssSetDWorkDataType(S, 6, SS_INTEGER);
+
+  /* '<S2>/Transport Delay1': IWORK */
+  ssSetDWorkName(S, 7, "DWORK7");
+  ssSetDWorkWidth(S, 7, 4);
+  ssSetDWorkDataType(S, 7, SS_INTEGER);
+
+  /* '<S2>/Transport Delay2': IWORK */
+  ssSetDWorkName(S, 8, "DWORK8");
+  ssSetDWorkWidth(S, 8, 4);
+  ssSetDWorkDataType(S, 8, SS_INTEGER);
+
+  /* Tunable Parameters */
+  ssSetNumSFcnParams(S, 0);
+
+  /* Number of expected parameters */
+#if defined(MATLAB_MEX_FILE)
+
+  if (ssGetNumSFcnParams(S) == ssGetSFcnParamsCount(S)) {
+
+#if defined(MDL_CHECK_PARAMETERS)
+
+    mdlCheckParameters(S);
+
+#endif                                 /* MDL_CHECK_PARAMETERS */
+
+    if (ssGetErrorStatus(S) != (NULL) ) {
+      return;
+    }
+  } else {
+    return;                /* Parameter mismatch will be reported by Simulink */
+  }
+
+#endif                                 /* MATLAB_MEX_FILE */
+
+  /* Options */
+  ssSetOptions(S, (SS_OPTION_RUNTIME_EXCEPTION_FREE_CODE |
+                   SS_OPTION_PORT_SAMPLE_TIMES_ASSIGNED ));
+
+#if SS_SFCN_FOR_SIM
+
+  {
+    ssSupportsMultipleExecInstances(S, false);
+    ssRegisterMsgForNotSupportingMultiExecInst(S,
+      "<diag_root><diag id=\"Simulink:blocks:BlockDoesNotSupportMultiExecInstances\" pr=\"d\"><arguments><arg type=\"encoded\">UABXAE0ALwBQAFcATQAvAG0AbwBkAHUAbABhAHQAZQBkACAAdwBhAHYAZQAvAHMAdABhAHIAdABUAGkAbQBlAAAA</arg><arg type=\"encoded\">PABfAF8AaQBpAFMAUwBfAF8APgA8AC8AXwBfAGkAaQBTAFMAXwBfAD4AAAA=</arg><arg type=\"encoded\">PABfAF8AaQB0AGUAcgBCAGwAawBfAF8APgA8AC8AXwBfAGkAdABlAHIAQgBsAGsAXwBfAD4AAAA=</arg></arguments><hs><h>AAAACIDlzUD+</h></hs></diag></diag_root>");
+    ssHasStateInsideForEachSS(S, false);
+  }
+
+#endif
+
+}
+
+/* Function to initialize sample times. */
+static void mdlInitializeSampleTimes(SimStruct *S)
+{
+  /* task periods */
+  ssSetSampleTime(S, 0, 0.0);
+  ssSetSampleTime(S, 1, 5.0E-7);
+
+  /* task offsets */
+  ssSetOffsetTime(S, 0, 0.0);
+  ssSetOffsetTime(S, 1, 0.0);
+}
+
+#if defined(MATLAB_MEX_FILE)
+#include "fixedpoint.c"
+#include "simulink.c"
+#else
+#undef S_FUNCTION_NAME
+#define S_FUNCTION_NAME                PWM_sf
+#include "cg_sfun.h"
+#endif                                 /* defined(MATLAB_MEX_FILE) */

+ 131 - 0
Simulink/PWM_sfcn_rtw/PWM_sf.h

@@ -0,0 +1,131 @@
+/*
+ * PWM_sf.h
+ *
+ * Code generation for model "PWM_sf".
+ *
+ * Model version              : 1.825
+ * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020
+ * C source code generated on : Fri Apr 14 12:53:29 2023
+ *
+ * Target selection: rtwsfcn.tlc
+ * Note: GRT includes extra infrastructure and instrumentation for prototyping
+ * Embedded hardware selection: ARM Compatible->ARM Cortex-M
+ * Emulation hardware selection:
+ *    Differs from embedded hardware (MATLAB Host)
+ * Code generation objectives:
+ *    1. Execution efficiency
+ *    2. RAM efficiency
+ * Validation result: Not run
+ */
+
+#ifndef RTW_HEADER_PWM_sf_h_
+#define RTW_HEADER_PWM_sf_h_
+#include <float.h>
+#include <math.h>
+#include <string.h>
+#include <stddef.h>
+#ifndef PWM_sf_COMMON_INCLUDES_
+#define PWM_sf_COMMON_INCLUDES_
+#include <stdlib.h>
+#define S_FUNCTION_NAME                PWM_sf
+#define S_FUNCTION_LEVEL               2
+#define RTW_GENERATED_S_FUNCTION
+#include "rtwtypes.h"
+#include "simstruc.h"
+#include "fixedpoint.h"
+#if !defined(MATLAB_MEX_FILE)
+#include "rt_matrx.h"
+#endif
+
+#if !defined(RTW_SFUNCTION_DEFINES)
+#define RTW_SFUNCTION_DEFINES
+
+typedef struct {
+  void *blockIO;
+  void *defaultParam;
+  void *nonContDerivSig;
+} LocalS;
+
+#define ssSetLocalBlockIO(S, io)       ((LocalS *)ssGetUserData(S))->blockIO = ((void *)(io))
+#define ssGetLocalBlockIO(S)           ((LocalS *)ssGetUserData(S))->blockIO
+#define ssSetLocalDefaultParam(S, paramVector) ((LocalS *)ssGetUserData(S))->defaultParam = (paramVector)
+#define ssGetLocalDefaultParam(S)      ((LocalS *)ssGetUserData(S))->defaultParam
+#define ssSetLocalNonContDerivSig(S, pSig) ((LocalS *)ssGetUserData(S))->nonContDerivSig = (pSig)
+#define ssGetLocalNonContDerivSig(S)   ((LocalS *)ssGetUserData(S))->nonContDerivSig
+#endif
+#endif                                 /* PWM_sf_COMMON_INCLUDES_ */
+
+#include "PWM_sf_types.h"
+
+/* Shared type includes */
+#include "multiword_types.h"
+#include "rtGetNaN.h"
+#include "rt_nonfinite.h"
+#include "rtGetInf.h"
+#include "rt_defines.h"
+
+/* Block signals (default storage) */
+typedef struct {
+  real_T Product;                      /* '<S2>/Product' */
+  real_T Product1;                     /* '<S2>/Product1' */
+  real_T DataTypeConversion6;          /* '<S2>/Data Type Conversion6' */
+  real_T DataTypeConversion2;          /* '<S2>/Data Type Conversion2' */
+  real_T DataTypeConversion4;          /* '<S2>/Data Type Conversion4' */
+} B_PWM_T;
+
+/* Constant parameters (default storage) */
+typedef struct {
+  /* Expression: rep_seq_y
+   * Referenced by: '<S3>/Look-Up Table1'
+   */
+  real_T LookUpTable1_tableData[3];
+
+  /* Expression: rep_seq_t - min(rep_seq_t)
+   * Referenced by: '<S3>/Look-Up Table1'
+   */
+  real_T LookUpTable1_bp01Data[3];
+} ConstP_PWM_T;
+
+/* External inputs (root inport signals with default storage) */
+typedef struct {
+  real_T *pwm_info[3];                 /* '<Root>/pwm_info' */
+} ExternalUPtrs_PWM_T;
+
+/* External outputs (root outports fed by signals with default storage) */
+typedef struct {
+  real_T *PWMb[6];                     /* '<Root>/PWMb' */
+} ExtY_PWM_T;
+
+/* Constant parameters (default storage) */
+extern const ConstP_PWM_T PWM_ConstP;
+
+/*-
+ * These blocks were eliminated from the model due to optimizations:
+ *
+ * Block '<S3>/Output' : Eliminate redundant signal conversion block
+ */
+
+/*-
+ * 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/PWM')    - opens subsystem FOC_ADRC/PWM
+ * hilite_system('FOC_ADRC/PWM/Kp') - opens and selects block Kp
+ *
+ * Here is the system hierarchy for this model
+ *
+ * '<Root>' : 'FOC_ADRC'
+ * '<S1>'   : 'FOC_ADRC/PWM'
+ * '<S2>'   : 'FOC_ADRC/PWM/PWM Generator'
+ * '<S3>'   : 'FOC_ADRC/PWM/modulated wave'
+ * '<S4>'   : 'FOC_ADRC/PWM/PWM Generator/MATLAB Function1'
+ */
+#endif                                 /* RTW_HEADER_PWM_sf_h_ */

+ 35 - 0
Simulink/PWM_sfcn_rtw/PWM_sf_data.c

@@ -0,0 +1,35 @@
+/*
+ * PWM_sf_data.c
+ *
+ * Code generation for model "PWM_sf".
+ *
+ * Model version              : 1.825
+ * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020
+ * C source code generated on : Fri Apr 14 12:53:29 2023
+ *
+ * Target selection: rtwsfcn.tlc
+ * Note: GRT includes extra infrastructure and instrumentation for prototyping
+ * Embedded hardware selection: ARM Compatible->ARM Cortex-M
+ * Emulation hardware selection:
+ *    Differs from embedded hardware (MATLAB Host)
+ * Code generation objectives:
+ *    1. Execution efficiency
+ *    2. RAM efficiency
+ * Validation result: Not run
+ */
+
+#include "PWM_sf.h"
+#include "PWM_sf_private.h"
+
+/* Constant parameters (default storage) */
+const ConstP_PWM_T PWM_ConstP = {
+  /* Expression: rep_seq_y
+   * Referenced by: '<S3>/Look-Up Table1'
+   */
+  { 0.0, 3000.0, 0.0 },
+
+  /* Expression: rep_seq_t - min(rep_seq_t)
+   * Referenced by: '<S3>/Look-Up Table1'
+   */
+  { 0.0, 5.0E-5, 0.0001 }
+};

+ 63 - 0
Simulink/PWM_sfcn_rtw/PWM_sf_private.h

@@ -0,0 +1,63 @@
+/*
+ * PWM_sf_private.h
+ *
+ * Code generation for model "PWM_sf".
+ *
+ * Model version              : 1.825
+ * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020
+ * C source code generated on : Fri Apr 14 12:53:29 2023
+ *
+ * Target selection: rtwsfcn.tlc
+ * Note: GRT includes extra infrastructure and instrumentation for prototyping
+ * Embedded hardware selection: ARM Compatible->ARM Cortex-M
+ * Emulation hardware selection:
+ *    Differs from embedded hardware (MATLAB Host)
+ * Code generation objectives:
+ *    1. Execution efficiency
+ *    2. RAM efficiency
+ * Validation result: Not run
+ */
+
+#ifndef RTW_HEADER_PWM_sf_private_h_
+#define RTW_HEADER_PWM_sf_private_h_
+#include "rtwtypes.h"
+#include "multiword_types.h"
+#if !defined(ss_VALIDATE_MEMORY)
+#define ss_VALIDATE_MEMORY(S, ptr)     if(!(ptr)) {\
+ ssSetErrorStatus(S, RT_MEMORY_ALLOCATION_ERROR);\
+ }
+#endif
+
+#if !defined(rt_FREE)
+#if !defined(_WIN32)
+#define rt_FREE(ptr)                   if((ptr) != (NULL)) {\
+ free((ptr));\
+ (ptr) = (NULL);\
+ }
+#else
+
+/* Visual and other windows compilers declare free without const */
+#define rt_FREE(ptr)                   if((ptr) != (NULL)) {\
+ free((void *)(ptr));\
+ (ptr) = (NULL);\
+ }
+#endif
+#endif
+
+real_T PWM_sf_rt_TDelayInterpolate(
+  real_T tMinusDelay,                 /* tMinusDelay = currentSimTime - delay */
+  real_T tStart,
+  real_T *tBuf,
+  real_T *uBuf,
+  int_T bufSz,
+  int_T *lastIdx,
+  int_T oldestIdx,
+  int_T newIdx,
+  real_T initOutput,
+  boolean_T discrete,
+  boolean_T minorStepAndTAtLastMajorOutput)
+  ;
+extern real_T PWM_look1_binlx(real_T u0, const real_T bp0[], const real_T table[],
+  uint32_T maxIndex);
+
+#endif                                 /* RTW_HEADER_PWM_sf_private_h_ */

+ 25 - 0
Simulink/PWM_sfcn_rtw/PWM_sf_types.h

@@ -0,0 +1,25 @@
+/*
+ * PWM_sf_types.h
+ *
+ * Code generation for model "PWM_sf".
+ *
+ * Model version              : 1.825
+ * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020
+ * C source code generated on : Fri Apr 14 12:53:29 2023
+ *
+ * Target selection: rtwsfcn.tlc
+ * Note: GRT includes extra infrastructure and instrumentation for prototyping
+ * Embedded hardware selection: ARM Compatible->ARM Cortex-M
+ * Emulation hardware selection:
+ *    Differs from embedded hardware (MATLAB Host)
+ * Code generation objectives:
+ *    1. Execution efficiency
+ *    2. RAM efficiency
+ * Validation result: Not run
+ */
+
+#ifndef RTW_HEADER_PWM_sf_types_h_
+#define RTW_HEADER_PWM_sf_types_h_
+
+/* Model Code Variants */
+#endif                                 /* RTW_HEADER_PWM_sf_types_h_ */

+ 46 - 0
Simulink/PWM_sfcn_rtw/PWM_sid.h

@@ -0,0 +1,46 @@
+/*
+ * PWM_sid.h
+ *
+ * Code generation for model "PWM_sf".
+ *
+ * Model version              : 1.825
+ * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020
+ * C source code generated on : Fri Apr 14 12:53:29 2023
+ *
+ * Target selection: rtwsfcn.tlc
+ * Note: GRT includes extra infrastructure and instrumentation for prototyping
+ * Embedded hardware selection: ARM Compatible->ARM Cortex-M
+ * Emulation hardware selection:
+ *    Differs from embedded hardware (MATLAB Host)
+ * Code generation objectives:
+ *    1. Execution efficiency
+ *    2. RAM efficiency
+ * Validation result: Not run
+ *
+ * SOURCES: PWM_sf.c
+ */
+
+/* statically allocated instance data for model: PWM */
+{
+  {
+    /* Local SimStruct for the generated S-Function */
+    static LocalS slS;
+    LocalS *lS = &slS;
+    ssSetUserData(rts, lS);
+
+    /* block I/O */
+    {
+      static B_PWM_T sfcnB;
+      void *b = (real_T *) &sfcnB;
+      ssSetLocalBlockIO(rts, b);
+      (void) memset(b, 0,
+                    sizeof(B_PWM_T));
+    }
+
+    /* model checksums */
+    ssSetChecksumVal(rts, 0, 1460315084U);
+    ssSetChecksumVal(rts, 1, 1873271935U);
+    ssSetChecksumVal(rts, 2, 11797905U);
+    ssSetChecksumVal(rts, 3, 1909962613U);
+  }
+}

BIN
Simulink/PWM_sfcn_rtw/buildInfo.mat


BIN
Simulink/PWM_sfcn_rtw/codedescriptor.dmr


BIN
Simulink/PWM_sfcn_rtw/compileInfo.mat


+ 11 - 0
Simulink/PWM_sfcn_rtw/defines.txt

@@ -0,0 +1,11 @@
+MODEL=PWM
+NUMST=2
+NCSTATES=0
+HAVESTDIO
+CLASSIC_INTERFACE=1
+ALLOCATIONFCN=0
+TID01EQ=0
+ONESTEPFCN=0
+TERMFCN=1
+MULTI_INSTANCE_CODE=0
+INTEGER_CODE=0

+ 212 - 0
Simulink/PWM_sfcn_rtw/html/PWM_mid_h.html

@@ -0,0 +1,212 @@
+<!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"> * PWM_mid.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 generation for model "PWM_sf".</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.825</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 source code generated on : Fri Apr 14 12:53:29 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: rtwsfcn.tlc</span></td></tr>
+<tr name="11" id="11">
+<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
+<tr name="12" id="12">
+<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * Embedded hardware selection: ARM Compatible-&gt;ARM Cortex-M</span></td></tr>
+<tr name="13" id="13">
+<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> * Emulation hardware selection:</span></td></tr>
+<tr name="14" id="14">
+<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> *    Differs from embedded hardware (MATLAB Host)</span></td></tr>
+<tr name="15" id="15">
+<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Code generation objectives:</span></td></tr>
+<tr name="16" id="16">
+<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> *    1. Execution efficiency</span></td></tr>
+<tr name="17" id="17">
+<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> *    2. RAM efficiency</span></td></tr>
+<tr name="18" id="18">
+<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
+<tr name="19" id="19">
+<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="20" id="20">
+<td><a id="l20" class='ln'>20</a></td><td><span class="ct"> * SOURCES: PWM_sf.c</span></td></tr>
+<tr name="21" id="21">
+<td><a id="l21" class='ln'>21</a></td><td><span class="ct"> */</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="pp">#include "simstruc.h"</span></td></tr>
+<tr name="24" id="24">
+<td><a id="l24" class='ln'>24</a></td><td><span class="pp">#include "PWM_sf.h"</span></td></tr>
+<tr name="25" id="25">
+<td><a id="l25" class='ln'>25</a></td><td><span class="pp">#if</span> <a id="25c5" class="tk">defined</a>(<a id="25c13" class="tk">MATLAB_MEX_FILE</a>) <a id="25c30" class="tk">||</a> <a id="25c33" class="tk">defined</a>(<a id="25c41" class="tk">RT_MALLOC</a>)</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="kw">static</span> <a id="27c8" class="tk">int_T</a> <a id="27c14" class="tk">RegNumInputPorts</a>(<a id="27c31" class="tk">SimStruct</a> <a id="27c41" class="tk">*</a><a id="27c42" class="tk">S</a>, <a id="27c45" class="tk">int_T</a> <a id="27c51" class="tk">nInputPorts</a>)</td></tr>
+<tr name="28" id="28">
+<td><a id="l28" class='ln'>28</a></td><td><span class="br">{</span></td></tr>
+<tr name="29" id="29">
+<td><a id="l29" class='ln'>29</a></td><td>  <a id="29c3" class="tk">_ssSetNumInputPorts</a>(<a id="29c23" class="tk">S</a>,<a id="29c25" class="tk">nInputPorts</a>);</td></tr>
+<tr name="30" id="30">
+<td><a id="l30" class='ln'>30</a></td><td>  <span class="kw">return</span> true;</td></tr>
+<tr name="31" id="31">
+<td><a id="l31" class='ln'>31</a></td><td><span class="br">}</span></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="kw">static</span> <a id="33c8" class="tk">int_T</a> <a id="33c14" class="tk">RegNumOutputPorts</a>(<a id="33c32" class="tk">SimStruct</a> <a id="33c42" class="tk">*</a><a id="33c43" class="tk">S</a>, <a id="33c46" class="tk">int_T</a> <a id="33c52" class="tk">nOutputPorts</a>)</td></tr>
+<tr name="34" id="34">
+<td><a id="l34" class='ln'>34</a></td><td><span class="br">{</span></td></tr>
+<tr name="35" id="35">
+<td><a id="l35" class='ln'>35</a></td><td>  <a id="35c3" class="tk">_ssSetNumOutputPorts</a>(<a id="35c24" class="tk">S</a>,<a id="35c26" class="tk">nOutputPorts</a>);</td></tr>
+<tr name="36" id="36">
+<td><a id="l36" class='ln'>36</a></td><td>  <span class="kw">return</span> true;</td></tr>
+<tr name="37" id="37">
+<td><a id="l37" class='ln'>37</a></td><td><span class="br">}</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="kw">static</span> <a id="39c8" class="tk">int_T</a> <a id="39c14" class="tk">FcnSetErrorStatus</a>(<span class="kw">const</span> <a id="39c38" class="tk">SimStruct</a> <a id="39c48" class="tk">*</a><a id="39c49" class="tk">S</a>, <a id="39c52" class="tk">DTypeId</a> <a id="39c60" class="tk">arg2</a>)</td></tr>
+<tr name="40" id="40">
+<td><a id="l40" class='ln'>40</a></td><td><span class="br">{</span></td></tr>
+<tr name="41" id="41">
+<td><a id="l41" class='ln'>41</a></td><td>  <span class="kw">static</span> <span class="kw">char</span> <a id="41c15" class="tk">msg</a>[256];</td></tr>
+<tr name="42" id="42">
+<td><a id="l42" class='ln'>42</a></td><td>  <span class="kw">if</span> (<a id="42c7" class="tk">strlen</a>(<a id="42c14" class="tk">ssGetModelName</a>(<a id="42c29" class="tk">S</a>)) <a id="42c33" class="tk">&lt;</a> 128) <span class="br">{</span></td></tr>
+<tr name="43" id="43">
+<td><a id="l43" class='ln'>43</a></td><td>    <a id="43c5" class="tk">sprintf</a>(<a id="43c13" class="tk">msg</a>,</td></tr>
+<tr name="44" id="44">
+<td><a id="l44" class='ln'>44</a></td><td>            "S-function %s does not have a tlc file. It cannot use macros that access regDataType field in simstruct.",</td></tr>
+<tr name="45" id="45">
+<td><a id="l45" class='ln'>45</a></td><td>            <a id="45c13" class="tk">ssGetModelName</a>(<a id="45c28" class="tk">S</a>));</td></tr>
+<tr name="46" id="46">
+<td><a id="l46" class='ln'>46</a></td><td>  <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="47" id="47">
+<td><a id="l47" class='ln'>47</a></td><td>    <a id="47c5" class="tk">sprintf</a>(<a id="47c13" class="tk">msg</a>,</td></tr>
+<tr name="48" id="48">
+<td><a id="l48" class='ln'>48</a></td><td>            "A S-function does not have a tlc file. It cannot use macros that access regDataType field in simstruct.");</td></tr>
+<tr name="49" id="49">
+<td><a id="l49" class='ln'>49</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="50" id="50">
+<td><a id="l50" class='ln'>50</a></td><td></td></tr>
+<tr name="51" id="51">
+<td><a id="l51" class='ln'>51</a></td><td>  <a id="51c3" class="tk">ssSetErrorStatus</a>(<a id="51c20" class="tk">S</a>, <a id="51c23" class="tk">msg</a>);</td></tr>
+<tr name="52" id="52">
+<td><a id="l52" class='ln'>52</a></td><td>  <a id="52c3" class="tk">UNUSED_PARAMETER</a>(<a id="52c20" class="tk">arg2</a>);</td></tr>
+<tr name="53" id="53">
+<td><a id="l53" class='ln'>53</a></td><td>  <span class="kw">return</span> 0;</td></tr>
+<tr name="54" id="54">
+<td><a id="l54" class='ln'>54</a></td><td><span class="br">}</span></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><span class="kw">static</span> <span class="kw">void</span> <a id="56c13" class="tk">*</a> <a id="56c15" class="tk">FcnSetErrorStatusWithReturnPtr</a>(<span class="kw">const</span> <a id="56c52" class="tk">SimStruct</a> <a id="56c62" class="tk">*</a><a id="56c63" class="tk">S</a>, <a id="56c66" class="tk">DTypeId</a> <a id="56c74" class="tk">arg2</a>)</td></tr>
+<tr name="57" id="57">
+<td><a id="l57" class='ln'>57</a></td><td><span class="br">{</span></td></tr>
+<tr name="58" id="58">
+<td><a id="l58" class='ln'>58</a></td><td>  <a id="58c3" class="tk">FcnSetErrorStatus</a>(<a id="58c21" class="tk">S</a>,0);</td></tr>
+<tr name="59" id="59">
+<td><a id="l59" class='ln'>59</a></td><td>  <a id="59c3" class="tk">UNUSED_PARAMETER</a>(<a id="59c20" class="tk">arg2</a>);</td></tr>
+<tr name="60" id="60">
+<td><a id="l60" class='ln'>60</a></td><td>  <span class="kw">return</span> 0;</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><span class="kw">static</span> <a id="63c8" class="tk">int_T</a> <a id="63c14" class="tk">FcnSetErrorStatusWithArgPtr</a>(<span class="kw">const</span> <a id="63c48" class="tk">SimStruct</a> <a id="63c58" class="tk">*</a><a id="63c59" class="tk">S</a>, <span class="kw">const</span> <span class="kw">void</span><a id="63c72" class="tk">*</a> <a id="63c74" class="tk">arg2</a>)</td></tr>
+<tr name="64" id="64">
+<td><a id="l64" class='ln'>64</a></td><td><span class="br">{</span></td></tr>
+<tr name="65" id="65">
+<td><a id="l65" class='ln'>65</a></td><td>  <a id="65c3" class="tk">FcnSetErrorStatus</a>(<a id="65c21" class="tk">S</a>,0);</td></tr>
+<tr name="66" id="66">
+<td><a id="l66" class='ln'>66</a></td><td>  <a id="66c3" class="tk">UNUSED_PARAMETER</a>(<a id="66c20" class="tk">arg2</a>);</td></tr>
+<tr name="67" id="67">
+<td><a id="l67" class='ln'>67</a></td><td>  <span class="kw">return</span> 0;</td></tr>
+<tr name="68" id="68">
+<td><a id="l68" class='ln'>68</a></td><td><span class="br">}</span></td></tr>
+<tr name="69" id="69">
+<td><a id="l69" class='ln'>69</a></td><td></td></tr>
+<tr name="70" id="70">
+<td><a id="l70" class='ln'>70</a></td><td><span class="pp">#endif</span></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">/* Instance data for model: PWM */</span></td></tr>
+<tr name="73" id="73">
+<td><a id="l73" class='ln'>73</a></td><td><span class="kw">void</span> <a id="73c6" class="tk">*</a><a id="73c7" class="tk">PWM_malloc</a>(<a id="73c18" class="tk">SimStruct</a> <a id="73c28" class="tk">*</a><a id="73c29" class="tk">rts</a>)</td></tr>
+<tr name="74" id="74">
+<td><a id="l74" class='ln'>74</a></td><td><span class="br">{</span></td></tr>
+<tr name="75" id="75">
+<td><a id="l75" class='ln'>75</a></td><td>  <span class="ct">/* Local SimStruct for the generated S-Function */</span></td></tr>
+<tr name="76" id="76">
+<td><a id="l76" class='ln'>76</a></td><td>  <a id="76c3" class="tk">LocalS</a> <a id="76c10" class="tk">*</a><a id="76c11" class="tk">lS</a> = (<a id="76c17" class="tk">LocalS</a> <a id="76c24" class="tk">*</a>) <a id="76c27" class="tk">malloc</a>(<span class="kw">sizeof</span>(<a id="76c41" class="tk">LocalS</a>));</td></tr>
+<tr name="77" id="77">
+<td><a id="l77" class='ln'>77</a></td><td>  <a id="77c3" class="tk">ss_VALIDATE_MEMORY</a>(<a id="77c22" class="tk">rts</a>,<a id="77c26" class="tk">lS</a>);</td></tr>
+<tr name="78" id="78">
+<td><a id="l78" class='ln'>78</a></td><td>  (<span class="kw">void</span>) <a id="78c10" class="tk">memset</a>((<span class="kw">char</span> <a id="78c23" class="tk">*</a>) <a id="78c26" class="tk">lS</a>, 0,</td></tr>
+<tr name="79" id="79">
+<td><a id="l79" class='ln'>79</a></td><td>                <span class="kw">sizeof</span>(<a id="79c24" class="tk">LocalS</a>));</td></tr>
+<tr name="80" id="80">
+<td><a id="l80" class='ln'>80</a></td><td>  <a id="80c3" class="tk">ssSetUserData</a>(<a id="80c17" class="tk">rts</a>, <a id="80c22" class="tk">lS</a>);</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">/* block I/O */</span></td></tr>
+<tr name="83" id="83">
+<td><a id="l83" class='ln'>83</a></td><td>  <span class="br">{</span></td></tr>
+<tr name="84" id="84">
+<td><a id="l84" class='ln'>84</a></td><td>    <span class="kw">void</span> <a id="84c10" class="tk">*</a><a id="84c11" class="tk">b</a> = <a id="84c15" class="tk">malloc</a>(<span class="kw">sizeof</span>(<a id="84c29" class="tk">B_PWM_T</a>));</td></tr>
+<tr name="85" id="85">
+<td><a id="l85" class='ln'>85</a></td><td>    <a id="85c5" class="tk">ss_VALIDATE_MEMORY</a>(<a id="85c24" class="tk">rts</a>,<a id="85c28" class="tk">b</a>);</td></tr>
+<tr name="86" id="86">
+<td><a id="l86" class='ln'>86</a></td><td>    <a id="86c5" class="tk">ssSetLocalBlockIO</a>(<a id="86c23" class="tk">rts</a>, <a id="86c28" class="tk">b</a>);</td></tr>
+<tr name="87" id="87">
+<td><a id="l87" class='ln'>87</a></td><td>    (<span class="kw">void</span>) <a id="87c12" class="tk">memset</a>(<a id="87c19" class="tk">b</a>, 0,</td></tr>
+<tr name="88" id="88">
+<td><a id="l88" class='ln'>88</a></td><td>                  <span class="kw">sizeof</span>(<a id="88c26" class="tk">B_PWM_T</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></td></tr>
+<tr name="91" id="91">
+<td><a id="l91" class='ln'>91</a></td><td>  <span class="ct">/* model checksums */</span></td></tr>
+<tr name="92" id="92">
+<td><a id="l92" class='ln'>92</a></td><td>  <a id="92c3" class="tk">ssSetChecksumVal</a>(<a id="92c20" class="tk">rts</a>, 0, 1460315084U);</td></tr>
+<tr name="93" id="93">
+<td><a id="l93" class='ln'>93</a></td><td>  <a id="93c3" class="tk">ssSetChecksumVal</a>(<a id="93c20" class="tk">rts</a>, 1, 1873271935U);</td></tr>
+<tr name="94" id="94">
+<td><a id="l94" class='ln'>94</a></td><td>  <a id="94c3" class="tk">ssSetChecksumVal</a>(<a id="94c20" class="tk">rts</a>, 2, 11797905U);</td></tr>
+<tr name="95" id="95">
+<td><a id="l95" class='ln'>95</a></td><td>  <a id="95c3" class="tk">ssSetChecksumVal</a>(<a id="95c20" class="tk">rts</a>, 3, 1909962613U);</td></tr>
+<tr name="96" id="96">
+<td><a id="l96" class='ln'>96</a></td><td>  <span class="kw">return</span> (<a id="96c11" class="tk">NULL</a>);</td></tr>
+<tr name="97" id="97">
+<td><a id="l97" class='ln'>97</a></td><td><span class="br">}</span></td></tr>
+<tr name="98" id="98">
+<td><a id="l98" class='ln'>98</a></td><td></td></tr>
+</table>
+</pre>
+</body>
+</html>

+ 1660 - 0
Simulink/PWM_sfcn_rtw/html/PWM_sf_c.html

@@ -0,0 +1,1660 @@
+<!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"> * PWM_sf.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 generation for model "PWM_sf".</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.825</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 source code generated on : Fri Apr 14 12:53:29 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: rtwsfcn.tlc</span></td></tr>
+<tr name="11" id="11">
+<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
+<tr name="12" id="12">
+<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * Embedded hardware selection: ARM Compatible-&gt;ARM Cortex-M</span></td></tr>
+<tr name="13" id="13">
+<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> * Emulation hardware selection:</span></td></tr>
+<tr name="14" id="14">
+<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> *    Differs from embedded hardware (MATLAB Host)</span></td></tr>
+<tr name="15" id="15">
+<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Code generation objectives:</span></td></tr>
+<tr name="16" id="16">
+<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> *    1. Execution efficiency</span></td></tr>
+<tr name="17" id="17">
+<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> *    2. RAM efficiency</span></td></tr>
+<tr name="18" id="18">
+<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
+<tr name="19" id="19">
+<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> */</span></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="pp">#include &lt;math.h&gt;</span></td></tr>
+<tr name="22" id="22">
+<td><a id="l22" class='ln'>22</a></td><td><span class="pp">#include "PWM_sf.h"</span></td></tr>
+<tr name="23" id="23">
+<td><a id="l23" class='ln'>23</a></td><td><span class="pp">#include "PWM_sf_private.h"</span></td></tr>
+<tr name="24" id="24">
+<td><a id="l24" class='ln'>24</a></td><td><span class="pp">#include "simstruc.h"</span></td></tr>
+<tr name="25" id="25">
+<td><a id="l25" class='ln'>25</a></td><td><span class="pp">#include "fixedpoint.h"</span></td></tr>
+<tr name="26" id="26">
+<td><a id="l26" class='ln'>26</a></td><td><span class="pp">#if</span> <a id="26c5" class="tk">defined</a>(<a id="26c13" class="tk">RT_MALLOC</a>) <a id="26c24" class="tk">||</a> <a id="26c27" class="tk">defined</a>(<a id="26c35" class="tk">MATLAB_MEX_FILE</a>)</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="kw">extern</span> <span class="kw">void</span> <a id="28c13" class="tk">*</a><a id="28c14" class="tk">PWM_malloc</a>(<a id="28c25" class="tk">SimStruct</a> <a id="28c35" class="tk">*</a><a id="28c36" class="tk">S</a>);</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="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="pp">#ifndef</span> <a id="32c9" class="tk">__RTW_UTFREE__</a></td></tr>
+<tr name="33" id="33">
+<td><a id="l33" class='ln'>33</a></td><td><span class="pp">#if</span> <a id="33c5" class="tk">defined</a> (<a id="33c14" class="tk">MATLAB_MEX_FILE</a>)</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="kw">extern</span> <span class="kw">void</span> <a id="35c13" class="tk">*</a> <a id="35c15" class="tk">utMalloc</a>(<a id="35c24" class="tk">size_t</a>);</td></tr>
+<tr name="36" id="36">
+<td><a id="l36" class='ln'>36</a></td><td><span class="kw">extern</span> <span class="kw">void</span> <a id="36c13" class="tk">utFree</a>(<span class="kw">void</span> <a id="36c25" class="tk">*</a>);</td></tr>
+<tr name="37" id="37">
+<td><a id="l37" class='ln'>37</a></td><td></td></tr>
+<tr name="38" id="38">
+<td><a id="l38" class='ln'>38</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="39" id="39">
+<td><a id="l39" class='ln'>39</a></td><td><span class="pp">#endif</span>                                 <span class="ct">/* #ifndef __RTW_UTFREE__ */</span></td></tr>
+<tr name="40" id="40">
+<td><a id="l40" class='ln'>40</a></td><td></td></tr>
+<tr name="41" id="41">
+<td><a id="l41" class='ln'>41</a></td><td><span class="ct">/* Forward declaration for local functions */</span></td></tr>
+<tr name="42" id="42">
+<td><a id="l42" class='ln'>42</a></td><td><span class="kw">static</span> <a id="42c8" class="tk">real_T</a> <a id="42c15" class="tk">PWM_rt_remd_snf</a>(<a id="42c31" class="tk">real_T</a> <a id="42c38" class="tk">u0</a>, <a id="42c42" class="tk">real_T</a> <a id="42c49" class="tk">u1</a>);</td></tr>
+<tr name="43" id="43">
+<td><a id="l43" class='ln'>43</a></td><td></td></tr>
+<tr name="44" id="44">
+<td><a id="l44" class='ln'>44</a></td><td><span class="pp">#if</span> <a id="44c5" class="tk">defined</a>(<a id="44c13" class="tk">MATLAB_MEX_FILE</a>)</td></tr>
+<tr name="45" id="45">
+<td><a id="l45" class='ln'>45</a></td><td><span class="pp">#include "rt_nonfinite.c"</span></td></tr>
+<tr name="46" id="46">
+<td><a id="l46" class='ln'>46</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="47" id="47">
+<td><a id="l47" class='ln'>47</a></td><td></td></tr>
+<tr name="48" id="48">
+<td><a id="l48" class='ln'>48</a></td><td><span class="kw">static</span> <span class="kw">const</span> <a id="48c14" class="tk">char_T</a> <a id="48c21" class="tk">*</a><a id="48c22" class="tk">RT_MEMORY_ALLOCATION_ERROR</a> =</td></tr>
+<tr name="49" id="49">
+<td><a id="l49" class='ln'>49</a></td><td>  "memory allocation error in generated S-Function";</td></tr>
+<tr name="50" id="50">
+<td><a id="l50" class='ln'>50</a></td><td></td></tr>
+<tr name="51" id="51">
+<td><a id="l51" class='ln'>51</a></td><td><span class="ct">/*</span></td></tr>
+<tr name="52" id="52">
+<td><a id="l52" class='ln'>52</a></td><td><span class="ct"> * Time delay interpolation routine</span></td></tr>
+<tr name="53" id="53">
+<td><a id="l53" class='ln'>53</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="54" id="54">
+<td><a id="l54" class='ln'>54</a></td><td><span class="ct"> * The linear interpolation is performed using the formula:</span></td></tr>
+<tr name="55" id="55">
+<td><a id="l55" class='ln'>55</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="56" id="56">
+<td><a id="l56" class='ln'>56</a></td><td><span class="ct"> *          (t2 - tMinusDelay)         (tMinusDelay - t1)</span></td></tr>
+<tr name="57" id="57">
+<td><a id="l57" class='ln'>57</a></td><td><span class="ct"> * u(t)  =  ----------------- * u1  +  ------------------- * u2</span></td></tr>
+<tr name="58" id="58">
+<td><a id="l58" class='ln'>58</a></td><td><span class="ct"> *              (t2 - t1)                  (t2 - t1)</span></td></tr>
+<tr name="59" id="59">
+<td><a id="l59" class='ln'>59</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="60" id="60">
+<td><a id="l60" class='ln'>60</a></td><td><a id="60c1" class="tk">real_T</a> <a id="60c8" class="tk">PWM_sf_rt_TDelayInterpolate</a>(</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">tMinusDelay</a>,                 <span class="ct">/* tMinusDelay = currentSimTime - delay */</span></td></tr>
+<tr name="62" id="62">
+<td><a id="l62" class='ln'>62</a></td><td>  <a id="62c3" class="tk">real_T</a> <a id="62c10" class="tk">tStart</a>,</td></tr>
+<tr name="63" id="63">
+<td><a id="l63" class='ln'>63</a></td><td>  <a id="63c3" class="tk">real_T</a> <a id="63c10" class="tk">*</a><a id="63c11" class="tk">tBuf</a>,</td></tr>
+<tr name="64" id="64">
+<td><a id="l64" class='ln'>64</a></td><td>  <a id="64c3" class="tk">real_T</a> <a id="64c10" class="tk">*</a><a id="64c11" class="tk">uBuf</a>,</td></tr>
+<tr name="65" id="65">
+<td><a id="l65" class='ln'>65</a></td><td>  <a id="65c3" class="tk">int_T</a> <a id="65c9" class="tk">bufSz</a>,</td></tr>
+<tr name="66" id="66">
+<td><a id="l66" class='ln'>66</a></td><td>  <a id="66c3" class="tk">int_T</a> <a id="66c9" class="tk">*</a><a id="66c10" class="tk">lastIdx</a>,</td></tr>
+<tr name="67" id="67">
+<td><a id="l67" class='ln'>67</a></td><td>  <a id="67c3" class="tk">int_T</a> <a id="67c9" class="tk">oldestIdx</a>,</td></tr>
+<tr name="68" id="68">
+<td><a id="l68" class='ln'>68</a></td><td>  <a id="68c3" class="tk">int_T</a> <a id="68c9" class="tk">newIdx</a>,</td></tr>
+<tr name="69" id="69">
+<td><a id="l69" class='ln'>69</a></td><td>  <a id="69c3" class="tk">real_T</a> <a id="69c10" class="tk">initOutput</a>,</td></tr>
+<tr name="70" id="70">
+<td><a id="l70" class='ln'>70</a></td><td>  <a id="70c3" class="tk">boolean_T</a> <a id="70c13" class="tk">discrete</a>,</td></tr>
+<tr name="71" id="71">
+<td><a id="l71" class='ln'>71</a></td><td>  <a id="71c3" class="tk">boolean_T</a> <a id="71c13" class="tk">minorStepAndTAtLastMajorOutput</a>)</td></tr>
+<tr name="72" id="72">
+<td><a id="l72" class='ln'>72</a></td><td><span class="br">{</span></td></tr>
+<tr name="73" id="73">
+<td><a id="l73" class='ln'>73</a></td><td>  <a id="73c3" class="tk">int_T</a> <a id="73c9" class="tk">i</a>;</td></tr>
+<tr name="74" id="74">
+<td><a id="l74" class='ln'>74</a></td><td>  <a id="74c3" class="tk">real_T</a> <a id="74c10" class="tk">yout</a>, <a id="74c16" class="tk">t1</a>, <a id="74c20" class="tk">t2</a>, <a id="74c24" class="tk">u1</a>, <a id="74c28" class="tk">u2</a>;</td></tr>
+<tr name="75" id="75">
+<td><a id="l75" class='ln'>75</a></td><td></td></tr>
+<tr name="76" id="76">
+<td><a id="l76" class='ln'>76</a></td><td>  <span class="ct">/*</span></td></tr>
+<tr name="77" id="77">
+<td><a id="l77" class='ln'>77</a></td><td><span class="ct">   * If there is only one data point in the buffer, this data point must be</span></td></tr>
+<tr name="78" id="78">
+<td><a id="l78" class='ln'>78</a></td><td><span class="ct">   * the t= 0 and tMinusDelay &gt; t0, it ask for something unknown. The best</span></td></tr>
+<tr name="79" id="79">
+<td><a id="l79" class='ln'>79</a></td><td><span class="ct">   * guess if initial output as well</span></td></tr>
+<tr name="80" id="80">
+<td><a id="l80" class='ln'>80</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="81" id="81">
+<td><a id="l81" class='ln'>81</a></td><td>  <span class="kw">if</span> ((<a id="81c8" class="tk">newIdx</a> <a id="81c15" class="tk">==</a> 0) <a id="81c21" class="tk">&amp;&amp;</a> (<a id="81c25" class="tk">oldestIdx</a> <a id="81c35" class="tk">==</a>0 ) <a id="81c41" class="tk">&amp;&amp;</a> (<a id="81c45" class="tk">tMinusDelay</a> <a id="81c57" class="tk">&gt;</a> <a id="81c59" class="tk">tStart</a>))</td></tr>
+<tr name="82" id="82">
+<td><a id="l82" class='ln'>82</a></td><td>    <span class="kw">return</span> <a id="82c12" class="tk">initOutput</a>;</td></tr>
+<tr name="83" id="83">
+<td><a id="l83" class='ln'>83</a></td><td></td></tr>
+<tr name="84" id="84">
+<td><a id="l84" class='ln'>84</a></td><td>  <span class="ct">/*</span></td></tr>
+<tr name="85" id="85">
+<td><a id="l85" class='ln'>85</a></td><td><span class="ct">   * If tMinusDelay is less than zero, should output initial value</span></td></tr>
+<tr name="86" id="86">
+<td><a id="l86" class='ln'>86</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="87" id="87">
+<td><a id="l87" class='ln'>87</a></td><td>  <span class="kw">if</span> (<a id="87c7" class="tk">tMinusDelay</a> <a id="87c19" class="tk">&lt;=</a> <a id="87c22" class="tk">tStart</a>)</td></tr>
+<tr name="88" id="88">
+<td><a id="l88" class='ln'>88</a></td><td>    <span class="kw">return</span> <a id="88c12" class="tk">initOutput</a>;</td></tr>
+<tr name="89" id="89">
+<td><a id="l89" class='ln'>89</a></td><td></td></tr>
+<tr name="90" id="90">
+<td><a id="l90" class='ln'>90</a></td><td>  <span class="ct">/* For fixed buffer extrapolation:</span></td></tr>
+<tr name="91" id="91">
+<td><a id="l91" class='ln'>91</a></td><td><span class="ct">   * if tMinusDelay is small than the time at oldestIdx, if discrete, output</span></td></tr>
+<tr name="92" id="92">
+<td><a id="l92" class='ln'>92</a></td><td><span class="ct">   * tailptr value,  else use tailptr and tailptr+1 value to extrapolate</span></td></tr>
+<tr name="93" id="93">
+<td><a id="l93" class='ln'>93</a></td><td><span class="ct">   * It is also for fixed buffer. Note: The same condition can happen for transport delay block where</span></td></tr>
+<tr name="94" id="94">
+<td><a id="l94" class='ln'>94</a></td><td><span class="ct">   * use tStart and and t[tail] other than using t[tail] and t[tail+1].</span></td></tr>
+<tr name="95" id="95">
+<td><a id="l95" class='ln'>95</a></td><td><span class="ct">   * See below</span></td></tr>
+<tr name="96" id="96">
+<td><a id="l96" class='ln'>96</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="97" id="97">
+<td><a id="l97" class='ln'>97</a></td><td>  <span class="kw">if</span> ((<a id="97c8" class="tk">tMinusDelay</a> <a id="97c20" class="tk">&lt;=</a> <a id="97c23" class="tk">tBuf</a>[<a id="97c28" class="tk">oldestIdx</a>] ) ) <span class="br">{</span></td></tr>
+<tr name="98" id="98">
+<td><a id="l98" class='ln'>98</a></td><td>    <span class="kw">if</span> (<a id="98c9" class="tk">discrete</a>) <span class="br">{</span></td></tr>
+<tr name="99" id="99">
+<td><a id="l99" class='ln'>99</a></td><td>      <span class="kw">return</span>(<a id="99c14" class="tk">uBuf</a>[<a id="99c19" class="tk">oldestIdx</a>]);</td></tr>
+<tr name="100" id="100">
+<td><a id="l100" class='ln'>100</a></td><td>    <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="101" id="101">
+<td><a id="l101" class='ln'>101</a></td><td>      <a id="101c7" class="tk">int_T</a> <a id="101c13" class="tk">tempIdx</a>= <a id="101c22" class="tk">oldestIdx</a> <a id="101c32" class="tk">+</a> 1;</td></tr>
+<tr name="102" id="102">
+<td><a id="l102" class='ln'>102</a></td><td>      <span class="kw">if</span> (<a id="102c11" class="tk">oldestIdx</a> <a id="102c21" class="tk">==</a> <a id="102c24" class="tk">bufSz</a><a id="102c29" class="tk">-</a>1)</td></tr>
+<tr name="103" id="103">
+<td><a id="l103" class='ln'>103</a></td><td>        <a id="103c9" class="tk">tempIdx</a> = 0;</td></tr>
+<tr name="104" id="104">
+<td><a id="l104" class='ln'>104</a></td><td>      <a id="104c7" class="tk">t1</a>= <a id="104c11" class="tk">tBuf</a>[<a id="104c16" class="tk">oldestIdx</a>];</td></tr>
+<tr name="105" id="105">
+<td><a id="l105" class='ln'>105</a></td><td>      <a id="105c7" class="tk">t2</a>= <a id="105c11" class="tk">tBuf</a>[<a id="105c16" class="tk">tempIdx</a>];</td></tr>
+<tr name="106" id="106">
+<td><a id="l106" class='ln'>106</a></td><td>      <a id="106c7" class="tk">u1</a>= <a id="106c11" class="tk">uBuf</a>[<a id="106c16" class="tk">oldestIdx</a>];</td></tr>
+<tr name="107" id="107">
+<td><a id="l107" class='ln'>107</a></td><td>      <a id="107c7" class="tk">u2</a>= <a id="107c11" class="tk">uBuf</a>[<a id="107c16" class="tk">tempIdx</a>];</td></tr>
+<tr name="108" id="108">
+<td><a id="l108" class='ln'>108</a></td><td>      <span class="kw">if</span> (<a id="108c11" class="tk">t2</a> <a id="108c14" class="tk">==</a> <a id="108c17" class="tk">t1</a>) <span class="br">{</span></td></tr>
+<tr name="109" id="109">
+<td><a id="l109" class='ln'>109</a></td><td>        <span class="kw">if</span> (<a id="109c13" class="tk">tMinusDelay</a> <a id="109c25" class="tk">&gt;=</a> <a id="109c28" class="tk">t2</a>) <span class="br">{</span></td></tr>
+<tr name="110" id="110">
+<td><a id="l110" class='ln'>110</a></td><td>          <a id="110c11" class="tk">yout</a> = <a id="110c18" class="tk">u2</a>;</td></tr>
+<tr name="111" id="111">
+<td><a id="l111" class='ln'>111</a></td><td>        <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="112" id="112">
+<td><a id="l112" class='ln'>112</a></td><td>          <a id="112c11" class="tk">yout</a> = <a id="112c18" class="tk">u1</a>;</td></tr>
+<tr name="113" id="113">
+<td><a id="l113" class='ln'>113</a></td><td>        <span class="br">}</span></td></tr>
+<tr name="114" id="114">
+<td><a id="l114" class='ln'>114</a></td><td>      <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="115" id="115">
+<td><a id="l115" class='ln'>115</a></td><td>        <a id="115c9" class="tk">real_T</a> <a id="115c16" class="tk">f1</a> = (<a id="115c22" class="tk">t2</a><a id="115c24" class="tk">-</a><a id="115c25" class="tk">tMinusDelay</a>) <a id="115c38" class="tk">/</a> (<a id="115c41" class="tk">t2</a><a id="115c43" class="tk">-</a><a id="115c44" class="tk">t1</a>);</td></tr>
+<tr name="116" id="116">
+<td><a id="l116" class='ln'>116</a></td><td>        <a id="116c9" class="tk">real_T</a> <a id="116c16" class="tk">f2</a> = 1.0 <a id="116c25" class="tk">-</a> <a id="116c27" class="tk">f1</a>;</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="ct">/*</span></td></tr>
+<tr name="119" id="119">
+<td><a id="l119" class='ln'>119</a></td><td><span class="ct">         * Use Lagrange's interpolation formula.  Exact outputs at t1, t2.</span></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>        <a id="121c9" class="tk">yout</a> = <a id="121c16" class="tk">f1</a><a id="121c18" class="tk">*</a><a id="121c19" class="tk">u1</a> <a id="121c22" class="tk">+</a> <a id="121c24" class="tk">f2</a><a id="121c26" class="tk">*</a><a id="121c27" class="tk">u2</a>;</td></tr>
+<tr name="122" id="122">
+<td><a id="l122" class='ln'>122</a></td><td>      <span class="br">}</span></td></tr>
+<tr name="123" id="123">
+<td><a id="l123" class='ln'>123</a></td><td></td></tr>
+<tr name="124" id="124">
+<td><a id="l124" class='ln'>124</a></td><td>      <span class="kw">return</span> <a id="124c14" class="tk">yout</a>;</td></tr>
+<tr name="125" id="125">
+<td><a id="l125" class='ln'>125</a></td><td>    <span class="br">}</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></td></tr>
+<tr name="128" id="128">
+<td><a id="l128" class='ln'>128</a></td><td>  <span class="ct">/*</span></td></tr>
+<tr name="129" id="129">
+<td><a id="l129" class='ln'>129</a></td><td><span class="ct">   * When block does not have direct feedthrough, we use the table of</span></td></tr>
+<tr name="130" id="130">
+<td><a id="l130" class='ln'>130</a></td><td><span class="ct">   * values to extrapolate off the end of the table for delays that are less</span></td></tr>
+<tr name="131" id="131">
+<td><a id="l131" class='ln'>131</a></td><td><span class="ct">   * than 0 (less then step size).  This is not completely accurate.  The</span></td></tr>
+<tr name="132" id="132">
+<td><a id="l132" class='ln'>132</a></td><td><span class="ct">   * chain of events is as follows for a given time t.  Major output - look</span></td></tr>
+<tr name="133" id="133">
+<td><a id="l133" class='ln'>133</a></td><td><span class="ct">   * in table.  Update - add entry to table.  Now, if we call the output at</span></td></tr>
+<tr name="134" id="134">
+<td><a id="l134" class='ln'>134</a></td><td><span class="ct">   * time t again, there is a new entry in the table. For very small delays,</span></td></tr>
+<tr name="135" id="135">
+<td><a id="l135" class='ln'>135</a></td><td><span class="ct">   * this means that we will have a different answer from the previous call</span></td></tr>
+<tr name="136" id="136">
+<td><a id="l136" class='ln'>136</a></td><td><span class="ct">   * to the output fcn at the same time t.  The following code prevents this</span></td></tr>
+<tr name="137" id="137">
+<td><a id="l137" class='ln'>137</a></td><td><span class="ct">   * from happening.</span></td></tr>
+<tr name="138" id="138">
+<td><a id="l138" class='ln'>138</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="139" id="139">
+<td><a id="l139" class='ln'>139</a></td><td>  <span class="kw">if</span> (<a id="139c7" class="tk">minorStepAndTAtLastMajorOutput</a>) <span class="br">{</span></td></tr>
+<tr name="140" id="140">
+<td><a id="l140" class='ln'>140</a></td><td>    <span class="ct">/* pretend that the new entry has not been added to table */</span></td></tr>
+<tr name="141" id="141">
+<td><a id="l141" class='ln'>141</a></td><td>    <span class="kw">if</span> (<a id="141c9" class="tk">newIdx</a> <a id="141c16" class="tk">!=</a> 0) <span class="br">{</span></td></tr>
+<tr name="142" id="142">
+<td><a id="l142" class='ln'>142</a></td><td>      <span class="kw">if</span> (<a id="142c11" class="tk">*</a><a id="142c12" class="tk">lastIdx</a> <a id="142c20" class="tk">==</a> <a id="142c23" class="tk">newIdx</a>) <span class="br">{</span></td></tr>
+<tr name="143" id="143">
+<td><a id="l143" class='ln'>143</a></td><td>        (<a id="143c10" class="tk">*</a><a id="143c11" class="tk">lastIdx</a>)<a id="143c19" class="tk">--</a>;</td></tr>
+<tr name="144" id="144">
+<td><a id="l144" class='ln'>144</a></td><td>      <span class="br">}</span></td></tr>
+<tr name="145" id="145">
+<td><a id="l145" class='ln'>145</a></td><td></td></tr>
+<tr name="146" id="146">
+<td><a id="l146" class='ln'>146</a></td><td>      <a id="146c7" class="tk">newIdx</a><a id="146c13" class="tk">--</a>;</td></tr>
+<tr name="147" id="147">
+<td><a id="l147" class='ln'>147</a></td><td>    <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="148" id="148">
+<td><a id="l148" class='ln'>148</a></td><td>      <span class="kw">if</span> (<a id="148c11" class="tk">*</a><a id="148c12" class="tk">lastIdx</a> <a id="148c20" class="tk">==</a> <a id="148c23" class="tk">newIdx</a>) <span class="br">{</span></td></tr>
+<tr name="149" id="149">
+<td><a id="l149" class='ln'>149</a></td><td>        <a id="149c9" class="tk">*</a><a id="149c10" class="tk">lastIdx</a> = <a id="149c20" class="tk">bufSz</a><a id="149c25" class="tk">-</a>1;</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></td></tr>
+<tr name="152" id="152">
+<td><a id="l152" class='ln'>152</a></td><td>      <a id="152c7" class="tk">newIdx</a> = <a id="152c16" class="tk">bufSz</a> <a id="152c22" class="tk">-</a> 1;</td></tr>
+<tr name="153" id="153">
+<td><a id="l153" class='ln'>153</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="154" id="154">
+<td><a id="l154" class='ln'>154</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="155" id="155">
+<td><a id="l155" class='ln'>155</a></td><td></td></tr>
+<tr name="156" id="156">
+<td><a id="l156" class='ln'>156</a></td><td>  <a id="156c3" class="tk">i</a> = <a id="156c7" class="tk">*</a><a id="156c8" class="tk">lastIdx</a>;</td></tr>
+<tr name="157" id="157">
+<td><a id="l157" class='ln'>157</a></td><td>  <span class="kw">if</span> (<a id="157c7" class="tk">tBuf</a>[<a id="157c12" class="tk">i</a>] <a id="157c15" class="tk">&lt;</a> <a id="157c17" class="tk">tMinusDelay</a>) <span class="br">{</span></td></tr>
+<tr name="158" id="158">
+<td><a id="l158" class='ln'>158</a></td><td>    <span class="ct">/* Look forward starting at last index */</span></td></tr>
+<tr name="159" id="159">
+<td><a id="l159" class='ln'>159</a></td><td>    <span class="kw">while</span> (<a id="159c12" class="tk">tBuf</a>[<a id="159c17" class="tk">i</a>] <a id="159c20" class="tk">&lt;</a> <a id="159c22" class="tk">tMinusDelay</a>) <span class="br">{</span></td></tr>
+<tr name="160" id="160">
+<td><a id="l160" class='ln'>160</a></td><td>      <span class="ct">/* May occur if the delay is less than step-size - extrapolate */</span></td></tr>
+<tr name="161" id="161">
+<td><a id="l161" class='ln'>161</a></td><td>      <span class="kw">if</span> (<a id="161c11" class="tk">i</a> <a id="161c13" class="tk">==</a> <a id="161c16" class="tk">newIdx</a>)</td></tr>
+<tr name="162" id="162">
+<td><a id="l162" class='ln'>162</a></td><td>        <span class="kw">break</span>;</td></tr>
+<tr name="163" id="163">
+<td><a id="l163" class='ln'>163</a></td><td>      <a id="163c7" class="tk">i</a> = ( <a id="163c13" class="tk">i</a> <a id="163c15" class="tk">&lt;</a> (<a id="163c18" class="tk">bufSz</a><a id="163c23" class="tk">-</a>1) ) <a id="163c29" class="tk">?</a> (<a id="163c32" class="tk">i</a><a id="163c33" class="tk">+</a>1) <a id="163c37" class="tk">:</a> 0;<span class="ct">/* move through buffer */</span></td></tr>
+<tr name="164" id="164">
+<td><a id="l164" class='ln'>164</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="165" id="165">
+<td><a id="l165" class='ln'>165</a></td><td>  <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="166" id="166">
+<td><a id="l166" class='ln'>166</a></td><td>    <span class="ct">/*</span></td></tr>
+<tr name="167" id="167">
+<td><a id="l167" class='ln'>167</a></td><td><span class="ct">     * Look backwards starting at last index which can happen when the</span></td></tr>
+<tr name="168" id="168">
+<td><a id="l168" class='ln'>168</a></td><td><span class="ct">     * delay time increases.</span></td></tr>
+<tr name="169" id="169">
+<td><a id="l169" class='ln'>169</a></td><td><span class="ct">     */</span></td></tr>
+<tr name="170" id="170">
+<td><a id="l170" class='ln'>170</a></td><td>    <span class="kw">while</span> (<a id="170c12" class="tk">tBuf</a>[<a id="170c17" class="tk">i</a>] <a id="170c20" class="tk">&gt;=</a> <a id="170c23" class="tk">tMinusDelay</a>) <span class="br">{</span></td></tr>
+<tr name="171" id="171">
+<td><a id="l171" class='ln'>171</a></td><td>      <span class="ct">/*</span></td></tr>
+<tr name="172" id="172">
+<td><a id="l172" class='ln'>172</a></td><td><span class="ct">       * Due to the entry condition at top of function, we</span></td></tr>
+<tr name="173" id="173">
+<td><a id="l173" class='ln'>173</a></td><td><span class="ct">       * should never hit the end.</span></td></tr>
+<tr name="174" id="174">
+<td><a id="l174" class='ln'>174</a></td><td><span class="ct">       */</span></td></tr>
+<tr name="175" id="175">
+<td><a id="l175" class='ln'>175</a></td><td>      <a id="175c7" class="tk">i</a> = (<a id="175c12" class="tk">i</a> <a id="175c14" class="tk">&gt;</a> 0) <a id="175c19" class="tk">?</a> <a id="175c21" class="tk">i</a><a id="175c22" class="tk">-</a>1 <a id="175c25" class="tk">:</a> (<a id="175c28" class="tk">bufSz</a><a id="175c33" class="tk">-</a>1);   <span class="ct">/* move through buffer */</span></td></tr>
+<tr name="176" id="176">
+<td><a id="l176" class='ln'>176</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="177" id="177">
+<td><a id="l177" class='ln'>177</a></td><td></td></tr>
+<tr name="178" id="178">
+<td><a id="l178" class='ln'>178</a></td><td>    <a id="178c5" class="tk">i</a> = ( <a id="178c11" class="tk">i</a> <a id="178c13" class="tk">&lt;</a> (<a id="178c16" class="tk">bufSz</a><a id="178c21" class="tk">-</a>1) ) <a id="178c27" class="tk">?</a> (<a id="178c30" class="tk">i</a><a id="178c31" class="tk">+</a>1) <a id="178c35" class="tk">:</a> 0;</td></tr>
+<tr name="179" id="179">
+<td><a id="l179" class='ln'>179</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="180" id="180">
+<td><a id="l180" class='ln'>180</a></td><td></td></tr>
+<tr name="181" id="181">
+<td><a id="l181" class='ln'>181</a></td><td>  <a id="181c3" class="tk">*</a><a id="181c4" class="tk">lastIdx</a> = <a id="181c14" class="tk">i</a>;</td></tr>
+<tr name="182" id="182">
+<td><a id="l182" class='ln'>182</a></td><td>  <span class="kw">if</span> (<a id="182c7" class="tk">discrete</a>) <span class="br">{</span></td></tr>
+<tr name="183" id="183">
+<td><a id="l183" class='ln'>183</a></td><td>    <span class="ct">/*</span></td></tr>
+<tr name="184" id="184">
+<td><a id="l184" class='ln'>184</a></td><td><span class="ct">     * tempEps = 128 * eps;</span></td></tr>
+<tr name="185" id="185">
+<td><a id="l185" class='ln'>185</a></td><td><span class="ct">     * localEps = max(tempEps, tempEps*fabs(tBuf[i]))/2;</span></td></tr>
+<tr name="186" id="186">
+<td><a id="l186" class='ln'>186</a></td><td><span class="ct">     */</span></td></tr>
+<tr name="187" id="187">
+<td><a id="l187" class='ln'>187</a></td><td>    <span class="kw">double</span> <a id="187c12" class="tk">tempEps</a> = (<a id="187c23" class="tk">DBL_EPSILON</a>) <a id="187c36" class="tk">*</a> 128.0;</td></tr>
+<tr name="188" id="188">
+<td><a id="l188" class='ln'>188</a></td><td>    <span class="kw">double</span> <a id="188c12" class="tk">localEps</a> = <a id="188c23" class="tk">tempEps</a> <a id="188c31" class="tk">*</a> <a id="188c33" class="tk">fabs</a>(<a id="188c38" class="tk">tBuf</a>[<a id="188c43" class="tk">i</a>]);</td></tr>
+<tr name="189" id="189">
+<td><a id="l189" class='ln'>189</a></td><td>    <span class="kw">if</span> (<a id="189c9" class="tk">tempEps</a> <a id="189c17" class="tk">&gt;</a> <a id="189c19" class="tk">localEps</a>) <span class="br">{</span></td></tr>
+<tr name="190" id="190">
+<td><a id="l190" class='ln'>190</a></td><td>      <a id="190c7" class="tk">localEps</a> = <a id="190c18" class="tk">tempEps</a>;</td></tr>
+<tr name="191" id="191">
+<td><a id="l191" class='ln'>191</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="192" id="192">
+<td><a id="l192" class='ln'>192</a></td><td></td></tr>
+<tr name="193" id="193">
+<td><a id="l193" class='ln'>193</a></td><td>    <a id="193c5" class="tk">localEps</a> = <a id="193c16" class="tk">localEps</a> <a id="193c25" class="tk">/</a> 2.0;</td></tr>
+<tr name="194" id="194">
+<td><a id="l194" class='ln'>194</a></td><td>    <span class="kw">if</span> (<a id="194c9" class="tk">tMinusDelay</a> <a id="194c21" class="tk">&gt;=</a> (<a id="194c25" class="tk">tBuf</a>[<a id="194c30" class="tk">i</a>] <a id="194c33" class="tk">-</a> <a id="194c35" class="tk">localEps</a>)) <span class="br">{</span></td></tr>
+<tr name="195" id="195">
+<td><a id="l195" class='ln'>195</a></td><td>      <a id="195c7" class="tk">yout</a> = <a id="195c14" class="tk">uBuf</a>[<a id="195c19" class="tk">i</a>];</td></tr>
+<tr name="196" id="196">
+<td><a id="l196" class='ln'>196</a></td><td>    <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="197" id="197">
+<td><a id="l197" class='ln'>197</a></td><td>      <span class="kw">if</span> (<a id="197c11" class="tk">i</a> <a id="197c13" class="tk">==</a> 0) <span class="br">{</span></td></tr>
+<tr name="198" id="198">
+<td><a id="l198" class='ln'>198</a></td><td>        <a id="198c9" class="tk">yout</a> = <a id="198c16" class="tk">uBuf</a>[<a id="198c21" class="tk">bufSz</a><a id="198c26" class="tk">-</a>1];</td></tr>
+<tr name="199" id="199">
+<td><a id="l199" class='ln'>199</a></td><td>      <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="200" id="200">
+<td><a id="l200" class='ln'>200</a></td><td>        <a id="200c9" class="tk">yout</a> = <a id="200c16" class="tk">uBuf</a>[<a id="200c21" class="tk">i</a><a id="200c22" class="tk">-</a>1];</td></tr>
+<tr name="201" id="201">
+<td><a id="l201" class='ln'>201</a></td><td>      <span class="br">}</span></td></tr>
+<tr name="202" id="202">
+<td><a id="l202" class='ln'>202</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="203" id="203">
+<td><a id="l203" class='ln'>203</a></td><td>  <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="204" id="204">
+<td><a id="l204" class='ln'>204</a></td><td>    <span class="kw">if</span> (<a id="204c9" class="tk">i</a> <a id="204c11" class="tk">==</a> 0) <span class="br">{</span></td></tr>
+<tr name="205" id="205">
+<td><a id="l205" class='ln'>205</a></td><td>      <a id="205c7" class="tk">t1</a> = <a id="205c12" class="tk">tBuf</a>[<a id="205c17" class="tk">bufSz</a><a id="205c22" class="tk">-</a>1];</td></tr>
+<tr name="206" id="206">
+<td><a id="l206" class='ln'>206</a></td><td>      <a id="206c7" class="tk">u1</a> = <a id="206c12" class="tk">uBuf</a>[<a id="206c17" class="tk">bufSz</a><a id="206c22" class="tk">-</a>1];</td></tr>
+<tr name="207" id="207">
+<td><a id="l207" class='ln'>207</a></td><td>    <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="208" id="208">
+<td><a id="l208" class='ln'>208</a></td><td>      <a id="208c7" class="tk">t1</a> = <a id="208c12" class="tk">tBuf</a>[<a id="208c17" class="tk">i</a><a id="208c18" class="tk">-</a>1];</td></tr>
+<tr name="209" id="209">
+<td><a id="l209" class='ln'>209</a></td><td>      <a id="209c7" class="tk">u1</a> = <a id="209c12" class="tk">uBuf</a>[<a id="209c17" class="tk">i</a><a id="209c18" class="tk">-</a>1];</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>    <a id="212c5" class="tk">t2</a> = <a id="212c10" class="tk">tBuf</a>[<a id="212c15" class="tk">i</a>];</td></tr>
+<tr name="213" id="213">
+<td><a id="l213" class='ln'>213</a></td><td>    <a id="213c5" class="tk">u2</a> = <a id="213c10" class="tk">uBuf</a>[<a id="213c15" class="tk">i</a>];</td></tr>
+<tr name="214" id="214">
+<td><a id="l214" class='ln'>214</a></td><td>    <span class="kw">if</span> (<a id="214c9" class="tk">t2</a> <a id="214c12" class="tk">==</a> <a id="214c15" class="tk">t1</a>) <span class="br">{</span></td></tr>
+<tr name="215" id="215">
+<td><a id="l215" class='ln'>215</a></td><td>      <span class="kw">if</span> (<a id="215c11" class="tk">tMinusDelay</a> <a id="215c23" class="tk">&gt;=</a> <a id="215c26" class="tk">t2</a>) <span class="br">{</span></td></tr>
+<tr name="216" id="216">
+<td><a id="l216" class='ln'>216</a></td><td>        <a id="216c9" class="tk">yout</a> = <a id="216c16" class="tk">u2</a>;</td></tr>
+<tr name="217" id="217">
+<td><a id="l217" class='ln'>217</a></td><td>      <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="218" id="218">
+<td><a id="l218" class='ln'>218</a></td><td>        <a id="218c9" class="tk">yout</a> = <a id="218c16" class="tk">u1</a>;</td></tr>
+<tr name="219" id="219">
+<td><a id="l219" class='ln'>219</a></td><td>      <span class="br">}</span></td></tr>
+<tr name="220" id="220">
+<td><a id="l220" class='ln'>220</a></td><td>    <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="221" id="221">
+<td><a id="l221" class='ln'>221</a></td><td>      <a id="221c7" class="tk">real_T</a> <a id="221c14" class="tk">f1</a> = (<a id="221c20" class="tk">t2</a><a id="221c22" class="tk">-</a><a id="221c23" class="tk">tMinusDelay</a>) <a id="221c36" class="tk">/</a> (<a id="221c39" class="tk">t2</a><a id="221c41" class="tk">-</a><a id="221c42" class="tk">t1</a>);</td></tr>
+<tr name="222" id="222">
+<td><a id="l222" class='ln'>222</a></td><td>      <a id="222c7" class="tk">real_T</a> <a id="222c14" class="tk">f2</a> = 1.0 <a id="222c23" class="tk">-</a> <a id="222c25" class="tk">f1</a>;</td></tr>
+<tr name="223" id="223">
+<td><a id="l223" class='ln'>223</a></td><td></td></tr>
+<tr name="224" id="224">
+<td><a id="l224" class='ln'>224</a></td><td>      <span class="ct">/*</span></td></tr>
+<tr name="225" id="225">
+<td><a id="l225" class='ln'>225</a></td><td><span class="ct">       * Use Lagrange's interpolation formula.  Exact outputs at t1, t2.</span></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>      <a id="227c7" class="tk">yout</a> = <a id="227c14" class="tk">f1</a><a id="227c16" class="tk">*</a><a id="227c17" class="tk">u1</a> <a id="227c20" class="tk">+</a> <a id="227c22" class="tk">f2</a><a id="227c24" class="tk">*</a><a id="227c25" class="tk">u2</a>;</td></tr>
+<tr name="228" id="228">
+<td><a id="l228" class='ln'>228</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="229" id="229">
+<td><a id="l229" class='ln'>229</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="230" id="230">
+<td><a id="l230" class='ln'>230</a></td><td></td></tr>
+<tr name="231" id="231">
+<td><a id="l231" class='ln'>231</a></td><td>  <span class="kw">return</span>(<a id="231c10" class="tk">yout</a>);</td></tr>
+<tr name="232" id="232">
+<td><a id="l232" class='ln'>232</a></td><td><span class="br">}</span></td></tr>
+<tr name="233" id="233">
+<td><a id="l233" class='ln'>233</a></td><td></td></tr>
+<tr name="234" id="234">
+<td><a id="l234" class='ln'>234</a></td><td><a id="234c1" class="tk">real_T</a> <a id="234c8" class="tk">PWM_look1_binlx</a>(<a id="234c24" class="tk">real_T</a> <a id="234c31" class="tk">u0</a>, <span class="kw">const</span> <a id="234c41" class="tk">real_T</a> <a id="234c48" class="tk">bp0</a>[], <span class="kw">const</span> <a id="234c61" class="tk">real_T</a> <a id="234c68" class="tk">table</a>[],</td></tr>
+<tr name="235" id="235">
+<td><a id="l235" class='ln'>235</a></td><td>  <a id="235c3" class="tk">uint32_T</a> <a id="235c12" class="tk">maxIndex</a>)</td></tr>
+<tr name="236" id="236">
+<td><a id="l236" class='ln'>236</a></td><td><span class="br">{</span></td></tr>
+<tr name="237" id="237">
+<td><a id="l237" class='ln'>237</a></td><td>  <a id="237c3" class="tk">real_T</a> <a id="237c10" class="tk">frac</a>;</td></tr>
+<tr name="238" id="238">
+<td><a id="l238" class='ln'>238</a></td><td>  <a id="238c3" class="tk">real_T</a> <a id="238c10" class="tk">yL_0d0</a>;</td></tr>
+<tr name="239" id="239">
+<td><a id="l239" class='ln'>239</a></td><td>  <a id="239c3" class="tk">uint32_T</a> <a id="239c12" class="tk">bpIdx</a>;</td></tr>
+<tr name="240" id="240">
+<td><a id="l240" class='ln'>240</a></td><td>  <a id="240c3" class="tk">uint32_T</a> <a id="240c12" class="tk">iLeft</a>;</td></tr>
+<tr name="241" id="241">
+<td><a id="l241" class='ln'>241</a></td><td>  <a id="241c3" class="tk">uint32_T</a> <a id="241c12" class="tk">iRght</a>;</td></tr>
+<tr name="242" id="242">
+<td><a id="l242" class='ln'>242</a></td><td></td></tr>
+<tr name="243" id="243">
+<td><a id="l243" class='ln'>243</a></td><td>  <span class="ct">/* Column-major Lookup 1-D</span></td></tr>
+<tr name="244" id="244">
+<td><a id="l244" class='ln'>244</a></td><td><span class="ct">     Search method: 'binary'</span></td></tr>
+<tr name="245" id="245">
+<td><a id="l245" class='ln'>245</a></td><td><span class="ct">     Use previous index: 'off'</span></td></tr>
+<tr name="246" id="246">
+<td><a id="l246" class='ln'>246</a></td><td><span class="ct">     Interpolation method: 'Linear point-slope'</span></td></tr>
+<tr name="247" id="247">
+<td><a id="l247" class='ln'>247</a></td><td><span class="ct">     Extrapolation method: 'Linear'</span></td></tr>
+<tr name="248" id="248">
+<td><a id="l248" class='ln'>248</a></td><td><span class="ct">     Use last breakpoint for index at or above upper limit: 'off'</span></td></tr>
+<tr name="249" id="249">
+<td><a id="l249" class='ln'>249</a></td><td><span class="ct">     Remove protection against out-of-range input in generated code: 'off'</span></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">/* Prelookup - Index and Fraction</span></td></tr>
+<tr name="252" id="252">
+<td><a id="l252" class='ln'>252</a></td><td><span class="ct">     Index Search method: 'binary'</span></td></tr>
+<tr name="253" id="253">
+<td><a id="l253" class='ln'>253</a></td><td><span class="ct">     Extrapolation method: 'Linear'</span></td></tr>
+<tr name="254" id="254">
+<td><a id="l254" class='ln'>254</a></td><td><span class="ct">     Use previous index: 'off'</span></td></tr>
+<tr name="255" id="255">
+<td><a id="l255" class='ln'>255</a></td><td><span class="ct">     Use last breakpoint for index at or above upper limit: 'off'</span></td></tr>
+<tr name="256" id="256">
+<td><a id="l256" class='ln'>256</a></td><td><span class="ct">     Remove protection against out-of-range input in generated code: 'off'</span></td></tr>
+<tr name="257" id="257">
+<td><a id="l257" class='ln'>257</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="258" id="258">
+<td><a id="l258" class='ln'>258</a></td><td>  <span class="kw">if</span> (<a id="258c7" class="tk">u0</a> <a id="258c10" class="tk">&lt;=</a> <a id="258c13" class="tk">bp0</a>[0U]) <span class="br">{</span></td></tr>
+<tr name="259" id="259">
+<td><a id="l259" class='ln'>259</a></td><td>    <a id="259c5" class="tk">iLeft</a> = 0U;</td></tr>
+<tr name="260" id="260">
+<td><a id="l260" class='ln'>260</a></td><td>    <a id="260c5" class="tk">frac</a> = (<a id="260c13" class="tk">u0</a> <a id="260c16" class="tk">-</a> <a id="260c18" class="tk">bp0</a>[0U]) <a id="260c27" class="tk">/</a> (<a id="260c30" class="tk">bp0</a>[1U] <a id="260c38" class="tk">-</a> <a id="260c40" class="tk">bp0</a>[0U]);</td></tr>
+<tr name="261" id="261">
+<td><a id="l261" class='ln'>261</a></td><td>  <span class="br">}</span> <span class="kw">else</span> <span class="kw">if</span> (<a id="261c14" class="tk">u0</a> <a id="261c17" class="tk">&lt;</a> <a id="261c19" class="tk">bp0</a>[<a id="261c23" class="tk">maxIndex</a>]) <span class="br">{</span></td></tr>
+<tr name="262" id="262">
+<td><a id="l262" class='ln'>262</a></td><td>    <span class="ct">/* Binary Search */</span></td></tr>
+<tr name="263" id="263">
+<td><a id="l263" class='ln'>263</a></td><td>    <a id="263c5" class="tk">bpIdx</a> = <a id="263c13" class="tk">maxIndex</a> <a id="263c22" class="tk">&gt;&gt;</a> 1U;</td></tr>
+<tr name="264" id="264">
+<td><a id="l264" class='ln'>264</a></td><td>    <a id="264c5" class="tk">iLeft</a> = 0U;</td></tr>
+<tr name="265" id="265">
+<td><a id="l265" class='ln'>265</a></td><td>    <a id="265c5" class="tk">iRght</a> = <a id="265c13" class="tk">maxIndex</a>;</td></tr>
+<tr name="266" id="266">
+<td><a id="l266" class='ln'>266</a></td><td>    <span class="kw">while</span> (<a id="266c12" class="tk">iRght</a> <a id="266c18" class="tk">-</a> <a id="266c20" class="tk">iLeft</a> <a id="266c26" class="tk">&gt;</a> 1U) <span class="br">{</span></td></tr>
+<tr name="267" id="267">
+<td><a id="l267" class='ln'>267</a></td><td>      <span class="kw">if</span> (<a id="267c11" class="tk">u0</a> <a id="267c14" class="tk">&lt;</a> <a id="267c16" class="tk">bp0</a>[<a id="267c20" class="tk">bpIdx</a>]) <span class="br">{</span></td></tr>
+<tr name="268" id="268">
+<td><a id="l268" class='ln'>268</a></td><td>        <a id="268c9" class="tk">iRght</a> = <a id="268c17" class="tk">bpIdx</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="br">{</span></td></tr>
+<tr name="270" id="270">
+<td><a id="l270" class='ln'>270</a></td><td>        <a id="270c9" class="tk">iLeft</a> = <a id="270c17" class="tk">bpIdx</a>;</td></tr>
+<tr name="271" id="271">
+<td><a id="l271" class='ln'>271</a></td><td>      <span class="br">}</span></td></tr>
+<tr name="272" id="272">
+<td><a id="l272" class='ln'>272</a></td><td></td></tr>
+<tr name="273" id="273">
+<td><a id="l273" class='ln'>273</a></td><td>      <a id="273c7" class="tk">bpIdx</a> = (<a id="273c16" class="tk">iRght</a> <a id="273c22" class="tk">+</a> <a id="273c24" class="tk">iLeft</a>) <a id="273c31" class="tk">&gt;&gt;</a> 1U;</td></tr>
+<tr name="274" id="274">
+<td><a id="l274" class='ln'>274</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="275" id="275">
+<td><a id="l275" class='ln'>275</a></td><td></td></tr>
+<tr name="276" id="276">
+<td><a id="l276" class='ln'>276</a></td><td>    <a id="276c5" class="tk">frac</a> = (<a id="276c13" class="tk">u0</a> <a id="276c16" class="tk">-</a> <a id="276c18" class="tk">bp0</a>[<a id="276c22" class="tk">iLeft</a>]) <a id="276c30" class="tk">/</a> (<a id="276c33" class="tk">bp0</a>[<a id="276c37" class="tk">iLeft</a> <a id="276c43" class="tk">+</a> 1U] <a id="276c49" class="tk">-</a> <a id="276c51" class="tk">bp0</a>[<a id="276c55" class="tk">iLeft</a>]);</td></tr>
+<tr name="277" id="277">
+<td><a id="l277" class='ln'>277</a></td><td>  <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="278" id="278">
+<td><a id="l278" class='ln'>278</a></td><td>    <a id="278c5" class="tk">iLeft</a> = <a id="278c13" class="tk">maxIndex</a> <a id="278c22" class="tk">-</a> 1U;</td></tr>
+<tr name="279" id="279">
+<td><a id="l279" class='ln'>279</a></td><td>    <a id="279c5" class="tk">frac</a> = (<a id="279c13" class="tk">u0</a> <a id="279c16" class="tk">-</a> <a id="279c18" class="tk">bp0</a>[<a id="279c22" class="tk">maxIndex</a> <a id="279c31" class="tk">-</a> 1U]) <a id="279c38" class="tk">/</a> (<a id="279c41" class="tk">bp0</a>[<a id="279c45" class="tk">maxIndex</a>] <a id="279c55" class="tk">-</a> <a id="279c57" class="tk">bp0</a>[<a id="279c61" class="tk">maxIndex</a> <a id="279c70" class="tk">-</a> 1U]);</td></tr>
+<tr name="280" id="280">
+<td><a id="l280" class='ln'>280</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="281" id="281">
+<td><a id="l281" class='ln'>281</a></td><td></td></tr>
+<tr name="282" id="282">
+<td><a id="l282" class='ln'>282</a></td><td>  <span class="ct">/* Column-major Interpolation 1-D</span></td></tr>
+<tr name="283" id="283">
+<td><a id="l283" class='ln'>283</a></td><td><span class="ct">     Interpolation method: 'Linear point-slope'</span></td></tr>
+<tr name="284" id="284">
+<td><a id="l284" class='ln'>284</a></td><td><span class="ct">     Use last breakpoint for index at or above upper limit: 'off'</span></td></tr>
+<tr name="285" id="285">
+<td><a id="l285" class='ln'>285</a></td><td><span class="ct">     Overflow mode: 'wrapping'</span></td></tr>
+<tr name="286" id="286">
+<td><a id="l286" class='ln'>286</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="287" id="287">
+<td><a id="l287" class='ln'>287</a></td><td>  <a id="287c3" class="tk">yL_0d0</a> = <a id="287c12" class="tk">table</a>[<a id="287c18" class="tk">iLeft</a>];</td></tr>
+<tr name="288" id="288">
+<td><a id="l288" class='ln'>288</a></td><td>  <span class="kw">return</span> (<a id="288c11" class="tk">table</a>[<a id="288c17" class="tk">iLeft</a> <a id="288c23" class="tk">+</a> 1U] <a id="288c29" class="tk">-</a> <a id="288c31" class="tk">yL_0d0</a>) <a id="288c39" class="tk">*</a> <a id="288c41" class="tk">frac</a> <a id="288c46" class="tk">+</a> <a id="288c48" class="tk">yL_0d0</a>;</td></tr>
+<tr name="289" id="289">
+<td><a id="l289" class='ln'>289</a></td><td><span class="br">}</span></td></tr>
+<tr name="290" id="290">
+<td><a id="l290" class='ln'>290</a></td><td></td></tr>
+<tr name="291" id="291">
+<td><a id="l291" class='ln'>291</a></td><td><span class="kw">static</span> <a id="291c8" class="tk">real_T</a> <a id="291c15" class="tk">PWM_rt_remd_snf</a>(<a id="291c31" class="tk">real_T</a> <a id="291c38" class="tk">u0</a>, <a id="291c42" class="tk">real_T</a> <a id="291c49" class="tk">u1</a>)</td></tr>
+<tr name="292" id="292">
+<td><a id="l292" class='ln'>292</a></td><td><span class="br">{</span></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">q</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">y</a>;</td></tr>
+<tr name="295" id="295">
+<td><a id="l295" class='ln'>295</a></td><td>  <span class="kw">if</span> (<a id="295c7" class="tk">rtIsNaN</a>(<a id="295c15" class="tk">u0</a>) <a id="295c19" class="tk">||</a> <a id="295c22" class="tk">rtIsNaN</a>(<a id="295c30" class="tk">u1</a>) <a id="295c34" class="tk">||</a> <a id="295c37" class="tk">rtIsInf</a>(<a id="295c45" class="tk">u0</a>)) <span class="br">{</span></td></tr>
+<tr name="296" id="296">
+<td><a id="l296" class='ln'>296</a></td><td>    <a id="296c5" class="tk">y</a> = (<a id="296c10" class="tk">rtNaN</a>);</td></tr>
+<tr name="297" id="297">
+<td><a id="l297" class='ln'>297</a></td><td>  <span class="br">}</span> <span class="kw">else</span> <span class="kw">if</span> (<a id="297c14" class="tk">rtIsInf</a>(<a id="297c22" class="tk">u1</a>)) <span class="br">{</span></td></tr>
+<tr name="298" id="298">
+<td><a id="l298" class='ln'>298</a></td><td>    <a id="298c5" class="tk">y</a> = <a id="298c9" class="tk">u0</a>;</td></tr>
+<tr name="299" id="299">
+<td><a id="l299" class='ln'>299</a></td><td>  <span class="br">}</span> <span class="kw">else</span> <span class="kw">if</span> ((<a id="299c15" class="tk">u1</a> <a id="299c18" class="tk">!=</a> 0.0) <a id="299c26" class="tk">&amp;&amp;</a> (<a id="299c30" class="tk">u1</a> <a id="299c33" class="tk">!=</a> <a id="299c36" class="tk">trunc</a>(<a id="299c42" class="tk">u1</a>))) <span class="br">{</span></td></tr>
+<tr name="300" id="300">
+<td><a id="l300" class='ln'>300</a></td><td>    <a id="300c5" class="tk">q</a> = <a id="300c9" class="tk">fabs</a>(<a id="300c14" class="tk">u0</a> <a id="300c17" class="tk">/</a> <a id="300c19" class="tk">u1</a>);</td></tr>
+<tr name="301" id="301">
+<td><a id="l301" class='ln'>301</a></td><td>    <span class="kw">if</span> (<a id="301c9" class="tk">!</a>(<a id="301c11" class="tk">fabs</a>(<a id="301c16" class="tk">q</a> <a id="301c18" class="tk">-</a> <a id="301c20" class="tk">floor</a>(<a id="301c26" class="tk">q</a> <a id="301c28" class="tk">+</a> 0.5)) <a id="301c36" class="tk">&gt;</a> <a id="301c38" class="tk">DBL_EPSILON</a> <a id="301c50" class="tk">*</a> <a id="301c52" class="tk">q</a>)) <span class="br">{</span></td></tr>
+<tr name="302" id="302">
+<td><a id="l302" class='ln'>302</a></td><td>      <a id="302c7" class="tk">y</a> = 0.0 <a id="302c15" class="tk">*</a> <a id="302c17" class="tk">u0</a>;</td></tr>
+<tr name="303" id="303">
+<td><a id="l303" class='ln'>303</a></td><td>    <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="304" id="304">
+<td><a id="l304" class='ln'>304</a></td><td>      <a id="304c7" class="tk">y</a> = <a id="304c11" class="tk">fmod</a>(<a id="304c16" class="tk">u0</a>, <a id="304c20" class="tk">u1</a>);</td></tr>
+<tr name="305" id="305">
+<td><a id="l305" class='ln'>305</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="306" id="306">
+<td><a id="l306" class='ln'>306</a></td><td>  <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="307" id="307">
+<td><a id="l307" class='ln'>307</a></td><td>    <a id="307c5" class="tk">y</a> = <a id="307c9" class="tk">fmod</a>(<a id="307c14" class="tk">u0</a>, <a id="307c18" class="tk">u1</a>);</td></tr>
+<tr name="308" id="308">
+<td><a id="l308" class='ln'>308</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="309" id="309">
+<td><a id="l309" class='ln'>309</a></td><td></td></tr>
+<tr name="310" id="310">
+<td><a id="l310" class='ln'>310</a></td><td>  <span class="kw">return</span> <a id="310c10" class="tk">y</a>;</td></tr>
+<tr name="311" id="311">
+<td><a id="l311" class='ln'>311</a></td><td><span class="br">}</span></td></tr>
+<tr name="312" id="312">
+<td><a id="l312" class='ln'>312</a></td><td></td></tr>
+<tr name="313" id="313">
+<td><a id="l313" class='ln'>313</a></td><td><span class="ct">/* Start for root system: '&lt;Root&gt;' */</span></td></tr>
+<tr name="314" id="314">
+<td><a id="l314" class='ln'>314</a></td><td><span class="pp">#define</span> <a id="314c9" class="tk">MDL_START</a></td></tr>
+<tr name="315" id="315">
+<td><a id="l315" class='ln'>315</a></td><td></td></tr>
+<tr name="316" id="316">
+<td><a id="l316" class='ln'>316</a></td><td><span class="kw">static</span> <span class="kw">void</span> <a id="316c13" class="tk">mdlStart</a>(<a id="316c22" class="tk">SimStruct</a> <a id="316c32" class="tk">*</a><a id="316c33" class="tk">S</a>)</td></tr>
+<tr name="317" id="317">
+<td><a id="l317" class='ln'>317</a></td><td><span class="br">{</span></td></tr>
+<tr name="318" id="318">
+<td><a id="l318" class='ln'>318</a></td><td>  <span class="ct">/* instance underlying S-Function data */</span></td></tr>
+<tr name="319" id="319">
+<td><a id="l319" class='ln'>319</a></td><td><span class="pp">#if</span> <a id="319c5" class="tk">defined</a>(<a id="319c13" class="tk">RT_MALLOC</a>) <a id="319c24" class="tk">||</a> <a id="319c27" class="tk">defined</a>(<a id="319c35" class="tk">MATLAB_MEX_FILE</a>)</td></tr>
+<tr name="320" id="320">
+<td><a id="l320" class='ln'>320</a></td><td><span class="pp">#if</span> <a id="320c5" class="tk">defined</a>(<a id="320c13" class="tk">MATLAB_MEX_FILE</a>)</td></tr>
+<tr name="321" id="321">
+<td><a id="l321" class='ln'>321</a></td><td></td></tr>
+<tr name="322" id="322">
+<td><a id="l322" class='ln'>322</a></td><td>  <span class="ct">/* non-finites */</span></td></tr>
+<tr name="323" id="323">
+<td><a id="l323" class='ln'>323</a></td><td>  <a id="323c3" class="tk">rt_InitInfAndNaN</a>(<span class="kw">sizeof</span>(<a id="323c27" class="tk">real_T</a>));</td></tr>
+<tr name="324" id="324">
+<td><a id="l324" class='ln'>324</a></td><td></td></tr>
+<tr name="325" id="325">
+<td><a id="l325" class='ln'>325</a></td><td>  <span class="ct">/* Check for invalid switching between solver types */</span></td></tr>
+<tr name="326" id="326">
+<td><a id="l326" class='ln'>326</a></td><td>  <span class="kw">if</span> (<a id="326c7" class="tk">ssIsVariableStepSolver</a>(<a id="326c30" class="tk">S</a>)) <span class="br">{</span></td></tr>
+<tr name="327" id="327">
+<td><a id="l327" class='ln'>327</a></td><td>    <a id="327c5" class="tk">ssSetErrorStatus</a>(<a id="327c22" class="tk">S</a>, "This Simulink Coder generated "</td></tr>
+<tr name="328" id="328">
+<td><a id="l328" class='ln'>328</a></td><td>                     "S-Function cannot be used in a simulation with "</td></tr>
+<tr name="329" id="329">
+<td><a id="l329" class='ln'>329</a></td><td>                     "a solver type of variable-step "</td></tr>
+<tr name="330" id="330">
+<td><a id="l330" class='ln'>330</a></td><td>                     "because this S-Function was created from a model with "</td></tr>
+<tr name="331" id="331">
+<td><a id="l331" class='ln'>331</a></td><td>                     "solver type of fixed-step and it has continuous time blocks. "</td></tr>
+<tr name="332" id="332">
+<td><a id="l332" class='ln'>332</a></td><td>                     "See the Solver page of the simulation parameters dialog.");</td></tr>
+<tr name="333" id="333">
+<td><a id="l333" class='ln'>333</a></td><td>    <span class="kw">return</span>;</td></tr>
+<tr name="334" id="334">
+<td><a id="l334" class='ln'>334</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="335" id="335">
+<td><a id="l335" class='ln'>335</a></td><td></td></tr>
+<tr name="336" id="336">
+<td><a id="l336" class='ln'>336</a></td><td>  <span class="kw">if</span> (<a id="336c7" class="tk">fabs</a>(<a id="336c12" class="tk">ssGetFixedStepSize</a>(<a id="336c31" class="tk">S</a>) <a id="336c34" class="tk">-</a> 5.0E-7) <a id="336c44" class="tk">&gt;</a> <a id="336c46" class="tk">mxGetEps</a>()<a id="336c56" class="tk">*</a>100<a id="336c60" class="tk">*</a>5.0E-7) <span class="br">{</span></td></tr>
+<tr name="337" id="337">
+<td><a id="l337" class='ln'>337</a></td><td>    <a id="337c5" class="tk">ssSetErrorStatus</a>(<a id="337c22" class="tk">S</a>, "This Simulink Coder generated "</td></tr>
+<tr name="338" id="338">
+<td><a id="l338" class='ln'>338</a></td><td>                     "S-Function cannot be used in a simulation with "</td></tr>
+<tr name="339" id="339">
+<td><a id="l339" class='ln'>339</a></td><td>                     "the current fixed step size "</td></tr>
+<tr name="340" id="340">
+<td><a id="l340" class='ln'>340</a></td><td>                     "because this S-Function was created from a model with "</td></tr>
+<tr name="341" id="341">
+<td><a id="l341" class='ln'>341</a></td><td>                     "a fixed step size of 5.0E-7 and had both "</td></tr>
+<tr name="342" id="342">
+<td><a id="l342" class='ln'>342</a></td><td>                     "continuous blocks and discrete blocks running at this rate. "</td></tr>
+<tr name="343" id="343">
+<td><a id="l343" class='ln'>343</a></td><td>                     "See the Solver page of the simulation parameters dialog.");</td></tr>
+<tr name="344" id="344">
+<td><a id="l344" class='ln'>344</a></td><td>    <span class="kw">return</span>;</td></tr>
+<tr name="345" id="345">
+<td><a id="l345" class='ln'>345</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="346" id="346">
+<td><a id="l346" class='ln'>346</a></td><td></td></tr>
+<tr name="347" id="347">
+<td><a id="l347" class='ln'>347</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="348" id="348">
+<td><a id="l348" class='ln'>348</a></td><td></td></tr>
+<tr name="349" id="349">
+<td><a id="l349" class='ln'>349</a></td><td>  <a id="349c3" class="tk">PWM_malloc</a>(<a id="349c14" class="tk">S</a>);</td></tr>
+<tr name="350" id="350">
+<td><a id="l350" class='ln'>350</a></td><td>  <span class="kw">if</span> (<a id="350c7" class="tk">ssGetErrorStatus</a>(<a id="350c24" class="tk">S</a>) <a id="350c27" class="tk">!=</a> (<a id="350c31" class="tk">NULL</a>) ) <span class="br">{</span></td></tr>
+<tr name="351" id="351">
+<td><a id="l351" class='ln'>351</a></td><td>    <span class="kw">return</span>;</td></tr>
+<tr name="352" id="352">
+<td><a id="l352" class='ln'>352</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="353" id="353">
+<td><a id="l353" class='ln'>353</a></td><td></td></tr>
+<tr name="354" id="354">
+<td><a id="l354" class='ln'>354</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="355" id="355">
+<td><a id="l355" class='ln'>355</a></td><td></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>    <a id="357c5" class="tk">B_PWM_T</a> <a id="357c13" class="tk">*</a><a id="357c14" class="tk">_rtB</a>;</td></tr>
+<tr name="358" id="358">
+<td><a id="l358" class='ln'>358</a></td><td>    <a id="358c5" class="tk">_rtB</a> = ((<a id="358c14" class="tk">B_PWM_T</a> <a id="358c22" class="tk">*</a>) <a id="358c25" class="tk">ssGetLocalBlockIO</a>(<a id="358c43" class="tk">S</a>));</td></tr>
+<tr name="359" id="359">
+<td><a id="l359" class='ln'>359</a></td><td></td></tr>
+<tr name="360" id="360">
+<td><a id="l360" class='ln'>360</a></td><td>    <span class="ct">/* Start for TransportDelay: '&lt;S2&gt;/Transport Delay' */</span></td></tr>
+<tr name="361" id="361">
+<td><a id="l361" class='ln'>361</a></td><td>    <span class="br">{</span></td></tr>
+<tr name="362" id="362">
+<td><a id="l362" class='ln'>362</a></td><td>      <a id="362c7" class="tk">real_T</a> <a id="362c14" class="tk">*</a><a id="362c15" class="tk">pBuffer</a> = <a id="362c25" class="tk">&amp;</a>((<a id="362c28" class="tk">real_T</a><a id="362c34" class="tk">*</a>) <a id="362c37" class="tk">ssGetDWork</a>(<a id="362c48" class="tk">S</a>, 0))[1];</td></tr>
+<tr name="363" id="363">
+<td><a id="l363" class='ln'>363</a></td><td>      ((<a id="363c9" class="tk">int_T</a><a id="363c14" class="tk">*</a>) <a id="363c17" class="tk">ssGetDWork</a>(<a id="363c28" class="tk">S</a>, 6))[0] = 0;</td></tr>
+<tr name="364" id="364">
+<td><a id="l364" class='ln'>364</a></td><td>      ((<a id="364c9" class="tk">int_T</a><a id="364c14" class="tk">*</a>) <a id="364c17" class="tk">ssGetDWork</a>(<a id="364c28" class="tk">S</a>, 6))[1] = 0;</td></tr>
+<tr name="365" id="365">
+<td><a id="l365" class='ln'>365</a></td><td>      ((<a id="365c9" class="tk">int_T</a><a id="365c14" class="tk">*</a>) <a id="365c17" class="tk">ssGetDWork</a>(<a id="365c28" class="tk">S</a>, 6))[2] = 0;</td></tr>
+<tr name="366" id="366">
+<td><a id="l366" class='ln'>366</a></td><td>      ((<a id="366c9" class="tk">int_T</a><a id="366c14" class="tk">*</a>) <a id="366c17" class="tk">ssGetDWork</a>(<a id="366c28" class="tk">S</a>, 6))[3] = 1024;</td></tr>
+<tr name="367" id="367">
+<td><a id="l367" class='ln'>367</a></td><td>      <a id="367c7" class="tk">pBuffer</a>[0] = 0.0;</td></tr>
+<tr name="368" id="368">
+<td><a id="l368" class='ln'>368</a></td><td>      <a id="368c7" class="tk">pBuffer</a>[1024] = <a id="368c23" class="tk">ssGetT</a>(<a id="368c30" class="tk">S</a>);</td></tr>
+<tr name="369" id="369">
+<td><a id="l369" class='ln'>369</a></td><td>      ((<span class="kw">void</span><a id="369c13" class="tk">*</a><a id="369c14" class="tk">*</a>) <a id="369c17" class="tk">ssGetDWork</a>(<a id="369c28" class="tk">S</a>, 3))[0] = (<span class="kw">void</span> <a id="369c46" class="tk">*</a>) <a id="369c49" class="tk">&amp;</a><a id="369c50" class="tk">pBuffer</a>[0];</td></tr>
+<tr name="370" id="370">
+<td><a id="l370" class='ln'>370</a></td><td>      ((<span class="kw">void</span><a id="370c13" class="tk">*</a><a id="370c14" class="tk">*</a>) <a id="370c17" class="tk">ssGetDWork</a>(<a id="370c28" class="tk">S</a>, 3))[1] = (<span class="kw">void</span> <a id="370c46" class="tk">*</a>) <a id="370c49" class="tk">&amp;</a><a id="370c50" class="tk">pBuffer</a>[1024];</td></tr>
+<tr name="371" id="371">
+<td><a id="l371" class='ln'>371</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="372" id="372">
+<td><a id="l372" class='ln'>372</a></td><td></td></tr>
+<tr name="373" id="373">
+<td><a id="l373" class='ln'>373</a></td><td>    <span class="ct">/* Start for TransportDelay: '&lt;S2&gt;/Transport Delay1' */</span></td></tr>
+<tr name="374" id="374">
+<td><a id="l374" class='ln'>374</a></td><td>    <span class="br">{</span></td></tr>
+<tr name="375" id="375">
+<td><a id="l375" class='ln'>375</a></td><td>      <a id="375c7" class="tk">real_T</a> <a id="375c14" class="tk">*</a><a id="375c15" class="tk">pBuffer</a> = <a id="375c25" class="tk">&amp;</a>((<a id="375c28" class="tk">real_T</a><a id="375c34" class="tk">*</a>) <a id="375c37" class="tk">ssGetDWork</a>(<a id="375c48" class="tk">S</a>, 1))[1];</td></tr>
+<tr name="376" id="376">
+<td><a id="l376" class='ln'>376</a></td><td>      ((<a id="376c9" class="tk">int_T</a><a id="376c14" class="tk">*</a>) <a id="376c17" class="tk">ssGetDWork</a>(<a id="376c28" class="tk">S</a>, 7))[0] = 0;</td></tr>
+<tr name="377" id="377">
+<td><a id="l377" class='ln'>377</a></td><td>      ((<a id="377c9" class="tk">int_T</a><a id="377c14" class="tk">*</a>) <a id="377c17" class="tk">ssGetDWork</a>(<a id="377c28" class="tk">S</a>, 7))[1] = 0;</td></tr>
+<tr name="378" id="378">
+<td><a id="l378" class='ln'>378</a></td><td>      ((<a id="378c9" class="tk">int_T</a><a id="378c14" class="tk">*</a>) <a id="378c17" class="tk">ssGetDWork</a>(<a id="378c28" class="tk">S</a>, 7))[2] = 0;</td></tr>
+<tr name="379" id="379">
+<td><a id="l379" class='ln'>379</a></td><td>      ((<a id="379c9" class="tk">int_T</a><a id="379c14" class="tk">*</a>) <a id="379c17" class="tk">ssGetDWork</a>(<a id="379c28" class="tk">S</a>, 7))[3] = 1024;</td></tr>
+<tr name="380" id="380">
+<td><a id="l380" class='ln'>380</a></td><td>      <a id="380c7" class="tk">pBuffer</a>[0] = 0.0;</td></tr>
+<tr name="381" id="381">
+<td><a id="l381" class='ln'>381</a></td><td>      <a id="381c7" class="tk">pBuffer</a>[1024] = <a id="381c23" class="tk">ssGetT</a>(<a id="381c30" class="tk">S</a>);</td></tr>
+<tr name="382" id="382">
+<td><a id="l382" class='ln'>382</a></td><td>      ((<span class="kw">void</span><a id="382c13" class="tk">*</a><a id="382c14" class="tk">*</a>) <a id="382c17" class="tk">ssGetDWork</a>(<a id="382c28" class="tk">S</a>, 4))[0] = (<span class="kw">void</span> <a id="382c46" class="tk">*</a>) <a id="382c49" class="tk">&amp;</a><a id="382c50" class="tk">pBuffer</a>[0];</td></tr>
+<tr name="383" id="383">
+<td><a id="l383" class='ln'>383</a></td><td>      ((<span class="kw">void</span><a id="383c13" class="tk">*</a><a id="383c14" class="tk">*</a>) <a id="383c17" class="tk">ssGetDWork</a>(<a id="383c28" class="tk">S</a>, 4))[1] = (<span class="kw">void</span> <a id="383c46" class="tk">*</a>) <a id="383c49" class="tk">&amp;</a><a id="383c50" class="tk">pBuffer</a>[1024];</td></tr>
+<tr name="384" id="384">
+<td><a id="l384" class='ln'>384</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="385" id="385">
+<td><a id="l385" class='ln'>385</a></td><td></td></tr>
+<tr name="386" id="386">
+<td><a id="l386" class='ln'>386</a></td><td>    <span class="ct">/* Start for TransportDelay: '&lt;S2&gt;/Transport Delay2' */</span></td></tr>
+<tr name="387" id="387">
+<td><a id="l387" class='ln'>387</a></td><td>    <span class="br">{</span></td></tr>
+<tr name="388" id="388">
+<td><a id="l388" class='ln'>388</a></td><td>      <a id="388c7" class="tk">real_T</a> <a id="388c14" class="tk">*</a><a id="388c15" class="tk">pBuffer</a> = <a id="388c25" class="tk">&amp;</a>((<a id="388c28" class="tk">real_T</a><a id="388c34" class="tk">*</a>) <a id="388c37" class="tk">ssGetDWork</a>(<a id="388c48" class="tk">S</a>, 2))[1];</td></tr>
+<tr name="389" id="389">
+<td><a id="l389" class='ln'>389</a></td><td>      ((<a id="389c9" class="tk">int_T</a><a id="389c14" class="tk">*</a>) <a id="389c17" class="tk">ssGetDWork</a>(<a id="389c28" class="tk">S</a>, 8))[0] = 0;</td></tr>
+<tr name="390" id="390">
+<td><a id="l390" class='ln'>390</a></td><td>      ((<a id="390c9" class="tk">int_T</a><a id="390c14" class="tk">*</a>) <a id="390c17" class="tk">ssGetDWork</a>(<a id="390c28" class="tk">S</a>, 8))[1] = 0;</td></tr>
+<tr name="391" id="391">
+<td><a id="l391" class='ln'>391</a></td><td>      ((<a id="391c9" class="tk">int_T</a><a id="391c14" class="tk">*</a>) <a id="391c17" class="tk">ssGetDWork</a>(<a id="391c28" class="tk">S</a>, 8))[2] = 0;</td></tr>
+<tr name="392" id="392">
+<td><a id="l392" class='ln'>392</a></td><td>      ((<a id="392c9" class="tk">int_T</a><a id="392c14" class="tk">*</a>) <a id="392c17" class="tk">ssGetDWork</a>(<a id="392c28" class="tk">S</a>, 8))[3] = 1024;</td></tr>
+<tr name="393" id="393">
+<td><a id="l393" class='ln'>393</a></td><td>      <a id="393c7" class="tk">pBuffer</a>[0] = 0.0;</td></tr>
+<tr name="394" id="394">
+<td><a id="l394" class='ln'>394</a></td><td>      <a id="394c7" class="tk">pBuffer</a>[1024] = <a id="394c23" class="tk">ssGetT</a>(<a id="394c30" class="tk">S</a>);</td></tr>
+<tr name="395" id="395">
+<td><a id="l395" class='ln'>395</a></td><td>      ((<span class="kw">void</span><a id="395c13" class="tk">*</a><a id="395c14" class="tk">*</a>) <a id="395c17" class="tk">ssGetDWork</a>(<a id="395c28" class="tk">S</a>, 5))[0] = (<span class="kw">void</span> <a id="395c46" class="tk">*</a>) <a id="395c49" class="tk">&amp;</a><a id="395c50" class="tk">pBuffer</a>[0];</td></tr>
+<tr name="396" id="396">
+<td><a id="l396" class='ln'>396</a></td><td>      ((<span class="kw">void</span><a id="396c13" class="tk">*</a><a id="396c14" class="tk">*</a>) <a id="396c17" class="tk">ssGetDWork</a>(<a id="396c28" class="tk">S</a>, 5))[1] = (<span class="kw">void</span> <a id="396c46" class="tk">*</a>) <a id="396c49" class="tk">&amp;</a><a id="396c50" class="tk">pBuffer</a>[1024];</td></tr>
+<tr name="397" id="397">
+<td><a id="l397" class='ln'>397</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="398" id="398">
+<td><a id="l398" class='ln'>398</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="399" id="399">
+<td><a id="l399" class='ln'>399</a></td><td><span class="br">}</span></td></tr>
+<tr name="400" id="400">
+<td><a id="l400" class='ln'>400</a></td><td></td></tr>
+<tr name="401" id="401">
+<td><a id="l401" class='ln'>401</a></td><td><span class="ct">/* Outputs for root system: '&lt;Root&gt;' */</span></td></tr>
+<tr name="402" id="402">
+<td><a id="l402" class='ln'>402</a></td><td><span class="kw">static</span> <span class="kw">void</span> <a id="402c13" class="tk">mdlOutputs</a>(<a id="402c24" class="tk">SimStruct</a> <a id="402c34" class="tk">*</a><a id="402c35" class="tk">S</a>, <a id="402c38" class="tk">int_T</a> <a id="402c44" class="tk">tid</a>)</td></tr>
+<tr name="403" id="403">
+<td><a id="l403" class='ln'>403</a></td><td><span class="br">{</span></td></tr>
+<tr name="404" id="404">
+<td><a id="l404" class='ln'>404</a></td><td>  <span class="ct">/* local block i/o variables */</span></td></tr>
+<tr name="405" id="405">
+<td><a id="l405" class='ln'>405</a></td><td>  <a id="405c3" class="tk">real_T</a> <a id="405c10" class="tk">rtb_TransportDelay1</a>;</td></tr>
+<tr name="406" id="406">
+<td><a id="l406" class='ln'>406</a></td><td>  <a id="406c3" class="tk">real_T</a> <a id="406c10" class="tk">rtb_TransportDelay2</a>;</td></tr>
+<tr name="407" id="407">
+<td><a id="l407" class='ln'>407</a></td><td>  <a id="407c3" class="tk">real_T</a> <a id="407c10" class="tk">rtb_TransportDelay</a>;</td></tr>
+<tr name="408" id="408">
+<td><a id="l408" class='ln'>408</a></td><td>  <a id="408c3" class="tk">B_PWM_T</a> <a id="408c11" class="tk">*</a><a id="408c12" class="tk">_rtB</a>;</td></tr>
+<tr name="409" id="409">
+<td><a id="l409" class='ln'>409</a></td><td>  <a id="409c3" class="tk">real_T</a> <a id="409c10" class="tk">expr_2_0_0</a>;</td></tr>
+<tr name="410" id="410">
+<td><a id="l410" class='ln'>410</a></td><td>  <a id="410c3" class="tk">real_T</a> <a id="410c10" class="tk">rtb_Abs</a>;</td></tr>
+<tr name="411" id="411">
+<td><a id="l411" class='ln'>411</a></td><td>  <a id="411c3" class="tk">real_T</a> <a id="411c10" class="tk">rtb_Abs2</a>;</td></tr>
+<tr name="412" id="412">
+<td><a id="l412" class='ln'>412</a></td><td>  <a id="412c3" class="tk">boolean_T</a> <a id="412c13" class="tk">rtb_RelationalOperator</a>;</td></tr>
+<tr name="413" id="413">
+<td><a id="l413" class='ln'>413</a></td><td>  <a id="413c3" class="tk">boolean_T</a> <a id="413c13" class="tk">rtb_RelationalOperator1</a>;</td></tr>
+<tr name="414" id="414">
+<td><a id="l414" class='ln'>414</a></td><td>  <a id="414c3" class="tk">boolean_T</a> <a id="414c13" class="tk">rtb_RelationalOperator2</a>;</td></tr>
+<tr name="415" id="415">
+<td><a id="l415" class='ln'>415</a></td><td>  <a id="415c3" class="tk">_rtB</a> = ((<a id="415c12" class="tk">B_PWM_T</a> <a id="415c20" class="tk">*</a>) <a id="415c23" class="tk">ssGetLocalBlockIO</a>(<a id="415c41" class="tk">S</a>));</td></tr>
+<tr name="416" id="416">
+<td><a id="l416" class='ln'>416</a></td><td>  <span class="kw">if</span> (<a id="416c7" class="tk">ssIsContinuousTask</a>(<a id="416c26" class="tk">S</a>, <a id="416c29" class="tk">tid</a>)) <span class="br">{</span></td></tr>
+<tr name="417" id="417">
+<td><a id="l417" class='ln'>417</a></td><td>    <span class="ct">/* S-Function (sfun_tstart): '&lt;S3&gt;/startTime' */</span></td></tr>
+<tr name="418" id="418">
+<td><a id="l418" class='ln'>418</a></td><td>    <span class="ct">/* S-Function Block (sfun_tstart): &lt;S3&gt;/startTime */</span></td></tr>
+<tr name="419" id="419">
+<td><a id="l419" class='ln'>419</a></td><td>    <a id="419c5" class="tk">expr_2_0_0</a> = <a id="419c18" class="tk">ssGetTStart</a>(<a id="419c30" class="tk">S</a>);</td></tr>
+<tr name="420" id="420">
+<td><a id="l420" class='ln'>420</a></td><td></td></tr>
+<tr name="421" id="421">
+<td><a id="l421" class='ln'>421</a></td><td>    <span class="ct">/* Lookup_n-D: '&lt;S3&gt;/Look-Up Table1' incorporates:</span></td></tr>
+<tr name="422" id="422">
+<td><a id="l422" class='ln'>422</a></td><td><span class="ct">     *  Clock: '&lt;S3&gt;/Clock'</span></td></tr>
+<tr name="423" id="423">
+<td><a id="l423" class='ln'>423</a></td><td><span class="ct">     *  Constant: '&lt;S3&gt;/Constant'</span></td></tr>
+<tr name="424" id="424">
+<td><a id="l424" class='ln'>424</a></td><td><span class="ct">     *  Math: '&lt;S3&gt;/Math Function'</span></td></tr>
+<tr name="425" id="425">
+<td><a id="l425" class='ln'>425</a></td><td><span class="ct">     *  Sum: '&lt;S3&gt;/Sum'</span></td></tr>
+<tr name="426" id="426">
+<td><a id="l426" class='ln'>426</a></td><td><span class="ct">     */</span></td></tr>
+<tr name="427" id="427">
+<td><a id="l427" class='ln'>427</a></td><td>    <a id="427c5" class="tk">expr_2_0_0</a> = <a id="427c18" class="tk">PWM_look1_binlx</a>(<a id="427c34" class="tk">PWM_rt_remd_snf</a>(<a id="427c50" class="tk">ssGetT</a>(<a id="427c57" class="tk">S</a>) <a id="427c60" class="tk">-</a> <a id="427c62" class="tk">expr_2_0_0</a>, 0.0001),</td></tr>
+<tr name="428" id="428">
+<td><a id="l428" class='ln'>428</a></td><td>      <a id="428c7" class="tk">PWM_ConstP</a>.<a id="428c18" class="tk">LookUpTable1_bp01Data</a>, <a id="428c41" class="tk">PWM_ConstP</a>.<a id="428c52" class="tk">LookUpTable1_tableData</a>, 2U);</td></tr>
+<tr name="429" id="429">
+<td><a id="l429" class='ln'>429</a></td><td></td></tr>
+<tr name="430" id="430">
+<td><a id="l430" class='ln'>430</a></td><td>    <span class="ct">/* RelationalOperator: '&lt;S2&gt;/Relational Operator' */</span></td></tr>
+<tr name="431" id="431">
+<td><a id="l431" class='ln'>431</a></td><td>    <a id="431c5" class="tk">rtb_RelationalOperator</a> = (<a id="431c31" class="tk">expr_2_0_0</a> <a id="431c42" class="tk">&gt;</a> <a id="431c44" class="tk">*</a>((<span class="kw">const</span> <a id="431c53" class="tk">real_T</a> <a id="431c60" class="tk">*</a><a id="431c61" class="tk">*</a>)</td></tr>
+<tr name="432" id="432">
+<td><a id="l432" class='ln'>432</a></td><td>      <a id="432c7" class="tk">ssGetInputPortSignalPtrs</a>(<a id="432c32" class="tk">S</a>, 0))[0]);</td></tr>
+<tr name="433" id="433">
+<td><a id="l433" class='ln'>433</a></td><td></td></tr>
+<tr name="434" id="434">
+<td><a id="l434" class='ln'>434</a></td><td>    <span class="ct">/* TransportDelay: '&lt;S2&gt;/Transport Delay' */</span></td></tr>
+<tr name="435" id="435">
+<td><a id="l435" class='ln'>435</a></td><td>    <span class="br">{</span></td></tr>
+<tr name="436" id="436">
+<td><a id="l436" class='ln'>436</a></td><td>      <a id="436c7" class="tk">real_T</a> <a id="436c14" class="tk">*</a><a id="436c15" class="tk">*</a><a id="436c16" class="tk">uBuffer</a> = (<a id="436c27" class="tk">real_T</a><a id="436c33" class="tk">*</a><a id="436c34" class="tk">*</a>)<a id="436c36" class="tk">&amp;</a>((<span class="kw">void</span><a id="436c43" class="tk">*</a><a id="436c44" class="tk">*</a>) <a id="436c47" class="tk">ssGetDWork</a>(<a id="436c58" class="tk">S</a>, 3))[0];</td></tr>
+<tr name="437" id="437">
+<td><a id="l437" class='ln'>437</a></td><td>      <a id="437c7" class="tk">real_T</a> <a id="437c14" class="tk">*</a><a id="437c15" class="tk">*</a><a id="437c16" class="tk">tBuffer</a> = (<a id="437c27" class="tk">real_T</a><a id="437c33" class="tk">*</a><a id="437c34" class="tk">*</a>)<a id="437c36" class="tk">&amp;</a>((<span class="kw">void</span><a id="437c43" class="tk">*</a><a id="437c44" class="tk">*</a>) <a id="437c47" class="tk">ssGetDWork</a>(<a id="437c58" class="tk">S</a>, 3))[1];</td></tr>
+<tr name="438" id="438">
+<td><a id="l438" class='ln'>438</a></td><td>      <a id="438c7" class="tk">real_T</a> <a id="438c14" class="tk">simTime</a> = <a id="438c24" class="tk">ssGetT</a>(<a id="438c31" class="tk">S</a>);</td></tr>
+<tr name="439" id="439">
+<td><a id="l439" class='ln'>439</a></td><td>      <a id="439c7" class="tk">real_T</a> <a id="439c14" class="tk">tMinusDelay</a> = <a id="439c28" class="tk">simTime</a> <a id="439c36" class="tk">-</a> 2.0E-6;</td></tr>
+<tr name="440" id="440">
+<td><a id="l440" class='ln'>440</a></td><td>      <a id="440c7" class="tk">rtb_TransportDelay</a> = <a id="440c28" class="tk">PWM_sf_rt_TDelayInterpolate</a>(</td></tr>
+<tr name="441" id="441">
+<td><a id="l441" class='ln'>441</a></td><td>        <a id="441c9" class="tk">tMinusDelay</a>,</td></tr>
+<tr name="442" id="442">
+<td><a id="l442" class='ln'>442</a></td><td>        0.0,</td></tr>
+<tr name="443" id="443">
+<td><a id="l443" class='ln'>443</a></td><td>        <a id="443c9" class="tk">*</a><a id="443c10" class="tk">tBuffer</a>,</td></tr>
+<tr name="444" id="444">
+<td><a id="l444" class='ln'>444</a></td><td>        <a id="444c9" class="tk">*</a><a id="444c10" class="tk">uBuffer</a>,</td></tr>
+<tr name="445" id="445">
+<td><a id="l445" class='ln'>445</a></td><td>        ((<a id="445c11" class="tk">int_T</a><a id="445c16" class="tk">*</a>) <a id="445c19" class="tk">ssGetDWork</a>(<a id="445c30" class="tk">S</a>, 6))[3],</td></tr>
+<tr name="446" id="446">
+<td><a id="l446" class='ln'>446</a></td><td>        <a id="446c9" class="tk">&amp;</a>((<a id="446c12" class="tk">int_T</a><a id="446c17" class="tk">*</a>) <a id="446c20" class="tk">ssGetDWork</a>(<a id="446c31" class="tk">S</a>, 6))[2],</td></tr>
+<tr name="447" id="447">
+<td><a id="l447" class='ln'>447</a></td><td>        ((<a id="447c11" class="tk">int_T</a><a id="447c16" class="tk">*</a>) <a id="447c19" class="tk">ssGetDWork</a>(<a id="447c30" class="tk">S</a>, 6))[0],</td></tr>
+<tr name="448" id="448">
+<td><a id="l448" class='ln'>448</a></td><td>        ((<a id="448c11" class="tk">int_T</a><a id="448c16" class="tk">*</a>) <a id="448c19" class="tk">ssGetDWork</a>(<a id="448c30" class="tk">S</a>, 6))[1],</td></tr>
+<tr name="449" id="449">
+<td><a id="l449" class='ln'>449</a></td><td>        0.0,</td></tr>
+<tr name="450" id="450">
+<td><a id="l450" class='ln'>450</a></td><td>        0,</td></tr>
+<tr name="451" id="451">
+<td><a id="l451" class='ln'>451</a></td><td>        (<a id="451c10" class="tk">boolean_T</a>) (<a id="451c22" class="tk">ssIsMinorTimeStep</a>(<a id="451c40" class="tk">S</a>) <a id="451c43" class="tk">&amp;&amp;</a> (<a id="451c47" class="tk">ssGetTimeOfLastOutput</a>(<a id="451c69" class="tk">S</a>) <a id="451c72" class="tk">==</a> <a id="451c75" class="tk">ssGetT</a></td></tr>
+<tr name="452" id="452">
+<td><a id="l452" class='ln'>452</a></td><td>        (<a id="452c10" class="tk">S</a>))));</td></tr>
+<tr name="453" id="453">
+<td><a id="l453" class='ln'>453</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="454" id="454">
+<td><a id="l454" class='ln'>454</a></td><td></td></tr>
+<tr name="455" id="455">
+<td><a id="l455" class='ln'>455</a></td><td>    <span class="ct">/* DataTypeConversion: '&lt;S2&gt;/Data Type Conversion3' incorporates:</span></td></tr>
+<tr name="456" id="456">
+<td><a id="l456" class='ln'>456</a></td><td><span class="ct">     *  Logic: '&lt;S2&gt;/Logical Operator'</span></td></tr>
+<tr name="457" id="457">
+<td><a id="l457" class='ln'>457</a></td><td><span class="ct">     */</span></td></tr>
+<tr name="458" id="458">
+<td><a id="l458" class='ln'>458</a></td><td>    <a id="458c5" class="tk">rtb_Abs2</a> = <a id="458c16" class="tk">!</a><a id="458c17" class="tk">rtb_RelationalOperator</a>;</td></tr>
+<tr name="459" id="459">
+<td><a id="l459" class='ln'>459</a></td><td></td></tr>
+<tr name="460" id="460">
+<td><a id="l460" class='ln'>460</a></td><td>    <span class="ct">/* Abs: '&lt;S2&gt;/Abs' incorporates:</span></td></tr>
+<tr name="461" id="461">
+<td><a id="l461" class='ln'>461</a></td><td><span class="ct">     *  DataTypeConversion: '&lt;S2&gt;/Data Type Conversion3'</span></td></tr>
+<tr name="462" id="462">
+<td><a id="l462" class='ln'>462</a></td><td><span class="ct">     *  Sum: '&lt;S2&gt;/Subtract'</span></td></tr>
+<tr name="463" id="463">
+<td><a id="l463" class='ln'>463</a></td><td><span class="ct">     */</span></td></tr>
+<tr name="464" id="464">
+<td><a id="l464" class='ln'>464</a></td><td>    <a id="464c5" class="tk">rtb_Abs</a> = <a id="464c15" class="tk">fabs</a>(<a id="464c20" class="tk">rtb_Abs2</a> <a id="464c29" class="tk">-</a> <a id="464c31" class="tk">rtb_TransportDelay</a>);</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">/* Product: '&lt;S2&gt;/Product' */</span></td></tr>
+<tr name="467" id="467">
+<td><a id="l467" class='ln'>467</a></td><td>    <a id="467c5" class="tk">_rtB</a>-&gt;<a id="467c11" class="tk">Product</a> = <a id="467c21" class="tk">rtb_Abs2</a> <a id="467c30" class="tk">*</a> <a id="467c32" class="tk">rtb_Abs</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">/* Product: '&lt;S2&gt;/Product1' */</span></td></tr>
+<tr name="470" id="470">
+<td><a id="l470" class='ln'>470</a></td><td>    <a id="470c5" class="tk">_rtB</a>-&gt;<a id="470c11" class="tk">Product1</a> = <a id="470c22" class="tk">rtb_Abs</a> <a id="470c30" class="tk">*</a> <a id="470c32" class="tk">rtb_TransportDelay</a>;</td></tr>
+<tr name="471" id="471">
+<td><a id="l471" class='ln'>471</a></td><td></td></tr>
+<tr name="472" id="472">
+<td><a id="l472" class='ln'>472</a></td><td>    <span class="ct">/* RelationalOperator: '&lt;S2&gt;/Relational Operator1' */</span></td></tr>
+<tr name="473" id="473">
+<td><a id="l473" class='ln'>473</a></td><td>    <a id="473c5" class="tk">rtb_RelationalOperator1</a> = (<a id="473c32" class="tk">expr_2_0_0</a> <a id="473c43" class="tk">&gt;</a> <a id="473c45" class="tk">*</a>((<span class="kw">const</span> <a id="473c54" class="tk">real_T</a> <a id="473c61" class="tk">*</a><a id="473c62" class="tk">*</a>)</td></tr>
+<tr name="474" id="474">
+<td><a id="l474" class='ln'>474</a></td><td>      <a id="474c7" class="tk">ssGetInputPortSignalPtrs</a>(<a id="474c32" class="tk">S</a>, 0))[1]);</td></tr>
+<tr name="475" id="475">
+<td><a id="l475" class='ln'>475</a></td><td></td></tr>
+<tr name="476" id="476">
+<td><a id="l476" class='ln'>476</a></td><td>    <span class="ct">/* TransportDelay: '&lt;S2&gt;/Transport Delay1' */</span></td></tr>
+<tr name="477" id="477">
+<td><a id="l477" class='ln'>477</a></td><td>    <span class="br">{</span></td></tr>
+<tr name="478" id="478">
+<td><a id="l478" class='ln'>478</a></td><td>      <a id="478c7" class="tk">real_T</a> <a id="478c14" class="tk">*</a><a id="478c15" class="tk">*</a><a id="478c16" class="tk">uBuffer</a> = (<a id="478c27" class="tk">real_T</a><a id="478c33" class="tk">*</a><a id="478c34" class="tk">*</a>)<a id="478c36" class="tk">&amp;</a>((<span class="kw">void</span><a id="478c43" class="tk">*</a><a id="478c44" class="tk">*</a>) <a id="478c47" class="tk">ssGetDWork</a>(<a id="478c58" class="tk">S</a>, 4))[0];</td></tr>
+<tr name="479" id="479">
+<td><a id="l479" class='ln'>479</a></td><td>      <a id="479c7" class="tk">real_T</a> <a id="479c14" class="tk">*</a><a id="479c15" class="tk">*</a><a id="479c16" class="tk">tBuffer</a> = (<a id="479c27" class="tk">real_T</a><a id="479c33" class="tk">*</a><a id="479c34" class="tk">*</a>)<a id="479c36" class="tk">&amp;</a>((<span class="kw">void</span><a id="479c43" class="tk">*</a><a id="479c44" class="tk">*</a>) <a id="479c47" class="tk">ssGetDWork</a>(<a id="479c58" class="tk">S</a>, 4))[1];</td></tr>
+<tr name="480" id="480">
+<td><a id="l480" class='ln'>480</a></td><td>      <a id="480c7" class="tk">real_T</a> <a id="480c14" class="tk">simTime</a> = <a id="480c24" class="tk">ssGetT</a>(<a id="480c31" class="tk">S</a>);</td></tr>
+<tr name="481" id="481">
+<td><a id="l481" class='ln'>481</a></td><td>      <a id="481c7" class="tk">real_T</a> <a id="481c14" class="tk">tMinusDelay</a> = <a id="481c28" class="tk">simTime</a> <a id="481c36" class="tk">-</a> 2.0E-6;</td></tr>
+<tr name="482" id="482">
+<td><a id="l482" class='ln'>482</a></td><td>      <a id="482c7" class="tk">rtb_TransportDelay1</a> = <a id="482c29" class="tk">PWM_sf_rt_TDelayInterpolate</a>(</td></tr>
+<tr name="483" id="483">
+<td><a id="l483" class='ln'>483</a></td><td>        <a id="483c9" class="tk">tMinusDelay</a>,</td></tr>
+<tr name="484" id="484">
+<td><a id="l484" class='ln'>484</a></td><td>        0.0,</td></tr>
+<tr name="485" id="485">
+<td><a id="l485" class='ln'>485</a></td><td>        <a id="485c9" class="tk">*</a><a id="485c10" class="tk">tBuffer</a>,</td></tr>
+<tr name="486" id="486">
+<td><a id="l486" class='ln'>486</a></td><td>        <a id="486c9" class="tk">*</a><a id="486c10" class="tk">uBuffer</a>,</td></tr>
+<tr name="487" id="487">
+<td><a id="l487" class='ln'>487</a></td><td>        ((<a id="487c11" class="tk">int_T</a><a id="487c16" class="tk">*</a>) <a id="487c19" class="tk">ssGetDWork</a>(<a id="487c30" class="tk">S</a>, 7))[3],</td></tr>
+<tr name="488" id="488">
+<td><a id="l488" class='ln'>488</a></td><td>        <a id="488c9" class="tk">&amp;</a>((<a id="488c12" class="tk">int_T</a><a id="488c17" class="tk">*</a>) <a id="488c20" class="tk">ssGetDWork</a>(<a id="488c31" class="tk">S</a>, 7))[2],</td></tr>
+<tr name="489" id="489">
+<td><a id="l489" class='ln'>489</a></td><td>        ((<a id="489c11" class="tk">int_T</a><a id="489c16" class="tk">*</a>) <a id="489c19" class="tk">ssGetDWork</a>(<a id="489c30" class="tk">S</a>, 7))[0],</td></tr>
+<tr name="490" id="490">
+<td><a id="l490" class='ln'>490</a></td><td>        ((<a id="490c11" class="tk">int_T</a><a id="490c16" class="tk">*</a>) <a id="490c19" class="tk">ssGetDWork</a>(<a id="490c30" class="tk">S</a>, 7))[1],</td></tr>
+<tr name="491" id="491">
+<td><a id="l491" class='ln'>491</a></td><td>        0.0,</td></tr>
+<tr name="492" id="492">
+<td><a id="l492" class='ln'>492</a></td><td>        0,</td></tr>
+<tr name="493" id="493">
+<td><a id="l493" class='ln'>493</a></td><td>        (<a id="493c10" class="tk">boolean_T</a>) (<a id="493c22" class="tk">ssIsMinorTimeStep</a>(<a id="493c40" class="tk">S</a>) <a id="493c43" class="tk">&amp;&amp;</a> (<a id="493c47" class="tk">ssGetTimeOfLastOutput</a>(<a id="493c69" class="tk">S</a>) <a id="493c72" class="tk">==</a> <a id="493c75" class="tk">ssGetT</a></td></tr>
+<tr name="494" id="494">
+<td><a id="l494" class='ln'>494</a></td><td>        (<a id="494c10" class="tk">S</a>))));</td></tr>
+<tr name="495" id="495">
+<td><a id="l495" class='ln'>495</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="496" id="496">
+<td><a id="l496" class='ln'>496</a></td><td></td></tr>
+<tr name="497" id="497">
+<td><a id="l497" class='ln'>497</a></td><td>    <span class="ct">/* RelationalOperator: '&lt;S2&gt;/Relational Operator2' */</span></td></tr>
+<tr name="498" id="498">
+<td><a id="l498" class='ln'>498</a></td><td>    <a id="498c5" class="tk">rtb_RelationalOperator2</a> = (<a id="498c32" class="tk">expr_2_0_0</a> <a id="498c43" class="tk">&gt;</a> <a id="498c45" class="tk">*</a>((<span class="kw">const</span> <a id="498c54" class="tk">real_T</a> <a id="498c61" class="tk">*</a><a id="498c62" class="tk">*</a>)</td></tr>
+<tr name="499" id="499">
+<td><a id="l499" class='ln'>499</a></td><td>      <a id="499c7" class="tk">ssGetInputPortSignalPtrs</a>(<a id="499c32" class="tk">S</a>, 0))[2]);</td></tr>
+<tr name="500" id="500">
+<td><a id="l500" class='ln'>500</a></td><td></td></tr>
+<tr name="501" id="501">
+<td><a id="l501" class='ln'>501</a></td><td>    <span class="ct">/* TransportDelay: '&lt;S2&gt;/Transport Delay2' */</span></td></tr>
+<tr name="502" id="502">
+<td><a id="l502" class='ln'>502</a></td><td>    <span class="br">{</span></td></tr>
+<tr name="503" id="503">
+<td><a id="l503" class='ln'>503</a></td><td>      <a id="503c7" class="tk">real_T</a> <a id="503c14" class="tk">*</a><a id="503c15" class="tk">*</a><a id="503c16" class="tk">uBuffer</a> = (<a id="503c27" class="tk">real_T</a><a id="503c33" class="tk">*</a><a id="503c34" class="tk">*</a>)<a id="503c36" class="tk">&amp;</a>((<span class="kw">void</span><a id="503c43" class="tk">*</a><a id="503c44" class="tk">*</a>) <a id="503c47" class="tk">ssGetDWork</a>(<a id="503c58" class="tk">S</a>, 5))[0];</td></tr>
+<tr name="504" id="504">
+<td><a id="l504" class='ln'>504</a></td><td>      <a id="504c7" class="tk">real_T</a> <a id="504c14" class="tk">*</a><a id="504c15" class="tk">*</a><a id="504c16" class="tk">tBuffer</a> = (<a id="504c27" class="tk">real_T</a><a id="504c33" class="tk">*</a><a id="504c34" class="tk">*</a>)<a id="504c36" class="tk">&amp;</a>((<span class="kw">void</span><a id="504c43" class="tk">*</a><a id="504c44" class="tk">*</a>) <a id="504c47" class="tk">ssGetDWork</a>(<a id="504c58" class="tk">S</a>, 5))[1];</td></tr>
+<tr name="505" id="505">
+<td><a id="l505" class='ln'>505</a></td><td>      <a id="505c7" class="tk">real_T</a> <a id="505c14" class="tk">simTime</a> = <a id="505c24" class="tk">ssGetT</a>(<a id="505c31" class="tk">S</a>);</td></tr>
+<tr name="506" id="506">
+<td><a id="l506" class='ln'>506</a></td><td>      <a id="506c7" class="tk">real_T</a> <a id="506c14" class="tk">tMinusDelay</a> = <a id="506c28" class="tk">simTime</a> <a id="506c36" class="tk">-</a> 2.0E-6;</td></tr>
+<tr name="507" id="507">
+<td><a id="l507" class='ln'>507</a></td><td>      <a id="507c7" class="tk">rtb_TransportDelay2</a> = <a id="507c29" class="tk">PWM_sf_rt_TDelayInterpolate</a>(</td></tr>
+<tr name="508" id="508">
+<td><a id="l508" class='ln'>508</a></td><td>        <a id="508c9" class="tk">tMinusDelay</a>,</td></tr>
+<tr name="509" id="509">
+<td><a id="l509" class='ln'>509</a></td><td>        0.0,</td></tr>
+<tr name="510" id="510">
+<td><a id="l510" class='ln'>510</a></td><td>        <a id="510c9" class="tk">*</a><a id="510c10" class="tk">tBuffer</a>,</td></tr>
+<tr name="511" id="511">
+<td><a id="l511" class='ln'>511</a></td><td>        <a id="511c9" class="tk">*</a><a id="511c10" class="tk">uBuffer</a>,</td></tr>
+<tr name="512" id="512">
+<td><a id="l512" class='ln'>512</a></td><td>        ((<a id="512c11" class="tk">int_T</a><a id="512c16" class="tk">*</a>) <a id="512c19" class="tk">ssGetDWork</a>(<a id="512c30" class="tk">S</a>, 8))[3],</td></tr>
+<tr name="513" id="513">
+<td><a id="l513" class='ln'>513</a></td><td>        <a id="513c9" class="tk">&amp;</a>((<a id="513c12" class="tk">int_T</a><a id="513c17" class="tk">*</a>) <a id="513c20" class="tk">ssGetDWork</a>(<a id="513c31" class="tk">S</a>, 8))[2],</td></tr>
+<tr name="514" id="514">
+<td><a id="l514" class='ln'>514</a></td><td>        ((<a id="514c11" class="tk">int_T</a><a id="514c16" class="tk">*</a>) <a id="514c19" class="tk">ssGetDWork</a>(<a id="514c30" class="tk">S</a>, 8))[0],</td></tr>
+<tr name="515" id="515">
+<td><a id="l515" class='ln'>515</a></td><td>        ((<a id="515c11" class="tk">int_T</a><a id="515c16" class="tk">*</a>) <a id="515c19" class="tk">ssGetDWork</a>(<a id="515c30" class="tk">S</a>, 8))[1],</td></tr>
+<tr name="516" id="516">
+<td><a id="l516" class='ln'>516</a></td><td>        0.0,</td></tr>
+<tr name="517" id="517">
+<td><a id="l517" class='ln'>517</a></td><td>        0,</td></tr>
+<tr name="518" id="518">
+<td><a id="l518" class='ln'>518</a></td><td>        (<a id="518c10" class="tk">boolean_T</a>) (<a id="518c22" class="tk">ssIsMinorTimeStep</a>(<a id="518c40" class="tk">S</a>) <a id="518c43" class="tk">&amp;&amp;</a> (<a id="518c47" class="tk">ssGetTimeOfLastOutput</a>(<a id="518c69" class="tk">S</a>) <a id="518c72" class="tk">==</a> <a id="518c75" class="tk">ssGetT</a></td></tr>
+<tr name="519" id="519">
+<td><a id="l519" class='ln'>519</a></td><td>        (<a id="519c10" class="tk">S</a>))));</td></tr>
+<tr name="520" id="520">
+<td><a id="l520" class='ln'>520</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="521" id="521">
+<td><a id="l521" class='ln'>521</a></td><td></td></tr>
+<tr name="522" id="522">
+<td><a id="l522" class='ln'>522</a></td><td>    <span class="ct">/* DataTypeConversion: '&lt;S2&gt;/Data Type Conversion1' incorporates:</span></td></tr>
+<tr name="523" id="523">
+<td><a id="l523" class='ln'>523</a></td><td><span class="ct">     *  Logic: '&lt;S2&gt;/Logical Operator1'</span></td></tr>
+<tr name="524" id="524">
+<td><a id="l524" class='ln'>524</a></td><td><span class="ct">     *  ManualSwitch: '&lt;S1&gt;/Manual Switch'</span></td></tr>
+<tr name="525" id="525">
+<td><a id="l525" class='ln'>525</a></td><td><span class="ct">     */</span></td></tr>
+<tr name="526" id="526">
+<td><a id="l526" class='ln'>526</a></td><td>    <a id="526c5" class="tk">rtb_Abs2</a> = <a id="526c16" class="tk">!</a><a id="526c17" class="tk">rtb_RelationalOperator1</a>;</td></tr>
+<tr name="527" id="527">
+<td><a id="l527" class='ln'>527</a></td><td></td></tr>
+<tr name="528" id="528">
+<td><a id="l528" class='ln'>528</a></td><td>    <span class="ct">/* Abs: '&lt;S2&gt;/Abs1' incorporates:</span></td></tr>
+<tr name="529" id="529">
+<td><a id="l529" class='ln'>529</a></td><td><span class="ct">     *  DataTypeConversion: '&lt;S2&gt;/Data Type Conversion1'</span></td></tr>
+<tr name="530" id="530">
+<td><a id="l530" class='ln'>530</a></td><td><span class="ct">     *  ManualSwitch: '&lt;S1&gt;/Manual Switch'</span></td></tr>
+<tr name="531" id="531">
+<td><a id="l531" class='ln'>531</a></td><td><span class="ct">     *  Sum: '&lt;S2&gt;/Subtract1'</span></td></tr>
+<tr name="532" id="532">
+<td><a id="l532" class='ln'>532</a></td><td><span class="ct">     */</span></td></tr>
+<tr name="533" id="533">
+<td><a id="l533" class='ln'>533</a></td><td>    <a id="533c5" class="tk">expr_2_0_0</a> = <a id="533c18" class="tk">fabs</a>(<a id="533c23" class="tk">rtb_Abs2</a> <a id="533c32" class="tk">-</a> <a id="533c34" class="tk">rtb_TransportDelay1</a>);</td></tr>
+<tr name="534" id="534">
+<td><a id="l534" class='ln'>534</a></td><td></td></tr>
+<tr name="535" id="535">
+<td><a id="l535" class='ln'>535</a></td><td>    <span class="ct">/* Outport: '&lt;Root&gt;/PWMb' incorporates:</span></td></tr>
+<tr name="536" id="536">
+<td><a id="l536" class='ln'>536</a></td><td><span class="ct">     *  ManualSwitch: '&lt;S1&gt;/Manual Switch'</span></td></tr>
+<tr name="537" id="537">
+<td><a id="l537" class='ln'>537</a></td><td><span class="ct">     *  Product: '&lt;S2&gt;/Product2'</span></td></tr>
+<tr name="538" id="538">
+<td><a id="l538" class='ln'>538</a></td><td><span class="ct">     *  Product: '&lt;S2&gt;/Product3'</span></td></tr>
+<tr name="539" id="539">
+<td><a id="l539" class='ln'>539</a></td><td><span class="ct">     */</span></td></tr>
+<tr name="540" id="540">
+<td><a id="l540" class='ln'>540</a></td><td>    ((<a id="540c7" class="tk">real_T</a> <a id="540c14" class="tk">*</a>)<a id="540c16" class="tk">ssGetOutputPortSignal</a>(<a id="540c38" class="tk">S</a>, 0))[2] = <a id="540c50" class="tk">rtb_Abs2</a> <a id="540c59" class="tk">*</a> <a id="540c61" class="tk">expr_2_0_0</a>;</td></tr>
+<tr name="541" id="541">
+<td><a id="l541" class='ln'>541</a></td><td>    ((<a id="541c7" class="tk">real_T</a> <a id="541c14" class="tk">*</a>)<a id="541c16" class="tk">ssGetOutputPortSignal</a>(<a id="541c38" class="tk">S</a>, 0))[3] = <a id="541c50" class="tk">expr_2_0_0</a> <a id="541c61" class="tk">*</a></td></tr>
+<tr name="542" id="542">
+<td><a id="l542" class='ln'>542</a></td><td>      <a id="542c7" class="tk">rtb_TransportDelay1</a>;</td></tr>
+<tr name="543" id="543">
+<td><a id="l543" class='ln'>543</a></td><td></td></tr>
+<tr name="544" id="544">
+<td><a id="l544" class='ln'>544</a></td><td>    <span class="ct">/* DataTypeConversion: '&lt;S2&gt;/Data Type Conversion5' incorporates:</span></td></tr>
+<tr name="545" id="545">
+<td><a id="l545" class='ln'>545</a></td><td><span class="ct">     *  Logic: '&lt;S2&gt;/Logical Operator2'</span></td></tr>
+<tr name="546" id="546">
+<td><a id="l546" class='ln'>546</a></td><td><span class="ct">     *  ManualSwitch: '&lt;S1&gt;/Manual Switch'</span></td></tr>
+<tr name="547" id="547">
+<td><a id="l547" class='ln'>547</a></td><td><span class="ct">     */</span></td></tr>
+<tr name="548" id="548">
+<td><a id="l548" class='ln'>548</a></td><td>    <a id="548c5" class="tk">expr_2_0_0</a> = <a id="548c18" class="tk">!</a><a id="548c19" class="tk">rtb_RelationalOperator2</a>;</td></tr>
+<tr name="549" id="549">
+<td><a id="l549" class='ln'>549</a></td><td></td></tr>
+<tr name="550" id="550">
+<td><a id="l550" class='ln'>550</a></td><td>    <span class="ct">/* Abs: '&lt;S2&gt;/Abs2' incorporates:</span></td></tr>
+<tr name="551" id="551">
+<td><a id="l551" class='ln'>551</a></td><td><span class="ct">     *  ManualSwitch: '&lt;S1&gt;/Manual Switch'</span></td></tr>
+<tr name="552" id="552">
+<td><a id="l552" class='ln'>552</a></td><td><span class="ct">     *  Sum: '&lt;S2&gt;/Subtract2'</span></td></tr>
+<tr name="553" id="553">
+<td><a id="l553" class='ln'>553</a></td><td><span class="ct">     */</span></td></tr>
+<tr name="554" id="554">
+<td><a id="l554" class='ln'>554</a></td><td>    <a id="554c5" class="tk">rtb_Abs2</a> = <a id="554c16" class="tk">fabs</a>(<a id="554c21" class="tk">expr_2_0_0</a> <a id="554c32" class="tk">-</a> <a id="554c34" class="tk">rtb_TransportDelay2</a>);</td></tr>
+<tr name="555" id="555">
+<td><a id="l555" class='ln'>555</a></td><td></td></tr>
+<tr name="556" id="556">
+<td><a id="l556" class='ln'>556</a></td><td>    <span class="ct">/* Outport: '&lt;Root&gt;/PWMb' incorporates:</span></td></tr>
+<tr name="557" id="557">
+<td><a id="l557" class='ln'>557</a></td><td><span class="ct">     *  ManualSwitch: '&lt;S1&gt;/Manual Switch'</span></td></tr>
+<tr name="558" id="558">
+<td><a id="l558" class='ln'>558</a></td><td><span class="ct">     *  Product: '&lt;S2&gt;/Product4'</span></td></tr>
+<tr name="559" id="559">
+<td><a id="l559" class='ln'>559</a></td><td><span class="ct">     *  Product: '&lt;S2&gt;/Product5'</span></td></tr>
+<tr name="560" id="560">
+<td><a id="l560" class='ln'>560</a></td><td><span class="ct">     */</span></td></tr>
+<tr name="561" id="561">
+<td><a id="l561" class='ln'>561</a></td><td>    ((<a id="561c7" class="tk">real_T</a> <a id="561c14" class="tk">*</a>)<a id="561c16" class="tk">ssGetOutputPortSignal</a>(<a id="561c38" class="tk">S</a>, 0))[0] = <a id="561c50" class="tk">_rtB</a>-&gt;<a id="561c56" class="tk">Product</a>;</td></tr>
+<tr name="562" id="562">
+<td><a id="l562" class='ln'>562</a></td><td>    ((<a id="562c7" class="tk">real_T</a> <a id="562c14" class="tk">*</a>)<a id="562c16" class="tk">ssGetOutputPortSignal</a>(<a id="562c38" class="tk">S</a>, 0))[1] = <a id="562c50" class="tk">_rtB</a>-&gt;<a id="562c56" class="tk">Product1</a>;</td></tr>
+<tr name="563" id="563">
+<td><a id="l563" class='ln'>563</a></td><td>    ((<a id="563c7" class="tk">real_T</a> <a id="563c14" class="tk">*</a>)<a id="563c16" class="tk">ssGetOutputPortSignal</a>(<a id="563c38" class="tk">S</a>, 0))[4] = <a id="563c50" class="tk">expr_2_0_0</a> <a id="563c61" class="tk">*</a> <a id="563c63" class="tk">rtb_Abs2</a>;</td></tr>
+<tr name="564" id="564">
+<td><a id="l564" class='ln'>564</a></td><td>    ((<a id="564c7" class="tk">real_T</a> <a id="564c14" class="tk">*</a>)<a id="564c16" class="tk">ssGetOutputPortSignal</a>(<a id="564c38" class="tk">S</a>, 0))[5] = <a id="564c50" class="tk">rtb_Abs2</a> <a id="564c59" class="tk">*</a> <a id="564c61" class="tk">rtb_TransportDelay2</a>;</td></tr>
+<tr name="565" id="565">
+<td><a id="l565" class='ln'>565</a></td><td></td></tr>
+<tr name="566" id="566">
+<td><a id="l566" class='ln'>566</a></td><td>    <span class="ct">/* DataTypeConversion: '&lt;S2&gt;/Data Type Conversion6' */</span></td></tr>
+<tr name="567" id="567">
+<td><a id="l567" class='ln'>567</a></td><td>    <a id="567c5" class="tk">_rtB</a>-&gt;<a id="567c11" class="tk">DataTypeConversion6</a> = <a id="567c33" class="tk">rtb_RelationalOperator2</a>;</td></tr>
+<tr name="568" id="568">
+<td><a id="l568" class='ln'>568</a></td><td></td></tr>
+<tr name="569" id="569">
+<td><a id="l569" class='ln'>569</a></td><td>    <span class="ct">/* DataTypeConversion: '&lt;S2&gt;/Data Type Conversion2' */</span></td></tr>
+<tr name="570" id="570">
+<td><a id="l570" class='ln'>570</a></td><td>    <a id="570c5" class="tk">_rtB</a>-&gt;<a id="570c11" class="tk">DataTypeConversion2</a> = <a id="570c33" class="tk">rtb_RelationalOperator1</a>;</td></tr>
+<tr name="571" id="571">
+<td><a id="l571" class='ln'>571</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="572" id="572">
+<td><a id="l572" class='ln'>572</a></td><td></td></tr>
+<tr name="573" id="573">
+<td><a id="l573" class='ln'>573</a></td><td>  <span class="kw">if</span> (<a id="573c7" class="tk">ssIsSampleHit</a>(<a id="573c21" class="tk">S</a>, 1, <a id="573c27" class="tk">tid</a>)) <span class="br">{</span></td></tr>
+<tr name="574" id="574">
+<td><a id="l574" class='ln'>574</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="575" id="575">
+<td><a id="l575" class='ln'>575</a></td><td></td></tr>
+<tr name="576" id="576">
+<td><a id="l576" class='ln'>576</a></td><td>  <span class="kw">if</span> (<a id="576c7" class="tk">ssIsContinuousTask</a>(<a id="576c26" class="tk">S</a>, <a id="576c29" class="tk">tid</a>)) <span class="br">{</span></td></tr>
+<tr name="577" id="577">
+<td><a id="l577" class='ln'>577</a></td><td>    <span class="ct">/* DataTypeConversion: '&lt;S2&gt;/Data Type Conversion4' */</span></td></tr>
+<tr name="578" id="578">
+<td><a id="l578" class='ln'>578</a></td><td>    <a id="578c5" class="tk">_rtB</a>-&gt;<a id="578c11" class="tk">DataTypeConversion4</a> = <a id="578c33" class="tk">rtb_RelationalOperator</a>;</td></tr>
+<tr name="579" id="579">
+<td><a id="l579" class='ln'>579</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="580" id="580">
+<td><a id="l580" class='ln'>580</a></td><td></td></tr>
+<tr name="581" id="581">
+<td><a id="l581" class='ln'>581</a></td><td>  <a id="581c3" class="tk">UNUSED_PARAMETER</a>(<a id="581c20" class="tk">tid</a>);</td></tr>
+<tr name="582" id="582">
+<td><a id="l582" class='ln'>582</a></td><td><span class="br">}</span></td></tr>
+<tr name="583" id="583">
+<td><a id="l583" class='ln'>583</a></td><td></td></tr>
+<tr name="584" id="584">
+<td><a id="l584" class='ln'>584</a></td><td><span class="ct">/* Update for root system: '&lt;Root&gt;' */</span></td></tr>
+<tr name="585" id="585">
+<td><a id="l585" class='ln'>585</a></td><td><span class="pp">#define</span> <a id="585c9" class="tk">MDL_UPDATE</a></td></tr>
+<tr name="586" id="586">
+<td><a id="l586" class='ln'>586</a></td><td></td></tr>
+<tr name="587" id="587">
+<td><a id="l587" class='ln'>587</a></td><td><span class="kw">static</span> <span class="kw">void</span> <a id="587c13" class="tk">mdlUpdate</a>(<a id="587c23" class="tk">SimStruct</a> <a id="587c33" class="tk">*</a><a id="587c34" class="tk">S</a>, <a id="587c37" class="tk">int_T</a> <a id="587c43" class="tk">tid</a>)</td></tr>
+<tr name="588" id="588">
+<td><a id="l588" class='ln'>588</a></td><td><span class="br">{</span></td></tr>
+<tr name="589" id="589">
+<td><a id="l589" class='ln'>589</a></td><td>  <a id="589c3" class="tk">B_PWM_T</a> <a id="589c11" class="tk">*</a><a id="589c12" class="tk">_rtB</a>;</td></tr>
+<tr name="590" id="590">
+<td><a id="l590" class='ln'>590</a></td><td>  <a id="590c3" class="tk">_rtB</a> = ((<a id="590c12" class="tk">B_PWM_T</a> <a id="590c20" class="tk">*</a>) <a id="590c23" class="tk">ssGetLocalBlockIO</a>(<a id="590c41" class="tk">S</a>));</td></tr>
+<tr name="591" id="591">
+<td><a id="l591" class='ln'>591</a></td><td>  <span class="kw">if</span> (<a id="591c7" class="tk">ssIsContinuousTask</a>(<a id="591c26" class="tk">S</a>, <a id="591c29" class="tk">tid</a>)) <span class="br">{</span></td></tr>
+<tr name="592" id="592">
+<td><a id="l592" class='ln'>592</a></td><td>    <span class="ct">/* Update for TransportDelay: '&lt;S2&gt;/Transport Delay' */</span></td></tr>
+<tr name="593" id="593">
+<td><a id="l593" class='ln'>593</a></td><td>    <span class="br">{</span></td></tr>
+<tr name="594" id="594">
+<td><a id="l594" class='ln'>594</a></td><td>      <a id="594c7" class="tk">real_T</a> <a id="594c14" class="tk">*</a><a id="594c15" class="tk">*</a><a id="594c16" class="tk">uBuffer</a> = (<a id="594c27" class="tk">real_T</a><a id="594c33" class="tk">*</a><a id="594c34" class="tk">*</a>)<a id="594c36" class="tk">&amp;</a>((<span class="kw">void</span><a id="594c43" class="tk">*</a><a id="594c44" class="tk">*</a>) <a id="594c47" class="tk">ssGetDWork</a>(<a id="594c58" class="tk">S</a>, 3))[0];</td></tr>
+<tr name="595" id="595">
+<td><a id="l595" class='ln'>595</a></td><td>      <a id="595c7" class="tk">real_T</a> <a id="595c14" class="tk">*</a><a id="595c15" class="tk">*</a><a id="595c16" class="tk">tBuffer</a> = (<a id="595c27" class="tk">real_T</a><a id="595c33" class="tk">*</a><a id="595c34" class="tk">*</a>)<a id="595c36" class="tk">&amp;</a>((<span class="kw">void</span><a id="595c43" class="tk">*</a><a id="595c44" class="tk">*</a>) <a id="595c47" class="tk">ssGetDWork</a>(<a id="595c58" class="tk">S</a>, 3))[1];</td></tr>
+<tr name="596" id="596">
+<td><a id="l596" class='ln'>596</a></td><td>      <a id="596c7" class="tk">real_T</a> <a id="596c14" class="tk">simTime</a> = <a id="596c24" class="tk">ssGetT</a>(<a id="596c31" class="tk">S</a>);</td></tr>
+<tr name="597" id="597">
+<td><a id="l597" class='ln'>597</a></td><td>      ((<a id="597c9" class="tk">int_T</a><a id="597c14" class="tk">*</a>) <a id="597c17" class="tk">ssGetDWork</a>(<a id="597c28" class="tk">S</a>, 6))[1] = ((((<a id="597c44" class="tk">int_T</a><a id="597c49" class="tk">*</a>) <a id="597c52" class="tk">ssGetDWork</a>(<a id="597c63" class="tk">S</a>, 6))[1] <a id="597c73" class="tk">&lt;</a></td></tr>
+<tr name="598" id="598">
+<td><a id="l598" class='ln'>598</a></td><td>        (((<a id="598c12" class="tk">int_T</a><a id="598c17" class="tk">*</a>) <a id="598c20" class="tk">ssGetDWork</a>(<a id="598c31" class="tk">S</a>, 6))[3]<a id="598c40" class="tk">-</a>1)) <a id="598c45" class="tk">?</a> (((<a id="598c50" class="tk">int_T</a><a id="598c55" class="tk">*</a>) <a id="598c58" class="tk">ssGetDWork</a>(<a id="598c69" class="tk">S</a>, 6))[1]<a id="598c78" class="tk">+</a>1)</td></tr>
+<tr name="599" id="599">
+<td><a id="l599" class='ln'>599</a></td><td>        <a id="599c9" class="tk">:</a> 0);</td></tr>
+<tr name="600" id="600">
+<td><a id="l600" class='ln'>600</a></td><td>      <span class="kw">if</span> (((<a id="600c13" class="tk">int_T</a><a id="600c18" class="tk">*</a>) <a id="600c21" class="tk">ssGetDWork</a>(<a id="600c32" class="tk">S</a>, 6))[1] <a id="600c42" class="tk">==</a> ((<a id="600c47" class="tk">int_T</a><a id="600c52" class="tk">*</a>) <a id="600c55" class="tk">ssGetDWork</a>(<a id="600c66" class="tk">S</a>, 6))[0]) <span class="br">{</span></td></tr>
+<tr name="601" id="601">
+<td><a id="l601" class='ln'>601</a></td><td>        ((<a id="601c11" class="tk">int_T</a><a id="601c16" class="tk">*</a>) <a id="601c19" class="tk">ssGetDWork</a>(<a id="601c30" class="tk">S</a>, 6))[0] = ((((<a id="601c46" class="tk">int_T</a><a id="601c51" class="tk">*</a>) <a id="601c54" class="tk">ssGetDWork</a>(<a id="601c65" class="tk">S</a>, 6))[0] <a id="601c75" class="tk">&lt;</a></td></tr>
+<tr name="602" id="602">
+<td><a id="l602" class='ln'>602</a></td><td>          (((<a id="602c14" class="tk">int_T</a><a id="602c19" class="tk">*</a>) <a id="602c22" class="tk">ssGetDWork</a>(<a id="602c33" class="tk">S</a>, 6))[3]<a id="602c42" class="tk">-</a>1)) <a id="602c47" class="tk">?</a> (((<a id="602c52" class="tk">int_T</a><a id="602c57" class="tk">*</a>) <a id="602c60" class="tk">ssGetDWork</a>(<a id="602c71" class="tk">S</a>, 6))[0]<a id="602c80" class="tk">+</a></td></tr>
+<tr name="603" id="603">
+<td><a id="l603" class='ln'>603</a></td><td>          1) <a id="603c14" class="tk">:</a> 0);</td></tr>
+<tr name="604" id="604">
+<td><a id="l604" class='ln'>604</a></td><td>      <span class="br">}</span></td></tr>
+<tr name="605" id="605">
+<td><a id="l605" class='ln'>605</a></td><td></td></tr>
+<tr name="606" id="606">
+<td><a id="l606" class='ln'>606</a></td><td>      (<a id="606c8" class="tk">*</a><a id="606c9" class="tk">tBuffer</a>)[((<a id="606c20" class="tk">int_T</a><a id="606c25" class="tk">*</a>) <a id="606c28" class="tk">ssGetDWork</a>(<a id="606c39" class="tk">S</a>, 6))[1]] = <a id="606c52" class="tk">simTime</a>;</td></tr>
+<tr name="607" id="607">
+<td><a id="l607" class='ln'>607</a></td><td>      (<a id="607c8" class="tk">*</a><a id="607c9" class="tk">uBuffer</a>)[((<a id="607c20" class="tk">int_T</a><a id="607c25" class="tk">*</a>) <a id="607c28" class="tk">ssGetDWork</a>(<a id="607c39" class="tk">S</a>, 6))[1]] = <a id="607c52" class="tk">_rtB</a>-&gt;<a id="607c58" class="tk">DataTypeConversion4</a>;</td></tr>
+<tr name="608" id="608">
+<td><a id="l608" class='ln'>608</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="609" id="609">
+<td><a id="l609" class='ln'>609</a></td><td></td></tr>
+<tr name="610" id="610">
+<td><a id="l610" class='ln'>610</a></td><td>    <span class="ct">/* Update for TransportDelay: '&lt;S2&gt;/Transport Delay1' */</span></td></tr>
+<tr name="611" id="611">
+<td><a id="l611" class='ln'>611</a></td><td>    <span class="br">{</span></td></tr>
+<tr name="612" id="612">
+<td><a id="l612" class='ln'>612</a></td><td>      <a id="612c7" class="tk">real_T</a> <a id="612c14" class="tk">*</a><a id="612c15" class="tk">*</a><a id="612c16" class="tk">uBuffer</a> = (<a id="612c27" class="tk">real_T</a><a id="612c33" class="tk">*</a><a id="612c34" class="tk">*</a>)<a id="612c36" class="tk">&amp;</a>((<span class="kw">void</span><a id="612c43" class="tk">*</a><a id="612c44" class="tk">*</a>) <a id="612c47" class="tk">ssGetDWork</a>(<a id="612c58" class="tk">S</a>, 4))[0];</td></tr>
+<tr name="613" id="613">
+<td><a id="l613" class='ln'>613</a></td><td>      <a id="613c7" class="tk">real_T</a> <a id="613c14" class="tk">*</a><a id="613c15" class="tk">*</a><a id="613c16" class="tk">tBuffer</a> = (<a id="613c27" class="tk">real_T</a><a id="613c33" class="tk">*</a><a id="613c34" class="tk">*</a>)<a id="613c36" class="tk">&amp;</a>((<span class="kw">void</span><a id="613c43" class="tk">*</a><a id="613c44" class="tk">*</a>) <a id="613c47" class="tk">ssGetDWork</a>(<a id="613c58" class="tk">S</a>, 4))[1];</td></tr>
+<tr name="614" id="614">
+<td><a id="l614" class='ln'>614</a></td><td>      <a id="614c7" class="tk">real_T</a> <a id="614c14" class="tk">simTime</a> = <a id="614c24" class="tk">ssGetT</a>(<a id="614c31" class="tk">S</a>);</td></tr>
+<tr name="615" id="615">
+<td><a id="l615" class='ln'>615</a></td><td>      ((<a id="615c9" class="tk">int_T</a><a id="615c14" class="tk">*</a>) <a id="615c17" class="tk">ssGetDWork</a>(<a id="615c28" class="tk">S</a>, 7))[1] = ((((<a id="615c44" class="tk">int_T</a><a id="615c49" class="tk">*</a>) <a id="615c52" class="tk">ssGetDWork</a>(<a id="615c63" class="tk">S</a>, 7))[1] <a id="615c73" class="tk">&lt;</a></td></tr>
+<tr name="616" id="616">
+<td><a id="l616" class='ln'>616</a></td><td>        (((<a id="616c12" class="tk">int_T</a><a id="616c17" class="tk">*</a>) <a id="616c20" class="tk">ssGetDWork</a>(<a id="616c31" class="tk">S</a>, 7))[3]<a id="616c40" class="tk">-</a>1)) <a id="616c45" class="tk">?</a> (((<a id="616c50" class="tk">int_T</a><a id="616c55" class="tk">*</a>) <a id="616c58" class="tk">ssGetDWork</a>(<a id="616c69" class="tk">S</a>, 7))[1]<a id="616c78" class="tk">+</a>1)</td></tr>
+<tr name="617" id="617">
+<td><a id="l617" class='ln'>617</a></td><td>        <a id="617c9" class="tk">:</a> 0);</td></tr>
+<tr name="618" id="618">
+<td><a id="l618" class='ln'>618</a></td><td>      <span class="kw">if</span> (((<a id="618c13" class="tk">int_T</a><a id="618c18" class="tk">*</a>) <a id="618c21" class="tk">ssGetDWork</a>(<a id="618c32" class="tk">S</a>, 7))[1] <a id="618c42" class="tk">==</a> ((<a id="618c47" class="tk">int_T</a><a id="618c52" class="tk">*</a>) <a id="618c55" class="tk">ssGetDWork</a>(<a id="618c66" class="tk">S</a>, 7))[0]) <span class="br">{</span></td></tr>
+<tr name="619" id="619">
+<td><a id="l619" class='ln'>619</a></td><td>        ((<a id="619c11" class="tk">int_T</a><a id="619c16" class="tk">*</a>) <a id="619c19" class="tk">ssGetDWork</a>(<a id="619c30" class="tk">S</a>, 7))[0] = ((((<a id="619c46" class="tk">int_T</a><a id="619c51" class="tk">*</a>) <a id="619c54" class="tk">ssGetDWork</a>(<a id="619c65" class="tk">S</a>, 7))[0] <a id="619c75" class="tk">&lt;</a></td></tr>
+<tr name="620" id="620">
+<td><a id="l620" class='ln'>620</a></td><td>          (((<a id="620c14" class="tk">int_T</a><a id="620c19" class="tk">*</a>) <a id="620c22" class="tk">ssGetDWork</a>(<a id="620c33" class="tk">S</a>, 7))[3]<a id="620c42" class="tk">-</a>1)) <a id="620c47" class="tk">?</a> (((<a id="620c52" class="tk">int_T</a><a id="620c57" class="tk">*</a>) <a id="620c60" class="tk">ssGetDWork</a>(<a id="620c71" class="tk">S</a>, 7))[0]<a id="620c80" class="tk">+</a></td></tr>
+<tr name="621" id="621">
+<td><a id="l621" class='ln'>621</a></td><td>          1) <a id="621c14" class="tk">:</a> 0);</td></tr>
+<tr name="622" id="622">
+<td><a id="l622" class='ln'>622</a></td><td>      <span class="br">}</span></td></tr>
+<tr name="623" id="623">
+<td><a id="l623" class='ln'>623</a></td><td></td></tr>
+<tr name="624" id="624">
+<td><a id="l624" class='ln'>624</a></td><td>      (<a id="624c8" class="tk">*</a><a id="624c9" class="tk">tBuffer</a>)[((<a id="624c20" class="tk">int_T</a><a id="624c25" class="tk">*</a>) <a id="624c28" class="tk">ssGetDWork</a>(<a id="624c39" class="tk">S</a>, 7))[1]] = <a id="624c52" class="tk">simTime</a>;</td></tr>
+<tr name="625" id="625">
+<td><a id="l625" class='ln'>625</a></td><td>      (<a id="625c8" class="tk">*</a><a id="625c9" class="tk">uBuffer</a>)[((<a id="625c20" class="tk">int_T</a><a id="625c25" class="tk">*</a>) <a id="625c28" class="tk">ssGetDWork</a>(<a id="625c39" class="tk">S</a>, 7))[1]] = <a id="625c52" class="tk">_rtB</a>-&gt;<a id="625c58" class="tk">DataTypeConversion2</a>;</td></tr>
+<tr name="626" id="626">
+<td><a id="l626" class='ln'>626</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="627" id="627">
+<td><a id="l627" class='ln'>627</a></td><td></td></tr>
+<tr name="628" id="628">
+<td><a id="l628" class='ln'>628</a></td><td>    <span class="ct">/* Update for TransportDelay: '&lt;S2&gt;/Transport Delay2' */</span></td></tr>
+<tr name="629" id="629">
+<td><a id="l629" class='ln'>629</a></td><td>    <span class="br">{</span></td></tr>
+<tr name="630" id="630">
+<td><a id="l630" class='ln'>630</a></td><td>      <a id="630c7" class="tk">real_T</a> <a id="630c14" class="tk">*</a><a id="630c15" class="tk">*</a><a id="630c16" class="tk">uBuffer</a> = (<a id="630c27" class="tk">real_T</a><a id="630c33" class="tk">*</a><a id="630c34" class="tk">*</a>)<a id="630c36" class="tk">&amp;</a>((<span class="kw">void</span><a id="630c43" class="tk">*</a><a id="630c44" class="tk">*</a>) <a id="630c47" class="tk">ssGetDWork</a>(<a id="630c58" class="tk">S</a>, 5))[0];</td></tr>
+<tr name="631" id="631">
+<td><a id="l631" class='ln'>631</a></td><td>      <a id="631c7" class="tk">real_T</a> <a id="631c14" class="tk">*</a><a id="631c15" class="tk">*</a><a id="631c16" class="tk">tBuffer</a> = (<a id="631c27" class="tk">real_T</a><a id="631c33" class="tk">*</a><a id="631c34" class="tk">*</a>)<a id="631c36" class="tk">&amp;</a>((<span class="kw">void</span><a id="631c43" class="tk">*</a><a id="631c44" class="tk">*</a>) <a id="631c47" class="tk">ssGetDWork</a>(<a id="631c58" class="tk">S</a>, 5))[1];</td></tr>
+<tr name="632" id="632">
+<td><a id="l632" class='ln'>632</a></td><td>      <a id="632c7" class="tk">real_T</a> <a id="632c14" class="tk">simTime</a> = <a id="632c24" class="tk">ssGetT</a>(<a id="632c31" class="tk">S</a>);</td></tr>
+<tr name="633" id="633">
+<td><a id="l633" class='ln'>633</a></td><td>      ((<a id="633c9" class="tk">int_T</a><a id="633c14" class="tk">*</a>) <a id="633c17" class="tk">ssGetDWork</a>(<a id="633c28" class="tk">S</a>, 8))[1] = ((((<a id="633c44" class="tk">int_T</a><a id="633c49" class="tk">*</a>) <a id="633c52" class="tk">ssGetDWork</a>(<a id="633c63" class="tk">S</a>, 8))[1] <a id="633c73" class="tk">&lt;</a></td></tr>
+<tr name="634" id="634">
+<td><a id="l634" class='ln'>634</a></td><td>        (((<a id="634c12" class="tk">int_T</a><a id="634c17" class="tk">*</a>) <a id="634c20" class="tk">ssGetDWork</a>(<a id="634c31" class="tk">S</a>, 8))[3]<a id="634c40" class="tk">-</a>1)) <a id="634c45" class="tk">?</a> (((<a id="634c50" class="tk">int_T</a><a id="634c55" class="tk">*</a>) <a id="634c58" class="tk">ssGetDWork</a>(<a id="634c69" class="tk">S</a>, 8))[1]<a id="634c78" class="tk">+</a>1)</td></tr>
+<tr name="635" id="635">
+<td><a id="l635" class='ln'>635</a></td><td>        <a id="635c9" class="tk">:</a> 0);</td></tr>
+<tr name="636" id="636">
+<td><a id="l636" class='ln'>636</a></td><td>      <span class="kw">if</span> (((<a id="636c13" class="tk">int_T</a><a id="636c18" class="tk">*</a>) <a id="636c21" class="tk">ssGetDWork</a>(<a id="636c32" class="tk">S</a>, 8))[1] <a id="636c42" class="tk">==</a> ((<a id="636c47" class="tk">int_T</a><a id="636c52" class="tk">*</a>) <a id="636c55" class="tk">ssGetDWork</a>(<a id="636c66" class="tk">S</a>, 8))[0]) <span class="br">{</span></td></tr>
+<tr name="637" id="637">
+<td><a id="l637" class='ln'>637</a></td><td>        ((<a id="637c11" class="tk">int_T</a><a id="637c16" class="tk">*</a>) <a id="637c19" class="tk">ssGetDWork</a>(<a id="637c30" class="tk">S</a>, 8))[0] = ((((<a id="637c46" class="tk">int_T</a><a id="637c51" class="tk">*</a>) <a id="637c54" class="tk">ssGetDWork</a>(<a id="637c65" class="tk">S</a>, 8))[0] <a id="637c75" class="tk">&lt;</a></td></tr>
+<tr name="638" id="638">
+<td><a id="l638" class='ln'>638</a></td><td>          (((<a id="638c14" class="tk">int_T</a><a id="638c19" class="tk">*</a>) <a id="638c22" class="tk">ssGetDWork</a>(<a id="638c33" class="tk">S</a>, 8))[3]<a id="638c42" class="tk">-</a>1)) <a id="638c47" class="tk">?</a> (((<a id="638c52" class="tk">int_T</a><a id="638c57" class="tk">*</a>) <a id="638c60" class="tk">ssGetDWork</a>(<a id="638c71" class="tk">S</a>, 8))[0]<a id="638c80" class="tk">+</a></td></tr>
+<tr name="639" id="639">
+<td><a id="l639" class='ln'>639</a></td><td>          1) <a id="639c14" class="tk">:</a> 0);</td></tr>
+<tr name="640" id="640">
+<td><a id="l640" class='ln'>640</a></td><td>      <span class="br">}</span></td></tr>
+<tr name="641" id="641">
+<td><a id="l641" class='ln'>641</a></td><td></td></tr>
+<tr name="642" id="642">
+<td><a id="l642" class='ln'>642</a></td><td>      (<a id="642c8" class="tk">*</a><a id="642c9" class="tk">tBuffer</a>)[((<a id="642c20" class="tk">int_T</a><a id="642c25" class="tk">*</a>) <a id="642c28" class="tk">ssGetDWork</a>(<a id="642c39" class="tk">S</a>, 8))[1]] = <a id="642c52" class="tk">simTime</a>;</td></tr>
+<tr name="643" id="643">
+<td><a id="l643" class='ln'>643</a></td><td>      (<a id="643c8" class="tk">*</a><a id="643c9" class="tk">uBuffer</a>)[((<a id="643c20" class="tk">int_T</a><a id="643c25" class="tk">*</a>) <a id="643c28" class="tk">ssGetDWork</a>(<a id="643c39" class="tk">S</a>, 8))[1]] = <a id="643c52" class="tk">_rtB</a>-&gt;<a id="643c58" class="tk">DataTypeConversion6</a>;</td></tr>
+<tr name="644" id="644">
+<td><a id="l644" class='ln'>644</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="645" id="645">
+<td><a id="l645" class='ln'>645</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="646" id="646">
+<td><a id="l646" class='ln'>646</a></td><td></td></tr>
+<tr name="647" id="647">
+<td><a id="l647" class='ln'>647</a></td><td>  <a id="647c3" class="tk">UNUSED_PARAMETER</a>(<a id="647c20" class="tk">tid</a>);</td></tr>
+<tr name="648" id="648">
+<td><a id="l648" class='ln'>648</a></td><td><span class="br">}</span></td></tr>
+<tr name="649" id="649">
+<td><a id="l649" class='ln'>649</a></td><td></td></tr>
+<tr name="650" id="650">
+<td><a id="l650" class='ln'>650</a></td><td><span class="ct">/* Termination for root system: '&lt;Root&gt;' */</span></td></tr>
+<tr name="651" id="651">
+<td><a id="l651" class='ln'>651</a></td><td><span class="kw">static</span> <span class="kw">void</span> <a id="651c13" class="tk">mdlTerminate</a>(<a id="651c26" class="tk">SimStruct</a> <a id="651c36" class="tk">*</a><a id="651c37" class="tk">S</a>)</td></tr>
+<tr name="652" id="652">
+<td><a id="l652" class='ln'>652</a></td><td><span class="br">{</span></td></tr>
+<tr name="653" id="653">
+<td><a id="l653" class='ln'>653</a></td><td>  <a id="653c3" class="tk">B_PWM_T</a> <a id="653c11" class="tk">*</a><a id="653c12" class="tk">_rtB</a>;</td></tr>
+<tr name="654" id="654">
+<td><a id="l654" class='ln'>654</a></td><td>  <a id="654c3" class="tk">_rtB</a> = ((<a id="654c12" class="tk">B_PWM_T</a> <a id="654c20" class="tk">*</a>) <a id="654c23" class="tk">ssGetLocalBlockIO</a>(<a id="654c41" class="tk">S</a>));</td></tr>
+<tr name="655" id="655">
+<td><a id="l655" class='ln'>655</a></td><td></td></tr>
+<tr name="656" id="656">
+<td><a id="l656" class='ln'>656</a></td><td><span class="pp">#if</span> <a id="656c5" class="tk">defined</a>(<a id="656c13" class="tk">RT_MALLOC</a>) <a id="656c24" class="tk">||</a> <a id="656c27" class="tk">defined</a>(<a id="656c35" class="tk">MATLAB_MEX_FILE</a>)</td></tr>
+<tr name="657" id="657">
+<td><a id="l657" class='ln'>657</a></td><td></td></tr>
+<tr name="658" id="658">
+<td><a id="l658" class='ln'>658</a></td><td>  <span class="kw">if</span> (<a id="658c7" class="tk">ssGetUserData</a>(<a id="658c21" class="tk">S</a>) <a id="658c24" class="tk">!=</a> (<a id="658c28" class="tk">NULL</a>) ) <span class="br">{</span></td></tr>
+<tr name="659" id="659">
+<td><a id="l659" class='ln'>659</a></td><td>    <a id="659c5" class="tk">rt_FREE</a>(<a id="659c13" class="tk">ssGetLocalBlockIO</a>(<a id="659c31" class="tk">S</a>));</td></tr>
+<tr name="660" id="660">
+<td><a id="l660" class='ln'>660</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="661" id="661">
+<td><a id="l661" class='ln'>661</a></td><td></td></tr>
+<tr name="662" id="662">
+<td><a id="l662" class='ln'>662</a></td><td>  <a id="662c3" class="tk">rt_FREE</a>(<a id="662c11" class="tk">ssGetUserData</a>(<a id="662c25" class="tk">S</a>));</td></tr>
+<tr name="663" id="663">
+<td><a id="l663" class='ln'>663</a></td><td></td></tr>
+<tr name="664" id="664">
+<td><a id="l664" class='ln'>664</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="665" id="665">
+<td><a id="l665" class='ln'>665</a></td><td></td></tr>
+<tr name="666" id="666">
+<td><a id="l666" class='ln'>666</a></td><td><span class="br">}</span></td></tr>
+<tr name="667" id="667">
+<td><a id="l667" class='ln'>667</a></td><td></td></tr>
+<tr name="668" id="668">
+<td><a id="l668" class='ln'>668</a></td><td><span class="pp">#if</span> <a id="668c5" class="tk">defined</a>(<a id="668c13" class="tk">RT_MALLOC</a>) <a id="668c24" class="tk">||</a> <a id="668c27" class="tk">defined</a>(<a id="668c35" class="tk">MATLAB_MEX_FILE</a>)</td></tr>
+<tr name="669" id="669">
+<td><a id="l669" class='ln'>669</a></td><td><span class="pp">#include "PWM_mid.h"</span></td></tr>
+<tr name="670" id="670">
+<td><a id="l670" class='ln'>670</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="671" id="671">
+<td><a id="l671" class='ln'>671</a></td><td></td></tr>
+<tr name="672" id="672">
+<td><a id="l672" class='ln'>672</a></td><td><span class="ct">/* Function to initialize sizes. */</span></td></tr>
+<tr name="673" id="673">
+<td><a id="l673" class='ln'>673</a></td><td><span class="kw">static</span> <span class="kw">void</span> <a id="673c13" class="tk">mdlInitializeSizes</a>(<a id="673c32" class="tk">SimStruct</a> <a id="673c42" class="tk">*</a><a id="673c43" class="tk">S</a>)</td></tr>
+<tr name="674" id="674">
+<td><a id="l674" class='ln'>674</a></td><td><span class="br">{</span></td></tr>
+<tr name="675" id="675">
+<td><a id="l675" class='ln'>675</a></td><td>  <a id="675c3" class="tk">ssSetNumSampleTimes</a>(<a id="675c23" class="tk">S</a>, 2);           <span class="ct">/* Number of sample times */</span></td></tr>
+<tr name="676" id="676">
+<td><a id="l676" class='ln'>676</a></td><td>  <a id="676c3" class="tk">ssSetNumContStates</a>(<a id="676c22" class="tk">S</a>, 0);            <span class="ct">/* Number of continuous states */</span></td></tr>
+<tr name="677" id="677">
+<td><a id="l677" class='ln'>677</a></td><td>  <a id="677c3" class="tk">ssSetNumNonsampledZCs</a>(<a id="677c25" class="tk">S</a>, 0);         <span class="ct">/* Number of nonsampled ZCs */</span></td></tr>
+<tr name="678" id="678">
+<td><a id="l678" class='ln'>678</a></td><td></td></tr>
+<tr name="679" id="679">
+<td><a id="l679" class='ln'>679</a></td><td>  <span class="ct">/* Number of output ports */</span></td></tr>
+<tr name="680" id="680">
+<td><a id="l680" class='ln'>680</a></td><td>  <span class="kw">if</span> (<a id="680c7" class="tk">!</a><a id="680c8" class="tk">ssSetNumOutputPorts</a>(<a id="680c28" class="tk">S</a>, 1))</td></tr>
+<tr name="681" id="681">
+<td><a id="l681" class='ln'>681</a></td><td>    <span class="kw">return</span>;</td></tr>
+<tr name="682" id="682">
+<td><a id="l682" class='ln'>682</a></td><td></td></tr>
+<tr name="683" id="683">
+<td><a id="l683" class='ln'>683</a></td><td>  <span class="ct">/* outport number: 0 */</span></td></tr>
+<tr name="684" id="684">
+<td><a id="l684" class='ln'>684</a></td><td>  <span class="kw">if</span> (<a id="684c7" class="tk">!</a><a id="684c8" class="tk">ssSetOutputPortVectorDimension</a>(<a id="684c39" class="tk">S</a>, 0, 6))</td></tr>
+<tr name="685" id="685">
+<td><a id="l685" class='ln'>685</a></td><td>    <span class="kw">return</span>;</td></tr>
+<tr name="686" id="686">
+<td><a id="l686" class='ln'>686</a></td><td>  <span class="kw">if</span> (<a id="686c7" class="tk">ssGetSimMode</a>(<a id="686c20" class="tk">S</a>) <a id="686c23" class="tk">!=</a> <a id="686c26" class="tk">SS_SIMMODE_SIZES_CALL_ONLY</a>) <span class="br">{</span></td></tr>
+<tr name="687" id="687">
+<td><a id="l687" class='ln'>687</a></td><td>    <a id="687c5" class="tk">ssSetOutputPortDataType</a>(<a id="687c29" class="tk">S</a>, 0, <a id="687c35" class="tk">SS_DOUBLE</a>);</td></tr>
+<tr name="688" id="688">
+<td><a id="l688" class='ln'>688</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="689" id="689">
+<td><a id="l689" class='ln'>689</a></td><td></td></tr>
+<tr name="690" id="690">
+<td><a id="l690" class='ln'>690</a></td><td>  <a id="690c3" class="tk">ssSetOutputPortSampleTime</a>(<a id="690c29" class="tk">S</a>, 0, 0.0);</td></tr>
+<tr name="691" id="691">
+<td><a id="l691" class='ln'>691</a></td><td>  <a id="691c3" class="tk">ssSetOutputPortOffsetTime</a>(<a id="691c29" class="tk">S</a>, 0, 0.0);</td></tr>
+<tr name="692" id="692">
+<td><a id="l692" class='ln'>692</a></td><td>  <a id="692c3" class="tk">ssSetOutputPortOptimOpts</a>(<a id="692c28" class="tk">S</a>, 0, <a id="692c34" class="tk">SS_REUSABLE_AND_LOCAL</a>);</td></tr>
+<tr name="693" id="693">
+<td><a id="l693" class='ln'>693</a></td><td></td></tr>
+<tr name="694" id="694">
+<td><a id="l694" class='ln'>694</a></td><td>  <span class="ct">/* Number of input ports */</span></td></tr>
+<tr name="695" id="695">
+<td><a id="l695" class='ln'>695</a></td><td>  <span class="kw">if</span> (<a id="695c7" class="tk">!</a><a id="695c8" class="tk">ssSetNumInputPorts</a>(<a id="695c27" class="tk">S</a>, 1))</td></tr>
+<tr name="696" id="696">
+<td><a id="l696" class='ln'>696</a></td><td>    <span class="kw">return</span>;</td></tr>
+<tr name="697" id="697">
+<td><a id="l697" class='ln'>697</a></td><td></td></tr>
+<tr name="698" id="698">
+<td><a id="l698" class='ln'>698</a></td><td>  <span class="ct">/* inport number: 0 */</span></td></tr>
+<tr name="699" id="699">
+<td><a id="l699" class='ln'>699</a></td><td>  <span class="br">{</span></td></tr>
+<tr name="700" id="700">
+<td><a id="l700" class='ln'>700</a></td><td>    <span class="kw">if</span> (<a id="700c9" class="tk">!</a><a id="700c10" class="tk">ssSetInputPortVectorDimension</a>(<a id="700c40" class="tk">S</a>, 0, 3))</td></tr>
+<tr name="701" id="701">
+<td><a id="l701" class='ln'>701</a></td><td>      <span class="kw">return</span>;</td></tr>
+<tr name="702" id="702">
+<td><a id="l702" class='ln'>702</a></td><td>    <span class="kw">if</span> (<a id="702c9" class="tk">ssGetSimMode</a>(<a id="702c22" class="tk">S</a>) <a id="702c25" class="tk">!=</a> <a id="702c28" class="tk">SS_SIMMODE_SIZES_CALL_ONLY</a>) <span class="br">{</span></td></tr>
+<tr name="703" id="703">
+<td><a id="l703" class='ln'>703</a></td><td>      <a id="703c7" class="tk">ssSetInputPortDataType</a>(<a id="703c30" class="tk">S</a>, 0, <a id="703c36" class="tk">SS_DOUBLE</a>);</td></tr>
+<tr name="704" id="704">
+<td><a id="l704" class='ln'>704</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="705" id="705">
+<td><a id="l705" class='ln'>705</a></td><td></td></tr>
+<tr name="706" id="706">
+<td><a id="l706" class='ln'>706</a></td><td>    <a id="706c5" class="tk">ssSetInputPortDirectFeedThrough</a>(<a id="706c37" class="tk">S</a>, 0, 1);</td></tr>
+<tr name="707" id="707">
+<td><a id="l707" class='ln'>707</a></td><td>    <a id="707c5" class="tk">ssSetInputPortSampleTime</a>(<a id="707c30" class="tk">S</a>, 0, 5.0E-7);</td></tr>
+<tr name="708" id="708">
+<td><a id="l708" class='ln'>708</a></td><td>    <a id="708c5" class="tk">ssSetInputPortOffsetTime</a>(<a id="708c30" class="tk">S</a>, 0, 0.0);</td></tr>
+<tr name="709" id="709">
+<td><a id="l709" class='ln'>709</a></td><td>    <a id="709c5" class="tk">ssSetInputPortOverWritable</a>(<a id="709c32" class="tk">S</a>, 0, 0);</td></tr>
+<tr name="710" id="710">
+<td><a id="l710" class='ln'>710</a></td><td>    <a id="710c5" class="tk">ssSetInputPortOptimOpts</a>(<a id="710c29" class="tk">S</a>, 0, <a id="710c35" class="tk">SS_NOT_REUSABLE_AND_GLOBAL</a>);</td></tr>
+<tr name="711" id="711">
+<td><a id="l711" class='ln'>711</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="712" id="712">
+<td><a id="l712" class='ln'>712</a></td><td></td></tr>
+<tr name="713" id="713">
+<td><a id="l713" class='ln'>713</a></td><td>  <a id="713c3" class="tk">ssSetRTWGeneratedSFcn</a>(<a id="713c25" class="tk">S</a>, 1);         <span class="ct">/* Generated S-function */</span></td></tr>
+<tr name="714" id="714">
+<td><a id="l714" class='ln'>714</a></td><td></td></tr>
+<tr name="715" id="715">
+<td><a id="l715" class='ln'>715</a></td><td>  <span class="ct">/* DWork */</span></td></tr>
+<tr name="716" id="716">
+<td><a id="l716" class='ln'>716</a></td><td>  <span class="kw">if</span> (<a id="716c7" class="tk">!</a><a id="716c8" class="tk">ssSetNumDWork</a>(<a id="716c22" class="tk">S</a>, 9)) <span class="br">{</span></td></tr>
+<tr name="717" id="717">
+<td><a id="l717" class='ln'>717</a></td><td>    <span class="kw">return</span>;</td></tr>
+<tr name="718" id="718">
+<td><a id="l718" class='ln'>718</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="719" id="719">
+<td><a id="l719" class='ln'>719</a></td><td></td></tr>
+<tr name="720" id="720">
+<td><a id="l720" class='ln'>720</a></td><td>  <span class="ct">/* '&lt;S2&gt;/Transport Delay': RWORK */</span></td></tr>
+<tr name="721" id="721">
+<td><a id="l721" class='ln'>721</a></td><td>  <a id="721c3" class="tk">ssSetDWorkName</a>(<a id="721c18" class="tk">S</a>, 0, "DWORK0");</td></tr>
+<tr name="722" id="722">
+<td><a id="l722" class='ln'>722</a></td><td>  <a id="722c3" class="tk">ssSetDWorkWidth</a>(<a id="722c19" class="tk">S</a>, 0, 2049);</td></tr>
+<tr name="723" id="723">
+<td><a id="l723" class='ln'>723</a></td><td></td></tr>
+<tr name="724" id="724">
+<td><a id="l724" class='ln'>724</a></td><td>  <span class="ct">/* '&lt;S2&gt;/Transport Delay1': RWORK */</span></td></tr>
+<tr name="725" id="725">
+<td><a id="l725" class='ln'>725</a></td><td>  <a id="725c3" class="tk">ssSetDWorkName</a>(<a id="725c18" class="tk">S</a>, 1, "DWORK1");</td></tr>
+<tr name="726" id="726">
+<td><a id="l726" class='ln'>726</a></td><td>  <a id="726c3" class="tk">ssSetDWorkWidth</a>(<a id="726c19" class="tk">S</a>, 1, 2049);</td></tr>
+<tr name="727" id="727">
+<td><a id="l727" class='ln'>727</a></td><td></td></tr>
+<tr name="728" id="728">
+<td><a id="l728" class='ln'>728</a></td><td>  <span class="ct">/* '&lt;S2&gt;/Transport Delay2': RWORK */</span></td></tr>
+<tr name="729" id="729">
+<td><a id="l729" class='ln'>729</a></td><td>  <a id="729c3" class="tk">ssSetDWorkName</a>(<a id="729c18" class="tk">S</a>, 2, "DWORK2");</td></tr>
+<tr name="730" id="730">
+<td><a id="l730" class='ln'>730</a></td><td>  <a id="730c3" class="tk">ssSetDWorkWidth</a>(<a id="730c19" class="tk">S</a>, 2, 2049);</td></tr>
+<tr name="731" id="731">
+<td><a id="l731" class='ln'>731</a></td><td></td></tr>
+<tr name="732" id="732">
+<td><a id="l732" class='ln'>732</a></td><td>  <span class="ct">/* '&lt;S2&gt;/Transport Delay': PWORK */</span></td></tr>
+<tr name="733" id="733">
+<td><a id="l733" class='ln'>733</a></td><td>  <a id="733c3" class="tk">ssSetDWorkName</a>(<a id="733c18" class="tk">S</a>, 3, "DWORK3");</td></tr>
+<tr name="734" id="734">
+<td><a id="l734" class='ln'>734</a></td><td>  <a id="734c3" class="tk">ssSetDWorkWidth</a>(<a id="734c19" class="tk">S</a>, 3, 2);</td></tr>
+<tr name="735" id="735">
+<td><a id="l735" class='ln'>735</a></td><td>  <a id="735c3" class="tk">ssSetDWorkDataType</a>(<a id="735c22" class="tk">S</a>, 3, <a id="735c28" class="tk">SS_POINTER</a>);</td></tr>
+<tr name="736" id="736">
+<td><a id="l736" class='ln'>736</a></td><td></td></tr>
+<tr name="737" id="737">
+<td><a id="l737" class='ln'>737</a></td><td>  <span class="ct">/* '&lt;S2&gt;/Transport Delay1': PWORK */</span></td></tr>
+<tr name="738" id="738">
+<td><a id="l738" class='ln'>738</a></td><td>  <a id="738c3" class="tk">ssSetDWorkName</a>(<a id="738c18" class="tk">S</a>, 4, "DWORK4");</td></tr>
+<tr name="739" id="739">
+<td><a id="l739" class='ln'>739</a></td><td>  <a id="739c3" class="tk">ssSetDWorkWidth</a>(<a id="739c19" class="tk">S</a>, 4, 2);</td></tr>
+<tr name="740" id="740">
+<td><a id="l740" class='ln'>740</a></td><td>  <a id="740c3" class="tk">ssSetDWorkDataType</a>(<a id="740c22" class="tk">S</a>, 4, <a id="740c28" class="tk">SS_POINTER</a>);</td></tr>
+<tr name="741" id="741">
+<td><a id="l741" class='ln'>741</a></td><td></td></tr>
+<tr name="742" id="742">
+<td><a id="l742" class='ln'>742</a></td><td>  <span class="ct">/* '&lt;S2&gt;/Transport Delay2': PWORK */</span></td></tr>
+<tr name="743" id="743">
+<td><a id="l743" class='ln'>743</a></td><td>  <a id="743c3" class="tk">ssSetDWorkName</a>(<a id="743c18" class="tk">S</a>, 5, "DWORK5");</td></tr>
+<tr name="744" id="744">
+<td><a id="l744" class='ln'>744</a></td><td>  <a id="744c3" class="tk">ssSetDWorkWidth</a>(<a id="744c19" class="tk">S</a>, 5, 2);</td></tr>
+<tr name="745" id="745">
+<td><a id="l745" class='ln'>745</a></td><td>  <a id="745c3" class="tk">ssSetDWorkDataType</a>(<a id="745c22" class="tk">S</a>, 5, <a id="745c28" class="tk">SS_POINTER</a>);</td></tr>
+<tr name="746" id="746">
+<td><a id="l746" class='ln'>746</a></td><td></td></tr>
+<tr name="747" id="747">
+<td><a id="l747" class='ln'>747</a></td><td>  <span class="ct">/* '&lt;S2&gt;/Transport Delay': IWORK */</span></td></tr>
+<tr name="748" id="748">
+<td><a id="l748" class='ln'>748</a></td><td>  <a id="748c3" class="tk">ssSetDWorkName</a>(<a id="748c18" class="tk">S</a>, 6, "DWORK6");</td></tr>
+<tr name="749" id="749">
+<td><a id="l749" class='ln'>749</a></td><td>  <a id="749c3" class="tk">ssSetDWorkWidth</a>(<a id="749c19" class="tk">S</a>, 6, 4);</td></tr>
+<tr name="750" id="750">
+<td><a id="l750" class='ln'>750</a></td><td>  <a id="750c3" class="tk">ssSetDWorkDataType</a>(<a id="750c22" class="tk">S</a>, 6, <a id="750c28" class="tk">SS_INTEGER</a>);</td></tr>
+<tr name="751" id="751">
+<td><a id="l751" class='ln'>751</a></td><td></td></tr>
+<tr name="752" id="752">
+<td><a id="l752" class='ln'>752</a></td><td>  <span class="ct">/* '&lt;S2&gt;/Transport Delay1': IWORK */</span></td></tr>
+<tr name="753" id="753">
+<td><a id="l753" class='ln'>753</a></td><td>  <a id="753c3" class="tk">ssSetDWorkName</a>(<a id="753c18" class="tk">S</a>, 7, "DWORK7");</td></tr>
+<tr name="754" id="754">
+<td><a id="l754" class='ln'>754</a></td><td>  <a id="754c3" class="tk">ssSetDWorkWidth</a>(<a id="754c19" class="tk">S</a>, 7, 4);</td></tr>
+<tr name="755" id="755">
+<td><a id="l755" class='ln'>755</a></td><td>  <a id="755c3" class="tk">ssSetDWorkDataType</a>(<a id="755c22" class="tk">S</a>, 7, <a id="755c28" class="tk">SS_INTEGER</a>);</td></tr>
+<tr name="756" id="756">
+<td><a id="l756" class='ln'>756</a></td><td></td></tr>
+<tr name="757" id="757">
+<td><a id="l757" class='ln'>757</a></td><td>  <span class="ct">/* '&lt;S2&gt;/Transport Delay2': IWORK */</span></td></tr>
+<tr name="758" id="758">
+<td><a id="l758" class='ln'>758</a></td><td>  <a id="758c3" class="tk">ssSetDWorkName</a>(<a id="758c18" class="tk">S</a>, 8, "DWORK8");</td></tr>
+<tr name="759" id="759">
+<td><a id="l759" class='ln'>759</a></td><td>  <a id="759c3" class="tk">ssSetDWorkWidth</a>(<a id="759c19" class="tk">S</a>, 8, 4);</td></tr>
+<tr name="760" id="760">
+<td><a id="l760" class='ln'>760</a></td><td>  <a id="760c3" class="tk">ssSetDWorkDataType</a>(<a id="760c22" class="tk">S</a>, 8, <a id="760c28" class="tk">SS_INTEGER</a>);</td></tr>
+<tr name="761" id="761">
+<td><a id="l761" class='ln'>761</a></td><td></td></tr>
+<tr name="762" id="762">
+<td><a id="l762" class='ln'>762</a></td><td>  <span class="ct">/* Tunable Parameters */</span></td></tr>
+<tr name="763" id="763">
+<td><a id="l763" class='ln'>763</a></td><td>  <a id="763c3" class="tk">ssSetNumSFcnParams</a>(<a id="763c22" class="tk">S</a>, 0);</td></tr>
+<tr name="764" id="764">
+<td><a id="l764" class='ln'>764</a></td><td></td></tr>
+<tr name="765" id="765">
+<td><a id="l765" class='ln'>765</a></td><td>  <span class="ct">/* Number of expected parameters */</span></td></tr>
+<tr name="766" id="766">
+<td><a id="l766" class='ln'>766</a></td><td><span class="pp">#if</span> <a id="766c5" class="tk">defined</a>(<a id="766c13" class="tk">MATLAB_MEX_FILE</a>)</td></tr>
+<tr name="767" id="767">
+<td><a id="l767" class='ln'>767</a></td><td></td></tr>
+<tr name="768" id="768">
+<td><a id="l768" class='ln'>768</a></td><td>  <span class="kw">if</span> (<a id="768c7" class="tk">ssGetNumSFcnParams</a>(<a id="768c26" class="tk">S</a>) <a id="768c29" class="tk">==</a> <a id="768c32" class="tk">ssGetSFcnParamsCount</a>(<a id="768c53" class="tk">S</a>)) <span class="br">{</span></td></tr>
+<tr name="769" id="769">
+<td><a id="l769" class='ln'>769</a></td><td></td></tr>
+<tr name="770" id="770">
+<td><a id="l770" class='ln'>770</a></td><td><span class="pp">#if</span> <a id="770c5" class="tk">defined</a>(<a id="770c13" class="tk">MDL_CHECK_PARAMETERS</a>)</td></tr>
+<tr name="771" id="771">
+<td><a id="l771" class='ln'>771</a></td><td></td></tr>
+<tr name="772" id="772">
+<td><a id="l772" class='ln'>772</a></td><td>    <a id="772c5" class="tk">mdlCheckParameters</a>(<a id="772c24" class="tk">S</a>);</td></tr>
+<tr name="773" id="773">
+<td><a id="l773" class='ln'>773</a></td><td></td></tr>
+<tr name="774" id="774">
+<td><a id="l774" class='ln'>774</a></td><td><span class="pp">#endif</span>                                 <span class="ct">/* MDL_CHECK_PARAMETERS */</span></td></tr>
+<tr name="775" id="775">
+<td><a id="l775" class='ln'>775</a></td><td></td></tr>
+<tr name="776" id="776">
+<td><a id="l776" class='ln'>776</a></td><td>    <span class="kw">if</span> (<a id="776c9" class="tk">ssGetErrorStatus</a>(<a id="776c26" class="tk">S</a>) <a id="776c29" class="tk">!=</a> (<a id="776c33" class="tk">NULL</a>) ) <span class="br">{</span></td></tr>
+<tr name="777" id="777">
+<td><a id="l777" class='ln'>777</a></td><td>      <span class="kw">return</span>;</td></tr>
+<tr name="778" id="778">
+<td><a id="l778" class='ln'>778</a></td><td>    <span class="br">}</span></td></tr>
+<tr name="779" id="779">
+<td><a id="l779" class='ln'>779</a></td><td>  <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
+<tr name="780" id="780">
+<td><a id="l780" class='ln'>780</a></td><td>    <span class="kw">return</span>;                <span class="ct">/* Parameter mismatch will be reported by Simulink */</span></td></tr>
+<tr name="781" id="781">
+<td><a id="l781" class='ln'>781</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="782" id="782">
+<td><a id="l782" class='ln'>782</a></td><td></td></tr>
+<tr name="783" id="783">
+<td><a id="l783" class='ln'>783</a></td><td><span class="pp">#endif</span>                                 <span class="ct">/* MATLAB_MEX_FILE */</span></td></tr>
+<tr name="784" id="784">
+<td><a id="l784" class='ln'>784</a></td><td></td></tr>
+<tr name="785" id="785">
+<td><a id="l785" class='ln'>785</a></td><td>  <span class="ct">/* Options */</span></td></tr>
+<tr name="786" id="786">
+<td><a id="l786" class='ln'>786</a></td><td>  <a id="786c3" class="tk">ssSetOptions</a>(<a id="786c16" class="tk">S</a>, (<a id="786c20" class="tk">SS_OPTION_RUNTIME_EXCEPTION_FREE_CODE</a> <a id="786c58" class="tk">|</a></td></tr>
+<tr name="787" id="787">
+<td><a id="l787" class='ln'>787</a></td><td>                   <a id="787c20" class="tk">SS_OPTION_PORT_SAMPLE_TIMES_ASSIGNED</a> ));</td></tr>
+<tr name="788" id="788">
+<td><a id="l788" class='ln'>788</a></td><td></td></tr>
+<tr name="789" id="789">
+<td><a id="l789" class='ln'>789</a></td><td><span class="pp">#if</span> <a id="789c5" class="tk">SS_SFCN_FOR_SIM</a></td></tr>
+<tr name="790" id="790">
+<td><a id="l790" class='ln'>790</a></td><td></td></tr>
+<tr name="791" id="791">
+<td><a id="l791" class='ln'>791</a></td><td>  <span class="br">{</span></td></tr>
+<tr name="792" id="792">
+<td><a id="l792" class='ln'>792</a></td><td>    <a id="792c5" class="tk">ssSupportsMultipleExecInstances</a>(<a id="792c37" class="tk">S</a>, false);</td></tr>
+<tr name="793" id="793">
+<td><a id="l793" class='ln'>793</a></td><td>    <a id="793c5" class="tk">ssRegisterMsgForNotSupportingMultiExecInst</a>(<a id="793c48" class="tk">S</a>,</td></tr>
+<tr name="794" id="794">
+<td><a id="l794" class='ln'>794</a></td><td>      "&lt;diag_root&gt;&lt;diag id=\"Simulink:blocks:BlockDoesNotSupportMultiExecInstances\" pr=\"d\"&gt;&lt;arguments&gt;&lt;arg type=\"encoded\"&gt;UABXAE0ALwBQAFcATQAvAG0AbwBkAHUAbABhAHQAZQBkACAAdwBhAHYAZQAvAHMAdABhAHIAdABUAGkAbQBlAAAA&lt;/arg&gt;&lt;arg type=\"encoded\"&gt;PABfAF8AaQBpAFMAUwBfAF8APgA8AC8AXwBfAGkAaQBTAFMAXwBfAD4AAAA=&lt;/arg&gt;&lt;arg type=\"encoded\"&gt;PABfAF8AaQB0AGUAcgBCAGwAawBfAF8APgA8AC8AXwBfAGkAdABlAHIAQgBsAGsAXwBfAD4AAAA=&lt;/arg&gt;&lt;/arguments&gt;&lt;hs&gt;&lt;h&gt;AAAACIDlzUD+&lt;/h&gt;&lt;/hs&gt;&lt;/diag&gt;&lt;/diag_root&gt;");</td></tr>
+<tr name="795" id="795">
+<td><a id="l795" class='ln'>795</a></td><td>    <a id="795c5" class="tk">ssHasStateInsideForEachSS</a>(<a id="795c31" class="tk">S</a>, false);</td></tr>
+<tr name="796" id="796">
+<td><a id="l796" class='ln'>796</a></td><td>  <span class="br">}</span></td></tr>
+<tr name="797" id="797">
+<td><a id="l797" class='ln'>797</a></td><td></td></tr>
+<tr name="798" id="798">
+<td><a id="l798" class='ln'>798</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="799" id="799">
+<td><a id="l799" class='ln'>799</a></td><td></td></tr>
+<tr name="800" id="800">
+<td><a id="l800" class='ln'>800</a></td><td><span class="br">}</span></td></tr>
+<tr name="801" id="801">
+<td><a id="l801" class='ln'>801</a></td><td></td></tr>
+<tr name="802" id="802">
+<td><a id="l802" class='ln'>802</a></td><td><span class="ct">/* Function to initialize sample times. */</span></td></tr>
+<tr name="803" id="803">
+<td><a id="l803" class='ln'>803</a></td><td><span class="kw">static</span> <span class="kw">void</span> <a id="803c13" class="tk">mdlInitializeSampleTimes</a>(<a id="803c38" class="tk">SimStruct</a> <a id="803c48" class="tk">*</a><a id="803c49" class="tk">S</a>)</td></tr>
+<tr name="804" id="804">
+<td><a id="l804" class='ln'>804</a></td><td><span class="br">{</span></td></tr>
+<tr name="805" id="805">
+<td><a id="l805" class='ln'>805</a></td><td>  <span class="ct">/* task periods */</span></td></tr>
+<tr name="806" id="806">
+<td><a id="l806" class='ln'>806</a></td><td>  <a id="806c3" class="tk">ssSetSampleTime</a>(<a id="806c19" class="tk">S</a>, 0, 0.0);</td></tr>
+<tr name="807" id="807">
+<td><a id="l807" class='ln'>807</a></td><td>  <a id="807c3" class="tk">ssSetSampleTime</a>(<a id="807c19" class="tk">S</a>, 1, 5.0E-7);</td></tr>
+<tr name="808" id="808">
+<td><a id="l808" class='ln'>808</a></td><td></td></tr>
+<tr name="809" id="809">
+<td><a id="l809" class='ln'>809</a></td><td>  <span class="ct">/* task offsets */</span></td></tr>
+<tr name="810" id="810">
+<td><a id="l810" class='ln'>810</a></td><td>  <a id="810c3" class="tk">ssSetOffsetTime</a>(<a id="810c19" class="tk">S</a>, 0, 0.0);</td></tr>
+<tr name="811" id="811">
+<td><a id="l811" class='ln'>811</a></td><td>  <a id="811c3" class="tk">ssSetOffsetTime</a>(<a id="811c19" class="tk">S</a>, 1, 0.0);</td></tr>
+<tr name="812" id="812">
+<td><a id="l812" class='ln'>812</a></td><td><span class="br">}</span></td></tr>
+<tr name="813" id="813">
+<td><a id="l813" class='ln'>813</a></td><td></td></tr>
+<tr name="814" id="814">
+<td><a id="l814" class='ln'>814</a></td><td><span class="pp">#if</span> <a id="814c5" class="tk">defined</a>(<a id="814c13" class="tk">MATLAB_MEX_FILE</a>)</td></tr>
+<tr name="815" id="815">
+<td><a id="l815" class='ln'>815</a></td><td><span class="pp">#include "fixedpoint.c"</span></td></tr>
+<tr name="816" id="816">
+<td><a id="l816" class='ln'>816</a></td><td><span class="pp">#include "simulink.c"</span></td></tr>
+<tr name="817" id="817">
+<td><a id="l817" class='ln'>817</a></td><td><span class="pp">#else</span></td></tr>
+<tr name="818" id="818">
+<td><a id="l818" class='ln'>818</a></td><td><span class="pp">#undef</span> <a id="818c8" class="tk">S_FUNCTION_NAME</a></td></tr>
+<tr name="819" id="819">
+<td><a id="l819" class='ln'>819</a></td><td><span class="pp">#define</span> <a id="819c9" class="tk">S_FUNCTION_NAME</a>                <a id="819c40" class="tk">PWM_sf</a></td></tr>
+<tr name="820" id="820">
+<td><a id="l820" class='ln'>820</a></td><td><span class="pp">#include "cg_sfun.h"</span></td></tr>
+<tr name="821" id="821">
+<td><a id="l821" class='ln'>821</a></td><td><span class="pp">#endif</span>                                 <span class="ct">/* defined(MATLAB_MEX_FILE) */</span></td></tr>
+<tr name="822" id="822">
+<td><a id="l822" class='ln'>822</a></td><td></td></tr>
+</table>
+</pre>
+</body>
+</html>

+ 33 - 0
Simulink/PWM_sfcn_rtw/html/PWM_sf_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:447"; </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>
+PWM Code Generation Report
+</title>
+
+</head>
+<frameset cols="25%,75%,0%" id="main" border="2">
+<frame scrolling="auto" src="PWM_sf_contents.html" name="rtwreport_contents_frame" id="rtwreport_contents_frame" onLoad="loadDocFrameSource('PWM_sf')">
+
+</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>

+ 334 - 0
Simulink/PWM_sfcn_rtw/html/PWM_sf_contents.html

@@ -0,0 +1,334 @@
+<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="PWM_sf_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="PWM_sf_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>
+
+</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="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','4')"><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="PWM_sf_c.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="PWM_sf_c.html" NAME="rtwIdGenFileLinks">
+PWM_sf.c
+</A>
+<span> </span>
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<A HREF="PWM_sf_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="PWM_sf_h.html" NAME="rtwIdGenFileLinks">
+PWM_sf.h
+</A>
+<span> </span>
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<A HREF="PWM_sf_private_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="PWM_sf_private_h.html" NAME="rtwIdGenFileLinks">
+PWM_sf_private.h
+</A>
+<span> </span>
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<A HREF="PWM_sf_types_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="PWM_sf_types_h.html" NAME="rtwIdGenFileLinks">
+PWM_sf_types.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="Data" label="Data 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,'Data','Data files','1')"><span style="font-family:monospace" id = "Data_button">[-]</span></span>
+</td>
+<td width="100%" align="left" valign="top">
+<span id="Data_name"><b>Data files</b></span>
+</td>
+
+</tr>
+<tr>
+<td width="0%" align="left" valign="top">
+<span id="Data_indent"></span>
+</td>
+<td width="100%" align="left" valign="top">
+<table cellspacing="0" cellpadding="4" width="100%" bgcolor="#ffffff" id="Data_table" border="0">
+<tr>
+<td align="left" valign="top">
+<A HREF="PWM_sf_data_c.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="PWM_sf_data_c.html" NAME="rtwIdGenFileLinks">
+PWM_sf_data.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="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','9')"><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 (9)</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="multiword_types_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="multiword_types_h.html" NAME="rtwIdGenFileLinks">
+multiword_types.h
+</A>
+<span> </span>
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<A HREF="rtGetInf_c.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="rtGetInf_c.html" NAME="rtwIdGenFileLinks">
+rtGetInf.c
+</A>
+<span> </span>
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<A HREF="rtGetInf_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="rtGetInf_h.html" NAME="rtwIdGenFileLinks">
+rtGetInf.h
+</A>
+<span> </span>
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<A HREF="rtGetNaN_c.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="rtGetNaN_c.html" NAME="rtwIdGenFileLinks">
+rtGetNaN.c
+</A>
+<span> </span>
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<A HREF="rtGetNaN_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="rtGetNaN_h.html" NAME="rtwIdGenFileLinks">
+rtGetNaN.h
+</A>
+<span> </span>
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<A HREF="rt_defines_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="rt_defines_h.html" NAME="rtwIdGenFileLinks">
+rt_defines.h
+</A>
+<span> </span>
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<A HREF="rt_nonfinite_c.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="rt_nonfinite_c.html" NAME="rtwIdGenFileLinks">
+rt_nonfinite.c
+</A>
+<span> </span>
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<A HREF="rt_nonfinite_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="rt_nonfinite_h.html" NAME="rtwIdGenFileLinks">
+rt_nonfinite.h
+</A>
+<span> </span>
+</td>
+
+</tr>
+<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>
+<tr>
+<td align="left" valign="top">
+<table cellspacing="0" cellpadding="1" width="100%" bgcolor="#ffffff" id="Interface" label="Interface 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,'Interface','Interface files','2')"><span style="font-family:monospace" id = "Interface_button">[+]</span></span>
+</td>
+<td width="100%" align="left" valign="top">
+<span id="Interface_name"><b>Interface files (2)</b></span>
+</td>
+
+</tr>
+<tr>
+<td width="0%" align="left" valign="top">
+<span id="Interface_indent"></span>
+</td>
+<td width="100%" align="left" valign="top">
+<table cellspacing="0" cellpadding="4" width="100%" bgcolor="#ffffff" id="Interface_table" style="display:none" border="0">
+<tr>
+<td align="left" valign="top">
+<A HREF="PWM_mid_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="PWM_mid_h.html" NAME="rtwIdGenFileLinks">
+PWM_mid.h
+</A>
+<span> </span>
+</td>
+
+</tr>
+<tr>
+<td align="left" valign="top">
+<A HREF="PWM_sid_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="PWM_sid_h.html" NAME="rtwIdGenFileLinks">
+PWM_sid.h
+</A>
+<span> </span>
+</td>
+
+</tr>
+
+</table>
+
+</td>
+
+</tr>
+
+</table>
+
+</td>
+
+</tr>
+
+</table>
+<hr />
+</body>
+
+</html>

+ 88 - 0
Simulink/PWM_sfcn_rtw/html/PWM_sf_data_c.html

@@ -0,0 +1,88 @@
+<!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"> * PWM_sf_data.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 generation for model "PWM_sf".</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.825</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 source code generated on : Fri Apr 14 12:53:29 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: rtwsfcn.tlc</span></td></tr>
+<tr name="11" id="11">
+<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
+<tr name="12" id="12">
+<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * Embedded hardware selection: ARM Compatible-&gt;ARM Cortex-M</span></td></tr>
+<tr name="13" id="13">
+<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> * Emulation hardware selection:</span></td></tr>
+<tr name="14" id="14">
+<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> *    Differs from embedded hardware (MATLAB Host)</span></td></tr>
+<tr name="15" id="15">
+<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Code generation objectives:</span></td></tr>
+<tr name="16" id="16">
+<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> *    1. Execution efficiency</span></td></tr>
+<tr name="17" id="17">
+<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> *    2. RAM efficiency</span></td></tr>
+<tr name="18" id="18">
+<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
+<tr name="19" id="19">
+<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> */</span></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="pp">#include "PWM_sf.h"</span></td></tr>
+<tr name="22" id="22">
+<td><a id="l22" class='ln'>22</a></td><td><span class="pp">#include "PWM_sf_private.h"</span></td></tr>
+<tr name="23" id="23">
+<td><a id="l23" class='ln'>23</a></td><td></td></tr>
+<tr name="24" id="24">
+<td><a id="l24" class='ln'>24</a></td><td><span class="ct">/* Constant parameters (default storage) */</span></td></tr>
+<tr name="25" id="25">
+<td><a id="l25" class='ln'>25</a></td><td><span class="kw">const</span> <a id="25c7" class="tk">ConstP_PWM_T</a> <a id="25c20" class="tk">PWM_ConstP</a> = <span class="br">{</span></td></tr>
+<tr name="26" id="26">
+<td><a id="l26" class='ln'>26</a></td><td>  <span class="ct">/* Expression: rep_seq_y</span></td></tr>
+<tr name="27" id="27">
+<td><a id="l27" class='ln'>27</a></td><td><span class="ct">   * Referenced by: '&lt;S3&gt;/Look-Up Table1'</span></td></tr>
+<tr name="28" id="28">
+<td><a id="l28" class='ln'>28</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="29" id="29">
+<td><a id="l29" class='ln'>29</a></td><td>  <span class="br">{</span> 0.0, 3000.0, 0.0 <span class="br">}</span>,</td></tr>
+<tr name="30" id="30">
+<td><a id="l30" class='ln'>30</a></td><td></td></tr>
+<tr name="31" id="31">
+<td><a id="l31" class='ln'>31</a></td><td>  <span class="ct">/* Expression: rep_seq_t - min(rep_seq_t)</span></td></tr>
+<tr name="32" id="32">
+<td><a id="l32" class='ln'>32</a></td><td><span class="ct">   * Referenced by: '&lt;S3&gt;/Look-Up Table1'</span></td></tr>
+<tr name="33" id="33">
+<td><a id="l33" class='ln'>33</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="34" id="34">
+<td><a id="l34" class='ln'>34</a></td><td>  <span class="br">{</span> 0.0, 5.0E-5, 0.0001 <span class="br">}</span></td></tr>
+<tr name="35" id="35">
+<td><a id="l35" class='ln'>35</a></td><td><span class="br">}</span>;</td></tr>
+<tr name="36" id="36">
+<td><a id="l36" class='ln'>36</a></td><td></td></tr>
+</table>
+</pre>
+</body>
+</html>

+ 280 - 0
Simulink/PWM_sfcn_rtw/html/PWM_sf_h.html

@@ -0,0 +1,280 @@
+<!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"> * PWM_sf.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 generation for model "PWM_sf".</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.825</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 source code generated on : Fri Apr 14 12:53:29 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: rtwsfcn.tlc</span></td></tr>
+<tr name="11" id="11">
+<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
+<tr name="12" id="12">
+<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * Embedded hardware selection: ARM Compatible-&gt;ARM Cortex-M</span></td></tr>
+<tr name="13" id="13">
+<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> * Emulation hardware selection:</span></td></tr>
+<tr name="14" id="14">
+<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> *    Differs from embedded hardware (MATLAB Host)</span></td></tr>
+<tr name="15" id="15">
+<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Code generation objectives:</span></td></tr>
+<tr name="16" id="16">
+<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> *    1. Execution efficiency</span></td></tr>
+<tr name="17" id="17">
+<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> *    2. RAM efficiency</span></td></tr>
+<tr name="18" id="18">
+<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
+<tr name="19" id="19">
+<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> */</span></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="pp">#ifndef</span> <a id="21c9" class="tk">RTW_HEADER_PWM_sf_h_</a></td></tr>
+<tr name="22" id="22">
+<td><a id="l22" class='ln'>22</a></td><td><span class="pp">#define</span> <a id="22c9" class="tk">RTW_HEADER_PWM_sf_h_</a></td></tr>
+<tr name="23" id="23">
+<td><a id="l23" class='ln'>23</a></td><td><span class="pp">#include &lt;float.h&gt;</span></td></tr>
+<tr name="24" id="24">
+<td><a id="l24" class='ln'>24</a></td><td><span class="pp">#include &lt;math.h&gt;</span></td></tr>
+<tr name="25" id="25">
+<td><a id="l25" class='ln'>25</a></td><td><span class="pp">#include &lt;string.h&gt;</span></td></tr>
+<tr name="26" id="26">
+<td><a id="l26" class='ln'>26</a></td><td><span class="pp">#include &lt;stddef.h&gt;</span></td></tr>
+<tr name="27" id="27">
+<td><a id="l27" class='ln'>27</a></td><td><span class="pp">#ifndef</span> <a id="27c9" class="tk">PWM_sf_COMMON_INCLUDES_</a></td></tr>
+<tr name="28" id="28">
+<td><a id="l28" class='ln'>28</a></td><td><span class="pp">#define</span> <a id="28c9" class="tk">PWM_sf_COMMON_INCLUDES_</a></td></tr>
+<tr name="29" id="29">
+<td><a id="l29" class='ln'>29</a></td><td><span class="pp">#include &lt;stdlib.h&gt;</span></td></tr>
+<tr name="30" id="30">
+<td><a id="l30" class='ln'>30</a></td><td><span class="pp">#define</span> <a id="30c9" class="tk">S_FUNCTION_NAME</a>                <a id="30c40" class="tk">PWM_sf</a></td></tr>
+<tr name="31" id="31">
+<td><a id="l31" class='ln'>31</a></td><td><span class="pp">#define</span> <a id="31c9" class="tk">S_FUNCTION_LEVEL</a>               2</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">RTW_GENERATED_S_FUNCTION</a></td></tr>
+<tr name="33" id="33">
+<td><a id="l33" class='ln'>33</a></td><td><span class="pp">#include "rtwtypes.h"</span></td></tr>
+<tr name="34" id="34">
+<td><a id="l34" class='ln'>34</a></td><td><span class="pp">#include "simstruc.h"</span></td></tr>
+<tr name="35" id="35">
+<td><a id="l35" class='ln'>35</a></td><td><span class="pp">#include "fixedpoint.h"</span></td></tr>
+<tr name="36" id="36">
+<td><a id="l36" class='ln'>36</a></td><td><span class="pp">#if</span> <a id="36c5" class="tk">!</a><a id="36c6" class="tk">defined</a>(<a id="36c14" class="tk">MATLAB_MEX_FILE</a>)</td></tr>
+<tr name="37" id="37">
+<td><a id="l37" class='ln'>37</a></td><td><span class="pp">#include "rt_matrx.h"</span></td></tr>
+<tr name="38" id="38">
+<td><a id="l38" class='ln'>38</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="39" id="39">
+<td><a id="l39" class='ln'>39</a></td><td></td></tr>
+<tr name="40" id="40">
+<td><a id="l40" class='ln'>40</a></td><td><span class="pp">#if</span> <a id="40c5" class="tk">!</a><a id="40c6" class="tk">defined</a>(<a id="40c14" class="tk">RTW_SFUNCTION_DEFINES</a>)</td></tr>
+<tr name="41" id="41">
+<td><a id="l41" class='ln'>41</a></td><td><span class="pp">#define</span> <a id="41c9" class="tk">RTW_SFUNCTION_DEFINES</a></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="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>  <span class="kw">void</span> <a id="44c8" class="tk">*</a><a id="44c9" class="tk">blockIO</a>;</td></tr>
+<tr name="45" id="45">
+<td><a id="l45" class='ln'>45</a></td><td>  <span class="kw">void</span> <a id="45c8" class="tk">*</a><a id="45c9" class="tk">defaultParam</a>;</td></tr>
+<tr name="46" id="46">
+<td><a id="l46" class='ln'>46</a></td><td>  <span class="kw">void</span> <a id="46c8" class="tk">*</a><a id="46c9" class="tk">nonContDerivSig</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">LocalS</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="pp">#define</span> <a id="49c9" class="tk">ssSetLocalBlockIO</a>(<a id="49c27" class="tk">S</a>, <a id="49c30" class="tk">io</a>)       ((<a id="49c42" class="tk">LocalS</a> <a id="49c49" class="tk">*</a>)<a id="49c51" class="tk">ssGetUserData</a>(<a id="49c65" class="tk">S</a>))-&gt;<a id="49c70" class="tk">blockIO</a> = ((<span class="kw">void</span> <a id="49c87" class="tk">*</a>)(<a id="49c90" class="tk">io</a>))</td></tr>
+<tr name="50" id="50">
+<td><a id="l50" class='ln'>50</a></td><td><span class="pp">#define</span> <a id="50c9" class="tk">ssGetLocalBlockIO</a>(<a id="50c27" class="tk">S</a>)           ((<a id="50c42" class="tk">LocalS</a> <a id="50c49" class="tk">*</a>)<a id="50c51" class="tk">ssGetUserData</a>(<a id="50c65" class="tk">S</a>))-&gt;<a id="50c70" class="tk">blockIO</a></td></tr>
+<tr name="51" id="51">
+<td><a id="l51" class='ln'>51</a></td><td><span class="pp">#define</span> <a id="51c9" class="tk">ssSetLocalDefaultParam</a>(<a id="51c32" class="tk">S</a>, <a id="51c35" class="tk">paramVector</a>) ((<a id="51c50" class="tk">LocalS</a> <a id="51c57" class="tk">*</a>)<a id="51c59" class="tk">ssGetUserData</a>(<a id="51c73" class="tk">S</a>))-&gt;<a id="51c78" class="tk">defaultParam</a> = (<a id="51c94" class="tk">paramVector</a>)</td></tr>
+<tr name="52" id="52">
+<td><a id="l52" class='ln'>52</a></td><td><span class="pp">#define</span> <a id="52c9" class="tk">ssGetLocalDefaultParam</a>(<a id="52c32" class="tk">S</a>)      ((<a id="52c42" class="tk">LocalS</a> <a id="52c49" class="tk">*</a>)<a id="52c51" class="tk">ssGetUserData</a>(<a id="52c65" class="tk">S</a>))-&gt;<a id="52c70" class="tk">defaultParam</a></td></tr>
+<tr name="53" id="53">
+<td><a id="l53" class='ln'>53</a></td><td><span class="pp">#define</span> <a id="53c9" class="tk">ssSetLocalNonContDerivSig</a>(<a id="53c35" class="tk">S</a>, <a id="53c38" class="tk">pSig</a>) ((<a id="53c46" class="tk">LocalS</a> <a id="53c53" class="tk">*</a>)<a id="53c55" class="tk">ssGetUserData</a>(<a id="53c69" class="tk">S</a>))-&gt;<a id="53c74" class="tk">nonContDerivSig</a> = (<a id="53c93" class="tk">pSig</a>)</td></tr>
+<tr name="54" id="54">
+<td><a id="l54" class='ln'>54</a></td><td><span class="pp">#define</span> <a id="54c9" class="tk">ssGetLocalNonContDerivSig</a>(<a id="54c35" class="tk">S</a>)   ((<a id="54c42" class="tk">LocalS</a> <a id="54c49" class="tk">*</a>)<a id="54c51" class="tk">ssGetUserData</a>(<a id="54c65" class="tk">S</a>))-&gt;<a id="54c70" class="tk">nonContDerivSig</a></td></tr>
+<tr name="55" id="55">
+<td><a id="l55" class='ln'>55</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="56" id="56">
+<td><a id="l56" class='ln'>56</a></td><td><span class="pp">#endif</span>                                 <span class="ct">/* PWM_sf_COMMON_INCLUDES_ */</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="pp">#include "PWM_sf_types.h"</span></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">/* Shared type includes */</span></td></tr>
+<tr name="61" id="61">
+<td><a id="l61" class='ln'>61</a></td><td><span class="pp">#include "multiword_types.h"</span></td></tr>
+<tr name="62" id="62">
+<td><a id="l62" class='ln'>62</a></td><td><span class="pp">#include "rtGetNaN.h"</span></td></tr>
+<tr name="63" id="63">
+<td><a id="l63" class='ln'>63</a></td><td><span class="pp">#include "rt_nonfinite.h"</span></td></tr>
+<tr name="64" id="64">
+<td><a id="l64" class='ln'>64</a></td><td><span class="pp">#include "rtGetInf.h"</span></td></tr>
+<tr name="65" id="65">
+<td><a id="l65" class='ln'>65</a></td><td><span class="pp">#include "rt_defines.h"</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">/* Block signals (default storage) */</span></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">struct</span> <span class="br">{</span></td></tr>
+<tr name="69" id="69">
+<td><a id="l69" class='ln'>69</a></td><td>  <a id="69c3" class="tk">real_T</a> <a id="69c10" class="tk">Product</a>;                      <span class="ct">/* '&lt;S2&gt;/Product' */</span></td></tr>
+<tr name="70" id="70">
+<td><a id="l70" class='ln'>70</a></td><td>  <a id="70c3" class="tk">real_T</a> <a id="70c10" class="tk">Product1</a>;                     <span class="ct">/* '&lt;S2&gt;/Product1' */</span></td></tr>
+<tr name="71" id="71">
+<td><a id="l71" class='ln'>71</a></td><td>  <a id="71c3" class="tk">real_T</a> <a id="71c10" class="tk">DataTypeConversion6</a>;          <span class="ct">/* '&lt;S2&gt;/Data Type Conversion6' */</span></td></tr>
+<tr name="72" id="72">
+<td><a id="l72" class='ln'>72</a></td><td>  <a id="72c3" class="tk">real_T</a> <a id="72c10" class="tk">DataTypeConversion2</a>;          <span class="ct">/* '&lt;S2&gt;/Data Type Conversion2' */</span></td></tr>
+<tr name="73" id="73">
+<td><a id="l73" class='ln'>73</a></td><td>  <a id="73c3" class="tk">real_T</a> <a id="73c10" class="tk">DataTypeConversion4</a>;          <span class="ct">/* '&lt;S2&gt;/Data Type Conversion4' */</span></td></tr>
+<tr name="74" id="74">
+<td><a id="l74" class='ln'>74</a></td><td><span class="br">}</span> <a id="74c3" class="tk">B_PWM_T</a>;</td></tr>
+<tr name="75" id="75">
+<td><a id="l75" class='ln'>75</a></td><td></td></tr>
+<tr name="76" id="76">
+<td><a id="l76" class='ln'>76</a></td><td><span class="ct">/* Constant parameters (default storage) */</span></td></tr>
+<tr name="77" id="77">
+<td><a id="l77" class='ln'>77</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="78" id="78">
+<td><a id="l78" class='ln'>78</a></td><td>  <span class="ct">/* Expression: rep_seq_y</span></td></tr>
+<tr name="79" id="79">
+<td><a id="l79" class='ln'>79</a></td><td><span class="ct">   * Referenced by: '&lt;S3&gt;/Look-Up Table1'</span></td></tr>
+<tr name="80" id="80">
+<td><a id="l80" class='ln'>80</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="81" id="81">
+<td><a id="l81" class='ln'>81</a></td><td>  <a id="81c3" class="tk">real_T</a> <a id="81c10" class="tk">LookUpTable1_tableData</a>[3];</td></tr>
+<tr name="82" id="82">
+<td><a id="l82" class='ln'>82</a></td><td></td></tr>
+<tr name="83" id="83">
+<td><a id="l83" class='ln'>83</a></td><td>  <span class="ct">/* Expression: rep_seq_t - min(rep_seq_t)</span></td></tr>
+<tr name="84" id="84">
+<td><a id="l84" class='ln'>84</a></td><td><span class="ct">   * Referenced by: '&lt;S3&gt;/Look-Up Table1'</span></td></tr>
+<tr name="85" id="85">
+<td><a id="l85" class='ln'>85</a></td><td><span class="ct">   */</span></td></tr>
+<tr name="86" id="86">
+<td><a id="l86" class='ln'>86</a></td><td>  <a id="86c3" class="tk">real_T</a> <a id="86c10" class="tk">LookUpTable1_bp01Data</a>[3];</td></tr>
+<tr name="87" id="87">
+<td><a id="l87" class='ln'>87</a></td><td><span class="br">}</span> <a id="87c3" class="tk">ConstP_PWM_T</a>;</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">/* External inputs (root inport signals with default storage) */</span></td></tr>
+<tr name="90" id="90">
+<td><a id="l90" class='ln'>90</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="91" id="91">
+<td><a id="l91" class='ln'>91</a></td><td>  <a id="91c3" class="tk">real_T</a> <a id="91c10" class="tk">*</a><a id="91c11" class="tk">pwm_info</a>[3];                 <span class="ct">/* '&lt;Root&gt;/pwm_info' */</span></td></tr>
+<tr name="92" id="92">
+<td><a id="l92" class='ln'>92</a></td><td><span class="br">}</span> <a id="92c3" class="tk">ExternalUPtrs_PWM_T</a>;</td></tr>
+<tr name="93" id="93">
+<td><a id="l93" class='ln'>93</a></td><td></td></tr>
+<tr name="94" id="94">
+<td><a id="l94" class='ln'>94</a></td><td><span class="ct">/* External outputs (root outports fed by signals with default storage) */</span></td></tr>
+<tr name="95" id="95">
+<td><a id="l95" class='ln'>95</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <span class="br">{</span></td></tr>
+<tr name="96" id="96">
+<td><a id="l96" class='ln'>96</a></td><td>  <a id="96c3" class="tk">real_T</a> <a id="96c10" class="tk">*</a><a id="96c11" class="tk">PWMb</a>[6];                     <span class="ct">/* '&lt;Root&gt;/PWMb' */</span></td></tr>
+<tr name="97" id="97">
+<td><a id="l97" class='ln'>97</a></td><td><span class="br">}</span> <a id="97c3" class="tk">ExtY_PWM_T</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">/* Constant parameters (default storage) */</span></td></tr>
+<tr name="100" id="100">
+<td><a id="l100" class='ln'>100</a></td><td><span class="kw">extern</span> <span class="kw">const</span> <a id="100c14" class="tk">ConstP_PWM_T</a> <a id="100c27" class="tk">PWM_ConstP</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">/*-</span></td></tr>
+<tr name="103" id="103">
+<td><a id="l103" class='ln'>103</a></td><td><span class="ct"> * These blocks were eliminated from the model due to optimizations:</span></td></tr>
+<tr name="104" id="104">
+<td><a id="l104" class='ln'>104</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="105" id="105">
+<td><a id="l105" class='ln'>105</a></td><td><span class="ct"> * Block '&lt;S3&gt;/Output' : Eliminate redundant signal conversion block</span></td></tr>
+<tr name="106" id="106">
+<td><a id="l106" class='ln'>106</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="107" id="107">
+<td><a id="l107" class='ln'>107</a></td><td></td></tr>
+<tr name="108" id="108">
+<td><a id="l108" class='ln'>108</a></td><td><span class="ct">/*-</span></td></tr>
+<tr name="109" id="109">
+<td><a id="l109" class='ln'>109</a></td><td><span class="ct"> * The generated code includes comments that allow you to trace directly</span></td></tr>
+<tr name="110" id="110">
+<td><a id="l110" class='ln'>110</a></td><td><span class="ct"> * back to the appropriate location in the model.  The basic format</span></td></tr>
+<tr name="111" id="111">
+<td><a id="l111" class='ln'>111</a></td><td><span class="ct"> * is &lt;system&gt;/block_name, where system is the system number (uniquely</span></td></tr>
+<tr name="112" id="112">
+<td><a id="l112" class='ln'>112</a></td><td><span class="ct"> * assigned by Simulink) and block_name is the name of the block.</span></td></tr>
+<tr name="113" id="113">
+<td><a id="l113" class='ln'>113</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="114" id="114">
+<td><a id="l114" class='ln'>114</a></td><td><span class="ct"> * Note that this particular code originates from a subsystem build,</span></td></tr>
+<tr name="115" id="115">
+<td><a id="l115" class='ln'>115</a></td><td><span class="ct"> * and has its own system numbers different from the parent model.</span></td></tr>
+<tr name="116" id="116">
+<td><a id="l116" class='ln'>116</a></td><td><span class="ct"> * Refer to the system hierarchy for this subsystem below, and use the</span></td></tr>
+<tr name="117" id="117">
+<td><a id="l117" class='ln'>117</a></td><td><span class="ct"> * MATLAB hilite_system command to trace the generated code back</span></td></tr>
+<tr name="118" id="118">
+<td><a id="l118" class='ln'>118</a></td><td><span class="ct"> * to the parent model.  For example,</span></td></tr>
+<tr name="119" id="119">
+<td><a id="l119" class='ln'>119</a></td><td><span class="ct"> *</span></td></tr>
+<tr name="120" id="120">
+<td><a id="l120" class='ln'>120</a></td><td><span class="ct"> * hilite_system('FOC_ADRC/PWM')    - opens subsystem FOC_ADRC/PWM</span></td></tr>
+<tr name="121" id="121">
+<td><a id="l121" class='ln'>121</a></td><td><span class="ct"> * hilite_system('FOC_ADRC/PWM/Kp') - opens and selects block Kp</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"> * Here is the system hierarchy for this model</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="ct"> * '&lt;Root&gt;' : 'FOC_ADRC'</span></td></tr>
+<tr name="126" id="126">
+<td><a id="l126" class='ln'>126</a></td><td><span class="ct"> * '&lt;S1&gt;'   : 'FOC_ADRC/PWM'</span></td></tr>
+<tr name="127" id="127">
+<td><a id="l127" class='ln'>127</a></td><td><span class="ct"> * '&lt;S2&gt;'   : 'FOC_ADRC/PWM/PWM Generator'</span></td></tr>
+<tr name="128" id="128">
+<td><a id="l128" class='ln'>128</a></td><td><span class="ct"> * '&lt;S3&gt;'   : 'FOC_ADRC/PWM/modulated wave'</span></td></tr>
+<tr name="129" id="129">
+<td><a id="l129" class='ln'>129</a></td><td><span class="ct"> * '&lt;S4&gt;'   : 'FOC_ADRC/PWM/PWM Generator/MATLAB Function1'</span></td></tr>
+<tr name="130" id="130">
+<td><a id="l130" class='ln'>130</a></td><td><span class="ct"> */</span></td></tr>
+<tr name="131" id="131">
+<td><a id="l131" class='ln'>131</a></td><td><span class="pp">#endif</span>                                 <span class="ct">/* RTW_HEADER_PWM_sf_h_ */</span></td></tr>
+<tr name="132" id="132">
+<td><a id="l132" class='ln'>132</a></td><td></td></tr>
+</table>
+</pre>
+</body>
+</html>

+ 144 - 0
Simulink/PWM_sfcn_rtw/html/PWM_sf_private_h.html

@@ -0,0 +1,144 @@
+<!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"> * PWM_sf_private.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 generation for model "PWM_sf".</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.825</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 source code generated on : Fri Apr 14 12:53:29 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: rtwsfcn.tlc</span></td></tr>
+<tr name="11" id="11">
+<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
+<tr name="12" id="12">
+<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * Embedded hardware selection: ARM Compatible-&gt;ARM Cortex-M</span></td></tr>
+<tr name="13" id="13">
+<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> * Emulation hardware selection:</span></td></tr>
+<tr name="14" id="14">
+<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> *    Differs from embedded hardware (MATLAB Host)</span></td></tr>
+<tr name="15" id="15">
+<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Code generation objectives:</span></td></tr>
+<tr name="16" id="16">
+<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> *    1. Execution efficiency</span></td></tr>
+<tr name="17" id="17">
+<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> *    2. RAM efficiency</span></td></tr>
+<tr name="18" id="18">
+<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
+<tr name="19" id="19">
+<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> */</span></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="pp">#ifndef</span> <a id="21c9" class="tk">RTW_HEADER_PWM_sf_private_h_</a></td></tr>
+<tr name="22" id="22">
+<td><a id="l22" class='ln'>22</a></td><td><span class="pp">#define</span> <a id="22c9" class="tk">RTW_HEADER_PWM_sf_private_h_</a></td></tr>
+<tr name="23" id="23">
+<td><a id="l23" class='ln'>23</a></td><td><span class="pp">#include "rtwtypes.h"</span></td></tr>
+<tr name="24" id="24">
+<td><a id="l24" class='ln'>24</a></td><td><span class="pp">#include "multiword_types.h"</span></td></tr>
+<tr name="25" id="25">
+<td><a id="l25" class='ln'>25</a></td><td><span class="pp">#if</span> <a id="25c5" class="tk">!</a><a id="25c6" class="tk">defined</a>(<a id="25c14" class="tk">ss_VALIDATE_MEMORY</a>)</td></tr>
+<tr name="26" id="26">
+<td><a id="l26" class='ln'>26</a></td><td><span class="pp">#define</span> <a id="26c9" class="tk">ss_VALIDATE_MEMORY</a>(<a id="26c28" class="tk">S</a>, <a id="26c31" class="tk">ptr</a>)     <span class="kw">if</span>(<a id="26c43" class="tk">!</a>(<a id="26c45" class="tk">ptr</a>)) <span class="br">{\</span></td></tr>
+<tr name="27" id="27">
+<td><a id="l27" class='ln'>27</a></td><td> <a id="27c53" class="tk">ssSetErrorStatus</a>(<a id="27c70" class="tk">S</a>, <a id="27c73" class="tk">RT_MEMORY_ALLOCATION_ERROR</a>);\</td></tr>
+<tr name="28" id="28">
+<td><a id="l28" class='ln'>28</a></td><td> <span class="br">}</span></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></td></tr>
+<tr name="31" id="31">
+<td><a id="l31" class='ln'>31</a></td><td><span class="pp">#if</span> <a id="31c5" class="tk">!</a><a id="31c6" class="tk">defined</a>(<a id="31c14" class="tk">rt_FREE</a>)</td></tr>
+<tr name="32" id="32">
+<td><a id="l32" class='ln'>32</a></td><td><span class="pp">#if</span> <a id="32c5" class="tk">!</a><a id="32c6" class="tk">defined</a>(<a id="32c14" class="tk">_WIN32</a>)</td></tr>
+<tr name="33" id="33">
+<td><a id="l33" class='ln'>33</a></td><td><span class="pp">#define</span> <a id="33c9" class="tk">rt_FREE</a>(<a id="33c17" class="tk">ptr</a>)                   <span class="kw">if</span>((<a id="33c44" class="tk">ptr</a>) <a id="33c49" class="tk">!=</a> (<a id="33c53" class="tk">NULL</a>)) <span class="br">{\</span></td></tr>
+<tr name="34" id="34">
+<td><a id="l34" class='ln'>34</a></td><td> <a id="34c62" class="tk">free</a>((<a id="34c68" class="tk">ptr</a>));\</td></tr>
+<tr name="35" id="35">
+<td><a id="l35" class='ln'>35</a></td><td> (<a id="35c76" class="tk">ptr</a>) = (<a id="35c84" class="tk">NULL</a>);\</td></tr>
+<tr name="36" id="36">
+<td><a id="l36" class='ln'>36</a></td><td> <span class="br">}</span></td></tr>
+<tr name="37" id="37">
+<td><a id="l37" class='ln'>37</a></td><td><span class="pp">#else</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">/* Visual and other windows compilers declare free without const */</span></td></tr>
+<tr name="40" id="40">
+<td><a id="l40" class='ln'>40</a></td><td><span class="pp">#define</span> <a id="40c9" class="tk">rt_FREE</a>(<a id="40c17" class="tk">ptr</a>)                   <span class="kw">if</span>((<a id="40c44" class="tk">ptr</a>) <a id="40c49" class="tk">!=</a> (<a id="40c53" class="tk">NULL</a>)) <span class="br">{\</span></td></tr>
+<tr name="41" id="41">
+<td><a id="l41" class='ln'>41</a></td><td> <a id="41c62" class="tk">free</a>((<span class="kw">void</span> <a id="41c73" class="tk">*</a>)(<a id="41c76" class="tk">ptr</a>));\</td></tr>
+<tr name="42" id="42">
+<td><a id="l42" class='ln'>42</a></td><td> (<a id="42c84" class="tk">ptr</a>) = (<a id="42c92" class="tk">NULL</a>);\</td></tr>
+<tr name="43" id="43">
+<td><a id="l43" class='ln'>43</a></td><td> <span class="br">}</span></td></tr>
+<tr name="44" id="44">
+<td><a id="l44" class='ln'>44</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="45" id="45">
+<td><a id="l45" class='ln'>45</a></td><td><span class="pp">#endif</span></td></tr>
+<tr name="46" id="46">
+<td><a id="l46" class='ln'>46</a></td><td></td></tr>
+<tr name="47" id="47">
+<td><a id="l47" class='ln'>47</a></td><td><a id="47c1" class="tk">real_T</a> <a id="47c8" class="tk">PWM_sf_rt_TDelayInterpolate</a>(</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">tMinusDelay</a>,                 <span class="ct">/* tMinusDelay = currentSimTime - 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">tStart</a>,</td></tr>
+<tr name="50" id="50">
+<td><a id="l50" class='ln'>50</a></td><td>  <a id="50c3" class="tk">real_T</a> <a id="50c10" class="tk">*</a><a id="50c11" class="tk">tBuf</a>,</td></tr>
+<tr name="51" id="51">
+<td><a id="l51" class='ln'>51</a></td><td>  <a id="51c3" class="tk">real_T</a> <a id="51c10" class="tk">*</a><a id="51c11" class="tk">uBuf</a>,</td></tr>
+<tr name="52" id="52">
+<td><a id="l52" class='ln'>52</a></td><td>  <a id="52c3" class="tk">int_T</a> <a id="52c9" class="tk">bufSz</a>,</td></tr>
+<tr name="53" id="53">
+<td><a id="l53" class='ln'>53</a></td><td>  <a id="53c3" class="tk">int_T</a> <a id="53c9" class="tk">*</a><a id="53c10" class="tk">lastIdx</a>,</td></tr>
+<tr name="54" id="54">
+<td><a id="l54" class='ln'>54</a></td><td>  <a id="54c3" class="tk">int_T</a> <a id="54c9" class="tk">oldestIdx</a>,</td></tr>
+<tr name="55" id="55">
+<td><a id="l55" class='ln'>55</a></td><td>  <a id="55c3" class="tk">int_T</a> <a id="55c9" class="tk">newIdx</a>,</td></tr>
+<tr name="56" id="56">
+<td><a id="l56" class='ln'>56</a></td><td>  <a id="56c3" class="tk">real_T</a> <a id="56c10" class="tk">initOutput</a>,</td></tr>
+<tr name="57" id="57">
+<td><a id="l57" class='ln'>57</a></td><td>  <a id="57c3" class="tk">boolean_T</a> <a id="57c13" class="tk">discrete</a>,</td></tr>
+<tr name="58" id="58">
+<td><a id="l58" class='ln'>58</a></td><td>  <a id="58c3" class="tk">boolean_T</a> <a id="58c13" class="tk">minorStepAndTAtLastMajorOutput</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="kw">extern</span> <a id="60c8" class="tk">real_T</a> <a id="60c15" class="tk">PWM_look1_binlx</a>(<a id="60c31" class="tk">real_T</a> <a id="60c38" class="tk">u0</a>, <span class="kw">const</span> <a id="60c48" class="tk">real_T</a> <a id="60c55" class="tk">bp0</a>[], <span class="kw">const</span> <a id="60c68" class="tk">real_T</a> <a id="60c75" class="tk">table</a>[],</td></tr>
+<tr name="61" id="61">
+<td><a id="l61" class='ln'>61</a></td><td>  <a id="61c3" class="tk">uint32_T</a> <a id="61c12" class="tk">maxIndex</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="pp">#endif</span>                                 <span class="ct">/* RTW_HEADER_PWM_sf_private_h_ */</span></td></tr>
+<tr name="64" id="64">
+<td><a id="l64" class='ln'>64</a></td><td></td></tr>
+</table>
+</pre>
+</body>
+</html>

+ 129 - 0
Simulink/PWM_sfcn_rtw/html/PWM_sf_subsystems.html

@@ -0,0 +1,129 @@
+<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 PWM
+</title>
+
+</head>
+<body onload="try {if (top) {if (top.rtwPageOnLoad) top.rtwPageOnLoad('rtwIdSubsystem'); else local_onload();}} catch(err) {};">
+<h1>
+Non-virtual subsystems in PWM
+</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">
+<table class="AltRow FirstColumn" cellspacing="0">
+<tr class="heading">
+<th align="left" valign="top">
+<b>
+Subsystem
+</b>
+
+</th>
+<th align="left" valign="top">
+<b>
+Reuse Setting
+</b>
+
+</th>
+<th align="left" valign="top">
+<b>
+Reuse Outcome
+</b>
+
+</th>
+<th align="left" valign="top">
+<b>
+Outcome Diagnostic
+</b>
+
+</th>
+
+</tr>
+<tr class="even">
+<td align="left" valign="top">
+&lt;S4&gt;
+</td>
+<td align="left" valign="top">
+Auto
+</td>
+<td align="left" valign="top">
+Inline
+</td>
+<td align="left" valign="top">
+<FONT COLOR="green">normal</FONT>
+</td>
+
+</tr>
+
+</table>
+
+</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>

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov