From 536aba778715f57f057cc91e6a236333bd2ebd16 Mon Sep 17 00:00:00 2001 From: EmanuelFeru Date: Wed, 26 Jun 2019 19:28:57 +0200 Subject: [PATCH] clean-up temporary files --- .../BLDC_controller.bat | 12 - .../BLDC_controller_ert_rtw/BLDC_controller.c | 696 ------ .../BLDC_controller_ert_rtw/BLDC_controller.h | 256 -- .../BLDC_controller.mk | 441 ---- .../BLDC_controller_data.c | 101 - .../BLDC_controller_ref.rsp | 0 .../BLDC_controller_ert_rtw/buildInfo.mat | Bin 22986 -> 0 bytes .../BLDC_controller_ert_rtw/codeInfo.mat | Bin 8435 -> 0 bytes .../codedescriptor.dmr | Bin 499712 -> 0 bytes 01_Matlab/BLDC_controller_ert_rtw/defines.txt | 13 - 01_Matlab/BLDC_controller_ert_rtw/ert_main.c | 201 -- .../html/BLDC_controller_c.html | 716 ------ .../html/BLDC_controller_codegen_rpt.html | 27 - .../html/BLDC_controller_contents.html | 298 --- .../html/BLDC_controller_data_c.html | 121 - .../html/BLDC_controller_h.html | 276 --- .../html/BLDC_controller_interface.html | 788 ------- .../html/BLDC_controller_metrics.html | 913 -------- .../html/BLDC_controller_replacements.html | 37 - .../html/BLDC_controller_sid_map.js | 463 ---- .../html/BLDC_controller_subsystems.html | 220 -- .../html/BLDC_controller_survey.html | 189 -- .../html/BLDC_controller_trace.html | 39 - .../html/BLDC_controller_traceInfo.js | 1244 ---------- .../html/codeMetrics.mat | Bin 5453 -> 0 bytes .../html/contents_file.tmp | 9 - .../BLDC_controller_ert_rtw/html/define.js | 78 - .../html/ert_main_c.html | 221 -- .../BLDC_controller_ert_rtw/html/help.png | Bin 3683 -> 0 bytes .../html/hilite_warning.png | Bin 3014 -> 0 bytes .../BLDC_controller_ert_rtw/html/inspect.html | 33 - .../BLDC_controller_ert_rtw/html/metrics.js | 32 - .../BLDC_controller_ert_rtw/html/nav.html | 14 - .../html/navToolbar.html | 69 - .../html/rtwcodemetricsreport_utils.js | 49 - .../BLDC_controller_ert_rtw/html/rtwhilite.js | 2049 ----------------- .../BLDC_controller_ert_rtw/html/rtwmsg.html | 7 - .../html/rtwreport.css | 257 --- .../html/rtwreport_utils.js | 92 - .../BLDC_controller_ert_rtw/html/rtwshrink.js | 202 -- .../html/rtwtypes_h.html | 128 - .../BLDC_controller_ert_rtw/html/search.js | 559 ----- .../html/traceInfo.mat | Bin 47070 -> 0 bytes .../html/webview_codegen.js | 6 - .../BLDC_controller_ert_rtw/modelsources.txt | 1 - .../BLDC_controller_ert_rtw/rtw_proj.tmw | 4 - 01_Matlab/BLDC_controller_ert_rtw/rtwtypes.h | 108 - .../rtwtypeschksum.mat | Bin 1436 -> 0 bytes 48 files changed, 10969 deletions(-) delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/BLDC_controller.bat delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/BLDC_controller.c delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/BLDC_controller.h delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/BLDC_controller.mk delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/BLDC_controller_data.c delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/BLDC_controller_ref.rsp delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/buildInfo.mat delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/codeInfo.mat delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/codedescriptor.dmr delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/defines.txt delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/ert_main.c delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_c.html delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_codegen_rpt.html delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_contents.html delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_data_c.html delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_h.html delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_interface.html delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_metrics.html delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_replacements.html delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_sid_map.js delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_subsystems.html delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_survey.html delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_trace.html delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_traceInfo.js delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/codeMetrics.mat delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/contents_file.tmp delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/define.js delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/ert_main_c.html delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/help.png delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/hilite_warning.png delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/inspect.html delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/metrics.js delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/nav.html delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/navToolbar.html delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/rtwcodemetricsreport_utils.js delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/rtwhilite.js delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/rtwmsg.html delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/rtwreport.css delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/rtwreport_utils.js delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/rtwshrink.js delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/rtwtypes_h.html delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/search.js delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/traceInfo.mat delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/html/webview_codegen.js delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/modelsources.txt delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/rtw_proj.tmw delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/rtwtypes.h delete mode 100644 01_Matlab/BLDC_controller_ert_rtw/rtwtypeschksum.mat diff --git a/01_Matlab/BLDC_controller_ert_rtw/BLDC_controller.bat b/01_Matlab/BLDC_controller_ert_rtw/BLDC_controller.bat deleted file mode 100644 index 6dab4e0..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/BLDC_controller.bat +++ /dev/null @@ -1,12 +0,0 @@ -@if not "%MINGW_ROOT%" == "" (@set "PATH=%PATH%;%MINGW_ROOT%") - -cd . - -if "%1"=="" ("C:\PROGRA~1\MATLAB\R2017b\bin\win64\gmake" -f BLDC_controller.mk all) else ("C:\PROGRA~1\MATLAB\R2017b\bin\win64\gmake" -f BLDC_controller.mk %1) -@if errorlevel 1 goto error_exit - -exit /B 0 - -:error_exit -echo The make command returned an error of %errorlevel% -An_error_occurred_during_the_call_to_make diff --git a/01_Matlab/BLDC_controller_ert_rtw/BLDC_controller.c b/01_Matlab/BLDC_controller_ert_rtw/BLDC_controller.c deleted file mode 100644 index b0095fc..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/BLDC_controller.c +++ /dev/null @@ -1,696 +0,0 @@ -/* - * Academic License - for use in teaching, academic research, and meeting - * course requirements at degree granting institutions only. Not for - * government, commercial, or other organizational use. - * - * File: BLDC_controller.c - * - * Code generated for Simulink model 'BLDC_controller'. - * - * Model version : 1.883 - * Simulink Coder version : 8.13 (R2017b) 24-Jul-2017 - * C/C++ source code generated on : Tue Jun 11 21:14:57 2019 - * - * Target selection: ert.tlc - * Embedded hardware selection: ARM Compatible->ARM Cortex - * Emulation hardware selection: - * Differs from embedded hardware (MATLAB Host) - * Code generation objectives: - * 1. Execution efficiency - * 2. RAM efficiency - * Validation result: Not run - */ - -#include "BLDC_controller.h" -#ifndef UCHAR_MAX -#include -#endif - -#if ( UCHAR_MAX != (0xFFU) ) || ( SCHAR_MAX != (0x7F) ) -#error Code was generated for compiler with different sized uchar/char. \ -Consider adjusting Test hardware word size settings on the \ -Hardware Implementation pane to match your compiler word sizes as \ -defined in limits.h of the compiler. Alternatively, you can \ -select the Test hardware is the same as production hardware option and \ -select the Enable portable word sizes option on the Code Generation > \ -Verification pane for ERT based targets, which will disable the \ -preprocessor word size checks. -#endif - -#if ( USHRT_MAX != (0xFFFFU) ) || ( SHRT_MAX != (0x7FFF) ) -#error Code was generated for compiler with different sized ushort/short. \ -Consider adjusting Test hardware word size settings on the \ -Hardware Implementation pane to match your compiler word sizes as \ -defined in limits.h of the compiler. Alternatively, you can \ -select the Test hardware is the same as production hardware option and \ -select the Enable portable word sizes option on the Code Generation > \ -Verification pane for ERT based targets, which will disable the \ -preprocessor word size checks. -#endif - -#if ( UINT_MAX != (0xFFFFFFFFU) ) || ( INT_MAX != (0x7FFFFFFF) ) -#error Code was generated for compiler with different sized uint/int. \ -Consider adjusting Test hardware word size settings on the \ -Hardware Implementation pane to match your compiler word sizes as \ -defined in limits.h of the compiler. Alternatively, you can \ -select the Test hardware is the same as production hardware option and \ -select the Enable portable word sizes option on the Code Generation > \ -Verification pane for ERT based targets, which will disable the \ -preprocessor word size checks. -#endif - -#if ( ULONG_MAX != (0xFFFFFFFFU) ) || ( LONG_MAX != (0x7FFFFFFF) ) -#error Code was generated for compiler with different sized ulong/long. \ -Consider adjusting Test hardware word size settings on the \ -Hardware Implementation pane to match your compiler word sizes as \ -defined in limits.h of the compiler. Alternatively, you can \ -select the Test hardware is the same as production hardware option and \ -select the Enable portable word sizes option on the Code Generation > \ -Verification pane for ERT based targets, which will disable the \ -preprocessor word size checks. -#endif - -#if 0 - -/* Skip this size verification because of preprocessor limitation */ -#if ( ULLONG_MAX != (0xFFFFFFFFFFFFFFFFULL) ) || ( LLONG_MAX != (0x7FFFFFFFFFFFFFFFLL) ) -#error Code was generated for compiler with different sized ulong_long/long_long. \ -Consider adjusting Test hardware word size settings on the \ -Hardware Implementation pane to match your compiler word sizes as \ -defined in limits.h of the compiler. Alternatively, you can \ -select the Test hardware is the same as production hardware option and \ -select the Enable portable word sizes option on the Code Generation > \ -Verification pane for ERT based targets, which will disable the \ -preprocessor word size checks. -#endif -#endif - -uint8_T plook_u8s32u32n31_evenc_s(int32_T u, int32_T bp0, uint32_T bpSpace, - uint32_T maxIndex, uint32_T *fraction); -int16_T intrp1d_s16s32s32u8u32n31l_s(uint8_T bpIndex, uint32_T frac, const - int16_T table[]); -int32_T div_nde_s32_floor(int32_T numerator, int32_T denominator); -uint8_T plook_u8s32u32n31_evenc_s(int32_T u, int32_T bp0, uint32_T bpSpace, - uint32_T maxIndex, uint32_T *fraction) -{ - uint8_T bpIndex; - uint32_T uAdjust; - uint32_T fbpIndex; - - /* Prelookup - Index and Fraction - Index Search method: 'even' - Extrapolation method: 'Clip' - 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' - Rounding mode: 'simplest' - */ - if (u <= bp0) { - bpIndex = 0U; - *fraction = 0U; - } else { - uAdjust = (uint32_T)u - bp0; - fbpIndex = uAdjust / bpSpace; - if (fbpIndex < maxIndex) { - bpIndex = (uint8_T)fbpIndex; - *fraction = (uint32_T)(((uint64_T)(uAdjust - bpIndex * bpSpace) << 31) / - bpSpace); - } else { - bpIndex = (uint8_T)(maxIndex - 1U); - *fraction = 2147483648U; - } - } - - return bpIndex; -} - -int16_T intrp1d_s16s32s32u8u32n31l_s(uint8_T bpIndex, uint32_T frac, const - int16_T table[]) -{ - uint32_T offset_0d; - - /* Interpolation 1-D - Interpolation method: 'Linear' - Use last breakpoint for index at or above upper limit: 'off' - Rounding mode: 'simplest' - Overflow mode: 'wrapping' - */ - offset_0d = bpIndex; - return (int16_T)((int16_T)(((int64_T)(table[offset_0d + 1U] - table[offset_0d]) - * frac) >> 31) + table[offset_0d]); -} - -int32_T div_nde_s32_floor(int32_T numerator, int32_T denominator) -{ - return (((numerator < 0) != (denominator < 0)) && (numerator % denominator != - 0) ? -1 : 0) + numerator / denominator; -} - -/* Model step function */ -void BLDC_controller_step(RT_MODEL *const rtM) -{ - P *rtP = ((P *) rtM->defaultParam); - DW *rtDW = ((DW *) rtM->dwork); - ExtU *rtU = (ExtU *) rtM->inputs; - ExtY *rtY = (ExtY *) rtM->outputs; - uint8_T rtb_Sum; - int32_T rtb_Abs1; - uint8_T rtb_BitwiseOperator; - int32_T rtb_Sum2; - int16_T rtb_Abs2; - int16_T rtb_Sum1_a; - int32_T rtb_Abs5; - int8_T rtAction; - int8_T rtb_Sum2_h; - uint32_T rtb_r_phaAdvDC_XA_o2; - int32_T rtb_Switch1_idx_1; - - /* Outputs for Atomic SubSystem: '/BLDC_controller' */ - /* Sum: '/Sum' incorporates: - * Gain: '/g_Ha' - * Gain: '/g_Hb' - * Inport: '/b_hallA ' - * Inport: '/b_hallB' - * Inport: '/b_hallC' - */ - rtb_Sum = (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)(rtU->b_hallA << 2) - + (uint8_T)(rtU->b_hallB << 1)) + rtU->b_hallC); - - /* Abs: '/Abs1' incorporates: - * Inport: '/r_DC' - */ - if (rtU->r_DC < 0) { - rtb_Abs1 = -rtU->r_DC; - } else { - rtb_Abs1 = rtU->r_DC; - } - - /* End of Abs: '/Abs1' */ - - /* S-Function (sfix_bitop): '/Bitwise Operator' incorporates: - * Inport: '/b_hallA ' - * Inport: '/b_hallB' - * Inport: '/b_hallC' - * UnitDelay: '/UnitDelay' - * UnitDelay: '/UnitDelay1' - * UnitDelay: '/UnitDelay2' - */ - rtb_BitwiseOperator = (uint8_T)(rtU->b_hallA ^ rtU->b_hallB ^ rtU->b_hallC ^ - rtDW->UnitDelay_DSTATE ^ rtDW->UnitDelay1_DSTATE_i ^ - rtDW->UnitDelay2_DSTATE_h); - - /* If: '/If1' incorporates: - * Constant: '/Constant6' - * Constant: '/Constant1' - * Constant: '/Constant23' - * If: '/If2' - * Inport: '/z_counterRawPrev' - * RelationalOperator: '/Relational Operator1' - * Sum: '/Sum1' - * Switch: '/Switch1' - * Switch: '/Switch2' - * UnitDelay: '/UnitDelay1' - * UnitDelay: '/UnitDelay1' - */ - if (rtb_BitwiseOperator != 0) { - /* Outputs for IfAction SubSystem: '/F01_03_Direction_Detection' incorporates: - * ActionPort: '/Action Port' - */ - /* UnitDelay: '/UnitDelay1' */ - rtDW->UnitDelay1 = rtDW->Switch2; - - /* Sum: '/Sum2' incorporates: - * Constant: '/vec_hallToPos' - * Selector: '/Selector' - * UnitDelay: '/UnitDelay2' - */ - rtb_Sum2_h = (int8_T)(rtConstP.vec_hallToPos_Value[rtb_Sum] - - rtDW->UnitDelay2_DSTATE_i); - - /* Switch: '/Switch2' incorporates: - * Constant: '/Constant20' - * Constant: '/Constant23' - * Constant: '/Constant24' - * Constant: '/Constant8' - * Logic: '/Logical Operator3' - * RelationalOperator: '/Relational Operator1' - * RelationalOperator: '/Relational Operator6' - */ - if ((rtb_Sum2_h == 1) || (rtb_Sum2_h == -5)) { - rtDW->Switch2 = 1; - } else { - rtDW->Switch2 = -1; - } - - /* End of Switch: '/Switch2' */ - - /* Update for UnitDelay: '/UnitDelay2' incorporates: - * Constant: '/vec_hallToPos' - * Selector: '/Selector' - */ - rtDW->UnitDelay2_DSTATE_i = rtConstP.vec_hallToPos_Value[rtb_Sum]; - - /* End of Outputs for SubSystem: '/F01_03_Direction_Detection' */ - rtb_Abs2 = 1; - - /* Outputs for IfAction SubSystem: '/Counter_Hold_and_Error_Calculation' incorporates: - * ActionPort: '/Action Port' - */ - rtDW->z_counterRawPrev = rtDW->UnitDelay1_DSTATE_c; - - /* Sum: '/Sum4' incorporates: - * Constant: '/Constant6' - * Constant: '/Constant23' - * Inport: '/z_counterRawPrev' - * Sum: '/Sum1' - * UnitDelay: '/UnitDelay1' - * UnitDelay: '/z_counter2' - */ - rtDW->Sum4 = (int16_T)(rtDW->z_counterRawPrev - rtDW->z_counter2_DSTATE); - - /* Update for UnitDelay: '/z_counter2' */ - rtDW->z_counter2_DSTATE = rtDW->z_counterRawPrev; - - /* End of Outputs for SubSystem: '/Counter_Hold_and_Error_Calculation' */ - } else { - if (rtDW->UnitDelay1_DSTATE < rtP->z_maxCntRst) { - /* Switch: '/Switch2' incorporates: - * UnitDelay: '/UnitDelay1' - */ - rtb_Abs2 = rtDW->UnitDelay1_DSTATE; - } else { - /* Switch: '/Switch2' incorporates: - * Constant: '/Constant1' - */ - rtb_Abs2 = rtP->z_maxCntRst; - } - - rtb_Abs2++; - } - - /* End of If: '/If1' */ - - /* Sum: '/Sum1' */ - rtb_Sum1_a = rtb_Abs2; - - /* Switch: '/Switch1' incorporates: - * Constant: '/Constant1' - * Constant: '/cf_spdCoef' - * Constant: '/z_maxCntRst' - * Logic: '/Logical Operator1' - * Product: '/Divide4' - * RelationalOperator: '/Relational Operator2' - * RelationalOperator: '/Relational Operator5' - * Sum: '/Sum1' - */ - if ((rtb_Abs2 > rtP->z_maxCntRst) || (rtDW->Switch2 != rtDW->UnitDelay1)) { - rtb_Sum2 = 0; - } else { - rtb_Sum2 = rtP->cf_speedCoef * rtDW->Switch2 / rtDW->z_counterRawPrev; - } - - /* End of Switch: '/Switch1' */ - - /* Product: '/Divide2' incorporates: - * Constant: '/Constant2' - * Constant: '/Constant3' - * Constant: '/cf_speedFilt' - * Product: '/Divide1' - * Product: '/Divide3' - * Sum: '/Sum1' - * Sum: '/Sum2' - * UnitDelay: '/UnitDelay2' - */ - rtb_Sum2 = ((100 - rtP->cf_speedFilt) * rtDW->UnitDelay2_DSTATE + rtb_Sum2 * - rtP->cf_speedFilt) / 100; - - /* Abs: '/Abs5' */ - if (rtb_Sum2 < 0) { - rtb_Abs5 = -rtb_Sum2; - } else { - rtb_Abs5 = rtb_Sum2; - } - - /* End of Abs: '/Abs5' */ - - /* Relay: '/n_commDeacv' */ - if (rtb_Abs5 >= rtP->n_commDeacvHi) { - rtDW->n_commDeacv_Mode = true; - } else { - if (rtb_Abs5 <= rtP->n_commAcvLo) { - rtDW->n_commDeacv_Mode = false; - } - } - - /* Abs: '/Abs2' */ - if (rtDW->Sum4 < 0) { - rtb_Abs2 = (int16_T)-rtDW->Sum4; - } else { - rtb_Abs2 = rtDW->Sum4; - } - - /* End of Abs: '/Abs2' */ - - /* Relay: '/dz_counter' */ - if (rtb_Abs2 >= rtP->dz_counterHi) { - rtDW->dz_counter_Mode = true; - } else { - if (rtb_Abs2 <= rtP->dz_counterLo) { - rtDW->dz_counter_Mode = false; - } - } - - /* If: '/If1' incorporates: - * Constant: '/z_ctrlTypSel1' - */ - rtb_Sum2_h = rtDW->If1_ActiveSubsystem; - rtAction = -1; - if (rtP->z_ctrlTypSel != 0) { - rtAction = 0; - } - - rtDW->If1_ActiveSubsystem = rtAction; - if ((rtb_Sum2_h != rtAction) && (rtb_Sum2_h == 0)) { - /* Disable for Outport: '/a_elecAngleAdv' */ - rtDW->Switch_PhaAdv = 0; - - /* Disable for Outport: '/a_elecAngle' incorporates: - * Outport: '/a_elecAngle' - */ - rtY->a_elecAngle = 0; - } - - if (rtAction == 0) { - /* Outputs for IfAction SubSystem: '/F02_Electrical_Angle_Calculation' incorporates: - * ActionPort: '/Action Port' - */ - /* Switch: '/Switch3' incorporates: - * Constant: '/vec_hallToPos' - * Constant: '/Constant16' - * Gain: '/g_Ha' - * Gain: '/g_Hb' - * Inport: '/b_hallA ' - * Inport: '/b_hallB' - * Inport: '/b_hallC' - * RelationalOperator: '/Relational Operator7' - * Selector: '/Selector' - * Sum: '/Sum' - * Sum: '/Sum1' - */ - if (rtDW->Switch2 == 1) { - rtb_Sum2_h = rtConstP.vec_hallToPos_Value[rtb_Sum]; - } else { - rtb_Sum2_h = (int8_T)(rtConstP.vec_hallToPos_Value[(uint8_T)((uint32_T) - (uint8_T)((uint32_T)(uint8_T)(rtU->b_hallA << 2) + (uint8_T) - (rtU->b_hallB << 1)) + rtU->b_hallC)] + 1); - } - - /* End of Switch: '/Switch3' */ - - /* Outport: '/a_elecAngle' incorporates: - * Constant: '/a_elecAngle1' - * Product: '/Divide4' - * Product: '/Divide5' - * Product: '/Product6' - * Sum: '/Sum2' - */ - rtY->a_elecAngle = 60 * rtb_Sum1_a / rtDW->z_counterRawPrev * rtDW->Switch2 - + rtb_Sum2_h * 60; - - /* Switch: '/Switch_PhaAdv' incorporates: - * Constant: '/a_elecPeriod1' - * Constant: '/n_motPhaAdvEna' - * Logic: '/Logical Operator2' - * Outport: '/a_elecAngle' - * RelationalOperator: '/Relational Operator4' - */ - if (rtP->b_phaAdvEna && (rtb_Abs5 > rtP->n_motPhaAdvEna)) { - /* PreLookup: '/r_phaAdvDC_XA' */ - rtb_BitwiseOperator = plook_u8s32u32n31_evenc_s(rtb_Abs1, - rtP->r_phaAdvDC_XA[0], (uint32_T)rtP->r_phaAdvDC_XA[1] - - rtP->r_phaAdvDC_XA[0], 10U, &rtb_r_phaAdvDC_XA_o2); - - /* Interpolation_n-D: '/a_phaAdv_M2' */ - rtb_Abs2 = intrp1d_s16s32s32u8u32n31l_s(rtb_BitwiseOperator, - rtb_r_phaAdvDC_XA_o2, rtP->a_phaAdv_M1); - - /* Sum: '/Sum3' incorporates: - * Outport: '/a_elecAngle' - * Product: '/Product2' - */ - rtb_Abs5 = (int16_T)(rtb_Abs2 * rtDW->Switch2) + rtY->a_elecAngle; - - /* Math: '/Math Function' */ - rtDW->Switch_PhaAdv = rtb_Abs5 - div_nde_s32_floor(rtb_Abs5, 360) * 360; - } else { - rtDW->Switch_PhaAdv = rtY->a_elecAngle; - } - - /* End of Switch: '/Switch_PhaAdv' */ - /* End of Outputs for SubSystem: '/F02_Electrical_Angle_Calculation' */ - } - - /* End of If: '/If1' */ - - /* SwitchCase: '/Switch Case' incorporates: - * Constant: '/z_ctrlTypSel1' - */ - switch (rtP->z_ctrlTypSel) { - case 1: - /* Outputs for IfAction SubSystem: '/F03_01_Pure_Trapezoidal_Method' incorporates: - * ActionPort: '/Action Port' - */ - /* PreLookup: '/a_trapElecAngle_XA' */ - rtb_BitwiseOperator = plook_u8s32u32n31_evenc_s(rtDW->Switch_PhaAdv, 0, 60U, - 6U, &rtb_r_phaAdvDC_XA_o2); - - /* Interpolation_n-D: '/r_trapPhaA_M1' */ - rtDW->Merge = intrp1d_s16s32s32u8u32n31l_s(rtb_BitwiseOperator, - rtb_r_phaAdvDC_XA_o2, rtConstP.r_trapPhaA_M1_Table); - - /* Interpolation_n-D: '/r_trapPhaB_M1' */ - rtDW->Merge1 = intrp1d_s16s32s32u8u32n31l_s(rtb_BitwiseOperator, - rtb_r_phaAdvDC_XA_o2, rtConstP.r_trapPhaB_M1_Table); - - /* Interpolation_n-D: '/r_trapPhaC_M1' */ - rtDW->Merge2 = intrp1d_s16s32s32u8u32n31l_s(rtb_BitwiseOperator, - rtb_r_phaAdvDC_XA_o2, rtConstP.r_trapPhaC_M1_Table); - - /* End of Outputs for SubSystem: '/F03_01_Pure_Trapezoidal_Method' */ - break; - - case 2: - /* Outputs for IfAction SubSystem: '/F03_02_Sinusoidal_Method' incorporates: - * ActionPort: '/Action Port' - */ - /* PreLookup: '/a_sinElecAngle_XA' */ - rtb_BitwiseOperator = plook_u8s32u32n31_evenc_s(rtDW->Switch_PhaAdv, 0, 10U, - 36U, &rtb_r_phaAdvDC_XA_o2); - - /* Interpolation_n-D: '/r_sinPhaA_M1' */ - rtDW->Merge = intrp1d_s16s32s32u8u32n31l_s(rtb_BitwiseOperator, - rtb_r_phaAdvDC_XA_o2, rtConstP.r_sinPhaA_M1_Table); - - /* Interpolation_n-D: '/r_sinPhaB_M1' */ - rtDW->Merge1 = intrp1d_s16s32s32u8u32n31l_s(rtb_BitwiseOperator, - rtb_r_phaAdvDC_XA_o2, rtConstP.r_sinPhaB_M1_Table); - - /* Interpolation_n-D: '/r_sinPhaC_M1' */ - rtDW->Merge2 = intrp1d_s16s32s32u8u32n31l_s(rtb_BitwiseOperator, - rtb_r_phaAdvDC_XA_o2, rtConstP.r_sinPhaC_M1_Table); - - /* End of Outputs for SubSystem: '/F03_02_Sinusoidal_Method' */ - break; - - case 3: - /* Outputs for IfAction SubSystem: '/F03_03_Sinusoidal3rd_Method' incorporates: - * ActionPort: '/Action Port' - */ - /* PreLookup: '/a_sinElecAngle_XA' */ - rtb_BitwiseOperator = plook_u8s32u32n31_evenc_s(rtDW->Switch_PhaAdv, 0, 10U, - 36U, &rtb_r_phaAdvDC_XA_o2); - - /* Interpolation_n-D: '/r_sin3PhaA_M1' */ - rtDW->Merge = intrp1d_s16s32s32u8u32n31l_s(rtb_BitwiseOperator, - rtb_r_phaAdvDC_XA_o2, rtConstP.r_sin3PhaA_M1_Table); - - /* Interpolation_n-D: '/r_sin3PhaB_M1' */ - rtDW->Merge1 = intrp1d_s16s32s32u8u32n31l_s(rtb_BitwiseOperator, - rtb_r_phaAdvDC_XA_o2, rtConstP.r_sin3PhaB_M1_Table); - - /* Interpolation_n-D: '/r_sin3PhaC_M1' */ - rtDW->Merge2 = intrp1d_s16s32s32u8u32n31l_s(rtb_BitwiseOperator, - rtb_r_phaAdvDC_XA_o2, rtConstP.r_sin3PhaC_M1_Table); - - /* End of Outputs for SubSystem: '/F03_03_Sinusoidal3rd_Method' */ - break; - } - - /* End of SwitchCase: '/Switch Case' */ - - /* Signum: '/Sign' */ - if (rtDW->Switch2 < 0) { - rtb_Sum2_h = -1; - } else { - rtb_Sum2_h = (int8_T)(rtDW->Switch2 > 0); - } - - /* End of Signum: '/Sign' */ - - /* Signum: '/Sign1' incorporates: - * Inport: '/r_DC' - */ - if (rtU->r_DC < 0) { - rtb_Abs5 = -1; - } else { - rtb_Abs5 = (rtU->r_DC > 0); - } - - /* End of Signum: '/Sign1' */ - - /* Switch: '/Switch1' incorporates: - * Constant: '/vec_hallToPos' - * Constant: '/CTRL_COMM' - * Constant: '/r_commDCDeacv' - * Constant: '/z_ctrlTypSel1' - * Inport: '/r_DC' - * Logic: '/Logical Operator2' - * LookupNDDirect: '/z_commutMap_M1' - * Product: '/Divide2' - * Product: '/Divide4' - * RelationalOperator: '/Relational Operator1' - * RelationalOperator: '/Relational Operator3' - * RelationalOperator: '/Relational Operator4' - * Relay: '/dz_counter' - * Relay: '/n_commDeacv' - * Selector: '/Selector' - * - * About '/z_commutMap_M1': - * 2-dimensional Direct Look-Up returning a Column - */ - if ((rtP->z_ctrlTypSel != 0) && (rtb_Abs1 > rtP->r_commDCDeacv) && (rtb_Sum2_h - == rtb_Abs5) && rtDW->n_commDeacv_Mode && (!rtDW->dz_counter_Mode)) { - rtb_Abs5 = rtU->r_DC * rtDW->Merge; - rtb_Switch1_idx_1 = rtU->r_DC * rtDW->Merge1; - rtb_Abs1 = rtU->r_DC * rtDW->Merge2; - } else { - if (rtConstP.vec_hallToPos_Value[rtb_Sum] > 5) { - /* LookupNDDirect: '/z_commutMap_M1' - * - * About '/z_commutMap_M1': - * 2-dimensional Direct Look-Up returning a Column - */ - rtb_Sum2_h = 5; - } else if (rtConstP.vec_hallToPos_Value[rtb_Sum] < 0) { - /* LookupNDDirect: '/z_commutMap_M1' - * - * About '/z_commutMap_M1': - * 2-dimensional Direct Look-Up returning a Column - */ - rtb_Sum2_h = 0; - } else { - /* LookupNDDirect: '/z_commutMap_M1' incorporates: - * Constant: '/vec_hallToPos' - * Selector: '/Selector' - * - * About '/z_commutMap_M1': - * 2-dimensional Direct Look-Up returning a Column - */ - rtb_Sum2_h = rtConstP.vec_hallToPos_Value[rtb_Sum]; - } - - /* LookupNDDirect: '/z_commutMap_M1' incorporates: - * Constant: '/vec_hallToPos' - * Selector: '/Selector' - * - * About '/z_commutMap_M1': - * 2-dimensional Direct Look-Up returning a Column - */ - rtb_Abs1 = rtb_Sum2_h * 3; - rtb_Abs5 = rtU->r_DC * rtConstP.z_commutMap_M1_table[rtb_Abs1]; - rtb_Switch1_idx_1 = rtConstP.z_commutMap_M1_table[1 + rtb_Abs1] * rtU->r_DC; - rtb_Abs1 = rtConstP.z_commutMap_M1_table[2 + rtb_Abs1] * rtU->r_DC; - } - - /* End of Switch: '/Switch1' */ - - /* Outport: '/DC_phaA' incorporates: - * Constant: '/Constant1' - * Product: '/Divide1' - */ - rtY->DC_phaA = rtb_Abs5 / 1000; - - /* Outport: '/DC_phaB' incorporates: - * Constant: '/Constant1' - * Product: '/Divide1' - */ - rtY->DC_phaB = rtb_Switch1_idx_1 / 1000; - - /* Update for UnitDelay: '/UnitDelay' incorporates: - * Inport: '/b_hallA ' - */ - rtDW->UnitDelay_DSTATE = rtU->b_hallA; - - /* Update for UnitDelay: '/UnitDelay1' incorporates: - * Inport: '/b_hallB' - */ - rtDW->UnitDelay1_DSTATE_i = rtU->b_hallB; - - /* Update for UnitDelay: '/UnitDelay2' incorporates: - * Inport: '/b_hallC' - */ - rtDW->UnitDelay2_DSTATE_h = rtU->b_hallC; - - /* Update for UnitDelay: '/UnitDelay1' */ - rtDW->UnitDelay1_DSTATE = rtb_Sum1_a; - - /* Update for UnitDelay: '/UnitDelay1' */ - rtDW->UnitDelay1_DSTATE_c = rtb_Sum1_a; - - /* Update for UnitDelay: '/UnitDelay2' */ - rtDW->UnitDelay2_DSTATE = rtb_Sum2; - - /* Outport: '/DC_phaC' incorporates: - * Constant: '/Constant1' - * Product: '/Divide1' - */ - rtY->DC_phaC = rtb_Abs1 / 1000; - - /* End of Outputs for SubSystem: '/BLDC_controller' */ - - /* Outport: '/n_mot' */ - rtY->n_mot = rtb_Sum2; -} - -/* Model initialize function */ -void BLDC_controller_initialize(RT_MODEL *const rtM) -{ - P *rtP = ((P *) rtM->defaultParam); - DW *rtDW = ((DW *) rtM->dwork); - - /* Start for Atomic SubSystem: '/BLDC_controller' */ - /* Start for If: '/If1' */ - rtDW->If1_ActiveSubsystem = -1; - - /* End of Start for SubSystem: '/BLDC_controller' */ - - /* SystemInitialize for Atomic SubSystem: '/BLDC_controller' */ - /* InitializeConditions for UnitDelay: '/UnitDelay1' */ - rtDW->UnitDelay1_DSTATE = rtP->z_maxCntRst; - - /* SystemInitialize for IfAction SubSystem: '/Counter_Hold_and_Error_Calculation' */ - /* InitializeConditions for UnitDelay: '/z_counter2' */ - rtDW->z_counter2_DSTATE = rtP->z_maxCntRst; - - /* SystemInitialize for Outport: '/z_counter' */ - rtDW->z_counterRawPrev = rtP->z_maxCntRst; - - /* End of SystemInitialize for SubSystem: '/Counter_Hold_and_Error_Calculation' */ - /* End of SystemInitialize for SubSystem: '/BLDC_controller' */ -} - -/* - * File trailer for generated code. - * - * [EOF] - */ diff --git a/01_Matlab/BLDC_controller_ert_rtw/BLDC_controller.h b/01_Matlab/BLDC_controller_ert_rtw/BLDC_controller.h deleted file mode 100644 index bb52673..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/BLDC_controller.h +++ /dev/null @@ -1,256 +0,0 @@ -/* - * Academic License - for use in teaching, academic research, and meeting - * course requirements at degree granting institutions only. Not for - * government, commercial, or other organizational use. - * - * File: BLDC_controller.h - * - * Code generated for Simulink model 'BLDC_controller'. - * - * Model version : 1.883 - * Simulink Coder version : 8.13 (R2017b) 24-Jul-2017 - * C/C++ source code generated on : Tue Jun 11 21:14:57 2019 - * - * Target selection: ert.tlc - * Embedded hardware selection: ARM Compatible->ARM Cortex - * 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_BLDC_controller_h_ -#define RTW_HEADER_BLDC_controller_h_ -#include "rtwtypes.h" -#ifndef BLDC_controller_COMMON_INCLUDES_ -# define BLDC_controller_COMMON_INCLUDES_ -#include "rtwtypes.h" -#endif /* BLDC_controller_COMMON_INCLUDES_ */ - -/* Macros for accessing real-time model data structure */ - -/* Forward declaration for rtModel */ -typedef struct tag_RTM RT_MODEL; - -/* Block signals and states (auto storage) for system '' */ -typedef struct { - int32_T Switch_PhaAdv; /* '/Switch_PhaAdv' */ - int32_T UnitDelay2_DSTATE; /* '/UnitDelay2' */ - int16_T Merge; /* '/Merge' */ - int16_T Merge1; /* '/Merge1' */ - int16_T Merge2; /* '/Merge2' */ - int16_T z_counterRawPrev; /* '/z_counterRawPrev' */ - int16_T Sum4; /* '/Sum4' */ - int16_T UnitDelay1_DSTATE; /* '/UnitDelay1' */ - int16_T UnitDelay1_DSTATE_c; /* '/UnitDelay1' */ - int16_T z_counter2_DSTATE; /* '/z_counter2' */ - int8_T UnitDelay1; /* '/UnitDelay1' */ - int8_T Switch2; /* '/Switch2' */ - int8_T UnitDelay2_DSTATE_i; /* '/UnitDelay2' */ - int8_T If1_ActiveSubsystem; /* '/If1' */ - uint8_T UnitDelay_DSTATE; /* '/UnitDelay' */ - uint8_T UnitDelay1_DSTATE_i; /* '/UnitDelay1' */ - uint8_T UnitDelay2_DSTATE_h; /* '/UnitDelay2' */ - boolean_T n_commDeacv_Mode; /* '/n_commDeacv' */ - boolean_T dz_counter_Mode; /* '/dz_counter' */ -} DW; - -/* Constant parameters (auto storage) */ -typedef struct { - /* Computed Parameter: r_trapPhaA_M1_Table - * Referenced by: '/r_trapPhaA_M1' - */ - int16_T r_trapPhaA_M1_Table[7]; - - /* Computed Parameter: r_trapPhaB_M1_Table - * Referenced by: '/r_trapPhaB_M1' - */ - int16_T r_trapPhaB_M1_Table[7]; - - /* Computed Parameter: r_trapPhaC_M1_Table - * Referenced by: '/r_trapPhaC_M1' - */ - int16_T r_trapPhaC_M1_Table[7]; - - /* Computed Parameter: r_sinPhaA_M1_Table - * Referenced by: '/r_sinPhaA_M1' - */ - int16_T r_sinPhaA_M1_Table[37]; - - /* Computed Parameter: r_sinPhaB_M1_Table - * Referenced by: '/r_sinPhaB_M1' - */ - int16_T r_sinPhaB_M1_Table[37]; - - /* Computed Parameter: r_sinPhaC_M1_Table - * Referenced by: '/r_sinPhaC_M1' - */ - int16_T r_sinPhaC_M1_Table[37]; - - /* Computed Parameter: r_sin3PhaA_M1_Table - * Referenced by: '/r_sin3PhaA_M1' - */ - int16_T r_sin3PhaA_M1_Table[37]; - - /* Computed Parameter: r_sin3PhaB_M1_Table - * Referenced by: '/r_sin3PhaB_M1' - */ - int16_T r_sin3PhaB_M1_Table[37]; - - /* Computed Parameter: r_sin3PhaC_M1_Table - * Referenced by: '/r_sin3PhaC_M1' - */ - int16_T r_sin3PhaC_M1_Table[37]; - - /* Computed Parameter: z_commutMap_M1_table - * Referenced by: '/z_commutMap_M1' - */ - int16_T z_commutMap_M1_table[18]; - - /* Computed Parameter: vec_hallToPos_Value - * Referenced by: '/vec_hallToPos' - */ - int8_T vec_hallToPos_Value[8]; -} ConstP; - -/* External inputs (root inport signals with auto storage) */ -typedef struct { - uint8_T b_hallA; /* '/b_hallA ' */ - uint8_T b_hallB; /* '/b_hallB' */ - uint8_T b_hallC; /* '/b_hallC' */ - int32_T r_DC; /* '/r_DC' */ -} ExtU; - -/* External outputs (root outports fed by signals with auto storage) */ -typedef struct { - int32_T DC_phaA; /* '/DC_phaA' */ - int32_T DC_phaB; /* '/DC_phaB' */ - int32_T DC_phaC; /* '/DC_phaC' */ - int32_T n_mot; /* '/n_mot' */ - int32_T a_elecAngle; /* '/a_elecAngle' */ -} ExtY; - -/* Parameters (auto storage) */ -struct P_ { - int32_T cf_speedCoef; /* Variable: cf_speedCoef - * Referenced by: '/cf_spdCoef' - */ - int32_T cf_speedFilt; /* Variable: cf_speedFilt - * Referenced by: '/cf_speedFilt' - */ - int32_T n_commAcvLo; /* Variable: n_commAcvLo - * Referenced by: '/n_commDeacv' - */ - int32_T n_commDeacvHi; /* Variable: n_commDeacvHi - * Referenced by: '/n_commDeacv' - */ - int32_T n_motPhaAdvEna; /* Variable: n_motPhaAdvEna - * Referenced by: '/n_motPhaAdvEna' - */ - int32_T r_commDCDeacv; /* Variable: r_commDCDeacv - * Referenced by: '/r_commDCDeacv' - */ - int32_T r_phaAdvDC_XA[11]; /* Variable: r_phaAdvDC_XA - * Referenced by: '/r_phaAdvDC_XA' - */ - int16_T a_phaAdv_M1[11]; /* Variable: a_phaAdv_M1 - * Referenced by: '/a_phaAdv_M2' - */ - int16_T dz_counterHi; /* Variable: dz_counterHi - * Referenced by: '/dz_counter' - */ - int16_T dz_counterLo; /* Variable: dz_counterLo - * Referenced by: '/dz_counter' - */ - int16_T z_maxCntRst; /* Variable: z_maxCntRst - * Referenced by: - * '/z_counter' - * '/z_counter2' - * '/z_maxCntRst' - * '/Constant1' - * '/UnitDelay1' - */ - uint8_T z_ctrlTypSel; /* Variable: z_ctrlTypSel - * Referenced by: '/z_ctrlTypSel1' - */ - boolean_T b_phaAdvEna; /* Variable: b_phaAdvEna - * Referenced by: '/a_elecPeriod1' - */ -}; - -/* Parameters (auto storage) */ -typedef struct P_ P; - -/* Real-time Model Data Structure */ -struct tag_RTM { - P *defaultParam; - ExtU *inputs; - ExtY *outputs; - DW *dwork; -}; - -/* Constant parameters (auto storage) */ -extern const ConstP rtConstP; - -/* Model entry point functions */ -extern void BLDC_controller_initialize(RT_MODEL *const rtM); -extern void BLDC_controller_step(RT_MODEL *const rtM); - -/*- - * These blocks were eliminated from the model due to optimizations: - * - * Block '/Scope2' : Unused code path elimination - * Block '/Scope' : Unused code path elimination - */ - -/*- - * The generated code includes comments that allow you to trace directly - * back to the appropriate location in the model. The basic format - * is /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('BLDCmotorControl_R2017b/BLDC_controller') - opens subsystem BLDCmotorControl_R2017b/BLDC_controller - * hilite_system('BLDCmotorControl_R2017b/BLDC_controller/Kp') - opens and selects block Kp - * - * Here is the system hierarchy for this model - * - * '' : 'BLDCmotorControl_R2017b' - * '' : 'BLDCmotorControl_R2017b/BLDC_controller' - * '' : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller' - * '' : 'BLDCmotorControl_R2017b/BLDC_controller/signal_log1' - * '' : 'BLDCmotorControl_R2017b/BLDC_controller/signal_log2' - * '' : 'BLDCmotorControl_R2017b/BLDC_controller/signal_log3' - * '' : 'BLDCmotorControl_R2017b/BLDC_controller/signal_log6' - * '' : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F01_Preliminary_Calculations' - * '' : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F02_Electrical_Angle_Calculation' - * '' : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F03_Control_Method_Selection' - * '' : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F04_Control_Type_Management' - * '' : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F01_Preliminary_Calculations/F01_01_Edge_Detector' - * '' : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F01_Preliminary_Calculations/F01_02_Position_Calculation' - * '' : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F01_Preliminary_Calculations/F01_03_Direction_Detection' - * '' : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F01_Preliminary_Calculations/F01_04_Speed_Calculation' - * '' : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F01_Preliminary_Calculations/F01_04_Speed_Calculation/Counter_Hold_and_Error_Calculation' - * '' : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F01_Preliminary_Calculations/F01_04_Speed_Calculation/Motor_Speed_Calculation' - * '' : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F01_Preliminary_Calculations/F01_04_Speed_Calculation/rst_DelayLim' - * '' : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F03_Control_Method_Selection/F03_01_Pure_Trapezoidal_Method' - * '' : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F03_Control_Method_Selection/F03_02_Sinusoidal_Method' - * '' : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F03_Control_Method_Selection/F03_03_Sinusoidal3rd_Method' - * '' : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F03_Control_Method_Selection/signal_log1' - * '' : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F03_Control_Method_Selection/signal_log2' - * '' : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F03_Control_Method_Selection/signal_log6' - */ -#endif /* RTW_HEADER_BLDC_controller_h_ */ - -/* - * File trailer for generated code. - * - * [EOF] - */ diff --git a/01_Matlab/BLDC_controller_ert_rtw/BLDC_controller.mk b/01_Matlab/BLDC_controller_ert_rtw/BLDC_controller.mk deleted file mode 100644 index 542deac..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/BLDC_controller.mk +++ /dev/null @@ -1,441 +0,0 @@ -########################################################################### -## Makefile generated for Simulink model 'BLDC_controller'. -## -## Makefile : BLDC_controller.mk -## Generated on : Wed Jun 05 20:33:43 2019 -## MATLAB Coder version: 3.4 (R2017b) -## -## Build Info: -## -## Final product: $(RELATIVE_PATH_TO_ANCHOR)/BLDC_controller.exe -## Product type : executable -## Build type : Top-Level Standalone Executable -## -########################################################################### - -########################################################################### -## MACROS -########################################################################### - -# Macro Descriptions: -# PRODUCT_NAME Name of the system to build -# MAKEFILE Name of this makefile -# COMPUTER Computer type. See the MATLAB "computer" command. -# MODELREF_LINK_RSPFILE Include paths for the model reference build -# GEN_LINKER_RESPONSE Command to generate a linker response file -# CMD_FILE Command file - -PRODUCT_NAME = BLDC_controller -MAKEFILE = BLDC_controller.mk -COMPUTER = PCWIN64 -MATLAB_ROOT = C:/PROGRA~1/MATLAB/R2017b -MATLAB_BIN = C:/PROGRA~1/MATLAB/R2017b/bin -MATLAB_ARCH_BIN = $(MATLAB_BIN)/win64 -MASTER_ANCHOR_DIR = -START_DIR = D:/git/hoverboard-firmware-hack/01_Matlab -ARCH = win64 -SOLVER = -SOLVER_OBJ = -CLASSIC_INTERFACE = 0 -TGT_FCN_LIB = None -MODEL_HAS_DYNAMICALLY_LOADED_SFCNS = 0 -MODELREF_LINK_RSPFILE_NAME = BLDC_controller_ref.rsp -RELATIVE_PATH_TO_ANCHOR = .. -MODELREF_LINK_RSPFILE = BLDC_controller_ref.rsp -GEN_LINKER_RESPONSE = $(MATLAB_ARCH_BIN)/createResponseFile.exe 1 -CMD_FILE = $(PRODUCT_NAME).rsp -C_STANDARD_OPTS = -ansi -pedantic -Wno-long-long -fwrapv -CPP_STANDARD_OPTS = -std=c++98 -pedantic -Wno-long-long -fwrapv - -########################################################################### -## TOOLCHAIN SPECIFICATIONS -########################################################################### - -# Toolchain Name: MinGW64 | gmake (64-bit Windows) -# Supported Version(s): 5.x -# ToolchainInfo Version: R2017b -# Specification Revision: 1.0 -# -#------------------------------------------- -# Macros assumed to be defined elsewhere -#------------------------------------------- - -# C_STANDARD_OPTS -# CPP_STANDARD_OPTS -# MINGW_ROOT -# MINGW_C_STANDARD_OPTS - -#----------- -# MACROS -#----------- - -WARN_FLAGS = -Wall -W -Wwrite-strings -Winline -Wstrict-prototypes -Wnested-externs -Wpointer-arith -Wcast-align -WARN_FLAGS_MAX = $(WARN_FLAGS) -Wcast-qual -Wshadow -CPP_WARN_FLAGS = -Wall -W -Wwrite-strings -Winline -Wpointer-arith -Wcast-align -CPP_WARN_FLAGS_MAX = $(CPP_WARN_FLAGS) -Wcast-qual -Wshadow -MEX_OPTS_FILE = $(MATLAB_ROOT)/bin/win64/mexopts/mingw64.xml -MEX_CPP_OPTS_FILE = $(MATLAB_ROOT)/bin/win64/mexopts/mingw64_g++.xml -MW_EXTERNLIB_DIR = $(MATLAB_ROOT)/extern/lib/win64/mingw64 -SHELL = %SystemRoot%/system32/cmd.exe - -TOOLCHAIN_SRCS = -TOOLCHAIN_INCS = -TOOLCHAIN_LIBS = -lws2_32 - -#------------------------ -# BUILD TOOL COMMANDS -#------------------------ - -# C Compiler: GNU C Compiler -CC_PATH = $(MINGW_ROOT) -CC = "$(CC_PATH)/gcc" - -# Linker: GNU Linker -LD_PATH = $(MINGW_ROOT) -LD = "$(LD_PATH)/gcc" - -# C++ Compiler: GNU C++ Compiler -CPP_PATH = $(MINGW_ROOT) -CPP = "$(CPP_PATH)/g++" - -# C++ Linker: GNU C++ Linker -CPP_LD_PATH = $(MINGW_ROOT) -CPP_LD = "$(CPP_LD_PATH)/g++" - -# Archiver: GNU Archiver -AR_PATH = $(MINGW_ROOT) -AR = "$(AR_PATH)/ar" - -# MEX Tool: MEX Tool -MEX_PATH = $(MATLAB_BIN)/win64 -MEX = "$(MEX_PATH)/mex" - -# Download: Download -DOWNLOAD = - -# Execute: Execute -EXECUTE = $(PRODUCT) - -# Builder: GMAKE Utility -MAKE_PATH = %MATLAB%/bin/win64 -MAKE = "$(MAKE_PATH)/gmake" - - -#------------------------- -# Directives/Utilities -#------------------------- - -CDEBUG = -g -C_OUTPUT_FLAG = -o -LDDEBUG = -g -OUTPUT_FLAG = -o -CPPDEBUG = -g -CPP_OUTPUT_FLAG = -o -CPPLDDEBUG = -g -OUTPUT_FLAG = -o -ARDEBUG = -STATICLIB_OUTPUT_FLAG = -MEX_DEBUG = -g -RM = @del -ECHO = @echo -MV = @move -RUN = - -#-------------------------------------- -# "Faster Runs" Build Configuration -#-------------------------------------- - -ARFLAGS = ruvs -CFLAGS = -c $(MINGW_C_STANDARD_OPTS) \ - -O3 -fno-loop-optimize -fno-aggressive-loop-optimizations -CPPFLAGS = -c $(CPP_STANDARD_OPTS) \ - -O3 -fno-loop-optimize -fno-aggressive-loop-optimizations -CPP_LDFLAGS = -Wl,-rpath,"$(MATLAB_ARCH_BIN)",-L"$(MATLAB_ARCH_BIN)" -static -CPP_SHAREDLIB_LDFLAGS = -shared -Wl,-rpath,"$(MATLAB_ARCH_BIN)",-L"$(MATLAB_ARCH_BIN)" -Wl,--no-undefined \ - -Wl,--out-implib,$(basename $(PRODUCT))$(STATICLIB_EXT) -DOWNLOAD_FLAGS = -EXECUTE_FLAGS = -LDFLAGS = -Wl,-rpath,"$(MATLAB_ARCH_BIN)",-L"$(MATLAB_ARCH_BIN)" -static -MEX_CPPFLAGS = -MATLAB_ARCH=$(ARCH) $(INCLUDES) \ - \ - COPTIMFLAGS="$(MINGW_C_STANDARD_OPTS) \ - -O3 -fno-loop-optimize -fno-aggressive-loop-optimizations \ - $(DEFINES)" \ - \ - -silent -MEX_CPPLDFLAGS = LDFLAGS=='$$LDFLAGS' -MEX_CFLAGS = -MATLAB_ARCH=$(ARCH) $(INCLUDES) \ - \ - COPTIMFLAGS="$(MINGW_C_STANDARD_OPTS) \ - -O3 -fno-loop-optimize -fno-aggressive-loop-optimizations \ - $(DEFINES)" \ - \ - -silent -MEX_LDFLAGS = LDFLAGS=='$$LDFLAGS' -MAKE_FLAGS = -f $(MAKEFILE) -SHAREDLIB_LDFLAGS = -shared -Wl,-rpath,"$(MATLAB_ARCH_BIN)",-L"$(MATLAB_ARCH_BIN)" -Wl,--no-undefined \ - -Wl,--out-implib,$(basename $(PRODUCT))$(STATICLIB_EXT) - -#-------------------- -# File extensions -#-------------------- - -H_EXT = .h -OBJ_EXT = .obj -C_EXT = .c -EXE_EXT = .exe -SHAREDLIB_EXT = .dll -HPP_EXT = .hpp -OBJ_EXT = .obj -CPP_EXT = .cpp -EXE_EXT = .exe -SHAREDLIB_EXT = .dll -STATICLIB_EXT = .lib -MEX_EXT = .mexw64 -MAKE_EXT = .mk - - -########################################################################### -## OUTPUT INFO -########################################################################### - -PRODUCT = $(RELATIVE_PATH_TO_ANCHOR)/BLDC_controller.exe -PRODUCT_TYPE = "executable" -BUILD_TYPE = "Top-Level Standalone Executable" - -########################################################################### -## INCLUDE PATHS -########################################################################### - -INCLUDES_BUILDINFO = -I$(START_DIR) -I$(MATLAB_ROOT)/simulink/include/sf_runtime -I$(START_DIR)/BLDC_controller_ert_rtw -I$(MATLAB_ROOT)/extern/include -I$(MATLAB_ROOT)/simulink/include -I$(MATLAB_ROOT)/rtw/c/src -I$(MATLAB_ROOT)/rtw/c/src/ext_mode/common -I$(MATLAB_ROOT)/rtw/c/ert - -INCLUDES = $(INCLUDES_BUILDINFO) - -########################################################################### -## DEFINES -########################################################################### - -DEFINES_BUILD_ARGS = -DTERMFCN=0 -DONESTEPFCN=1 -DMAT_FILE=0 -DMULTI_INSTANCE_CODE=1 -DINTEGER_CODE=0 -DMT=0 -DCLASSIC_INTERFACE=0 -DALLOCATIONFCN=0 -DEFINES_IMPLIED = -DTID01EQ=0 -DEFINES_STANDARD = -DMODEL=BLDC_controller -DNUMST=1 -DNCSTATES=0 -DHAVESTDIO - -DEFINES = $(DEFINES_BUILD_ARGS) $(DEFINES_IMPLIED) $(DEFINES_STANDARD) - -########################################################################### -## SOURCE FILES -########################################################################### - -SRCS = $(START_DIR)/BLDC_controller_ert_rtw/BLDC_controller.c $(START_DIR)/BLDC_controller_ert_rtw/BLDC_controller_data.c - -MAIN_SRC = $(START_DIR)/BLDC_controller_ert_rtw/ert_main.c - -ALL_SRCS = $(SRCS) $(MAIN_SRC) - -########################################################################### -## OBJECTS -########################################################################### - -OBJS = BLDC_controller.obj BLDC_controller_data.obj - -MAIN_OBJ = ert_main.obj - -ALL_OBJS = $(OBJS) $(MAIN_OBJ) - -########################################################################### -## PREBUILT OBJECT FILES -########################################################################### - -PREBUILT_OBJS = - -########################################################################### -## LIBRARIES -########################################################################### - -LIBS = - -########################################################################### -## SYSTEM LIBRARIES -########################################################################### - -SYSTEM_LIBS = - -########################################################################### -## ADDITIONAL TOOLCHAIN FLAGS -########################################################################### - -#--------------- -# C Compiler -#--------------- - -CFLAGS_BASIC = $(DEFINES) $(INCLUDES) - -CFLAGS += $(CFLAGS_BASIC) - -#----------------- -# C++ Compiler -#----------------- - -CPPFLAGS_BASIC = $(DEFINES) $(INCLUDES) - -CPPFLAGS += $(CPPFLAGS_BASIC) - -########################################################################### -## INLINED COMMANDS -########################################################################### - - -ifdef SIM_TARGET_BUILD -MINGW_C_STANDARD_OPTS = $(filter-out -ansi, $(C_STANDARD_OPTS)) -else -MINGW_C_STANDARD_OPTS = $(C_STANDARD_OPTS) -endif - - -########################################################################### -## PHONY TARGETS -########################################################################### - -.PHONY : all build buildobj clean info prebuild download execute - - -all : build - @echo "### Successfully generated all binary outputs." - - -build : prebuild $(PRODUCT) - - -buildobj : prebuild $(OBJS) $(PREBUILT_OBJS) - @echo "### Successfully generated all binary outputs." - - -prebuild : - - -download : build - - -execute : download - @echo "### Invoking postbuild tool "Execute" ..." - $(EXECUTE) $(EXECUTE_FLAGS) - @echo "### Done invoking postbuild tool." - - -########################################################################### -## FINAL TARGET -########################################################################### - -#------------------------------------------- -# Create a standalone executable -#------------------------------------------- - -$(PRODUCT) : $(OBJS) $(PREBUILT_OBJS) $(MAIN_OBJ) - $(GEN_LINKER_RESPONSE) $(CMD_FILE) $(OBJS) - @echo "### Creating standalone executable "$(PRODUCT)" ..." - $(LD) $(LDFLAGS) -o $(PRODUCT) @$(CMD_FILE) $(MAIN_OBJ) $(SYSTEM_LIBS) $(TOOLCHAIN_LIBS) - @echo "### Created: $(PRODUCT)" - $(RM) $(CMD_FILE) - - -########################################################################### -## INTERMEDIATE TARGETS -########################################################################### - -#--------------------- -# SOURCE-TO-OBJECT -#--------------------- - -%.obj : %.c - $(CC) $(CFLAGS) -o "$@" "$<" - - -%.obj : %.cpp - $(CPP) $(CPPFLAGS) -o "$@" "$<" - - -%.obj : $(RELATIVE_PATH_TO_ANCHOR)/%.c - $(CC) $(CFLAGS) -o "$@" "$<" - - -%.obj : $(RELATIVE_PATH_TO_ANCHOR)/%.cpp - $(CPP) $(CPPFLAGS) -o "$@" "$<" - - -%.obj : $(START_DIR)/%.c - $(CC) $(CFLAGS) -o "$@" "$<" - - -%.obj : $(START_DIR)/%.cpp - $(CPP) $(CPPFLAGS) -o "$@" "$<" - - -%.obj : $(START_DIR)/BLDC_controller_ert_rtw/%.c - $(CC) $(CFLAGS) -o "$@" "$<" - - -%.obj : $(START_DIR)/BLDC_controller_ert_rtw/%.cpp - $(CPP) $(CPPFLAGS) -o "$@" "$<" - - -%.obj : $(MATLAB_ROOT)/rtw/c/src/%.c - $(CC) $(CFLAGS) -o "$@" "$<" - - -%.obj : $(MATLAB_ROOT)/rtw/c/src/%.cpp - $(CPP) $(CPPFLAGS) -o "$@" "$<" - - -%.obj : $(MATLAB_ROOT)/simulink/src/%.c - $(CC) $(CFLAGS) -o "$@" "$<" - - -%.obj : $(MATLAB_ROOT)/simulink/src/%.cpp - $(CPP) $(CPPFLAGS) -o "$@" "$<" - - -########################################################################### -## DEPENDENCIES -########################################################################### - -$(ALL_OBJS) : $(MAKEFILE) rtw_proj.tmw - - -########################################################################### -## MISCELLANEOUS TARGETS -########################################################################### - -info : - @echo "### PRODUCT = $(PRODUCT)" - @echo "### PRODUCT_TYPE = $(PRODUCT_TYPE)" - @echo "### BUILD_TYPE = $(BUILD_TYPE)" - @echo "### INCLUDES = $(INCLUDES)" - @echo "### DEFINES = $(DEFINES)" - @echo "### ALL_SRCS = $(ALL_SRCS)" - @echo "### ALL_OBJS = $(ALL_OBJS)" - @echo "### LIBS = $(LIBS)" - @echo "### MODELREF_LIBS = $(MODELREF_LIBS)" - @echo "### SYSTEM_LIBS = $(SYSTEM_LIBS)" - @echo "### TOOLCHAIN_LIBS = $(TOOLCHAIN_LIBS)" - @echo "### CFLAGS = $(CFLAGS)" - @echo "### LDFLAGS = $(LDFLAGS)" - @echo "### SHAREDLIB_LDFLAGS = $(SHAREDLIB_LDFLAGS)" - @echo "### CPPFLAGS = $(CPPFLAGS)" - @echo "### CPP_LDFLAGS = $(CPP_LDFLAGS)" - @echo "### CPP_SHAREDLIB_LDFLAGS = $(CPP_SHAREDLIB_LDFLAGS)" - @echo "### ARFLAGS = $(ARFLAGS)" - @echo "### MEX_CFLAGS = $(MEX_CFLAGS)" - @echo "### MEX_CPPFLAGS = $(MEX_CPPFLAGS)" - @echo "### MEX_LDFLAGS = $(MEX_LDFLAGS)" - @echo "### MEX_CPPLDFLAGS = $(MEX_CPPLDFLAGS)" - @echo "### DOWNLOAD_FLAGS = $(DOWNLOAD_FLAGS)" - @echo "### EXECUTE_FLAGS = $(EXECUTE_FLAGS)" - @echo "### MAKE_FLAGS = $(MAKE_FLAGS)" - - -clean : - $(ECHO) "### Deleting all derived files..." - $(RM) $(subst /,\,$(PRODUCT)) - $(RM) $(subst /,\,$(ALL_OBJS)) - $(ECHO) "### Deleted all derived files." - - diff --git a/01_Matlab/BLDC_controller_ert_rtw/BLDC_controller_data.c b/01_Matlab/BLDC_controller_ert_rtw/BLDC_controller_data.c deleted file mode 100644 index a740573..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/BLDC_controller_data.c +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Academic License - for use in teaching, academic research, and meeting - * course requirements at degree granting institutions only. Not for - * government, commercial, or other organizational use. - * - * File: BLDC_controller_data.c - * - * Code generated for Simulink model 'BLDC_controller'. - * - * Model version : 1.883 - * Simulink Coder version : 8.13 (R2017b) 24-Jul-2017 - * C/C++ source code generated on : Tue Jun 11 21:14:57 2019 - * - * Target selection: ert.tlc - * Embedded hardware selection: ARM Compatible->ARM Cortex - * Emulation hardware selection: - * Differs from embedded hardware (MATLAB Host) - * Code generation objectives: - * 1. Execution efficiency - * 2. RAM efficiency - * Validation result: Not run - */ - -#include "BLDC_controller.h" - -/* Constant parameters (auto storage) */ -const ConstP rtConstP = { - /* Computed Parameter: r_trapPhaA_M1_Table - * Referenced by: '/r_trapPhaA_M1' - */ - { 1000, 1000, 1000, -1000, -1000, -1000, 1000 }, - - /* Computed Parameter: r_trapPhaB_M1_Table - * Referenced by: '/r_trapPhaB_M1' - */ - { -1000, -1000, 1000, 1000, 1000, -1000, -1000 }, - - /* Computed Parameter: r_trapPhaC_M1_Table - * Referenced by: '/r_trapPhaC_M1' - */ - { 1000, -1000, -1000, -1000, 1000, 1000, 1000 }, - - /* Computed Parameter: r_sinPhaA_M1_Table - * Referenced by: '/r_sinPhaA_M1' - */ - { 500, 643, 766, 866, 940, 985, 1000, 985, 940, 866, 766, 643, 500, 342, 174, - 0, -174, -342, -500, -643, -766, -866, -940, -985, -1000, -985, -940, -866, - -766, -643, -500, -342, -174, 0, 174, 342, 500 }, - - /* Computed Parameter: r_sinPhaB_M1_Table - * Referenced by: '/r_sinPhaB_M1' - */ - { -1000, -985, -940, -866, -766, -643, -500, -342, -174, 0, 174, 342, 500, 643, - 766, 866, 940, 985, 1000, 985, 940, 866, 766, 643, 500, 342, 174, 0, -174, - -342, -500, -643, -766, -866, -940, -985, -1000 }, - - /* Computed Parameter: r_sinPhaC_M1_Table - * Referenced by: '/r_sinPhaC_M1' - */ - { 500, 342, 174, 0, -174, -342, -500, -643, -766, -866, -940, -985, -1000, - -985, -940, -866, -766, -643, -500, -342, -174, 0, 174, 342, 500, 643, 766, - 866, 940, 985, 1000, 985, 940, 866, 766, 643, 500 }, - - /* Computed Parameter: r_sin3PhaA_M1_Table - * Referenced by: '/r_sin3PhaA_M1' - */ - { 813, 945, 1000, 996, 962, 926, 912, 926, 962, 996, 1000, 945, 813, 599, 319, - 0, -319, -599, -813, -945, -1000, -996, -962, -926, -912, -926, -962, -996, - -1000, -945, -813, -599, -319, 0, 319, 599, 813 }, - - /* Computed Parameter: r_sin3PhaB_M1_Table - * Referenced by: '/r_sin3PhaB_M1' - */ - { -912, -926, -962, -996, -1000, -945, -813, -599, -319, 0, 319, 599, 813, 945, - 1000, 996, 962, 926, 912, 926, 962, 996, 1000, 945, 813, 599, 319, 0, -319, - -599, -813, -945, -1000, -996, -962, -926, -912 }, - - /* Computed Parameter: r_sin3PhaC_M1_Table - * Referenced by: '/r_sin3PhaC_M1' - */ - { 813, 599, 319, 0, -319, -599, -813, -945, -1000, -996, -962, -926, -912, - -926, -962, -996, -1000, -945, -813, -599, -319, 0, 319, 599, 813, 945, 1000, - 996, 962, 926, 912, 926, 962, 996, 1000, 945, 813 }, - - /* Computed Parameter: z_commutMap_M1_table - * Referenced by: '/z_commutMap_M1' - */ - { 1000, -1000, 0, 1000, 0, -1000, 0, 1000, -1000, -1000, 1000, 0, -1000, 0, - 1000, 0, -1000, 1000 }, - - /* Computed Parameter: vec_hallToPos_Value - * Referenced by: '/vec_hallToPos' - */ - { 0, 5, 3, 4, 1, 0, 2, 0 } -}; - -/* - * File trailer for generated code. - * - * [EOF] - */ diff --git a/01_Matlab/BLDC_controller_ert_rtw/BLDC_controller_ref.rsp b/01_Matlab/BLDC_controller_ert_rtw/BLDC_controller_ref.rsp deleted file mode 100644 index e69de29..0000000 diff --git a/01_Matlab/BLDC_controller_ert_rtw/buildInfo.mat b/01_Matlab/BLDC_controller_ert_rtw/buildInfo.mat deleted file mode 100644 index 9d577640a37798cfee60b7d39c8af366cb4d007a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22986 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 yLD2uT^)Cpx`fcC*ZyjqtE?!+J=?VZ-!CtTc diff --git a/01_Matlab/BLDC_controller_ert_rtw/codedescriptor.dmr b/01_Matlab/BLDC_controller_ert_rtw/codedescriptor.dmr deleted file mode 100644 index df1c910eb8f1b2d17f86740f845cad25edfb1089..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 499712 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 LgDV4bP0@bARM Cortex - * Emulation hardware selection: - * Differs from embedded hardware (MATLAB Host) - * Code generation objectives: - * 1. Execution efficiency - * 2. RAM efficiency - * Validation result: Not run - */ - -#include -#include /* This ert_main.c example uses printf/fflush */ -#include "BLDC_controller.h" /* Model's header file */ -#include "rtwtypes.h" - -static RT_MODEL rtM_; -static RT_MODEL *const rtMPtr = &rtM_; /* Real-time model */ -static P rtP = { - /* Variable: cf_speedCoef - * Referenced by: '/cf_spdCoef' - */ - 11111, - - /* Variable: cf_speedFilt - * Referenced by: '/cf_speedFilt' - */ - 10, - - /* Variable: n_commAcvLo - * Referenced by: '/n_commDeacv' - */ - 15, - - /* Variable: n_commDeacvHi - * Referenced by: '/n_commDeacv' - */ - 30, - - /* Variable: n_motPhaAdvEna - * Referenced by: '/n_motPhaAdvEna' - */ - 400, - - /* Variable: r_commDCDeacv - * Referenced by: '/r_commDCDeacv' - */ - 70, - - /* Variable: r_phaAdvDC_XA - * Referenced by: '/r_phaAdvDC_XA' - */ - { 0, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000 }, - - /* Variable: a_phaAdv_M1 - * Referenced by: '/a_phaAdv_M2' - */ - { 0, 0, 0, 0, 0, 2, 3, 5, 9, 16, 25 }, - - /* Variable: dz_counterHi - * Referenced by: '/dz_counter' - */ - 50, - - /* Variable: dz_counterLo - * Referenced by: '/dz_counter' - */ - 20, - - /* Variable: z_maxCntRst - * Referenced by: - * '/z_counter' - * '/z_counter2' - * '/z_maxCntRst' - * '/Constant1' - * '/UnitDelay1' - */ - 1500, - - /* Variable: z_ctrlTypSel - * Referenced by: '/z_ctrlTypSel1' - */ - 3U, - - /* Variable: b_phaAdvEna - * Referenced by: '/a_elecPeriod1' - */ - 1 -}; /* Modifiable parameters */ - -static DW rtDW; /* Observable states */ -static ExtU rtU; /* External inputs */ -static ExtY rtY; /* External outputs */ - -/* - * Associating rt_OneStep with a real-time clock or interrupt service routine - * is what makes the generated code "real-time". The function rt_OneStep is - * always associated with the base rate of the model. Subrates are managed - * by the base rate from inside the generated code. Enabling/disabling - * interrupts and floating point context switches are target specific. This - * example code indicates where these should take place relative to executing - * the generated code step function. Overrun behavior should be tailored to - * your application needs. This example simply sets an error status in the - * real-time model and returns from rt_OneStep. - */ -void rt_OneStep(RT_MODEL *const rtM); -void rt_OneStep(RT_MODEL *const rtM) -{ - static boolean_T OverrunFlag = false; - - /* Disable interrupts here */ - - /* Check for overrun */ - if (OverrunFlag) { - return; - } - - OverrunFlag = true; - - /* Save FPU context here (if necessary) */ - /* Re-enable timer or interrupt here */ - /* Set model inputs here */ - - /* Step the model */ - BLDC_controller_step(rtM); - - /* Get model outputs here */ - - /* Indicate task complete */ - OverrunFlag = false; - - /* Disable interrupts here */ - /* Restore FPU context here (if necessary) */ - /* Enable interrupts here */ -} - -/* - * The example "main" function illustrates what is required by your - * application code to initialize, execute, and terminate the generated code. - * Attaching rt_OneStep to a real-time clock is target specific. This example - * illustrates how you do this relative to initializing the model. - */ -int_T main(int_T argc, const char *argv[]) -{ - RT_MODEL *const rtM = rtMPtr; - - /* Unused arguments */ - (void)(argc); - (void)(argv); - - /* Pack model data into RTM */ - rtM->defaultParam = &rtP; - rtM->dwork = &rtDW; - rtM->inputs = &rtU; - rtM->outputs = &rtY; - - /* Initialize model */ - BLDC_controller_initialize(rtM); - - /* Attach rt_OneStep to a timer or interrupt service routine with - * period 6.0E-5 seconds (the model's base sample time) here. The - * call syntax for rt_OneStep is - * - * rt_OneStep(rtM); - */ - printf("Warning: The simulation will run forever. " - "Generated ERT main won't simulate model step behavior. " - "To change this behavior select the 'MAT-file logging' option.\n"); - fflush((NULL)); - while (1) { - /* Perform other application tasks here */ - } - - /* The option 'Remove error status field in real-time model data structure' - * is selected, therefore the following code does not need to execute. - */ -#if 0 - - /* Disable rt_OneStep() here */ -#endif - - return 0; -} - -/* - * File trailer for generated code. - * - * [EOF] - */ diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_c.html b/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_c.html deleted file mode 100644 index 0caaeb3..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_c.html +++ /dev/null @@ -1,716 +0,0 @@ - - - -RTW Report - BLDC_controller.c - - - - - - -

-
-

File: BLDC_controller.c

-
-    1   /*
-    2    * Academic License - for use in teaching, academic research, and meeting
-    3    * course requirements at degree granting institutions only.  Not for
-    4    * government, commercial, or other organizational use.
-    5    *
-    6    * File: BLDC_controller.c
-    7    *
-    8    * Code generated for Simulink model 'BLDC_controller'.
-    9    *
-   10    * Model version                  : 1.883
-   11    * Simulink Coder version         : 8.13 (R2017b) 24-Jul-2017
-   12    * C/C++ source code generated on : Tue Jun 11 21:14:57 2019
-   13    *
-   14    * Target selection: ert.tlc
-   15    * Embedded hardware selection: ARM Compatible->ARM Cortex
-   16    * Emulation hardware selection:
-   17    *    Differs from embedded hardware (MATLAB Host)
-   18    * Code generation objectives:
-   19    *    1. Execution efficiency
-   20    *    2. RAM efficiency
-   21    * Validation result: Not run
-   22    */
-   23   
-   24   #include "BLDC_controller.h"
-   25   #ifndef UCHAR_MAX
-   26   #include <limits.h>
-   27   #endif
-   28   
-   29   #if ( UCHAR_MAX != (0xFFU) ) || ( SCHAR_MAX != (0x7F) )
-   30   #error Code was generated for compiler with different sized uchar/char. \
-   31   Consider adjusting Test hardware word size settings on the \
-   32   Hardware Implementation pane to match your compiler word sizes as \
-   33   defined in limits.h of the compiler. Alternatively, you can \
-   34   select the Test hardware is the same as production hardware option and \
-   35   select the Enable portable word sizes option on the Code Generation > \
-   36   Verification pane for ERT based targets, which will disable the \
-   37   preprocessor word size checks.
-   38   #endif
-   39   
-   40   #if ( USHRT_MAX != (0xFFFFU) ) || ( SHRT_MAX != (0x7FFF) )
-   41   #error Code was generated for compiler with different sized ushort/short. \
-   42   Consider adjusting Test hardware word size settings on the \
-   43   Hardware Implementation pane to match your compiler word sizes as \
-   44   defined in limits.h of the compiler. Alternatively, you can \
-   45   select the Test hardware is the same as production hardware option and \
-   46   select the Enable portable word sizes option on the Code Generation > \
-   47   Verification pane for ERT based targets, which will disable the \
-   48   preprocessor word size checks.
-   49   #endif
-   50   
-   51   #if ( UINT_MAX != (0xFFFFFFFFU) ) || ( INT_MAX != (0x7FFFFFFF) )
-   52   #error Code was generated for compiler with different sized uint/int. \
-   53   Consider adjusting Test hardware word size settings on the \
-   54   Hardware Implementation pane to match your compiler word sizes as \
-   55   defined in limits.h of the compiler. Alternatively, you can \
-   56   select the Test hardware is the same as production hardware option and \
-   57   select the Enable portable word sizes option on the Code Generation > \
-   58   Verification pane for ERT based targets, which will disable the \
-   59   preprocessor word size checks.
-   60   #endif
-   61   
-   62   #if ( ULONG_MAX != (0xFFFFFFFFU) ) || ( LONG_MAX != (0x7FFFFFFF) )
-   63   #error Code was generated for compiler with different sized ulong/long. \
-   64   Consider adjusting Test hardware word size settings on the \
-   65   Hardware Implementation pane to match your compiler word sizes as \
-   66   defined in limits.h of the compiler. Alternatively, you can \
-   67   select the Test hardware is the same as production hardware option and \
-   68   select the Enable portable word sizes option on the Code Generation > \
-   69   Verification pane for ERT based targets, which will disable the \
-   70   preprocessor word size checks.
-   71   #endif
-   72   
-   73   #if 0
-   74   
-   75   /* Skip this size verification because of preprocessor limitation */
-   76   #if ( ULLONG_MAX != (0xFFFFFFFFFFFFFFFFULL) ) || ( LLONG_MAX != (0x7FFFFFFFFFFFFFFFLL) )
-   77   #error Code was generated for compiler with different sized ulong_long/long_long. \
-   78   Consider adjusting Test hardware word size settings on the \
-   79   Hardware Implementation pane to match your compiler word sizes as \
-   80   defined in limits.h of the compiler. Alternatively, you can \
-   81   select the Test hardware is the same as production hardware option and \
-   82   select the Enable portable word sizes option on the Code Generation > \
-   83   Verification pane for ERT based targets, which will disable the \
-   84   preprocessor word size checks.
-   85   #endif
-   86   #endif
-   87   
-   88   uint8_T plook_u8s32u32n31_evenc_s(int32_T u, int32_T bp0, uint32_T bpSpace,
-   89     uint32_T maxIndex, uint32_T *fraction);
-   90   int16_T intrp1d_s16s32s32u8u32n31l_s(uint8_T bpIndex, uint32_T frac, const
-   91     int16_T table[]);
-   92   int32_T div_nde_s32_floor(int32_T numerator, int32_T denominator);
-   93   uint8_T plook_u8s32u32n31_evenc_s(int32_T u, int32_T bp0, uint32_T bpSpace,
-   94     uint32_T maxIndex, uint32_T *fraction)
-   95   {
-   96     uint8_T bpIndex;
-   97     uint32_T uAdjust;
-   98     uint32_T fbpIndex;
-   99   
-  100     /* Prelookup - Index and Fraction
-  101        Index Search method: 'even'
-  102        Extrapolation method: 'Clip'
-  103        Use previous index: 'off'
-  104        Use last breakpoint for index at or above upper limit: 'off'
-  105        Remove protection against out-of-range input in generated code: 'off'
-  106        Rounding mode: 'simplest'
-  107      */
-  108     if (u <= bp0) {
-  109       bpIndex = 0U;
-  110       *fraction = 0U;
-  111     } else {
-  112       uAdjust = (uint32_T)u - bp0;
-  113       fbpIndex = uAdjust / bpSpace;
-  114       if (fbpIndex < maxIndex) {
-  115         bpIndex = (uint8_T)fbpIndex;
-  116         *fraction = (uint32_T)(((uint64_T)(uAdjust - bpIndex * bpSpace) << 31) /
-  117           bpSpace);
-  118       } else {
-  119         bpIndex = (uint8_T)(maxIndex - 1U);
-  120         *fraction = 2147483648U;
-  121       }
-  122     }
-  123   
-  124     return bpIndex;
-  125   }
-  126   
-  127   int16_T intrp1d_s16s32s32u8u32n31l_s(uint8_T bpIndex, uint32_T frac, const
-  128     int16_T table[])
-  129   {
-  130     uint32_T offset_0d;
-  131   
-  132     /* Interpolation 1-D
-  133        Interpolation method: 'Linear'
-  134        Use last breakpoint for index at or above upper limit: 'off'
-  135        Rounding mode: 'simplest'
-  136        Overflow mode: 'wrapping'
-  137      */
-  138     offset_0d = bpIndex;
-  139     return (int16_T)((int16_T)(((int64_T)(table[offset_0d + 1U] - table[offset_0d])
-  140       * frac) >> 31) + table[offset_0d]);
-  141   }
-  142   
-  143   int32_T div_nde_s32_floor(int32_T numerator, int32_T denominator)
-  144   {
-  145     return (((numerator < 0) != (denominator < 0)) && (numerator % denominator !=
-  146              0) ? -1 : 0) + numerator / denominator;
-  147   }
-  148   
-  149   /* Model step function */
-  150   void BLDC_controller_step(RT_MODEL *const rtM)
-  151   {
-  152     P *rtP = ((P *) rtM->defaultParam);
-  153     DW *rtDW = ((DW *) rtM->dwork);
-  154     ExtU *rtU = (ExtU *) rtM->inputs;
-  155     ExtY *rtY = (ExtY *) rtM->outputs;
-  156     uint8_T rtb_Sum;
-  157     int32_T rtb_Abs1;
-  158     uint8_T rtb_BitwiseOperator;
-  159     int32_T rtb_Sum2;
-  160     int16_T rtb_Abs2;
-  161     int16_T rtb_Sum1_a;
-  162     int32_T rtb_Abs5;
-  163     int8_T rtAction;
-  164     int8_T rtb_Sum2_h;
-  165     uint32_T rtb_r_phaAdvDC_XA_o2;
-  166     int32_T rtb_Switch1_idx_1;
-  167   
-  168     /* Outputs for Atomic SubSystem: '<Root>/BLDC_controller' */
-  169     /* Sum: '<S12>/Sum' incorporates:
-  170      *  Gain: '<S12>/g_Ha'
-  171      *  Gain: '<S12>/g_Hb'
-  172      *  Inport: '<Root>/b_hallA '
-  173      *  Inport: '<Root>/b_hallB'
-  174      *  Inport: '<Root>/b_hallC'
-  175      */
-  176     rtb_Sum = (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)(rtU->b_hallA << 2)
-  177       + (uint8_T)(rtU->b_hallB << 1)) + rtU->b_hallC);
-  178   
-  179     /* Abs: '<S2>/Abs1' incorporates:
-  180      *  Inport: '<Root>/r_DC'
-  181      */
-  182     if (rtU->r_DC < 0) {
-  183       rtb_Abs1 = -rtU->r_DC;
-  184     } else {
-  185       rtb_Abs1 = rtU->r_DC;
-  186     }
-  187   
-  188     /* End of Abs: '<S2>/Abs1' */
-  189   
-  190     /* S-Function (sfix_bitop): '<S11>/Bitwise Operator' incorporates:
-  191      *  Inport: '<Root>/b_hallA '
-  192      *  Inport: '<Root>/b_hallB'
-  193      *  Inport: '<Root>/b_hallC'
-  194      *  UnitDelay: '<S11>/UnitDelay'
-  195      *  UnitDelay: '<S11>/UnitDelay1'
-  196      *  UnitDelay: '<S11>/UnitDelay2'
-  197      */
-  198     rtb_BitwiseOperator = (uint8_T)(rtU->b_hallA ^ rtU->b_hallB ^ rtU->b_hallC ^
-  199       rtDW->UnitDelay_DSTATE ^ rtDW->UnitDelay1_DSTATE_i ^
-  200       rtDW->UnitDelay2_DSTATE_h);
-  201   
-  202     /* If: '<S14>/If1' incorporates:
-  203      *  Constant: '<S14>/Constant6'
-  204      *  Constant: '<S17>/Constant1'
-  205      *  Constant: '<S17>/Constant23'
-  206      *  If: '<S7>/If2'
-  207      *  Inport: '<S15>/z_counterRawPrev'
-  208      *  RelationalOperator: '<S17>/Relational Operator1'
-  209      *  Sum: '<S14>/Sum1'
-  210      *  Switch: '<S17>/Switch1'
-  211      *  Switch: '<S17>/Switch2'
-  212      *  UnitDelay: '<S14>/UnitDelay1'
-  213      *  UnitDelay: '<S17>/UnitDelay1'
-  214      */
-  215     if (rtb_BitwiseOperator != 0) {
-  216       /* Outputs for IfAction SubSystem: '<S7>/F01_03_Direction_Detection' incorporates:
-  217        *  ActionPort: '<S13>/Action Port'
-  218        */
-  219       /* UnitDelay: '<S13>/UnitDelay1' */
-  220       rtDW->UnitDelay1 = rtDW->Switch2;
-  221   
-  222       /* Sum: '<S13>/Sum2' incorporates:
-  223        *  Constant: '<S12>/vec_hallToPos'
-  224        *  Selector: '<S12>/Selector'
-  225        *  UnitDelay: '<S13>/UnitDelay2'
-  226        */
-  227       rtb_Sum2_h = (int8_T)(rtConstP.vec_hallToPos_Value[rtb_Sum] -
-  228                             rtDW->UnitDelay2_DSTATE_i);
-  229   
-  230       /* Switch: '<S13>/Switch2' incorporates:
-  231        *  Constant: '<S13>/Constant20'
-  232        *  Constant: '<S13>/Constant23'
-  233        *  Constant: '<S13>/Constant24'
-  234        *  Constant: '<S13>/Constant8'
-  235        *  Logic: '<S13>/Logical Operator3'
-  236        *  RelationalOperator: '<S13>/Relational Operator1'
-  237        *  RelationalOperator: '<S13>/Relational Operator6'
-  238        */
-  239       if ((rtb_Sum2_h == 1) || (rtb_Sum2_h == -5)) {
-  240         rtDW->Switch2 = 1;
-  241       } else {
-  242         rtDW->Switch2 = -1;
-  243       }
-  244   
-  245       /* End of Switch: '<S13>/Switch2' */
-  246   
-  247       /* Update for UnitDelay: '<S13>/UnitDelay2' incorporates:
-  248        *  Constant: '<S12>/vec_hallToPos'
-  249        *  Selector: '<S12>/Selector'
-  250        */
-  251       rtDW->UnitDelay2_DSTATE_i = rtConstP.vec_hallToPos_Value[rtb_Sum];
-  252   
-  253       /* End of Outputs for SubSystem: '<S7>/F01_03_Direction_Detection' */
-  254       rtb_Abs2 = 1;
-  255   
-  256       /* Outputs for IfAction SubSystem: '<S14>/Counter_Hold_and_Error_Calculation' incorporates:
-  257        *  ActionPort: '<S15>/Action Port'
-  258        */
-  259       rtDW->z_counterRawPrev = rtDW->UnitDelay1_DSTATE_c;
-  260   
-  261       /* Sum: '<S15>/Sum4' incorporates:
-  262        *  Constant: '<S14>/Constant6'
-  263        *  Constant: '<S17>/Constant23'
-  264        *  Inport: '<S15>/z_counterRawPrev'
-  265        *  Sum: '<S14>/Sum1'
-  266        *  UnitDelay: '<S14>/UnitDelay1'
-  267        *  UnitDelay: '<S15>/z_counter2'
-  268        */
-  269       rtDW->Sum4 = (int16_T)(rtDW->z_counterRawPrev - rtDW->z_counter2_DSTATE);
-  270   
-  271       /* Update for UnitDelay: '<S15>/z_counter2' */
-  272       rtDW->z_counter2_DSTATE = rtDW->z_counterRawPrev;
-  273   
-  274       /* End of Outputs for SubSystem: '<S14>/Counter_Hold_and_Error_Calculation' */
-  275     } else {
-  276       if (rtDW->UnitDelay1_DSTATE < rtP->z_maxCntRst) {
-  277         /* Switch: '<S17>/Switch2' incorporates:
-  278          *  UnitDelay: '<S17>/UnitDelay1'
-  279          */
-  280         rtb_Abs2 = rtDW->UnitDelay1_DSTATE;
-  281       } else {
-  282         /* Switch: '<S17>/Switch2' incorporates:
-  283          *  Constant: '<S17>/Constant1'
-  284          */
-  285         rtb_Abs2 = rtP->z_maxCntRst;
-  286       }
-  287   
-  288       rtb_Abs2++;
-  289     }
-  290   
-  291     /* End of If: '<S14>/If1' */
-  292   
-  293     /* Sum: '<S14>/Sum1' */
-  294     rtb_Sum1_a = rtb_Abs2;
-  295   
-  296     /* Switch: '<S16>/Switch1' incorporates:
-  297      *  Constant: '<S16>/Constant1'
-  298      *  Constant: '<S16>/cf_spdCoef'
-  299      *  Constant: '<S16>/z_maxCntRst'
-  300      *  Logic: '<S16>/Logical Operator1'
-  301      *  Product: '<S16>/Divide4'
-  302      *  RelationalOperator: '<S16>/Relational Operator2'
-  303      *  RelationalOperator: '<S16>/Relational Operator5'
-  304      *  Sum: '<S14>/Sum1'
-  305      */
-  306     if ((rtb_Abs2 > rtP->z_maxCntRst) || (rtDW->Switch2 != rtDW->UnitDelay1)) {
-  307       rtb_Sum2 = 0;
-  308     } else {
-  309       rtb_Sum2 = rtP->cf_speedCoef * rtDW->Switch2 / rtDW->z_counterRawPrev;
-  310     }
-  311   
-  312     /* End of Switch: '<S16>/Switch1' */
-  313   
-  314     /* Product: '<S16>/Divide2' incorporates:
-  315      *  Constant: '<S16>/Constant2'
-  316      *  Constant: '<S16>/Constant3'
-  317      *  Constant: '<S16>/cf_speedFilt'
-  318      *  Product: '<S16>/Divide1'
-  319      *  Product: '<S16>/Divide3'
-  320      *  Sum: '<S16>/Sum1'
-  321      *  Sum: '<S16>/Sum2'
-  322      *  UnitDelay: '<S16>/UnitDelay2'
-  323      */
-  324     rtb_Sum2 = ((100 - rtP->cf_speedFilt) * rtDW->UnitDelay2_DSTATE + rtb_Sum2 *
-  325                 rtP->cf_speedFilt) / 100;
-  326   
-  327     /* Abs: '<S16>/Abs5' */
-  328     if (rtb_Sum2 < 0) {
-  329       rtb_Abs5 = -rtb_Sum2;
-  330     } else {
-  331       rtb_Abs5 = rtb_Sum2;
-  332     }
-  333   
-  334     /* End of Abs: '<S16>/Abs5' */
-  335   
-  336     /* Relay: '<S14>/n_commDeacv' */
-  337     if (rtb_Abs5 >= rtP->n_commDeacvHi) {
-  338       rtDW->n_commDeacv_Mode = true;
-  339     } else {
-  340       if (rtb_Abs5 <= rtP->n_commAcvLo) {
-  341         rtDW->n_commDeacv_Mode = false;
-  342       }
-  343     }
-  344   
-  345     /* Abs: '<S14>/Abs2' */
-  346     if (rtDW->Sum4 < 0) {
-  347       rtb_Abs2 = (int16_T)-rtDW->Sum4;
-  348     } else {
-  349       rtb_Abs2 = rtDW->Sum4;
-  350     }
-  351   
-  352     /* End of Abs: '<S14>/Abs2' */
-  353   
-  354     /* Relay: '<S14>/dz_counter' */
-  355     if (rtb_Abs2 >= rtP->dz_counterHi) {
-  356       rtDW->dz_counter_Mode = true;
-  357     } else {
-  358       if (rtb_Abs2 <= rtP->dz_counterLo) {
-  359         rtDW->dz_counter_Mode = false;
-  360       }
-  361     }
-  362   
-  363     /* If: '<S2>/If1' incorporates:
-  364      *  Constant: '<S7>/z_ctrlTypSel1'
-  365      */
-  366     rtb_Sum2_h = rtDW->If1_ActiveSubsystem;
-  367     rtAction = -1;
-  368     if (rtP->z_ctrlTypSel != 0) {
-  369       rtAction = 0;
-  370     }
-  371   
-  372     rtDW->If1_ActiveSubsystem = rtAction;
-  373     if ((rtb_Sum2_h != rtAction) && (rtb_Sum2_h == 0)) {
-  374       /* Disable for Outport: '<S8>/a_elecAngleAdv' */
-  375       rtDW->Switch_PhaAdv = 0;
-  376   
-  377       /* Disable for Outport: '<Root>/a_elecAngle' incorporates:
-  378        *  Outport: '<S8>/a_elecAngle'
-  379        */
-  380       rtY->a_elecAngle = 0;
-  381     }
-  382   
-  383     if (rtAction == 0) {
-  384       /* Outputs for IfAction SubSystem: '<S2>/F02_Electrical_Angle_Calculation' incorporates:
-  385        *  ActionPort: '<S8>/Action Port'
-  386        */
-  387       /* Switch: '<S8>/Switch3' incorporates:
-  388        *  Constant: '<S12>/vec_hallToPos'
-  389        *  Constant: '<S8>/Constant16'
-  390        *  Gain: '<S12>/g_Ha'
-  391        *  Gain: '<S12>/g_Hb'
-  392        *  Inport: '<Root>/b_hallA '
-  393        *  Inport: '<Root>/b_hallB'
-  394        *  Inport: '<Root>/b_hallC'
-  395        *  RelationalOperator: '<S8>/Relational Operator7'
-  396        *  Selector: '<S12>/Selector'
-  397        *  Sum: '<S12>/Sum'
-  398        *  Sum: '<S8>/Sum1'
-  399        */
-  400       if (rtDW->Switch2 == 1) {
-  401         rtb_Sum2_h = rtConstP.vec_hallToPos_Value[rtb_Sum];
-  402       } else {
-  403         rtb_Sum2_h = (int8_T)(rtConstP.vec_hallToPos_Value[(uint8_T)((uint32_T)
-  404           (uint8_T)((uint32_T)(uint8_T)(rtU->b_hallA << 2) + (uint8_T)
-  405                     (rtU->b_hallB << 1)) + rtU->b_hallC)] + 1);
-  406       }
-  407   
-  408       /* End of Switch: '<S8>/Switch3' */
-  409   
-  410       /* Outport: '<Root>/a_elecAngle' incorporates:
-  411        *  Constant: '<S8>/a_elecAngle1'
-  412        *  Product: '<S8>/Divide4'
-  413        *  Product: '<S8>/Divide5'
-  414        *  Product: '<S8>/Product6'
-  415        *  Sum: '<S8>/Sum2'
-  416        */
-  417       rtY->a_elecAngle = 60 * rtb_Sum1_a / rtDW->z_counterRawPrev * rtDW->Switch2
-  418         + rtb_Sum2_h * 60;
-  419   
-  420       /* Switch: '<S8>/Switch_PhaAdv' incorporates:
-  421        *  Constant: '<S8>/a_elecPeriod1'
-  422        *  Constant: '<S8>/n_motPhaAdvEna'
-  423        *  Logic: '<S8>/Logical Operator2'
-  424        *  Outport: '<Root>/a_elecAngle'
-  425        *  RelationalOperator: '<S8>/Relational Operator4'
-  426        */
-  427       if (rtP->b_phaAdvEna && (rtb_Abs5 > rtP->n_motPhaAdvEna)) {
-  428         /* PreLookup: '<S8>/r_phaAdvDC_XA' */
-  429         rtb_BitwiseOperator = plook_u8s32u32n31_evenc_s(rtb_Abs1,
-  430           rtP->r_phaAdvDC_XA[0], (uint32_T)rtP->r_phaAdvDC_XA[1] -
-  431           rtP->r_phaAdvDC_XA[0], 10U, &rtb_r_phaAdvDC_XA_o2);
-  432   
-  433         /* Interpolation_n-D: '<S8>/a_phaAdv_M2' */
-  434         rtb_Abs2 = intrp1d_s16s32s32u8u32n31l_s(rtb_BitwiseOperator,
-  435           rtb_r_phaAdvDC_XA_o2, rtP->a_phaAdv_M1);
-  436   
-  437         /* Sum: '<S8>/Sum3' incorporates:
-  438          *  Outport: '<Root>/a_elecAngle'
-  439          *  Product: '<S8>/Product2'
-  440          */
-  441         rtb_Abs5 = (int16_T)(rtb_Abs2 * rtDW->Switch2) + rtY->a_elecAngle;
-  442   
-  443         /* Math: '<S8>/Math Function' */
-  444         rtDW->Switch_PhaAdv = rtb_Abs5 - div_nde_s32_floor(rtb_Abs5, 360) * 360;
-  445       } else {
-  446         rtDW->Switch_PhaAdv = rtY->a_elecAngle;
-  447       }
-  448   
-  449       /* End of Switch: '<S8>/Switch_PhaAdv' */
-  450       /* End of Outputs for SubSystem: '<S2>/F02_Electrical_Angle_Calculation' */
-  451     }
-  452   
-  453     /* End of If: '<S2>/If1' */
-  454   
-  455     /* SwitchCase: '<S9>/Switch Case' incorporates:
-  456      *  Constant: '<S7>/z_ctrlTypSel1'
-  457      */
-  458     switch (rtP->z_ctrlTypSel) {
-  459      case 1:
-  460       /* Outputs for IfAction SubSystem: '<S9>/F03_01_Pure_Trapezoidal_Method' incorporates:
-  461        *  ActionPort: '<S18>/Action Port'
-  462        */
-  463       /* PreLookup: '<S18>/a_trapElecAngle_XA' */
-  464       rtb_BitwiseOperator = plook_u8s32u32n31_evenc_s(rtDW->Switch_PhaAdv, 0, 60U,
-  465         6U, &rtb_r_phaAdvDC_XA_o2);
-  466   
-  467       /* Interpolation_n-D: '<S18>/r_trapPhaA_M1' */
-  468       rtDW->Merge = intrp1d_s16s32s32u8u32n31l_s(rtb_BitwiseOperator,
-  469         rtb_r_phaAdvDC_XA_o2, rtConstP.r_trapPhaA_M1_Table);
-  470   
-  471       /* Interpolation_n-D: '<S18>/r_trapPhaB_M1' */
-  472       rtDW->Merge1 = intrp1d_s16s32s32u8u32n31l_s(rtb_BitwiseOperator,
-  473         rtb_r_phaAdvDC_XA_o2, rtConstP.r_trapPhaB_M1_Table);
-  474   
-  475       /* Interpolation_n-D: '<S18>/r_trapPhaC_M1' */
-  476       rtDW->Merge2 = intrp1d_s16s32s32u8u32n31l_s(rtb_BitwiseOperator,
-  477         rtb_r_phaAdvDC_XA_o2, rtConstP.r_trapPhaC_M1_Table);
-  478   
-  479       /* End of Outputs for SubSystem: '<S9>/F03_01_Pure_Trapezoidal_Method' */
-  480       break;
-  481   
-  482      case 2:
-  483       /* Outputs for IfAction SubSystem: '<S9>/F03_02_Sinusoidal_Method' incorporates:
-  484        *  ActionPort: '<S19>/Action Port'
-  485        */
-  486       /* PreLookup: '<S19>/a_sinElecAngle_XA' */
-  487       rtb_BitwiseOperator = plook_u8s32u32n31_evenc_s(rtDW->Switch_PhaAdv, 0, 10U,
-  488         36U, &rtb_r_phaAdvDC_XA_o2);
-  489   
-  490       /* Interpolation_n-D: '<S19>/r_sinPhaA_M1' */
-  491       rtDW->Merge = intrp1d_s16s32s32u8u32n31l_s(rtb_BitwiseOperator,
-  492         rtb_r_phaAdvDC_XA_o2, rtConstP.r_sinPhaA_M1_Table);
-  493   
-  494       /* Interpolation_n-D: '<S19>/r_sinPhaB_M1' */
-  495       rtDW->Merge1 = intrp1d_s16s32s32u8u32n31l_s(rtb_BitwiseOperator,
-  496         rtb_r_phaAdvDC_XA_o2, rtConstP.r_sinPhaB_M1_Table);
-  497   
-  498       /* Interpolation_n-D: '<S19>/r_sinPhaC_M1' */
-  499       rtDW->Merge2 = intrp1d_s16s32s32u8u32n31l_s(rtb_BitwiseOperator,
-  500         rtb_r_phaAdvDC_XA_o2, rtConstP.r_sinPhaC_M1_Table);
-  501   
-  502       /* End of Outputs for SubSystem: '<S9>/F03_02_Sinusoidal_Method' */
-  503       break;
-  504   
-  505      case 3:
-  506       /* Outputs for IfAction SubSystem: '<S9>/F03_03_Sinusoidal3rd_Method' incorporates:
-  507        *  ActionPort: '<S20>/Action Port'
-  508        */
-  509       /* PreLookup: '<S20>/a_sinElecAngle_XA' */
-  510       rtb_BitwiseOperator = plook_u8s32u32n31_evenc_s(rtDW->Switch_PhaAdv, 0, 10U,
-  511         36U, &rtb_r_phaAdvDC_XA_o2);
-  512   
-  513       /* Interpolation_n-D: '<S20>/r_sin3PhaA_M1' */
-  514       rtDW->Merge = intrp1d_s16s32s32u8u32n31l_s(rtb_BitwiseOperator,
-  515         rtb_r_phaAdvDC_XA_o2, rtConstP.r_sin3PhaA_M1_Table);
-  516   
-  517       /* Interpolation_n-D: '<S20>/r_sin3PhaB_M1' */
-  518       rtDW->Merge1 = intrp1d_s16s32s32u8u32n31l_s(rtb_BitwiseOperator,
-  519         rtb_r_phaAdvDC_XA_o2, rtConstP.r_sin3PhaB_M1_Table);
-  520   
-  521       /* Interpolation_n-D: '<S20>/r_sin3PhaC_M1' */
-  522       rtDW->Merge2 = intrp1d_s16s32s32u8u32n31l_s(rtb_BitwiseOperator,
-  523         rtb_r_phaAdvDC_XA_o2, rtConstP.r_sin3PhaC_M1_Table);
-  524   
-  525       /* End of Outputs for SubSystem: '<S9>/F03_03_Sinusoidal3rd_Method' */
-  526       break;
-  527     }
-  528   
-  529     /* End of SwitchCase: '<S9>/Switch Case' */
-  530   
-  531     /* Signum: '<S14>/Sign' */
-  532     if (rtDW->Switch2 < 0) {
-  533       rtb_Sum2_h = -1;
-  534     } else {
-  535       rtb_Sum2_h = (int8_T)(rtDW->Switch2 > 0);
-  536     }
-  537   
-  538     /* End of Signum: '<S14>/Sign' */
-  539   
-  540     /* Signum: '<S14>/Sign1' incorporates:
-  541      *  Inport: '<Root>/r_DC'
-  542      */
-  543     if (rtU->r_DC < 0) {
-  544       rtb_Abs5 = -1;
-  545     } else {
-  546       rtb_Abs5 = (rtU->r_DC > 0);
-  547     }
-  548   
-  549     /* End of Signum: '<S14>/Sign1' */
-  550   
-  551     /* Switch: '<S10>/Switch1' incorporates:
-  552      *  Constant: '<S12>/vec_hallToPos'
-  553      *  Constant: '<S14>/CTRL_COMM'
-  554      *  Constant: '<S14>/r_commDCDeacv'
-  555      *  Constant: '<S7>/z_ctrlTypSel1'
-  556      *  Inport: '<Root>/r_DC'
-  557      *  Logic: '<S14>/Logical Operator2'
-  558      *  LookupNDDirect: '<S10>/z_commutMap_M1'
-  559      *  Product: '<S10>/Divide2'
-  560      *  Product: '<S10>/Divide4'
-  561      *  RelationalOperator: '<S14>/Relational Operator1'
-  562      *  RelationalOperator: '<S14>/Relational Operator3'
-  563      *  RelationalOperator: '<S14>/Relational Operator4'
-  564      *  Relay: '<S14>/dz_counter'
-  565      *  Relay: '<S14>/n_commDeacv'
-  566      *  Selector: '<S12>/Selector'
-  567      *
-  568      * About '<S10>/z_commutMap_M1':
-  569      *  2-dimensional Direct Look-Up returning a Column
-  570      */
-  571     if ((rtP->z_ctrlTypSel != 0) && (rtb_Abs1 > rtP->r_commDCDeacv) && (rtb_Sum2_h
-  572          == rtb_Abs5) && rtDW->n_commDeacv_Mode && (!rtDW->dz_counter_Mode)) {
-  573       rtb_Abs5 = rtU->r_DC * rtDW->Merge;
-  574       rtb_Switch1_idx_1 = rtU->r_DC * rtDW->Merge1;
-  575       rtb_Abs1 = rtU->r_DC * rtDW->Merge2;
-  576     } else {
-  577       if (rtConstP.vec_hallToPos_Value[rtb_Sum] > 5) {
-  578         /* LookupNDDirect: '<S10>/z_commutMap_M1'
-  579          *
-  580          * About '<S10>/z_commutMap_M1':
-  581          *  2-dimensional Direct Look-Up returning a Column
-  582          */
-  583         rtb_Sum2_h = 5;
-  584       } else if (rtConstP.vec_hallToPos_Value[rtb_Sum] < 0) {
-  585         /* LookupNDDirect: '<S10>/z_commutMap_M1'
-  586          *
-  587          * About '<S10>/z_commutMap_M1':
-  588          *  2-dimensional Direct Look-Up returning a Column
-  589          */
-  590         rtb_Sum2_h = 0;
-  591       } else {
-  592         /* LookupNDDirect: '<S10>/z_commutMap_M1' incorporates:
-  593          *  Constant: '<S12>/vec_hallToPos'
-  594          *  Selector: '<S12>/Selector'
-  595          *
-  596          * About '<S10>/z_commutMap_M1':
-  597          *  2-dimensional Direct Look-Up returning a Column
-  598          */
-  599         rtb_Sum2_h = rtConstP.vec_hallToPos_Value[rtb_Sum];
-  600       }
-  601   
-  602       /* LookupNDDirect: '<S10>/z_commutMap_M1' incorporates:
-  603        *  Constant: '<S12>/vec_hallToPos'
-  604        *  Selector: '<S12>/Selector'
-  605        *
-  606        * About '<S10>/z_commutMap_M1':
-  607        *  2-dimensional Direct Look-Up returning a Column
-  608        */
-  609       rtb_Abs1 = rtb_Sum2_h * 3;
-  610       rtb_Abs5 = rtU->r_DC * rtConstP.z_commutMap_M1_table[rtb_Abs1];
-  611       rtb_Switch1_idx_1 = rtConstP.z_commutMap_M1_table[1 + rtb_Abs1] * rtU->r_DC;
-  612       rtb_Abs1 = rtConstP.z_commutMap_M1_table[2 + rtb_Abs1] * rtU->r_DC;
-  613     }
-  614   
-  615     /* End of Switch: '<S10>/Switch1' */
-  616   
-  617     /* Outport: '<Root>/DC_phaA' incorporates:
-  618      *  Constant: '<S10>/Constant1'
-  619      *  Product: '<S10>/Divide1'
-  620      */
-  621     rtY->DC_phaA = rtb_Abs5 / 1000;
-  622   
-  623     /* Outport: '<Root>/DC_phaB' incorporates:
-  624      *  Constant: '<S10>/Constant1'
-  625      *  Product: '<S10>/Divide1'
-  626      */
-  627     rtY->DC_phaB = rtb_Switch1_idx_1 / 1000;
-  628   
-  629     /* Update for UnitDelay: '<S11>/UnitDelay' incorporates:
-  630      *  Inport: '<Root>/b_hallA '
-  631      */
-  632     rtDW->UnitDelay_DSTATE = rtU->b_hallA;
-  633   
-  634     /* Update for UnitDelay: '<S11>/UnitDelay1' incorporates:
-  635      *  Inport: '<Root>/b_hallB'
-  636      */
-  637     rtDW->UnitDelay1_DSTATE_i = rtU->b_hallB;
-  638   
-  639     /* Update for UnitDelay: '<S11>/UnitDelay2' incorporates:
-  640      *  Inport: '<Root>/b_hallC'
-  641      */
-  642     rtDW->UnitDelay2_DSTATE_h = rtU->b_hallC;
-  643   
-  644     /* Update for UnitDelay: '<S17>/UnitDelay1' */
-  645     rtDW->UnitDelay1_DSTATE = rtb_Sum1_a;
-  646   
-  647     /* Update for UnitDelay: '<S14>/UnitDelay1' */
-  648     rtDW->UnitDelay1_DSTATE_c = rtb_Sum1_a;
-  649   
-  650     /* Update for UnitDelay: '<S16>/UnitDelay2' */
-  651     rtDW->UnitDelay2_DSTATE = rtb_Sum2;
-  652   
-  653     /* Outport: '<Root>/DC_phaC' incorporates:
-  654      *  Constant: '<S10>/Constant1'
-  655      *  Product: '<S10>/Divide1'
-  656      */
-  657     rtY->DC_phaC = rtb_Abs1 / 1000;
-  658   
-  659     /* End of Outputs for SubSystem: '<Root>/BLDC_controller' */
-  660   
-  661     /* Outport: '<Root>/n_mot' */
-  662     rtY->n_mot = rtb_Sum2;
-  663   }
-  664   
-  665   /* Model initialize function */
-  666   void BLDC_controller_initialize(RT_MODEL *const rtM)
-  667   {
-  668     P *rtP = ((P *) rtM->defaultParam);
-  669     DW *rtDW = ((DW *) rtM->dwork);
-  670   
-  671     /* Start for Atomic SubSystem: '<Root>/BLDC_controller' */
-  672     /* Start for If: '<S2>/If1' */
-  673     rtDW->If1_ActiveSubsystem = -1;
-  674   
-  675     /* End of Start for SubSystem: '<Root>/BLDC_controller' */
-  676   
-  677     /* SystemInitialize for Atomic SubSystem: '<Root>/BLDC_controller' */
-  678     /* InitializeConditions for UnitDelay: '<S17>/UnitDelay1' */
-  679     rtDW->UnitDelay1_DSTATE = rtP->z_maxCntRst;
-  680   
-  681     /* SystemInitialize for IfAction SubSystem: '<S14>/Counter_Hold_and_Error_Calculation' */
-  682     /* InitializeConditions for UnitDelay: '<S15>/z_counter2' */
-  683     rtDW->z_counter2_DSTATE = rtP->z_maxCntRst;
-  684   
-  685     /* SystemInitialize for Outport: '<S15>/z_counter' */
-  686     rtDW->z_counterRawPrev = rtP->z_maxCntRst;
-  687   
-  688     /* End of SystemInitialize for SubSystem: '<S14>/Counter_Hold_and_Error_Calculation' */
-  689     /* End of SystemInitialize for SubSystem: '<Root>/BLDC_controller' */
-  690   }
-  691   
-  692   /*
-  693    * File trailer for generated code.
-  694    *
-  695    * [EOF]
-  696    */
-  697   
-
-
-

- - \ No newline at end of file diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_codegen_rpt.html b/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_codegen_rpt.html deleted file mode 100644 index 3ea6a33..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_codegen_rpt.html +++ /dev/null @@ -1,27 +0,0 @@ - - - -BLDC_controller Code Generation Report - - - - - - - - - - - - - - - - - - - - - - - diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_contents.html b/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_contents.html deleted file mode 100644 index dcf33e3..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_contents.html +++ /dev/null @@ -1,298 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -Contents - - -
- - -
- -Summary - - -
- -Subsystem Report - - -
- -Code Interface Report - - -
- -Traceability Report - - -
- -Static Code Metrics Report - - -
- -Code Replacements Report - - -
- - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
- -Generated Code - - -
- - - - - - - - - - - - -
-[-] - -Main file -
- - - - - - - - -
- -ert_main.c - - -
- -
- -
- - - - - - - - - - - - -
-[-] - -Model files -
- - - - - - - - - - - - -
- -BLDC_controller.c - - -
- -BLDC_controller.h - - -
- -
- -
- - - - - - - - - - - - -
-[-] - -Data files -
- - - - - - - - -
- -BLDC_controller_data.c - - -
- -
- -
- - - - - - - - - - - - -
-[+] - -Utility files (1) -
- - - - - - - - - - -
- -
-
- - - diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_data_c.html b/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_data_c.html deleted file mode 100644 index 68a2d09..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_data_c.html +++ /dev/null @@ -1,121 +0,0 @@ - - - -RTW Report - BLDC_controller_data.c - - - - - - -

-
-

File: BLDC_controller_data.c

-
-    1   /*
-    2    * Academic License - for use in teaching, academic research, and meeting
-    3    * course requirements at degree granting institutions only.  Not for
-    4    * government, commercial, or other organizational use.
-    5    *
-    6    * File: BLDC_controller_data.c
-    7    *
-    8    * Code generated for Simulink model 'BLDC_controller'.
-    9    *
-   10    * Model version                  : 1.883
-   11    * Simulink Coder version         : 8.13 (R2017b) 24-Jul-2017
-   12    * C/C++ source code generated on : Tue Jun 11 21:14:57 2019
-   13    *
-   14    * Target selection: ert.tlc
-   15    * Embedded hardware selection: ARM Compatible->ARM Cortex
-   16    * Emulation hardware selection:
-   17    *    Differs from embedded hardware (MATLAB Host)
-   18    * Code generation objectives:
-   19    *    1. Execution efficiency
-   20    *    2. RAM efficiency
-   21    * Validation result: Not run
-   22    */
-   23   
-   24   #include "BLDC_controller.h"
-   25   
-   26   /* Constant parameters (auto storage) */
-   27   const ConstP rtConstP = {
-   28     /* Computed Parameter: r_trapPhaA_M1_Table
-   29      * Referenced by: '<S18>/r_trapPhaA_M1'
-   30      */
-   31     { 1000, 1000, 1000, -1000, -1000, -1000, 1000 },
-   32   
-   33     /* Computed Parameter: r_trapPhaB_M1_Table
-   34      * Referenced by: '<S18>/r_trapPhaB_M1'
-   35      */
-   36     { -1000, -1000, 1000, 1000, 1000, -1000, -1000 },
-   37   
-   38     /* Computed Parameter: r_trapPhaC_M1_Table
-   39      * Referenced by: '<S18>/r_trapPhaC_M1'
-   40      */
-   41     { 1000, -1000, -1000, -1000, 1000, 1000, 1000 },
-   42   
-   43     /* Computed Parameter: r_sinPhaA_M1_Table
-   44      * Referenced by: '<S19>/r_sinPhaA_M1'
-   45      */
-   46     { 500, 643, 766, 866, 940, 985, 1000, 985, 940, 866, 766, 643, 500, 342, 174,
-   47       0, -174, -342, -500, -643, -766, -866, -940, -985, -1000, -985, -940, -866,
-   48       -766, -643, -500, -342, -174, 0, 174, 342, 500 },
-   49   
-   50     /* Computed Parameter: r_sinPhaB_M1_Table
-   51      * Referenced by: '<S19>/r_sinPhaB_M1'
-   52      */
-   53     { -1000, -985, -940, -866, -766, -643, -500, -342, -174, 0, 174, 342, 500, 643,
-   54       766, 866, 940, 985, 1000, 985, 940, 866, 766, 643, 500, 342, 174, 0, -174,
-   55       -342, -500, -643, -766, -866, -940, -985, -1000 },
-   56   
-   57     /* Computed Parameter: r_sinPhaC_M1_Table
-   58      * Referenced by: '<S19>/r_sinPhaC_M1'
-   59      */
-   60     { 500, 342, 174, 0, -174, -342, -500, -643, -766, -866, -940, -985, -1000,
-   61       -985, -940, -866, -766, -643, -500, -342, -174, 0, 174, 342, 500, 643, 766,
-   62       866, 940, 985, 1000, 985, 940, 866, 766, 643, 500 },
-   63   
-   64     /* Computed Parameter: r_sin3PhaA_M1_Table
-   65      * Referenced by: '<S20>/r_sin3PhaA_M1'
-   66      */
-   67     { 813, 945, 1000, 996, 962, 926, 912, 926, 962, 996, 1000, 945, 813, 599, 319,
-   68       0, -319, -599, -813, -945, -1000, -996, -962, -926, -912, -926, -962, -996,
-   69       -1000, -945, -813, -599, -319, 0, 319, 599, 813 },
-   70   
-   71     /* Computed Parameter: r_sin3PhaB_M1_Table
-   72      * Referenced by: '<S20>/r_sin3PhaB_M1'
-   73      */
-   74     { -912, -926, -962, -996, -1000, -945, -813, -599, -319, 0, 319, 599, 813, 945,
-   75       1000, 996, 962, 926, 912, 926, 962, 996, 1000, 945, 813, 599, 319, 0, -319,
-   76       -599, -813, -945, -1000, -996, -962, -926, -912 },
-   77   
-   78     /* Computed Parameter: r_sin3PhaC_M1_Table
-   79      * Referenced by: '<S20>/r_sin3PhaC_M1'
-   80      */
-   81     { 813, 599, 319, 0, -319, -599, -813, -945, -1000, -996, -962, -926, -912,
-   82       -926, -962, -996, -1000, -945, -813, -599, -319, 0, 319, 599, 813, 945, 1000,
-   83       996, 962, 926, 912, 926, 962, 996, 1000, 945, 813 },
-   84   
-   85     /* Computed Parameter: z_commutMap_M1_table
-   86      * Referenced by: '<S10>/z_commutMap_M1'
-   87      */
-   88     { 1000, -1000, 0, 1000, 0, -1000, 0, 1000, -1000, -1000, 1000, 0, -1000, 0,
-   89       1000, 0, -1000, 1000 },
-   90   
-   91     /* Computed Parameter: vec_hallToPos_Value
-   92      * Referenced by: '<S12>/vec_hallToPos'
-   93      */
-   94     { 0, 5, 3, 4, 1, 0, 2, 0 }
-   95   };
-   96   
-   97   /*
-   98    * File trailer for generated code.
-   99    *
-  100    * [EOF]
-  101    */
-  102   
-
-
-

- - \ No newline at end of file diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_h.html b/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_h.html deleted file mode 100644 index 2a7cbfc..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_h.html +++ /dev/null @@ -1,276 +0,0 @@ - - - -RTW Report - BLDC_controller.h - - - - - - -

-
-

File: BLDC_controller.h

-
-    1   /*
-    2    * Academic License - for use in teaching, academic research, and meeting
-    3    * course requirements at degree granting institutions only.  Not for
-    4    * government, commercial, or other organizational use.
-    5    *
-    6    * File: BLDC_controller.h
-    7    *
-    8    * Code generated for Simulink model 'BLDC_controller'.
-    9    *
-   10    * Model version                  : 1.883
-   11    * Simulink Coder version         : 8.13 (R2017b) 24-Jul-2017
-   12    * C/C++ source code generated on : Tue Jun 11 21:14:57 2019
-   13    *
-   14    * Target selection: ert.tlc
-   15    * Embedded hardware selection: ARM Compatible->ARM Cortex
-   16    * Emulation hardware selection:
-   17    *    Differs from embedded hardware (MATLAB Host)
-   18    * Code generation objectives:
-   19    *    1. Execution efficiency
-   20    *    2. RAM efficiency
-   21    * Validation result: Not run
-   22    */
-   23   
-   24   #ifndef RTW_HEADER_BLDC_controller_h_
-   25   #define RTW_HEADER_BLDC_controller_h_
-   26   #include "rtwtypes.h"
-   27   #ifndef BLDC_controller_COMMON_INCLUDES_
-   28   # define BLDC_controller_COMMON_INCLUDES_
-   29   #include "rtwtypes.h"
-   30   #endif                                 /* BLDC_controller_COMMON_INCLUDES_ */
-   31   
-   32   /* Macros for accessing real-time model data structure */
-   33   
-   34   /* Forward declaration for rtModel */
-   35   typedef struct tag_RTM RT_MODEL;
-   36   
-   37   /* Block signals and states (auto storage) for system '<Root>' */
-   38   typedef struct {
-   39     int32_T Switch_PhaAdv;               /* '<S8>/Switch_PhaAdv' */
-   40     int32_T UnitDelay2_DSTATE;           /* '<S16>/UnitDelay2' */
-   41     int16_T Merge;                       /* '<S9>/Merge' */
-   42     int16_T Merge1;                      /* '<S9>/Merge1' */
-   43     int16_T Merge2;                      /* '<S9>/Merge2' */
-   44     int16_T z_counterRawPrev;            /* '<S15>/z_counterRawPrev' */
-   45     int16_T Sum4;                        /* '<S15>/Sum4' */
-   46     int16_T UnitDelay1_DSTATE;           /* '<S17>/UnitDelay1' */
-   47     int16_T UnitDelay1_DSTATE_c;         /* '<S14>/UnitDelay1' */
-   48     int16_T z_counter2_DSTATE;           /* '<S15>/z_counter2' */
-   49     int8_T UnitDelay1;                   /* '<S13>/UnitDelay1' */
-   50     int8_T Switch2;                      /* '<S13>/Switch2' */
-   51     int8_T UnitDelay2_DSTATE_i;          /* '<S13>/UnitDelay2' */
-   52     int8_T If1_ActiveSubsystem;          /* '<S2>/If1' */
-   53     uint8_T UnitDelay_DSTATE;            /* '<S11>/UnitDelay' */
-   54     uint8_T UnitDelay1_DSTATE_i;         /* '<S11>/UnitDelay1' */
-   55     uint8_T UnitDelay2_DSTATE_h;         /* '<S11>/UnitDelay2' */
-   56     boolean_T n_commDeacv_Mode;          /* '<S14>/n_commDeacv' */
-   57     boolean_T dz_counter_Mode;           /* '<S14>/dz_counter' */
-   58   } DW;
-   59   
-   60   /* Constant parameters (auto storage) */
-   61   typedef struct {
-   62     /* Computed Parameter: r_trapPhaA_M1_Table
-   63      * Referenced by: '<S18>/r_trapPhaA_M1'
-   64      */
-   65     int16_T r_trapPhaA_M1_Table[7];
-   66   
-   67     /* Computed Parameter: r_trapPhaB_M1_Table
-   68      * Referenced by: '<S18>/r_trapPhaB_M1'
-   69      */
-   70     int16_T r_trapPhaB_M1_Table[7];
-   71   
-   72     /* Computed Parameter: r_trapPhaC_M1_Table
-   73      * Referenced by: '<S18>/r_trapPhaC_M1'
-   74      */
-   75     int16_T r_trapPhaC_M1_Table[7];
-   76   
-   77     /* Computed Parameter: r_sinPhaA_M1_Table
-   78      * Referenced by: '<S19>/r_sinPhaA_M1'
-   79      */
-   80     int16_T r_sinPhaA_M1_Table[37];
-   81   
-   82     /* Computed Parameter: r_sinPhaB_M1_Table
-   83      * Referenced by: '<S19>/r_sinPhaB_M1'
-   84      */
-   85     int16_T r_sinPhaB_M1_Table[37];
-   86   
-   87     /* Computed Parameter: r_sinPhaC_M1_Table
-   88      * Referenced by: '<S19>/r_sinPhaC_M1'
-   89      */
-   90     int16_T r_sinPhaC_M1_Table[37];
-   91   
-   92     /* Computed Parameter: r_sin3PhaA_M1_Table
-   93      * Referenced by: '<S20>/r_sin3PhaA_M1'
-   94      */
-   95     int16_T r_sin3PhaA_M1_Table[37];
-   96   
-   97     /* Computed Parameter: r_sin3PhaB_M1_Table
-   98      * Referenced by: '<S20>/r_sin3PhaB_M1'
-   99      */
-  100     int16_T r_sin3PhaB_M1_Table[37];
-  101   
-  102     /* Computed Parameter: r_sin3PhaC_M1_Table
-  103      * Referenced by: '<S20>/r_sin3PhaC_M1'
-  104      */
-  105     int16_T r_sin3PhaC_M1_Table[37];
-  106   
-  107     /* Computed Parameter: z_commutMap_M1_table
-  108      * Referenced by: '<S10>/z_commutMap_M1'
-  109      */
-  110     int16_T z_commutMap_M1_table[18];
-  111   
-  112     /* Computed Parameter: vec_hallToPos_Value
-  113      * Referenced by: '<S12>/vec_hallToPos'
-  114      */
-  115     int8_T vec_hallToPos_Value[8];
-  116   } ConstP;
-  117   
-  118   /* External inputs (root inport signals with auto storage) */
-  119   typedef struct {
-  120     uint8_T b_hallA;                     /* '<Root>/b_hallA ' */
-  121     uint8_T b_hallB;                     /* '<Root>/b_hallB' */
-  122     uint8_T b_hallC;                     /* '<Root>/b_hallC' */
-  123     int32_T r_DC;                        /* '<Root>/r_DC' */
-  124   } ExtU;
-  125   
-  126   /* External outputs (root outports fed by signals with auto storage) */
-  127   typedef struct {
-  128     int32_T DC_phaA;                     /* '<Root>/DC_phaA' */
-  129     int32_T DC_phaB;                     /* '<Root>/DC_phaB' */
-  130     int32_T DC_phaC;                     /* '<Root>/DC_phaC' */
-  131     int32_T n_mot;                       /* '<Root>/n_mot' */
-  132     int32_T a_elecAngle;                 /* '<Root>/a_elecAngle' */
-  133   } ExtY;
-  134   
-  135   /* Parameters (auto storage) */
-  136   struct P_ {
-  137     int32_T cf_speedCoef;                /* Variable: cf_speedCoef
-  138                                           * Referenced by: '<S16>/cf_spdCoef'
-  139                                           */
-  140     int32_T cf_speedFilt;                /* Variable: cf_speedFilt
-  141                                           * Referenced by: '<S16>/cf_speedFilt'
-  142                                           */
-  143     int32_T n_commAcvLo;                 /* Variable: n_commAcvLo
-  144                                           * Referenced by: '<S14>/n_commDeacv'
-  145                                           */
-  146     int32_T n_commDeacvHi;               /* Variable: n_commDeacvHi
-  147                                           * Referenced by: '<S14>/n_commDeacv'
-  148                                           */
-  149     int32_T n_motPhaAdvEna;              /* Variable: n_motPhaAdvEna
-  150                                           * Referenced by: '<S8>/n_motPhaAdvEna'
-  151                                           */
-  152     int32_T r_commDCDeacv;               /* Variable: r_commDCDeacv
-  153                                           * Referenced by: '<S14>/r_commDCDeacv'
-  154                                           */
-  155     int32_T r_phaAdvDC_XA[11];           /* Variable: r_phaAdvDC_XA
-  156                                           * Referenced by: '<S8>/r_phaAdvDC_XA'
-  157                                           */
-  158     int16_T a_phaAdv_M1[11];             /* Variable: a_phaAdv_M1
-  159                                           * Referenced by: '<S8>/a_phaAdv_M2'
-  160                                           */
-  161     int16_T dz_counterHi;                /* Variable: dz_counterHi
-  162                                           * Referenced by: '<S14>/dz_counter'
-  163                                           */
-  164     int16_T dz_counterLo;                /* Variable: dz_counterLo
-  165                                           * Referenced by: '<S14>/dz_counter'
-  166                                           */
-  167     int16_T z_maxCntRst;                 /* Variable: z_maxCntRst
-  168                                           * Referenced by:
-  169                                           *   '<S15>/z_counter'
-  170                                           *   '<S15>/z_counter2'
-  171                                           *   '<S16>/z_maxCntRst'
-  172                                           *   '<S17>/Constant1'
-  173                                           *   '<S17>/UnitDelay1'
-  174                                           */
-  175     uint8_T z_ctrlTypSel;                /* Variable: z_ctrlTypSel
-  176                                           * Referenced by: '<S7>/z_ctrlTypSel1'
-  177                                           */
-  178     boolean_T b_phaAdvEna;               /* Variable: b_phaAdvEna
-  179                                           * Referenced by: '<S8>/a_elecPeriod1'
-  180                                           */
-  181   };
-  182   
-  183   /* Parameters (auto storage) */
-  184   typedef struct P_ P;
-  185   
-  186   /* Real-time Model Data Structure */
-  187   struct tag_RTM {
-  188     P *defaultParam;
-  189     ExtU *inputs;
-  190     ExtY *outputs;
-  191     DW *dwork;
-  192   };
-  193   
-  194   /* Constant parameters (auto storage) */
-  195   extern const ConstP rtConstP;
-  196   
-  197   /* Model entry point functions */
-  198   extern void BLDC_controller_initialize(RT_MODEL *const rtM);
-  199   extern void BLDC_controller_step(RT_MODEL *const rtM);
-  200   
-  201   /*-
-  202    * These blocks were eliminated from the model due to optimizations:
-  203    *
-  204    * Block '<S14>/Scope2' : Unused code path elimination
-  205    * Block '<S8>/Scope' : Unused code path elimination
-  206    */
-  207   
-  208   /*-
-  209    * The generated code includes comments that allow you to trace directly
-  210    * back to the appropriate location in the model.  The basic format
-  211    * is <system>/block_name, where system is the system number (uniquely
-  212    * assigned by Simulink) and block_name is the name of the block.
-  213    *
-  214    * Note that this particular code originates from a subsystem build,
-  215    * and has its own system numbers different from the parent model.
-  216    * Refer to the system hierarchy for this subsystem below, and use the
-  217    * MATLAB hilite_system command to trace the generated code back
-  218    * to the parent model.  For example,
-  219    *
-  220    * hilite_system('BLDCmotorControl_R2017b/BLDC_controller')    - opens subsystem BLDCmotorControl_R2017b/BLDC_controller
-  221    * hilite_system('BLDCmotorControl_R2017b/BLDC_controller/Kp') - opens and selects block Kp
-  222    *
-  223    * Here is the system hierarchy for this model
-  224    *
-  225    * '<Root>' : 'BLDCmotorControl_R2017b'
-  226    * '<S1>'   : 'BLDCmotorControl_R2017b/BLDC_controller'
-  227    * '<S2>'   : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller'
-  228    * '<S3>'   : 'BLDCmotorControl_R2017b/BLDC_controller/signal_log1'
-  229    * '<S4>'   : 'BLDCmotorControl_R2017b/BLDC_controller/signal_log2'
-  230    * '<S5>'   : 'BLDCmotorControl_R2017b/BLDC_controller/signal_log3'
-  231    * '<S6>'   : 'BLDCmotorControl_R2017b/BLDC_controller/signal_log6'
-  232    * '<S7>'   : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F01_Preliminary_Calculations'
-  233    * '<S8>'   : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F02_Electrical_Angle_Calculation'
-  234    * '<S9>'   : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F03_Control_Method_Selection'
-  235    * '<S10>'  : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F04_Control_Type_Management'
-  236    * '<S11>'  : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F01_Preliminary_Calculations/F01_01_Edge_Detector'
-  237    * '<S12>'  : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F01_Preliminary_Calculations/F01_02_Position_Calculation'
-  238    * '<S13>'  : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F01_Preliminary_Calculations/F01_03_Direction_Detection'
-  239    * '<S14>'  : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F01_Preliminary_Calculations/F01_04_Speed_Calculation'
-  240    * '<S15>'  : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F01_Preliminary_Calculations/F01_04_Speed_Calculation/Counter_Hold_and_Error_Calculation'
-  241    * '<S16>'  : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F01_Preliminary_Calculations/F01_04_Speed_Calculation/Motor_Speed_Calculation'
-  242    * '<S17>'  : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F01_Preliminary_Calculations/F01_04_Speed_Calculation/rst_DelayLim'
-  243    * '<S18>'  : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F03_Control_Method_Selection/F03_01_Pure_Trapezoidal_Method'
-  244    * '<S19>'  : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F03_Control_Method_Selection/F03_02_Sinusoidal_Method'
-  245    * '<S20>'  : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F03_Control_Method_Selection/F03_03_Sinusoidal3rd_Method'
-  246    * '<S21>'  : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F03_Control_Method_Selection/signal_log1'
-  247    * '<S22>'  : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F03_Control_Method_Selection/signal_log2'
-  248    * '<S23>'  : 'BLDCmotorControl_R2017b/BLDC_controller/BLDC_controller/F03_Control_Method_Selection/signal_log6'
-  249    */
-  250   #endif                                 /* RTW_HEADER_BLDC_controller_h_ */
-  251   
-  252   /*
-  253    * File trailer for generated code.
-  254    *
-  255    * [EOF]
-  256    */
-  257   
-
-
-

- - \ No newline at end of file diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_interface.html b/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_interface.html deleted file mode 100644 index cab4ddf..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_interface.html +++ /dev/null @@ -1,788 +0,0 @@ - - - - - -Code Interface Report for BLDC_controller - - - - -

-Code Interface Report for BLDC_controller -

-

-Table of Contents -

-
-

- -Entry Point Functions - - -

-

-Function: BLDC_controller_initialize -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Prototype - - -void BLDC_controller_initialize(RT_MODEL *const rtM) - - -
-Description - -Initialization entry point of generated code -
-Timing - -Must be called exactly once -
-Arguments - - - - - - - - - - - - - - - - - -
- -# - - - - -Name - - - - -Data Type - - - - -Description - - -
-1 - -rtM - -RT_MODEL *const - -RTModel -
- -
-Return value - -None -
-Header file - -BLDC_controller.h -
-

-Function: BLDC_controller_step -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Prototype - - -void BLDC_controller_step(RT_MODEL *const rtM) - - -
-Description - -Output entry point of generated code -
-Timing - -Must be called periodically, every 6e-05 seconds -
-Arguments - - - - - - - - - - - - - - - - - -
- -# - - - - -Name - - - - -Data Type - - - - -Description - - -
-1 - -rtM - -RT_MODEL *const - -RTModel -
- -
-Return value - -None -
-Header file - -BLDC_controller.h -
-

- -Inports - - -

-[-] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -Block Name - - - - -Code Identifier - - - - -Data Type - - - - -Dimension - - -
-<S1>/b_hallA - - -Defined externally - - - -uint8_T - -1 -
-<S1>/b_hallB - - -Defined externally - - - -uint8_T - -1 -
-<S1>/b_hallC - - -Defined externally - - - -uint8_T - -1 -
-<S1>/r_DC - - -Defined externally - - - -int32_T - -1 -
-

- -Outports - - -

-[-] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -Block Name - - - - -Code Identifier - - - - -Data Type - - - - -Dimension - - -
-<S1>/DC_phaA - - -Defined externally - - - -int32_T - -1 -
-<S1>/DC_phaB - - -Defined externally - - - -int32_T - -1 -
-<S1>/DC_phaC - - -Defined externally - - - -int32_T - -1 -
-<S1>/n_mot - - -Defined externally - - - -int32_T - -1 -
-<S1>/a_elecAngle - - -Defined externally - - - -int32_T - -1 -
-

- -Interface Parameters - - -

-[-] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -Parameter Source - - - - -Code Identifier - - - - -Data Type - - - - -Dimension - - -
-cf_speedCoef - - -Defined externally - - - -int32_T - -1 -
-cf_speedFilt - - -Defined externally - - - -int32_T - -1 -
-n_commAcvLo - - -Defined externally - - - -int32_T - -1 -
-n_commDeacvHi - - -Defined externally - - - -int32_T - -1 -
-n_motPhaAdvEna - - -Defined externally - - - -int32_T - -1 -
-r_commDCDeacv - - -Defined externally - - - -int32_T - -1 -
-r_phaAdvDC_XA - - -Defined externally - - - -int32_T - -[1 11] -
-a_phaAdv_M1 - - -Defined externally - - - -int16_T - -[1 11] -
-dz_counterHi - - -Defined externally - - - -int16_T - -1 -
-dz_counterLo - - -Defined externally - - - -int16_T - -1 -
-z_maxCntRst - - -Defined externally - - - -int16_T - -1 -
-z_ctrlTypSel - - -Defined externally - - - -uint8_T - -1 -
-b_phaAdvEna - - -Defined externally - - - -boolean_T - -1 -
-

- -Data Stores - - -

-

-No data stores in the model; note that this report lists only data stores with non-auto storage class and global data stores -

- - - - diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_metrics.html b/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_metrics.html deleted file mode 100644 index 2795264..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_metrics.html +++ /dev/null @@ -1,913 +0,0 @@ - - - - -Static Code Metrics Report - - - - -

-Static Code Metrics Report -

-
-

-The static code metrics report provides statistics of the generated code. Metrics are estimated from static analysis of the generated code using the C data types specified in the 'Device details' section of the Configuration Parameter > Hardware Implementation pane: char 8, short 16, int 32, long 32, float 32, double 64, pointer 64 bits. If your model contains a Variant block, the Static Code Metrics Report does not contain data for the inactive variant. Actual object code metrics might differ due to target specific compiler and platform settings. Consult the Code Generation Advisor - - - - - - for options to improve code efficiency. -

- -
-
-

-Table of Contents -

-
    -
  1. - -File Information - - -
  2. -
  3. - -Global Variables - - -
  4. -
  5. - -Function Information - - -
  6. - -
- -
-

-1. File Information [hide] -

- - - - - - -
- - - - - - - - - - -
-

-[-] Summary (excludes ert_main.c) -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Number of .c files - -: - -2 - -  -
-Number of .h files - -: - -2 - -  -
-Lines of code - -: - -407 - -  -
-Lines - -: - -1,165 - -  -
- -
-

-[-] File details -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -File Name - - - - -Lines of Code - - - - -Lines - - - - -Generated On - - -
- -BLDC_controller.c - - - -255 - -697 - -06/11/2019 9:15 PM -
- -BLDC_controller.h - - - -81 - -257 - -06/11/2019 9:15 PM -
- -rtwtypes.h - - - -44 - -109 - -06/11/2019 9:15 PM -
- -BLDC_controller_data.c - - - -27 - -102 - -06/11/2019 9:15 PM -
- -
- -
-

-2. Global Variables [hide] -

- - - - - - - - - - -
-Global variables defined in the generated code. -
- - - - - - -
- - - - - - - - - - -
- - - - - - - - - -
- -Global Variable - - - - -Size (bytes) - - - - -Reads / Writes - - - - -Reads / Writes in a Function - - -
- -
- - - - - - - - - -
- -Total - - - - -0 - - - - -0  - - - - - - - -
- -
- -
- -
-

-3. Function Information [hide] -

- - - - - - - - - - -
-View function metrics in a call tree format or table format. Accumulated stack numbers include the estimated stack size of the function plus the maximum of the accumulated stack size of the subroutines that the function calls. -
- - - - - - - - - - -
- - - - - - - - - - -
-View:Call Tree | -Table - - -
- - - - - - -
- - - - - - - - - - - - - - -
- - - - - - - - - - - -
- -Function Name - - - - -Accumulated Stack Size (bytes) - - - - -Self Stack Size (bytes) - - - - -Lines of Code - - - - -Lines - - - - -Complexity - - -
- -
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - -
-[+]  -BLDC_controller_step - - - -69 - -60 - -181 - -514 - -24 -
- -
- - - - - - - - -
- - - - - - - - -
- - - - - - - - -
- -
- - - - - - -
- - - - - - - - - - - -
-      -BLDC_controller_initialize - - - -16 - -16 - -6 - -25 - -1 -
- -
- -
- -
- -
- -
- - - - - - - - - - - - -
- -
- - - - diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_replacements.html b/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_replacements.html deleted file mode 100644 index a86a3b0..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_replacements.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - -Code replacements in BLDC_controller - - - - -

-Code replacements in BLDC_controller -

-
- -
-
- -
-

-Code replacements for library 'C89/C90 (ANSI)'. The library comprises:

    -
  • -C89/C90 (ANSI) -
  • - -
- -

-

-To see the replacements and misses in the Code Replacement Viewer, look here. -

-

-No code replacements occurred.
-

- - - - diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_sid_map.js b/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_sid_map.js deleted file mode 100644 index d530b3c..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_sid_map.js +++ /dev/null @@ -1,463 +0,0 @@ -function RTW_SidParentMap() { - this.sidParentMap = new Array(); - this.sidParentMap["BLDCmotorControl_R2017b:365"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:1277"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:1278"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:1766"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:2687"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:1759"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:2688"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:2689"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:2690"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:2691"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:1760"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:1761"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:1763"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:2462"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:1765"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:443"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:2692"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:2693"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:444"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:2694"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:2695"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:2696"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:445"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:1831"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:1834"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:1837"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:1828"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:39"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:1762"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:1764"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:628"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:2463"] = "BLDCmotorControl_R2017b:29"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:2"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:3"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:4"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:5"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1660"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:6"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:215"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:282"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:361"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:416"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:417"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1379"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1667"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:418"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:419"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:420"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:421"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:422"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:423"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:424"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:537"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:425"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:426"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:427"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:428"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:429"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:430"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:431"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:432"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:433"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1659"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:434"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:457"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:589"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:447"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:448"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:449"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:450"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:451"] = "BLDCmotorControl_R2017b:2687"; - this.sidParentMap["BLDCmotorControl_R2017b:1832"] = "BLDCmotorControl_R2017b:1831"; - this.sidParentMap["BLDCmotorControl_R2017b:1833"] = "BLDCmotorControl_R2017b:1831"; - this.sidParentMap["BLDCmotorControl_R2017b:1835"] = "BLDCmotorControl_R2017b:1834"; - this.sidParentMap["BLDCmotorControl_R2017b:1836"] = "BLDCmotorControl_R2017b:1834"; - this.sidParentMap["BLDCmotorControl_R2017b:1838"] = "BLDCmotorControl_R2017b:1837"; - this.sidParentMap["BLDCmotorControl_R2017b:1839"] = "BLDCmotorControl_R2017b:1837"; - this.sidParentMap["BLDCmotorControl_R2017b:1829"] = "BLDCmotorControl_R2017b:1828"; - this.sidParentMap["BLDCmotorControl_R2017b:1830"] = "BLDCmotorControl_R2017b:1828"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:7"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:8"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:9"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1375"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1661"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:26"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:10"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:38"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:59"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1377"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:179"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:180"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1378"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1481"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:183"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:184"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1633"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1482"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1666"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1382"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1678"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:186"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:187"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:188"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:189"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:190"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:191"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:192"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:193"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:194"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:195"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:196"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:197"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1662"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1677"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:198"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1376"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:199"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:200"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1384"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:202"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1489"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1490"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:205"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:206"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1634"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1313"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:208"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:209"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:210"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:211"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1483"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1484"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1679"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1383"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:212"] = "BLDCmotorControl_R2017b:2687:6"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:535"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:216"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:217"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1460"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1461"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1680"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:221"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1464"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1465"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1466"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1467"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1669"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:231"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:518"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:534"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:232"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:233"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:235"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1468"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1469"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1470"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1471"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1472"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:241"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:542"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:543"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:242"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:243"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1462"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1463"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1681"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:578"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1473"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:536"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:538"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1668"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:623"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:258"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:545"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1474"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1670"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1475"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:262"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1476"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1477"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:546"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1478"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:514"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1479"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:512"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:547"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:521"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1671"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:522"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:278"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:279"] = "BLDCmotorControl_R2017b:2687:215"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:283"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:284"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:285"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:305"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:295"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:315"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:316"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:317"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:318"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:319"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:320"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:321"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:322"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:323"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:324"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:325"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:326"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:327"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:328"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:329"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:330"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:331"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:332"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:333"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:334"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:335"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:336"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:337"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:338"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:339"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:340"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:341"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:342"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:343"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:344"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:345"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:346"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:347"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:348"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:349"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:352"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:355"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:358"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:359"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:360"] = "BLDCmotorControl_R2017b:2687:282"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:362"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:364"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:365"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:366"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:367"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1385"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:370"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:372"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:373"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:374"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:375"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1389"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:376"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:377"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:378"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:379"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:380"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:381"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:382"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:385"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:386"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:387"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:388"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1386"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:389"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:391"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:393"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:394"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:395"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:396"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:398"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:401"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:411"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:412"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:413"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:414"] = "BLDCmotorControl_R2017b:2687:361"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:27"] = "BLDCmotorControl_R2017b:2687:26"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:28"] = "BLDCmotorControl_R2017b:2687:26"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:29"] = "BLDCmotorControl_R2017b:2687:26"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1535"] = "BLDCmotorControl_R2017b:2687:26"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:31"] = "BLDCmotorControl_R2017b:2687:26"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:32"] = "BLDCmotorControl_R2017b:2687:26"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:33"] = "BLDCmotorControl_R2017b:2687:26"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:37"] = "BLDCmotorControl_R2017b:2687:26"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:11"] = "BLDCmotorControl_R2017b:2687:10"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:12"] = "BLDCmotorControl_R2017b:2687:10"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:13"] = "BLDCmotorControl_R2017b:2687:10"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:14"] = "BLDCmotorControl_R2017b:2687:10"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:15"] = "BLDCmotorControl_R2017b:2687:10"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:17"] = "BLDCmotorControl_R2017b:2687:10"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:18"] = "BLDCmotorControl_R2017b:2687:10"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:22"] = "BLDCmotorControl_R2017b:2687:10"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:23"] = "BLDCmotorControl_R2017b:2687:10"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:39"] = "BLDCmotorControl_R2017b:2687:38"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1314"] = "BLDCmotorControl_R2017b:2687:38"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:42"] = "BLDCmotorControl_R2017b:2687:38"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:43"] = "BLDCmotorControl_R2017b:2687:38"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:44"] = "BLDCmotorControl_R2017b:2687:38"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:45"] = "BLDCmotorControl_R2017b:2687:38"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:48"] = "BLDCmotorControl_R2017b:2687:38"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:49"] = "BLDCmotorControl_R2017b:2687:38"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:50"] = "BLDCmotorControl_R2017b:2687:38"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:51"] = "BLDCmotorControl_R2017b:2687:38"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:52"] = "BLDCmotorControl_R2017b:2687:38"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1631"] = "BLDCmotorControl_R2017b:2687:38"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1318"] = "BLDCmotorControl_R2017b:2687:38"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:57"] = "BLDCmotorControl_R2017b:2687:38"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1632"] = "BLDCmotorControl_R2017b:2687:38"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1373"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1663"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1370"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:60"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:61"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1629"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1366"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1321"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:64"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1340"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:80"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:81"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:660"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:83"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1486"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1523"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1641"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1642"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:86"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1665"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1380"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1455"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1361"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1675"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1323"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1517"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1324"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:92"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1397"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1485"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1521"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:972"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1395"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1533"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:99"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:100"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1664"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1398"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1371"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1372"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1374"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1630"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:106"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1674"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:786"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1400"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:108"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1362"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1339"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1325"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1401"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:659"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:842"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1524"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1326"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1327"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:141"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1525"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1526"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:142"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1507"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1518"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1328"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1329"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1651"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:173"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1676"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1381"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1487"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1488"] = "BLDCmotorControl_R2017b:2687:59"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1341"] = "BLDCmotorControl_R2017b:2687:1340"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1344"] = "BLDCmotorControl_R2017b:2687:1340"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1454"] = "BLDCmotorControl_R2017b:2687:1340"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:169"] = "BLDCmotorControl_R2017b:2687:1340"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1358"] = "BLDCmotorControl_R2017b:2687:1340"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1359"] = "BLDCmotorControl_R2017b:2687:1340"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1431"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1640"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1430"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1639"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1672"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1637"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1433"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1434"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1435"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1436"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1437"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1438"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1439"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1623"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1635"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1636"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1645"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1646"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1647"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1648"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1649"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1440"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1650"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1627"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1624"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1628"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1443"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1444"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1638"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1446"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1447"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1448"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1625"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1450"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1451"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1673"] = "BLDCmotorControl_R2017b:2687:1401"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1651:1614"] = "BLDCmotorControl_R2017b:2687:1651"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1651:1615"] = "BLDCmotorControl_R2017b:2687:1651"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1651:1616"] = "BLDCmotorControl_R2017b:2687:1651"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1651:1617"] = "BLDCmotorControl_R2017b:2687:1651"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1651:1618"] = "BLDCmotorControl_R2017b:2687:1651"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1651:1619"] = "BLDCmotorControl_R2017b:2687:1651"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1651:1620"] = "BLDCmotorControl_R2017b:2687:1651"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1651:1621"] = "BLDCmotorControl_R2017b:2687:1651"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:1651:1622"] = "BLDCmotorControl_R2017b:2687:1651"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:286"] = "BLDCmotorControl_R2017b:2687:285"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:287"] = "BLDCmotorControl_R2017b:2687:285"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:288"] = "BLDCmotorControl_R2017b:2687:285"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:289"] = "BLDCmotorControl_R2017b:2687:285"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:290"] = "BLDCmotorControl_R2017b:2687:285"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:291"] = "BLDCmotorControl_R2017b:2687:285"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:292"] = "BLDCmotorControl_R2017b:2687:285"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:293"] = "BLDCmotorControl_R2017b:2687:285"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:294"] = "BLDCmotorControl_R2017b:2687:285"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:306"] = "BLDCmotorControl_R2017b:2687:305"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:307"] = "BLDCmotorControl_R2017b:2687:305"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:308"] = "BLDCmotorControl_R2017b:2687:305"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:309"] = "BLDCmotorControl_R2017b:2687:305"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:310"] = "BLDCmotorControl_R2017b:2687:305"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:311"] = "BLDCmotorControl_R2017b:2687:305"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:312"] = "BLDCmotorControl_R2017b:2687:305"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:313"] = "BLDCmotorControl_R2017b:2687:305"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:314"] = "BLDCmotorControl_R2017b:2687:305"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:296"] = "BLDCmotorControl_R2017b:2687:295"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:297"] = "BLDCmotorControl_R2017b:2687:295"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:298"] = "BLDCmotorControl_R2017b:2687:295"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:299"] = "BLDCmotorControl_R2017b:2687:295"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:300"] = "BLDCmotorControl_R2017b:2687:295"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:301"] = "BLDCmotorControl_R2017b:2687:295"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:302"] = "BLDCmotorControl_R2017b:2687:295"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:303"] = "BLDCmotorControl_R2017b:2687:295"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:304"] = "BLDCmotorControl_R2017b:2687:295"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:350"] = "BLDCmotorControl_R2017b:2687:349"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:351"] = "BLDCmotorControl_R2017b:2687:349"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:353"] = "BLDCmotorControl_R2017b:2687:352"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:354"] = "BLDCmotorControl_R2017b:2687:352"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:356"] = "BLDCmotorControl_R2017b:2687:355"; - this.sidParentMap["BLDCmotorControl_R2017b:2687:357"] = "BLDCmotorControl_R2017b:2687:355"; - this.getParentSid = function(sid) { return this.sidParentMap[sid];} -} - RTW_SidParentMap.instance = new RTW_SidParentMap(); diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_subsystems.html b/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_subsystems.html deleted file mode 100644 index 9a6f4de..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_subsystems.html +++ /dev/null @@ -1,220 +0,0 @@ - - - - -Non-virtual subsystems in BLDC_controller - - - - -

-Non-virtual subsystems in BLDC_controller -

-
- -
-
- -
-

-1. Code Mapping [hide] -

- - - - - - - - - - -
-

-The following table:

    -
  • -provides a mapping from the non-virtual subsystems in the model to functions or reusable functions in the generated code and -
  • -
  • -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'. -
  • - -
- -

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -Subsystem - - - - -Reuse Setting - - - - -Reuse Outcome - - - - -Outcome Diagnostic - - -
-<S15> - -Auto - -Inline - -normal -
-<S13> - -Auto - -Inline - -normal -
-<S18> - -Auto - -Inline - -normal -
-<S19> - -Auto - -Inline - -normal -
-<S20> - -Auto - -Inline - -normal -
-<S8> - -Auto - -Inline - -normal -
-<S1> - -Inline - -Inline - -normal -
- -
-

-2. Code Reuse Exceptions [hide] -

- - - - - - - - - - -
-

-The following section provides details on each exception that caused a non-virtual subsystem with a function packaging setting of

    -
  • -'Auto' to become an inlined code segment, -
  • -
  • -'Auto' to become a non-reusable function without arguments, or -
  • -
  • -'Reusable function' to become a non-reusable function without arguments. -
  • - -
-Note: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. -

- -
-
No reuse exception in model -
- - - - diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_survey.html b/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_survey.html deleted file mode 100644 index 82b1d69..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_survey.html +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - -Code Generation Report for 'BLDC_controller' - - - - -

-Code Generation Report for 'BLDC_controller' -

-
- -
-
- -
-

-Model Information -

- - - - - - -
-

- - - - - - - - - - - - - - - - - -
-Author - -MathWorks -
-Model Version - -1.883 -
-Tasking Mode - -MultiTasking -
-
- -Configuration settings at time of code generation - - -

- -
-

-Code Information -

- - - - - - -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-System Target File - -ert.tlc -
-Hardware Device Type - -ARM Compatible->ARM Cortex -
-Simulink Coder Version - -8.13 (R2017b) 24-Jul-2017 -
-Timestamp of Generated Source Code - -Tue Jun 11 21:14:57 2019 -
- - - -
-Type of Build - -Subsystem -
- Memory Information - - -
-Objectives Specified - -Execution efficiency, RAM efficiency -
- -

- -
-

-Additional Information -

- - - - - - -
- - - - - - - -
-Code Generation Advisor - -Not run -
- -
- - - - diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_trace.html b/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_trace.html deleted file mode 100644 index 76b0a2f..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_trace.html +++ /dev/null @@ -1,39 +0,0 @@ -Traceability Report for BLDC_controller - - -

Traceability Report for BLDC_controller

Table of Contents

  1. Eliminated / Virtual Blocks
  2. Traceable Simulink Blocks / Stateflow Objects / MATLAB Functions

Eliminated / Virtual Blocks

Block NameComment
<S1>/b_hallA -

Inport

<S1>/b_hallB

Inport

<S1>/b_hallC

Inport

<S1>/r_DC

Inport

<S1>/BLDC_controller

Virtual SubSystem

<S1>/From1

From

<S1>/From18

From

<S1>/From19

From

<S1>/From20

From

<S1>/From21

From

<S1>/From5

From

<S1>/From6

From

<S1>/From7

From

<S1>/From8

From

<S1>/Goto

Goto

<S1>/Goto1

Goto

<S1>/Goto18

Goto

<S1>/Goto19

Goto

<S1>/Goto2

Goto

<S1>/Goto20

Goto

<S1>/Goto21

Goto

<S1>/Goto22

Goto

<S1>/Goto3

Goto

<S1>/signal_log1

Virtual SubSystem

<S1>/signal_log2

Virtual SubSystem

<S1>/signal_log3

Virtual SubSystem

<S1>/signal_log6

Virtual SubSystem

<S1>/DC_phaA

Outport

<S1>/DC_phaB

Outport

<S1>/DC_phaC

Outport

<S1>/n_mot

Outport

<S1>/a_elecAngle

Outport

<S2>/b_hallA -

Inport

<S2>/b_hallB

Inport

<S2>/b_hallC

Inport

<S2>/r_DC

Inport

<S2>/F01_Preliminary_Calculations

Virtual SubSystem

<S2>/F03_Control_Method_Selection

Virtual SubSystem

<S2>/F04_Control_Type_Management

Virtual SubSystem

<S2>/From

From

<S2>/From1

From

<S2>/From10

From

<S2>/From11

From

<S2>/From2

From

<S2>/From3

From

<S2>/From4

From

<S2>/From5

From

<S2>/From6

From

<S2>/From7

From

<S2>/From8

From

<S2>/From9

From

<S2>/Goto

Goto

<S2>/Goto1

Goto

<S2>/Goto2

Goto

<S2>/Goto3

Goto

<S2>/Goto4

Goto

<S2>/Goto5

Goto

<S2>/Goto6

Goto

<S2>/Goto7

Goto

<S2>/Goto8

Goto

<S2>/Goto9

Goto

<S2>/Implemented_control_methods

Empty SubSystem

<S2>/Model_Info

Empty SubSystem

<S2>/DC_phaA

Outport

<S2>/DC_phaB

Outport

<S2>/DC_phaC

Outport

<S2>/n_mot

Outport

<S2>/a_elecAngle

Outport

<S3>/b_hallB

Inport

<S3>/Terminator_1

Terminator

<S4>/b_hallC

Inport

<S4>/Terminator_1

Terminator

<S5>/r_DC

Inport

<S5>/Terminator_1

Terminator

<S6>/b_hallA

Inport

<S6>/Terminator_1

Terminator

<S7>/b_hallA

Inport

<S7>/b_hallB

Inport

<S7>/b_hallC

Inport

<S7>/r_DC

Inport

<S7>/r_DCabs

Inport

<S7>/F01_01_Edge_Detector

Virtual SubSystem

<S7>/F01_02_Position_Calculation

Virtual SubSystem

<S7>/F01_04_Speed_Calculation

Virtual SubSystem

<S7>/From

From

<S7>/From1

From

<S7>/From10

From

<S7>/From11

From

<S7>/From12

From

<S7>/From13

From

<S7>/From14

From

<S7>/From15

From

<S7>/From16

From

<S7>/From17

From

<S7>/From18

From

<S7>/From19

From

<S7>/From2

From

<S7>/From3

From

<S7>/From36

From

<S7>/From38

From

<S7>/From4

From

<S7>/From5

From

<S7>/From6

From

<S7>/From7

From

<S7>/From8

From

<S7>/From9

From

<S7>/Goto

Goto

<S7>/Goto1

Goto

<S7>/Goto10

Goto

<S7>/Goto11

Goto

<S7>/Goto16

Goto

<S7>/Goto18

Goto

<S7>/Goto2

Goto

<S7>/Goto21

Goto

<S7>/Goto3

Goto

<S7>/Goto4

Goto

<S7>/Goto5

Goto

<S7>/Goto6

Goto

<S7>/Goto7

Goto

<S7>/Goto8

Goto

<S7>/Goto9

Goto

<S7>/z_ctrlTypSel

Outport

<S7>/z_pos

Outport

<S7>/z_dir

Outport

<S7>/z_counter

Outport

<S7>/z_counterRaw

Outport

<S7>/n_motAbs

Outport

<S7>/b_advCtrlEna

Outport

<S7>/n_mot

Outport

<S8>/r_DCabs

Inport

<S8>/z_pos

Inport

<S8>/z_dir

Inport

<S8>/z_counter

Inport

<S8>/z_counterRaw

Inport

<S8>/n_motAbs

Inport

<S8>/Constant2

Eliminated by code generation optimization

<S8>/From1

From

<S8>/From10

From

<S8>/From11

From

<S8>/From12

From

<S8>/From2

From

<S8>/From3

From

<S8>/From5

From

<S8>/From51

From

<S8>/From52

From

<S8>/From53

From

<S8>/From54

From

<S8>/From59

From

<S8>/From6

From

<S8>/From7

From

<S8>/From9

From

<S8>/Goto

Goto

<S8>/Goto1

Goto

<S8>/Goto2

Goto

<S8>/Goto3

Goto

<S8>/Goto4

Goto

<S8>/Goto5

Goto

<S8>/Goto7

Goto

<S8>/Goto8

Goto

<S8>/Goto9

Goto

<S8>/Mux

Mux

<S8>/Scope

Unused code path elimination

<S8>/a_elecPeriod2

Eliminated by code generation optimization

<S9>/z_ctrlTypSel

Inport

<S9>/a_elecAngleAdv

Inport

<S9>/From

From

<S9>/From10

From

<S9>/From13

From

<S9>/From14

From

<S9>/From15

From

<S9>/From16

From

<S9>/From17

From

<S9>/From18

From

<S9>/From19

From

<S9>/From20

From

<S9>/From4

From

<S9>/From5

From

<S9>/From6

From

<S9>/From7

From

<S9>/From8

From

<S9>/From9

From

<S9>/Goto

Goto

<S9>/Goto1

Goto

<S9>/Goto10

Goto

<S9>/Goto11

Goto

<S9>/Goto12

Goto

<S9>/Goto14

Goto

<S9>/Goto2

Goto

<S9>/Goto3

Goto

<S9>/Goto4

Goto

<S9>/Goto5

Goto

<S9>/Goto6

Goto

<S9>/Goto7

Goto

<S9>/Goto8

Goto

<S9>/Goto9

Goto

<S9>/signal_log1

Virtual SubSystem

<S9>/signal_log2

Virtual SubSystem

<S9>/signal_log6

Virtual SubSystem

<S9>/r_phaA

Outport

<S9>/r_phaB

Outport

<S9>/r_phaC

Outport

<S10>/r_DC

Inport

<S10>/r_phaA

Inport

<S10>/r_phaB

Inport

<S10>/r_phaC

Inport

<S10>/z_pos

Inport

<S10>/b_advCtrlEna

Inport

<S10>/Demux

Demux

<S10>/From

From

<S10>/From1

From

<S10>/From10

From

<S10>/From2

From

<S10>/From27

From

<S10>/From39

From

<S10>/From40

From

<S10>/From41

From

<S10>/From8

From

<S10>/From9

From

<S10>/Goto

Goto

<S10>/Goto1

Goto

<S10>/Goto10

Goto

<S10>/Goto2

Goto

<S10>/Goto4

Goto

<S10>/Goto6

Goto

<S10>/Goto7

Goto

<S10>/Goto8

Goto

<S10>/Goto9

Goto

<S10>/Mux2

Mux

<S10>/DC_phaA

Outport

<S10>/DC_phaB

Outport

<S10>/DC_phaC

Outport

<S11>/b_hallA

Inport

<S11>/b_hallB

Inport

<S11>/b_hallC

Inport

<S11>/b_edge

Outport

<S12>/b_hallA

Inport

<S12>/b_hallB

Inport

<S12>/b_hallC

Inport

<S12>/z_pos

Outport

<S13>/z_pos

Inport

<S13>/z_dir

Outport

<S13>/z_dirPrev

Outport

<S14>/r_DC

Inport

<S14>/r_DCabs

Inport

<S14>/z_ctrlTypSel

Inport

<S14>/b_edge

Inport

<S14>/z_dir

Inport

<S14>/z_dirPrev

Inport

<S14>/From

From

<S14>/From1

From

<S14>/From10

From

<S14>/From11

From

<S14>/From12

From

<S14>/From13

From

<S14>/From14

From

<S14>/From15

From

<S14>/From16

From

<S14>/From17

From

<S14>/From18

From

<S14>/From19

From

<S14>/From2

From

<S14>/From20

From

<S14>/From29

From

<S14>/From3

From

<S14>/From30

From

<S14>/From4

From

<S14>/From42

From

<S14>/From5

From

<S14>/From6

From

<S14>/From7

From

<S14>/From8

From

<S14>/From9

From

<S14>/Goto

Goto

<S14>/Goto1

Goto

<S14>/Goto10

Goto

<S14>/Goto15

Goto

<S14>/Goto16

Goto

<S14>/Goto17

Goto

<S14>/Goto18

Goto

<S14>/Goto2

Goto

<S14>/Goto22

Goto

<S14>/Goto3

Goto

<S14>/Goto5

Goto

<S14>/Goto6

Goto

<S14>/Goto8

Goto

<S14>/Goto9

Goto

<S14>/Motor_Speed_Calculation

Virtual SubSystem

<S14>/Mux1

Mux

<S14>/Mux2

Mux

<S14>/Scope2

Unused code path elimination

<S14>/rst_DelayLim

Masked SubSystem

<S14>/n_mot

Outport

<S14>/n_motAbs

Outport

<S14>/b_advCtrlEna

Outport

<S14>/z_counter

Outport

<S14>/z_counterRaw

Outport

<S15>/dz_counter

Outport

<S16>/z_dir

Inport

<S16>/z_dirPrev

Inport

<S16>/z_counter

Inport

<S16>/z_counterRaw

Inport

<S16>/From1

From

<S16>/From14

From

<S16>/From15

From

<S16>/From17

From

<S16>/From42

From

<S16>/From8

From

<S16>/Goto

Goto

<S16>/Goto1

Goto

<S16>/Goto2

Goto

<S16>/Goto22

Goto

<S16>/Goto3

Goto

<S16>/n_motRaw

Outport

<S16>/n_mot

Outport

<S16>/n_motAbs

Outport

<S17>/u

Inport

<S17>/rst

Inport

<S17>/y

Outport

<S18>/a_elecAngleAdv

Inport

<S18>/r_phaA_Trap

Outport

<S18>/r_phaB_Trap

Outport

<S18>/r_phaC_Trap

Outport

<S19>/a_elecAngleAdv

Inport

<S19>/r_phaA_Sin

Outport

<S19>/r_phaB_Sin

Outport

<S19>/r_phaC_Sin

Outport

<S20>/a_elecAngleAdv

Inport

<S20>/r_phaA_Sin3

Outport

<S20>/r_phaB_Sin3

Outport

<S20>/r_phaC_Sin3

Outport

<S21>/r_phaB

Inport

<S21>/Terminator_1

Terminator

<S22>/r_phaC

Inport

<S22>/Terminator_1

Terminator

<S23>/r_phaA

Inport

<S23>/Terminator_1

Terminator

Traceable Simulink Blocks / Stateflow Objects / MATLAB Functions

Subsystem: BLDCmotorControl_R2017b/BLDC_controller

No traceable objects in this Subsystem.

Subsystem: BLDCmotorControl_R2017b/BLDC_controller/signal_log1

No traceable objects in this Subsystem.

Subsystem: BLDCmotorControl_R2017b/BLDC_controller/signal_log2

No traceable objects in this Subsystem.

Subsystem: BLDCmotorControl_R2017b/BLDC_controller/signal_log3

No traceable objects in this Subsystem.

Subsystem: BLDCmotorControl_R2017b/BLDC_controller/signal_log6

No traceable objects in this Subsystem.

\ No newline at end of file diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_traceInfo.js b/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_traceInfo.js deleted file mode 100644 index d20fd5f..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/html/BLDC_controller_traceInfo.js +++ /dev/null @@ -1,1244 +0,0 @@ -function RTW_Sid2UrlHash() { - this.urlHashMap = new Array(); - /* /Abs1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1660"] = "BLDC_controller.c:179,182,183,185,188"; - /* /F02_Electrical_Angle_Calculation */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:215"] = "BLDC_controller.c:384,450"; - /* /If1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:434"] = "BLDC_controller.c:363,366,367,368,369,372,373,383,453,672,673&BLDC_controller.h:52"; - /* /F01_03_Direction_Detection */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:38"] = "BLDC_controller.c:216,253"; - /* /If2 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1313"] = "BLDC_controller.c:206,215"; - /* /z_ctrlTypSel1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:208"] = "BLDC_controller.c:364,368,456,458,555,571&BLDC_controller.h:176&ert_main.c:93"; - /* /Action Port */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:221"] = "BLDC_controller.c:385"; - /* /Constant16 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1464"] = "BLDC_controller.c:389,400"; - /* /Constant2 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1465"] = "msg=rtwMsg_CodeGenerationReducedBlock&block=BLDCmotorControl_R2017b:2687:1465"; - /* /Divide4 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1466"] = "BLDC_controller.c:412,417"; - /* /Divide5 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1467"] = "BLDC_controller.c:413,418"; - /* /Logical -Operator2 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1668"] = "BLDC_controller.c:423,427"; - /* /Math -Function */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:623"] = "BLDC_controller.c:443,444"; - /* /Product2 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:545"] = "BLDC_controller.c:439,441"; - /* /Product6 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1474"] = "BLDC_controller.c:414,417"; - /* /Relational -Operator4 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1670"] = "BLDC_controller.c:425,427"; - /* /Relational -Operator7 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1475"] = "BLDC_controller.c:395,400"; - /* /Scope */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:262"] = "msg=rtwMsg_reducedBlock&block=BLDCmotorControl_R2017b:2687:262"; - /* /Sum1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1476"] = "BLDC_controller.c:398,403,405"; - /* /Sum2 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1477"] = "BLDC_controller.c:415,417,418"; - /* /Sum3 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:546"] = "BLDC_controller.c:437,441"; - /* /Switch3 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1478"] = "BLDC_controller.c:387,400,401,403,408"; - /* /Switch_PhaAdv */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:514"] = "BLDC_controller.c:420,427,444,446,449&BLDC_controller.h:39"; - /* /a_elecAngle1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1479"] = "BLDC_controller.c:411,417,418"; - /* /a_elecPeriod1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:512"] = "BLDC_controller.c:421,427&BLDC_controller.h:179&ert_main.c:98"; - /* /a_elecPeriod2 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:547"] = "msg=rtwMsg_CodeGenerationReducedBlock&block=BLDCmotorControl_R2017b:2687:547"; - /* /a_phaAdv_M2 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:521"] = "BLDC_controller.c:433,434,435&BLDC_controller.h:159&ert_main.c:68"; - /* /n_motPhaAdvEna */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1671"] = "BLDC_controller.c:422,427&BLDC_controller.h:150&ert_main.c:53"; - /* /r_phaAdvDC_XA */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:522"] = "BLDC_controller.c:428,429,430,431&BLDC_controller.h:156&ert_main.c:63"; - /* /a_elecAngleAdv */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:278"] = "BLDC_controller.c:374,375"; - /* /a_elecAngle */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:279"] = "BLDC_controller.c:378,380"; - /* /F03_01_Pure_Trapezoidal_Method */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:285"] = "BLDC_controller.c:460,479"; - /* /F03_02_Sinusoidal_Method */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:305"] = "BLDC_controller.c:483,502"; - /* /F03_03_Sinusoidal3rd_Method */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:295"] = "BLDC_controller.c:506,525"; - /* /Merge */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:345"] = "BLDC_controller.h:41"; - /* /Merge1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:346"] = "BLDC_controller.h:42"; - /* /Merge2 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:347"] = "BLDC_controller.h:43"; - /* /Switch Case */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:348"] = "BLDC_controller.c:455,458,459,482,505,529"; - /* /Constant1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:370"] = "BLDC_controller.c:618,621,624,627,654,657"; - /* /Divide1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:373"] = "BLDC_controller.c:619,621,625,627,655,657"; - /* /Divide2 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:374"] = "BLDC_controller.c:559,610,611,612"; - /* /Divide4 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:375"] = "BLDC_controller.c:560,573,574,575"; - /* /Switch1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:401"] = "BLDC_controller.c:551,571,573,574,575,610,611,612,615"; - /* /z_commutMap_M1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:411"] = "BLDC_controller.c:558,568,577,578,580,583,584,585,587,590,592,596,599,602,606,609,610,611,612&BLDC_controller.h:108&BLDC_controller_data.c:86"; - /* /Bitwise -Operator */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1535"] = "BLDC_controller.c:190,198,199"; - /* /UnitDelay */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:31"] = "BLDC_controller.c:194,199,629,632&BLDC_controller.h:53"; - /* /UnitDelay1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:32"] = "BLDC_controller.c:195,199,634,637&BLDC_controller.h:54"; - /* /UnitDelay2 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:33"] = "BLDC_controller.c:196,200,639,642&BLDC_controller.h:55"; - /* /Selector */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:14"] = "BLDC_controller.c:224,227,249,251,396,401,403,404,405,566,577,584,594,599,604"; - /* /Sum */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:15"] = "BLDC_controller.c:169,176,177,397,403,404,405"; - /* /g_Ha */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:17"] = "BLDC_controller.c:170,176,390,404"; - /* /g_Hb */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:18"] = "BLDC_controller.c:171,177,391,404,405"; - /* /vec_hallToPos */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:22"] = "BLDC_controller.c:223,227,248,251,388,401,403,552,577,584,593,599,603&BLDC_controller.h:113&BLDC_controller_data.c:92"; - /* /Action Port */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1314"] = "BLDC_controller.c:217"; - /* /Constant20 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:42"] = "BLDC_controller.c:231,239"; - /* /Constant23 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:43"] = "BLDC_controller.c:232,242"; - /* /Constant24 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:44"] = "BLDC_controller.c:233,240"; - /* /Constant8 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:45"] = "BLDC_controller.c:234,239"; - /* /Logical -Operator3 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:48"] = "BLDC_controller.c:235,239"; - /* /Relational -Operator1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:49"] = "BLDC_controller.c:236,239"; - /* /Relational -Operator6 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:50"] = "BLDC_controller.c:237,239"; - /* /Sum2 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:51"] = "BLDC_controller.c:222,227"; - /* /Switch2 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:52"] = "BLDC_controller.c:230,239,240,242,245&BLDC_controller.h:50"; - /* /UnitDelay1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1631"] = "BLDC_controller.c:219,220&BLDC_controller.h:49"; - /* /UnitDelay2 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1318"] = "BLDC_controller.c:225,228,247,251&BLDC_controller.h:51"; - /* /Abs2 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1366"] = "BLDC_controller.c:345,346,347,349,352"; - /* /CTRL_COMM */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1321"] = "BLDC_controller.c:553,571"; - /* /Constant6 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:64"] = "BLDC_controller.c:203,254,262"; - /* /Counter_Hold_and_Error_Calculation */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1340"] = "BLDC_controller.c:256,274,681,688"; - /* /If1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1339"] = "BLDC_controller.c:202,215,291"; - /* /Logical -Operator2 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1325"] = "BLDC_controller.c:557,571,572"; - /* /Relational -Operator1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1524"] = "BLDC_controller.c:561,571,572"; - /* /Relational -Operator3 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1326"] = "BLDC_controller.c:562,571"; - /* /Relational -Operator4 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1327"] = "BLDC_controller.c:563,571"; - /* /Scope2 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:141"] = "msg=rtwMsg_reducedBlock&block=BLDCmotorControl_R2017b:2687:141"; - /* /Sign */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1525"] = "BLDC_controller.c:531,532,533,535,538"; - /* /Sign1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1526"] = "BLDC_controller.c:540,543,544,546,549"; - /* /Sum1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:142"] = "BLDC_controller.c:209,254,265,288,293,294,304,306"; - /* /UnitDelay1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1507"] = "BLDC_controller.c:212,259,266,647,648&BLDC_controller.h:47"; - /* /dz_counter */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1518"] = "BLDC_controller.c:354,355,356,358,359,564,572&BLDC_controller.h:57,162,165&ert_main.c:73,78"; - /* /n_commDeacv */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1328"] = "BLDC_controller.c:336,337,338,340,341,565,572&BLDC_controller.h:56,144,147&ert_main.c:43,48"; - /* /r_commDCDeacv */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1329"] = "BLDC_controller.c:554,571&BLDC_controller.h:153&ert_main.c:58"; - /* /z_counterRawPrev */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1341"] = "BLDC_controller.c:207,259,264&BLDC_controller.h:44"; - /* /Action Port */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1344"] = "BLDC_controller.c:257"; - /* /Sum4 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1454"] = "BLDC_controller.c:261,269&BLDC_controller.h:45"; - /* /z_counter2 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:169"] = "BLDC_controller.c:267,269,271,272,682,683&BLDC_controller.h:48,170&ert_main.c:85"; - /* /z_counter */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1358"] = "BLDC_controller.c:685,686&BLDC_controller.h:169&ert_main.c:84"; - /* /Abs5 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1672"] = "BLDC_controller.c:327,328,329,331,334"; - /* /Constant1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1637"] = "BLDC_controller.c:297,307"; - /* /Constant2 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1433"] = "BLDC_controller.c:315,324"; - /* /Constant3 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1434"] = "BLDC_controller.c:316,325"; - /* /Divide1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1435"] = "BLDC_controller.c:318,324,325"; - /* /Divide2 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1436"] = "BLDC_controller.c:314,324,325"; - /* /Divide3 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1437"] = "BLDC_controller.c:319,324"; - /* /Divide4 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1438"] = "BLDC_controller.c:301,309"; - /* /Logical -Operator1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1627"] = "BLDC_controller.c:300,306"; - /* /Relational -Operator2 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1624"] = "BLDC_controller.c:302,306"; - /* /Relational -Operator5 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1628"] = "BLDC_controller.c:303,306"; - /* /Sum1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1443"] = "BLDC_controller.c:320,324"; - /* /Sum2 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1444"] = "BLDC_controller.c:321,324"; - /* /Switch1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1638"] = "BLDC_controller.c:296,306,307,309,312"; - /* /UnitDelay2 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1446"] = "BLDC_controller.c:322,324,650,651&BLDC_controller.h:40"; - /* /cf_spdCoef */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1447"] = "BLDC_controller.c:298,309&BLDC_controller.h:138&ert_main.c:33"; - /* /cf_speedFilt */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1448"] = "BLDC_controller.c:317,324,325&BLDC_controller.h:141&ert_main.c:38"; - /* /z_maxCntRst */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1625"] = "BLDC_controller.c:299,306&BLDC_controller.h:171&ert_main.c:86"; - /* /Constant1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1651:1616"] = "BLDC_controller.c:204,276,283,285&BLDC_controller.h:172&ert_main.c:87"; - /* /Constant23 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1651:1617"] = "BLDC_controller.c:205,254,263"; - /* /Relational -Operator1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1651:1618"] = "BLDC_controller.c:208,276"; - /* /Switch1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1651:1619"] = "BLDC_controller.c:210,215,254,288"; - /* /Switch2 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1651:1620"] = "BLDC_controller.c:211,276,277,280,282,285"; - /* /UnitDelay1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:1651:1621"] = "BLDC_controller.c:213,276,278,280,644,645,678,679&BLDC_controller.h:46,173&ert_main.c:88"; - /* /Action Port */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:287"] = "BLDC_controller.c:461"; - /* /a_trapElecAngle_XA */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:288"] = "BLDC_controller.c:463,464,465"; - /* /r_trapPhaA_M1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:289"] = "BLDC_controller.c:467,468,469&BLDC_controller.h:63&BLDC_controller_data.c:29"; - /* /r_trapPhaB_M1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:290"] = "BLDC_controller.c:471,472,473&BLDC_controller.h:68&BLDC_controller_data.c:34"; - /* /r_trapPhaC_M1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:291"] = "BLDC_controller.c:475,476,477&BLDC_controller.h:73&BLDC_controller_data.c:39"; - /* /Action Port */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:307"] = "BLDC_controller.c:484"; - /* /a_sinElecAngle_XA */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:308"] = "BLDC_controller.c:486,487,488"; - /* /r_sinPhaA_M1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:309"] = "BLDC_controller.c:490,491,492&BLDC_controller.h:78&BLDC_controller_data.c:44"; - /* /r_sinPhaB_M1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:310"] = "BLDC_controller.c:494,495,496&BLDC_controller.h:83&BLDC_controller_data.c:51"; - /* /r_sinPhaC_M1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:311"] = "BLDC_controller.c:498,499,500&BLDC_controller.h:88&BLDC_controller_data.c:58"; - /* /Action Port */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:297"] = "BLDC_controller.c:507"; - /* /a_sinElecAngle_XA */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:298"] = "BLDC_controller.c:509,510,511"; - /* /r_sin3PhaA_M1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:299"] = "BLDC_controller.c:513,514,515&BLDC_controller.h:93&BLDC_controller_data.c:65"; - /* /r_sin3PhaB_M1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:300"] = "BLDC_controller.c:517,518,519&BLDC_controller.h:98&BLDC_controller_data.c:72"; - /* /r_sin3PhaC_M1 */ - this.urlHashMap["BLDCmotorControl_R2017b:2687:301"] = "BLDC_controller.c:521,522,523&BLDC_controller.h:103&BLDC_controller_data.c:79"; - this.getUrlHash = function(sid) { return this.urlHashMap[sid];} -} -RTW_Sid2UrlHash.instance = new RTW_Sid2UrlHash(); -function RTW_rtwnameSIDMap() { - this.rtwnameHashMap = new Array(); - this.sidHashMap = new Array(); - this.rtwnameHashMap[""] = {sid: "BLDC_controller"}; - this.sidHashMap["BLDC_controller"] = {rtwname: ""}; - this.rtwnameHashMap[""] = {sid: "BLDCmotorControl_R2017b:29"}; - this.sidHashMap["BLDCmotorControl_R2017b:29"] = {rtwname: ""}; - this.rtwnameHashMap[""] = {sid: "BLDCmotorControl_R2017b:2687"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687"] = {rtwname: ""}; - this.rtwnameHashMap[""] = {sid: "BLDCmotorControl_R2017b:1831"}; - this.sidHashMap["BLDCmotorControl_R2017b:1831"] = {rtwname: ""}; - this.rtwnameHashMap[""] = {sid: "BLDCmotorControl_R2017b:1834"}; - this.sidHashMap["BLDCmotorControl_R2017b:1834"] = {rtwname: ""}; - this.rtwnameHashMap[""] = {sid: "BLDCmotorControl_R2017b:1837"}; - this.sidHashMap["BLDCmotorControl_R2017b:1837"] = {rtwname: ""}; - this.rtwnameHashMap[""] = {sid: "BLDCmotorControl_R2017b:1828"}; - this.sidHashMap["BLDCmotorControl_R2017b:1828"] = {rtwname: ""}; - this.rtwnameHashMap[""] = {sid: "BLDCmotorControl_R2017b:2687:6"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:6"] = {rtwname: ""}; - this.rtwnameHashMap[""] = {sid: "BLDCmotorControl_R2017b:2687:215"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:215"] = {rtwname: ""}; - this.rtwnameHashMap[""] = {sid: "BLDCmotorControl_R2017b:2687:282"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:282"] = {rtwname: ""}; - this.rtwnameHashMap[""] = {sid: "BLDCmotorControl_R2017b:2687:361"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:361"] = {rtwname: ""}; - this.rtwnameHashMap[""] = {sid: "BLDCmotorControl_R2017b:2687:26"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:26"] = {rtwname: ""}; - this.rtwnameHashMap[""] = {sid: "BLDCmotorControl_R2017b:2687:10"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:10"] = {rtwname: ""}; - this.rtwnameHashMap[""] = {sid: "BLDCmotorControl_R2017b:2687:38"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:38"] = {rtwname: ""}; - this.rtwnameHashMap[""] = {sid: "BLDCmotorControl_R2017b:2687:59"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:59"] = {rtwname: ""}; - this.rtwnameHashMap[""] = {sid: "BLDCmotorControl_R2017b:2687:1340"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1340"] = {rtwname: ""}; - this.rtwnameHashMap[""] = {sid: "BLDCmotorControl_R2017b:2687:1401"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1401"] = {rtwname: ""}; - this.rtwnameHashMap[""] = {sid: "BLDCmotorControl_R2017b:2687:1651"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1651"] = {rtwname: ""}; - this.rtwnameHashMap[""] = {sid: "BLDCmotorControl_R2017b:2687:285"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:285"] = {rtwname: ""}; - this.rtwnameHashMap[""] = {sid: "BLDCmotorControl_R2017b:2687:305"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:305"] = {rtwname: ""}; - this.rtwnameHashMap[""] = {sid: "BLDCmotorControl_R2017b:2687:295"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:295"] = {rtwname: ""}; - this.rtwnameHashMap[""] = {sid: "BLDCmotorControl_R2017b:2687:349"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:349"] = {rtwname: ""}; - this.rtwnameHashMap[""] = {sid: "BLDCmotorControl_R2017b:2687:352"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:352"] = {rtwname: ""}; - this.rtwnameHashMap[""] = {sid: "BLDCmotorControl_R2017b:2687:355"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:355"] = {rtwname: ""}; - this.rtwnameHashMap["/b_hallA "] = {sid: "BLDCmotorControl_R2017b:365"}; - this.sidHashMap["BLDCmotorControl_R2017b:365"] = {rtwname: "/b_hallA "}; - this.rtwnameHashMap["/b_hallB"] = {sid: "BLDCmotorControl_R2017b:1277"}; - this.sidHashMap["BLDCmotorControl_R2017b:1277"] = {rtwname: "/b_hallB"}; - this.rtwnameHashMap["/b_hallC"] = {sid: "BLDCmotorControl_R2017b:1278"}; - this.sidHashMap["BLDCmotorControl_R2017b:1278"] = {rtwname: "/b_hallC"}; - this.rtwnameHashMap["/r_DC"] = {sid: "BLDCmotorControl_R2017b:1766"}; - this.sidHashMap["BLDCmotorControl_R2017b:1766"] = {rtwname: "/r_DC"}; - this.rtwnameHashMap["/BLDC_controller"] = {sid: "BLDCmotorControl_R2017b:2687"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687"] = {rtwname: "/BLDC_controller"}; - this.rtwnameHashMap["/From1"] = {sid: "BLDCmotorControl_R2017b:1759"}; - this.sidHashMap["BLDCmotorControl_R2017b:1759"] = {rtwname: "/From1"}; - this.rtwnameHashMap["/From18"] = {sid: "BLDCmotorControl_R2017b:2688"}; - this.sidHashMap["BLDCmotorControl_R2017b:2688"] = {rtwname: "/From18"}; - this.rtwnameHashMap["/From19"] = {sid: "BLDCmotorControl_R2017b:2689"}; - this.sidHashMap["BLDCmotorControl_R2017b:2689"] = {rtwname: "/From19"}; - this.rtwnameHashMap["/From20"] = {sid: "BLDCmotorControl_R2017b:2690"}; - this.sidHashMap["BLDCmotorControl_R2017b:2690"] = {rtwname: "/From20"}; - this.rtwnameHashMap["/From21"] = {sid: "BLDCmotorControl_R2017b:2691"}; - this.sidHashMap["BLDCmotorControl_R2017b:2691"] = {rtwname: "/From21"}; - this.rtwnameHashMap["/From5"] = {sid: "BLDCmotorControl_R2017b:1760"}; - this.sidHashMap["BLDCmotorControl_R2017b:1760"] = {rtwname: "/From5"}; - this.rtwnameHashMap["/From6"] = {sid: "BLDCmotorControl_R2017b:1761"}; - this.sidHashMap["BLDCmotorControl_R2017b:1761"] = {rtwname: "/From6"}; - this.rtwnameHashMap["/From7"] = {sid: "BLDCmotorControl_R2017b:1763"}; - this.sidHashMap["BLDCmotorControl_R2017b:1763"] = {rtwname: "/From7"}; - this.rtwnameHashMap["/From8"] = {sid: "BLDCmotorControl_R2017b:2462"}; - this.sidHashMap["BLDCmotorControl_R2017b:2462"] = {rtwname: "/From8"}; - this.rtwnameHashMap["/Goto"] = {sid: "BLDCmotorControl_R2017b:1765"}; - this.sidHashMap["BLDCmotorControl_R2017b:1765"] = {rtwname: "/Goto"}; - this.rtwnameHashMap["/Goto1"] = {sid: "BLDCmotorControl_R2017b:443"}; - this.sidHashMap["BLDCmotorControl_R2017b:443"] = {rtwname: "/Goto1"}; - this.rtwnameHashMap["/Goto18"] = {sid: "BLDCmotorControl_R2017b:2692"}; - this.sidHashMap["BLDCmotorControl_R2017b:2692"] = {rtwname: "/Goto18"}; - this.rtwnameHashMap["/Goto19"] = {sid: "BLDCmotorControl_R2017b:2693"}; - this.sidHashMap["BLDCmotorControl_R2017b:2693"] = {rtwname: "/Goto19"}; - this.rtwnameHashMap["/Goto2"] = {sid: "BLDCmotorControl_R2017b:444"}; - this.sidHashMap["BLDCmotorControl_R2017b:444"] = {rtwname: "/Goto2"}; - this.rtwnameHashMap["/Goto20"] = {sid: "BLDCmotorControl_R2017b:2694"}; - this.sidHashMap["BLDCmotorControl_R2017b:2694"] = {rtwname: "/Goto20"}; - this.rtwnameHashMap["/Goto21"] = {sid: "BLDCmotorControl_R2017b:2695"}; - this.sidHashMap["BLDCmotorControl_R2017b:2695"] = {rtwname: "/Goto21"}; - this.rtwnameHashMap["/Goto22"] = {sid: "BLDCmotorControl_R2017b:2696"}; - this.sidHashMap["BLDCmotorControl_R2017b:2696"] = {rtwname: "/Goto22"}; - this.rtwnameHashMap["/Goto3"] = {sid: "BLDCmotorControl_R2017b:445"}; - this.sidHashMap["BLDCmotorControl_R2017b:445"] = {rtwname: "/Goto3"}; - this.rtwnameHashMap["/signal_log1"] = {sid: "BLDCmotorControl_R2017b:1831"}; - this.sidHashMap["BLDCmotorControl_R2017b:1831"] = {rtwname: "/signal_log1"}; - this.rtwnameHashMap["/signal_log2"] = {sid: "BLDCmotorControl_R2017b:1834"}; - this.sidHashMap["BLDCmotorControl_R2017b:1834"] = {rtwname: "/signal_log2"}; - this.rtwnameHashMap["/signal_log3"] = {sid: "BLDCmotorControl_R2017b:1837"}; - this.sidHashMap["BLDCmotorControl_R2017b:1837"] = {rtwname: "/signal_log3"}; - this.rtwnameHashMap["/signal_log6"] = {sid: "BLDCmotorControl_R2017b:1828"}; - this.sidHashMap["BLDCmotorControl_R2017b:1828"] = {rtwname: "/signal_log6"}; - this.rtwnameHashMap["/DC_phaA"] = {sid: "BLDCmotorControl_R2017b:39"}; - this.sidHashMap["BLDCmotorControl_R2017b:39"] = {rtwname: "/DC_phaA"}; - this.rtwnameHashMap["/DC_phaB"] = {sid: "BLDCmotorControl_R2017b:1762"}; - this.sidHashMap["BLDCmotorControl_R2017b:1762"] = {rtwname: "/DC_phaB"}; - this.rtwnameHashMap["/DC_phaC"] = {sid: "BLDCmotorControl_R2017b:1764"}; - this.sidHashMap["BLDCmotorControl_R2017b:1764"] = {rtwname: "/DC_phaC"}; - this.rtwnameHashMap["/n_mot"] = {sid: "BLDCmotorControl_R2017b:628"}; - this.sidHashMap["BLDCmotorControl_R2017b:628"] = {rtwname: "/n_mot"}; - this.rtwnameHashMap["/a_elecAngle"] = {sid: "BLDCmotorControl_R2017b:2463"}; - this.sidHashMap["BLDCmotorControl_R2017b:2463"] = {rtwname: "/a_elecAngle"}; - this.rtwnameHashMap["/b_hallA "] = {sid: "BLDCmotorControl_R2017b:2687:2"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:2"] = {rtwname: "/b_hallA "}; - this.rtwnameHashMap["/b_hallB"] = {sid: "BLDCmotorControl_R2017b:2687:3"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:3"] = {rtwname: "/b_hallB"}; - this.rtwnameHashMap["/b_hallC"] = {sid: "BLDCmotorControl_R2017b:2687:4"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:4"] = {rtwname: "/b_hallC"}; - this.rtwnameHashMap["/r_DC"] = {sid: "BLDCmotorControl_R2017b:2687:5"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:5"] = {rtwname: "/r_DC"}; - this.rtwnameHashMap["/Abs1"] = {sid: "BLDCmotorControl_R2017b:2687:1660"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1660"] = {rtwname: "/Abs1"}; - this.rtwnameHashMap["/F01_Preliminary_Calculations"] = {sid: "BLDCmotorControl_R2017b:2687:6"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:6"] = {rtwname: "/F01_Preliminary_Calculations"}; - this.rtwnameHashMap["/F02_Electrical_Angle_Calculation"] = {sid: "BLDCmotorControl_R2017b:2687:215"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:215"] = {rtwname: "/F02_Electrical_Angle_Calculation"}; - this.rtwnameHashMap["/F03_Control_Method_Selection"] = {sid: "BLDCmotorControl_R2017b:2687:282"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:282"] = {rtwname: "/F03_Control_Method_Selection"}; - this.rtwnameHashMap["/F04_Control_Type_Management"] = {sid: "BLDCmotorControl_R2017b:2687:361"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:361"] = {rtwname: "/F04_Control_Type_Management"}; - this.rtwnameHashMap["/From"] = {sid: "BLDCmotorControl_R2017b:2687:416"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:416"] = {rtwname: "/From"}; - this.rtwnameHashMap["/From1"] = {sid: "BLDCmotorControl_R2017b:2687:417"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:417"] = {rtwname: "/From1"}; - this.rtwnameHashMap["/From10"] = {sid: "BLDCmotorControl_R2017b:2687:1379"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1379"] = {rtwname: "/From10"}; - this.rtwnameHashMap["/From11"] = {sid: "BLDCmotorControl_R2017b:2687:1667"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1667"] = {rtwname: "/From11"}; - this.rtwnameHashMap["/From2"] = {sid: "BLDCmotorControl_R2017b:2687:418"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:418"] = {rtwname: "/From2"}; - this.rtwnameHashMap["/From3"] = {sid: "BLDCmotorControl_R2017b:2687:419"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:419"] = {rtwname: "/From3"}; - this.rtwnameHashMap["/From4"] = {sid: "BLDCmotorControl_R2017b:2687:420"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:420"] = {rtwname: "/From4"}; - this.rtwnameHashMap["/From5"] = {sid: "BLDCmotorControl_R2017b:2687:421"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:421"] = {rtwname: "/From5"}; - this.rtwnameHashMap["/From6"] = {sid: "BLDCmotorControl_R2017b:2687:422"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:422"] = {rtwname: "/From6"}; - this.rtwnameHashMap["/From7"] = {sid: "BLDCmotorControl_R2017b:2687:423"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:423"] = {rtwname: "/From7"}; - this.rtwnameHashMap["/From8"] = {sid: "BLDCmotorControl_R2017b:2687:424"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:424"] = {rtwname: "/From8"}; - this.rtwnameHashMap["/From9"] = {sid: "BLDCmotorControl_R2017b:2687:537"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:537"] = {rtwname: "/From9"}; - this.rtwnameHashMap["/Goto"] = {sid: "BLDCmotorControl_R2017b:2687:425"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:425"] = {rtwname: "/Goto"}; - this.rtwnameHashMap["/Goto1"] = {sid: "BLDCmotorControl_R2017b:2687:426"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:426"] = {rtwname: "/Goto1"}; - this.rtwnameHashMap["/Goto2"] = {sid: "BLDCmotorControl_R2017b:2687:427"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:427"] = {rtwname: "/Goto2"}; - this.rtwnameHashMap["/Goto3"] = {sid: "BLDCmotorControl_R2017b:2687:428"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:428"] = {rtwname: "/Goto3"}; - this.rtwnameHashMap["/Goto4"] = {sid: "BLDCmotorControl_R2017b:2687:429"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:429"] = {rtwname: "/Goto4"}; - this.rtwnameHashMap["/Goto5"] = {sid: "BLDCmotorControl_R2017b:2687:430"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:430"] = {rtwname: "/Goto5"}; - this.rtwnameHashMap["/Goto6"] = {sid: "BLDCmotorControl_R2017b:2687:431"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:431"] = {rtwname: "/Goto6"}; - this.rtwnameHashMap["/Goto7"] = {sid: "BLDCmotorControl_R2017b:2687:432"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:432"] = {rtwname: "/Goto7"}; - this.rtwnameHashMap["/Goto8"] = {sid: "BLDCmotorControl_R2017b:2687:433"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:433"] = {rtwname: "/Goto8"}; - this.rtwnameHashMap["/Goto9"] = {sid: "BLDCmotorControl_R2017b:2687:1659"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1659"] = {rtwname: "/Goto9"}; - this.rtwnameHashMap["/If1"] = {sid: "BLDCmotorControl_R2017b:2687:434"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:434"] = {rtwname: "/If1"}; - this.rtwnameHashMap["/Implemented_control_methods"] = {sid: "BLDCmotorControl_R2017b:2687:457"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:457"] = {rtwname: "/Implemented_control_methods"}; - this.rtwnameHashMap["/Model_Info"] = {sid: "BLDCmotorControl_R2017b:2687:589"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:589"] = {rtwname: "/Model_Info"}; - this.rtwnameHashMap["/DC_phaA"] = {sid: "BLDCmotorControl_R2017b:2687:447"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:447"] = {rtwname: "/DC_phaA"}; - this.rtwnameHashMap["/DC_phaB"] = {sid: "BLDCmotorControl_R2017b:2687:448"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:448"] = {rtwname: "/DC_phaB"}; - this.rtwnameHashMap["/DC_phaC"] = {sid: "BLDCmotorControl_R2017b:2687:449"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:449"] = {rtwname: "/DC_phaC"}; - this.rtwnameHashMap["/n_mot"] = {sid: "BLDCmotorControl_R2017b:2687:450"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:450"] = {rtwname: "/n_mot"}; - this.rtwnameHashMap["/a_elecAngle"] = {sid: "BLDCmotorControl_R2017b:2687:451"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:451"] = {rtwname: "/a_elecAngle"}; - this.rtwnameHashMap["/b_hallB"] = {sid: "BLDCmotorControl_R2017b:1832"}; - this.sidHashMap["BLDCmotorControl_R2017b:1832"] = {rtwname: "/b_hallB"}; - this.rtwnameHashMap["/Terminator_1"] = {sid: "BLDCmotorControl_R2017b:1833"}; - this.sidHashMap["BLDCmotorControl_R2017b:1833"] = {rtwname: "/Terminator_1"}; - this.rtwnameHashMap["/b_hallC"] = {sid: "BLDCmotorControl_R2017b:1835"}; - this.sidHashMap["BLDCmotorControl_R2017b:1835"] = {rtwname: "/b_hallC"}; - this.rtwnameHashMap["/Terminator_1"] = {sid: "BLDCmotorControl_R2017b:1836"}; - this.sidHashMap["BLDCmotorControl_R2017b:1836"] = {rtwname: "/Terminator_1"}; - this.rtwnameHashMap["/r_DC"] = {sid: "BLDCmotorControl_R2017b:1838"}; - this.sidHashMap["BLDCmotorControl_R2017b:1838"] = {rtwname: "/r_DC"}; - this.rtwnameHashMap["/Terminator_1"] = {sid: "BLDCmotorControl_R2017b:1839"}; - this.sidHashMap["BLDCmotorControl_R2017b:1839"] = {rtwname: "/Terminator_1"}; - this.rtwnameHashMap["/b_hallA"] = {sid: "BLDCmotorControl_R2017b:1829"}; - this.sidHashMap["BLDCmotorControl_R2017b:1829"] = {rtwname: "/b_hallA"}; - this.rtwnameHashMap["/Terminator_1"] = {sid: "BLDCmotorControl_R2017b:1830"}; - this.sidHashMap["BLDCmotorControl_R2017b:1830"] = {rtwname: "/Terminator_1"}; - this.rtwnameHashMap["/b_hallA"] = {sid: "BLDCmotorControl_R2017b:2687:7"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:7"] = {rtwname: "/b_hallA"}; - this.rtwnameHashMap["/b_hallB"] = {sid: "BLDCmotorControl_R2017b:2687:8"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:8"] = {rtwname: "/b_hallB"}; - this.rtwnameHashMap["/b_hallC"] = {sid: "BLDCmotorControl_R2017b:2687:9"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:9"] = {rtwname: "/b_hallC"}; - this.rtwnameHashMap["/r_DC"] = {sid: "BLDCmotorControl_R2017b:2687:1375"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1375"] = {rtwname: "/r_DC"}; - this.rtwnameHashMap["/r_DCabs"] = {sid: "BLDCmotorControl_R2017b:2687:1661"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1661"] = {rtwname: "/r_DCabs"}; - this.rtwnameHashMap["/F01_01_Edge_Detector"] = {sid: "BLDCmotorControl_R2017b:2687:26"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:26"] = {rtwname: "/F01_01_Edge_Detector"}; - this.rtwnameHashMap["/F01_02_Position_Calculation"] = {sid: "BLDCmotorControl_R2017b:2687:10"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:10"] = {rtwname: "/F01_02_Position_Calculation"}; - this.rtwnameHashMap["/F01_03_Direction_Detection"] = {sid: "BLDCmotorControl_R2017b:2687:38"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:38"] = {rtwname: "/F01_03_Direction_Detection"}; - this.rtwnameHashMap["/F01_04_Speed_Calculation"] = {sid: "BLDCmotorControl_R2017b:2687:59"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:59"] = {rtwname: "/F01_04_Speed_Calculation"}; - this.rtwnameHashMap["/From"] = {sid: "BLDCmotorControl_R2017b:2687:1377"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1377"] = {rtwname: "/From"}; - this.rtwnameHashMap["/From1"] = {sid: "BLDCmotorControl_R2017b:2687:179"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:179"] = {rtwname: "/From1"}; - this.rtwnameHashMap["/From10"] = {sid: "BLDCmotorControl_R2017b:2687:180"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:180"] = {rtwname: "/From10"}; - this.rtwnameHashMap["/From11"] = {sid: "BLDCmotorControl_R2017b:2687:1378"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1378"] = {rtwname: "/From11"}; - this.rtwnameHashMap["/From12"] = {sid: "BLDCmotorControl_R2017b:2687:1481"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1481"] = {rtwname: "/From12"}; - this.rtwnameHashMap["/From13"] = {sid: "BLDCmotorControl_R2017b:2687:183"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:183"] = {rtwname: "/From13"}; - this.rtwnameHashMap["/From14"] = {sid: "BLDCmotorControl_R2017b:2687:184"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:184"] = {rtwname: "/From14"}; - this.rtwnameHashMap["/From15"] = {sid: "BLDCmotorControl_R2017b:2687:1633"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1633"] = {rtwname: "/From15"}; - this.rtwnameHashMap["/From16"] = {sid: "BLDCmotorControl_R2017b:2687:1482"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1482"] = {rtwname: "/From16"}; - this.rtwnameHashMap["/From17"] = {sid: "BLDCmotorControl_R2017b:2687:1666"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1666"] = {rtwname: "/From17"}; - this.rtwnameHashMap["/From18"] = {sid: "BLDCmotorControl_R2017b:2687:1382"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1382"] = {rtwname: "/From18"}; - this.rtwnameHashMap["/From19"] = {sid: "BLDCmotorControl_R2017b:2687:1678"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1678"] = {rtwname: "/From19"}; - this.rtwnameHashMap["/From2"] = {sid: "BLDCmotorControl_R2017b:2687:186"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:186"] = {rtwname: "/From2"}; - this.rtwnameHashMap["/From3"] = {sid: "BLDCmotorControl_R2017b:2687:187"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:187"] = {rtwname: "/From3"}; - this.rtwnameHashMap["/From36"] = {sid: "BLDCmotorControl_R2017b:2687:188"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:188"] = {rtwname: "/From36"}; - this.rtwnameHashMap["/From38"] = {sid: "BLDCmotorControl_R2017b:2687:189"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:189"] = {rtwname: "/From38"}; - this.rtwnameHashMap["/From4"] = {sid: "BLDCmotorControl_R2017b:2687:190"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:190"] = {rtwname: "/From4"}; - this.rtwnameHashMap["/From5"] = {sid: "BLDCmotorControl_R2017b:2687:191"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:191"] = {rtwname: "/From5"}; - this.rtwnameHashMap["/From6"] = {sid: "BLDCmotorControl_R2017b:2687:192"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:192"] = {rtwname: "/From6"}; - this.rtwnameHashMap["/From7"] = {sid: "BLDCmotorControl_R2017b:2687:193"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:193"] = {rtwname: "/From7"}; - this.rtwnameHashMap["/From8"] = {sid: "BLDCmotorControl_R2017b:2687:194"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:194"] = {rtwname: "/From8"}; - this.rtwnameHashMap["/From9"] = {sid: "BLDCmotorControl_R2017b:2687:195"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:195"] = {rtwname: "/From9"}; - this.rtwnameHashMap["/Goto"] = {sid: "BLDCmotorControl_R2017b:2687:196"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:196"] = {rtwname: "/Goto"}; - this.rtwnameHashMap["/Goto1"] = {sid: "BLDCmotorControl_R2017b:2687:197"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:197"] = {rtwname: "/Goto1"}; - this.rtwnameHashMap["/Goto10"] = {sid: "BLDCmotorControl_R2017b:2687:1662"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1662"] = {rtwname: "/Goto10"}; - this.rtwnameHashMap["/Goto11"] = {sid: "BLDCmotorControl_R2017b:2687:1677"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1677"] = {rtwname: "/Goto11"}; - this.rtwnameHashMap["/Goto16"] = {sid: "BLDCmotorControl_R2017b:2687:198"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:198"] = {rtwname: "/Goto16"}; - this.rtwnameHashMap["/Goto18"] = {sid: "BLDCmotorControl_R2017b:2687:1376"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1376"] = {rtwname: "/Goto18"}; - this.rtwnameHashMap["/Goto2"] = {sid: "BLDCmotorControl_R2017b:2687:199"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:199"] = {rtwname: "/Goto2"}; - this.rtwnameHashMap["/Goto21"] = {sid: "BLDCmotorControl_R2017b:2687:200"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:200"] = {rtwname: "/Goto21"}; - this.rtwnameHashMap["/Goto3"] = {sid: "BLDCmotorControl_R2017b:2687:1384"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1384"] = {rtwname: "/Goto3"}; - this.rtwnameHashMap["/Goto4"] = {sid: "BLDCmotorControl_R2017b:2687:202"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:202"] = {rtwname: "/Goto4"}; - this.rtwnameHashMap["/Goto5"] = {sid: "BLDCmotorControl_R2017b:2687:1489"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1489"] = {rtwname: "/Goto5"}; - this.rtwnameHashMap["/Goto6"] = {sid: "BLDCmotorControl_R2017b:2687:1490"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1490"] = {rtwname: "/Goto6"}; - this.rtwnameHashMap["/Goto7"] = {sid: "BLDCmotorControl_R2017b:2687:205"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:205"] = {rtwname: "/Goto7"}; - this.rtwnameHashMap["/Goto8"] = {sid: "BLDCmotorControl_R2017b:2687:206"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:206"] = {rtwname: "/Goto8"}; - this.rtwnameHashMap["/Goto9"] = {sid: "BLDCmotorControl_R2017b:2687:1634"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1634"] = {rtwname: "/Goto9"}; - this.rtwnameHashMap["/If2"] = {sid: "BLDCmotorControl_R2017b:2687:1313"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1313"] = {rtwname: "/If2"}; - this.rtwnameHashMap["/z_ctrlTypSel1"] = {sid: "BLDCmotorControl_R2017b:2687:208"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:208"] = {rtwname: "/z_ctrlTypSel1"}; - this.rtwnameHashMap["/z_ctrlTypSel"] = {sid: "BLDCmotorControl_R2017b:2687:209"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:209"] = {rtwname: "/z_ctrlTypSel"}; - this.rtwnameHashMap["/z_pos"] = {sid: "BLDCmotorControl_R2017b:2687:210"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:210"] = {rtwname: "/z_pos"}; - this.rtwnameHashMap["/z_dir"] = {sid: "BLDCmotorControl_R2017b:2687:211"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:211"] = {rtwname: "/z_dir"}; - this.rtwnameHashMap["/z_counter"] = {sid: "BLDCmotorControl_R2017b:2687:1483"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1483"] = {rtwname: "/z_counter"}; - this.rtwnameHashMap["/z_counterRaw"] = {sid: "BLDCmotorControl_R2017b:2687:1484"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1484"] = {rtwname: "/z_counterRaw"}; - this.rtwnameHashMap["/n_motAbs"] = {sid: "BLDCmotorControl_R2017b:2687:1679"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1679"] = {rtwname: "/n_motAbs"}; - this.rtwnameHashMap["/b_advCtrlEna"] = {sid: "BLDCmotorControl_R2017b:2687:1383"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1383"] = {rtwname: "/b_advCtrlEna"}; - this.rtwnameHashMap["/n_mot "] = {sid: "BLDCmotorControl_R2017b:2687:212"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:212"] = {rtwname: "/n_mot "}; - this.rtwnameHashMap["/r_DCabs"] = {sid: "BLDCmotorControl_R2017b:2687:535"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:535"] = {rtwname: "/r_DCabs"}; - this.rtwnameHashMap["/z_pos"] = {sid: "BLDCmotorControl_R2017b:2687:216"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:216"] = {rtwname: "/z_pos"}; - this.rtwnameHashMap["/z_dir"] = {sid: "BLDCmotorControl_R2017b:2687:217"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:217"] = {rtwname: "/z_dir"}; - this.rtwnameHashMap["/z_counter"] = {sid: "BLDCmotorControl_R2017b:2687:1460"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1460"] = {rtwname: "/z_counter"}; - this.rtwnameHashMap["/z_counterRaw"] = {sid: "BLDCmotorControl_R2017b:2687:1461"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1461"] = {rtwname: "/z_counterRaw"}; - this.rtwnameHashMap["/n_motAbs"] = {sid: "BLDCmotorControl_R2017b:2687:1680"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1680"] = {rtwname: "/n_motAbs"}; - this.rtwnameHashMap["/Action Port"] = {sid: "BLDCmotorControl_R2017b:2687:221"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:221"] = {rtwname: "/Action Port"}; - this.rtwnameHashMap["/Constant16"] = {sid: "BLDCmotorControl_R2017b:2687:1464"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1464"] = {rtwname: "/Constant16"}; - this.rtwnameHashMap["/Constant2"] = {sid: "BLDCmotorControl_R2017b:2687:1465"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1465"] = {rtwname: "/Constant2"}; - this.rtwnameHashMap["/Divide4"] = {sid: "BLDCmotorControl_R2017b:2687:1466"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1466"] = {rtwname: "/Divide4"}; - this.rtwnameHashMap["/Divide5"] = {sid: "BLDCmotorControl_R2017b:2687:1467"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1467"] = {rtwname: "/Divide5"}; - this.rtwnameHashMap["/From1"] = {sid: "BLDCmotorControl_R2017b:2687:1669"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1669"] = {rtwname: "/From1"}; - this.rtwnameHashMap["/From10"] = {sid: "BLDCmotorControl_R2017b:2687:231"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:231"] = {rtwname: "/From10"}; - this.rtwnameHashMap["/From11"] = {sid: "BLDCmotorControl_R2017b:2687:518"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:518"] = {rtwname: "/From11"}; - this.rtwnameHashMap["/From12"] = {sid: "BLDCmotorControl_R2017b:2687:534"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:534"] = {rtwname: "/From12"}; - this.rtwnameHashMap["/From2"] = {sid: "BLDCmotorControl_R2017b:2687:232"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:232"] = {rtwname: "/From2"}; - this.rtwnameHashMap["/From3"] = {sid: "BLDCmotorControl_R2017b:2687:233"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:233"] = {rtwname: "/From3"}; - this.rtwnameHashMap["/From5"] = {sid: "BLDCmotorControl_R2017b:2687:235"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:235"] = {rtwname: "/From5"}; - this.rtwnameHashMap["/From51"] = {sid: "BLDCmotorControl_R2017b:2687:1468"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1468"] = {rtwname: "/From51"}; - this.rtwnameHashMap["/From52"] = {sid: "BLDCmotorControl_R2017b:2687:1469"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1469"] = {rtwname: "/From52"}; - this.rtwnameHashMap["/From53"] = {sid: "BLDCmotorControl_R2017b:2687:1470"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1470"] = {rtwname: "/From53"}; - this.rtwnameHashMap["/From54"] = {sid: "BLDCmotorControl_R2017b:2687:1471"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1471"] = {rtwname: "/From54"}; - this.rtwnameHashMap["/From59"] = {sid: "BLDCmotorControl_R2017b:2687:1472"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1472"] = {rtwname: "/From59"}; - this.rtwnameHashMap["/From6"] = {sid: "BLDCmotorControl_R2017b:2687:241"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:241"] = {rtwname: "/From6"}; - this.rtwnameHashMap["/From7"] = {sid: "BLDCmotorControl_R2017b:2687:542"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:542"] = {rtwname: "/From7"}; - this.rtwnameHashMap["/From9"] = {sid: "BLDCmotorControl_R2017b:2687:543"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:543"] = {rtwname: "/From9"}; - this.rtwnameHashMap["/Goto"] = {sid: "BLDCmotorControl_R2017b:2687:242"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:242"] = {rtwname: "/Goto"}; - this.rtwnameHashMap["/Goto1"] = {sid: "BLDCmotorControl_R2017b:2687:243"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:243"] = {rtwname: "/Goto1"}; - this.rtwnameHashMap["/Goto2"] = {sid: "BLDCmotorControl_R2017b:2687:1462"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1462"] = {rtwname: "/Goto2"}; - this.rtwnameHashMap["/Goto3"] = {sid: "BLDCmotorControl_R2017b:2687:1463"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1463"] = {rtwname: "/Goto3"}; - this.rtwnameHashMap["/Goto4"] = {sid: "BLDCmotorControl_R2017b:2687:1681"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1681"] = {rtwname: "/Goto4"}; - this.rtwnameHashMap["/Goto5"] = {sid: "BLDCmotorControl_R2017b:2687:578"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:578"] = {rtwname: "/Goto5"}; - this.rtwnameHashMap["/Goto7"] = {sid: "BLDCmotorControl_R2017b:2687:1473"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1473"] = {rtwname: "/Goto7"}; - this.rtwnameHashMap["/Goto8"] = {sid: "BLDCmotorControl_R2017b:2687:536"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:536"] = {rtwname: "/Goto8"}; - this.rtwnameHashMap["/Goto9"] = {sid: "BLDCmotorControl_R2017b:2687:538"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:538"] = {rtwname: "/Goto9"}; - this.rtwnameHashMap["/Logical Operator2"] = {sid: "BLDCmotorControl_R2017b:2687:1668"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1668"] = {rtwname: "/Logical Operator2"}; - this.rtwnameHashMap["/Math Function"] = {sid: "BLDCmotorControl_R2017b:2687:623"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:623"] = {rtwname: "/Math Function"}; - this.rtwnameHashMap["/Mux"] = {sid: "BLDCmotorControl_R2017b:2687:258"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:258"] = {rtwname: "/Mux"}; - this.rtwnameHashMap["/Product2"] = {sid: "BLDCmotorControl_R2017b:2687:545"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:545"] = {rtwname: "/Product2"}; - this.rtwnameHashMap["/Product6"] = {sid: "BLDCmotorControl_R2017b:2687:1474"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1474"] = {rtwname: "/Product6"}; - this.rtwnameHashMap["/Relational Operator4"] = {sid: "BLDCmotorControl_R2017b:2687:1670"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1670"] = {rtwname: "/Relational Operator4"}; - this.rtwnameHashMap["/Relational Operator7"] = {sid: "BLDCmotorControl_R2017b:2687:1475"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1475"] = {rtwname: "/Relational Operator7"}; - this.rtwnameHashMap["/Scope"] = {sid: "BLDCmotorControl_R2017b:2687:262"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:262"] = {rtwname: "/Scope"}; - this.rtwnameHashMap["/Sum1"] = {sid: "BLDCmotorControl_R2017b:2687:1476"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1476"] = {rtwname: "/Sum1"}; - this.rtwnameHashMap["/Sum2"] = {sid: "BLDCmotorControl_R2017b:2687:1477"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1477"] = {rtwname: "/Sum2"}; - this.rtwnameHashMap["/Sum3"] = {sid: "BLDCmotorControl_R2017b:2687:546"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:546"] = {rtwname: "/Sum3"}; - this.rtwnameHashMap["/Switch3"] = {sid: "BLDCmotorControl_R2017b:2687:1478"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1478"] = {rtwname: "/Switch3"}; - this.rtwnameHashMap["/Switch_PhaAdv"] = {sid: "BLDCmotorControl_R2017b:2687:514"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:514"] = {rtwname: "/Switch_PhaAdv"}; - this.rtwnameHashMap["/a_elecAngle1"] = {sid: "BLDCmotorControl_R2017b:2687:1479"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1479"] = {rtwname: "/a_elecAngle1"}; - this.rtwnameHashMap["/a_elecPeriod1"] = {sid: "BLDCmotorControl_R2017b:2687:512"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:512"] = {rtwname: "/a_elecPeriod1"}; - this.rtwnameHashMap["/a_elecPeriod2"] = {sid: "BLDCmotorControl_R2017b:2687:547"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:547"] = {rtwname: "/a_elecPeriod2"}; - this.rtwnameHashMap["/a_phaAdv_M2"] = {sid: "BLDCmotorControl_R2017b:2687:521"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:521"] = {rtwname: "/a_phaAdv_M2"}; - this.rtwnameHashMap["/n_motPhaAdvEna"] = {sid: "BLDCmotorControl_R2017b:2687:1671"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1671"] = {rtwname: "/n_motPhaAdvEna"}; - this.rtwnameHashMap["/r_phaAdvDC_XA"] = {sid: "BLDCmotorControl_R2017b:2687:522"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:522"] = {rtwname: "/r_phaAdvDC_XA"}; - this.rtwnameHashMap["/a_elecAngleAdv"] = {sid: "BLDCmotorControl_R2017b:2687:278"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:278"] = {rtwname: "/a_elecAngleAdv"}; - this.rtwnameHashMap["/a_elecAngle"] = {sid: "BLDCmotorControl_R2017b:2687:279"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:279"] = {rtwname: "/a_elecAngle"}; - this.rtwnameHashMap["/z_ctrlTypSel"] = {sid: "BLDCmotorControl_R2017b:2687:283"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:283"] = {rtwname: "/z_ctrlTypSel"}; - this.rtwnameHashMap["/a_elecAngleAdv"] = {sid: "BLDCmotorControl_R2017b:2687:284"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:284"] = {rtwname: "/a_elecAngleAdv"}; - this.rtwnameHashMap["/F03_01_Pure_Trapezoidal_Method"] = {sid: "BLDCmotorControl_R2017b:2687:285"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:285"] = {rtwname: "/F03_01_Pure_Trapezoidal_Method"}; - this.rtwnameHashMap["/F03_02_Sinusoidal_Method"] = {sid: "BLDCmotorControl_R2017b:2687:305"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:305"] = {rtwname: "/F03_02_Sinusoidal_Method"}; - this.rtwnameHashMap["/F03_03_Sinusoidal3rd_Method"] = {sid: "BLDCmotorControl_R2017b:2687:295"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:295"] = {rtwname: "/F03_03_Sinusoidal3rd_Method"}; - this.rtwnameHashMap["/From"] = {sid: "BLDCmotorControl_R2017b:2687:315"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:315"] = {rtwname: "/From"}; - this.rtwnameHashMap["/From10"] = {sid: "BLDCmotorControl_R2017b:2687:316"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:316"] = {rtwname: "/From10"}; - this.rtwnameHashMap["/From13"] = {sid: "BLDCmotorControl_R2017b:2687:317"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:317"] = {rtwname: "/From13"}; - this.rtwnameHashMap["/From14"] = {sid: "BLDCmotorControl_R2017b:2687:318"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:318"] = {rtwname: "/From14"}; - this.rtwnameHashMap["/From15"] = {sid: "BLDCmotorControl_R2017b:2687:319"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:319"] = {rtwname: "/From15"}; - this.rtwnameHashMap["/From16"] = {sid: "BLDCmotorControl_R2017b:2687:320"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:320"] = {rtwname: "/From16"}; - this.rtwnameHashMap["/From17"] = {sid: "BLDCmotorControl_R2017b:2687:321"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:321"] = {rtwname: "/From17"}; - this.rtwnameHashMap["/From18"] = {sid: "BLDCmotorControl_R2017b:2687:322"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:322"] = {rtwname: "/From18"}; - this.rtwnameHashMap["/From19"] = {sid: "BLDCmotorControl_R2017b:2687:323"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:323"] = {rtwname: "/From19"}; - this.rtwnameHashMap["/From20"] = {sid: "BLDCmotorControl_R2017b:2687:324"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:324"] = {rtwname: "/From20"}; - this.rtwnameHashMap["/From4"] = {sid: "BLDCmotorControl_R2017b:2687:325"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:325"] = {rtwname: "/From4"}; - this.rtwnameHashMap["/From5"] = {sid: "BLDCmotorControl_R2017b:2687:326"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:326"] = {rtwname: "/From5"}; - this.rtwnameHashMap["/From6"] = {sid: "BLDCmotorControl_R2017b:2687:327"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:327"] = {rtwname: "/From6"}; - this.rtwnameHashMap["/From7"] = {sid: "BLDCmotorControl_R2017b:2687:328"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:328"] = {rtwname: "/From7"}; - this.rtwnameHashMap["/From8"] = {sid: "BLDCmotorControl_R2017b:2687:329"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:329"] = {rtwname: "/From8"}; - this.rtwnameHashMap["/From9"] = {sid: "BLDCmotorControl_R2017b:2687:330"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:330"] = {rtwname: "/From9"}; - this.rtwnameHashMap["/Goto"] = {sid: "BLDCmotorControl_R2017b:2687:331"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:331"] = {rtwname: "/Goto"}; - this.rtwnameHashMap["/Goto1"] = {sid: "BLDCmotorControl_R2017b:2687:332"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:332"] = {rtwname: "/Goto1"}; - this.rtwnameHashMap["/Goto10"] = {sid: "BLDCmotorControl_R2017b:2687:333"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:333"] = {rtwname: "/Goto10"}; - this.rtwnameHashMap["/Goto11"] = {sid: "BLDCmotorControl_R2017b:2687:334"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:334"] = {rtwname: "/Goto11"}; - this.rtwnameHashMap["/Goto12"] = {sid: "BLDCmotorControl_R2017b:2687:335"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:335"] = {rtwname: "/Goto12"}; - this.rtwnameHashMap["/Goto14"] = {sid: "BLDCmotorControl_R2017b:2687:336"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:336"] = {rtwname: "/Goto14"}; - this.rtwnameHashMap["/Goto2"] = {sid: "BLDCmotorControl_R2017b:2687:337"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:337"] = {rtwname: "/Goto2"}; - this.rtwnameHashMap["/Goto3"] = {sid: "BLDCmotorControl_R2017b:2687:338"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:338"] = {rtwname: "/Goto3"}; - this.rtwnameHashMap["/Goto4"] = {sid: "BLDCmotorControl_R2017b:2687:339"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:339"] = {rtwname: "/Goto4"}; - this.rtwnameHashMap["/Goto5"] = {sid: "BLDCmotorControl_R2017b:2687:340"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:340"] = {rtwname: "/Goto5"}; - this.rtwnameHashMap["/Goto6"] = {sid: "BLDCmotorControl_R2017b:2687:341"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:341"] = {rtwname: "/Goto6"}; - this.rtwnameHashMap["/Goto7"] = {sid: "BLDCmotorControl_R2017b:2687:342"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:342"] = {rtwname: "/Goto7"}; - this.rtwnameHashMap["/Goto8"] = {sid: "BLDCmotorControl_R2017b:2687:343"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:343"] = {rtwname: "/Goto8"}; - this.rtwnameHashMap["/Goto9"] = {sid: "BLDCmotorControl_R2017b:2687:344"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:344"] = {rtwname: "/Goto9"}; - this.rtwnameHashMap["/Merge"] = {sid: "BLDCmotorControl_R2017b:2687:345"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:345"] = {rtwname: "/Merge"}; - this.rtwnameHashMap["/Merge1"] = {sid: "BLDCmotorControl_R2017b:2687:346"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:346"] = {rtwname: "/Merge1"}; - this.rtwnameHashMap["/Merge2"] = {sid: "BLDCmotorControl_R2017b:2687:347"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:347"] = {rtwname: "/Merge2"}; - this.rtwnameHashMap["/Switch Case"] = {sid: "BLDCmotorControl_R2017b:2687:348"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:348"] = {rtwname: "/Switch Case"}; - this.rtwnameHashMap["/signal_log1"] = {sid: "BLDCmotorControl_R2017b:2687:349"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:349"] = {rtwname: "/signal_log1"}; - this.rtwnameHashMap["/signal_log2"] = {sid: "BLDCmotorControl_R2017b:2687:352"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:352"] = {rtwname: "/signal_log2"}; - this.rtwnameHashMap["/signal_log6"] = {sid: "BLDCmotorControl_R2017b:2687:355"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:355"] = {rtwname: "/signal_log6"}; - this.rtwnameHashMap["/r_phaA"] = {sid: "BLDCmotorControl_R2017b:2687:358"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:358"] = {rtwname: "/r_phaA"}; - this.rtwnameHashMap["/r_phaB"] = {sid: "BLDCmotorControl_R2017b:2687:359"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:359"] = {rtwname: "/r_phaB"}; - this.rtwnameHashMap["/r_phaC "] = {sid: "BLDCmotorControl_R2017b:2687:360"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:360"] = {rtwname: "/r_phaC "}; - this.rtwnameHashMap["/r_DC"] = {sid: "BLDCmotorControl_R2017b:2687:362"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:362"] = {rtwname: "/r_DC"}; - this.rtwnameHashMap["/r_phaA"] = {sid: "BLDCmotorControl_R2017b:2687:364"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:364"] = {rtwname: "/r_phaA"}; - this.rtwnameHashMap["/r_phaB"] = {sid: "BLDCmotorControl_R2017b:2687:365"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:365"] = {rtwname: "/r_phaB"}; - this.rtwnameHashMap["/r_phaC"] = {sid: "BLDCmotorControl_R2017b:2687:366"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:366"] = {rtwname: "/r_phaC"}; - this.rtwnameHashMap["/z_pos"] = {sid: "BLDCmotorControl_R2017b:2687:367"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:367"] = {rtwname: "/z_pos"}; - this.rtwnameHashMap["/b_advCtrlEna"] = {sid: "BLDCmotorControl_R2017b:2687:1385"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1385"] = {rtwname: "/b_advCtrlEna"}; - this.rtwnameHashMap["/Constant1"] = {sid: "BLDCmotorControl_R2017b:2687:370"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:370"] = {rtwname: "/Constant1"}; - this.rtwnameHashMap["/Demux"] = {sid: "BLDCmotorControl_R2017b:2687:372"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:372"] = {rtwname: "/Demux"}; - this.rtwnameHashMap["/Divide1"] = {sid: "BLDCmotorControl_R2017b:2687:373"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:373"] = {rtwname: "/Divide1"}; - this.rtwnameHashMap["/Divide2"] = {sid: "BLDCmotorControl_R2017b:2687:374"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:374"] = {rtwname: "/Divide2"}; - this.rtwnameHashMap["/Divide4"] = {sid: "BLDCmotorControl_R2017b:2687:375"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:375"] = {rtwname: "/Divide4"}; - this.rtwnameHashMap["/From"] = {sid: "BLDCmotorControl_R2017b:2687:1389"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1389"] = {rtwname: "/From"}; - this.rtwnameHashMap["/From1"] = {sid: "BLDCmotorControl_R2017b:2687:376"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:376"] = {rtwname: "/From1"}; - this.rtwnameHashMap["/From10"] = {sid: "BLDCmotorControl_R2017b:2687:377"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:377"] = {rtwname: "/From10"}; - this.rtwnameHashMap["/From2"] = {sid: "BLDCmotorControl_R2017b:2687:378"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:378"] = {rtwname: "/From2"}; - this.rtwnameHashMap["/From27"] = {sid: "BLDCmotorControl_R2017b:2687:379"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:379"] = {rtwname: "/From27"}; - this.rtwnameHashMap["/From39"] = {sid: "BLDCmotorControl_R2017b:2687:380"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:380"] = {rtwname: "/From39"}; - this.rtwnameHashMap["/From40"] = {sid: "BLDCmotorControl_R2017b:2687:381"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:381"] = {rtwname: "/From40"}; - this.rtwnameHashMap["/From41"] = {sid: "BLDCmotorControl_R2017b:2687:382"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:382"] = {rtwname: "/From41"}; - this.rtwnameHashMap["/From8"] = {sid: "BLDCmotorControl_R2017b:2687:385"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:385"] = {rtwname: "/From8"}; - this.rtwnameHashMap["/From9"] = {sid: "BLDCmotorControl_R2017b:2687:386"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:386"] = {rtwname: "/From9"}; - this.rtwnameHashMap["/Goto"] = {sid: "BLDCmotorControl_R2017b:2687:387"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:387"] = {rtwname: "/Goto"}; - this.rtwnameHashMap["/Goto1"] = {sid: "BLDCmotorControl_R2017b:2687:388"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:388"] = {rtwname: "/Goto1"}; - this.rtwnameHashMap["/Goto10"] = {sid: "BLDCmotorControl_R2017b:2687:1386"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1386"] = {rtwname: "/Goto10"}; - this.rtwnameHashMap["/Goto2"] = {sid: "BLDCmotorControl_R2017b:2687:389"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:389"] = {rtwname: "/Goto2"}; - this.rtwnameHashMap["/Goto4"] = {sid: "BLDCmotorControl_R2017b:2687:391"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:391"] = {rtwname: "/Goto4"}; - this.rtwnameHashMap["/Goto6"] = {sid: "BLDCmotorControl_R2017b:2687:393"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:393"] = {rtwname: "/Goto6"}; - this.rtwnameHashMap["/Goto7"] = {sid: "BLDCmotorControl_R2017b:2687:394"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:394"] = {rtwname: "/Goto7"}; - this.rtwnameHashMap["/Goto8"] = {sid: "BLDCmotorControl_R2017b:2687:395"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:395"] = {rtwname: "/Goto8"}; - this.rtwnameHashMap["/Goto9"] = {sid: "BLDCmotorControl_R2017b:2687:396"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:396"] = {rtwname: "/Goto9"}; - this.rtwnameHashMap["/Mux2"] = {sid: "BLDCmotorControl_R2017b:2687:398"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:398"] = {rtwname: "/Mux2"}; - this.rtwnameHashMap["/Switch1"] = {sid: "BLDCmotorControl_R2017b:2687:401"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:401"] = {rtwname: "/Switch1"}; - this.rtwnameHashMap["/z_commutMap_M1"] = {sid: "BLDCmotorControl_R2017b:2687:411"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:411"] = {rtwname: "/z_commutMap_M1"}; - this.rtwnameHashMap["/DC_phaA"] = {sid: "BLDCmotorControl_R2017b:2687:412"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:412"] = {rtwname: "/DC_phaA"}; - this.rtwnameHashMap["/DC_phaB"] = {sid: "BLDCmotorControl_R2017b:2687:413"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:413"] = {rtwname: "/DC_phaB"}; - this.rtwnameHashMap["/DC_phaC "] = {sid: "BLDCmotorControl_R2017b:2687:414"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:414"] = {rtwname: "/DC_phaC "}; - this.rtwnameHashMap["/b_hallA"] = {sid: "BLDCmotorControl_R2017b:2687:27"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:27"] = {rtwname: "/b_hallA"}; - this.rtwnameHashMap["/b_hallB"] = {sid: "BLDCmotorControl_R2017b:2687:28"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:28"] = {rtwname: "/b_hallB"}; - this.rtwnameHashMap["/b_hallC"] = {sid: "BLDCmotorControl_R2017b:2687:29"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:29"] = {rtwname: "/b_hallC"}; - this.rtwnameHashMap["/Bitwise Operator"] = {sid: "BLDCmotorControl_R2017b:2687:1535"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1535"] = {rtwname: "/Bitwise Operator"}; - this.rtwnameHashMap["/UnitDelay"] = {sid: "BLDCmotorControl_R2017b:2687:31"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:31"] = {rtwname: "/UnitDelay"}; - this.rtwnameHashMap["/UnitDelay1"] = {sid: "BLDCmotorControl_R2017b:2687:32"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:32"] = {rtwname: "/UnitDelay1"}; - this.rtwnameHashMap["/UnitDelay2"] = {sid: "BLDCmotorControl_R2017b:2687:33"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:33"] = {rtwname: "/UnitDelay2"}; - this.rtwnameHashMap["/b_edge "] = {sid: "BLDCmotorControl_R2017b:2687:37"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:37"] = {rtwname: "/b_edge "}; - this.rtwnameHashMap["/b_hallA"] = {sid: "BLDCmotorControl_R2017b:2687:11"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:11"] = {rtwname: "/b_hallA"}; - this.rtwnameHashMap["/b_hallB"] = {sid: "BLDCmotorControl_R2017b:2687:12"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:12"] = {rtwname: "/b_hallB"}; - this.rtwnameHashMap["/b_hallC"] = {sid: "BLDCmotorControl_R2017b:2687:13"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:13"] = {rtwname: "/b_hallC"}; - this.rtwnameHashMap["/Selector"] = {sid: "BLDCmotorControl_R2017b:2687:14"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:14"] = {rtwname: "/Selector"}; - this.rtwnameHashMap["/Sum"] = {sid: "BLDCmotorControl_R2017b:2687:15"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:15"] = {rtwname: "/Sum"}; - this.rtwnameHashMap["/g_Ha"] = {sid: "BLDCmotorControl_R2017b:2687:17"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:17"] = {rtwname: "/g_Ha"}; - this.rtwnameHashMap["/g_Hb"] = {sid: "BLDCmotorControl_R2017b:2687:18"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:18"] = {rtwname: "/g_Hb"}; - this.rtwnameHashMap["/vec_hallToPos"] = {sid: "BLDCmotorControl_R2017b:2687:22"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:22"] = {rtwname: "/vec_hallToPos"}; - this.rtwnameHashMap["/z_pos "] = {sid: "BLDCmotorControl_R2017b:2687:23"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:23"] = {rtwname: "/z_pos "}; - this.rtwnameHashMap["/z_pos"] = {sid: "BLDCmotorControl_R2017b:2687:39"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:39"] = {rtwname: "/z_pos"}; - this.rtwnameHashMap["/Action Port"] = {sid: "BLDCmotorControl_R2017b:2687:1314"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1314"] = {rtwname: "/Action Port"}; - this.rtwnameHashMap["/Constant20"] = {sid: "BLDCmotorControl_R2017b:2687:42"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:42"] = {rtwname: "/Constant20"}; - this.rtwnameHashMap["/Constant23"] = {sid: "BLDCmotorControl_R2017b:2687:43"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:43"] = {rtwname: "/Constant23"}; - this.rtwnameHashMap["/Constant24"] = {sid: "BLDCmotorControl_R2017b:2687:44"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:44"] = {rtwname: "/Constant24"}; - this.rtwnameHashMap["/Constant8"] = {sid: "BLDCmotorControl_R2017b:2687:45"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:45"] = {rtwname: "/Constant8"}; - this.rtwnameHashMap["/Logical Operator3"] = {sid: "BLDCmotorControl_R2017b:2687:48"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:48"] = {rtwname: "/Logical Operator3"}; - this.rtwnameHashMap["/Relational Operator1"] = {sid: "BLDCmotorControl_R2017b:2687:49"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:49"] = {rtwname: "/Relational Operator1"}; - this.rtwnameHashMap["/Relational Operator6"] = {sid: "BLDCmotorControl_R2017b:2687:50"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:50"] = {rtwname: "/Relational Operator6"}; - this.rtwnameHashMap["/Sum2"] = {sid: "BLDCmotorControl_R2017b:2687:51"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:51"] = {rtwname: "/Sum2"}; - this.rtwnameHashMap["/Switch2"] = {sid: "BLDCmotorControl_R2017b:2687:52"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:52"] = {rtwname: "/Switch2"}; - this.rtwnameHashMap["/UnitDelay1"] = {sid: "BLDCmotorControl_R2017b:2687:1631"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1631"] = {rtwname: "/UnitDelay1"}; - this.rtwnameHashMap["/UnitDelay2"] = {sid: "BLDCmotorControl_R2017b:2687:1318"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1318"] = {rtwname: "/UnitDelay2"}; - this.rtwnameHashMap["/z_dir"] = {sid: "BLDCmotorControl_R2017b:2687:57"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:57"] = {rtwname: "/z_dir"}; - this.rtwnameHashMap["/z_dirPrev"] = {sid: "BLDCmotorControl_R2017b:2687:1632"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1632"] = {rtwname: "/z_dirPrev"}; - this.rtwnameHashMap["/r_DC"] = {sid: "BLDCmotorControl_R2017b:2687:1373"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1373"] = {rtwname: "/r_DC"}; - this.rtwnameHashMap["/r_DCabs"] = {sid: "BLDCmotorControl_R2017b:2687:1663"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1663"] = {rtwname: "/r_DCabs"}; - this.rtwnameHashMap["/z_ctrlTypSel"] = {sid: "BLDCmotorControl_R2017b:2687:1370"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1370"] = {rtwname: "/z_ctrlTypSel"}; - this.rtwnameHashMap["/b_edge"] = {sid: "BLDCmotorControl_R2017b:2687:60"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:60"] = {rtwname: "/b_edge"}; - this.rtwnameHashMap["/z_dir"] = {sid: "BLDCmotorControl_R2017b:2687:61"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:61"] = {rtwname: "/z_dir"}; - this.rtwnameHashMap["/z_dirPrev"] = {sid: "BLDCmotorControl_R2017b:2687:1629"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1629"] = {rtwname: "/z_dirPrev"}; - this.rtwnameHashMap["/Abs2"] = {sid: "BLDCmotorControl_R2017b:2687:1366"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1366"] = {rtwname: "/Abs2"}; - this.rtwnameHashMap["/CTRL_COMM"] = {sid: "BLDCmotorControl_R2017b:2687:1321"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1321"] = {rtwname: "/CTRL_COMM"}; - this.rtwnameHashMap["/Constant6"] = {sid: "BLDCmotorControl_R2017b:2687:64"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:64"] = {rtwname: "/Constant6"}; - this.rtwnameHashMap["/Counter_Hold_and_Error_Calculation"] = {sid: "BLDCmotorControl_R2017b:2687:1340"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1340"] = {rtwname: "/Counter_Hold_and_Error_Calculation"}; - this.rtwnameHashMap["/From"] = {sid: "BLDCmotorControl_R2017b:2687:80"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:80"] = {rtwname: "/From"}; - this.rtwnameHashMap["/From1"] = {sid: "BLDCmotorControl_R2017b:2687:81"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:81"] = {rtwname: "/From1"}; - this.rtwnameHashMap["/From10"] = {sid: "BLDCmotorControl_R2017b:2687:660"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:660"] = {rtwname: "/From10"}; - this.rtwnameHashMap["/From11"] = {sid: "BLDCmotorControl_R2017b:2687:83"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:83"] = {rtwname: "/From11"}; - this.rtwnameHashMap["/From12"] = {sid: "BLDCmotorControl_R2017b:2687:1486"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1486"] = {rtwname: "/From12"}; - this.rtwnameHashMap["/From13"] = {sid: "BLDCmotorControl_R2017b:2687:1523"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1523"] = {rtwname: "/From13"}; - this.rtwnameHashMap["/From14"] = {sid: "BLDCmotorControl_R2017b:2687:1641"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1641"] = {rtwname: "/From14"}; - this.rtwnameHashMap["/From15"] = {sid: "BLDCmotorControl_R2017b:2687:1642"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1642"] = {rtwname: "/From15"}; - this.rtwnameHashMap["/From16"] = {sid: "BLDCmotorControl_R2017b:2687:86"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:86"] = {rtwname: "/From16"}; - this.rtwnameHashMap["/From17"] = {sid: "BLDCmotorControl_R2017b:2687:1665"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1665"] = {rtwname: "/From17"}; - this.rtwnameHashMap["/From18"] = {sid: "BLDCmotorControl_R2017b:2687:1380"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1380"] = {rtwname: "/From18"}; - this.rtwnameHashMap["/From19"] = {sid: "BLDCmotorControl_R2017b:2687:1455"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1455"] = {rtwname: "/From19"}; - this.rtwnameHashMap["/From2"] = {sid: "BLDCmotorControl_R2017b:2687:1361"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1361"] = {rtwname: "/From2"}; - this.rtwnameHashMap["/From20"] = {sid: "BLDCmotorControl_R2017b:2687:1675"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1675"] = {rtwname: "/From20"}; - this.rtwnameHashMap["/From29"] = {sid: "BLDCmotorControl_R2017b:2687:1323"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1323"] = {rtwname: "/From29"}; - this.rtwnameHashMap["/From3"] = {sid: "BLDCmotorControl_R2017b:2687:1517"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1517"] = {rtwname: "/From3"}; - this.rtwnameHashMap["/From30"] = {sid: "BLDCmotorControl_R2017b:2687:1324"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1324"] = {rtwname: "/From30"}; - this.rtwnameHashMap["/From4"] = {sid: "BLDCmotorControl_R2017b:2687:92"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:92"] = {rtwname: "/From4"}; - this.rtwnameHashMap["/From42"] = {sid: "BLDCmotorControl_R2017b:2687:1397"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1397"] = {rtwname: "/From42"}; - this.rtwnameHashMap["/From5"] = {sid: "BLDCmotorControl_R2017b:2687:1485"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1485"] = {rtwname: "/From5"}; - this.rtwnameHashMap["/From6"] = {sid: "BLDCmotorControl_R2017b:2687:1521"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1521"] = {rtwname: "/From6"}; - this.rtwnameHashMap["/From7"] = {sid: "BLDCmotorControl_R2017b:2687:972"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:972"] = {rtwname: "/From7"}; - this.rtwnameHashMap["/From8"] = {sid: "BLDCmotorControl_R2017b:2687:1395"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1395"] = {rtwname: "/From8"}; - this.rtwnameHashMap["/From9"] = {sid: "BLDCmotorControl_R2017b:2687:1533"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1533"] = {rtwname: "/From9"}; - this.rtwnameHashMap["/Goto"] = {sid: "BLDCmotorControl_R2017b:2687:99"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:99"] = {rtwname: "/Goto"}; - this.rtwnameHashMap["/Goto1"] = {sid: "BLDCmotorControl_R2017b:2687:100"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:100"] = {rtwname: "/Goto1"}; - this.rtwnameHashMap["/Goto10"] = {sid: "BLDCmotorControl_R2017b:2687:1664"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1664"] = {rtwname: "/Goto10"}; - this.rtwnameHashMap["/Goto15"] = {sid: "BLDCmotorControl_R2017b:2687:1398"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1398"] = {rtwname: "/Goto15"}; - this.rtwnameHashMap["/Goto16"] = {sid: "BLDCmotorControl_R2017b:2687:1371"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1371"] = {rtwname: "/Goto16"}; - this.rtwnameHashMap["/Goto17"] = {sid: "BLDCmotorControl_R2017b:2687:1372"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1372"] = {rtwname: "/Goto17"}; - this.rtwnameHashMap["/Goto18"] = {sid: "BLDCmotorControl_R2017b:2687:1374"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1374"] = {rtwname: "/Goto18"}; - this.rtwnameHashMap["/Goto2"] = {sid: "BLDCmotorControl_R2017b:2687:1630"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1630"] = {rtwname: "/Goto2"}; - this.rtwnameHashMap["/Goto22"] = {sid: "BLDCmotorControl_R2017b:2687:106"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:106"] = {rtwname: "/Goto22"}; - this.rtwnameHashMap["/Goto3"] = {sid: "BLDCmotorControl_R2017b:2687:1674"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1674"] = {rtwname: "/Goto3"}; - this.rtwnameHashMap["/Goto5"] = {sid: "BLDCmotorControl_R2017b:2687:786"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:786"] = {rtwname: "/Goto5"}; - this.rtwnameHashMap["/Goto6"] = {sid: "BLDCmotorControl_R2017b:2687:1400"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1400"] = {rtwname: "/Goto6"}; - this.rtwnameHashMap["/Goto8"] = {sid: "BLDCmotorControl_R2017b:2687:108"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:108"] = {rtwname: "/Goto8"}; - this.rtwnameHashMap["/Goto9"] = {sid: "BLDCmotorControl_R2017b:2687:1362"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1362"] = {rtwname: "/Goto9"}; - this.rtwnameHashMap["/If1"] = {sid: "BLDCmotorControl_R2017b:2687:1339"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1339"] = {rtwname: "/If1"}; - this.rtwnameHashMap["/Logical Operator2"] = {sid: "BLDCmotorControl_R2017b:2687:1325"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1325"] = {rtwname: "/Logical Operator2"}; - this.rtwnameHashMap["/Motor_Speed_Calculation"] = {sid: "BLDCmotorControl_R2017b:2687:1401"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1401"] = {rtwname: "/Motor_Speed_Calculation"}; - this.rtwnameHashMap["/Mux1"] = {sid: "BLDCmotorControl_R2017b:2687:659"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:659"] = {rtwname: "/Mux1"}; - this.rtwnameHashMap["/Mux2"] = {sid: "BLDCmotorControl_R2017b:2687:842"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:842"] = {rtwname: "/Mux2"}; - this.rtwnameHashMap["/Relational Operator1"] = {sid: "BLDCmotorControl_R2017b:2687:1524"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1524"] = {rtwname: "/Relational Operator1"}; - this.rtwnameHashMap["/Relational Operator3"] = {sid: "BLDCmotorControl_R2017b:2687:1326"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1326"] = {rtwname: "/Relational Operator3"}; - this.rtwnameHashMap["/Relational Operator4"] = {sid: "BLDCmotorControl_R2017b:2687:1327"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1327"] = {rtwname: "/Relational Operator4"}; - this.rtwnameHashMap["/Scope2"] = {sid: "BLDCmotorControl_R2017b:2687:141"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:141"] = {rtwname: "/Scope2"}; - this.rtwnameHashMap["/Sign"] = {sid: "BLDCmotorControl_R2017b:2687:1525"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1525"] = {rtwname: "/Sign"}; - this.rtwnameHashMap["/Sign1"] = {sid: "BLDCmotorControl_R2017b:2687:1526"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1526"] = {rtwname: "/Sign1"}; - this.rtwnameHashMap["/Sum1"] = {sid: "BLDCmotorControl_R2017b:2687:142"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:142"] = {rtwname: "/Sum1"}; - this.rtwnameHashMap["/UnitDelay1"] = {sid: "BLDCmotorControl_R2017b:2687:1507"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1507"] = {rtwname: "/UnitDelay1"}; - this.rtwnameHashMap["/dz_counter"] = {sid: "BLDCmotorControl_R2017b:2687:1518"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1518"] = {rtwname: "/dz_counter"}; - this.rtwnameHashMap["/n_commDeacv"] = {sid: "BLDCmotorControl_R2017b:2687:1328"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1328"] = {rtwname: "/n_commDeacv"}; - this.rtwnameHashMap["/r_commDCDeacv"] = {sid: "BLDCmotorControl_R2017b:2687:1329"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1329"] = {rtwname: "/r_commDCDeacv"}; - this.rtwnameHashMap["/rst_DelayLim"] = {sid: "BLDCmotorControl_R2017b:2687:1651"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1651"] = {rtwname: "/rst_DelayLim"}; - this.rtwnameHashMap["/n_mot"] = {sid: "BLDCmotorControl_R2017b:2687:173"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:173"] = {rtwname: "/n_mot"}; - this.rtwnameHashMap["/n_motAbs"] = {sid: "BLDCmotorControl_R2017b:2687:1676"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1676"] = {rtwname: "/n_motAbs"}; - this.rtwnameHashMap["/b_advCtrlEna"] = {sid: "BLDCmotorControl_R2017b:2687:1381"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1381"] = {rtwname: "/b_advCtrlEna"}; - this.rtwnameHashMap["/z_counter"] = {sid: "BLDCmotorControl_R2017b:2687:1487"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1487"] = {rtwname: "/z_counter"}; - this.rtwnameHashMap["/z_counterRaw"] = {sid: "BLDCmotorControl_R2017b:2687:1488"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1488"] = {rtwname: "/z_counterRaw"}; - this.rtwnameHashMap["/z_counterRawPrev"] = {sid: "BLDCmotorControl_R2017b:2687:1341"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1341"] = {rtwname: "/z_counterRawPrev"}; - this.rtwnameHashMap["/Action Port"] = {sid: "BLDCmotorControl_R2017b:2687:1344"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1344"] = {rtwname: "/Action Port"}; - this.rtwnameHashMap["/Sum4"] = {sid: "BLDCmotorControl_R2017b:2687:1454"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1454"] = {rtwname: "/Sum4"}; - this.rtwnameHashMap["/z_counter2"] = {sid: "BLDCmotorControl_R2017b:2687:169"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:169"] = {rtwname: "/z_counter2"}; - this.rtwnameHashMap["/z_counter"] = {sid: "BLDCmotorControl_R2017b:2687:1358"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1358"] = {rtwname: "/z_counter"}; - this.rtwnameHashMap["/dz_counter"] = {sid: "BLDCmotorControl_R2017b:2687:1359"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1359"] = {rtwname: "/dz_counter"}; - this.rtwnameHashMap["/z_dir"] = {sid: "BLDCmotorControl_R2017b:2687:1431"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1431"] = {rtwname: "/z_dir"}; - this.rtwnameHashMap["/z_dirPrev"] = {sid: "BLDCmotorControl_R2017b:2687:1640"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1640"] = {rtwname: "/z_dirPrev"}; - this.rtwnameHashMap["/z_counter"] = {sid: "BLDCmotorControl_R2017b:2687:1430"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1430"] = {rtwname: "/z_counter"}; - this.rtwnameHashMap["/z_counterRaw"] = {sid: "BLDCmotorControl_R2017b:2687:1639"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1639"] = {rtwname: "/z_counterRaw"}; - this.rtwnameHashMap["/Abs5"] = {sid: "BLDCmotorControl_R2017b:2687:1672"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1672"] = {rtwname: "/Abs5"}; - this.rtwnameHashMap["/Constant1"] = {sid: "BLDCmotorControl_R2017b:2687:1637"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1637"] = {rtwname: "/Constant1"}; - this.rtwnameHashMap["/Constant2"] = {sid: "BLDCmotorControl_R2017b:2687:1433"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1433"] = {rtwname: "/Constant2"}; - this.rtwnameHashMap["/Constant3"] = {sid: "BLDCmotorControl_R2017b:2687:1434"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1434"] = {rtwname: "/Constant3"}; - this.rtwnameHashMap["/Divide1"] = {sid: "BLDCmotorControl_R2017b:2687:1435"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1435"] = {rtwname: "/Divide1"}; - this.rtwnameHashMap["/Divide2"] = {sid: "BLDCmotorControl_R2017b:2687:1436"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1436"] = {rtwname: "/Divide2"}; - this.rtwnameHashMap["/Divide3"] = {sid: "BLDCmotorControl_R2017b:2687:1437"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1437"] = {rtwname: "/Divide3"}; - this.rtwnameHashMap["/Divide4"] = {sid: "BLDCmotorControl_R2017b:2687:1438"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1438"] = {rtwname: "/Divide4"}; - this.rtwnameHashMap["/From1"] = {sid: "BLDCmotorControl_R2017b:2687:1439"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1439"] = {rtwname: "/From1"}; - this.rtwnameHashMap["/From14"] = {sid: "BLDCmotorControl_R2017b:2687:1623"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1623"] = {rtwname: "/From14"}; - this.rtwnameHashMap["/From15"] = {sid: "BLDCmotorControl_R2017b:2687:1635"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1635"] = {rtwname: "/From15"}; - this.rtwnameHashMap["/From17"] = {sid: "BLDCmotorControl_R2017b:2687:1636"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1636"] = {rtwname: "/From17"}; - this.rtwnameHashMap["/From42"] = {sid: "BLDCmotorControl_R2017b:2687:1645"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1645"] = {rtwname: "/From42"}; - this.rtwnameHashMap["/From8"] = {sid: "BLDCmotorControl_R2017b:2687:1646"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1646"] = {rtwname: "/From8"}; - this.rtwnameHashMap["/Goto"] = {sid: "BLDCmotorControl_R2017b:2687:1647"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1647"] = {rtwname: "/Goto"}; - this.rtwnameHashMap["/Goto1"] = {sid: "BLDCmotorControl_R2017b:2687:1648"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1648"] = {rtwname: "/Goto1"}; - this.rtwnameHashMap["/Goto2"] = {sid: "BLDCmotorControl_R2017b:2687:1649"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1649"] = {rtwname: "/Goto2"}; - this.rtwnameHashMap["/Goto22"] = {sid: "BLDCmotorControl_R2017b:2687:1440"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1440"] = {rtwname: "/Goto22"}; - this.rtwnameHashMap["/Goto3"] = {sid: "BLDCmotorControl_R2017b:2687:1650"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1650"] = {rtwname: "/Goto3"}; - this.rtwnameHashMap["/Logical Operator1"] = {sid: "BLDCmotorControl_R2017b:2687:1627"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1627"] = {rtwname: "/Logical Operator1"}; - this.rtwnameHashMap["/Relational Operator2"] = {sid: "BLDCmotorControl_R2017b:2687:1624"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1624"] = {rtwname: "/Relational Operator2"}; - this.rtwnameHashMap["/Relational Operator5"] = {sid: "BLDCmotorControl_R2017b:2687:1628"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1628"] = {rtwname: "/Relational Operator5"}; - this.rtwnameHashMap["/Sum1"] = {sid: "BLDCmotorControl_R2017b:2687:1443"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1443"] = {rtwname: "/Sum1"}; - this.rtwnameHashMap["/Sum2"] = {sid: "BLDCmotorControl_R2017b:2687:1444"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1444"] = {rtwname: "/Sum2"}; - this.rtwnameHashMap["/Switch1"] = {sid: "BLDCmotorControl_R2017b:2687:1638"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1638"] = {rtwname: "/Switch1"}; - this.rtwnameHashMap["/UnitDelay2"] = {sid: "BLDCmotorControl_R2017b:2687:1446"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1446"] = {rtwname: "/UnitDelay2"}; - this.rtwnameHashMap["/cf_spdCoef"] = {sid: "BLDCmotorControl_R2017b:2687:1447"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1447"] = {rtwname: "/cf_spdCoef"}; - this.rtwnameHashMap["/cf_speedFilt"] = {sid: "BLDCmotorControl_R2017b:2687:1448"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1448"] = {rtwname: "/cf_speedFilt"}; - this.rtwnameHashMap["/z_maxCntRst"] = {sid: "BLDCmotorControl_R2017b:2687:1625"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1625"] = {rtwname: "/z_maxCntRst"}; - this.rtwnameHashMap["/n_motRaw"] = {sid: "BLDCmotorControl_R2017b:2687:1450"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1450"] = {rtwname: "/n_motRaw"}; - this.rtwnameHashMap["/n_mot"] = {sid: "BLDCmotorControl_R2017b:2687:1451"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1451"] = {rtwname: "/n_mot"}; - this.rtwnameHashMap["/n_motAbs"] = {sid: "BLDCmotorControl_R2017b:2687:1673"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1673"] = {rtwname: "/n_motAbs"}; - this.rtwnameHashMap["/u"] = {sid: "BLDCmotorControl_R2017b:2687:1651:1614"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1651:1614"] = {rtwname: "/u"}; - this.rtwnameHashMap["/rst"] = {sid: "BLDCmotorControl_R2017b:2687:1651:1615"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1651:1615"] = {rtwname: "/rst"}; - this.rtwnameHashMap["/Constant1"] = {sid: "BLDCmotorControl_R2017b:2687:1651:1616"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1651:1616"] = {rtwname: "/Constant1"}; - this.rtwnameHashMap["/Constant23"] = {sid: "BLDCmotorControl_R2017b:2687:1651:1617"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1651:1617"] = {rtwname: "/Constant23"}; - this.rtwnameHashMap["/Relational Operator1"] = {sid: "BLDCmotorControl_R2017b:2687:1651:1618"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1651:1618"] = {rtwname: "/Relational Operator1"}; - this.rtwnameHashMap["/Switch1"] = {sid: "BLDCmotorControl_R2017b:2687:1651:1619"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1651:1619"] = {rtwname: "/Switch1"}; - this.rtwnameHashMap["/Switch2"] = {sid: "BLDCmotorControl_R2017b:2687:1651:1620"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1651:1620"] = {rtwname: "/Switch2"}; - this.rtwnameHashMap["/UnitDelay1"] = {sid: "BLDCmotorControl_R2017b:2687:1651:1621"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1651:1621"] = {rtwname: "/UnitDelay1"}; - this.rtwnameHashMap["/y"] = {sid: "BLDCmotorControl_R2017b:2687:1651:1622"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:1651:1622"] = {rtwname: "/y"}; - this.rtwnameHashMap["/a_elecAngleAdv"] = {sid: "BLDCmotorControl_R2017b:2687:286"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:286"] = {rtwname: "/a_elecAngleAdv"}; - this.rtwnameHashMap["/Action Port"] = {sid: "BLDCmotorControl_R2017b:2687:287"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:287"] = {rtwname: "/Action Port"}; - this.rtwnameHashMap["/a_trapElecAngle_XA"] = {sid: "BLDCmotorControl_R2017b:2687:288"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:288"] = {rtwname: "/a_trapElecAngle_XA"}; - this.rtwnameHashMap["/r_trapPhaA_M1"] = {sid: "BLDCmotorControl_R2017b:2687:289"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:289"] = {rtwname: "/r_trapPhaA_M1"}; - this.rtwnameHashMap["/r_trapPhaB_M1"] = {sid: "BLDCmotorControl_R2017b:2687:290"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:290"] = {rtwname: "/r_trapPhaB_M1"}; - this.rtwnameHashMap["/r_trapPhaC_M1"] = {sid: "BLDCmotorControl_R2017b:2687:291"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:291"] = {rtwname: "/r_trapPhaC_M1"}; - this.rtwnameHashMap["/r_phaA_Trap"] = {sid: "BLDCmotorControl_R2017b:2687:292"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:292"] = {rtwname: "/r_phaA_Trap"}; - this.rtwnameHashMap["/r_phaB_Trap"] = {sid: "BLDCmotorControl_R2017b:2687:293"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:293"] = {rtwname: "/r_phaB_Trap"}; - this.rtwnameHashMap["/r_phaC_Trap"] = {sid: "BLDCmotorControl_R2017b:2687:294"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:294"] = {rtwname: "/r_phaC_Trap"}; - this.rtwnameHashMap["/a_elecAngleAdv"] = {sid: "BLDCmotorControl_R2017b:2687:306"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:306"] = {rtwname: "/a_elecAngleAdv"}; - this.rtwnameHashMap["/Action Port"] = {sid: "BLDCmotorControl_R2017b:2687:307"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:307"] = {rtwname: "/Action Port"}; - this.rtwnameHashMap["/a_sinElecAngle_XA"] = {sid: "BLDCmotorControl_R2017b:2687:308"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:308"] = {rtwname: "/a_sinElecAngle_XA"}; - this.rtwnameHashMap["/r_sinPhaA_M1"] = {sid: "BLDCmotorControl_R2017b:2687:309"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:309"] = {rtwname: "/r_sinPhaA_M1"}; - this.rtwnameHashMap["/r_sinPhaB_M1"] = {sid: "BLDCmotorControl_R2017b:2687:310"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:310"] = {rtwname: "/r_sinPhaB_M1"}; - this.rtwnameHashMap["/r_sinPhaC_M1"] = {sid: "BLDCmotorControl_R2017b:2687:311"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:311"] = {rtwname: "/r_sinPhaC_M1"}; - this.rtwnameHashMap["/r_phaA_Sin"] = {sid: "BLDCmotorControl_R2017b:2687:312"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:312"] = {rtwname: "/r_phaA_Sin"}; - this.rtwnameHashMap["/r_phaB_Sin"] = {sid: "BLDCmotorControl_R2017b:2687:313"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:313"] = {rtwname: "/r_phaB_Sin"}; - this.rtwnameHashMap["/r_phaC_Sin"] = {sid: "BLDCmotorControl_R2017b:2687:314"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:314"] = {rtwname: "/r_phaC_Sin"}; - this.rtwnameHashMap["/a_elecAngleAdv"] = {sid: "BLDCmotorControl_R2017b:2687:296"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:296"] = {rtwname: "/a_elecAngleAdv"}; - this.rtwnameHashMap["/Action Port"] = {sid: "BLDCmotorControl_R2017b:2687:297"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:297"] = {rtwname: "/Action Port"}; - this.rtwnameHashMap["/a_sinElecAngle_XA"] = {sid: "BLDCmotorControl_R2017b:2687:298"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:298"] = {rtwname: "/a_sinElecAngle_XA"}; - this.rtwnameHashMap["/r_sin3PhaA_M1"] = {sid: "BLDCmotorControl_R2017b:2687:299"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:299"] = {rtwname: "/r_sin3PhaA_M1"}; - this.rtwnameHashMap["/r_sin3PhaB_M1"] = {sid: "BLDCmotorControl_R2017b:2687:300"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:300"] = {rtwname: "/r_sin3PhaB_M1"}; - this.rtwnameHashMap["/r_sin3PhaC_M1"] = {sid: "BLDCmotorControl_R2017b:2687:301"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:301"] = {rtwname: "/r_sin3PhaC_M1"}; - this.rtwnameHashMap["/r_phaA_Sin3"] = {sid: "BLDCmotorControl_R2017b:2687:302"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:302"] = {rtwname: "/r_phaA_Sin3"}; - this.rtwnameHashMap["/r_phaB_Sin3"] = {sid: "BLDCmotorControl_R2017b:2687:303"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:303"] = {rtwname: "/r_phaB_Sin3"}; - this.rtwnameHashMap["/r_phaC_Sin3"] = {sid: "BLDCmotorControl_R2017b:2687:304"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:304"] = {rtwname: "/r_phaC_Sin3"}; - this.rtwnameHashMap["/r_phaB"] = {sid: "BLDCmotorControl_R2017b:2687:350"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:350"] = {rtwname: "/r_phaB"}; - this.rtwnameHashMap["/Terminator_1"] = {sid: "BLDCmotorControl_R2017b:2687:351"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:351"] = {rtwname: "/Terminator_1"}; - this.rtwnameHashMap["/r_phaC"] = {sid: "BLDCmotorControl_R2017b:2687:353"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:353"] = {rtwname: "/r_phaC"}; - this.rtwnameHashMap["/Terminator_1"] = {sid: "BLDCmotorControl_R2017b:2687:354"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:354"] = {rtwname: "/Terminator_1"}; - this.rtwnameHashMap["/r_phaA"] = {sid: "BLDCmotorControl_R2017b:2687:356"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:356"] = {rtwname: "/r_phaA"}; - this.rtwnameHashMap["/Terminator_1"] = {sid: "BLDCmotorControl_R2017b:2687:357"}; - this.sidHashMap["BLDCmotorControl_R2017b:2687:357"] = {rtwname: "/Terminator_1"}; - this.getSID = function(rtwname) { return this.rtwnameHashMap[rtwname];} - this.getRtwname = function(sid) { return this.sidHashMap[sid];} -} -RTW_rtwnameSIDMap.instance = new RTW_rtwnameSIDMap(); diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/codeMetrics.mat b/01_Matlab/BLDC_controller_ert_rtw/html/codeMetrics.mat deleted file mode 100644 index 34201982fe5738ac498a4f51e674fe3c754e2ddb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5453 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 diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/contents_file.tmp b/01_Matlab/BLDC_controller_ert_rtw/html/contents_file.tmp deleted file mode 100644 index 4b0fed5..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/html/contents_file.tmp +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - -
-Generated Source Files -
ert_main.c
BLDC_controller.c
BLDC_controller.h
BLDC_controller_data.c
rtwtypes.h
diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/define.js b/01_Matlab/BLDC_controller_ert_rtw/html/define.js deleted file mode 100644 index 7a7882d..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/html/define.js +++ /dev/null @@ -1,78 +0,0 @@ -function CodeDefine() { -this.def = new Array(); -this.def["rtM_"] = {file: "ert_main_c.html",line:29,type:"var"}; -this.def["rtMPtr"] = {file: "ert_main_c.html",line:30,type:"var"}; -this.def["rtP"] = {file: "ert_main_c.html",line:31,type:"var"}; -this.def["rtDW"] = {file: "ert_main_c.html",line:103,type:"var"}; -this.def["rtU"] = {file: "ert_main_c.html",line:104,type:"var"}; -this.def["rtY"] = {file: "ert_main_c.html",line:105,type:"var"}; -this.def["rt_OneStep"] = {file: "ert_main_c.html",line:119,type:"fcn"}; -this.def["main"] = {file: "ert_main_c.html",line:155,type:"fcn"}; -this.def["plook_u8s32u32n31_evenc_s"] = {file: "BLDC_controller_c.html",line:93,type:"fcn"}; -this.def["intrp1d_s16s32s32u8u32n31l_s"] = {file: "BLDC_controller_c.html",line:127,type:"fcn"}; -this.def["div_nde_s32_floor"] = {file: "BLDC_controller_c.html",line:143,type:"fcn"}; -this.def["BLDC_controller_step"] = {file: "BLDC_controller_c.html",line:150,type:"fcn"}; -this.def["BLDC_controller_initialize"] = {file: "BLDC_controller_c.html",line:666,type:"fcn"}; -this.def["RT_MODEL"] = {file: "BLDC_controller_h.html",line:35,type:"type"}; -this.def["DW"] = {file: "BLDC_controller_h.html",line:58,type:"type"}; -this.def["ConstP"] = {file: "BLDC_controller_h.html",line:116,type:"type"}; -this.def["ExtU"] = {file: "BLDC_controller_h.html",line:124,type:"type"}; -this.def["ExtY"] = {file: "BLDC_controller_h.html",line:133,type:"type"}; -this.def["P"] = {file: "BLDC_controller_h.html",line:184,type:"type"}; -this.def["rtConstP"] = {file: "BLDC_controller_data_c.html",line:27,type:"var"}; -this.def["int8_T"] = {file: "rtwtypes_h.html",line:55,type:"type"}; -this.def["uint8_T"] = {file: "rtwtypes_h.html",line:56,type:"type"}; -this.def["int16_T"] = {file: "rtwtypes_h.html",line:57,type:"type"}; -this.def["uint16_T"] = {file: "rtwtypes_h.html",line:58,type:"type"}; -this.def["int32_T"] = {file: "rtwtypes_h.html",line:59,type:"type"}; -this.def["uint32_T"] = {file: "rtwtypes_h.html",line:60,type:"type"}; -this.def["int64_T"] = {file: "rtwtypes_h.html",line:61,type:"type"}; -this.def["uint64_T"] = {file: "rtwtypes_h.html",line:62,type:"type"}; -this.def["real32_T"] = {file: "rtwtypes_h.html",line:63,type:"type"}; -this.def["real64_T"] = {file: "rtwtypes_h.html",line:64,type:"type"}; -this.def["real_T"] = {file: "rtwtypes_h.html",line:70,type:"type"}; -this.def["time_T"] = {file: "rtwtypes_h.html",line:71,type:"type"}; -this.def["boolean_T"] = {file: "rtwtypes_h.html",line:72,type:"type"}; -this.def["int_T"] = {file: "rtwtypes_h.html",line:73,type:"type"}; -this.def["uint_T"] = {file: "rtwtypes_h.html",line:74,type:"type"}; -this.def["ulong_T"] = {file: "rtwtypes_h.html",line:75,type:"type"}; -this.def["ulonglong_T"] = {file: "rtwtypes_h.html",line:76,type:"type"}; -this.def["char_T"] = {file: "rtwtypes_h.html",line:77,type:"type"}; -this.def["uchar_T"] = {file: "rtwtypes_h.html",line:78,type:"type"}; -this.def["byte_T"] = {file: "rtwtypes_h.html",line:79,type:"type"}; -this.def["pointer_T"] = {file: "rtwtypes_h.html",line:100,type:"type"}; -} -CodeDefine.instance = new CodeDefine(); -var testHarnessInfo = {OwnerFileName: "", HarnessOwner: "", HarnessName: "", IsTestHarness: "0"}; -var relPathToBuildDir = "../ert_main.c"; -var fileSep = "\\"; -var isPC = true; -function Html2SrcLink() { - this.html2SrcPath = new Array; - this.html2Root = new Array; - this.html2SrcPath["ert_main_c.html"] = "../ert_main.c"; - this.html2Root["ert_main_c.html"] = "ert_main_c.html"; - this.html2SrcPath["BLDC_controller_c.html"] = "../BLDC_controller.c"; - this.html2Root["BLDC_controller_c.html"] = "BLDC_controller_c.html"; - this.html2SrcPath["BLDC_controller_h.html"] = "../BLDC_controller.h"; - this.html2Root["BLDC_controller_h.html"] = "BLDC_controller_h.html"; - this.html2SrcPath["BLDC_controller_data_c.html"] = "../BLDC_controller_data.c"; - this.html2Root["BLDC_controller_data_c.html"] = "BLDC_controller_data_c.html"; - this.html2SrcPath["rtwtypes_h.html"] = "../rtwtypes.h"; - this.html2Root["rtwtypes_h.html"] = "rtwtypes_h.html"; - this.getLink2Src = function (htmlFileName) { - if (this.html2SrcPath[htmlFileName]) - return this.html2SrcPath[htmlFileName]; - else - return null; - } - this.getLinkFromRoot = function (htmlFileName) { - if (this.html2Root[htmlFileName]) - return this.html2Root[htmlFileName]; - else - return null; - } -} -Html2SrcLink.instance = new Html2SrcLink(); -var fileList = [ -"ert_main_c.html","BLDC_controller_c.html","BLDC_controller_h.html","BLDC_controller_data_c.html","rtwtypes_h.html"]; diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/ert_main_c.html b/01_Matlab/BLDC_controller_ert_rtw/html/ert_main_c.html deleted file mode 100644 index 393a5c1..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/html/ert_main_c.html +++ /dev/null @@ -1,221 +0,0 @@ - - - -RTW Report - ert_main.c - - - - - - -

-
-

File: ert_main.c

-
-    1   /*
-    2    * Academic License - for use in teaching, academic research, and meeting
-    3    * course requirements at degree granting institutions only.  Not for
-    4    * government, commercial, or other organizational use.
-    5    *
-    6    * File: ert_main.c
-    7    *
-    8    * Code generated for Simulink model 'BLDC_controller'.
-    9    *
-   10    * Model version                  : 1.883
-   11    * Simulink Coder version         : 8.13 (R2017b) 24-Jul-2017
-   12    * C/C++ source code generated on : Tue Jun 11 21:14:57 2019
-   13    *
-   14    * Target selection: ert.tlc
-   15    * Embedded hardware selection: ARM Compatible->ARM Cortex
-   16    * Emulation hardware selection:
-   17    *    Differs from embedded hardware (MATLAB Host)
-   18    * Code generation objectives:
-   19    *    1. Execution efficiency
-   20    *    2. RAM efficiency
-   21    * Validation result: Not run
-   22    */
-   23   
-   24   #include <stddef.h>
-   25   #include <stdio.h>                     /* This ert_main.c example uses printf/fflush */
-   26   #include "BLDC_controller.h"           /* Model's header file */
-   27   #include "rtwtypes.h"
-   28   
-   29   static RT_MODEL rtM_;
-   30   static RT_MODEL *const rtMPtr = &rtM_; /* Real-time model */
-   31   static P rtP = {
-   32     /* Variable: cf_speedCoef
-   33      * Referenced by: '<S16>/cf_spdCoef'
-   34      */
-   35     11111,
-   36   
-   37     /* Variable: cf_speedFilt
-   38      * Referenced by: '<S16>/cf_speedFilt'
-   39      */
-   40     10,
-   41   
-   42     /* Variable: n_commAcvLo
-   43      * Referenced by: '<S14>/n_commDeacv'
-   44      */
-   45     15,
-   46   
-   47     /* Variable: n_commDeacvHi
-   48      * Referenced by: '<S14>/n_commDeacv'
-   49      */
-   50     30,
-   51   
-   52     /* Variable: n_motPhaAdvEna
-   53      * Referenced by: '<S8>/n_motPhaAdvEna'
-   54      */
-   55     400,
-   56   
-   57     /* Variable: r_commDCDeacv
-   58      * Referenced by: '<S14>/r_commDCDeacv'
-   59      */
-   60     70,
-   61   
-   62     /* Variable: r_phaAdvDC_XA
-   63      * Referenced by: '<S8>/r_phaAdvDC_XA'
-   64      */
-   65     { 0, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000 },
-   66   
-   67     /* Variable: a_phaAdv_M1
-   68      * Referenced by: '<S8>/a_phaAdv_M2'
-   69      */
-   70     { 0, 0, 0, 0, 0, 2, 3, 5, 9, 16, 25 },
-   71   
-   72     /* Variable: dz_counterHi
-   73      * Referenced by: '<S14>/dz_counter'
-   74      */
-   75     50,
-   76   
-   77     /* Variable: dz_counterLo
-   78      * Referenced by: '<S14>/dz_counter'
-   79      */
-   80     20,
-   81   
-   82     /* Variable: z_maxCntRst
-   83      * Referenced by:
-   84      *   '<S15>/z_counter'
-   85      *   '<S15>/z_counter2'
-   86      *   '<S16>/z_maxCntRst'
-   87      *   '<S17>/Constant1'
-   88      *   '<S17>/UnitDelay1'
-   89      */
-   90     1500,
-   91   
-   92     /* Variable: z_ctrlTypSel
-   93      * Referenced by: '<S7>/z_ctrlTypSel1'
-   94      */
-   95     3U,
-   96   
-   97     /* Variable: b_phaAdvEna
-   98      * Referenced by: '<S8>/a_elecPeriod1'
-   99      */
-  100     1
-  101   };                                     /* Modifiable parameters */
-  102   
-  103   static DW rtDW;                        /* Observable states */
-  104   static ExtU rtU;                       /* External inputs */
-  105   static ExtY rtY;                       /* External outputs */
-  106   
-  107   /*
-  108    * Associating rt_OneStep with a real-time clock or interrupt service routine
-  109    * is what makes the generated code "real-time".  The function rt_OneStep is
-  110    * always associated with the base rate of the model.  Subrates are managed
-  111    * by the base rate from inside the generated code.  Enabling/disabling
-  112    * interrupts and floating point context switches are target specific.  This
-  113    * example code indicates where these should take place relative to executing
-  114    * the generated code step function.  Overrun behavior should be tailored to
-  115    * your application needs.  This example simply sets an error status in the
-  116    * real-time model and returns from rt_OneStep.
-  117    */
-  118   void rt_OneStep(RT_MODEL *const rtM);
-  119   void rt_OneStep(RT_MODEL *const rtM)
-  120   {
-  121     static boolean_T OverrunFlag = false;
-  122   
-  123     /* Disable interrupts here */
-  124   
-  125     /* Check for overrun */
-  126     if (OverrunFlag) {
-  127       return;
-  128     }
-  129   
-  130     OverrunFlag = true;
-  131   
-  132     /* Save FPU context here (if necessary) */
-  133     /* Re-enable timer or interrupt here */
-  134     /* Set model inputs here */
-  135   
-  136     /* Step the model */
-  137     BLDC_controller_step(rtM);
-  138   
-  139     /* Get model outputs here */
-  140   
-  141     /* Indicate task complete */
-  142     OverrunFlag = false;
-  143   
-  144     /* Disable interrupts here */
-  145     /* Restore FPU context here (if necessary) */
-  146     /* Enable interrupts here */
-  147   }
-  148   
-  149   /*
-  150    * The example "main" function illustrates what is required by your
-  151    * application code to initialize, execute, and terminate the generated code.
-  152    * Attaching rt_OneStep to a real-time clock is target specific.  This example
-  153    * illustrates how you do this relative to initializing the model.
-  154    */
-  155   int_T main(int_T argc, const char *argv[])
-  156   {
-  157     RT_MODEL *const rtM = rtMPtr;
-  158   
-  159     /* Unused arguments */
-  160     (void)(argc);
-  161     (void)(argv);
-  162   
-  163     /* Pack model data into RTM */
-  164     rtM->defaultParam = &rtP;
-  165     rtM->dwork = &rtDW;
-  166     rtM->inputs = &rtU;
-  167     rtM->outputs = &rtY;
-  168   
-  169     /* Initialize model */
-  170     BLDC_controller_initialize(rtM);
-  171   
-  172     /* Attach rt_OneStep to a timer or interrupt service routine with
-  173      * period 6.0E-5 seconds (the model's base sample time) here.  The
-  174      * call syntax for rt_OneStep is
-  175      *
-  176      *  rt_OneStep(rtM);
-  177      */
-  178     printf("Warning: The simulation will run forever. "
-  179            "Generated ERT main won't simulate model step behavior. "
-  180            "To change this behavior select the 'MAT-file logging' option.\n");
-  181     fflush((NULL));
-  182     while (1) {
-  183       /*  Perform other application tasks here */
-  184     }
-  185   
-  186     /* The option 'Remove error status field in real-time model data structure'
-  187      * is selected, therefore the following code does not need to execute.
-  188      */
-  189   #if 0
-  190   
-  191     /* Disable rt_OneStep() here */
-  192   #endif
-  193   
-  194     return 0;
-  195   }
-  196   
-  197   /*
-  198    * File trailer for generated code.
-  199    *
-  200    * [EOF]
-  201    */
-  202   
-
-
-

- - \ No newline at end of file diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/help.png b/01_Matlab/BLDC_controller_ert_rtw/html/help.png deleted file mode 100644 index 4c4192e0d1be101f796b118cf54bf9df842d7b6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3683 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 diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/hilite_warning.png b/01_Matlab/BLDC_controller_ert_rtw/html/hilite_warning.png deleted file mode 100644 index f013f815ae58acfcb9112170c871851d666b820f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3014 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 GGywpr5v}6@ diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/inspect.html b/01_Matlab/BLDC_controller_ert_rtw/html/inspect.html deleted file mode 100644 index b628c7a..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/html/inspect.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - -
- - diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/metrics.js b/01_Matlab/BLDC_controller_ert_rtw/html/metrics.js deleted file mode 100644 index e14989a..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/html/metrics.js +++ /dev/null @@ -1,32 +0,0 @@ -function CodeMetrics() { - this.metricsArray = {}; - this.metricsArray.var = new Array(); - this.metricsArray.fcn = new Array(); - this.metricsArray.fcn["BLDC_controller_initialize"] = {file: "D:\\git\\hoverboard-firmware-hack\\01_Matlab\\BLDC_controller_ert_rtw\\BLDC_controller.c", - stack: 16, - stackTotal: 16}; - this.metricsArray.fcn["BLDC_controller_step"] = {file: "D:\\git\\hoverboard-firmware-hack\\01_Matlab\\BLDC_controller_ert_rtw\\BLDC_controller.c", - stack: 60, - stackTotal: 69}; - this.metricsArray.fcn["div_nde_s32_floor"] = {file: "D:\\git\\hoverboard-firmware-hack\\01_Matlab\\BLDC_controller_ert_rtw\\BLDC_controller.c", - stack: 0, - stackTotal: 0}; - this.metricsArray.fcn["intrp1d_s16s32s32u8u32n31l_s"] = {file: "D:\\git\\hoverboard-firmware-hack\\01_Matlab\\BLDC_controller_ert_rtw\\BLDC_controller.c", - stack: 4, - stackTotal: 4}; - this.metricsArray.fcn["plook_u8s32u32n31_evenc_s"] = {file: "D:\\git\\hoverboard-firmware-hack\\01_Matlab\\BLDC_controller_ert_rtw\\BLDC_controller.c", - stack: 9, - stackTotal: 9}; - this.getMetrics = function(token) { - var data; - data = this.metricsArray.var[token]; - if (!data) { - data = this.metricsArray.fcn[token]; - if (data) data.type = "fcn"; - } else { - data.type = "var"; - } - return data; }; - this.codeMetricsSummary = 'Global Memory: 0(bytes) Maximum Stack: 60(bytes)'; - } -CodeMetrics.instance = new CodeMetrics(); diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/nav.html b/01_Matlab/BLDC_controller_ert_rtw/html/nav.html deleted file mode 100644 index 64f68db..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/html/nav.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/navToolbar.html b/01_Matlab/BLDC_controller_ert_rtw/html/navToolbar.html deleted file mode 100644 index d07c72e..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/html/navToolbar.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/rtwcodemetricsreport_utils.js b/01_Matlab/BLDC_controller_ert_rtw/html/rtwcodemetricsreport_utils.js deleted file mode 100644 index 6142263..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/html/rtwcodemetricsreport_utils.js +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2016 The MathWorks, Inc. - -//Poll for metrics.js on 5 second intervals -function getCodeMetricsByPolling(ctThreshold, intervalPeriod){ - if(ctThreshold === undefined){ - ctThreshold = 1000; - } - if(intervalPeriod === undefined){ - intervalPeriod = 5000; - } - var intervalId; - var ct=0; - //function to get code metrics - function getCodeMetrics(){ - cm = CodeMetrics.instance; - var alink = document.getElementById("metricsLocation"); - alink.innerHTML = cm.codeMetricsSummary; - } - if (typeof CodeMetrics !== "undefined"){ - getCodeMetrics(); - } - else{ - intervalId = window.setInterval(function(){ - //Try reinclude metrics to check if CodeMetrics are available - ct = ct + 1; - if (ct > ctThreshold){ - // Clear if elapsed time is 1000x5 seconds - clearInterval(intervalId); - var alink = document.getElementById("metricsLocation"); - alink.innerHTML = 'Error generating code metrics'; - } - else{ - var metricsScript = document.getElementById('metrics'); - if(metricsScript !== null){ - metricsScript.parentNode.removeChild(metricsScript); - } - var jsElm = document.createElement("script"); - jsElm.type = "application/javascript"; - jsElm.src = "metrics.js"; - jsElm.id = "metrics"; - document.getElementsByTagName('head')[0].appendChild(jsElm); - if (typeof CodeMetrics !== "undefined"){ - clearInterval(intervalId); - getCodeMetrics(); - } - } - }, intervalPeriod); - } - } \ No newline at end of file diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/rtwhilite.js b/01_Matlab/BLDC_controller_ert_rtw/html/rtwhilite.js deleted file mode 100644 index 0328a3b..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/html/rtwhilite.js +++ /dev/null @@ -1,2049 +0,0 @@ -// Copyright 2007-2016 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 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("<", "<").replace(">", ">"); - } 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 = []; - for (i = 0; i < alinks.length; i++) { - alinks[i].href = "javascript:alert('This hyperlink is available only in MATLAB browser.');"; - alinks[i].style.color = "gray"; - } - 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 - top.codeToWebView(aBlock, aParentSID); - - } else { - // webview 1.x - if (hiliteBlockForRTWReport(aBlock,aParentSID) === false) { - if (hiliteBlockForRTWReport(aBlock, aBlock) === false) { - rtwHilite(aParentSID); - } - } - } -} - -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("<", "<").replace(">", ">"); - } - top.rtwreport_document_frame.document.write("
No traceability information for block " + block + ".
"); - 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 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 = " ("+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 += ""; - for (var i=0; i < top.fileList.length; i++) { - filename = top.fileList[i]; - filelink = top.Html2SrcLink.instance.getLink2Src(filename); - fileSelector.innerHTML += ""; - } - 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: "#aaffff", - 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" + anchorObj.text + "
  • "+ - size + "
  • "; - } - 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 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[RTW_TraceInfo.toSrcFileName(file)+":"+anchorObj.id]) { - return null; - } - // link to def/decl - if (defObj) { - var filename = defObj.file.split(/\//); - filename = filename[filename.length-1]; - ulObj.innerHTML += "
  • " + anchorObj.text + " defined at " + RTW_TraceInfo.toSrcFileName(filename) + " line " + defObj.line + "
  • "; - } - 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 = 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 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;iBlock-to-Code Highlighting Message - - - -

    Block-to-Code Highlighting Message

    - - \ No newline at end of file diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/rtwreport.css b/01_Matlab/BLDC_controller_ert_rtw/html/rtwreport.css deleted file mode 100644 index c9ff02b..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/html/rtwreport.css +++ /dev/null @@ -1,257 +0,0 @@ -/* Copyright 2011-2016 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: #819FF7; -} - -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: #aff; - margin-top: 0; -} - -.inspect_body { - margin: 0; - margin-bottom: 0; - display: inline; - vertical-align:middle; -} - -table.nav_table { - background-color: #aff; - 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%; -} diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/rtwreport_utils.js b/01_Matlab/BLDC_controller_ert_rtw/html/rtwreport_utils.js deleted file mode 100644 index f58fb49..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/html/rtwreport_utils.js +++ /dev/null @@ -1,92 +0,0 @@ -// 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 + "')"; -} diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/rtwshrink.js b/01_Matlab/BLDC_controller_ert_rtw/html/rtwshrink.js deleted file mode 100644 index ff4cdac..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/html/rtwshrink.js +++ /dev/null @@ -1,202 +0,0 @@ -// Copyright 2011-2012 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){ - if (isSymbol) { - hide = "[-]"; - hide_text = hide; - show = "[+]"; - show_text = show; - } else { - hide = "[hide]"; - hide_text = "[hide]"; - show = "[show]"; - show_text = "[show]"; - } - hide = "" + hide + ""; - show = "" + show + ""; - 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 && top && top.addToPage) - top.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 (top && top.addToPage) - top.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) { - 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 { - 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 && top && top.addToPage) - top.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 && top && top.addToPage) - top.addToPage(doc, o[0], 'display'); - } -} diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/rtwtypes_h.html b/01_Matlab/BLDC_controller_ert_rtw/html/rtwtypes_h.html deleted file mode 100644 index bed0437..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/html/rtwtypes_h.html +++ /dev/null @@ -1,128 +0,0 @@ - - - -RTW Report - rtwtypes.h - - - - - - -

    -
    -

    File: rtwtypes.h

    -
    -    1   /*
    -    2    * Academic License - for use in teaching, academic research, and meeting
    -    3    * course requirements at degree granting institutions only.  Not for
    -    4    * government, commercial, or other organizational use.
    -    5    *
    -    6    * File: rtwtypes.h
    -    7    *
    -    8    * Code generated for Simulink model 'BLDC_controller'.
    -    9    *
    -   10    * Model version                  : 1.883
    -   11    * Simulink Coder version         : 8.13 (R2017b) 24-Jul-2017
    -   12    * C/C++ source code generated on : Tue Jun 11 21:14:57 2019
    -   13    *
    -   14    * Target selection: ert.tlc
    -   15    * Embedded hardware selection: ARM Compatible->ARM Cortex
    -   16    * Emulation hardware selection:
    -   17    *    Differs from embedded hardware (MATLAB Host)
    -   18    * Code generation objectives:
    -   19    *    1. Execution efficiency
    -   20    *    2. RAM efficiency
    -   21    * Validation result: Not run
    -   22    */
    -   23   
    -   24   #ifndef RTWTYPES_H
    -   25   #define RTWTYPES_H
    -   26   
    -   27   /* Logical type definitions */
    -   28   #if (!defined(__cplusplus))
    -   29   #  ifndef false
    -   30   #   define false                       (0U)
    -   31   #  endif
    -   32   
    -   33   #  ifndef true
    -   34   #   define true                        (1U)
    -   35   #  endif
    -   36   #endif
    -   37   
    -   38   /*=======================================================================*
    -   39    * Target hardware information
    -   40    *   Device type: MATLAB Host
    -   41    *   Number of bits:     char:   8    short:   16    int:  32
    -   42    *                       long:  32    long long:  64
    -   43    *                       native word size:  64
    -   44    *   Byte ordering: LittleEndian
    -   45    *   Signed integer division rounds to: Zero
    -   46    *   Shift right on a signed integer as arithmetic shift: on
    -   47    *=======================================================================*/
    -   48   
    -   49   /*=======================================================================*
    -   50    * Fixed width word size data types:                                     *
    -   51    *   int8_T, int16_T, int32_T     - signed 8, 16, or 32 bit integers     *
    -   52    *   uint8_T, uint16_T, uint32_T  - unsigned 8, 16, or 32 bit integers   *
    -   53    *   real32_T, real64_T           - 32 and 64 bit floating point numbers *
    -   54    *=======================================================================*/
    -   55   typedef signed char int8_T;
    -   56   typedef unsigned char uint8_T;
    -   57   typedef short int16_T;
    -   58   typedef unsigned short uint16_T;
    -   59   typedef int int32_T;
    -   60   typedef unsigned int uint32_T;
    -   61   typedef long long int64_T;
    -   62   typedef unsigned long long uint64_T;
    -   63   typedef float real32_T;
    -   64   typedef double real64_T;
    -   65   
    -   66   /*===========================================================================*
    -   67    * Generic type definitions: boolean_T, char_T, byte_T, int_T, uint_T,       *
    -   68    *                           real_T, time_T, ulong_T, ulonglong_T.           *
    -   69    *===========================================================================*/
    -   70   typedef double real_T;
    -   71   typedef double time_T;
    -   72   typedef unsigned char boolean_T;
    -   73   typedef int int_T;
    -   74   typedef unsigned int uint_T;
    -   75   typedef unsigned long ulong_T;
    -   76   typedef unsigned long long ulonglong_T;
    -   77   typedef char char_T;
    -   78   typedef unsigned char uchar_T;
    -   79   typedef char_T byte_T;
    -   80   
    -   81   /*=======================================================================*
    -   82    * Min and Max:                                                          *
    -   83    *   int8_T, int16_T, int32_T     - signed 8, 16, or 32 bit integers     *
    -   84    *   uint8_T, uint16_T, uint32_T  - unsigned 8, 16, or 32 bit integers   *
    -   85    *=======================================================================*/
    -   86   #define MAX_int8_T                     ((int8_T)(127))
    -   87   #define MIN_int8_T                     ((int8_T)(-128))
    -   88   #define MAX_uint8_T                    ((uint8_T)(255U))
    -   89   #define MAX_int16_T                    ((int16_T)(32767))
    -   90   #define MIN_int16_T                    ((int16_T)(-32768))
    -   91   #define MAX_uint16_T                   ((uint16_T)(65535U))
    -   92   #define MAX_int32_T                    ((int32_T)(2147483647))
    -   93   #define MIN_int32_T                    ((int32_T)(-2147483647-1))
    -   94   #define MAX_uint32_T                   ((uint32_T)(0xFFFFFFFFU))
    -   95   #define MAX_int64_T                    ((int64_T)(9223372036854775807LL))
    -   96   #define MIN_int64_T                    ((int64_T)(-9223372036854775807LL-1LL))
    -   97   #define MAX_uint64_T                   ((uint64_T)(0xFFFFFFFFFFFFFFFFULL))
    -   98   
    -   99   /* Block D-Work pointer type */
    -  100   typedef void * pointer_T;
    -  101   
    -  102   #endif                                 /* RTWTYPES_H */
    -  103   
    -  104   /*
    -  105    * File trailer for generated code.
    -  106    *
    -  107    * [EOF]
    -  108    */
    -  109   
    -
    -
    -

    - - \ No newline at end of file diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/search.js b/01_Matlab/BLDC_controller_ert_rtw/html/search.js deleted file mode 100644 index 816380f..0000000 --- a/01_Matlab/BLDC_controller_ert_rtw/html/search.js +++ /dev/null @@ -1,559 +0,0 @@ -// Copyright 2007-2012 The MathWorks, Inc. - -function createHighlightSpanStart(num) -{ - return ""; -} - -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) == ' 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 -// &;. We check for  , <, > and & -function isInEscapedSequence(i, taglessString, searchTerm) -{ - var escapeSeq = / |<|>|&/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 = / |<|>|&/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 = / |<|>|&/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 = ""; - - 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   - 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 = //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; - } - } - } -} diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/traceInfo.mat b/01_Matlab/BLDC_controller_ert_rtw/html/traceInfo.mat deleted file mode 100644 index 54171779500bde80ac4de8eb997c530e9aecbdc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47070 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 Cortex - * 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 - -/* Logical type definitions */ -#if (!defined(__cplusplus)) -# ifndef false -# define false (0U) -# endif - -# ifndef true -# define true (1U) -# endif -#endif - -/*=======================================================================* - * Target hardware information - * Device type: MATLAB Host - * Number of bits: char: 8 short: 16 int: 32 - * long: 32 long long: 64 - * native word size: 64 - * Byte ordering: LittleEndian - * Signed integer division rounds to: Zero - * Shift right on a signed integer as arithmetic shift: on - *=======================================================================*/ - -/*=======================================================================* - * Fixed width word size data types: * - * int8_T, int16_T, int32_T - signed 8, 16, or 32 bit integers * - * uint8_T, uint16_T, uint32_T - unsigned 8, 16, or 32 bit integers * - * real32_T, real64_T - 32 and 64 bit floating point numbers * - *=======================================================================*/ -typedef signed char int8_T; -typedef unsigned char uint8_T; -typedef short int16_T; -typedef unsigned short uint16_T; -typedef int int32_T; -typedef unsigned int uint32_T; -typedef long long int64_T; -typedef unsigned long long uint64_T; -typedef float real32_T; -typedef double real64_T; - -/*===========================================================================* - * Generic type definitions: boolean_T, char_T, byte_T, int_T, uint_T, * - * real_T, time_T, ulong_T, ulonglong_T. * - *===========================================================================*/ -typedef double real_T; -typedef double time_T; -typedef unsigned char boolean_T; -typedef int int_T; -typedef unsigned int uint_T; -typedef unsigned long ulong_T; -typedef unsigned long long ulonglong_T; -typedef char char_T; -typedef unsigned char uchar_T; -typedef char_T byte_T; - -/*=======================================================================* - * Min and Max: * - * int8_T, int16_T, int32_T - signed 8, 16, or 32 bit integers * - * uint8_T, uint16_T, uint32_T - unsigned 8, 16, or 32 bit integers * - *=======================================================================*/ -#define MAX_int8_T ((int8_T)(127)) -#define MIN_int8_T ((int8_T)(-128)) -#define MAX_uint8_T ((uint8_T)(255U)) -#define MAX_int16_T ((int16_T)(32767)) -#define MIN_int16_T ((int16_T)(-32768)) -#define MAX_uint16_T ((uint16_T)(65535U)) -#define MAX_int32_T ((int32_T)(2147483647)) -#define MIN_int32_T ((int32_T)(-2147483647-1)) -#define MAX_uint32_T ((uint32_T)(0xFFFFFFFFU)) -#define MAX_int64_T ((int64_T)(9223372036854775807LL)) -#define MIN_int64_T ((int64_T)(-9223372036854775807LL-1LL)) -#define MAX_uint64_T ((uint64_T)(0xFFFFFFFFFFFFFFFFULL)) - -/* Block D-Work pointer type */ -typedef void * pointer_T; - -#endif /* RTWTYPES_H */ - -/* - * File trailer for generated code. - * - * [EOF] - */ diff --git a/01_Matlab/BLDC_controller_ert_rtw/rtwtypeschksum.mat b/01_Matlab/BLDC_controller_ert_rtw/rtwtypeschksum.mat deleted file mode 100644 index b0b4ace51016fbe07757565505f1c34da5259fbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1436 zcmeZu4DoSvQZUssQ1EpO(M`+DN!3vZ$Vn_o%P-2cQV4Jk_w+L}(NSQbDbrrNvf?a}hxDY?sek2W>6&j0r3@BTTL zo!c2cJYg#NvUl}Uhq|rZyGobs6Z2NFRGXw%mN~Kb;lhgli%qXKPXC+Nq^0fG)WNxO z)xD-@HV1_t*FJ?gP2$+E>7bgb>a8uZ#K(=tJgYN$S&4G|qNHVydHB6IK35T|d^J

    5Ss#-3~v5S9;c(=A%)qK~a z&+pFkzCW`yYsb9enZ;j%WuIUBQha{L#C7*pinK|a7c_HCzs{)j)$wz@K-RBvseRYa zyuEwE^z7a3&&*0+9B;J$_)ICd{-6Gi=MgJF;nT_h3ZKWx2?;+Ao;YxTZHZ;Wj7~wN&5yuwy#o8+kW2R;$;-3c>R1Gk?i! zc=1?q0l!GT0s}+DIW@8@0-xfJmFXyfrWZ}uHOvu7^DfxiL?YkmeTJYE~KU ztxKa|df3B1N53n@2G5w|+&4irX{Ghw^tu1S58waWw0C}U{ng&{fBfUWe`)tOx1B$0 z*LK?)=8P`KGayeFF@a*>ZTQ{1%LXE4tMifqc#nvhcZ4_Ot}3(KwM}59?25A{@6^`Y zWv*5A6Scm)P5oivjytN4Y%AE`SmZrkvgCE0icz78`QMsz;=iq*?^v~6(CL1>@)phc z=bx-l&Xv|&m+BVG=hu8=`I|e5aVs86y~us_U)SF1z{{4>4F~=f^sw?uMn!y|ROEOw z#pI~qgu@dYj{W3}uwJ&WAmaGjO%@MMl*#!em)&DLKg;}Fo{HOEL+M@W@2>Lfcw3UG zAfD?!#Yf?|%q~7*fy#e( z;dOy~3y*D{8B#1_)P8aob71DV7dNLpwvGDYuRQnsH-F_?t!mYalFv4DrRN-s-ghr- z?~XX#!>gCy|M$6T&n=;QYEfsazc>7jS^m!a?CrmPFMqOC&3qKEVY!}fVtQ@-ZuTjW z0hRqL532oeKFwuzfh9Yqsl0qm0<-UiV`@9Lrn5?CG@0hLFXW%GGmwXG=3%*Sl}*np ze|BCw?QMKC|H+O6bvbZoL*zh`)n%luh-ciX34yXvw{uhmyxDlzm*=%x1E)}rgeJ>|oq z!XsfqYxidrH%WYj+u)XpSpj&N4Mfd*q%*a`NE#0YfqPNWj>YRuwJp+e`ohS`>?g?+W@LvpjH3?