From 1376793710294773692ef9a4df178f2e6f0b5665 Mon Sep 17 00:00:00 2001 From: EmanuelFeru Date: Sun, 27 Oct 2019 18:21:04 +0100 Subject: [PATCH] Improvements and Issues implementation Major: - Issue #3: added raw ADC1, ADC2 values to the setScopeChannel - Issue #4: added functionality for joystick control. Middle resting potis are now supported (by default it is enabled) - Issue #6: implemented that board does not power-off after a software reset due to flashing - added Rate constraints for Input target for smoother response Minor: - added 2 beep sound when motors get enabled - minor bugfixes --- .../RateLimiter_fixdt/rateLimiter.c | 191 + .../RateLimiter_fixdt/rateLimiter.h | 99 + ...LDCmotorControl_FOC_R2017b_fixdt_29_d.json | 2480 +++---- ...BLDCmotorControl_FOC_R2017b_fixdt_29_d.png | Bin 10832 -> 10909 bytes ...BLDCmotorControl_FOC_R2017b_fixdt_29_d.svg | 4630 +++++++------- ...motorControl_FOC_R2017b_fixdt_29_icons.png | Bin 3304 -> 3304 bytes ...CmotorControl_FOC_R2017b_fixdt_8220_d.json | 754 +-- ...DCmotorControl_FOC_R2017b_fixdt_8220_d.png | Bin 14718 -> 14728 bytes ...DCmotorControl_FOC_R2017b_fixdt_8220_d.svg | 1214 ++-- ...CmotorControl_FOC_R2017b_fixdt_8225_d.json | 12 +- ...DCmotorControl_FOC_R2017b_fixdt_8225_d.svg | 110 +- ...CmotorControl_FOC_R2017b_fixdt_8235_d.json | 64 +- ...DCmotorControl_FOC_R2017b_fixdt_8235_d.svg | 2 +- ...CmotorControl_FOC_R2017b_fixdt_8247_d.json | 100 +- ...DCmotorControl_FOC_R2017b_fixdt_8247_d.svg | 124 +- ...CmotorControl_FOC_R2017b_fixdt_8263_d.json | 1428 ++--- ...DCmotorControl_FOC_R2017b_fixdt_8263_d.png | Bin 8315 -> 8305 bytes ...DCmotorControl_FOC_R2017b_fixdt_8263_d.svg | 2250 +++---- ...orControl_FOC_R2017b_fixdt_8272_2515_d.svg | 4 +- ...CmotorControl_FOC_R2017b_fixdt_8272_d.json | 162 +- ...DCmotorControl_FOC_R2017b_fixdt_8272_d.svg | 372 +- ...CmotorControl_FOC_R2017b_fixdt_8314_d.json | 1398 ++-- ...DCmotorControl_FOC_R2017b_fixdt_8314_d.png | Bin 8556 -> 8550 bytes ...DCmotorControl_FOC_R2017b_fixdt_8314_d.svg | 2832 ++++---- ...CmotorControl_FOC_R2017b_fixdt_8384_d.json | 698 +- ...DCmotorControl_FOC_R2017b_fixdt_8384_d.png | Bin 7891 -> 7886 bytes ...DCmotorControl_FOC_R2017b_fixdt_8384_d.svg | 1060 +-- ...CmotorControl_FOC_R2017b_fixdt_8469_d.json | 1170 ++-- ...DCmotorControl_FOC_R2017b_fixdt_8469_d.png | Bin 6565 -> 6562 bytes ...DCmotorControl_FOC_R2017b_fixdt_8469_d.svg | 2598 ++++---- ...rControl_FOC_R2017b_fixdt_8486_2423_d.json | 136 +- ...orControl_FOC_R2017b_fixdt_8486_2423_d.svg | 114 +- ...rControl_FOC_R2017b_fixdt_8486_2428_d.json | 424 +- ...orControl_FOC_R2017b_fixdt_8486_2428_d.png | Bin 6891 -> 6879 bytes ...orControl_FOC_R2017b_fixdt_8486_2428_d.svg | 1274 ++-- ...trol_FOC_R2017b_fixdt_8486_2435_2515_d.svg | 26 +- ...rControl_FOC_R2017b_fixdt_8486_2435_d.json | 16 +- ...orControl_FOC_R2017b_fixdt_8486_2435_d.svg | 86 +- ...rControl_FOC_R2017b_fixdt_8486_2473_d.json | 504 +- ...orControl_FOC_R2017b_fixdt_8486_2473_d.png | Bin 6792 -> 6787 bytes ...orControl_FOC_R2017b_fixdt_8486_2473_d.svg | 890 +-- ...trol_FOC_R2017b_fixdt_8486_2480_2515_d.svg | 2 +- ...rControl_FOC_R2017b_fixdt_8486_2480_d.json | 170 +- ...orControl_FOC_R2017b_fixdt_8486_2480_d.svg | 416 +- ...orControl_FOC_R2017b_fixdt_8486_2507_d.svg | 2 +- ...CmotorControl_FOC_R2017b_fixdt_8486_d.json | 764 +-- ...DCmotorControl_FOC_R2017b_fixdt_8486_d.png | Bin 6796 -> 6785 bytes ...DCmotorControl_FOC_R2017b_fixdt_8486_d.svg | 1726 ++--- ...DCmotorControl_FOC_R2017b_fixdt_8519_d.svg | 2 +- ...CmotorControl_FOC_R2017b_fixdt_8535_d.json | 646 +- ...DCmotorControl_FOC_R2017b_fixdt_8535_d.png | Bin 7857 -> 7854 bytes ...DCmotorControl_FOC_R2017b_fixdt_8535_d.svg | 1144 ++-- ...CmotorControl_FOC_R2017b_fixdt_8546_d.json | 1220 ++-- ...DCmotorControl_FOC_R2017b_fixdt_8546_d.svg | 1724 ++--- ...CmotorControl_FOC_R2017b_fixdt_8603_d.json | 8 +- ...DCmotorControl_FOC_R2017b_fixdt_8603_d.svg | 132 +- ...CmotorControl_FOC_R2017b_fixdt_8658_d.json | 2655 ++++---- ...DCmotorControl_FOC_R2017b_fixdt_8658_d.png | Bin 9826 -> 9867 bytes ...DCmotorControl_FOC_R2017b_fixdt_8658_d.svg | 5684 +++++++++-------- ...CmotorControl_FOC_R2017b_fixdt_8668_d.json | 676 +- ...DCmotorControl_FOC_R2017b_fixdt_8668_d.png | Bin 5838 -> 5854 bytes ...DCmotorControl_FOC_R2017b_fixdt_8668_d.svg | 1148 ++-- ...CmotorControl_FOC_R2017b_fixdt_8671_d.json | 490 +- ...DCmotorControl_FOC_R2017b_fixdt_8671_d.svg | 718 +-- ...CmotorControl_FOC_R2017b_fixdt_8686_d.json | 436 +- ...DCmotorControl_FOC_R2017b_fixdt_8686_d.svg | 422 +- ...CmotorControl_FOC_R2017b_fixdt_8726_d.json | 274 +- ...DCmotorControl_FOC_R2017b_fixdt_8726_d.png | Bin 5184 -> 5183 bytes ...DCmotorControl_FOC_R2017b_fixdt_8726_d.svg | 530 +- ...CmotorControl_FOC_R2017b_fixdt_8738_d.json | 290 +- ...DCmotorControl_FOC_R2017b_fixdt_8738_d.svg | 352 +- ...CmotorControl_FOC_R2017b_fixdt_8743_d.json | 1432 ++--- ...DCmotorControl_FOC_R2017b_fixdt_8743_d.png | Bin 9568 -> 9570 bytes ...DCmotorControl_FOC_R2017b_fixdt_8743_d.svg | 3052 ++++----- ...CmotorControl_FOC_R2017b_fixdt_8866_d.json | 414 +- ...DCmotorControl_FOC_R2017b_fixdt_8866_d.svg | 536 +- ...CmotorControl_FOC_R2017b_fixdt_8886_d.json | 358 +- ...DCmotorControl_FOC_R2017b_fixdt_8886_d.svg | 562 +- ...CmotorControl_FOC_R2017b_fixdt_8913_d.json | 2558 ++++---- ...DCmotorControl_FOC_R2017b_fixdt_8913_d.png | Bin 14250 -> 14266 bytes ...DCmotorControl_FOC_R2017b_fixdt_8913_d.svg | 4226 ++++++------ ...CmotorControl_FOC_R2017b_fixdt_8924_d.json | 174 +- ...DCmotorControl_FOC_R2017b_fixdt_8924_d.svg | 342 +- ...DCmotorControl_FOC_R2017b_fixdt_8930_d.svg | 12 +- ...CmotorControl_FOC_R2017b_fixdt_8987_d.json | 282 +- ...DCmotorControl_FOC_R2017b_fixdt_8987_d.svg | 430 +- ...DCmotorControl_FOC_R2017b_fixdt_8993_d.svg | 8 +- ...CmotorControl_FOC_R2017b_fixdt_9029_d.json | 420 +- ...DCmotorControl_FOC_R2017b_fixdt_9029_d.svg | 546 +- ...orControl_FOC_R2017b_fixdt_9040_2342_d.svg | 30 +- ...orControl_FOC_R2017b_fixdt_9040_2395_d.svg | 26 +- ...CmotorControl_FOC_R2017b_fixdt_9040_d.json | 350 +- ...DCmotorControl_FOC_R2017b_fixdt_9040_d.svg | 636 +- ...DCmotorControl_FOC_R2017b_fixdt_9042_d.svg | 2 +- ...CmotorControl_FOC_R2017b_fixdt_9045_d.json | 350 +- ...DCmotorControl_FOC_R2017b_fixdt_9045_d.svg | 546 +- ...CmotorControl_FOC_R2017b_fixdt_9074_d.json | 838 +-- ...DCmotorControl_FOC_R2017b_fixdt_9074_d.png | Bin 5225 -> 5237 bytes ...DCmotorControl_FOC_R2017b_fixdt_9074_d.svg | 1476 ++--- ...rControl_FOC_R2017b_fixdt_9098_2275_d.json | 186 +- ...orControl_FOC_R2017b_fixdt_9098_2275_d.svg | 282 +- ...orControl_FOC_R2017b_fixdt_9098_2282_d.svg | 14 +- ...CmotorControl_FOC_R2017b_fixdt_9098_d.json | 444 +- ...DCmotorControl_FOC_R2017b_fixdt_9098_d.png | Bin 6949 -> 6954 bytes ...DCmotorControl_FOC_R2017b_fixdt_9098_d.svg | 752 +-- ...DCmotorControl_FOC_R2017b_fixdt_9099_d.svg | 24 +- ...CmotorControl_FOC_R2017b_fixdt_9109_d.json | 770 +-- ...DCmotorControl_FOC_R2017b_fixdt_9109_d.png | Bin 5238 -> 5241 bytes ...DCmotorControl_FOC_R2017b_fixdt_9109_d.svg | 1344 ++-- ...rControl_FOC_R2017b_fixdt_9132_2275_d.json | 168 +- ...orControl_FOC_R2017b_fixdt_9132_2275_d.svg | 304 +- ...orControl_FOC_R2017b_fixdt_9132_2282_d.svg | 8 +- ...CmotorControl_FOC_R2017b_fixdt_9132_d.json | 522 +- ...DCmotorControl_FOC_R2017b_fixdt_9132_d.svg | 960 +-- ...DCmotorControl_FOC_R2017b_fixdt_9133_d.svg | 18 +- ...CmotorControl_FOC_R2017b_fixdt_9143_d.json | 664 +- ...DCmotorControl_FOC_R2017b_fixdt_9143_d.svg | 944 +-- ...rControl_FOC_R2017b_fixdt_9163_2275_d.json | 228 +- ...orControl_FOC_R2017b_fixdt_9163_2275_d.svg | 240 +- ...orControl_FOC_R2017b_fixdt_9163_2282_d.svg | 10 +- ...CmotorControl_FOC_R2017b_fixdt_9163_d.json | 592 +- ...DCmotorControl_FOC_R2017b_fixdt_9163_d.png | Bin 6973 -> 6972 bytes ...DCmotorControl_FOC_R2017b_fixdt_9163_d.svg | 944 +-- ...DCmotorControl_FOC_R2017b_fixdt_9164_d.svg | 20 +- ...CmotorControl_FOC_R2017b_fixdt_9171_d.json | 604 +- ...DCmotorControl_FOC_R2017b_fixdt_9171_d.svg | 762 +-- ...DCmotorControl_FOC_R2017b_fixdt_9188_d.svg | 14 +- ...CmotorControl_FOC_R2017b_fixdt_9198_d.json | 350 +- ...DCmotorControl_FOC_R2017b_fixdt_9198_d.svg | 594 +- ...DCmotorControl_FOC_R2017b_fixdt_9292_d.svg | 2 +- ...DCmotorControl_FOC_R2017b_fixdt_9293_d.svg | 2 +- ...CmotorControl_FOC_R2017b_fixdt_9333_d.json | 404 +- ...DCmotorControl_FOC_R2017b_fixdt_9333_d.svg | 586 +- ...CmotorControl_FOC_R2017b_fixdt_9337_d.json | 62 +- ...DCmotorControl_FOC_R2017b_fixdt_9337_d.svg | 62 +- ...CmotorControl_FOC_R2017b_fixdt_9341_d.json | 514 +- ...DCmotorControl_FOC_R2017b_fixdt_9341_d.svg | 654 +- ...BLDCmotorControl_FOC_R2017b_fixdt_h_1.json | 1339 ++-- .../BLDCmotorControl_FOC_R2017b_fixdt.slx | Bin 178839 -> 187036 bytes Inc/BLDC_controller.h | 10 +- Inc/config.h | 18 +- Inc/defines.h | 3 +- Inc/rtwtypes.h | 4 +- Src/BLDC_controller.c | 182 +- Src/BLDC_controller_data.c | 8 +- Src/bldc.c | 2 +- Src/main.c | 85 +- build/firmware.bin | Bin 18936 -> 19164 bytes build/firmware.elf | Bin 381864 -> 382656 bytes 149 files changed, 42458 insertions(+), 41700 deletions(-) create mode 100644 01_Matlab/99_RecycleBin/RateLimiter_fixdt/rateLimiter.c create mode 100644 01_Matlab/99_RecycleBin/RateLimiter_fixdt/rateLimiter.h diff --git a/01_Matlab/99_RecycleBin/RateLimiter_fixdt/rateLimiter.c b/01_Matlab/99_RecycleBin/RateLimiter_fixdt/rateLimiter.c new file mode 100644 index 0000000..305169e --- /dev/null +++ b/01_Matlab/99_RecycleBin/RateLimiter_fixdt/rateLimiter.c @@ -0,0 +1,191 @@ +/* + * File: rateLimiter.c + * + * Code generated for Simulink model 'rateLimiter'. + * + * Model version : 1.1186 + * Simulink Coder version : 8.13 (R2017b) 24-Jul-2017 + * C/C++ source code generated on : Sun Oct 27 16:29:07 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 "rateLimiter.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 + +extern int16_T rateLimiter_j(int16_T rtu_u, int16_T rtu_rate, DW_rateLimiter + *localDW); + +/*===========* + * Constants * + *===========*/ +#define RT_PI 3.14159265358979323846 +#define RT_PIF 3.1415927F +#define RT_LN_10 2.30258509299404568402 +#define RT_LN_10F 2.3025851F +#define RT_LOG10E 0.43429448190325182765 +#define RT_LOG10EF 0.43429449F +#define RT_E 2.7182818284590452354 +#define RT_EF 2.7182817F + +/* + * UNUSED_PARAMETER(x) + * Used to specify that a function parameter (argument) is required but not + * accessed by the function body. + */ +#ifndef UNUSED_PARAMETER +# if defined(__LCC__) +# define UNUSED_PARAMETER(x) /* do nothing */ +# else + +/* + * This is the semi-ANSI standard way of indicating that an + * unused function parameter is required. + */ +# define UNUSED_PARAMETER(x) (void) (x) +# endif +#endif + +/* Output and update for atomic system: '/rateLimiter' */ +int16_T rateLimiter_j(int16_T rtu_u, int16_T rtu_rate, DW_rateLimiter *localDW) +{ + int16_T rtb_UnitDelay; + int16_T rtb_Sum1; + int16_T rtb_Gain; + int16_T rty_y_0; + + /* UnitDelay: '/UnitDelay' */ + rtb_UnitDelay = localDW->UnitDelay_DSTATE; + + /* Sum: '/Sum1' incorporates: + * DataTypeConversion: '/Data Type Conversion1' + */ + rtb_Sum1 = (int16_T)((int16_T)(rtu_u << 4) - rtb_UnitDelay); + + /* Switch: '/Switch2' incorporates: + * RelationalOperator: '/LowerRelop1' + */ + if (rtb_Sum1 > rtu_rate) { + rtb_Sum1 = rtu_rate; + } else { + /* Gain: '/Gain' */ + rtb_Gain = (int16_T)-rtu_rate; + + /* Switch: '/Switch' incorporates: + * RelationalOperator: '/UpperRelop' + */ + if (rtb_Sum1 < rtb_Gain) { + rtb_Sum1 = rtb_Gain; + } + + /* End of Switch: '/Switch' */ + } + + /* End of Switch: '/Switch2' */ + + /* Sum: '/Sum2' */ + rty_y_0 = (int16_T)(rtb_Sum1 + rtb_UnitDelay); + + /* Update for UnitDelay: '/UnitDelay' */ + localDW->UnitDelay_DSTATE = rty_y_0; + return rty_y_0; +} + +/* Model step function */ +void rateLimiter_step(RT_MODEL *const rtM) +{ + DW *rtDW = ((DW *) rtM->dwork); + ExtU *rtU = (ExtU *) rtM->inputs; + ExtY *rtY = (ExtY *) rtM->outputs; + + /* Outputs for Atomic SubSystem: '/rateLimiter' */ + + /* Outport: '/y' incorporates: + * Inport: '/rate' + * Inport: '/u' + */ + rtY->y = (int16_T) rateLimiter_j(rtU->u, rtU->rate, &rtDW->rateLimiter_j0); + + /* End of Outputs for SubSystem: '/rateLimiter' */ +} + +/* Model initialize function */ +void rateLimiter_initialize(RT_MODEL *const rtM) +{ + /* (no initialization code required) */ + UNUSED_PARAMETER(rtM); +} + +/* + * File trailer for generated code. + * + * [EOF] + */ diff --git a/01_Matlab/99_RecycleBin/RateLimiter_fixdt/rateLimiter.h b/01_Matlab/99_RecycleBin/RateLimiter_fixdt/rateLimiter.h new file mode 100644 index 0000000..675b457 --- /dev/null +++ b/01_Matlab/99_RecycleBin/RateLimiter_fixdt/rateLimiter.h @@ -0,0 +1,99 @@ +/* + * File: rateLimiter.h + * + * Code generated for Simulink model 'rateLimiter'. + * + * Model version : 1.1186 + * Simulink Coder version : 8.13 (R2017b) 24-Jul-2017 + * C/C++ source code generated on : Sun Oct 27 16:29:07 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_rateLimiter_h_ +#define RTW_HEADER_rateLimiter_h_ +#ifndef rateLimiter_COMMON_INCLUDES_ +# define rateLimiter_COMMON_INCLUDES_ +#include "rtwtypes.h" +#endif /* rateLimiter_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 '/rateLimiter' */ +typedef struct { + int16_T UnitDelay_DSTATE; /* '/UnitDelay' */ +} DW_rateLimiter; + +/* Block signals and states (auto storage) for system '' */ +typedef struct { + DW_rateLimiter rateLimiter_j0; /* '/rateLimiter' */ +} DW; + +/* External inputs (root inport signals with auto storage) */ +typedef struct { + int16_T u; /* '/u' */ + int16_T rate; /* '/rate' */ +} ExtU; + +/* External outputs (root outports fed by signals with auto storage) */ +typedef struct { + int16_T y; /* '/y' */ +} ExtY; + +/* Real-time Model Data Structure */ +struct tag_RTM { + ExtU *inputs; + ExtY *outputs; + DW *dwork; +}; + +/* Model entry point functions */ +extern void rateLimiter_initialize(RT_MODEL *const rtM); +extern void rateLimiter_step(RT_MODEL *const rtM); + +/*- + * These blocks were eliminated from the model due to optimizations: + * + * Block '/Data Type Duplicate' : Unused code path elimination + * Block '/Data Type Propagation' : 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_FOC_R2017b_fixdt/rateLimiter') - opens subsystem BLDCmotorControl_FOC_R2017b_fixdt/rateLimiter + * hilite_system('BLDCmotorControl_FOC_R2017b_fixdt/rateLimiter/Kp') - opens and selects block Kp + * + * Here is the system hierarchy for this model + * + * '' : 'BLDCmotorControl_FOC_R2017b_fixdt' + * '' : 'BLDCmotorControl_FOC_R2017b_fixdt/rateLimiter' + * '' : 'BLDCmotorControl_FOC_R2017b_fixdt/rateLimiter/Rate_Limiter' + * '' : 'BLDCmotorControl_FOC_R2017b_fixdt/rateLimiter/Rate_Limiter/Saturation Dynamic' + */ +#endif /* RTW_HEADER_rateLimiter_h_ */ + +/* + * File trailer for generated code. + * + * [EOF] + */ diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_29_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_29_d.json index bb88cc3..0b32576 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_29_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_29_d.json @@ -227,11 +227,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9303", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9305", "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"n_mot", - "label":"n_mot", + "name":"r_devSignal1", + "label":"r_devSignal1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -260,7 +260,7 @@ "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "5", + "7", "Port number", "[]", "[]", @@ -273,9 +273,9 @@ "auto", "off", "off", - "[]", + "0", "off", - "held", + "reset", "off", "0", "", @@ -307,11 +307,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9302", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9303", "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"z_errCode", - "label":"z_errCode", + "name":"n_mot", + "label":"n_mot", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -340,7 +340,7 @@ "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "4", + "5", "Port number", "[]", "[]", @@ -353,9 +353,9 @@ "auto", "off", "off", - "0", + "[]", "off", - "reset", + "held", "off", "0", "", @@ -387,11 +387,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9301", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9302", "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"DC_phaC", - "label":"DC_phaC", + "name":"z_errCode", + "label":"z_errCode", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -420,7 +420,7 @@ "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "3", + "4", "Port number", "[]", "[]", @@ -433,9 +433,9 @@ "auto", "off", "off", - "[]", + "0", "off", - "held", + "reset", "off", "0", "", @@ -467,36 +467,42 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9291", - "className":"Simulink.If", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9298", + "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"If2", - "label":"If2", + "name":"z_ctrlTypSel1", + "label":"z_ctrlTypSel1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ - "NumInputs", - "IfExpression", - "ElseIfExpressions", - "ShowElse", + "Value", + "VectorParams1D", "SampleTime", - "ZeroCross" + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "FramePeriod" ], "values":[ - "1", - "u1 ~= 0", - "", + "z_ctrlTypSel", + "on", + "inf", + "[]", + "[]", + "uint8", "off", - "-1", - "on" + "inf" ], "tabs":[ - "Parameter Attributes", + "Main", + "Signal Attributes", "-Other" ], "tabs_idx":[ 0, - 4 + 3, + 7 ] }, "viewer":{ @@ -505,41 +511,51 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"If", + "blocktype":"Constant", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9290", - "className":"Simulink.If", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9669", + "className":"Simulink.Saturate", "icon":"WebViewIcon3", - "name":"If1", - "label":"If1", + "name":"Saturation2", + "label":"Saturation2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ - "NumInputs", - "IfExpression", - "ElseIfExpressions", - "ShowElse", + "UpperLimit", + "LowerLimit", + "LinearizeAsGain", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "RndMeth", "SampleTime", "ZeroCross" ], "values":[ - "1", - "u1 ~= CTRL_COM", - "", + "1000", + "-1000", + "on", + "[]", + "[]", + "fixdt(1,16,4)", "off", + "Floor", "-1", "on" ], "tabs":[ - "Parameter Attributes", + "Main", + "Signal Attributes", "-Other" ], "tabs_idx":[ 0, - 4 + 3, + 8 ] }, "viewer":{ @@ -548,49 +564,43 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"If", + "blocktype":"Saturate", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9284", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto9", - "label":"Goto9", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9293", + "className":"Simulink.SubSystem", + "icon":"WebViewIcon4", + "name":"Model_Info", + "label":"Model_Info", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" ], "values":[ - "b_hallC", - "local", - "Tag" ], "tabs":[ - "Parameter Attributes" ], - "tabs_idx":0 + "tabs_idx":[ + ] }, "viewer":{ - "jshandler":"webview/handlers/ElementHandler" + "jshandler":"webview/handlers/ContainerHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"SubSystem", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9299", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9304", "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"DC_phaA", - "label":"DC_phaA", + "name":"a_elecAngle", + "label":"a_elecAngle", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -619,7 +629,7 @@ "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "1", + "6", "Port number", "[]", "[]", @@ -666,27 +676,37 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9389", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9291", + "className":"Simulink.If", "icon":"WebViewIcon3", - "name":"Goto6", - "label":"Goto6", + "name":"If2", + "label":"If2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" + "NumInputs", + "IfExpression", + "ElseIfExpressions", + "ShowElse", + "SampleTime", + "ZeroCross" ], "values":[ - "r_inpTgtSca", - "local", - "Tag" + "1", + "u1 ~= 0", + "", + "off", + "-1", + "on" ], "tabs":[ - "Parameter Attributes" + "Parameter Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 4 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -694,16 +714,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"If", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9281", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9389", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto5", - "label":"Goto5", + "name":"Goto6", + "label":"Goto6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -712,7 +732,7 @@ "IconDisplay" ], "values":[ - "b_hallB", + "r_inpTgtSca", "local", "Tag" ], @@ -732,11 +752,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9280", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9289", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto4", - "label":"Goto4", + "name":"Goto28", + "label":"Goto28", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -745,7 +765,7 @@ "IconDisplay" ], "values":[ - "z_posRaw", + "b_motEna", "local", "Tag" ], @@ -765,11 +785,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9279", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9288", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto3", - "label":"Goto3", + "name":"Goto27", + "label":"Goto27", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -778,7 +798,7 @@ "IconDisplay" ], "values":[ - "z_ctrlTypSel", + "n_mot", "local", "Tag" ], @@ -798,11 +818,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9289", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9284", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto28", - "label":"Goto28", + "name":"Goto9", + "label":"Goto9", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -811,7 +831,7 @@ "IconDisplay" ], "values":[ - "b_motEna", + "b_hallC", "local", "Tag" ], @@ -831,11 +851,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9287", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9281", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto26", - "label":"Goto26", + "name":"Goto5", + "label":"Goto5", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -844,7 +864,7 @@ "IconDisplay" ], "values":[ - "DC_phaA", + "b_hallB", "local", "Tag" ], @@ -864,11 +884,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9285", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9283", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto24", - "label":"Goto24", + "name":"Goto23", + "label":"Goto23", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -877,7 +897,7 @@ "IconDisplay" ], "values":[ - "DC_phaB", + "z_pos", "local", "Tag" ], @@ -897,11 +917,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9283", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9276", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto23", - "label":"Goto23", + "name":"Goto15", + "label":"Goto15", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -910,7 +930,7 @@ "IconDisplay" ], "values":[ - "z_pos", + "i_phaBC", "local", "Tag" ], @@ -930,11 +950,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9272", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9275", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto2", - "label":"Goto2", + "name":"Goto14", + "label":"Goto14", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -943,7 +963,7 @@ "IconDisplay" ], "values":[ - "r_devSignal2", + "a_elecAngle", "local", "Tag" ], @@ -963,11 +983,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9278", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9277", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto17", - "label":"Goto17", + "name":"Goto16", + "label":"Goto16", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -976,7 +996,7 @@ "IconDisplay" ], "values":[ - "n_motAbs", + "z_ctrlModReq", "local", "Tag" ], @@ -996,68 +1016,21 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9298", - "className":"Simulink.Constant", - "icon":"WebViewIcon3", - "name":"z_ctrlTypSel1", - "label":"z_ctrlTypSel1", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", - "inspector":{ - "params":[ - "Value", - "VectorParams1D", - "SampleTime", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "FramePeriod" - ], - "values":[ - "z_ctrlTypSel", - "on", - "inf", - "[]", - "[]", - "uint8", - "off", - "inf" - ], - "tabs":[ - "Main", - "Signal Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 3, - 7 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Constant", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9392", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9270", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From9", - "label":"From9", + "name":"Goto1", + "label":"Goto1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "z_ctrlModPrev", + "b_hallA", + "local", "Tag" ], "tabs":[ @@ -1071,16 +1044,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9275", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9269", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto14", - "label":"Goto14", + "name":"Goto", + "label":"Goto", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -1089,7 +1062,7 @@ "IconDisplay" ], "values":[ - "a_elecAngle", + "r_inpTgt", "local", "Tag" ], @@ -1109,19 +1082,21 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9251", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9437", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From7", - "label":"From7", + "name":"Goto11", + "label":"Goto11", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "z_ctrlTypSel", + "b_motStdStill", + "local", "Tag" ], "tabs":[ @@ -1135,26 +1110,24 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9269", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9252", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto", - "label":"Goto", + "name":"From8", + "label":"From8", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "r_inpTgt", - "local", + "b_hallA", "Tag" ], "tabs":[ @@ -1168,16 +1141,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9241", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9251", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From5", - "label":"From5", + "name":"From7", + "label":"From7", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -1185,7 +1158,7 @@ "IconDisplay" ], "values":[ - "n_mot", + "z_ctrlTypSel", "Tag" ], "tabs":[ @@ -1204,11 +1177,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9263", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9250", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From46", - "label":"From46", + "name":"From6", + "label":"From6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -1216,7 +1189,7 @@ "IconDisplay" ], "values":[ - "r_devSignal1", + "z_ctrlTypSel", "Tag" ], "tabs":[ @@ -1235,19 +1208,21 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9262", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9274", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From45", - "label":"From45", + "name":"Goto13", + "label":"Goto13", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "r_devSignal2", + "i_phaAB", + "local", "Tag" ], "tabs":[ @@ -1261,41 +1236,37 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9294", - "className":"Simulink.Saturate", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9297", + "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"Saturation", - "label":"Saturation", + "name":"b_diagEna", + "label":"b_diagEna", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ - "UpperLimit", - "LowerLimit", - "LinearizeAsGain", + "Value", + "VectorParams1D", + "SampleTime", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "RndMeth", - "SampleTime", - "ZeroCross" + "FramePeriod" ], "values":[ - "1500", - "-1500", + "b_diagEna", "on", + "inf", "[]", "[]", - "fixdt(1,16,4)", + "boolean", "off", - "Floor", - "-1", - "on" + "inf" ], "tabs":[ "Main", @@ -1305,7 +1276,7 @@ "tabs_idx":[ 0, 3, - 8 + 7 ] }, "viewer":{ @@ -1314,16 +1285,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Saturate", + "blocktype":"Constant", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9268", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9263", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From35", - "label":"From35", + "name":"From46", + "label":"From46", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -1331,7 +1302,7 @@ "IconDisplay" ], "values":[ - "n_mot", + "r_devSignal1", "Tag" ], "tabs":[ @@ -1350,25 +1321,21 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9267", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9441", + "className":"Simulink.Terminator", "icon":"WebViewIcon3", - "name":"From34", - "label":"From34", + "name":"Terminator", + "label":"Terminator", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ - "GotoTag", - "IconDisplay" ], "values":[ - "a_elecAngle", - "Tag" ], "tabs":[ - "Parameter Attributes" ], - "tabs_idx":0 + "tabs_idx":[ + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1376,26 +1343,32 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Terminator", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9441", - "className":"Simulink.Terminator", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9271", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Terminator", - "label":"Terminator", + "name":"Goto10", + "label":"Goto10", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ + "GotoTag", + "TagVisibility", + "IconDisplay" ], "values":[ + "r_devSignal1", + "local", + "Tag" ], "tabs":[ + "Parameter Attributes" ], - "tabs_idx":[ - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1403,16 +1376,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Terminator", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9265", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9268", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From32", - "label":"From32", + "name":"From35", + "label":"From35", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -1420,7 +1393,7 @@ "IconDisplay" ], "values":[ - "DC_phaB", + "n_mot", "Tag" ], "tabs":[ @@ -1439,11 +1412,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9264", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9265", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From31", - "label":"From31", + "name":"From32", + "label":"From32", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -1451,7 +1424,7 @@ "IconDisplay" ], "values":[ - "DC_phaA", + "DC_phaB", "Tag" ], "tabs":[ @@ -1470,19 +1443,21 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9261", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9287", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From29", - "label":"From29", + "name":"Goto26", + "label":"Goto26", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "b_hallC", + "DC_phaA", + "local", "Tag" ], "tabs":[ @@ -1496,24 +1471,26 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9258", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9286", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From28", - "label":"From28", + "name":"Goto25", + "label":"Goto25", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "z_errCode", + "DC_phaC", + "local", "Tag" ], "tabs":[ @@ -1527,16 +1504,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9257", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9264", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From26", - "label":"From26", + "name":"From31", + "label":"From31", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -1544,7 +1521,7 @@ "IconDisplay" ], "values":[ - "z_ctrlTypSel", + "DC_phaA", "Tag" ], "tabs":[ @@ -1563,11 +1540,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9388", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9260", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From2", - "label":"From2", + "name":"From30", + "label":"From30", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -1575,7 +1552,7 @@ "IconDisplay" ], "values":[ - "r_inpTgtSca", + "z_pos", "Tag" ], "tabs":[ @@ -1594,21 +1571,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9456", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9674", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto12", - "label":"Goto12", + "name":"From3", + "label":"From3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "VqFinPrev", - "local", + "r_inpTgt", "Tag" ], "tabs":[ @@ -1622,16 +1597,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9448", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9418", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From15", - "label":"From15", + "name":"From4", + "label":"From4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -1639,7 +1614,7 @@ "IconDisplay" ], "values":[ - "VqFinPrev", + "b_motStdStill", "Tag" ], "tabs":[ @@ -1658,11 +1633,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9242", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9261", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From10", - "label":"From10", + "name":"From29", + "label":"From29", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -1670,7 +1645,7 @@ "IconDisplay" ], "values":[ - "b_motEna", + "b_hallC", "Tag" ], "tabs":[ @@ -1689,11 +1664,91 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9259", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9301", + "className":"Simulink.Outport", + "icon":"WebViewIcon3", + "name":"DC_phaC", + "label":"DC_phaC", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", + "inspector":{ + "params":[ + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" + ], + "values":[ + "3", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "off", + "[]", + "off", + "held", + "off", + "0", + "", + [ + ], + "Dialog", + "Auto", + "off" + ], + "tabs":[ + "Main", + "Signal Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 2, + 11 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Outport", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9258", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From27", - "label":"From27", + "name":"From28", + "label":"From28", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -1701,7 +1756,7 @@ "IconDisplay" ], "values":[ - "b_hallB", + "z_errCode", "Tag" ], "tabs":[ @@ -1720,11 +1775,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9252", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9257", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From8", - "label":"From8", + "name":"From26", + "label":"From26", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -1732,7 +1787,38 @@ "IconDisplay" ], "values":[ - "b_hallA", + "z_ctrlTypSel", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9436", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From18", + "label":"From18", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "b_motStdStill", "Tag" ], "tabs":[ @@ -1844,44 +1930,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9437", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto11", - "label":"Goto11", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", - "inspector":{ - "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" - ], - "values":[ - "b_motStdStill", - "local", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Goto", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9295", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9294", "className":"Simulink.Saturate", "icon":"WebViewIcon3", - "name":"Saturation1", - "label":"Saturation1", + "name":"Saturation", + "label":"Saturation", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -1897,8 +1950,8 @@ "ZeroCross" ], "values":[ - "1500", - "-1500", + "2000", + "-2000", "on", "[]", "[]", @@ -1930,21 +1983,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9276", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9249", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto15", - "label":"Goto15", + "name":"From17", + "label":"From17", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "i_phaBC", - "local", + "n_motAbs", "Tag" ], "tabs":[ @@ -1958,16 +2009,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9244", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9448", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From12", - "label":"From12", + "name":"From15", + "label":"From15", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -1975,7 +2026,7 @@ "IconDisplay" ], "values":[ - "i_phaAB", + "VqFinPrev", "Tag" ], "tabs":[ @@ -1994,11 +2045,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9300", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9299", "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"DC_phaB", - "label":"DC_phaB", + "name":"DC_phaA", + "label":"DC_phaA", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -2027,7 +2078,7 @@ "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "2", + "1", "Port number", "[]", "[]", @@ -2074,19 +2125,21 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9253", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9285", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From22", - "label":"From22", + "name":"Goto24", + "label":"Goto24", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "a_elecAngle", + "DC_phaB", + "local", "Tag" ], "tabs":[ @@ -2100,26 +2153,24 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9270", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9244", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto1", - "label":"Goto1", + "name":"From12", + "label":"From12", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "b_hallA", - "local", + "i_phaAB", "Tag" ], "tabs":[ @@ -2133,16 +2184,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9387", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9241", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From24", - "label":"From24", + "name":"From5", + "label":"From5", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -2150,7 +2201,38 @@ "IconDisplay" ], "values":[ - "r_inpTgtSca", + "n_mot", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9240", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From1", + "label":"From1", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "z_posRaw", "Tag" ], "tabs":[ @@ -2266,21 +2348,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9274", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9245", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto13", - "label":"Goto13", + "name":"From13", + "label":"From13", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "i_phaAB", - "local", + "i_phaBC", "Tag" ], "tabs":[ @@ -2294,30 +2374,42 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9248", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9290", + "className":"Simulink.If", "icon":"WebViewIcon3", - "name":"From16", - "label":"From16", + "name":"If1", + "label":"If1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ - "GotoTag", - "IconDisplay" + "NumInputs", + "IfExpression", + "ElseIfExpressions", + "ShowElse", + "SampleTime", + "ZeroCross" ], "values":[ - "z_ctrlModReq", - "Tag" + "1", + "u1 ~= CTRL_COM", + "", + "off", + "-1", + "on" ], "tabs":[ - "Parameter Attributes" + "Parameter Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 4 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -2325,16 +2417,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"If", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8220", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8535", "className":"Simulink.SubSystem", "icon":"WebViewIcon1", - "name":"F01_Estimations", - "label":"F01_Estimations", + "name":"F03_Control_Mode_Manager", + "label":"F03_Control_Mode_Manager", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -2427,21 +2519,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9282", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9388", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto8", - "label":"Goto8", + "name":"From2", + "label":"From2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "z_errCode", - "local", + "r_inpTgtSca", "Tag" ], "tabs":[ @@ -2455,46 +2545,30 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8217", - "className":"Simulink.DataTypeConversion", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9262", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Data Type Conversion7", - "label":"Data Type Conversion7", + "name":"From45", + "label":"From45", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "ConvertRealWorld", - "RndMeth", - "SaturateOnIntegerOverflow", - "SampleTime" + "GotoTag", + "IconDisplay" ], "values":[ - "[]", - "[]", - "int16", - "off", - "Real World Value (RWV)", - "Floor", - "off", - "-1" + "r_devSignal2", + "Tag" ], "tabs":[ - "Parameter Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 7 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -2502,26 +2576,24 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"DataTypeConversion", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9286", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9253", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto25", - "label":"Goto25", + "name":"From22", + "label":"From22", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "DC_phaC", - "local", + "a_elecAngle", "Tag" ], "tabs":[ @@ -2535,16 +2607,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9418", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9242", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From4", - "label":"From4", + "name":"From10", + "label":"From10", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -2552,7 +2624,7 @@ "IconDisplay" ], "values":[ - "b_motStdStill", + "b_motEna", "Tag" ], "tabs":[ @@ -2571,108 +2643,64 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9293", - "className":"Simulink.SubSystem", - "icon":"WebViewIcon4", - "name":"Model_Info", - "label":"Model_Info", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9295", + "className":"Simulink.Saturate", + "icon":"WebViewIcon3", + "name":"Saturation1", + "label":"Saturation1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ - "ShowPortLabels", - "Permissions", - "ErrorFcn", - "PermitHierarchicalResolution", - "TreatAsAtomicUnit", - "TreatAsGroupedWhenPropagatingVariantConditions", - "ActiveVariant", - "ActiveVariantBlock", - "AllowZeroVariantControls", - "BlockChoice", - "FunctionInterfaceSpec", - "FunctionWithSeparateData", - "GeneratePreprocessorConditionals", - "IsSubsystemVirtual", - "MemberBlocks", - "MinAlgLoopOccurrences", - "OverrideUsingVariant", - "PropExecContextOutsideSubsystem", - "PropagateVariantConditions", - "RTWFcnName", - "RTWFcnNameOpts", - "RTWFileName", - "RTWFileNameOpts", - "RTWMemSecDataConstants", - "RTWMemSecDataInternal", - "RTWMemSecDataParameters", - "RTWMemSecFuncExecute", - "RTWMemSecFuncInitTerm", - "RTWSystemCode", - "SystemSampleTime", - "TemplateBlock", - "Variant", - "VariantControl" + "UpperLimit", + "LowerLimit", + "LinearizeAsGain", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "RndMeth", + "SampleTime", + "ZeroCross" ], "values":[ - "FromPortIcon", - "ReadWrite", - "", - "All", - "off", - "on", - "", - "", - "off", - "", - "void_void", - "off", - "off", + "2000", + "-2000", "on", - "", - "off", - "", - "off", + "[]", + "[]", + "fixdt(1,16,4)", "off", - "", - "Auto", - "", - "Auto", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Auto", + "Floor", "-1", - "", - "off", - "" + "on" ], "tabs":[ "Main", + "Signal Attributes", "-Other" ], "tabs_idx":[ 0, - 6 + 3, + 8 ] }, "viewer":{ - "jshandler":"webview/handlers/ContainerHandler" + "jshandler":"webview/handlers/ElementHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"SubSystem", + "blocktype":"Saturate", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9393", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9280", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto7", - "label":"Goto7", + "name":"Goto4", + "label":"Goto4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -2681,7 +2709,7 @@ "IconDisplay" ], "values":[ - "z_ctrlModPrev", + "z_posRaw", "local", "Tag" ], @@ -2701,66 +2729,118 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8214", - "className":"Simulink.DataTypeConversion", - "icon":"WebViewIcon3", - "name":"Data Type Conversion4", - "label":"Data Type Conversion4", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8220", + "className":"Simulink.SubSystem", + "icon":"WebViewIcon1", + "name":"F01_Estimations", + "label":"F01_Estimations", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "ConvertRealWorld", - "RndMeth", - "SaturateOnIntegerOverflow", - "SampleTime" + "ShowPortLabels", + "Permissions", + "ErrorFcn", + "PermitHierarchicalResolution", + "TreatAsAtomicUnit", + "TreatAsGroupedWhenPropagatingVariantConditions", + "ActiveVariant", + "ActiveVariantBlock", + "AllowZeroVariantControls", + "BlockChoice", + "FunctionInterfaceSpec", + "FunctionWithSeparateData", + "GeneratePreprocessorConditionals", + "IsSubsystemVirtual", + "MemberBlocks", + "MinAlgLoopOccurrences", + "OverrideUsingVariant", + "PropExecContextOutsideSubsystem", + "PropagateVariantConditions", + "RTWFcnName", + "RTWFcnNameOpts", + "RTWFileName", + "RTWFileNameOpts", + "RTWMemSecDataConstants", + "RTWMemSecDataInternal", + "RTWMemSecDataParameters", + "RTWMemSecFuncExecute", + "RTWMemSecFuncInitTerm", + "RTWSystemCode", + "SystemSampleTime", + "TemplateBlock", + "Variant", + "VariantControl" ], "values":[ - "[]", - "[]", - "int16", + "FromPortIcon", + "ReadWrite", + "", + "All", "off", - "Real World Value (RWV)", - "Floor", + "on", + "", + "", "off", - "-1" + "", + "void_void", + "off", + "off", + "on", + "", + "off", + "", + "off", + "off", + "", + "Auto", + "", + "Auto", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Auto", + "-1", + "", + "off", + "" ], "tabs":[ - "Parameter Attributes", + "Main", "-Other" ], "tabs_idx":[ 0, - 7 + 6 ] }, "viewer":{ - "jshandler":"webview/handlers/ElementHandler" + "jshandler":"webview/handlers/ContainerHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"DataTypeConversion", + "blocktype":"SubSystem", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9249", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9278", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From17", - "label":"From17", + "name":"Goto17", + "label":"Goto17", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ "n_motAbs", + "local", "Tag" ], "tabs":[ @@ -2774,16 +2854,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9385", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9259", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From", - "label":"From", + "name":"From27", + "label":"From27", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -2791,7 +2871,7 @@ "IconDisplay" ], "values":[ - "r_inpTgt", + "b_hallB", "Tag" ], "tabs":[ @@ -2810,11 +2890,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8213", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8217", "className":"Simulink.DataTypeConversion", "icon":"WebViewIcon3", - "name":"Data Type Conversion3", - "label":"Data Type Conversion3", + "name":"Data Type Conversion7", + "label":"Data Type Conversion7", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -2856,6 +2936,37 @@ "masktype":"" } }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9385", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From", + "label":"From", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "r_inpTgt", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8215", "className":"Simulink.DataTypeConversion", @@ -2904,11 +3015,44 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8211", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9279", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto3", + "label":"Goto3", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", + "inspector":{ + "params":[ + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "z_ctrlTypSel", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8213", "className":"Simulink.DataTypeConversion", "icon":"WebViewIcon3", - "name":"Data Type Conversion10", - "label":"Data Type Conversion10", + "name":"Data Type Conversion3", + "label":"Data Type Conversion3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -2951,174 +3095,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8535", - "className":"Simulink.SubSystem", - "icon":"WebViewIcon1", - "name":"F03_Control_Mode_Manager", - "label":"F03_Control_Mode_Manager", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", - "inspector":{ - "params":[ - "ShowPortLabels", - "Permissions", - "ErrorFcn", - "PermitHierarchicalResolution", - "TreatAsAtomicUnit", - "TreatAsGroupedWhenPropagatingVariantConditions", - "ActiveVariant", - "ActiveVariantBlock", - "AllowZeroVariantControls", - "BlockChoice", - "FunctionInterfaceSpec", - "FunctionWithSeparateData", - "GeneratePreprocessorConditionals", - "IsSubsystemVirtual", - "MemberBlocks", - "MinAlgLoopOccurrences", - "OverrideUsingVariant", - "PropExecContextOutsideSubsystem", - "PropagateVariantConditions", - "RTWFcnName", - "RTWFcnNameOpts", - "RTWFileName", - "RTWFileNameOpts", - "RTWMemSecDataConstants", - "RTWMemSecDataInternal", - "RTWMemSecDataParameters", - "RTWMemSecFuncExecute", - "RTWMemSecFuncInitTerm", - "RTWSystemCode", - "SystemSampleTime", - "TemplateBlock", - "Variant", - "VariantControl" - ], - "values":[ - "FromPortIcon", - "ReadWrite", - "", - "All", - "off", - "on", - "", - "", - "off", - "", - "void_void", - "off", - "off", - "on", - "", - "off", - "", - "off", - "off", - "", - "Auto", - "", - "Auto", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Auto", - "-1", - "", - "off", - "" - ], - "tabs":[ - "Main", - "-Other" - ], - "tabs_idx":[ - 0, - 6 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ContainerHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"SubSystem", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9271", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto10", - "label":"Goto10", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", - "inspector":{ - "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" - ], - "values":[ - "r_devSignal1", - "local", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Goto", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9288", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto27", - "label":"Goto27", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", - "inspector":{ - "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" - ], - "values":[ - "n_mot", - "local", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Goto", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8210", - "className":"Simulink.DataTypeConversion", - "icon":"WebViewIcon3", - "name":"Data Type Conversion1", - "label":"Data Type Conversion1", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8214", + "className":"Simulink.DataTypeConversion", + "icon":"WebViewIcon3", + "name":"Data Type Conversion4", + "label":"Data Type Conversion4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -3161,78 +3142,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8205", - "className":"Simulink.Inport", - "icon":"WebViewIcon3", - "name":"b_hallB", - "label":"b_hallB", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", - "inspector":{ - "params":[ - "Port", - "IconDisplay", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" - ], - "values":[ - "5", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "", - "on", - "off", - "off", - "off" - ], - "tabs":[ - "Main", - "Signal Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 2, - 11 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Inport", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8216", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8212", "className":"Simulink.DataTypeConversion", "icon":"WebViewIcon3", - "name":"Data Type Conversion6", - "label":"Data Type Conversion6", + "name":"Data Type Conversion2", + "label":"Data Type Conversion2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -3275,60 +3189,40 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8204", - "className":"Simulink.Inport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8218", + "className":"Simulink.DataTypeConversion", "icon":"WebViewIcon3", - "name":"b_hallA ", - "label":"b_hallA ", + "name":"Data Type Conversion8", + "label":"Data Type Conversion8", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ - "Port", - "IconDisplay", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" + "ConvertRealWorld", + "RndMeth", + "SaturateOnIntegerOverflow", + "SampleTime" ], "values":[ - "4", - "Port number", "[]", "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "", - "on", + "int16", "off", + "Real World Value (RWV)", + "Floor", "off", - "off" + "-1" ], "tabs":[ - "Main", - "Signal Attributes", + "Parameter Attributes", "-Other" ], "tabs_idx":[ 0, - 2, - 11 + 7 ] }, "viewer":{ @@ -3337,158 +3231,45 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9240", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From1", - "label":"From1", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "z_posRaw", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9260", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From30", - "label":"From30", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "z_pos", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9250", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From6", - "label":"From6", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "z_ctrlTypSel", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", + "blocktype":"DataTypeConversion", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8209", - "className":"Simulink.Inport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8210", + "className":"Simulink.DataTypeConversion", "icon":"WebViewIcon3", - "name":"i_DCLink", - "label":"i_DCLink", + "name":"Data Type Conversion1", + "label":"Data Type Conversion1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ - "Port", - "IconDisplay", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" + "ConvertRealWorld", + "RndMeth", + "SaturateOnIntegerOverflow", + "SampleTime" ], "values":[ - "9", - "Port number", "[]", "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "", - "on", + "int16", "off", + "Real World Value (RWV)", + "Floor", "off", - "off" + "-1" ], "tabs":[ - "Main", - "Signal Attributes", + "Parameter Attributes", "-Other" ], "tabs_idx":[ 0, - 2, - 11 + 7 ] }, "viewer":{ @@ -3497,91 +3278,123 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", + "blocktype":"DataTypeConversion", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8208", - "className":"Simulink.Inport", - "icon":"WebViewIcon3", - "name":"i_phaBC", - "label":"i_phaBC", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8658", + "className":"Simulink.SubSystem", + "icon":"WebViewIcon1", + "name":"F04_Field_Oriented_Control", + "label":"F04_Field_Oriented_Control", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ - "Port", - "IconDisplay", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" + "ShowPortLabels", + "Permissions", + "ErrorFcn", + "PermitHierarchicalResolution", + "TreatAsAtomicUnit", + "TreatAsGroupedWhenPropagatingVariantConditions", + "ActiveVariant", + "ActiveVariantBlock", + "AllowZeroVariantControls", + "BlockChoice", + "FunctionInterfaceSpec", + "FunctionWithSeparateData", + "GeneratePreprocessorConditionals", + "IsSubsystemVirtual", + "MemberBlocks", + "MinAlgLoopOccurrences", + "OverrideUsingVariant", + "PropExecContextOutsideSubsystem", + "PropagateVariantConditions", + "RTWFcnName", + "RTWFcnNameOpts", + "RTWFileName", + "RTWFileNameOpts", + "RTWMemSecDataConstants", + "RTWMemSecDataInternal", + "RTWMemSecDataParameters", + "RTWMemSecFuncExecute", + "RTWMemSecFuncInitTerm", + "RTWSystemCode", + "SystemSampleTime", + "TemplateBlock", + "Variant", + "VariantControl" ], "values":[ - "8", - "Port number", - "[]", - "[]", - "Inherit: auto", + "FromPortIcon", + "ReadWrite", + "", + "All", "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", + "on", + "", + "", "off", "", - "on", + "void_void", "off", "off", - "off" + "off", + "", + "off", + "", + "off", + "off", + "", + "Auto", + "", + "Auto", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Auto", + "-1", + "", + "off", + "" ], "tabs":[ "Main", - "Signal Attributes", "-Other" ], "tabs_idx":[ 0, - 2, - 11 + 6 ] }, "viewer":{ - "jshandler":"webview/handlers/ElementHandler" + "jshandler":"webview/handlers/ContainerHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", + "blocktype":"SubSystem", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9436", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9456", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From18", - "label":"From18", + "name":"Goto12", + "label":"Goto12", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "b_motStdStill", + "VqFinPrev", + "local", "Tag" ], "tabs":[ @@ -3595,16 +3408,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8203", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8208", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"r_inpTgt", - "label":"r_inpTgt", + "name":"i_phaBC", + "label":"i_phaBC", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -3627,7 +3440,7 @@ "OutputFunctionCall" ], "values":[ - "3", + "8", "Port number", "[]", "[]", @@ -3667,64 +3480,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9669", - "className":"Simulink.Saturate", - "icon":"WebViewIcon3", - "name":"Saturation2", - "label":"Saturation2", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", - "inspector":{ - "params":[ - "UpperLimit", - "LowerLimit", - "LinearizeAsGain", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "RndMeth", - "SampleTime", - "ZeroCross" - ], - "values":[ - "1000", - "-1000", - "on", - "[]", - "[]", - "fixdt(1,16,4)", - "off", - "Floor", - "-1", - "on" - ], - "tabs":[ - "Main", - "Signal Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 3, - 8 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Saturate", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9266", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9387", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From33", - "label":"From33", + "name":"From24", + "label":"From24", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -3732,7 +3492,7 @@ "IconDisplay" ], "values":[ - "DC_phaC", + "r_inpTgtSca", "Tag" ], "tabs":[ @@ -3751,11 +3511,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9245", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9248", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From13", - "label":"From13", + "name":"From16", + "label":"From16", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -3763,7 +3523,7 @@ "IconDisplay" ], "values":[ - "i_phaBC", + "z_ctrlModReq", "Tag" ], "tabs":[ @@ -3782,11 +3542,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9304", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8207", + "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"a_elecAngle", - "label":"a_elecAngle", + "name":"i_phaAB", + "label":"i_phaAB", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -3802,20 +3562,14 @@ "SampleTime", "SignalType", "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" ], "values":[ - "6", + "7", "Port number", "[]", "[]", @@ -3827,17 +3581,10 @@ "-1", "auto", "off", + "", + "on", "off", - "[]", - "off", - "held", "off", - "0", - "", - [ - ], - "Dialog", - "Auto", "off" ], "tabs":[ @@ -3857,46 +3604,75 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", + "blocktype":"Inport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9297", - "className":"Simulink.Constant", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9392", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"b_diagEna", - "label":"b_diagEna", + "name":"From9", + "label":"From9", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "z_ctrlModPrev", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8211", + "className":"Simulink.DataTypeConversion", + "icon":"WebViewIcon3", + "name":"Data Type Conversion10", + "label":"Data Type Conversion10", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ - "Value", - "VectorParams1D", - "SampleTime", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "FramePeriod" + "ConvertRealWorld", + "RndMeth", + "SaturateOnIntegerOverflow", + "SampleTime" ], "values":[ - "b_diagEna", - "on", - "inf", "[]", "[]", - "boolean", + "int16", "off", - "inf" + "Real World Value (RWV)", + "Floor", + "off", + "-1" ], "tabs":[ - "Main", - "Signal Attributes", + "Parameter Attributes", "-Other" ], "tabs_idx":[ 0, - 3, 7 ] }, @@ -3906,16 +3682,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Constant", + "blocktype":"DataTypeConversion", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8202", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8205", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"z_ctrlModReq", - "label":"z_ctrlModReq", + "name":"b_hallB", + "label":"b_hallB", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -3938,7 +3714,7 @@ "OutputFunctionCall" ], "values":[ - "2", + "5", "Port number", "[]", "[]", @@ -3978,11 +3754,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8206", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8204", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"b_hallC", - "label":"b_hallC", + "name":"b_hallA ", + "label":"b_hallA ", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -4005,7 +3781,7 @@ "OutputFunctionCall" ], "values":[ - "6", + "4", "Port number", "[]", "[]", @@ -4045,11 +3821,44 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9305", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9393", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto7", + "label":"Goto7", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", + "inspector":{ + "params":[ + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "z_ctrlModPrev", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9300", "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"r_devSignal1", - "label":"r_devSignal1", + "name":"DC_phaB", + "label":"DC_phaB", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -4078,7 +3887,7 @@ "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "7", + "2", "Port number", "[]", "[]", @@ -4091,9 +3900,9 @@ "auto", "off", "off", - "0", + "[]", "off", - "reset", + "held", "off", "0", "", @@ -4125,21 +3934,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9277", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9266", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto16", - "label":"Goto16", + "name":"From33", + "label":"From33", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "z_ctrlModReq", - "local", + "DC_phaC", "Tag" ], "tabs":[ @@ -4153,16 +3960,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8658", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8469", "className":"Simulink.SubSystem", "icon":"WebViewIcon1", - "name":"F04_Field_Oriented_Control", - "label":"F04_Field_Oriented_Control", + "name":"F02_Diagnostics", + "label":"F02_Diagnostics", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -4233,62 +4040,249 @@ "-1", "", "off", - "" + "" + ], + "tabs":[ + "Main", + "-Other" + ], + "tabs_idx":[ + 0, + 6 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ContainerHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"SubSystem", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8203", + "className":"Simulink.Inport", + "icon":"WebViewIcon3", + "name":"r_inpTgt", + "label":"r_inpTgt", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", + "inspector":{ + "params":[ + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" + ], + "values":[ + "3", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "", + "on", + "off", + "off", + "off" + ], + "tabs":[ + "Main", + "Signal Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 2, + 11 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Inport", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9272", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto2", + "label":"Goto2", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", + "inspector":{ + "params":[ + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "r_devSignal2", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8202", + "className":"Simulink.Inport", + "icon":"WebViewIcon3", + "name":"z_ctrlModReq", + "label":"z_ctrlModReq", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", + "inspector":{ + "params":[ + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" + ], + "values":[ + "2", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "", + "on", + "off", + "off", + "off" ], "tabs":[ "Main", + "Signal Attributes", "-Other" ], "tabs_idx":[ 0, - 6 + 2, + 11 ] }, "viewer":{ - "jshandler":"webview/handlers/ContainerHandler" + "jshandler":"webview/handlers/ElementHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"SubSystem", + "blocktype":"Inport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8212", - "className":"Simulink.DataTypeConversion", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8206", + "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"Data Type Conversion2", - "label":"Data Type Conversion2", + "name":"b_hallC", + "label":"b_hallC", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ + "Port", + "IconDisplay", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "ConvertRealWorld", - "RndMeth", - "SaturateOnIntegerOverflow", - "SampleTime" + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" ], "values":[ + "6", + "Port number", "[]", "[]", - "int16", + "Inherit: auto", "off", - "Real World Value (RWV)", - "Floor", + "inherit", + "-1", + "Inherit", + "-1", + "auto", "off", - "-1" + "", + "on", + "off", + "off", + "off" ], "tabs":[ - "Parameter Attributes", + "Main", + "Signal Attributes", "-Other" ], "tabs_idx":[ 0, - 7 + 2, + 11 ] }, "viewer":{ @@ -4297,113 +4291,49 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"DataTypeConversion", + "blocktype":"Inport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8469", - "className":"Simulink.SubSystem", - "icon":"WebViewIcon1", - "name":"F02_Diagnostics", - "label":"F02_Diagnostics", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9282", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto8", + "label":"Goto8", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ - "ShowPortLabels", - "Permissions", - "ErrorFcn", - "PermitHierarchicalResolution", - "TreatAsAtomicUnit", - "TreatAsGroupedWhenPropagatingVariantConditions", - "ActiveVariant", - "ActiveVariantBlock", - "AllowZeroVariantControls", - "BlockChoice", - "FunctionInterfaceSpec", - "FunctionWithSeparateData", - "GeneratePreprocessorConditionals", - "IsSubsystemVirtual", - "MemberBlocks", - "MinAlgLoopOccurrences", - "OverrideUsingVariant", - "PropExecContextOutsideSubsystem", - "PropagateVariantConditions", - "RTWFcnName", - "RTWFcnNameOpts", - "RTWFileName", - "RTWFileNameOpts", - "RTWMemSecDataConstants", - "RTWMemSecDataInternal", - "RTWMemSecDataParameters", - "RTWMemSecFuncExecute", - "RTWMemSecFuncInitTerm", - "RTWSystemCode", - "SystemSampleTime", - "TemplateBlock", - "Variant", - "VariantControl" + "GotoTag", + "TagVisibility", + "IconDisplay" ], "values":[ - "FromPortIcon", - "ReadWrite", - "", - "All", - "off", - "on", - "", - "", - "off", - "", - "void_void", - "off", - "off", - "off", - "", - "off", - "", - "off", - "off", - "", - "Auto", - "", - "Auto", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Auto", - "-1", - "", - "off", - "" + "z_errCode", + "local", + "Tag" ], "tabs":[ - "Main", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 6 - ] + "tabs_idx":0 }, "viewer":{ - "jshandler":"webview/handlers/ContainerHandler" + "jshandler":"webview/handlers/ElementHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"SubSystem", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8218", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8216", "className":"Simulink.DataTypeConversion", "icon":"WebViewIcon3", - "name":"Data Type Conversion8", - "label":"Data Type Conversion8", + "name":"Data Type Conversion6", + "label":"Data Type Conversion6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -4513,11 +4443,42 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8207", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9267", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From34", + "label":"From34", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "a_elecAngle", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8209", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"i_phaAB", - "label":"i_phaAB", + "name":"i_DCLink", + "label":"i_DCLink", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", "inspector":{ "params":[ @@ -4540,7 +4501,7 @@ "OutputFunctionCall" ], "values":[ - "7", + "9", "Port number", "[]", "[]", @@ -8505,5 +8466,56 @@ ], "finder":[ ] + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9674#out:1", + "className":"Simulink.Line", + "icon":"WebViewIcon5", + "name":"", + "label":"", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:29", + "inspector":{ + "params":[ + "SignalNameFromLabel", + "MustResolveToSignal", + "ShowPropagatedSignal", + "DataLogging", + "TestPoint", + "SignalObjectPackage", + "StorageClass", + "Description", + "documentLink" + ], + "values":[ + "", + "off", + "off", + "off", + "off", + "Simulink", + "Auto", + "", + "" + ], + "tabs":[ + "Parameter Attributes", + "Logging and Accessibility", + "Code Generation", + "Documentation" + ], + "tabs_idx":[ + 0, + 3, + 5, + 7 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":[ + ] } ] \ No newline at end of file diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_29_d.png b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_29_d.png index d2762db2557d20ee7df0a0fca0373615d22df213..dd043a4587861c84f96fc1f65efee2cf42dfd298 100644 GIT binary patch literal 10909 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 literal 10832 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 Hn}_@#*wQ2_ diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_29_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_29_d.svg index 1824458..b7520c2 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_29_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_29_d.svg @@ -506,11 +506,11 @@ - - + + - + @@ -520,30 +520,30 @@ - - 5 + + 7 - + - - + + - + - - n_mot + + r_devSignal1 @@ -554,11 +554,11 @@ - - + + - + @@ -568,30 +568,30 @@ - - 4 + + 5 - + - - + + - + - - z_errCode + + n_mot @@ -602,11 +602,11 @@ - - + + - + @@ -616,30 +616,30 @@ - - 3 + + 4 - + - - + + - + - - DC_phaC + + z_errCode @@ -650,52 +650,44 @@ - - - + + + - - + + - - - - - u1 - - - - + - - if(u1 ~= 0) + + z_ctrlTypSel - - + + - - + + - - + + - - action + + uint8 @@ -706,52 +698,76 @@ - - - + + + - - + + - + - - + + - - u1 + + - - + + - - if(u1 ~= CTRL_COM) + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - action + + sfix16_En4 @@ -762,29 +778,98 @@ - - - - - - + + + - - + + - - [b_hallC] + + MODEL INFO + + + + + + + + Version: 1.1187 + + + + + + + + Author: Emanuel Feru + + + + + + + + Last modified by: eferu + + + + + + + + Last update: 27-okt-2019 17:30:55 + + + + + + + + Copyright © 2019 Emanuel FERU - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -795,44 +880,44 @@ - - + + - + - + - - 1 + + 6 - + - - + + - - + + - - DC_phaA + + a_elecAngle @@ -843,29 +928,52 @@ - - - + + + - - + + - - + + - - [r_inpTgtSca] + + u1 - - - - - - + + + + + + + if(u1 ~= 0) + + + + + + + + + + + + + + + + + + + + + + action @@ -876,28 +984,28 @@ - - + + - + - + - - [b_hallB] + + [r_inpTgtSca] - + @@ -909,28 +1017,28 @@ - - + + - + - + - - [z_posRaw] + + [b_motEna] - + @@ -942,28 +1050,28 @@ - - + + - + - + - - [z_ctrlTypSel] + + [n_mot] - + @@ -975,28 +1083,28 @@ - - + + - + - + - - [b_motEna] + + [b_hallC] - + @@ -1008,28 +1116,28 @@ - - + + - + - + - - [DC_phaA] + + [b_hallB] - + @@ -1041,28 +1149,28 @@ - - + + - + - + - - [DC_phaB] + + [z_pos] - + @@ -1074,28 +1182,28 @@ - - + + - + - + - - [z_pos] + + [i_phaBC] - + @@ -1107,28 +1215,28 @@ - - + + - + - + - - [r_devSignal2] + + [a_elecAngle] - + @@ -1140,28 +1248,28 @@ - - + + - + - + - - [n_motAbs] + + [z_ctrlModReq] - + @@ -1173,44 +1281,29 @@ - - - + + + - - + + - - + + - - z_ctrlTypSel + + [b_hallA] - - - - - - - - - - - - - - - - - uint8 + + @@ -1221,44 +1314,29 @@ - - - + + + - - + + - - + + - - [z_ctrlModPrev] + + [r_inpTgt] - - - - - - - - - - - - - - - - - uint8 + + @@ -1269,28 +1347,28 @@ - - + + - + - + - - [a_elecAngle] + + [b_motStdStill] - + @@ -1302,43 +1380,43 @@ - - + + - + - + - - [z_ctrlTypSel] + + [b_hallA] - + - + - - + + - + uint8 @@ -1350,29 +1428,44 @@ - - - + + + - - + + - - + + - - [r_inpTgt] + + [z_ctrlTypSel] - - + + + + + + + + + + + + + + + + + uint8 @@ -1383,44 +1476,44 @@ - - + + - + - + - - [n_mot] + + [z_ctrlTypSel] - + - - + + - - + + - - sfix16_En4 + + uint8 @@ -1431,44 +1524,77 @@ - - - + + + - - + + - - + + - - [r_devSignal1] + + [i_phaAB] - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + b_diagEna + + + + + + + - - + + - - + + - - sfix16_En4 + + boolean @@ -1479,43 +1605,43 @@ - - + + - + - + - - [r_devSignal2] + + [r_devSignal1] - + - + - - + + - + sfix16_En4 @@ -1527,51 +1653,35 @@ - - - - - - + + + - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + + + + @@ -1580,23 +1690,41 @@ - - + + - - - - + + + + + + + + + + + + + + + - - + + - - sfix16_En4 + + [r_devSignal1] + + + + + + + @@ -1608,42 +1736,42 @@ - + - + - + - + [n_mot] - + - + - - + + - + sfix16_En4 @@ -1655,44 +1783,44 @@ - - + + - + - + - - [a_elecAngle] + + [DC_phaB] - + - - + + - - + + - - ufix16_En6 + + int16 @@ -1703,45 +1831,29 @@ - - - + + + + + + - - - - - - - - - + - - + + - - - - - - - - - + + [DC_phaA] - - - - - - + + @@ -1752,44 +1864,29 @@ - - - + + + - - + + - - + + - - [DC_phaB] + + [DC_phaC] - - - - - - - - - - - - - - - - - int16 + + @@ -1810,11 +1907,11 @@ - + - + [DC_phaA] @@ -1832,11 +1929,11 @@ - + - + int16 @@ -1848,44 +1945,44 @@ - - + + - + - + - - [b_hallC] + + [z_pos] - + - - + + - - + + - - uint8 + + int8 @@ -1896,44 +1993,44 @@ - - + + - + - + - - [z_errCode] + + [r_inpTgt] - + - - + + - - + + - - uint8 + + sfix16_En4 @@ -1944,44 +2041,44 @@ - - + + - + - + - - [z_ctrlTypSel] + + [b_motStdStill] - + - - + + - - + + - - uint8 + + boolean @@ -1992,77 +2089,44 @@ - - + + - + - + - - [r_inpTgtSca] + + [b_hallC] - + - - - - - - - - - - sfix16_En4 + + - - - - - - - - - - - - - - - - - - - - + + - - [VqFinPrev] - - - - - - - + + uint8 @@ -2073,44 +2137,44 @@ - - - + + + - - + + - - + + - - [VqFinPrev] + + 3 - - + + - - - + + + - - + + - - int16 + + DC_phaC @@ -2121,44 +2185,44 @@ - - + + - + - + - - [b_motEna] + + [z_errCode] - + - - + + - - + + - - boolean + + uint8 @@ -2169,43 +2233,43 @@ - - + + - + - + - - [b_hallB] + + [z_ctrlTypSel] - + - + - - + + - + uint8 @@ -2217,44 +2281,44 @@ - - + + - + - + - - [b_hallA] + + [b_motStdStill] - + - - + + - - + + - - uint8 + + boolean @@ -2282,11 +2346,11 @@ - + - + Implemented_control_methods @@ -2312,78 +2376,45 @@ - - - - - - - - - - - - - - - - [b_motStdStill] - - - - - - - - - - - - - - - - - - - - + + + - + - + - + - + - + - + - + - + - + @@ -2398,22 +2429,22 @@ - + - + - - + + - + sfix16_En4 @@ -2425,29 +2456,44 @@ - - - + + + - - + + - - + + - - [i_phaBC] + + [n_motAbs] - - + + + + + + + + + + + + + + + + + sfix16_En4 @@ -2458,44 +2504,44 @@ - - + + - + - + - - [i_phaAB] + + [VqFinPrev] - + - - + + - - + + - - sfix16_En4 + + int16 @@ -2506,44 +2552,44 @@ - - + + - + - + - - 2 + + 1 - + - + - - + + - - DC_phaB + + DC_phaA @@ -2554,44 +2600,77 @@ - - + + + + + + + + + + + + + + + + [DC_phaB] + + + + + + + + + + + + + + + + + + + - + - + - - [a_elecAngle] + + [i_phaAB] - + - - + + - - + + - - ufix16_En6 + + sfix16_En4 @@ -2602,29 +2681,44 @@ - - - + + + - - + + - - + + - - [b_hallA] + + [n_mot] - - + + + + + + + + + + + + + + + + + sfix16_En4 @@ -2635,44 +2729,44 @@ - - + + - + - + - - [r_inpTgtSca] + + [z_posRaw] - + - - + + - - + + - - sfix16_En4 + + uint8 @@ -2699,99 +2793,99 @@ - + - + b_enaFOC - + - + z_pos - + - + z_ctrlTypSel - + - + r_phaA - + - + r_phaB - + - + r_phaC - + - + Vq - + - + r_inpTgtSca - + - + DC_phaA - + - + DC_phaB - + - + DC_phaC - + - + VqFinPrev @@ -2821,11 +2915,11 @@ - + - + F05_Control_Type_Management @@ -2842,11 +2936,11 @@ - + - + int16 @@ -2859,15 +2953,15 @@ - + - - + + - + int16 @@ -2880,15 +2974,15 @@ - + - - + + - + int16 @@ -2901,15 +2995,15 @@ - + - - + + - + int16 @@ -2921,83 +3015,50 @@ - + - - - - - - - - - - - - - - - [i_phaAB] - - - - - - - - - - - - - - - - - - - + - + - + - - [z_ctrlModReq] + + [i_phaBC] - + - - + + - - + + - - uint8 + + sfix16_En4 @@ -3008,132 +3069,124 @@ - - - - - - - - - - - - + + + + + + - - - - - - z_ctrlTypSel - - - - - - - - r_inpTgt - - - - - - - - b_hallA - - - - + + - - b_hallB + + u1 - - + + - - b_hallC + + if(u1 ~= CTRL_COM) - - - - - - - z_ctrlModPrev + + + + + + - - - - - - - r_inpTgtSca + + + + + + - - + + - - z_posRaw + + action + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - z_pos + + b_errFlag - - + + - - n_mot + + b_motStdStill - - + + - - n_motAbs + + b_motEna - - + + - - a_elecAngle + + z_ctrlModReq - - + + - - b_motStdStill + + z_ctrlMod - - + + - - b_enaFOC + + z_ctrlModPrev @@ -3145,8 +3198,8 @@ - - + + @@ -3158,16 +3211,16 @@ - - + + - - + + - - F01_Estimations + + F03_Control_Mode_Manager @@ -3179,16 +3232,16 @@ - - + + - - + + - - sfix16_En4 + + uint8 @@ -3200,142 +3253,166 @@ - - + + - - + + - - boolean + + uint8 - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - + + - - int8 + + [r_inpTgtSca] - - - - - - - - - - - - - - - - - boolean + + + - - - - - - - - + + - - + + - - uint8 + + sfix16_En4 - - - - - - - - - - + + + + + + + + + + + + + + + - - + + - - ufix16_En6 + + [r_devSignal2] + + + + + + + - - - - - - - + - - + + - + sfix16_En4 - + + + + + + + + + + + + + + + - - - - + + + - - + + [a_elecAngle] + + + + + + + + + + + + + + - - + + - - sfix16_En4 + + ufix16_En6 @@ -3346,35 +3423,44 @@ - - - - - - - - - + + + - - + + - - + + - - [z_errCode] + + [b_motEna] - - + + + + + + + + + + + + + + + + + boolean @@ -3385,30 +3471,46 @@ - - - + + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + @@ -3422,23 +3524,23 @@ - - + + - - + + - - + + - - int16 + + sfix16_En4 @@ -3449,28 +3551,28 @@ - - + + - + - + - - [DC_phaC] + + [z_posRaw] - + @@ -3482,243 +3584,334 @@ - - - + + + - - + + + + + + + + - - + + - - [b_motStdStill] + + z_ctrlTypSel + + + + + + + + r_inpTgt + + + + + + + + b_hallA + + + + + + + + b_hallB + + + + + + + + b_hallC + + + + + + + + z_ctrlModPrev + + + + + + + + r_inpTgtSca + + + + + + + + z_posRaw + + + + + + + + z_pos + + + + + + + + n_mot + + + + + + + + n_motAbs + + + + + + + + a_elecAngle + + + + + + + + b_motStdStill + + + + + + + + b_enaFOC - - + + + + + + + + - - - + + + + + + + + + - - + + - - boolean + + F01_Estimations - - - - - - - - - - - - + - - - + + + + - - MODEL INFO + + - - + + - - Version: 1.1183 + + uint8 + + + + - - - + + + + - - Author: Emanuel Feru + + - - + + - - Last modified by: eferu + + boolean + + + + - - - + + + + - - Last update: 21-okt-2019 16:33:56 + + - - + + - - Copyright © 2019 Emanuel FERU + + boolean - - - + + + + + + + + + - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - + + sfix16_En4 - - - - - - - - - - - - - - - + - - - + + + + - - [z_ctrlModPrev] + + - - - - - - + + + + + + + sfix16_En4 - - - - - - - - - - - - - - - + - - - + + + + - - + + - - + + - - + + sfix16_En4 - - - - - - - - - - - + + + + + + + + + + + + + + + + + int8 - - + + + + + + + + - - + + - - int16 + + ufix16_En6 @@ -3729,44 +3922,35 @@ - - - + + + + + + + + + - - + + - - + + - + [n_motAbs] - - - - - - - - - - - - - - - - - sfix16_En4 + + @@ -3777,44 +3961,44 @@ - - + + - + - + - - [r_inpTgt] + + [b_hallB] - + - - + + - - + + - - sfix16_En4 + + uint8 @@ -3825,29 +4009,29 @@ - - + + - + - + - + - + - + @@ -3862,22 +4046,22 @@ - + - + - - + + - + int16 @@ -3889,60 +4073,44 @@ - - - + + + - - + + - - - - - - - - - + - - + + - - + + [r_inpTgt] - - - - - - - - - - + + - - + + - - + + - - int16 + + sfix16_En4 @@ -3953,29 +4121,29 @@ - - + + - + - + - + - + - + @@ -3990,22 +4158,22 @@ - + - + - - + + - + int16 @@ -4017,144 +4185,93 @@ - - - + + + - - - - - - - - + + - - - - - - b_errFlag - - - - - - - - b_motStdStill - - - - - - - - b_motEna - - - - - - - - z_ctrlModReq - - - - - - - - z_ctrlMod - - - - + + - - z_ctrlModPrev + + [z_ctrlTypSel] - - - - - - - - + + - + + + + + + + + + + + + + + + - - - - + + + - - + + - - + + - - F03_Control_Mode_Manager + + - - - - - - - - - - - - - - - - - uint8 + + + + + + + + + + + - - - - - - - + - - + + - - uint8 + + int16 @@ -4165,68 +4282,60 @@ - - - - - - - - - + + + - - + + - + - - + + - - [r_devSignal1] + + + + + + + + + + - - - - + - - - - - - - - - - - - + + - - - - - - - - [n_mot] + + + - - - + + + + + + + + + + + int16 @@ -4237,29 +4346,29 @@ - - + + - + - + - + - + - + @@ -4274,22 +4383,22 @@ - + - + - - + + - + int16 @@ -4301,59 +4410,60 @@ - - - + + + - - + + - + - - + + - - 5 + + + + + + + + + + - - - - + + + + + - - - - - - - - - - - b_hallB + + + - + - - + + - - uint8 + + int16 @@ -4364,29 +4474,29 @@ - - + + - + - + - + - + - + @@ -4401,22 +4511,22 @@ - + - + - - + + - + int16 @@ -4428,203 +4538,329 @@ - - - + + + - - + + + + + + + + - - + + - - 4 + + b_enaFOC + + + + + + + + z_ctrlMod + + + + + + + + r_inpTgt + + + + + + + + r_inpTgtSca + + + + + + + + n_mot + + + + + + + + n_motAbs + + + + + + + + a_elecAngle + + + + + + + + i_phaAB + + + + + + + + i_phaBC + + + + + + + + r_phaA + + + + + + + + r_phaB + + + + + + + + r_phaC + + + + + + + + Vq + + + + + + + + r_devSignal1 + + + + + + + + r_devSignal2 + + + + + + + + if { } - - + + + + + + + + - - + + + + + + + + - - + + - - b_hallA + + F04_Field_Oriented_Control - + + + + + + + - - + + - - uint8 + + int16 - - - - - - - - - - - - - - - + - - - + + + + - - [z_posRaw] + + - - - - - - + + + + + + + sfix16_En4 - - + + + + + + + + - - + + - - uint8 + + sfix16_En4 - - - - - - - - - - - - - - - + - - - + + + + - - [z_pos] + + - - - - - - + + + + + + + action - - + + + + + + + + - - + + - - int8 + + int16 - - - - - - - - - - - - - - - + - - - + + + + - - [z_ctrlTypSel] + + - - - - - - + + + + + + + sfix16_En4 - + + + + + + + - - + + - - uint8 + + int16 @@ -4635,59 +4871,35 @@ - - - + + + + + + + + + - - + + - - + + - - 9 + + [VqFinPrev] - - - - - - - - - - - - - - - - - i_DCLink - - - - - - - - - - - - - - - int16 + + @@ -4708,11 +4920,11 @@ - + - + 8 @@ -4730,11 +4942,11 @@ - + - + i_phaBC @@ -4745,11 +4957,11 @@ - + - + int16 @@ -4761,44 +4973,44 @@ - - + + - + - + - - [b_motStdStill] + + [r_inpTgtSca] - + - - + + - - + + - - boolean + + sfix16_En4 @@ -4809,59 +5021,44 @@ - - - + + + - - + + - - + + - - 3 + + [z_ctrlModReq] - - - - - - - - - - - - - - - - - r_inpTgt + + - + - - + + - - int16 + + uint8 @@ -4872,123 +5069,58 @@ - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + 7 - - - - - - - - - - + + - - - - - - - - - - - sfix16_En4 + + + - - - - - - - - - - - - - - - - - - - - + + - - - [DC_phaC] - - - - - - - + + + i_phaAB - + - - + + - + int16 @@ -5000,44 +5132,44 @@ - - + + - + - + - - [i_phaBC] + + [z_ctrlModPrev] - + - - + + - - + + - - sfix16_En4 + + uint8 @@ -5048,92 +5180,60 @@ - - - + + + - - + + - + - - + + - - 6 - - - - - - - - - - - - - - + + - - + + - - a_elecAngle + + - - - - - - - - - - - - + + - - - - - - - b_diagEna - - - + + - - + + - - + + - - boolean + + int16 @@ -5144,58 +5244,58 @@ - - + + - + - + - - 2 + + 5 - + - - + + - - + + - - z_ctrlModReq + + b_hallB - + - - + + - + uint8 @@ -5207,58 +5307,58 @@ - - + + - + - + - - 6 + + 4 - + - - + + - - + + - - b_hallC + + b_hallA - + - - + + - + uint8 @@ -5270,44 +5370,29 @@ - - - + + + - - + + - - + + - - 7 + + [z_ctrlModPrev] - - - - - - - - - - - - - - - - - r_devSignal1 + + @@ -5318,29 +5403,44 @@ - - - + + + - - + + - - + + - - [z_ctrlModReq] + + 2 - - + + + + + + + + + + + + + + + + + DC_phaB @@ -5351,139 +5451,115 @@ - - - + + + - - - - - - - - + + - - - - - - b_enaFOC - - - - - - - - z_ctrlMod - - - - - - - - r_inpTgtSca - - - - - - - - n_mot - - - - - - - - n_motAbs - - - - + + - - a_elecAngle + + [DC_phaC] - - - - - - - i_phaAB + + + + + + - - - - - - - i_phaBC + + + + + + - - + + - - r_phaA + + int16 + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - r_phaB + + z_posRaw - - + + - - r_phaC + + b_motStdStill - - + + - - Vq + + VqFinPrev - - + + - - r_devSignal1 + + z_errCode - - + + - - r_devSignal2 + + b_errFlag - - + + - + if { } @@ -5491,181 +5567,166 @@ - + - - + + - + - - + + - - + + - - F04_Field_Oriented_Control + + F02_Diagnostics - + - - + + - - + + - - int16 + + action - + - + - - + + - - int16 + + uint8 - + - - + + - - + + - - sfix16_En4 + + boolean - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - + + - - action + + 3 - - - - - - - - - - - - - - - - - int16 + + + - - - - - - - - - + + + - - + + - - sfix16_En4 + + r_inpTgt - - - - - - - - + + - - + + - - sfix16_En4 + + int16 @@ -5676,66 +5737,92 @@ - - - - - - - - - + + + - - + + - - - - - - - - - + - - + + - - + + [r_devSignal2] - + + + + + + + + + + + + + + + + + + + + + + + + + 2 + - - + + + + + + + + + + + + + + + + + z_ctrlModReq - + - - + + - - int16 + + uint8 @@ -5746,165 +5833,92 @@ - - - + + + - - - - - - - - + + - - - - - - z_posRaw - - - - - - - - b_motStdStill - - - - - - - - VqFinPrev - - - - - - - - z_errCode - - - - - - - - b_errFlag - - - - + + - - if { } + + 6 - - - - - - - - + + - - - - - - - - + + - - + + - - F02_Diagnostics + + b_hallC - - - - - - - + - - + + - + uint8 - - - - - - - - - - + + + + + + + + + + + + + + + - - + + - - boolean + + [z_errCode] - - - - - - - - - - - - - - - - - action + + + @@ -5915,35 +5929,29 @@ - - - - - - - - + + - + - + - + - + - + @@ -5958,22 +5966,22 @@ - + - + - - + + - + int16 @@ -5995,11 +6003,11 @@ - + - + 1 @@ -6017,11 +6025,11 @@ - + - + b_motEna @@ -6032,11 +6040,11 @@ - + - + boolean @@ -6048,58 +6056,106 @@ - - + + + + + + + + + + + + + + + + [a_elecAngle] + + + + + + + + + + + + + + + + + + + + + + ufix16_En6 + + + + + + + + + + + + - + - + - - 7 + + 9 - + - - + + - - + + - - i_phaAB + + i_DCLink - + - - + + - + int16 @@ -6112,11 +6168,11 @@ - + - + @@ -6168,11 +6224,11 @@ - + - + @@ -6322,11 +6378,11 @@ - + - + @@ -6504,11 +6560,11 @@ - + - + @@ -6756,11 +6812,11 @@ - + - + @@ -6846,11 +6902,11 @@ - + - + @@ -6888,11 +6944,11 @@ - + - + @@ -6986,11 +7042,11 @@ - + - + @@ -7207,7 +7263,21 @@ + + + + + + + + + + + + + + - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_29_icons.png b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_29_icons.png index 11d78d85394d1e1efe6ad7a696715d341492c7fc..dd93dbd398c5d11b8a2754fa45fed9925a669480 100644 GIT binary patch delta 19 bcmaDM`9gAn4u`aWyj9zs`u7`6w(tM|OC|@v delta 19 acmaDM`9gAn4u>e8lFqyKYR`=(TX+CR{|6QT diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8220_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8220_d.json index 7e080cb..2590c92 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8220_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8220_d.json @@ -1352,11 +1352,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8467", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9433", "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"a_elecAngle", - "label":"a_elecAngle", + "name":"b_motStdStill", + "label":"b_motStdStill", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ @@ -1385,7 +1385,7 @@ "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "6", + "7", "Port number", "[]", "[]", @@ -1432,11 +1432,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8466", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8467", "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"n_motAbs", - "label":"n_motAbs", + "name":"a_elecAngle", + "label":"a_elecAngle", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ @@ -1465,7 +1465,7 @@ "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "5", + "6", "Port number", "[]", "[]", @@ -1512,11 +1512,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9433", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9383", "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"b_motStdStill", - "label":"b_motStdStill", + "name":"r_inpTgtSca", + "label":"r_inpTgtSca", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ @@ -1545,7 +1545,7 @@ "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "7", + "1", "Port number", "[]", "[]", @@ -1592,74 +1592,27 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8463", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8461", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"z_posRaw", - "label":"z_posRaw", + "name":"Goto9", + "label":"Goto9", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ - "Port", - "IconDisplay", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" + "GotoTag", + "TagVisibility", + "IconDisplay" ], "values":[ - "2", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "off", - "0", - "off", - "reset", - "off", - "0", - "", - [ - ], - "Dialog", - "Auto", - "off" + "z_dirPrev", + "local", + "Tag" ], "tabs":[ - "Main", - "Signal Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 2, - 11 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1667,79 +1620,32 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9383", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8460", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"r_inpTgtSca", - "label":"r_inpTgtSca", + "name":"Goto8", + "label":"Goto8", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ - "Port", - "IconDisplay", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" + "GotoTag", + "TagVisibility", + "IconDisplay" ], "values":[ - "1", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "off", - "0", - "off", - "reset", - "off", - "0", - "", - [ - ], - "Dialog", - "Auto", - "off" + "z_posRaw", + "local", + "Tag" ], "tabs":[ - "Main", - "Signal Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 2, - 11 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1747,7 +1653,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", + "blocktype":"Goto", "masktype":"" } }, @@ -1795,11 +1701,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8461", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9432", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto9", - "label":"Goto9", + "name":"Goto17", + "label":"Goto17", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ @@ -1808,7 +1714,7 @@ "IconDisplay" ], "values":[ - "z_dirPrev", + "b_motStdStill", "local", "Tag" ], @@ -1828,11 +1734,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8458", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9384", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto6", - "label":"Goto6", + "name":"Goto15", + "label":"Goto15", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ @@ -1841,7 +1747,7 @@ "IconDisplay" ], "values":[ - "z_counterRaw", + "r_inpTgtSca", "local", "Tag" ], @@ -1861,11 +1767,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8457", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9379", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto5", - "label":"Goto5", + "name":"Goto14", + "label":"Goto14", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ @@ -1874,7 +1780,7 @@ "IconDisplay" ], "values":[ - "z_counter", + "z_ctrlModPrev", "local", "Tag" ], @@ -1894,11 +1800,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8455", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9377", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto3", - "label":"Goto3", + "name":"Goto13", + "label":"Goto13", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ @@ -1907,7 +1813,7 @@ "IconDisplay" ], "values":[ - "z_ctrlTypSel", + "r_inpTgt", "local", "Tag" ], @@ -1927,11 +1833,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9379", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8455", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto14", - "label":"Goto14", + "name":"Goto3", + "label":"Goto3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ @@ -1940,7 +1846,7 @@ "IconDisplay" ], "values":[ - "z_ctrlModPrev", + "z_ctrlTypSel", "local", "Tag" ], @@ -1960,21 +1866,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9384", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9382", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto15", - "label":"Goto15", + "name":"From24", + "label":"From24", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ "r_inpTgtSca", - "local", "Tag" ], "tabs":[ @@ -1988,26 +1892,24 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9377", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8437", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto13", - "label":"Goto13", + "name":"From23", + "label":"From23", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "r_inpTgt", - "local", + "b_enaFOC", "Tag" ], "tabs":[ @@ -2021,16 +1923,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8446", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8436", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From9", - "label":"From9", + "name":"From22", + "label":"From22", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ @@ -2038,7 +1940,7 @@ "IconDisplay" ], "values":[ - "z_posRaw", + "z_counterRaw", "Tag" ], "tabs":[ @@ -2057,11 +1959,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8437", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8434", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From23", - "label":"From23", + "name":"From20", + "label":"From20", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ @@ -2069,7 +1971,7 @@ "IconDisplay" ], "values":[ - "b_enaFOC", + "z_dir", "Tag" ], "tabs":[ @@ -2088,11 +1990,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9432", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8449", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto17", - "label":"Goto17", + "name":"Goto10", + "label":"Goto10", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ @@ -2101,7 +2003,7 @@ "IconDisplay" ], "values":[ - "b_motStdStill", + "a_elecAngle", "local", "Tag" ], @@ -2121,11 +2023,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8434", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8432", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From20", - "label":"From20", + "name":"From18", + "label":"From18", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ @@ -2133,7 +2035,7 @@ "IconDisplay" ], "values":[ - "z_dir", + "b_enaFOC", "Tag" ], "tabs":[ @@ -2152,19 +2054,21 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9381", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8458", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From19", - "label":"From19", + "name":"Goto6", + "label":"Goto6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "r_inpTgt", + "z_counterRaw", + "local", "Tag" ], "tabs":[ @@ -2178,16 +2082,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9382", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8435", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From24", - "label":"From24", + "name":"From21", + "label":"From21", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ @@ -2195,7 +2099,7 @@ "IconDisplay" ], "values":[ - "r_inpTgtSca", + "z_counter", "Tag" ], "tabs":[ @@ -2214,11 +2118,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8432", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8446", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From18", - "label":"From18", + "name":"From9", + "label":"From9", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ @@ -2226,7 +2130,7 @@ "IconDisplay" ], "values":[ - "b_enaFOC", + "z_posRaw", "Tag" ], "tabs":[ @@ -2245,11 +2149,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8431", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8430", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From17", - "label":"From17", + "name":"From15", + "label":"From15", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ @@ -2257,7 +2161,7 @@ "IconDisplay" ], "values":[ - "z_pos", + "z_dirPrev", "Tag" ], "tabs":[ @@ -2276,11 +2180,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9380", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9431", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From16", - "label":"From16", + "name":"From25", + "label":"From25", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ @@ -2288,7 +2192,7 @@ "IconDisplay" ], "values":[ - "z_ctrlModPrev", + "b_motStdStill", "Tag" ], "tabs":[ @@ -2340,11 +2244,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8429", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8427", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From14", - "label":"From14", + "name":"From12", + "label":"From12", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ @@ -2352,7 +2256,7 @@ "IconDisplay" ], "values":[ - "n_motAbs", + "a_elecAngle", "Tag" ], "tabs":[ @@ -2371,21 +2275,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8449", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9380", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto10", - "label":"Goto10", + "name":"From16", + "label":"From16", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "a_elecAngle", - "local", + "z_ctrlModPrev", "Tag" ], "tabs":[ @@ -2399,16 +2301,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8427", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8424", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From12", - "label":"From12", + "name":"From", + "label":"From", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ @@ -2416,7 +2318,7 @@ "IconDisplay" ], "values":[ - "a_elecAngle", + "z_ctrlTypSel", "Tag" ], "tabs":[ @@ -2532,11 +2434,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8430", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9374", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From15", - "label":"From15", + "name":"From11", + "label":"From11", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ @@ -2544,7 +2446,71 @@ "IconDisplay" ], "values":[ - "z_dirPrev", + "z_ctrlTypSel", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8457", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto5", + "label":"Goto5", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", + "inspector":{ + "params":[ + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "z_counter", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8429", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From14", + "label":"From14", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "n_motAbs", "Tag" ], "tabs":[ @@ -2642,6 +2608,39 @@ "masktype":"" } }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8451", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto12", + "label":"Goto12", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", + "inspector":{ + "params":[ + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "n_motAbs", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", + "masktype":"" + } + }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9333", "className":"Simulink.SubSystem", @@ -2740,25 +2739,61 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9431", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9378", + "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"From25", - "label":"From25", + "name":"z_ctrlModPrev", + "label":"z_ctrlModPrev", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ - "GotoTag", - "IconDisplay" + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" ], "values":[ - "b_motStdStill", - "Tag" + "6", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "", + "on", + "off", + "off", + "off" ], "tabs":[ - "Parameter Attributes" + "Main", + "Signal Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 2, + 11 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -2766,16 +2801,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Inport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9375", - "className":"Simulink.Inport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8463", + "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"r_inpTgt", - "label":"r_inpTgt", + "name":"z_posRaw", + "label":"z_posRaw", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ @@ -2791,11 +2826,17 @@ "SampleTime", "SignalType", "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ "2", @@ -2810,10 +2851,17 @@ "-1", "auto", "off", - "", - "on", "off", + "0", + "off", + "reset", "off", + "0", + "", + [ + ], + "Dialog", + "Auto", "off" ], "tabs":[ @@ -2833,16 +2881,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", + "blocktype":"Outport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8424", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9381", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From", - "label":"From", + "name":"From19", + "label":"From19", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ @@ -2850,7 +2898,7 @@ "IconDisplay" ], "values":[ - "z_ctrlTypSel", + "r_inpTgt", "Tag" ], "tabs":[ @@ -2869,11 +2917,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9374", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8431", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From11", - "label":"From11", + "name":"From17", + "label":"From17", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ @@ -2881,7 +2929,7 @@ "IconDisplay" ], "values":[ - "z_ctrlTypSel", + "z_pos", "Tag" ], "tabs":[ @@ -2900,11 +2948,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9378", - "className":"Simulink.Inport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8466", + "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"z_ctrlModPrev", - "label":"z_ctrlModPrev", + "name":"n_motAbs", + "label":"n_motAbs", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ @@ -2920,14 +2968,20 @@ "SampleTime", "SignalType", "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "6", + "5", "Port number", "[]", "[]", @@ -2939,10 +2993,17 @@ "-1", "auto", "off", - "", - "on", "off", + "0", + "off", + "reset", "off", + "0", + "", + [ + ], + "Dialog", + "Auto", "off" ], "tabs":[ @@ -2962,71 +3023,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8451", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto12", - "label":"Goto12", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", - "inspector":{ - "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" - ], - "values":[ - "n_motAbs", - "local", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Goto", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8436", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From22", - "label":"From22", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "z_counterRaw", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", + "blocktype":"Outport", "masktype":"" } }, @@ -3098,58 +3095,61 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8435", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From21", - "label":"From21", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "z_counter", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8460", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9375", + "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"Goto8", - "label":"Goto8", + "name":"r_inpTgt", + "label":"r_inpTgt", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8220", "inspector":{ "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" ], "values":[ - "z_posRaw", - "local", - "Tag" + "2", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "", + "on", + "off", + "off", + "off" ], "tabs":[ - "Parameter Attributes" + "Main", + "Signal Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 2, + 11 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -3157,7 +3157,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"Inport", "masktype":"" } }, diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8220_d.png b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8220_d.png index 1d3eee761fc410e80f27305d7e58e5011da48912..c7ef2dc2127979db50ea0137f76d35c4aef27d67 100644 GIT binary patch delta 11830 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

8fxk&mBI|Iq8D0@t#kSNK^cjX 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 AqyPW_ diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8220_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8220_d.svg index a20c497..3c8b9f5 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8220_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8220_d.svg @@ -252,7 +252,7 @@ - + @@ -771,7 +771,7 @@ - + @@ -860,16 +860,16 @@ - - + + - + - - action + + int8 @@ -902,16 +902,16 @@ - - + + - + - - int8 + + action @@ -1110,7 +1110,7 @@ - + @@ -1247,16 +1247,16 @@ - - + + - + - - boolean + + int16 @@ -1268,16 +1268,16 @@ - - + + - + - - sfix16_En4 + + int16 @@ -1289,15 +1289,15 @@ - + - + - + sfix16_En4 @@ -1310,16 +1310,16 @@ - - + + - + - - int16 + + boolean @@ -1331,16 +1331,16 @@ - - + + - + - - int16 + + boolean @@ -1352,16 +1352,16 @@ - - + + - + - - boolean + + sfix16_En4 @@ -1380,7 +1380,7 @@ - + @@ -1477,16 +1477,16 @@ - - + + - + - - uint8 + + int8 @@ -1498,16 +1498,16 @@ - - + + - + - - int8 + + uint8 @@ -1797,11 +1797,11 @@ - - + + - + @@ -1811,30 +1811,30 @@ - - 6 + + 7 - + - - + + - + - - a_elecAngle + + b_motStdStill @@ -1845,11 +1845,11 @@ - - + + - + @@ -1859,30 +1859,30 @@ - - 5 + + 6 - + - - + + - + - - n_motAbs + + a_elecAngle @@ -1893,11 +1893,11 @@ - - + + - + @@ -1907,30 +1907,30 @@ - - 7 + + 1 - + - - + + - + - - b_motStdStill + + r_inpTgtSca @@ -1941,44 +1941,29 @@ - - - + + + - - + + - + - - 2 + + [z_dirPrev] - - - - - - - - - - - - - - - - - z_posRaw + + @@ -1989,44 +1974,29 @@ - - - + + + - - + + - - + + - - 1 + + [z_posRaw] - - - - - - - - - - - - - - - - - r_inpTgtSca + + @@ -2047,19 +2017,19 @@ - + - + u1 - + - + if(u1 ~= 0) @@ -2077,11 +2047,11 @@ - + - + action @@ -2093,28 +2063,28 @@ - - + + - + - + - - [z_dirPrev] + + [b_motStdStill] - + @@ -2126,28 +2096,28 @@ - - + + - + - + - - [z_counterRaw] + + [r_inpTgtSca] - + @@ -2159,28 +2129,28 @@ - - + + - + - + - - [z_counter] + + [z_ctrlModPrev] - + @@ -2192,28 +2162,28 @@ - - + + - + - + - - [z_ctrlTypSel] + + [r_inpTgt] - + @@ -2225,28 +2195,28 @@ - - + + - + - + - - [z_ctrlModPrev] - + + [z_ctrlTypSel] + - + @@ -2258,29 +2228,44 @@ - - - + + + - - + + - - + + - + [r_inpTgtSca] - - + + + + + + + + + + + + + + + + + sfix16_En4 @@ -2291,29 +2276,44 @@ - - - + + + - - + + - - + + - - [r_inpTgt] + + [b_enaFOC] - - + + + + + + + + + + + + + + + + + boolean @@ -2324,11 +2324,11 @@ - - + + - + @@ -2338,30 +2338,30 @@ - - [z_posRaw] + + [z_counterRaw] - + - + - + - - uint8 + + int16 @@ -2372,11 +2372,11 @@ - - + + - + @@ -2386,30 +2386,30 @@ - - [b_enaFOC] + + [z_dir] - + - - + + - + - - boolean + + int8 @@ -2420,11 +2420,11 @@ - - + + - + @@ -2434,14 +2434,14 @@ - - [b_motStdStill] + + [a_elecAngle] - + @@ -2453,11 +2453,11 @@ - - + + - + @@ -2467,30 +2467,30 @@ - - [z_dir] + + [b_enaFOC] - + - - + + - + - - int8 + + boolean @@ -2501,44 +2501,29 @@ - - - + + + - - + + - + - - [r_inpTgt] + + [z_counterRaw] - - - - - - - - - - - - - - - - - sfix16_En4 + + @@ -2549,44 +2534,44 @@ - - + + - + - + - - [r_inpTgtSca] + + [z_counter] - + - - + + - - + + - - sfix16_En4 + + int16 @@ -2597,44 +2582,44 @@ - - + + - + - + - - [b_enaFOC] + + [z_posRaw] - + - - + + - - + + - - boolean + + uint8 @@ -2645,43 +2630,43 @@ - - + + - + - + - - [z_pos] + + [z_dirPrev] - + - + - - + + - + int8 @@ -2693,44 +2678,44 @@ - - + + - + - + - - [z_ctrlModPrev] + + [b_motStdStill] - + - - + + - - + + - - uint8 + + boolean @@ -2751,11 +2736,11 @@ - + - + [b_enaFOC] @@ -2774,44 +2759,44 @@ - - + + - + - + - - [n_motAbs] + + [a_elecAngle] - + - - + + - - + + - - sfix16_En4 + + ufix16_En6 @@ -2822,29 +2807,44 @@ - - - + + + - - + + - - + + - - [a_elecAngle] + + [z_ctrlModPrev] - - + + + + + + + + + + + + + + + + + uint8 @@ -2855,11 +2855,11 @@ - - + + - + @@ -2869,30 +2869,30 @@ - - [a_elecAngle] + + [z_ctrlTypSel] - + - - + + - + - - ufix16_En6 + + uint8 @@ -2905,7 +2905,7 @@ - + @@ -3030,17 +3030,17 @@ - + - + - + @@ -3050,30 +3050,111 @@ - - [z_dirPrev] + + [z_ctrlTypSel] - + - - + + - + - - int8 + + uint8 + + + + + + + + + + + + + + + + + + + + + + + + + + [z_counter] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [n_motAbs] + + + + + + + + + + + + + + + + + + + + + + sfix16_En4 @@ -3094,11 +3175,11 @@ - + - + 8 @@ -3116,11 +3197,11 @@ - + - + b_enaFOC @@ -3130,11 +3211,44 @@ + + + + + + + + + + + + + + + + + + [n_motAbs] + + + + + + + + + + + + + + + - + @@ -3148,35 +3262,35 @@ - + - + z_ctrlTypSel - + - + r_inpTgt - + - + z_ctrlModPrev - + - + r_inpTgtSca @@ -3206,11 +3320,11 @@ - + - + F01_01_Input_Scaling @@ -3227,11 +3341,11 @@ - + - + sfix16_En4 @@ -3243,50 +3357,65 @@ - + - - + + - - + + - - + + - - [b_motStdStill] + + 6 - - + + + + + + + + + + + + + + + + + z_ctrlModPrev - - + + - - + + - - boolean + + uint8 @@ -3297,59 +3426,44 @@ - - + + - + - + - + 2 - + - - - - - - - - - - r_inpTgt - - - - - - - + + - - + + - - sfix16_En4 + + z_posRaw @@ -3360,44 +3474,44 @@ - - + + - + - + - - [z_ctrlTypSel] + + [r_inpTgt] - + - - + + - - + + - - uint8 + + sfix16_En4 @@ -3408,44 +3522,44 @@ - - + + - + - + - - [z_ctrlTypSel] + + [z_pos] - + - - + + - - + + - - uint8 + + int8 @@ -3456,140 +3570,44 @@ - - + + - + - + - - 6 + + 5 - + - - - - - - - - - - z_ctrlModPrev - - - - - - - - - - - - - - - uint8 - - - - - - - - - - - - - - - - - - - - - - - - - - [n_motAbs] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [z_counterRaw] - - - - - - - - - - - - - - + + - - + + - - int16 + + n_motAbs @@ -3610,11 +3628,11 @@ - + - + 1 @@ -3632,11 +3650,11 @@ - + - + z_ctrlTypSel @@ -3647,11 +3665,11 @@ - + - + uint8 @@ -3663,77 +3681,59 @@ - - - + + + - - + + - - + + - - [z_counter] + + 2 - - + + - - - + + + - - + + - - int16 + + r_inpTgt - - - - - - - - - - - - - - - + + + + - + - - [z_posRaw] - - - - - - - + + sfix16_En4 @@ -4416,5 +4416,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8225_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8225_d.json index e873862..340428f 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8225_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8225_d.json @@ -331,11 +331,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8233", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8231", "className":"Simulink.UnitDelay", "icon":"WebViewIcon3", - "name":"UnitDelay3", - "label":"UnitDelay3", + "name":"UnitDelay1", + "label":"UnitDelay1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8225", "inspector":{ "params":[ @@ -381,11 +381,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8231", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8233", "className":"Simulink.UnitDelay", "icon":"WebViewIcon3", - "name":"UnitDelay1", - "label":"UnitDelay1", + "name":"UnitDelay3", + "label":"UnitDelay3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8225", "inspector":{ "params":[ diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8225_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8225_d.svg index c5e098d..ea8a16e 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8225_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8225_d.svg @@ -345,11 +345,11 @@ - - + + - + @@ -359,7 +359,7 @@ - + @@ -367,7 +367,7 @@ - + @@ -375,7 +375,7 @@ - + @@ -383,7 +383,7 @@ - + @@ -398,38 +398,38 @@ - + - - - + + + - + - - uint8 + + Ini=0 - - - + + + - + - - Ini=0 + + uint8 @@ -440,11 +440,11 @@ - - + + - + @@ -454,7 +454,7 @@ - + @@ -462,7 +462,7 @@ - + @@ -470,7 +470,7 @@ - + @@ -478,7 +478,7 @@ - + @@ -493,38 +493,38 @@ - + - - - + + + - + - - Ini=0 + + uint8 - - - + + + - + - - uint8 + + Ini=0 @@ -537,7 +537,7 @@ - + @@ -567,32 +567,32 @@ - - - - - - - - - - - - + - + boolean + + + + + + + + + + + @@ -757,5 +757,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8235_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8235_d.json index ffa983e..d325fbf 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8235_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8235_d.json @@ -515,39 +515,87 @@ "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8235", "inspector":{ "params":[ + "NumberOfDimensions", "IndexMode", "IndexOptionArray", + "IndexParamArray", + "OutputSizeArray", + "InputPortWidth", + "SampleTime", "IndexOptions", + "NumberOfDimensions", + "IndexMode", + "IndexOptionArray", "IndexParamArray", - "Indices", + "OutputSizeArray", "InputPortWidth", + "SampleTime", + "IndexOptions", "NumberOfDimensions", + "IndexMode", + "IndexOptionArray", + "IndexParamArray", "OutputSizeArray", - "OutputSizes", - "SampleTime" + "InputPortWidth", + "SampleTime", + "IndexOptions", + "Indices", + "OutputSizes" ], "values":[ + "1", "Zero-based", [ "Index vector (port)" ], - "Index vector (port)", [ "[1 3]" ], - "[1 3]", + [ + "1" + ], "length(vec_hallToPos)", + "-1", + "Index vector (port)", "1", + "Zero-based", + [ + "Index vector (port)" + ], + [ + "[1 3]" + ], [ "1" ], + "length(vec_hallToPos)", + "-1", + "Index vector (port)", "1", - "-1" + "Zero-based", + [ + "Index vector (port)" + ], + [ + "[1 3]" + ], + [ + "1" + ], + "length(vec_hallToPos)", + "-1", + "Index vector (port)", + "[1 3]", + "1" ], "tabs":[ - "Parameter Attributes" + "Parameter Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 24 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8235_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8235_d.svg index 43125bc..1cffa5b 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8235_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8235_d.svg @@ -768,5 +768,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8247_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8247_d.json index a26d20f..9a962ae 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8247_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8247_d.json @@ -593,6 +593,56 @@ "masktype":"" } }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8260", + "className":"Simulink.UnitDelay", + "icon":"WebViewIcon3", + "name":"UnitDelay3", + "label":"UnitDelay3", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8247", + "inspector":{ + "params":[ + "InitialCondition", + "InputProcessing", + "SampleTime", + "StateName", + "CodeGenStateStorageTypeQualifier", + "StateMustResolveToSignalObject", + "StateSignalObject", + "StateStorageClass" + ], + "values":[ + "0", + "Inherited", + "-1", + "", + "", + "off", + [ + ], + "Auto" + ], + "tabs":[ + "Main", + "State Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 3, + 4 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"UnitDelay", + "masktype":"" + } + }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8262", "className":"Simulink.Outport", @@ -673,56 +723,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8260", - "className":"Simulink.UnitDelay", - "icon":"WebViewIcon3", - "name":"UnitDelay3", - "label":"UnitDelay3", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8247", - "inspector":{ - "params":[ - "InitialCondition", - "InputProcessing", - "SampleTime", - "StateName", - "CodeGenStateStorageTypeQualifier", - "StateMustResolveToSignalObject", - "StateSignalObject", - "StateStorageClass" - ], - "values":[ - "0", - "Inherited", - "-1", - "", - "", - "off", - [ - ], - "Auto" - ], - "tabs":[ - "Main", - "State Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 3, - 4 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"UnitDelay", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8259", "className":"Simulink.UnitDelay", diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8247_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8247_d.svg index a60087a..113ab00 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8247_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8247_d.svg @@ -778,59 +778,11 @@ - - - - - - - - - - - - - - - - - - 2 - - - - - - - - - - - - - - - - - - - - - - z_dirPrev - - - - - - - - - + @@ -838,35 +790,35 @@ - + - + - + - + - + - + - + - + @@ -892,11 +844,11 @@ - + - + Ini=0 @@ -907,11 +859,11 @@ - + - + int8 @@ -921,6 +873,54 @@ + + + + + + + + + + + + + + + + + + 2 + + + + + + + + + + + + + + + + + + + + + + z_dirPrev + + + + + + + + @@ -1279,5 +1279,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8263_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8263_d.json index 25956d8..f405dae 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8263_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8263_d.json @@ -734,11 +734,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9430", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8379", "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"b_motStdStill", - "label":"b_motStdStill", + "name":"b_enaFOC", + "label":"b_enaFOC", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ @@ -767,7 +767,7 @@ "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "5", + "6", "Port number", "[]", "[]", @@ -780,9 +780,9 @@ "auto", "off", "off", - "0", + "[]", "off", - "reset", + "held", "off", "0", "", @@ -894,11 +894,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8377", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8376", "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"z_counter", - "label":"z_counter", + "name":"n_motAbs", + "label":"n_motAbs", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ @@ -927,7 +927,7 @@ "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "3", + "2", "Port number", "[]", "[]", @@ -940,9 +940,9 @@ "auto", "off", "off", - "0", + "[]", "off", - "reset", + "held", "off", "0", "", @@ -974,63 +974,32 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8376", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8374", + "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"n_motAbs", - "label":"n_motAbs", + "name":"z_maxCntRst2", + "label":"z_maxCntRst2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ - "Port", - "IconDisplay", + "Value", + "VectorParams1D", + "SampleTime", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" + "FramePeriod" ], "values":[ - "2", - "Port number", - "[]", + "z_maxCntRst", + "on", + "inf", "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "off", "[]", + "Inherit: Inherit via back propagation", "off", - "held", - "off", - "0", - "", - [ - ], - "Dialog", - "Auto", - "off" + "inf" ], "tabs":[ "Main", @@ -1039,8 +1008,8 @@ ], "tabs_idx":[ 0, - 2, - 11 + 3, + 7 ] }, "viewer":{ @@ -1049,16 +1018,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", + "blocktype":"Constant", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8374", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8373", "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"z_maxCntRst2", - "label":"z_maxCntRst2", + "name":"z_maxCntRst", + "label":"z_maxCntRst", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ @@ -1314,11 +1283,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9428", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8367", "className":"Simulink.RelationalOperator", "icon":"WebViewIcon3", - "name":"Relational Operator9", - "label":"Relational Operator9", + "name":"Relational Operator3", + "label":"Relational Operator3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ @@ -1330,7 +1299,7 @@ "ZeroCross" ], "values":[ - "<", + "~=", "off", "boolean", "Simplest", @@ -1359,42 +1328,38 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8373", - "className":"Simulink.Constant", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8366", + "className":"Simulink.RelationalOperator", "icon":"WebViewIcon3", - "name":"z_maxCntRst", - "label":"z_maxCntRst", + "name":"Relational Operator2", + "label":"Relational Operator2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ - "Value", - "VectorParams1D", - "SampleTime", - "OutMin", - "OutMax", + "Operator", + "InputSameDT", "OutDataTypeStr", - "LockScale", - "FramePeriod" + "RndMeth", + "SampleTime", + "ZeroCross" ], "values":[ - "z_maxCntRst", - "on", - "inf", - "[]", - "[]", - "Inherit: Inherit via back propagation", + ">", "off", - "inf" + "boolean", + "Simplest", + "-1", + "on" ], "tabs":[ "Main", - "Signal Attributes", + "Data Type", "-Other" ], "tabs_idx":[ 0, - 3, - 7 + 1, + 4 ] }, "viewer":{ @@ -1403,30 +1368,49 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Constant", + "blocktype":"RelationalOperator", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8312", - "className":"Simulink.Mux", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8371", + "className":"Simulink.UnitDelay", "icon":"WebViewIcon3", - "name":"Mux2", - "label":"Mux2", + "name":"UnitDelay4", + "label":"UnitDelay4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ - "Inputs", - "DisplayOption" + "InitialCondition", + "InputProcessing", + "SampleTime", + "StateName", + "CodeGenStateStorageTypeQualifier", + "StateMustResolveToSignalObject", + "StateSignalObject", + "StateStorageClass" ], "values":[ - "2", - "bar" + "0", + "Inherited", + "-1", + "", + "", + "off", + [ + ], + "Auto" ], "tabs":[ - "Parameter Attributes" + "Main", + "State Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 3, + 4 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1434,32 +1418,79 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Mux", + "blocktype":"UnitDelay", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8304", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9430", + "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"Goto4", - "label":"Goto4", + "name":"b_motStdStill", + "label":"b_motStdStill", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "z_ctrlTypSel", - "local", - "Tag" + "5", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "off", + "0", + "off", + "reset", + "off", + "0", + "", + [ + ], + "Dialog", + "Auto", + "off" ], "tabs":[ - "Parameter Attributes" + "Main", + "Signal Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 2, + 11 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1467,16 +1498,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"Outport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8303", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8306", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto3", - "label":"Goto3", + "name":"Goto7", + "label":"Goto7", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ @@ -1485,7 +1516,7 @@ "IconDisplay" ], "values":[ - "n_motAbsPrev", + "n_mot", "local", "Tag" ], @@ -1505,108 +1536,44 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8314", - "className":"Simulink.SubSystem", - "icon":"WebViewIcon1", - "name":"Raw_Motor_Speed_Estimation", - "label":"Raw_Motor_Speed_Estimation", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9427", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto6", + "label":"Goto6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ - "ShowPortLabels", - "Permissions", - "ErrorFcn", - "PermitHierarchicalResolution", - "TreatAsAtomicUnit", - "TreatAsGroupedWhenPropagatingVariantConditions", - "ActiveVariant", - "ActiveVariantBlock", - "AllowZeroVariantControls", - "BlockChoice", - "FunctionInterfaceSpec", - "FunctionWithSeparateData", - "GeneratePreprocessorConditionals", - "IsSubsystemVirtual", - "MemberBlocks", - "MinAlgLoopOccurrences", - "OverrideUsingVariant", - "PropExecContextOutsideSubsystem", - "PropagateVariantConditions", - "RTWFcnName", - "RTWFcnNameOpts", - "RTWFileName", - "RTWFileNameOpts", - "RTWMemSecDataConstants", - "RTWMemSecDataInternal", - "RTWMemSecDataParameters", - "RTWMemSecFuncExecute", - "RTWMemSecFuncInitTerm", - "RTWSystemCode", - "SystemSampleTime", - "TemplateBlock", - "Variant", - "VariantControl" + "GotoTag", + "TagVisibility", + "IconDisplay" ], "values":[ - "FromPortIcon", - "ReadWrite", - "", - "All", - "off", - "on", - "", - "", - "off", - "", - "void_void", - "off", - "off", - "off", - "", - "off", - "", - "off", - "off", - "", - "Auto", - "", - "Auto", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Auto", - "-1", - "", - "off", - "" + "b_motStdStill", + "local", + "Tag" ], "tabs":[ - "Main", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 6 - ] + "tabs_idx":0 }, "viewer":{ - "jshandler":"webview/handlers/ContainerHandler" + "jshandler":"webview/handlers/ElementHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"SubSystem", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8300", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8305", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto17", - "label":"Goto17", + "name":"Goto5", + "label":"Goto5", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ @@ -1615,7 +1582,7 @@ "IconDisplay" ], "values":[ - "b_enaFOC", + "dz_trnsDet", "local", "Tag" ], @@ -1635,11 +1602,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8299", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8301", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto12", - "label":"Goto12", + "name":"Goto2", + "label":"Goto2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ @@ -1648,7 +1615,7 @@ "IconDisplay" ], "values":[ - "n_motAbs", + "z_dirPrev", "local", "Tag" ], @@ -1668,20 +1635,22 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8311", - "className":"Simulink.Mux", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8304", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Mux1", - "label":"Mux1", + "name":"Goto4", + "label":"Goto4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ - "Inputs", - "DisplayOption" + "GotoTag", + "TagVisibility", + "IconDisplay" ], "values":[ - "2", - "bar" + "z_ctrlTypSel", + "local", + "Tag" ], "tabs":[ "Parameter Attributes" @@ -1694,24 +1663,59 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Mux", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9425", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8300", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From9", - "label":"From9", + "name":"Goto17", + "label":"Goto17", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", + "inspector":{ + "params":[ + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "b_enaFOC", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8299", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto12", + "label":"Goto12", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ "n_motAbs", + "local", "Tag" ], "tabs":[ @@ -1725,7 +1729,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, @@ -1761,21 +1765,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8297", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8293", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto10", - "label":"Goto10", + "name":"From7", + "label":"From7", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "z_counter", - "local", + "n_motRaw", "Tag" ], "tabs":[ @@ -1789,16 +1791,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8292", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9425", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From6", - "label":"From6", + "name":"From9", + "label":"From9", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ @@ -1825,19 +1827,21 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8291", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8297", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From5", - "label":"From5", + "name":"Goto10", + "label":"Goto10", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "z_counterRaw", + "z_counter", + "local", "Tag" ], "tabs":[ @@ -1851,16 +1855,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8289", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8288", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From31", - "label":"From31", + "name":"From30", + "label":"From30", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ @@ -1868,7 +1872,7 @@ "IconDisplay" ], "values":[ - "b_edge", + "z_ctrlTypSel", "Tag" ], "tabs":[ @@ -1887,11 +1891,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8288", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8291", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From30", - "label":"From30", + "name":"From5", + "label":"From5", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ @@ -1899,7 +1903,7 @@ "IconDisplay" ], "values":[ - "z_ctrlTypSel", + "z_counterRaw", "Tag" ], "tabs":[ @@ -1918,91 +1922,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8379", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8286", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"b_enaFOC", - "label":"b_enaFOC", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", - "inspector":{ - "params":[ - "Port", - "IconDisplay", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" - ], - "values":[ - "6", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "off", - "[]", - "off", - "held", - "off", - "0", - "", - [ - ], - "Dialog", - "Auto", - "off" - ], - "tabs":[ - "Main", - "Signal Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 2, - 11 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Outport", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8286", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From29", - "label":"From29", + "name":"From29", + "label":"From29", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ @@ -2029,19 +1953,21 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9477", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8303", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From21", - "label":"From21", + "name":"Goto3", + "label":"Goto3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "n_motRaw", + "n_motAbsPrev", + "local", "Tag" ], "tabs":[ @@ -2055,32 +1981,42 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8306", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8308", + "className":"Simulink.If", "icon":"WebViewIcon3", - "name":"Goto7", - "label":"Goto7", + "name":"If2", + "label":"If2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" + "NumInputs", + "IfExpression", + "ElseIfExpressions", + "ShowElse", + "SampleTime", + "ZeroCross" ], "values":[ - "n_mot", - "local", - "Tag" + "1", + "u1 ~= 0", + "", + "off", + "-1", + "on" ], "tabs":[ - "Parameter Attributes" + "Parameter Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 4 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -2088,7 +2024,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"If", "masktype":"" } }, @@ -2155,21 +2091,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8298", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8280", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto11", - "label":"Goto11", + "name":"From17", + "label":"From17", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "n_motRaw", - "local", + "z_counterRawPrev", "Tag" ], "tabs":[ @@ -2183,40 +2117,42 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8308", - "className":"Simulink.If", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9428", + "className":"Simulink.RelationalOperator", "icon":"WebViewIcon3", - "name":"If2", - "label":"If2", + "name":"Relational Operator9", + "label":"Relational Operator9", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ - "NumInputs", - "IfExpression", - "ElseIfExpressions", - "ShowElse", + "Operator", + "InputSameDT", + "OutDataTypeStr", + "RndMeth", "SampleTime", "ZeroCross" ], "values":[ - "1", - "u1 ~= 0", - "", + "<", "off", + "boolean", + "Simplest", "-1", "on" ], "tabs":[ - "Parameter Attributes", + "Main", + "Data Type", "-Other" ], "tabs_idx":[ 0, + 1, 4 ] }, @@ -2226,16 +2162,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"If", + "blocktype":"RelationalOperator", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8281", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8276", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From18", - "label":"From18", + "name":"From12", + "label":"From12", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ @@ -2243,7 +2179,7 @@ "IconDisplay" ], "values":[ - "b_enaFOC", + "z_counter", "Tag" ], "tabs":[ @@ -2262,21 +2198,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9427", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8292", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto6", - "label":"Goto6", + "name":"From6", + "label":"From6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "b_motStdStill", - "local", + "n_motAbs", "Tag" ], "tabs":[ @@ -2290,16 +2224,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8280", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8281", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From17", - "label":"From17", + "name":"From18", + "label":"From18", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ @@ -2307,7 +2241,7 @@ "IconDisplay" ], "values":[ - "z_counterRawPrev", + "b_enaFOC", "Tag" ], "tabs":[ @@ -2326,20 +2260,20 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8278", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8311", + "className":"Simulink.Mux", "icon":"WebViewIcon3", - "name":"From15", - "label":"From15", + "name":"Mux1", + "label":"Mux1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ - "GotoTag", - "IconDisplay" + "Inputs", + "DisplayOption" ], "values":[ - "b_edge", - "Tag" + "2", + "bar" ], "tabs":[ "Parameter Attributes" @@ -2352,16 +2286,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Mux", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8277", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8278", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From14", - "label":"From14", + "name":"From15", + "label":"From15", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ @@ -2369,7 +2303,7 @@ "IconDisplay" ], "values":[ - "z_counterRaw", + "b_edge", "Tag" ], "tabs":[ @@ -2388,27 +2322,43 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8305", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8269", + "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"Goto5", - "label":"Goto5", + "name":"CTRL_COMM", + "label":"CTRL_COMM", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" + "Value", + "VectorParams1D", + "SampleTime", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "FramePeriod" ], "values":[ - "dz_trnsDet", - "local", - "Tag" + "CTRL_COM", + "on", + "inf", + "[]", + "[]", + "Inherit: Inherit via back propagation", + "off", + "inf" ], "tabs":[ - "Parameter Attributes" + "Main", + "Signal Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 3, + 7 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -2416,57 +2366,121 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"Constant", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8276", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From12", - "label":"From12", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8314", + "className":"Simulink.SubSystem", + "icon":"WebViewIcon1", + "name":"Raw_Motor_Speed_Estimation", + "label":"Raw_Motor_Speed_Estimation", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ - "GotoTag", - "IconDisplay" + "ShowPortLabels", + "Permissions", + "ErrorFcn", + "PermitHierarchicalResolution", + "TreatAsAtomicUnit", + "TreatAsGroupedWhenPropagatingVariantConditions", + "ActiveVariant", + "ActiveVariantBlock", + "AllowZeroVariantControls", + "BlockChoice", + "FunctionInterfaceSpec", + "FunctionWithSeparateData", + "GeneratePreprocessorConditionals", + "IsSubsystemVirtual", + "MemberBlocks", + "MinAlgLoopOccurrences", + "OverrideUsingVariant", + "PropExecContextOutsideSubsystem", + "PropagateVariantConditions", + "RTWFcnName", + "RTWFcnNameOpts", + "RTWFileName", + "RTWFileNameOpts", + "RTWMemSecDataConstants", + "RTWMemSecDataInternal", + "RTWMemSecDataParameters", + "RTWMemSecFuncExecute", + "RTWMemSecFuncInitTerm", + "RTWSystemCode", + "SystemSampleTime", + "TemplateBlock", + "Variant", + "VariantControl" ], "values":[ - "z_counter", - "Tag" + "FromPortIcon", + "ReadWrite", + "", + "All", + "off", + "on", + "", + "", + "off", + "", + "void_void", + "off", + "off", + "off", + "", + "off", + "", + "off", + "off", + "", + "Auto", + "", + "Auto", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Auto", + "-1", + "", + "off", + "" ], "tabs":[ - "Parameter Attributes" + "Main", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 6 + ] }, "viewer":{ - "jshandler":"webview/handlers/ElementHandler" + "jshandler":"webview/handlers/ContainerHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"SubSystem", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8301", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8282", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto2", - "label":"Goto2", + "name":"From19", + "label":"From19", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "z_dirPrev", - "local", + "z_dir", "Tag" ], "tabs":[ @@ -2480,56 +2494,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8270", - "className":"Simulink.Constant", - "icon":"WebViewIcon3", - "name":"Constant4", - "label":"Constant4", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", - "inspector":{ - "params":[ - "Value", - "VectorParams1D", - "SampleTime", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "FramePeriod" - ], - "values":[ - "0", - "on", - "inf", - "[]", - "[]", - "Inherit: Inherit via back propagation", - "off", - "inf" - ], - "tabs":[ - "Main", - "Signal Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 3, - 7 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Constant", + "blocktype":"From", "masktype":"" } }, @@ -2565,43 +2530,60 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8371", - "className":"Simulink.UnitDelay", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8267", + "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"UnitDelay4", - "label":"UnitDelay4", + "name":"z_dirPrev", + "label":"z_dirPrev", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ - "InitialCondition", - "InputProcessing", + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", "SampleTime", - "StateName", - "CodeGenStateStorageTypeQualifier", - "StateMustResolveToSignalObject", - "StateSignalObject", - "StateStorageClass" + "SignalType", + "BusOutputAsStruct", + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" ], "values":[ - "0", - "Inherited", + "4", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", "-1", + "Inherit", + "-1", + "auto", + "off", "", - "", + "on", "off", - [ - ], - "Auto" + "off", + "off" ], "tabs":[ "Main", - "State Attributes", + "Signal Attributes", "-Other" ], "tabs_idx":[ 0, - 3, - 4 + 2, + 11 ] }, "viewer":{ @@ -2610,16 +2592,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"UnitDelay", + "blocktype":"Inport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8293", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8277", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From7", - "label":"From7", + "name":"From14", + "label":"From14", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ @@ -2627,7 +2609,7 @@ "IconDisplay" ], "values":[ - "n_motRaw", + "z_counterRaw", "Tag" ], "tabs":[ @@ -2646,165 +2628,118 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8272", - "className":"Simulink.SubSystem", - "icon":"WebViewIcon4", - "name":"Counter", - "label":"Counter", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8270", + "className":"Simulink.Constant", + "icon":"WebViewIcon3", + "name":"Constant4", + "label":"Constant4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ - "z_cntInit" + "Value", + "VectorParams1D", + "SampleTime", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "FramePeriod" ], "values":[ - "z_maxCntRst" + "0", + "on", + "inf", + "[]", + "[]", + "Inherit: Inherit via back propagation", + "off", + "inf" ], "tabs":[ + "Main", + "Signal Attributes", + "-Other" ], "tabs_idx":[ + 0, + 3, + 7 ] }, - "viewer":{ - "jshandler":"webview/handlers/ContainerHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"SubSystem", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9426", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From11", - "label":"From11", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "b_motStdStill", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Constant", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8366", - "className":"Simulink.RelationalOperator", - "icon":"WebViewIcon3", - "name":"Relational Operator2", - "label":"Relational Operator2", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8272", + "className":"Simulink.SubSystem", + "icon":"WebViewIcon4", + "name":"Counter", + "label":"Counter", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ - "Operator", - "InputSameDT", - "OutDataTypeStr", - "RndMeth", - "SampleTime", - "ZeroCross" + "z_cntInit" ], "values":[ - ">", - "off", - "boolean", - "Simplest", - "-1", - "on" + "z_maxCntRst" ], "tabs":[ - "Main", - "Data Type", - "-Other" ], "tabs_idx":[ - 0, - 1, - 4 ] }, "viewer":{ - "jshandler":"webview/handlers/ElementHandler" + "jshandler":"webview/handlers/ContainerHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"RelationalOperator", + "blocktype":"SubSystem", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8267", - "className":"Simulink.Inport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8268", + "className":"Simulink.Abs", "icon":"WebViewIcon3", - "name":"z_dirPrev", - "label":"z_dirPrev", + "name":"Abs5", + "label":"Abs5", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ - "Port", - "IconDisplay", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", + "RndMeth", + "SaturateOnIntegerOverflow", "SampleTime", - "SignalType", - "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" + "ZeroCross" ], "values":[ - "4", - "Port number", "[]", "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "", - "on", + "Inherit: Inherit via back propagation", "off", + "Zero", "off", - "off" + "-1", + "on" ], "tabs":[ - "Main", "Signal Attributes", "-Other" ], "tabs_idx":[ 0, - 2, - 11 + 6 ] }, "viewer":{ @@ -2813,16 +2748,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", + "blocktype":"Abs", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8282", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9426", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From19", - "label":"From19", + "name":"From11", + "label":"From11", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ @@ -2830,39 +2765,8 @@ "IconDisplay" ], "values":[ - "z_dir", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8313", - "className":"Simulink.Mux", - "icon":"WebViewIcon3", - "name":"Mux3", - "label":"Mux3", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", - "inspector":{ - "params":[ - "Inputs", - "DisplayOption" - ], - "values":[ - "2", - "bar" + "b_motStdStill", + "Tag" ], "tabs":[ "Parameter Attributes" @@ -2875,46 +2779,30 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Mux", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8268", - "className":"Simulink.Abs", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8289", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Abs5", - "label":"Abs5", + "name":"From31", + "label":"From31", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "SampleTime", - "ZeroCross" + "GotoTag", + "IconDisplay" ], "values":[ - "[]", - "[]", - "Inherit: Inherit via back propagation", - "off", - "Zero", - "off", - "-1", - "on" + "b_edge", + "Tag" ], "tabs":[ - "Signal Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 6 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -2922,25 +2810,25 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Abs", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8284", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8312", + "className":"Simulink.Mux", "icon":"WebViewIcon3", - "name":"From24", - "label":"From24", + "name":"Mux2", + "label":"Mux2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ - "GotoTag", - "IconDisplay" + "Inputs", + "DisplayOption" ], "values":[ - "b_enaFOC", - "Tag" + "2", + "bar" ], "tabs":[ "Parameter Attributes" @@ -2953,44 +2841,30 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Mux", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8367", - "className":"Simulink.RelationalOperator", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8313", + "className":"Simulink.Mux", "icon":"WebViewIcon3", - "name":"Relational Operator3", - "label":"Relational Operator3", + "name":"Mux3", + "label":"Mux3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ - "Operator", - "InputSameDT", - "OutDataTypeStr", - "RndMeth", - "SampleTime", - "ZeroCross" + "Inputs", + "DisplayOption" ], "values":[ - "~=", - "off", - "boolean", - "Simplest", - "-1", - "on" + "2", + "bar" ], "tabs":[ - "Main", - "Data Type", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 1, - 4 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -2998,7 +2872,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"RelationalOperator", + "blocktype":"Mux", "masktype":"" } }, @@ -3070,32 +2944,63 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8269", - "className":"Simulink.Constant", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8377", + "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"CTRL_COMM", - "label":"CTRL_COMM", + "name":"z_counter", + "label":"z_counter", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", "inspector":{ "params":[ - "Value", - "VectorParams1D", - "SampleTime", + "Port", + "IconDisplay", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "FramePeriod" + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "CTRL_COM", - "on", - "inf", + "3", + "Port number", "[]", "[]", - "Inherit: Inherit via back propagation", + "Inherit: auto", "off", - "inf" + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "off", + "0", + "off", + "reset", + "off", + "0", + "", + [ + ], + "Dialog", + "Auto", + "off" ], "tabs":[ "Main", @@ -3104,8 +3009,8 @@ ], "tabs_idx":[ 0, - 3, - 7 + 2, + 11 ] }, "viewer":{ @@ -3114,7 +3019,102 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Constant", + "blocktype":"Outport", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8284", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From24", + "label":"From24", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "b_enaFOC", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9477", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From21", + "label":"From21", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "n_motRaw", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8298", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto11", + "label":"Goto11", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8263", + "inspector":{ + "params":[ + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "n_motRaw", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", "masktype":"" } }, diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8263_d.png b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8263_d.png index 7dfca167938cf3f9e391e79f5b3ee5d8d17c4c0e..8c4dd6010a04eddeeff9b17a24c4221fd7d6323c 100644 GIT binary patch literal 8305 zcmd^l`#;lt{5KLM(S-{+CCMo{H*!wMA!lRFG30zcH>XO-VGb=x4!a~|Ygo(@qXP*c z#GFP>%`k_YbGqN|`^Wn~_+)XW0bU7#JAN8XM_bgU4^j zw^J{7?q*EOH$F?bxYpNYOy<*ZP zuVr68y?UoUwzDI&$OcvKgB~&}PzkW{5LRF(A%3{hq4+8oe#uSBjz@6IAGYVX;pTu& zXYtwNffX>(7haqBtA@C@)$?>o7F~WiZOqe4J(BY{yaexe*)V=eUpXVSV3c5$V7dj~WuX*7auK8iNHFoexo15yU zGM!Ez_OEXYzcuabY6*o>77E@wQG3x9wYA(2!qv^ntV>|Be_FXMyvgjGoG9}O8jV(B zhs`l5t3%)E-Plk;?~PNJ7f9)JGa~bSKhNZ&yxUBxms>74sIh;P)LuKyz?I6p8(R#= z4fV?_3m}(935$`-QD#V0goOnspS<(y($W(TMn>+?Uq(&bPiYs4VQ-{lzLL`19uIr0 zcahSL)EA4|cWxsYsEQsbD1Qk$b8;A;xQ4agtv+$Wu_-!7XMc+Gy`!AEy83FgCNmSG zSk9>t|L3+cNnfT!^SZ2XcG9^f(IjV)xDBh{RO(76>J533A8Gje_wUu+*zkx5+=t&+ zTz1*gUY%oSNo}8b)-_kY(sKBBG4^P0(#zL(p=x}l`^^wk&-9*b8YAk{19FK%BkWbn zfMHp=H4gj2j3snVAm0sH9C?MIq)f?4PMIOCk3qMr+)Y9DD5}J|-CxOjl3Q@#?6;%q zp^v8)(XZOKmfPsTKgPz!!olwLY5Re} z|DC_&>E(4^M8wnE+q-*DP*}JOCOaJ|-|`KE@x34h#${2v+N4ac%=*rH3|Kc}6xS3y zKLhEH(y2Z4+fOlwRgK{cc270+kArHI(K3LXT9|&`5tJwKPF;@C$nzE5nk=NF2kR zTx?C{t|JoN75LR+cN7i|4tUZHn%9d~R)5-9_>iGkX!9B}h{2E5!^49athm8ZBCo4& zaIh>_jQ~elO8vC1NWx&46K}}!cA1exrnl}Xop+S8HzhByctG-J4;Ja^6;aC`Q~_vm zxO#VgzqKiP)eaj0JxI8es{hDVrtIHpge^2crh7b)IP^Svk525MuE%cGqT8tJYk#`r zm9@0GCrB{`B3~9a|J0%n*mu-Kxw*Mvvb^SnYM)AOrp&LbNEVs9<6%2<@(CR%3vFYZ z9oQnSRQ=(W1RWF#1%Go8ud@~{l=9^U9`>3<62=auwa?@{tuzP=3$w*SaR*k_WN^?{ zH^tG>(cnf3I|m2Tg%-}Yc2_7AN+BqbuBfhhk!Rqv*id@Qui%d+-4n*!$j6P1%L}~s1%SL> z$+@}EhBD4{1gR%eSR+`y2&a>J6>|Oh$i}#%968zDII44JN6pU9uZRt4h^Vv`%j@#l zR@2e3K>TLnL?00|7k*3-4pW{5>T1Jbzh*Z>vZ?#=Zh7(p6B9jCUs4Ey z`DkJ;<6+>*U8Q`m1JAnd zWf+!j(IVOlwa@0VNwK}?{uTPEpKEqqL4kp$!o%iDyjjT{sQSG(k$k3-Ct5Rj_M0%N zOc49c#>Qr2bCc3H8A7~_GXDDY>o@B9Gn31)+7~RecV|D47g=VL1}g3=qaJ2*;La+k ztEcsO|NP*elAK&KMj!3f7yCykpS{HL6uP$}>2x6OY$!NJuMKu^etzCHBqRs03VHD| zV3kVSQ!I&CgfTNV5 zN;yX2FgP4=MR9#S#2+GhrmOVDasQx{|QO3x-_`!fL4X_T6r+s}^#qocA0zMk}yG#YYpR3f_L;z6#40;Cu z`On1&fW|a12m;9d!NIoiaUojx%eFRy{rChMXsEJjc2}OfI{}{B<~AF8oyXuJZ@QIC zF4%B@7Ctvmfd-Sw)q_F<6e1Cbmu(%jv0Dq8I)OHUk6A9)BqUQ zjqPpJZ3)`Kf*UB})>h=wNtsrZDe*UMaU{?bCdiZ>{ok0U)Q${2!1&>z*#}pP8 z1{0l}oUD+4d#wC@{JGcG()4Z>W#yZ)yzXvpkNBLUADZUL`2@6n&7cBi^R@|L;1E({ zkR{q65Qyl_LHm{T7BnT0y0h-$yNjU646&A+OK5IRo?iLzA$lpe0iJrxl)yuc_%r94McIP&dlTZFBQ??K2lqx8=wde%IblbqC;K%bgn$ zA$vnFnMcxuH6m5Iy_-Y&X?8xh|9+<)_YFHsB4p=7P0fQ|>K9sg=*}vbU-r4sd`|5h zhJx;LWMZLuL|Rz~=g#y`&IX|rN)az_)}d*v#`fF2mHW4R#0}y4BUP+l> zk$FX6me2g?$I*hq{Q+~S>R8@2y-hQriTm{;&)0Q7Xiri z4-6!>&y1{wfMciXGXb{knj4M3Jk`z4!<*hkhU2okK7C3IMn@#Wa6`{;^^-v>+=0Pd zeWbHKxt435|Gi%(EyR&Bv>8_#&==$&%Uelagp(P*HUETkh?krVyKkgN(*;`{-<%s_h!~oSUWP|aMD$!N~d?F8HSp$l*`L6 zDDbNk_YLQlm6NNw?tA!OL-f`Kn#xhCe^sZyR93fd>y%|M%VF`uM0rLBhc@5+6Nw>Z~nKuC3*U7%xg3PgT)g-v>?u>6>GfS;EC7-M&;>%=BK{BR;~z<%ncgw))~d@w9Ng#w zuMhq~ih`XpH3gPDmqhaN-|o672d`cRvWt+6AMyXXxM?kyM|kkPyStA>mOP5c0SNAwTjiAd|7+(YkPYo z)uOgND!E~G^TCUZ_fDQ%gzAC8b)V#vl>0kVDaI88v+MUGS0->;60$ADKn(&AE0Id$ z&9-}6xDugiP-5j+ky!v0Ik%R^P9a2gj-&K7YCHfCh{NUhhGxn~dR zM{wU_%8^Nala8&*7E8IXdr zsE$^=d;5dA7TWy0)NZWv7=J0?8c^n^XyM=3^`qkTf7IqvU@MaK34-DxS?;wXb*{GMocIY!32QkzSOEetcDKvrcW3UEQEg`;79TI3*LCgRj$D%@>&nM% zZg=nAW!!m>7#N=N@bqMXEtgl>VTG=T9_v0l>}Pp|f3A_Zo&>3N_NN+QG*px;RouKH zk)t}xBH_34$D!w)If0H8_{E9xb#*caVd&3KOp~Jv9=4 zGw54KASh~UXMS=O72@y_nG*ImWHlJp)L ziT7JuSi574y}YO&PPhQHAE>bKD}YW)S6HCG&a7F=@~%Z|0tuJt-!FKlH}{Htu$mCi zLMS8gVS*oDr7bv}hkf3yp0z&PBRgSvUH6_pe_lu9FR^^$p_B@YU1{mDsIjof+WJe{ zo`@0BLey0*?mNGAyXK6|-S~R9-r!gx(N8 z?wYH+Hjb=nP4bw za!qifAIhAoCqva-?+XEo35noq2FvwZu5iE(O68hhc{9(mC!aNaVFzg)`&RTKb$mGD zonp}?kt|h;LsZmud9@Uf0`Sv={6{Z}iU!TkMenb*6Jlg}*fNmFe~^ZFI1WhRkmd2~ zKmaD}jZI4Nrc0%L2C`loodt}KR*)9xOgt=uThd%XK|xnVplvGnT&jL>gX8F-fkxD_ zc#%0bI}2@jx!h9fTvj`f5XY13^$_qr3oC2>ix(e#383>Vd6M9`a_Ah;G5`>+CGR_X+`=IG5h`##RPv*emF61UShb(v`35 zrBKifHb_xP>CvF?Jy+KU6BEwr8X7Nv&4MBK(_goKv)&_3; z$0}aX4Y}G*8XE|UTpq7Xx;r;5|GUdJd>_IYs zow4I81au}3&|X_tuFjWcO+*TMT-`(zO-=Tv;g{0M~QZ^t|VE@Mo?oBQvv~Oir0xX?Iodo)QuiEUm3YMQc`F zdk_FA7mY z*Y=JbyFd77#LKR^q4DxMN4WtC1xMd!^*-}ZfRer#FnYDX?X7%~IjX67lMb?gGY@rj zv3f=75o`ul!;Mk$yyJd3kw3FRB%p155$n32agTyWz@s zcFYaAye});wKX;W6|om|&B0)>kMziy$VT8Z&OO*Nj{Cde;}3DL$@&3C7=5%)Ef8r` zgj3XN|CskAdxIFl>+ao${tzr(J4h)X*k0hW>D|TMp3=POh1bJaO8dT5IW_VN3(xhJ znS%EaF)_!vUu5c}_kWQN-`hrIRjcj;1v~5y!8QJgAD61Ol&Xt$e$qbENB>X+QoMRw z_~P5V{Cp6v@X^8rcA^b8LCyq7WC$Syg z`CMTw4MrDo9osk(2LtRSm zef7Jj6=%AcrlKNV=5}puE&M@XVQ6iRqg>QjEzSWy#B54RELt9udG2jj`HU9qcvJEG zldtJ-WHOu_v||a@Ra4UmYvV3`XY(F&~Xv6?KTmseip=RZIxH=9>hPWy4pJHYjwYv$boEe$yp^a|$ zP+D86?VSieEyj4K9Z|sSU(u07l;KMK4}*!6Fmexk+UGqx;)SLxj19bvRlX(mPiTV> z;2m!j6Fh9TvZA=Z3ODErM$tDQv$$A9dw=z2!1N+0&`aK5IHAJa2jhvG^b&}$;7KaP6Z@fxC0(r2Khqm$L)(a)QT zTY6+6fdZM*F+;I8!f}6o+~f?|-w6R$YbtoBeE9~GSUt`#*L$w10U6n4%aa7)mB-+d zXYD^6DIksdh&#KX9n9F_p(K0t>b1B4H#a8Y7;=E-;p3AE$TJ~9XV5n{2+)e=(f)eV zM!%^;cspm+SW)Nn_8x!)BH{J!!!t(i=c%o&%<(N~eX%|jCjZ(I{tFkV({1Shcke<9 z&I=08n7a5L{JMpYyI#}-9q`yF|EUwq$XKVW4>SSr@>tLPdLps*{d*$ZeZXV!fE|>lWD_DT-m(rXV0!prCbQy40v)?^lC3JkeiRErl!iTNvK{C z$(mV<1`w>fzUB==gz)h28gM33JZ`S8x?^68=1Wadfs_;6*)|pCAdw_sOf9UQMX1K@ z(Ss7Y(&d}K{rGY2_~JxCa}>~75#;>pIXZFD^XTwkR8H_pFQ*TCJb_58hKK*;pXG9x zDSnxL4O9<8irP+_e0U?}Mk9 zCjSl*kF`zDmFhuX08IX5i+JCq^ZNyp`-U1^RX`|aW^xpoOWIdCep=b)&T7vuDk^i7 zn_1rl=^QiDL$gT*xJqLM1~!1A*4#VfWd@1#exTee_UK zAnoux)H>4J+l9$~1wHF>^p{Mi#zEUKwlcD^vi~=Y4qDYK`G`K;kaUh+GoXL)BUb_W zh%L$<92!b~CFK`**A{0-u*TrYHdjoo)_3=XDbJzfg)tarMS-i2`SP%WX{F{QJIP;% zJJLHbQ0F>FQ20##CDnIhbh9!G_e*m| z;*WsZo(cxK{CdomEYROoRdS!F6nN8^V!_qD|eIzXXWr?^fwrUMWDTm_SQ!z z9@0gb7{24rA${ZVkC4e{q5$u&qNV0G5rh-LAQ;FmECi(AH!yHhO(<|w*$4bM2>VMz z$Z-QkLEn+;35S|{Tl5*=XMXx#8xK@ni!KDZ8|LRKi87XRY0ki4c4C{M-2A<0ovc?< zj^OebdVf|@NGHA!xS@97|3~;18N3smc kAi#J0U4Z{@q5BChlK9SieTVA>|H5EwV6I=K=lbaX0NP+wO8@`> literal 8315 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 RPr#cg9%@1~D%5RX{yz%pT~q)7 diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8263_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8263_d.svg index 3b94a0b..48078e3 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8263_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8263_d.svg @@ -107,7 +107,7 @@ - + @@ -700,11 +700,11 @@ - - + + - + @@ -714,30 +714,30 @@ - - 5 + + 6 - + - - + + - + - - b_motStdStill + + b_enaFOC @@ -796,11 +796,11 @@ - - + + - + @@ -810,30 +810,30 @@ - - 3 + + 2 - + - - + + - + - - z_counter + + n_motAbs @@ -844,44 +844,44 @@ - - - + + + - - + + - + - - 2 + + z_maxCntRst - - + + - - - + + + - + - - n_motAbs + + int16 @@ -892,11 +892,11 @@ - - + + - + @@ -906,29 +906,29 @@ - + z_maxCntRst - + - + - + - + int16 @@ -1173,32 +1173,32 @@ - - - + + + - + - - Ini=z_maxCntRst + + int16 - - - + + + - + - - int16 + + Ini=z_maxCntRst @@ -1211,7 +1211,7 @@ - + @@ -1401,11 +1401,11 @@ - - + + - + @@ -1415,7 +1415,7 @@ - + @@ -1423,8 +1423,8 @@ - - + + @@ -1438,22 +1438,22 @@ - + - + - + - + boolean @@ -1465,44 +1465,60 @@ - - - + + + - - + + - + - + - - z_maxCntRst + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - int16 + + boolean @@ -1513,77 +1529,91 @@ - - - + + + - - + + - + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - - + + - + sfix16_En4 - - - - - - - - - - - - - - + + + - - + + - - [z_ctrlTypSel] - - - - - - - + + Ini=0 @@ -1594,235 +1624,209 @@ - - - + + + - - + + - - + + - - [n_motAbsPrev] + + 5 - - + + - + + + + + + + + + + + b_motStdStill + + + + + - - - + + + - - - - - - - - + + - - - - - - z_dir - - - - - - - - z_dirPrev - - - - - - - - z_counterRawPrev - - - - - - - - n_motAbsPrev - - - - - - - - z_counter - - - - - - - - dz_trnsDet - - - - - - - - n_motRaw - - - - + + - - if { } + + [n_mot] - - - - - - - - + + - - - - - - - - - - + + + + + + + + + + + + + + + - - + + - - Raw_Motor_Speed_Estimation + + [b_motStdStill] - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - + + - - int16 + + [dz_trnsDet] - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - + + - - action + + [z_dirPrev] - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - + + - - boolean + + [z_ctrlTypSel] - - - - - - - - - - - - - - - - - sfix16_En4 + + + @@ -1834,12 +1838,6 @@ - - - - - - @@ -1849,11 +1847,11 @@ - + - + [b_enaFOC] @@ -1882,11 +1880,11 @@ - + - + [n_motAbs] @@ -1905,44 +1903,44 @@ - - - + + + - - + + - - + + - - + + [dz_trnsDet] - - + + - - + + - - + + - - int16 + + boolean @@ -1953,43 +1951,43 @@ - - + + - + - + - - [n_motAbs] + + [n_motRaw] - + - + - - + + - + sfix16_En4 @@ -2001,44 +1999,44 @@ - - + + - + - + - - [dz_trnsDet] + + [n_motAbs] - + - - + + - - + + - - boolean + + sfix16_En4 @@ -2059,11 +2057,11 @@ - + - + [z_counter] @@ -2082,44 +2080,44 @@ - - + + - + - + - - [n_motAbs] + + [z_ctrlTypSel] - + - - + + - - + + - - sfix16_En4 + + uint8 @@ -2140,11 +2138,11 @@ - + - + [z_counterRaw] @@ -2162,11 +2160,11 @@ - + - + int16 @@ -2178,44 +2176,44 @@ - - + + - + - - + + - - [b_edge] + + [n_motAbs] - + - - + + - - + + - - boolean + + sfix16_En4 @@ -2226,44 +2224,29 @@ - - - + + + - - + + - - + + - - [z_ctrlTypSel] + + [n_motAbsPrev] - - - - - - - - - - - - - - - - - uint8 + + @@ -2274,44 +2257,52 @@ - - - + + + - - + + - - + + - - 6 + + u1 + + + + + + + + if(u1 ~= 0) - - + + - - - + + + - - + + - - b_enaFOC + + action @@ -2322,44 +2313,44 @@ - - + + - + - - + + - - [n_motAbs] + + [z_dirPrev] - + - - + + - - + + - - sfix16_En4 + + int8 @@ -2370,43 +2361,43 @@ - - + + - + - + - - [n_motRaw] + + [n_motAbsPrev] - + - + - - + + - + sfix16_En4 @@ -2418,77 +2409,44 @@ - - - - - - - - - - - - - - - - [n_mot] - - - - - - - - - - - - - - - - - - - + + - + - - + + - - [z_dirPrev] + + [z_counterRawPrev] - + - - + + - - + + - - int8 + + int16 @@ -2499,44 +2457,60 @@ - - - + + + - - + + - + - - + + + + + + + + + + - - [n_motAbsPrev] + + + + + + + + + + - - + + - - + + - - + + - - sfix16_En4 + + boolean @@ -2547,29 +2521,44 @@ - - - + + + - - + + - - + + - - [n_motRaw] + + [z_counter] - - + + + + + + + + + + + + + + + + + int16 @@ -2580,52 +2569,44 @@ - - - + + + - - + + - - - - - - u1 - - - - + + - - if(u1 ~= 0) + + [n_motAbs] - - + + - - + + - - + + - - action + + sfix16_En4 @@ -2646,11 +2627,11 @@ - + - + [b_enaFOC] @@ -2668,11 +2649,11 @@ - + - + boolean @@ -2684,29 +2665,44 @@ - - - + + + - - + + - - + + - - [b_motStdStill] + + - - + + + + + + + + + + + + + + + + + int16 @@ -2717,44 +2713,44 @@ - - + + - + - - + + - - [z_counterRawPrev] + + [b_edge] - + - - + + - - + + - - int16 + + boolean @@ -2765,44 +2761,44 @@ - - - + + + - - + + - - + + - - [b_edge] + + CTRL_COM - - + + - - + + - - + + - - boolean + + uint8 @@ -2813,158 +2809,202 @@ - - - + + + - - + + + + + + + + - - + + - - [z_counterRaw] + + z_dir + + + + + + + + z_dirPrev + + + + + + + + z_counterRawPrev + + + + + + + + n_motAbsPrev + + + + + + + + z_counter + + + + + + + + dz_trnsDet + + + + + + + + n_motRaw + + + + + + + + if { } - - + + + + + + + + - - - + + + + + + + + + - - + + - - int16 + + Raw_Motor_Speed_Estimation - - - - - - - - - - - - - - - + - - + + + + + + + + + + + - - [dz_trnsDet] + + action - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + - - [z_counter] - - - - - - - + + sfix16_En4 - + + + + + + + - - + + - + int16 - - - - - - - - - - - - - - - + - - - + + + + - - [z_dirPrev] + + - - - - - - + + + + + + + boolean @@ -2975,44 +3015,50 @@ - - - + + + + + + + + + - - + + - - + + - - 0 + + [z_dir] - - + + - - + + - - + + - - sfix16_En4 + + int8 @@ -3033,11 +3079,11 @@ - + - + [z_counter] @@ -3055,11 +3101,11 @@ - + - + int16 @@ -3071,91 +3117,107 @@ - - - + + + - - + + - + - - + + - - + + 4 - - - - - - - + + + + + + - - - - - - - + + + + + + - - + + - - + + z_dirPrev - + + + + + + + + + + + int8 + - - + + + + + + + + + - - - - - - + + - - - - - + + - - Ini=0 + + [z_counterRaw] + + + + + + + - - + + - - + + - - sfix16_En4 + + int16 @@ -3166,43 +3228,43 @@ - - - + + + - - + + - - + + - - [n_motRaw] + + 0 - - + + - + - - + + - + sfix16_En4 @@ -3216,7 +3278,7 @@ - + @@ -3224,155 +3286,155 @@ - + - + inc - + - + max - + - + rst - + - + cnt - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3390,11 +3452,11 @@ - + - + Counter @@ -3405,41 +3467,56 @@ - + - + Ini=z_maxCntRst + + + + + + + + + + + int16 + + + + - + - + - + - + - + - + @@ -3447,65 +3524,82 @@ - - - - - - - - - - - int16 - - - - - - - + + + - - + + - + - - + + - - [b_motStdStill] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - boolean + + sfix16_En4 @@ -3516,59 +3610,43 @@ - - - + + + - - + + - - - - - - - - - + - - + + - - + + [b_motStdStill] - - - - - - - - - - + + - + - - + + - + boolean @@ -3580,59 +3658,44 @@ - - - + + + - - + + - - + + - - 4 + + [b_edge] - - - - - - - - - - - - - - - - - z_dirPrev + + - - + + - - + + - - int8 + + boolean @@ -3643,44 +3706,44 @@ - - - + + + - - + + - - + + - - [z_dir] + + - - + + - - + + - - + + - - int8 + + sfix16_En4 @@ -3701,11 +3764,11 @@ - + - + @@ -3723,11 +3786,11 @@ - + - + boolean @@ -3739,76 +3802,59 @@ - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + 1 - - - - - + + + + - - - + + + + + + + + + + + z_ctrlTypSel - - + + - - + + - - sfix16_En4 + + uint8 @@ -3819,44 +3865,44 @@ - - - + + + - - + + - - + + - - [b_enaFOC] + + 3 - - + + - - - + + + - - + + - - boolean + + z_counter @@ -3867,59 +3913,43 @@ - - - + + + - - + + - - - - - - - - - + - - + + - - + + [b_enaFOC] - - - - - - - - - - + + - + - - + + - + boolean @@ -3931,59 +3961,44 @@ - - - + + + - - + + - - + + - - 1 + + [n_motRaw] - - - - - - - - - - - - - - - - - z_ctrlTypSel + + - - + + - - + + - - uint8 + + sfix16_En4 @@ -3994,44 +4009,29 @@ - - - + + + - - + + - - + + - - CTRL_COM + + [n_motRaw] - - - - - - - - - - - - - - - - - uint8 + + @@ -4044,7 +4044,7 @@ - + @@ -4074,32 +4074,32 @@ - - - - - - - - - - - - + - + boolean + + + + + + + + + + + @@ -4138,32 +4138,32 @@ - - - - - - - - - - - - + - + boolean + + + + + + + + + + + @@ -4958,5 +4958,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8272_2515_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8272_2515_d.svg index 6c10cac..a0492a3 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8272_2515_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8272_2515_d.svg @@ -15,7 +15,7 @@ - + @@ -592,5 +592,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8272_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8272_d.json index 22d5882..25e1a7f 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8272_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8272_d.json @@ -1,81 +1,30 @@ [ { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8272:2418", - "className":"Simulink.Outport", - "icon":"WebViewIcon3", - "name":"cnt", - "label":"cnt", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8272:2515", + "className":"Simulink.SubSystem", + "icon":"WebViewIcon4", + "name":"rst_Delay", + "label":"rst_Delay", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8272", "inspector":{ "params":[ - "Port", - "IconDisplay", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" + "initVal" ], "values":[ - "1", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "off", - "[]", - "off", - "held", - "off", - "0", - "", - [ - ], - "Dialog", - "Auto", - "off" + "z_cntInit" ], "tabs":[ - "Main", - "Signal Attributes", - "-Other" ], "tabs_idx":[ - 0, - 2, - 11 ] }, "viewer":{ - "jshandler":"webview/handlers/ElementHandler" + "jshandler":"webview/handlers/ContainerHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", + "blocktype":"SubSystem", "masktype":"" } }, @@ -192,40 +141,91 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8272:2515", - "className":"Simulink.SubSystem", - "icon":"WebViewIcon4", - "name":"rst_Delay", - "label":"rst_Delay", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8272:2418", + "className":"Simulink.Outport", + "icon":"WebViewIcon3", + "name":"cnt", + "label":"cnt", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8272", "inspector":{ "params":[ - "initVal" + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "z_cntInit" + "1", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "off", + "[]", + "off", + "held", + "off", + "0", + "", + [ + ], + "Dialog", + "Auto", + "off" ], "tabs":[ + "Main", + "Signal Attributes", + "-Other" ], "tabs_idx":[ + 0, + 2, + 11 ] }, "viewer":{ - "jshandler":"webview/handlers/ContainerHandler" + "jshandler":"webview/handlers/ElementHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"SubSystem", + "blocktype":"Outport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8272:2414", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8272:2413", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"rst", - "label":"rst", + "name":"max", + "label":"max", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8272", "inspector":{ "params":[ @@ -248,7 +248,7 @@ "OutputFunctionCall" ], "values":[ - "3", + "2", "Port number", "[]", "[]", @@ -288,11 +288,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8272:2413", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8272:2412", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"max", - "label":"max", + "name":"inc", + "label":"inc", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8272", "inspector":{ "params":[ @@ -315,7 +315,7 @@ "OutputFunctionCall" ], "values":[ - "2", + "1", "Port number", "[]", "[]", @@ -355,11 +355,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8272:2412", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8272:2414", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"inc", - "label":"inc", + "name":"rst", + "label":"rst", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8272", "inspector":{ "params":[ @@ -382,7 +382,7 @@ "OutputFunctionCall" ], "values":[ - "1", + "3", "Port number", "[]", "[]", diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8272_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8272_d.svg index 410f4af..aa890f2 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8272_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8272_d.svg @@ -13,44 +13,131 @@ - - - + + + - - + + - + - - 1 + + u + + + + + + + + rst + + + + + + + + y + + + + + + + + 1 + + + + + + + + z + + + + + + + + - - + + - - - + + + - - + + - - cnt + + Ini=z_cntInit + + + + + + + + + + + + + + + int16 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -71,35 +158,35 @@ - + - + - + - + - + - + - + - + @@ -117,11 +204,11 @@ - + - + int16 @@ -135,7 +222,7 @@ - + @@ -143,19 +230,19 @@ - + - + - + - + @@ -181,11 +268,11 @@ - + - + int16 @@ -197,131 +284,44 @@ - - - + + + - - + + - - - - - - u - - - - - - - - rst - - - - - - - - y - - - - - - - - 1 - - - - - - - - z - - - - + + - - + + 1 - - - - - - - - - - - - - - - - - int16 + + - - - - - - - - - - - Ini=z_cntInit + + + - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - + + cnt @@ -332,11 +332,11 @@ - - + + - + @@ -346,45 +346,45 @@ - - 3 + + 2 - + - - + + - + - - rst + + max - - + + - + - - boolean + + int16 @@ -395,11 +395,11 @@ - - + + - + @@ -409,44 +409,44 @@ - - 2 + + 1 - + - - + + - + - - max + + inc - + - + - + int16 @@ -458,11 +458,11 @@ - - + + - + @@ -472,45 +472,45 @@ - - 1 + + 3 - + - - + + - + - - inc + + rst - - + + - + - - int16 + + boolean @@ -625,5 +625,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8314_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8314_d.json index 6c64d56..ff02ba2 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8314_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8314_d.json @@ -245,11 +245,11 @@ ] }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8358", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8360", "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"z_counter", - "label":"z_counter", + "name":"n_motRaw", + "label":"n_motRaw", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ @@ -278,7 +278,7 @@ "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "1", + "3", "Port number", "[]", "[]", @@ -291,7 +291,7 @@ "auto", "off", "off", - "z_maxCntRst", + "[]", "off", "held", "off", @@ -325,42 +325,52 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8355", - "className":"Simulink.Constant", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8357", + "className":"Simulink.Gain", "icon":"WebViewIcon3", - "name":"cf_speedCoef", - "label":"cf_speedCoef", + "name":"g_Ha", + "label":"g_Ha", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ - "Value", - "VectorParams1D", - "SampleTime", + "Gain", + "Multiplication", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "FramePeriod" + "RndMeth", + "SaturateOnIntegerOverflow", + "ParamMin", + "ParamMax", + "ParamDataTypeStr", + "SampleTime" ], "values":[ - "cf_speedCoef", - "on", - "inf", + "4", + "Element-wise(K.*u)", "[]", "[]", - "fixdt(0,16,0)", + "Inherit: Inherit via back propagation", "off", - "inf" + "Zero", + "off", + "[]", + "[]", + "Inherit: Same as input", + "-1" ], "tabs":[ "Main", "Signal Attributes", + "Parameter Attributes", "-Other" ], "tabs_idx":[ 0, - 3, - 7 + 2, + 8, + 11 ] }, "viewer":{ @@ -369,48 +379,53 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Constant", + "blocktype":"Gain", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8353", - "className":"Simulink.UnitDelay", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8356", + "className":"Simulink.Relay", "icon":"WebViewIcon3", - "name":"UnitDelay4", - "label":"UnitDelay4", + "name":"dz_cntTrnsDet", + "label":"dz_cntTrnsDet", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ - "InitialCondition", + "OnSwitchValue", + "OffSwitchValue", + "OnOutputValue", + "OffOutputValue", "InputProcessing", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", "SampleTime", - "StateName", - "CodeGenStateStorageTypeQualifier", - "StateMustResolveToSignalObject", - "StateSignalObject", - "StateStorageClass" + "ZeroCross" ], "values":[ + "dz_cntTrnsDetHi", + "dz_cntTrnsDetLo", + "1", "0", - "Inherited", - "-1", - "", - "", + "Elements as channels (sample based)", + "[]", + "[]", + "boolean", "off", - [ - ], - "Auto" + "-1", + "on" ], "tabs":[ "Main", - "State Attributes", + "Signal Attributes", "-Other" ], "tabs_idx":[ 0, - 3, - 4 + 5, + 9 ] }, "viewer":{ @@ -419,48 +434,47 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"UnitDelay", + "blocktype":"Relay", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8352", - "className":"Simulink.UnitDelay", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8355", + "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"UnitDelay3", - "label":"UnitDelay3", + "name":"cf_speedCoef", + "label":"cf_speedCoef", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ - "InitialCondition", - "InputProcessing", + "Value", + "VectorParams1D", "SampleTime", - "StateName", - "CodeGenStateStorageTypeQualifier", - "StateMustResolveToSignalObject", - "StateSignalObject", - "StateStorageClass" + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "FramePeriod" ], "values":[ - "0", - "Inherited", - "-1", - "", - "", + "cf_speedCoef", + "on", + "inf", + "[]", + "[]", + "fixdt(0,16,0)", "off", - [ - ], - "Auto" + "inf" ], "tabs":[ "Main", - "State Attributes", + "Signal Attributes", "-Other" ], "tabs_idx":[ 0, 3, - 4 + 7 ] }, "viewer":{ @@ -469,16 +483,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"UnitDelay", + "blocktype":"Constant", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8350", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8354", "className":"Simulink.UnitDelay", "icon":"WebViewIcon3", - "name":"UnitDelay1", - "label":"UnitDelay1", + "name":"UnitDelay5", + "label":"UnitDelay5", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ @@ -524,11 +538,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8349", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8348", "className":"Simulink.Switch", "icon":"WebViewIcon3", - "name":"Switch3", - "label":"Switch3", + "name":"Switch2", + "label":"Switch2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ @@ -581,43 +595,50 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8351", - "className":"Simulink.UnitDelay", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8347", + "className":"Simulink.Switch", "icon":"WebViewIcon3", - "name":"UnitDelay2", - "label":"UnitDelay2", + "name":"Switch1", + "label":"Switch1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ - "InitialCondition", - "InputProcessing", + "Criteria", + "InputSameDT", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "RndMeth", + "SaturateOnIntegerOverflow", + "AllowDiffInputSizes", "SampleTime", - "StateName", - "CodeGenStateStorageTypeQualifier", - "StateMustResolveToSignalObject", - "StateSignalObject", - "StateStorageClass" + "Threshold", + "ZeroCross" ], "values":[ - "0", - "Inherited", - "-1", - "", - "", + "u2 ~= 0", + "on", + "[]", + "[]", + "Inherit: Inherit via internal rule", "off", - [ - ], - "Auto" + "Floor", + "off", + "off", + "-1", + "0", + "on" ], "tabs":[ "Main", - "State Attributes", + "Signal Attributes", "-Other" ], "tabs_idx":[ 0, - 3, - 4 + 1, + 9 ] }, "viewer":{ @@ -626,43 +647,47 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"UnitDelay", + "blocktype":"Switch", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8356", - "className":"Simulink.Relay", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8346", + "className":"Simulink.Sum", "icon":"WebViewIcon3", - "name":"dz_cntTrnsDet", - "label":"dz_cntTrnsDet", + "name":"Sum7", + "label":"Sum7", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ - "OnSwitchValue", - "OffSwitchValue", - "OnOutputValue", - "OffOutputValue", - "InputProcessing", + "IconShape", + "Inputs", + "InputSameDT", + "AccumDataTypeStr", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "SampleTime", - "ZeroCross" + "RndMeth", + "SaturateOnIntegerOverflow", + "CollapseDim", + "CollapseMode", + "SampleTime" ], "values":[ - "dz_cntTrnsDetHi", - "dz_cntTrnsDetLo", - "1", - "0", - "Elements as channels (sample based)", + "rectangular", + "+-", + "on", + "Inherit: Inherit via internal rule", "[]", "[]", - "boolean", + "Inherit: Same as first input", "off", - "-1", - "on" + "Simplest", + "off", + "1", + "All dimensions", + "-1" ], "tabs":[ "Main", @@ -671,8 +696,8 @@ ], "tabs_idx":[ 0, - 5, - 9 + 2, + 10 ] }, "viewer":{ @@ -681,68 +706,47 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Relay", + "blocktype":"Sum", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8360", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8345", + "className":"Simulink.Sum", "icon":"WebViewIcon3", - "name":"n_motRaw", - "label":"n_motRaw", + "name":"Sum13", + "label":"Sum13", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ - "Port", - "IconDisplay", + "IconShape", + "Inputs", + "InputSameDT", + "AccumDataTypeStr", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" + "RndMeth", + "SaturateOnIntegerOverflow", + "CollapseDim", + "CollapseMode", + "SampleTime" ], "values":[ - "3", - "Port number", - "[]", + "rectangular", + "++++", + "on", + "Inherit: Inherit via internal rule", "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "off", "[]", + "Inherit: Same as first input", "off", - "held", + "Simplest", "off", - "0", - "", - [ - ], - "Dialog", - "Auto", - "off" + "1", + "All dimensions", + "-1" ], "tabs":[ "Main", @@ -752,7 +756,7 @@ "tabs_idx":[ 0, 2, - 11 + 10 ] }, "viewer":{ @@ -761,16 +765,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", + "blocktype":"Sum", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8338", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8341", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto3", - "label":"Goto3", + "name":"Goto6", + "label":"Goto6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ @@ -779,7 +783,7 @@ "IconDisplay" ], "values":[ - "z_dirPrev", + "dz_trnsDet", "local", "Tag" ], @@ -799,11 +803,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8336", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8340", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto", - "label":"Goto", + "name":"Goto5", + "label":"Goto5", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ @@ -812,7 +816,7 @@ "IconDisplay" ], "values":[ - "z_dir", + "z_counterRawPrev", "local", "Tag" ], @@ -832,19 +836,21 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8333", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8339", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From7", - "label":"From7", + "name":"Goto4", + "label":"Goto4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ "n_motAbsPrev", + "local", "Tag" ], "tabs":[ @@ -858,24 +864,26 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8335", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8338", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From9", - "label":"From9", + "name":"Goto3", + "label":"Goto3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "z_counter", + "z_dirPrev", + "local", "Tag" ], "tabs":[ @@ -889,24 +897,26 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8331", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8342", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From5", - "label":"From5", + "name":"Goto7", + "label":"Goto7", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ "cf_speedCoef", + "local", "Tag" ], "tabs":[ @@ -920,117 +930,43 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8330", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From4", - "label":"From4", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "z_dir", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8329", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From21", - "label":"From21", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "z_dirPrev", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8348", - "className":"Simulink.Switch", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8344", + "className":"Simulink.RelationalOperator", "icon":"WebViewIcon3", - "name":"Switch2", - "label":"Switch2", + "name":"Relational Operator4", + "label":"Relational Operator4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ - "Criteria", + "Operator", "InputSameDT", - "OutMin", - "OutMax", "OutDataTypeStr", - "LockScale", "RndMeth", - "SaturateOnIntegerOverflow", - "AllowDiffInputSizes", "SampleTime", - "Threshold", "ZeroCross" ], "values":[ - "u2 ~= 0", - "on", - "[]", - "[]", - "Inherit: Inherit via internal rule", - "off", - "Floor", - "off", + "~=", "off", + "boolean", + "Simplest", "-1", - "0", "on" ], "tabs":[ "Main", - "Signal Attributes", + "Data Type", "-Other" ], "tabs_idx":[ 0, 1, - 9 + 4 ] }, "viewer":{ @@ -1039,16 +975,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Switch", + "blocktype":"RelationalOperator", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8328", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8333", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From13", - "label":"From13", + "name":"From7", + "label":"From7", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ @@ -1056,7 +992,7 @@ "IconDisplay" ], "values":[ - "z_counter", + "n_motAbsPrev", "Tag" ], "tabs":[ @@ -1075,11 +1011,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8327", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8332", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From12", - "label":"From12", + "name":"From6", + "label":"From6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ @@ -1087,7 +1023,7 @@ "IconDisplay" ], "values":[ - "z_counter", + "z_dir", "Tag" ], "tabs":[ @@ -1106,21 +1042,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8337", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8329", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto1", - "label":"Goto1", + "name":"From21", + "label":"From21", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "z_counter", - "local", + "z_dirPrev", "Tag" ], "tabs":[ @@ -1134,80 +1068,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8339", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8350", + "className":"Simulink.UnitDelay", "icon":"WebViewIcon3", - "name":"Goto4", - "label":"Goto4", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", - "inspector":{ - "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" - ], - "values":[ - "n_motAbsPrev", - "local", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Goto", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8325", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From", - "label":"From", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "cf_speedCoef", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8354", - "className":"Simulink.UnitDelay", - "icon":"WebViewIcon3", - "name":"UnitDelay5", - "label":"UnitDelay5", + "name":"UnitDelay1", + "label":"UnitDelay1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ @@ -1253,40 +1123,63 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8324", - "className":"Simulink.Product", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8358", + "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"Divide14", - "label":"Divide14", + "name":"z_counter", + "label":"z_counter", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ - "Inputs", - "Multiplication", - "InputSameDT", + "Port", + "IconDisplay", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", - "SampleTime" + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "*/", - "Element-wise(.*)", - "off", + "1", + "Port number", "[]", "[]", - "fixdt(1,16,4)", + "Inherit: auto", "off", - "Simplest", + "inherit", + "-1", + "Inherit", + "-1", + "auto", "off", - "1", - "All dimensions", - "-1" + "off", + "z_maxCntRst", + "off", + "held", + "off", + "0", + "", + [ + ], + "Dialog", + "Auto", + "off" ], "tabs":[ "Main", @@ -1296,7 +1189,7 @@ "tabs_idx":[ 0, 2, - 9 + 11 ] }, "viewer":{ @@ -1305,16 +1198,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Product", + "blocktype":"Outport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8334", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8327", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From8", - "label":"From8", + "name":"From12", + "label":"From12", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ @@ -1322,7 +1215,7 @@ "IconDisplay" ], "values":[ - "dz_trnsDet", + "z_counter", "Tag" ], "tabs":[ @@ -1341,11 +1234,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8332", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8331", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From6", - "label":"From6", + "name":"From5", + "label":"From5", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ @@ -1353,7 +1246,7 @@ "IconDisplay" ], "values":[ - "z_dir", + "cf_speedCoef", "Tag" ], "tabs":[ @@ -1372,18 +1265,129 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8345", - "className":"Simulink.Sum", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8325", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Sum13", - "label":"Sum13", + "name":"From", + "label":"From", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "cf_speedCoef", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8353", + "className":"Simulink.UnitDelay", + "icon":"WebViewIcon3", + "name":"UnitDelay4", + "label":"UnitDelay4", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", + "inspector":{ + "params":[ + "InitialCondition", + "InputProcessing", + "SampleTime", + "StateName", + "CodeGenStateStorageTypeQualifier", + "StateMustResolveToSignalObject", + "StateSignalObject", + "StateStorageClass" + ], + "values":[ + "0", + "Inherited", + "-1", + "", + "", + "off", + [ + ], + "Auto" + ], + "tabs":[ + "Main", + "State Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 3, + 4 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"UnitDelay", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8328", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From13", + "label":"From13", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "z_counter", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8323", + "className":"Simulink.Product", + "icon":"WebViewIcon3", + "name":"Divide13", + "label":"Divide13", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ - "IconShape", "Inputs", + "Multiplication", "InputSameDT", - "AccumDataTypeStr", "OutMin", "OutMax", "OutDataTypeStr", @@ -1395,13 +1399,12 @@ "SampleTime" ], "values":[ - "rectangular", - "++++", - "on", - "Inherit: Inherit via internal rule", + "*/", + "Element-wise(.*)", + "off", "[]", "[]", - "Inherit: Same as first input", + "fixdt(1,16,4)", "off", "Simplest", "off", @@ -1417,7 +1420,7 @@ "tabs_idx":[ 0, 2, - 10 + 9 ] }, "viewer":{ @@ -1426,68 +1429,45 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Sum", + "blocktype":"Product", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8359", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8324", + "className":"Simulink.Product", "icon":"WebViewIcon3", - "name":"dz_trnsDet", - "label":"dz_trnsDet", + "name":"Divide14", + "label":"Divide14", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ - "Port", - "IconDisplay", + "Inputs", + "Multiplication", + "InputSameDT", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" + "RndMeth", + "SaturateOnIntegerOverflow", + "CollapseDim", + "CollapseMode", + "SampleTime" ], "values":[ - "2", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", + "*/", + "Element-wise(.*)", "off", "[]", + "[]", + "fixdt(1,16,4)", "off", - "held", + "Simplest", "off", - "0", - "", - [ - ], - "Dialog", - "Auto", - "off" + "1", + "All dimensions", + "-1" ], "tabs":[ "Main", @@ -1497,7 +1477,7 @@ "tabs_idx":[ 0, 2, - 11 + 9 ] }, "viewer":{ @@ -1506,57 +1486,55 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", + "blocktype":"Product", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8357", - "className":"Simulink.Gain", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8322", + "className":"Simulink.Product", "icon":"WebViewIcon3", - "name":"g_Ha", - "label":"g_Ha", + "name":"Divide11", + "label":"Divide11", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ - "Gain", + "Inputs", "Multiplication", + "InputSameDT", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", "RndMeth", "SaturateOnIntegerOverflow", - "ParamMin", - "ParamMax", - "ParamDataTypeStr", + "CollapseDim", + "CollapseMode", "SampleTime" ], "values":[ - "4", - "Element-wise(K.*u)", - "[]", - "[]", - "Inherit: Inherit via back propagation", - "off", - "Zero", + "**", + "Element-wise(.*)", "off", "[]", "[]", - "Inherit: Same as input", + "Inherit: Same as first input", + "off", + "Simplest", + "off", + "1", + "All dimensions", "-1" ], "tabs":[ "Main", "Signal Attributes", - "Parameter Attributes", "-Other" ], "tabs_idx":[ 0, 2, - 8, - 11 + 9 ] }, "viewer":{ @@ -1565,7 +1543,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Gain", + "blocktype":"Product", "masktype":"" } }, @@ -1619,11 +1597,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8326", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8334", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From1", - "label":"From1", + "name":"From8", + "label":"From8", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ @@ -1631,7 +1609,7 @@ "IconDisplay" ], "values":[ - "z_counterRawPrev", + "dz_trnsDet", "Tag" ], "tabs":[ @@ -1650,16 +1628,15 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8322", - "className":"Simulink.Product", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8349", + "className":"Simulink.Switch", "icon":"WebViewIcon3", - "name":"Divide11", - "label":"Divide11", + "name":"Switch3", + "label":"Switch3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ - "Inputs", - "Multiplication", + "Criteria", "InputSameDT", "OutMin", "OutMax", @@ -1667,23 +1644,24 @@ "LockScale", "RndMeth", "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", - "SampleTime" + "AllowDiffInputSizes", + "SampleTime", + "Threshold", + "ZeroCross" ], "values":[ - "**", - "Element-wise(.*)", - "off", + "u2 ~= 0", + "on", "[]", "[]", - "Inherit: Same as first input", + "Inherit: Inherit via internal rule", "off", - "Simplest", + "Floor", "off", - "1", - "All dimensions", - "-1" + "off", + "-1", + "0", + "on" ], "tabs":[ "Main", @@ -1692,7 +1670,7 @@ ], "tabs_idx":[ 0, - 2, + 1, 9 ] }, @@ -1702,45 +1680,55 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Product", + "blocktype":"Switch", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8323", - "className":"Simulink.Product", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8318", + "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"Divide13", - "label":"Divide13", + "name":"n_motAbsPrev", + "label":"n_motAbsPrev", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ - "Inputs", - "Multiplication", - "InputSameDT", + "Port", + "IconDisplay", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", - "SampleTime" + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" ], "values":[ - "*/", - "Element-wise(.*)", - "off", + "4", + "Port number", "[]", "[]", - "fixdt(1,16,4)", + "Inherit: auto", "off", - "Simplest", + "inherit", + "-1", + "Inherit", + "-1", + "auto", "off", - "1", - "All dimensions", - "-1" + "", + "on", + "off", + "off", + "off" ], "tabs":[ "Main", @@ -1750,7 +1738,7 @@ "tabs_idx":[ 0, 2, - 9 + 11 ] }, "viewer":{ @@ -1759,65 +1747,45 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Product", + "blocktype":"Inport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8318", - "className":"Simulink.Inport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8320", + "className":"Simulink.Abs", "icon":"WebViewIcon3", - "name":"n_motAbsPrev", - "label":"n_motAbsPrev", + "name":"Abs2", + "label":"Abs2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ - "Port", - "IconDisplay", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", + "RndMeth", + "SaturateOnIntegerOverflow", "SampleTime", - "SignalType", - "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" + "ZeroCross" ], "values":[ - "4", - "Port number", "[]", "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "", - "on", + "Inherit: Inherit via back propagation", "off", + "Zero", "off", - "off" + "-1", + "on" ], "tabs":[ - "Main", "Signal Attributes", "-Other" ], "tabs_idx":[ 0, - 2, - 11 + 6 ] }, "viewer":{ @@ -1826,32 +1794,49 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", + "blocktype":"Abs", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8340", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8352", + "className":"Simulink.UnitDelay", "icon":"WebViewIcon3", - "name":"Goto5", - "label":"Goto5", + "name":"UnitDelay3", + "label":"UnitDelay3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" + "InitialCondition", + "InputProcessing", + "SampleTime", + "StateName", + "CodeGenStateStorageTypeQualifier", + "StateMustResolveToSignalObject", + "StateSignalObject", + "StateStorageClass" ], "values":[ - "z_counterRawPrev", - "local", - "Tag" + "0", + "Inherited", + "-1", + "", + "", + "off", + [ + ], + "Auto" ], "tabs":[ - "Parameter Attributes" + "Main", + "State Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 3, + 4 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1859,26 +1844,24 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"UnitDelay", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8342", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8330", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto7", - "label":"Goto7", + "name":"From4", + "label":"From4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "cf_speedCoef", - "local", + "z_dir", "Tag" ], "tabs":[ @@ -1892,7 +1875,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, @@ -1964,39 +1947,25 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8344", - "className":"Simulink.RelationalOperator", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8326", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Relational Operator4", - "label":"Relational Operator4", + "name":"From1", + "label":"From1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ - "Operator", - "InputSameDT", - "OutDataTypeStr", - "RndMeth", - "SampleTime", - "ZeroCross" + "GotoTag", + "IconDisplay" ], "values":[ - "~=", - "off", - "boolean", - "Simplest", - "-1", - "on" + "z_counterRawPrev", + "Tag" ], "tabs":[ - "Main", - "Data Type", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 1, - 4 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -2004,27 +1973,25 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"RelationalOperator", + "blocktype":"From", "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8341", - "className":"Simulink.Goto", + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8319", + "className":"Simulink.ActionPort", "icon":"WebViewIcon3", - "name":"Goto6", - "label":"Goto6", + "name":"Action Port", + "label":"Action Port", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" + "InitializeStates", + "PropagateVarSize" ], "values":[ - "dz_trnsDet", - "local", - "Tag" + "held", + "Only when execution is resumed" ], "tabs":[ "Parameter Attributes" @@ -2037,16 +2004,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"ActionPort", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8316", - "className":"Simulink.Inport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8359", + "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"z_dirPrev", - "label":"z_dirPrev", + "name":"dz_trnsDet", + "label":"dz_trnsDet", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ @@ -2062,11 +2029,17 @@ "SampleTime", "SignalType", "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ "2", @@ -2081,10 +2054,17 @@ "-1", "auto", "off", - "", - "on", "off", + "[]", + "off", + "held", "off", + "0", + "", + [ + ], + "Dialog", + "Auto", "off" ], "tabs":[ @@ -2104,47 +2084,55 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", + "blocktype":"Outport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8346", - "className":"Simulink.Sum", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8316", + "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"Sum7", - "label":"Sum7", + "name":"z_dirPrev", + "label":"z_dirPrev", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ - "IconShape", - "Inputs", - "InputSameDT", - "AccumDataTypeStr", + "Port", + "IconDisplay", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", - "SampleTime" + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" ], "values":[ - "rectangular", - "+-", - "on", - "Inherit: Inherit via internal rule", + "2", + "Port number", "[]", "[]", - "Inherit: Same as first input", + "Inherit: auto", "off", - "Simplest", + "inherit", + "-1", + "Inherit", + "-1", + "auto", "off", - "1", - "All dimensions", - "-1" + "", + "on", + "off", + "off", + "off" ], "tabs":[ "Main", @@ -2154,7 +2142,7 @@ "tabs_idx":[ 0, 2, - 10 + 11 ] }, "viewer":{ @@ -2163,25 +2151,25 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Sum", + "blocktype":"Inport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8319", - "className":"Simulink.ActionPort", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8335", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Action Port", - "label":"Action Port", + "name":"From9", + "label":"From9", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ - "InitializeStates", - "PropagateVarSize" + "GotoTag", + "IconDisplay" ], "values":[ - "held", - "Only when execution is resumed" + "z_counter", + "Tag" ], "tabs":[ "Parameter Attributes" @@ -2194,46 +2182,32 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"ActionPort", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8320", - "className":"Simulink.Abs", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8337", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Abs2", - "label":"Abs2", + "name":"Goto1", + "label":"Goto1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "SampleTime", - "ZeroCross" + "GotoTag", + "TagVisibility", + "IconDisplay" ], "values":[ - "[]", - "[]", - "Inherit: Inherit via back propagation", - "off", - "Zero", - "off", - "-1", - "on" + "z_counter", + "local", + "Tag" ], "tabs":[ - "Signal Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 6 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -2241,55 +2215,48 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Abs", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8347", - "className":"Simulink.Switch", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8351", + "className":"Simulink.UnitDelay", "icon":"WebViewIcon3", - "name":"Switch1", - "label":"Switch1", + "name":"UnitDelay2", + "label":"UnitDelay2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", "inspector":{ "params":[ - "Criteria", - "InputSameDT", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "AllowDiffInputSizes", + "InitialCondition", + "InputProcessing", "SampleTime", - "Threshold", - "ZeroCross" + "StateName", + "CodeGenStateStorageTypeQualifier", + "StateMustResolveToSignalObject", + "StateSignalObject", + "StateStorageClass" ], "values":[ - "u2 ~= 0", - "on", - "[]", - "[]", - "Inherit: Inherit via internal rule", - "off", - "Floor", - "off", - "off", - "-1", "0", - "on" + "Inherited", + "-1", + "", + "", + "off", + [ + ], + "Auto" ], "tabs":[ "Main", - "Signal Attributes", + "State Attributes", "-Other" ], "tabs_idx":[ 0, - 1, - 9 + 3, + 4 ] }, "viewer":{ @@ -2298,7 +2265,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Switch", + "blocktype":"UnitDelay", "masktype":"" } }, @@ -2369,6 +2336,39 @@ "masktype":"" } }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8336", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto", + "label":"Goto", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8314", + "inspector":{ + "params":[ + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "z_dir", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", + "masktype":"" + } + }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8343", "className":"Simulink.Logic", diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8314_d.png b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8314_d.png index d9c67cde3cb67c5099cec6ff560bf4fe23339ffb..fde781ef712089ffedfa3c216606bfcd9fa5fea8 100644 GIT binary patch delta 7810 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 literal 8556 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Ν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 diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8314_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8314_d.svg index 957ce23..7beef42 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8314_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8314_d.svg @@ -220,11 +220,11 @@ - - + + - + @@ -234,30 +234,30 @@ - - 1 + + 3 - + - - + + - + - - z_counter + + n_motRaw @@ -268,58 +268,43 @@ - - - + + + - - + + - + - - cf_speedCoef + + 4 - - - - - - - - - - - - - - - - - cf_speedCoef + + - + - - + + - + uint16 @@ -331,46 +316,62 @@ - - - + + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + - + - - + + - + - - + + - + - - + + @@ -384,38 +385,38 @@ - - + + - - - + + + - - + + - - int16 + + dz_cntTrnsDet - - - + + + - - + + - - Ini=0 + + boolean @@ -426,91 +427,59 @@ - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + cf_speedCoef - - - - - - - - - - + + - - - + + + - - + + - - Ini=0 + + cf_speedCoef - - + + - - + + - - int16 + + uint16 @@ -521,45 +490,45 @@ - - + + - + - + - + - + - + - + - + - + - + @@ -574,38 +543,38 @@ - + - + - - + + - + Ini=0 - - + + - - + + - - boolean + + int16 @@ -616,204 +585,204 @@ - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + T - + - + F - + - - - + + + - - + + - - sfix16_En4 + + threshold=0 + Criteria : u2 ~= 0 - - - + + + - - + + - - threshold=0 - Criteria : u2 ~= 0 + + sfix16_En4 @@ -824,202 +793,204 @@ - - - + + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - int16 - - - - - - - + + - - + + - - Ini=0 + + - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - dz_cntTrnsDet + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + T + + + + + + + + F + + + + + + + + + + + + + + + + + + + + + + threshold=0 + Criteria : u2 ~= 0 + + + - - + + - - + + - - boolean + + sfix16_En4 @@ -1030,44 +1001,60 @@ - - - + + + - - + + - - + + - - 3 + + + + + + + + + + + + + + + + + + - - + + - - - + + + - - + + - - n_motRaw + + int16 @@ -1078,28 +1065,132 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int16 + + + + + + + + + + + + - + - + - - [z_dirPrev] + + [dz_trnsDet] - + @@ -1111,28 +1202,28 @@ - - + + - + - - + + - - [z_dir] + + [z_counterRawPrev] - + @@ -1144,44 +1235,62 @@ - - - + + + - - + + - - + + - + [n_motAbsPrev] - - + + - - - - + + + + + + + + + + + + + + + - - + + - - sfix16_En4 + + [z_dirPrev] + + + + + + + @@ -1192,44 +1301,93 @@ - - - + + + - - + + - - + + - - [z_counter] + + [cf_speedCoef] - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - int16 + + boolean @@ -1240,44 +1398,44 @@ - - + + - + - + - - [cf_speedCoef] + + [n_motAbsPrev] - + - - + + - - + + - - uint16 + + sfix16_En4 @@ -1288,43 +1446,43 @@ - - + + - + - + - + [z_dir] - + - + - - + + - + int8 @@ -1346,11 +1504,11 @@ - + - + [z_dirPrev] @@ -1368,11 +1526,11 @@ - + - + int8 @@ -1384,204 +1542,91 @@ - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + - - + + - - + + - - + + - - T + + - - + + - - F + + + + + + + + + + - - + + - - - + + + - - + + - - threshold=0 - Criteria : u2 ~= 0 + + boolean - - - + + + - - + + - - sfix16_En4 + + Ini=0 @@ -1592,44 +1637,44 @@ - - - + + + - - + + - - + + - - [z_counter] + + 1 - - + + - - - + + + - - + + - - int16 + + z_counter @@ -1650,11 +1695,11 @@ - + - + [z_counter] @@ -1672,11 +1717,11 @@ - + - + int16 @@ -1688,62 +1733,44 @@ - - - + + + - - + + - - + + - - [z_counter] + + [cf_speedCoef] - - + + - - - - - - - - - - - - - - - + + + + - - + + - - [n_motAbsPrev] - - - - - - - + + uint16 @@ -1764,11 +1791,11 @@ - + - + [cf_speedCoef] @@ -1786,11 +1813,11 @@ - + - + uint16 @@ -1802,45 +1829,45 @@ - - + + - + - + - + - + - + - + - + - + - + @@ -1855,37 +1882,37 @@ - + - + - - + + - + Ini=0 - + - - + + - + int16 @@ -1897,69 +1924,44 @@ - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - + + [z_counter] - - + + - - + + - - + + - - sfix16_En4 + + int16 @@ -1970,92 +1972,69 @@ - - - + + + - - + + - - + + - - [dz_trnsDet] - - - - - - - - - - - - - - + + - - + + - - boolean + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + - - [z_dir] + + + - - + + - - + + - - + + - - int8 + + sfix16_En4 @@ -2066,100 +2045,125 @@ - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + - - - - - - - + + + + + + + + + + + + + - - + + - - + + sfix16_En4 + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - int16 + + sfix16_En4 @@ -2170,44 +2174,44 @@ - - - + + + - - + + - - + + - - 2 + + 0 - - + + - - - + + + - - + + - - dz_trnsDet + + sfix16_En4 @@ -2218,44 +2222,44 @@ - - - + + + - - + + - - + + - - 4 + + [dz_trnsDet] - - + + - - + + - - + + - - uint16 + + boolean @@ -2266,220 +2270,203 @@ - - - + + + - - + + - - + + - - 0 + + - - - - - - + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - sfix16_En4 + + - - - - - - - - - - - - - - - - - - - - + + - - [z_counterRawPrev] - - - - - - - + + - - - - - - + + + + + + + - - + + - - int16 + + - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - - - - - + + + + + + + - - - - - - + + + + + + + - - + + - - sfix16_En4 + + - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + T - - + + - - - + + F - - + + + + + + + + + + + + + + + + + threshold=0 + Criteria : u2 ~= 0 - + - - + + - + sfix16_En4 @@ -2501,11 +2488,11 @@ - + - + 4 @@ -2523,11 +2510,11 @@ - + - + n_motAbsPrev @@ -2538,11 +2525,11 @@ - + - + sfix16_En4 @@ -2554,124 +2541,75 @@ - - - + + + - - + + - + - - + + - - [z_counterRawPrev] - - - - - - - + + - - - - - - - - - - - - - - - - - - - - + + - - [cf_speedCoef] + + - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - + + - - 3 + + - - - - + - - - - - - - - - - - z_counterRawPrev + + + + + + + - + - - + + - + int16 @@ -2683,30 +2621,46 @@ - - - + + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + @@ -2720,23 +2674,38 @@ - - + + - - + + - - + + - - boolean + + int16 + + + + + + + + + + + + + + + Ini=0 @@ -2747,29 +2716,44 @@ - - - + + + - - + + - - + + - - [dz_trnsDet] + + [z_dir] - - + + + + + + + + + + + + + + + + + int8 @@ -2780,59 +2764,59 @@ - - + + - + - + - - 2 + + 3 - + - - + + - - + + - - z_dirPrev + + z_counterRawPrev - - + + - - + + - - int8 + + int16 @@ -2843,59 +2827,43 @@ - - - + + + - - + + - - - - - - - - - - - - - - - - - - + + - - + + [z_counterRawPrev] - - + + - + - - + + - + int16 @@ -2909,7 +2877,7 @@ - + @@ -2917,11 +2885,11 @@ - + - + if { } @@ -2939,11 +2907,11 @@ - + - + Action Port @@ -2955,75 +2923,154 @@ - - - + + + - - + + - + - - + + - - + + 2 + + + + + + + + + + + + + + - - + + - - + + dz_trnsDet + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + + + + + + + - - + + - - + + z_dirPrev + + + + + + + - - + + - - + + int8 - - + + + + + + + + + + + + + + + + + + + [z_counter] + - - + + - + - - + + - + int16 @@ -3035,204 +3082,124 @@ - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + [z_counter] - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - T + + - - + + - - F + + + + + + + + + + - - + + - - - + + + - - + + - - threshold=0 - Criteria : u2 ~= 0 + + int16 - - - + + + - - + + - - sfix16_En4 + + Ini=0 @@ -3253,11 +3220,11 @@ - + - + 1 @@ -3275,11 +3242,11 @@ - + - + z_dir @@ -3290,11 +3257,11 @@ - + - + int8 @@ -3304,11 +3271,44 @@ + + + + + + + + + + + + + + + + + + [z_dir] + + + + + + + + + + + + + + + - + @@ -4020,5 +4020,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8384_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8384_d.json index bba2494..a7fd219 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8384_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8384_d.json @@ -1000,40 +1000,42 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8418", - "className":"Simulink.Switch", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8417", + "className":"Simulink.Sum", "icon":"WebViewIcon3", - "name":"Switch2", - "label":"Switch2", + "name":"Sum3", + "label":"Sum3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8384", "inspector":{ "params":[ - "Criteria", + "IconShape", + "Inputs", "InputSameDT", + "AccumDataTypeStr", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", "RndMeth", "SaturateOnIntegerOverflow", - "AllowDiffInputSizes", - "SampleTime", - "Threshold", - "ZeroCross" + "CollapseDim", + "CollapseMode", + "SampleTime" ], "values":[ - "u2 ~= 0", + "rectangular", + "++", "off", + "Inherit: Inherit via internal rule", "[]", "[]", - "Inherit: Inherit via back propagation", - "off", - "Zero", + "fixdt(1,16,12)", "off", + "Simplest", "off", - "-1", - "0", - "on" + "1", + "All dimensions", + "-1" ], "tabs":[ "Main", @@ -1042,8 +1044,8 @@ ], "tabs_idx":[ 0, - 1, - 9 + 2, + 10 ] }, "viewer":{ @@ -1052,47 +1054,68 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Switch", + "blocktype":"Sum", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8417", - "className":"Simulink.Sum", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8421", + "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"Sum3", - "label":"Sum3", + "name":"a_elecAngle", + "label":"a_elecAngle", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8384", "inspector":{ "params":[ - "IconShape", - "Inputs", - "InputSameDT", - "AccumDataTypeStr", + "Port", + "IconDisplay", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", - "SampleTime" + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "rectangular", - "++", - "off", - "Inherit: Inherit via internal rule", + "1", + "Port number", "[]", "[]", - "fixdt(1,16,12)", + "Inherit: auto", "off", - "Simplest", + "inherit", + "-1", + "Inherit", + "-1", + "auto", "off", - "1", - "All dimensions", - "-1" + "off", + "0", + "off", + "reset", + "off", + "0", + "", + [ + ], + "Dialog", + "Auto", + "off" ], "tabs":[ "Main", @@ -1102,7 +1125,7 @@ "tabs_idx":[ 0, 2, - 10 + 11 ] }, "viewer":{ @@ -1111,7 +1134,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Sum", + "blocktype":"Outport", "masktype":"" } }, @@ -1168,39 +1191,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8412", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto6", - "label":"Goto6", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8384", - "inspector":{ - "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" - ], - "values":[ - "b_enaFOC", - "local", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Goto", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9660", "className":"Simulink.MinMax", @@ -1255,11 +1245,42 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8410", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8403", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From6", + "label":"From6", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8384", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "z_counter", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8412", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto4", - "label":"Goto4", + "name":"Goto6", + "label":"Goto6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8384", "inspector":{ "params":[ @@ -1268,7 +1289,7 @@ "IconDisplay" ], "values":[ - "z_posLowRes", + "b_enaFOC", "local", "Tag" ], @@ -1288,11 +1309,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8405", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8398", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From9", - "label":"From9", + "name":"From12", + "label":"From12", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8384", "inspector":{ "params":[ @@ -1300,7 +1321,7 @@ "IconDisplay" ], "values":[ - "z_dir", + "z_posLowRes", "Tag" ], "tabs":[ @@ -1319,11 +1340,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8404", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8397", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From7", - "label":"From7", + "name":"From11", + "label":"From11", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8384", "inspector":{ "params":[ @@ -1331,7 +1352,7 @@ "IconDisplay" ], "values":[ - "z_counterRaw", + "b_enaFOC", "Tag" ], "tabs":[ @@ -1350,11 +1371,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8400", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8404", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From5", - "label":"From5", + "name":"From7", + "label":"From7", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8384", "inspector":{ "params":[ @@ -1362,7 +1383,7 @@ "IconDisplay" ], "values":[ - "a_elecAngle", + "z_counterRaw", "Tag" ], "tabs":[ @@ -1381,11 +1402,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8411", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8410", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto5", - "label":"Goto5", + "name":"Goto4", + "label":"Goto4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8384", "inspector":{ "params":[ @@ -1394,7 +1415,7 @@ "IconDisplay" ], "values":[ - "z_posHighRes", + "z_posLowRes", "local", "Tag" ], @@ -1414,63 +1435,40 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8421", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8394", + "className":"Simulink.Product", "icon":"WebViewIcon3", - "name":"a_elecAngle", - "label":"a_elecAngle", + "name":"Divide3", + "label":"Divide3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8384", "inspector":{ "params":[ - "Port", - "IconDisplay", + "Inputs", + "Multiplication", + "InputSameDT", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" + "RndMeth", + "SaturateOnIntegerOverflow", + "CollapseDim", + "CollapseMode", + "SampleTime" ], "values":[ - "1", - "Port number", + "**", + "Element-wise(.*)", + "off", "[]", "[]", - "Inherit: auto", + "Inherit: Same as first input", "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "off", - "0", - "off", - "reset", + "Simplest", "off", - "0", - "", - [ - ], - "Dialog", - "Auto", - "off" + "1", + "All dimensions", + "-1" ], "tabs":[ "Main", @@ -1480,7 +1478,7 @@ "tabs_idx":[ 0, 2, - 11 + 9 ] }, "viewer":{ @@ -1489,131 +1487,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8398", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From12", - "label":"From12", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8384", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "z_posLowRes", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8397", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From11", - "label":"From11", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8384", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "b_enaFOC", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8396", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From10", - "label":"From10", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8384", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "b_enaFOC", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8395", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From", - "label":"From", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8384", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "z_posHighRes", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", + "blocktype":"Product", "masktype":"" } }, @@ -1731,37 +1605,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8403", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From6", - "label":"From6", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8384", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "z_counter", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9665", "className":"Simulink.Constant", @@ -1812,40 +1655,50 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8394", - "className":"Simulink.Product", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8389", + "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"Divide3", - "label":"Divide3", + "name":"b_enaFOC", + "label":"b_enaFOC", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8384", "inspector":{ "params":[ - "Inputs", - "Multiplication", - "InputSameDT", + "Port", + "IconDisplay", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", - "SampleTime" + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" ], "values":[ - "**", - "Element-wise(.*)", - "off", + "5", + "Port number", "[]", "[]", - "Inherit: Same as first input", + "Inherit: auto", "off", - "Simplest", + "inherit", + "-1", + "Inherit", + "-1", + "auto", "off", - "1", - "All dimensions", - "-1" + "", + "on", + "off", + "off", + "off" ], "tabs":[ "Main", @@ -1855,7 +1708,7 @@ "tabs_idx":[ 0, 2, - 9 + 11 ] }, "viewer":{ @@ -1864,55 +1717,171 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Product", + "blocktype":"Inport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8389", - "className":"Simulink.Inport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8411", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"b_enaFOC", - "label":"b_enaFOC", + "name":"Goto5", + "label":"Goto5", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8384", "inspector":{ "params":[ - "Port", - "IconDisplay", + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "z_posHighRes", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8400", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From5", + "label":"From5", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8384", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "a_elecAngle", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8395", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From", + "label":"From", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8384", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "z_posHighRes", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8396", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From10", + "label":"From10", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8384", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "b_enaFOC", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8418", + "className":"Simulink.Switch", + "icon":"WebViewIcon3", + "name":"Switch2", + "label":"Switch2", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8384", + "inspector":{ + "params":[ + "Criteria", + "InputSameDT", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", + "RndMeth", + "SaturateOnIntegerOverflow", + "AllowDiffInputSizes", "SampleTime", - "SignalType", - "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" + "Threshold", + "ZeroCross" ], "values":[ - "5", - "Port number", + "u2 ~= 0", + "off", "[]", "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", + "Inherit: Inherit via back propagation", "off", - "", - "on", + "Zero", "off", "off", - "off" + "-1", + "0", + "on" ], "tabs":[ "Main", @@ -1921,8 +1890,8 @@ ], "tabs_idx":[ 0, - 2, - 11 + 1, + 9 ] }, "viewer":{ @@ -1931,7 +1900,38 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", + "blocktype":"Switch", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8405", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From9", + "label":"From9", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8384", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "z_dir", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", "masktype":"" } }, diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8384_d.png b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8384_d.png index 04951f6d0a676abecc590d2762a93ae156cd510f..5f9ac9873c1d832cd6916aba0939d2e0ec664ebd 100644 GIT binary patch literal 7886 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

C3W>2pfsHj9O6PZq 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 I%Ug&2KNo3tc>n+a diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8384_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8384_d.svg index 5c984f5..1d93f5f 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8384_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8384_d.svg @@ -296,7 +296,7 @@ - + @@ -585,7 +585,7 @@ - + @@ -705,7 +705,7 @@ - + @@ -1192,187 +1192,67 @@ - - - + + + - - + + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - T - - - - - - - - F + - - + + - + - - + + - + sfix16_En12 @@ -1384,68 +1264,44 @@ - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + 1 - - + + - - - + + + - - + + - - sfix16_En12 + + a_elecAngle @@ -1458,7 +1314,7 @@ - + @@ -1466,19 +1322,19 @@ - + - + - + - + @@ -1504,11 +1360,11 @@ - + - + sfix16_En12 @@ -1518,44 +1374,11 @@ - - - - - - - - - - - - - - - - - - [b_enaFOC] - - - - - - - - - - - - - - - - + @@ -1563,19 +1386,19 @@ - + - + - + - + @@ -1601,11 +1424,11 @@ - + - + int16 @@ -1617,29 +1440,44 @@ - - - + + + - - + + - - + + - - [z_posLowRes] + + [z_counter] - - + + + + + + + + + + + + + + + + + int16 @@ -1650,43 +1488,76 @@ - - - + + + - - + + - + + + + + + [b_enaFOC] + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - [z_dir] + + [z_posLowRes] - + - + - - + + - + int8 @@ -1698,44 +1569,44 @@ - - + + - + - + - - [z_counterRaw] + + [b_enaFOC] - + - - + + - - + + - - int16 + + boolean @@ -1746,44 +1617,44 @@ - - + + - + - + - - [a_elecAngle] + + [z_counterRaw] - + - - + + - - + + - - ufix16_En6 + + int16 @@ -1794,28 +1665,28 @@ - - + + - + - + - - [z_posHighRes] + + [z_posLowRes] - + @@ -1827,44 +1698,52 @@ - - - + + + - - + + - - + + - - 1 + + + + + + + + + + - - + + - - - + + + - - + + - - a_elecAngle + + sfix16_En14 @@ -1875,44 +1754,52 @@ - - - + + + - - + + - - + + - - [z_posLowRes] + + + + + + + + + + - - + + - - + + - - + + - - int8 + + ufix16_En6 @@ -1923,44 +1810,69 @@ - - - + + + - - + + - - + + - - [b_enaFOC] + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - boolean + + sfix16_En14 @@ -1971,44 +1883,44 @@ - - - + + + - - + + - - + + - - [b_enaFOC] + + 0 - - + + - - + + - - + + - - boolean + + sfix16_En12 @@ -2019,44 +1931,59 @@ - - - + + + - - + + - - + + - - [z_posHighRes] + + 5 - - - + + + + + + + + + + + + + + + + + b_enaFOC + - - + + - - + + - - sfix16_En12 + + boolean @@ -2067,52 +1994,29 @@ - - - + + + - - + + - - - - - - - - - - + + - - + + [z_posHighRes] - - - - - - - - - - - - - - - - - ufix16_En6 + + @@ -2123,69 +2027,44 @@ - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - + + [a_elecAngle] - - + + - - + + - - + + - - sfix16_En14 + + ufix16_En6 @@ -2196,44 +2075,44 @@ - - + + - + - + - - [z_counter] + + [z_posHighRes] - + - - + + - - + + - - int16 + + sfix16_En12 @@ -2244,44 +2123,44 @@ - - - + + + - - + + - - + + - - 0 + + [b_enaFOC] - - + + - - + + - - + + - - sfix16_En12 + + boolean @@ -2292,52 +2171,188 @@ - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - + + T + + + + + + + + F - - + + - + - - + + - - sfix16_En14 + + sfix16_En12 @@ -2348,59 +2363,44 @@ - - - + + + - - + + - - + + - - 5 + + [z_dir] - - - - - - - - - - - - - - - - - b_enaFOC + + - - + + - + - - boolean + + int8 @@ -2911,5 +2911,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8469_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8469_d.json index dab73e0..80449c9 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8469_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8469_d.json @@ -603,32 +603,63 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8525", - "className":"Simulink.Constant", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8527", + "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"t_errQual", - "label":"t_errQual", + "name":"b_errFlag", + "label":"b_errFlag", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", "inspector":{ "params":[ - "Value", - "VectorParams1D", - "SampleTime", + "Port", + "IconDisplay", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "FramePeriod" + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "t_errQual", - "on", - "inf", + "2", + "Port number", "[]", "[]", - "Inherit: Inherit via back propagation", + "Inherit: auto", "off", - "inf" + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "off", + "0", + "off", + "reset", + "off", + "0", + "", + [ + ], + "Dialog", + "Auto", + "off" ], "tabs":[ "Main", @@ -637,8 +668,8 @@ ], "tabs_idx":[ 0, - 3, - 7 + 2, + 11 ] }, "viewer":{ @@ -647,7 +678,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Constant", + "blocktype":"Outport", "masktype":"" } }, @@ -759,6 +790,65 @@ "masktype":"" } }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8520", + "className":"Simulink.Gain", + "icon":"WebViewIcon3", + "name":"g_Hb", + "label":"g_Hb", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", + "inspector":{ + "params":[ + "Gain", + "Multiplication", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "RndMeth", + "SaturateOnIntegerOverflow", + "ParamMin", + "ParamMax", + "ParamDataTypeStr", + "SampleTime" + ], + "values":[ + "2", + "Element-wise(K.*u)", + "[]", + "[]", + "Inherit: Same as input", + "off", + "Simplest", + "off", + "[]", + "[]", + "Inherit: Inherit via internal rule", + "-1" + ], + "tabs":[ + "Main", + "Signal Attributes", + "Parameter Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 2, + 8, + 11 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Gain", + "masktype":"" + } + }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8519", "className":"Either edge detection", @@ -857,11 +947,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9398", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8515", "className":"Simulink.Switch", "icon":"WebViewIcon3", - "name":"Switch3", - "label":"Switch3", + "name":"Switch1", + "label":"Switch1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", "inspector":{ "params":[ @@ -1018,73 +1108,38 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8527", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8510", + "className":"Simulink.RelationalOperator", "icon":"WebViewIcon3", - "name":"b_errFlag", - "label":"b_errFlag", + "name":"Relational Operator3", + "label":"Relational Operator3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", "inspector":{ "params":[ - "Port", - "IconDisplay", - "OutMin", - "OutMax", + "Operator", + "InputSameDT", "OutDataTypeStr", - "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", + "RndMeth", "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" + "ZeroCross" ], "values":[ - "2", - "Port number", - "[]", - "[]", - "Inherit: auto", + "==", "off", - "inherit", - "-1", - "Inherit", + "boolean", + "Simplest", "-1", - "auto", - "off", - "off", - "0", - "off", - "reset", - "off", - "0", - "", - [ - ], - "Dialog", - "Auto", - "off" + "on" ], "tabs":[ "Main", - "Signal Attributes", + "Data Type", "-Other" ], "tabs_idx":[ 0, - 2, - 11 + 1, + 4 ] }, "viewer":{ @@ -1093,47 +1148,43 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", + "blocktype":"RelationalOperator", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9405", - "className":"Simulink.Constant", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8508", + "className":"Simulink.RelationalOperator", "icon":"WebViewIcon3", - "name":"r_errInpTgtThres", - "label":"r_errInpTgtThres", + "name":"Relational Operator1", + "label":"Relational Operator1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", "inspector":{ "params":[ - "Value", - "VectorParams1D", - "SampleTime", - "OutMin", - "OutMax", + "Operator", + "InputSameDT", "OutDataTypeStr", - "LockScale", - "FramePeriod" + "RndMeth", + "SampleTime", + "ZeroCross" ], "values":[ - "r_errInpTgtThres", - "on", - "inf", - "[]", - "[]", - "Inherit: Inherit via back propagation", + "==", "off", - "inf" + "boolean", + "Simplest", + "-1", + "on" ], "tabs":[ "Main", - "Signal Attributes", + "Data Type", "-Other" ], "tabs_idx":[ 0, - 3, - 7 + 1, + 4 ] }, "viewer":{ @@ -1142,7 +1193,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Constant", + "blocktype":"RelationalOperator", "masktype":"" } }, @@ -1180,11 +1231,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8503", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8504", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto2", - "label":"Goto2", + "name":"Goto3", + "label":"Goto3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", "inspector":{ "params":[ @@ -1193,7 +1244,7 @@ "IconDisplay" ], "values":[ - "z_errCode", + "b_errFlag", "local", "Tag" ], @@ -1213,44 +1264,27 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8517", - "className":"Simulink.UnitDelay", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9397", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"UnitDelay", - "label":"UnitDelay", + "name":"Goto22", + "label":"Goto22", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", "inspector":{ "params":[ - "InitialCondition", - "InputProcessing", - "SampleTime", - "StateName", - "CodeGenStateStorageTypeQualifier", - "StateMustResolveToSignalObject", - "StateSignalObject", - "StateStorageClass" + "GotoTag", + "TagVisibility", + "IconDisplay" ], "values":[ - "0", - "Inherited", - "-1", - "", - "", - "off", - [ - ], - "Auto" + "b_motStdStill", + "local", + "Tag" ], "tabs":[ - "Main", - "State Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 3, - 4 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1258,26 +1292,86 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"UnitDelay", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9397", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8493", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto22", - "label":"Goto22", + "name":"From4", + "label":"From4", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "b_errFlag", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8491", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From2", + "label":"From2", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "z_errCodeRaw", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9400", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From1", + "label":"From1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ "b_motStdStill", - "local", "Tag" ], "tabs":[ @@ -1291,16 +1385,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8500", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8503", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto1", - "label":"Goto1", + "name":"Goto2", + "label":"Goto2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", "inspector":{ "params":[ @@ -1309,7 +1403,7 @@ "IconDisplay" ], "values":[ - "z_errCodeRaw", + "z_errCode", "local", "Tag" ], @@ -1329,11 +1423,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8515", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9398", "className":"Simulink.Switch", "icon":"WebViewIcon3", - "name":"Switch1", - "label":"Switch1", + "name":"Switch3", + "label":"Switch3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", "inspector":{ "params":[ @@ -1386,25 +1480,43 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8491", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8525", + "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"From2", - "label":"From2", + "name":"t_errQual", + "label":"t_errQual", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", "inspector":{ "params":[ - "GotoTag", - "IconDisplay" + "Value", + "VectorParams1D", + "SampleTime", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "FramePeriod" ], "values":[ - "z_errCodeRaw", - "Tag" + "t_errQual", + "on", + "inf", + "[]", + "[]", + "Inherit: Inherit via back propagation", + "off", + "inf" ], "tabs":[ - "Parameter Attributes" + "Main", + "Signal Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 3, + 7 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1412,7 +1524,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Constant", "masktype":"" } }, @@ -1448,42 +1560,108 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9407", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From15", - "label":"From15", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486", + "className":"Simulink.SubSystem", + "icon":"WebViewIcon4", + "name":"Debounce_Filter", + "label":"Debounce_Filter", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", "inspector":{ "params":[ - "GotoTag", - "IconDisplay" + "ShowPortLabels", + "Permissions", + "ErrorFcn", + "PermitHierarchicalResolution", + "TreatAsAtomicUnit", + "TreatAsGroupedWhenPropagatingVariantConditions", + "ActiveVariant", + "ActiveVariantBlock", + "AllowZeroVariantControls", + "BlockChoice", + "FunctionInterfaceSpec", + "FunctionWithSeparateData", + "GeneratePreprocessorConditionals", + "IsSubsystemVirtual", + "MemberBlocks", + "MinAlgLoopOccurrences", + "OverrideUsingVariant", + "PropExecContextOutsideSubsystem", + "PropagateVariantConditions", + "RTWFcnName", + "RTWFcnNameOpts", + "RTWFileName", + "RTWFileNameOpts", + "RTWMemSecDataConstants", + "RTWMemSecDataInternal", + "RTWMemSecDataParameters", + "RTWMemSecFuncExecute", + "RTWMemSecFuncInitTerm", + "RTWSystemCode", + "SystemSampleTime", + "TemplateBlock", + "Variant", + "VariantControl" ], "values":[ - "z_errCodePrev", - "Tag" + "FromPortIcon", + "ReadWrite", + "", + "All", + "on", + "on", + "", + "", + "off", + "", + "void_void", + "off", + "off", + "off", + "", + "off", + "", + "off", + "off", + "", + "Use subsystem name", + "", + "Auto", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Reusable function", + "-1", + "", + "off", + "" ], "tabs":[ - "Parameter Attributes" + "Main", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 6 + ] }, "viewer":{ - "jshandler":"webview/handlers/ElementHandler" + "jshandler":"webview/handlers/ContainerHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"SubSystem", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8493", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8494", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From4", - "label":"From4", + "name":"From5", + "label":"From5", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", "inspector":{ "params":[ @@ -1491,7 +1669,7 @@ "IconDisplay" ], "values":[ - "b_errFlag", + "z_errCodeRaw", "Tag" ], "tabs":[ @@ -1509,39 +1687,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8504", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto3", - "label":"Goto3", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", - "inspector":{ - "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" - ], - "values":[ - "b_errFlag", - "local", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Goto", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8484", "className":"Simulink.DataTypeConversion", @@ -1686,39 +1831,25 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8510", - "className":"Simulink.RelationalOperator", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9402", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Relational Operator3", - "label":"Relational Operator3", + "name":"From11", + "label":"From11", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", "inspector":{ "params":[ - "Operator", - "InputSameDT", - "OutDataTypeStr", - "RndMeth", - "SampleTime", - "ZeroCross" + "GotoTag", + "IconDisplay" ], "values":[ - "==", - "off", - "boolean", - "Simplest", - "-1", - "on" + "VqFinPrev", + "Tag" ], "tabs":[ - "Main", - "Data Type", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 1, - 4 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1726,16 +1857,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"RelationalOperator", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8508", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8509", "className":"Simulink.RelationalOperator", "icon":"WebViewIcon3", - "name":"Relational Operator1", - "label":"Relational Operator1", + "name":"Relational Operator2", + "label":"Relational Operator2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", "inspector":{ "params":[ @@ -1747,7 +1878,7 @@ "ZeroCross" ], "values":[ - "==", + "~=", "off", "boolean", "Simplest", @@ -1776,91 +1907,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8482", - "className":"Simulink.DataTypeConversion", - "icon":"WebViewIcon3", - "name":"Data Type Conversion", - "label":"Data Type Conversion", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", - "inspector":{ - "params":[ - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "ConvertRealWorld", - "RndMeth", - "SaturateOnIntegerOverflow", - "SampleTime" - ], - "values":[ - "[]", - "[]", - "uint8", - "off", - "Real World Value (RWV)", - "Floor", - "off", - "-1" - ], - "tabs":[ - "Parameter Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 7 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"DataTypeConversion", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9395", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto27", - "label":"Goto27", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", - "inspector":{ - "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" - ], - "values":[ - "VqFinPrev", - "local", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Goto", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8480", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8479", "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"CTRL_COMM2", - "label":"CTRL_COMM2", + "name":"CTRL_COMM1", + "label":"CTRL_COMM1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", "inspector":{ "params":[ @@ -1874,7 +1925,7 @@ "FramePeriod" ], "values":[ - "0", + "7", "on", "inf", "[]", @@ -1905,11 +1956,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8487", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9407", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From", - "label":"From", + "name":"From15", + "label":"From15", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", "inspector":{ "params":[ @@ -1917,7 +1968,7 @@ "IconDisplay" ], "values":[ - "z_posRaw", + "z_errCodePrev", "Tag" ], "tabs":[ @@ -1936,11 +1987,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8479", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8478", "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"CTRL_COMM1", - "label":"CTRL_COMM1", + "name":"CTRL_COMM", + "label":"CTRL_COMM", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", "inspector":{ "params":[ @@ -1954,7 +2005,7 @@ "FramePeriod" ], "values":[ - "7", + "0", "on", "inf", "[]", @@ -1984,65 +2035,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8520", - "className":"Simulink.Gain", - "icon":"WebViewIcon3", - "name":"g_Hb", - "label":"g_Hb", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", - "inspector":{ - "params":[ - "Gain", - "Multiplication", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "ParamMin", - "ParamMax", - "ParamDataTypeStr", - "SampleTime" - ], - "values":[ - "2", - "Element-wise(K.*u)", - "[]", - "[]", - "Inherit: Same as input", - "off", - "Simplest", - "off", - "[]", - "[]", - "Inherit: Inherit via internal rule", - "-1" - ], - "tabs":[ - "Main", - "Signal Attributes", - "Parameter Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 2, - 8, - 11 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Gain", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9410", "className":"Simulink.SFunction", @@ -2081,56 +2073,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8509", - "className":"Simulink.RelationalOperator", - "icon":"WebViewIcon3", - "name":"Relational Operator2", - "label":"Relational Operator2", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", - "inspector":{ - "params":[ - "Operator", - "InputSameDT", - "OutDataTypeStr", - "RndMeth", - "SampleTime", - "ZeroCross" - ], - "values":[ - "~=", - "off", - "boolean", - "Simplest", - "-1", - "on" - ], - "tabs":[ - "Main", - "Data Type", - "-Other" - ], - "tabs_idx":[ - 0, - 1, - 4 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"RelationalOperator", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8494", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8492", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From5", - "label":"From5", + "name":"From3", + "label":"From3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", "inspector":{ "params":[ @@ -2138,7 +2085,7 @@ "IconDisplay" ], "values":[ - "z_errCodeRaw", + "b_errFlag", "Tag" ], "tabs":[ @@ -2157,169 +2104,77 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9402", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8517", + "className":"Simulink.UnitDelay", "icon":"WebViewIcon3", - "name":"From11", - "label":"From11", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "VqFinPrev", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486", - "className":"Simulink.SubSystem", - "icon":"WebViewIcon4", - "name":"Debounce_Filter", - "label":"Debounce_Filter", + "name":"UnitDelay", + "label":"UnitDelay", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", "inspector":{ "params":[ - "ShowPortLabels", - "Permissions", - "ErrorFcn", - "PermitHierarchicalResolution", - "TreatAsAtomicUnit", - "TreatAsGroupedWhenPropagatingVariantConditions", - "ActiveVariant", - "ActiveVariantBlock", - "AllowZeroVariantControls", - "BlockChoice", - "FunctionInterfaceSpec", - "FunctionWithSeparateData", - "GeneratePreprocessorConditionals", - "IsSubsystemVirtual", - "MemberBlocks", - "MinAlgLoopOccurrences", - "OverrideUsingVariant", - "PropExecContextOutsideSubsystem", - "PropagateVariantConditions", - "RTWFcnName", - "RTWFcnNameOpts", - "RTWFileName", - "RTWFileNameOpts", - "RTWMemSecDataConstants", - "RTWMemSecDataInternal", - "RTWMemSecDataParameters", - "RTWMemSecFuncExecute", - "RTWMemSecFuncInitTerm", - "RTWSystemCode", - "SystemSampleTime", - "TemplateBlock", - "Variant", - "VariantControl" - ], - "values":[ - "FromPortIcon", - "ReadWrite", - "", - "All", - "on", - "on", - "", - "", - "off", - "", - "void_void", - "off", - "off", - "off", - "", - "off", - "", - "off", - "off", - "", - "Use subsystem name", - "", - "Auto", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Reusable function", + "InitialCondition", + "InputProcessing", + "SampleTime", + "StateName", + "CodeGenStateStorageTypeQualifier", + "StateMustResolveToSignalObject", + "StateSignalObject", + "StateStorageClass" + ], + "values":[ + "0", + "Inherited", "-1", "", + "", "off", - "" + [ + ], + "Auto" ], "tabs":[ "Main", + "State Attributes", "-Other" ], "tabs_idx":[ 0, - 6 + 3, + 4 ] }, "viewer":{ - "jshandler":"webview/handlers/ContainerHandler" + "jshandler":"webview/handlers/ElementHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"SubSystem", + "blocktype":"UnitDelay", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9403", - "className":"Simulink.Abs", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9395", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Abs4", - "label":"Abs4", + "name":"Goto27", + "label":"Goto27", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", "inspector":{ "params":[ - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "SampleTime", - "ZeroCross" + "GotoTag", + "TagVisibility", + "IconDisplay" ], "values":[ - "[]", - "[]", - "Inherit: Same as input", - "off", - "Floor", - "off", - "-1", - "on" + "VqFinPrev", + "local", + "Tag" ], "tabs":[ - "Signal Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 6 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -2327,25 +2182,27 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Abs", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8474", - "className":"Simulink.ActionPort", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8500", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Action Port", - "label":"Action Port", + "name":"Goto1", + "label":"Goto1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", "inspector":{ "params":[ - "InitializeStates", - "PropagateVarSize" + "GotoTag", + "TagVisibility", + "IconDisplay" ], "values":[ - "reset", - "Only when execution is resumed" + "z_errCodeRaw", + "local", + "Tag" ], "tabs":[ "Parameter Attributes" @@ -2358,25 +2215,25 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"ActionPort", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8492", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8474", + "className":"Simulink.ActionPort", "icon":"WebViewIcon3", - "name":"From3", - "label":"From3", + "name":"Action Port", + "label":"Action Port", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", "inspector":{ "params":[ - "GotoTag", - "IconDisplay" + "InitializeStates", + "PropagateVarSize" ], "values":[ - "b_errFlag", - "Tag" + "reset", + "Only when execution is resumed" ], "tabs":[ "Parameter Attributes" @@ -2389,7 +2246,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"ActionPort", "masktype":"" } }, @@ -2528,11 +2385,60 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9400", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9405", + "className":"Simulink.Constant", + "icon":"WebViewIcon3", + "name":"r_errInpTgtThres", + "label":"r_errInpTgtThres", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", + "inspector":{ + "params":[ + "Value", + "VectorParams1D", + "SampleTime", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "FramePeriod" + ], + "values":[ + "r_errInpTgtThres", + "on", + "inf", + "[]", + "[]", + "Inherit: Inherit via back propagation", + "off", + "inf" + ], + "tabs":[ + "Main", + "Signal Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 3, + 7 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Constant", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8487", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From1", - "label":"From1", + "name":"From", + "label":"From", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", "inspector":{ "params":[ @@ -2540,7 +2446,7 @@ "IconDisplay" ], "values":[ - "b_motStdStill", + "z_posRaw", "Tag" ], "tabs":[ @@ -2559,11 +2465,105 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8478", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9403", + "className":"Simulink.Abs", + "icon":"WebViewIcon3", + "name":"Abs4", + "label":"Abs4", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", + "inspector":{ + "params":[ + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "RndMeth", + "SaturateOnIntegerOverflow", + "SampleTime", + "ZeroCross" + ], + "values":[ + "[]", + "[]", + "Inherit: Same as input", + "off", + "Floor", + "off", + "-1", + "on" + ], + "tabs":[ + "Signal Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 6 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Abs", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8482", + "className":"Simulink.DataTypeConversion", + "icon":"WebViewIcon3", + "name":"Data Type Conversion", + "label":"Data Type Conversion", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", + "inspector":{ + "params":[ + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "ConvertRealWorld", + "RndMeth", + "SaturateOnIntegerOverflow", + "SampleTime" + ], + "values":[ + "[]", + "[]", + "uint8", + "off", + "Real World Value (RWV)", + "Floor", + "off", + "-1" + ], + "tabs":[ + "Parameter Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 7 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"DataTypeConversion", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8480", "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"CTRL_COMM", - "label":"CTRL_COMM", + "name":"CTRL_COMM2", + "label":"CTRL_COMM2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8469", "inspector":{ "params":[ diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8469_d.png b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8469_d.png index 94c10d588ecac14f039f204dc437b554d6d6e063..095256b70ad6febb5af67ac05ecc1091fcaf766e 100644 GIT binary patch delta 3129 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 - - - + + + - - + + - + - - t_errQual + + 2 - - + + - - - + + + - + - - uint16 + + b_errFlag @@ -566,6 +566,54 @@ + + + + + + + + + + + + + + + + + + 2 + + + + + + + + + + + + + + + + + + + + + + uint8 + + + + + + + + @@ -578,83 +626,83 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -672,11 +720,11 @@ - + - + boolean @@ -684,29 +732,29 @@ - + - + - + - + - + - + @@ -720,180 +768,188 @@ - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - ~= 0 + + + + + + + + + + + + + + + + + + + + + + + + + + T + + + + + + + + F - - + + - - + + - - + + - - boolean + + uint8 @@ -914,51 +970,51 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -976,11 +1032,11 @@ - + - + uint8 @@ -1002,19 +1058,19 @@ - + - + - + - + @@ -1040,11 +1096,11 @@ - + - + boolean @@ -1056,44 +1112,68 @@ - - - + + + - - + + - + - - + + - - 2 + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - + + + - - + + - - b_errFlag + + boolean @@ -1104,59 +1184,68 @@ - - - + + + - - + + - + - - + + - - r_errInpTgtThres + + + + + + + + + + + + + + + + + + - - - - + - - - - - - - - - - - r_errInpTgtThres + + + + + + + - - + + - - + + - - int16 + + boolean @@ -1177,11 +1266,11 @@ - + - + [z_errCodePrev] @@ -1200,28 +1289,28 @@ - - + + - + - + - - [z_errCode] + + [b_errFlag] - + @@ -1233,91 +1322,77 @@ - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + [b_motStdStill] - + + + + - - + + + + + + + + + - - - - - - + + - - - - - + + - - Ini=0 + + [b_errFlag] + + + + + + + - - + + - - + + - - uint8 + + boolean @@ -1328,29 +1403,44 @@ - - - + + + - - + + - - + + - - [b_motStdStill] + + [z_errCodeRaw] - - + + + + + + + + + + + + + + + + + uint8 @@ -1361,29 +1451,44 @@ - - - + + + - - + + - - + + - - [z_errCodeRaw] + + [b_motStdStill] - - + + + + + + + + + + + + + + + + + boolean @@ -1394,188 +1499,213 @@ - - - + + + - - + + - - + + - - + + [z_errCode] + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - T + + - - + + - - F + + ~= 0 - - + + - - + + - - + + - - uint8 + + boolean @@ -1586,44 +1716,44 @@ - - - + + + - - + + - - + + - - [z_errCodeRaw] + + t_errQual - - + + - - + + - - + + - - uint8 + + uint16 @@ -1644,11 +1774,11 @@ - + - + [z_errCodePrev] @@ -1666,11 +1796,11 @@ - + - + uint8 @@ -1682,508 +1812,370 @@ - - - + + + - - + + - - + + - - [z_errCodePrev] - - - - - - - - - - - - - - + + u - - + + - - uint8 + + tAcv - - - - - - - - - - - - - - - - - - - - + + - - [b_errFlag] - - - - - - - - - - - - - - + + tDeacv - - + + - - boolean + + y - - - - - - - - - - - - - - - - - - - - + + - - [b_errFlag] + + - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - + + + + + + + - - - - - - + + + + + + + - - + + - - uint8 + + - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - + + + + + + + - - - - - - + + + + + + + - - + + - - uint8 + + - - - - - - - - - - - - - - - - - - - - + + - - 1 + + - - - - - - + + + + + + + - - - - - - + + + + + + + - - + + - - boolean + + - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - + + + + + + + - - - - - - + + + + + + + - - + + - - boolean + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - - - - + + + + - - - + + + + + + + + + + + Debounce_Filter - + - - + + - + boolean + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - + + - - - - - - - - - + - - + + - - + + [z_errCodeRaw] - - - - - - - - - - + + - + - - + + - + uint8 @@ -2195,76 +2187,59 @@ - - - + + + - - + + - + - - + + - - [VqFinPrev] + + - - - - - - + + + + + + + - - - - - - - - - - - - + + - - - - - - - 0 - - - + + - + - - + + - + uint8 @@ -2276,91 +2251,59 @@ - - - + + + - - + + - + - - + + - - [z_posRaw] - - - - - - - - - - - - - - + + - - + + - - uint8 + + - - - - - - - - - - - - + + - - - - - - - 7 - - - + + - + - - + + - + uint8 @@ -2372,44 +2315,44 @@ - - - + + + - - + + - - + + - - 2 + + 1 - - + + - - + + - - + + - - uint8 + + boolean @@ -2420,60 +2363,44 @@ - - - + + + - - + + - - - - - - Bitwise - - - - - - - - AND - - - - + + - - 0x4 + + [VqFinPrev] - - + + - + - - + + - - uint8 + + int16 @@ -2494,19 +2421,19 @@ - + - + - + - + @@ -2532,11 +2459,11 @@ - + - + boolean @@ -2548,43 +2475,43 @@ - - - + + + - - + + - - + + - - [z_errCodeRaw] + + 7 - - + + - + - - + + - + uint8 @@ -2596,371 +2523,204 @@ - - + + - + - - + + - - [VqFinPrev] + + [z_errCodePrev] - + - + - - - - - - int16 - - - - - - - - - - - - - - - - - - - - - - - - - - u - - - - - - - - tAcv - - - - - - - - tDeacv - - - - - - - - y - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + uint8 + + + + + + + + + + + + + + + + + + - - + + - - + + 0 + + + + + + + + + + + + + + - - + + - - + + uint8 + + + + + + + + + + + + + + + + + + - - + + - - + + Bitwise - - + + - - + + AND - - + + - - + + 0x4 - - + + - - - + + + - - + + - - Debounce_Filter + + uint8 - - - - + + + + + + + + + + + + + + + - - + + - - boolean + + [b_errFlag] - + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - + + boolean @@ -2971,46 +2731,46 @@ - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -3024,23 +2784,38 @@ - - + + + + + + + + + + + + + + + + + Ini=0 - + - - + + - - int16 + + uint8 @@ -3051,44 +2826,62 @@ - - - + + + - - + + - - + + - - if { } + + [VqFinPrev] - - + + - - - - + + + + + + + + + + + + + + + - - + + - - Action Port + + [z_errCodeRaw] + + + + + + + @@ -3097,46 +2890,46 @@ - - - - - + + + + + - - + + - - + + - - [b_errFlag] + + if { } - - + + - - - + + + - - + + - - boolean + + Action Port @@ -3157,11 +2950,11 @@ - + - + 3 @@ -3179,11 +2972,11 @@ - + - + VqFinPrev @@ -3194,11 +2987,11 @@ - + - + int16 @@ -3220,11 +3013,11 @@ - + - + 2 @@ -3242,11 +3035,11 @@ - + - + b_motStdStill @@ -3257,11 +3050,11 @@ - + - + boolean @@ -3273,44 +3066,251 @@ - - + + + + + + + + + + + + + + + + r_errInpTgtThres + + + + + + + + + + + + + + + + + + + + + + r_errInpTgtThres + + + + + + + + + + + + + + + int16 + + + + + + + + + + + + - + - + - - [b_motStdStill] + + [z_posRaw] - + - - + + + + + + + + + + uint8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int16 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - boolean + + uint8 @@ -3321,11 +3321,11 @@ - - + + - + @@ -3335,29 +3335,29 @@ - + 0 - + - + - + - + uint8 @@ -4005,5 +4005,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2423_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2423_d.json index 8cf0d47..557cf0f 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2423_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2423_d.json @@ -49,11 +49,42 @@ ] }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2426", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2425", + "className":"Simulink.ActionPort", "icon":"WebViewIcon3", - "name":"yDefault", - "label":"yDefault", + "name":"Action Port", + "label":"Action Port", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2423", + "inspector":{ + "params":[ + "InitializeStates", + "PropagateVarSize" + ], + "values":[ + "held", + "Only when execution is resumed" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"ActionPort", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2424", + "className":"Simulink.Inport", + "icon":"WebViewIcon3", + "name":"yPrev", + "label":"yPrev", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2423", "inspector":{ "params":[ @@ -69,17 +100,11 @@ "SampleTime", "SignalType", "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" ], "values":[ "1", @@ -94,17 +119,10 @@ "-1", "auto", "off", + "", + "on", "off", - "[]", - "off", - "held", "off", - "0", - "", - [ - ], - "Dialog", - "Auto", "off" ], "tabs":[ @@ -124,47 +142,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2425", - "className":"Simulink.ActionPort", - "icon":"WebViewIcon3", - "name":"Action Port", - "label":"Action Port", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2423", - "inspector":{ - "params":[ - "InitializeStates", - "PropagateVarSize" - ], - "values":[ - "held", - "Only when execution is resumed" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"ActionPort", + "blocktype":"Inport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2424", - "className":"Simulink.Inport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2426", + "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"yPrev", - "label":"yPrev", + "name":"yDefault", + "label":"yDefault", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2423", "inspector":{ "params":[ @@ -180,11 +167,17 @@ "SampleTime", "SignalType", "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ "1", @@ -199,10 +192,17 @@ "-1", "auto", "off", - "", - "on", "off", + "[]", + "off", + "held", "off", + "0", + "", + [ + ], + "Dialog", + "Auto", "off" ], "tabs":[ @@ -222,7 +222,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", + "blocktype":"Outport", "masktype":"" } }, diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2423_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2423_d.svg index 32155d2..6d5875c 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2423_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2423_d.svg @@ -32,44 +32,44 @@ - - - + + + - - + + - + - - 1 + + else { } - - + + - - + + - + - - yDefault + + Action Port @@ -80,44 +80,59 @@ - - - + + + - - + + - + - - else { } + + 1 - - + + - - + + - + - - Action Port + + yPrev + + + + + + + + + + + + + + + boolean @@ -128,59 +143,44 @@ - - + + - + - + - + 1 - + - - - - - - - - - - yPrev - - - - - - - + + - + - - boolean + + yDefault @@ -205,5 +205,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2428_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2428_d.json index 35300e1..d4700ec 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2428_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2428_d.json @@ -1,37 +1,49 @@ [ { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2445", - "className":"Simulink.RelationalOperator", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2446", + "className":"Simulink.Switch", "icon":"WebViewIcon3", - "name":"Relational Operator2", - "label":"Relational Operator2", + "name":"Switch2", + "label":"Switch2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2428", "inspector":{ "params":[ - "Operator", + "Criteria", "InputSameDT", + "OutMin", + "OutMax", "OutDataTypeStr", + "LockScale", "RndMeth", + "SaturateOnIntegerOverflow", + "AllowDiffInputSizes", "SampleTime", + "Threshold", "ZeroCross" ], "values":[ - ">", + "u2 ~= 0", + "off", + "[]", + "[]", + "Inherit: Inherit via back propagation", + "off", + "Zero", + "off", "off", - "boolean", - "Simplest", "-1", + "0", "on" ], "tabs":[ "Main", - "Data Type", + "Signal Attributes", "-Other" ], "tabs_idx":[ 0, 1, - 4 + 9 ] }, "viewer":{ @@ -40,7 +52,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"RelationalOperator", + "blocktype":"Switch", "masktype":"" } }, @@ -125,21 +137,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2443", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2438", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto17", - "label":"Goto17", + "name":"From2", + "label":"From2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2428", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "yPrev", - "local", + "yDeacv", "Tag" ], "tabs":[ @@ -153,26 +163,24 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2442", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2436", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto1", - "label":"Goto1", + "name":"From1", + "label":"From1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2428", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "yDeacv", - "local", + "yPrev", "Tag" ], "tabs":[ @@ -186,16 +194,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2441", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2443", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto", - "label":"Goto", + "name":"Goto17", + "label":"Goto17", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2428", "inspector":{ "params":[ @@ -204,7 +212,7 @@ "IconDisplay" ], "values":[ - "tDeacv", + "yPrev", "local", "Tag" ], @@ -223,37 +231,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2439", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From7", - "label":"From7", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2428", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "tDeacv", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2437", "className":"Simulink.From", @@ -286,42 +263,40 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2440", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From8", - "label":"From8", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2435", + "className":"Simulink.SubSystem", + "icon":"WebViewIcon4", + "name":"Counter", + "label":"Counter", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2428", "inspector":{ "params":[ - "GotoTag", - "IconDisplay" + "z_cntInit" ], "values":[ - "b_cntRst", - "Tag" + "0" ], "tabs":[ - "Parameter Attributes" ], - "tabs_idx":0 + "tabs_idx":[ + ] }, "viewer":{ - "jshandler":"webview/handlers/ElementHandler" + "jshandler":"webview/handlers/ContainerHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"SubSystem", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2433", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2434", "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"Constant1", - "label":"Constant1", + "name":"Constant6", + "label":"Constant6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2428", "inspector":{ "params":[ @@ -335,12 +310,12 @@ "FramePeriod" ], "values":[ - "0", + "1", "on", "inf", "[]", "[]", - "Inherit: Inherit via back propagation", + "uint16", "off", "inf" ], @@ -366,42 +341,69 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2434", - "className":"Simulink.Constant", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2439", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Constant6", - "label":"Constant6", + "name":"From7", + "label":"From7", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2428", "inspector":{ "params":[ - "Value", - "VectorParams1D", - "SampleTime", - "OutMin", - "OutMax", + "GotoTag", + "IconDisplay" + ], + "values":[ + "tDeacv", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2445", + "className":"Simulink.RelationalOperator", + "icon":"WebViewIcon3", + "name":"Relational Operator2", + "label":"Relational Operator2", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2428", + "inspector":{ + "params":[ + "Operator", + "InputSameDT", "OutDataTypeStr", - "LockScale", - "FramePeriod" + "RndMeth", + "SampleTime", + "ZeroCross" ], "values":[ - "1", - "on", - "inf", - "[]", - "[]", - "uint16", + ">", "off", - "inf" + "boolean", + "Simplest", + "-1", + "on" ], "tabs":[ "Main", - "Signal Attributes", + "Data Type", "-Other" ], "tabs_idx":[ 0, - 3, - 7 + 1, + 4 ] }, "viewer":{ @@ -410,25 +412,27 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Constant", + "blocktype":"RelationalOperator", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2432", - "className":"Simulink.ActionPort", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2441", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Action Port", - "label":"Action Port", + "name":"Goto", + "label":"Goto", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2428", "inspector":{ "params":[ - "InitializeStates", - "PropagateVarSize" + "GotoTag", + "TagVisibility", + "IconDisplay" ], "values":[ - "held", - "Only when execution is resumed" + "tDeacv", + "local", + "Tag" ], "tabs":[ "Parameter Attributes" @@ -441,56 +445,30 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"ActionPort", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2446", - "className":"Simulink.Switch", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2432", + "className":"Simulink.ActionPort", "icon":"WebViewIcon3", - "name":"Switch2", - "label":"Switch2", + "name":"Action Port", + "label":"Action Port", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2428", "inspector":{ "params":[ - "Criteria", - "InputSameDT", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "AllowDiffInputSizes", - "SampleTime", - "Threshold", - "ZeroCross" + "InitializeStates", + "PropagateVarSize" ], "values":[ - "u2 ~= 0", - "off", - "[]", - "[]", - "Inherit: Inherit via back propagation", - "off", - "Zero", - "off", - "off", - "-1", - "0", - "on" + "held", + "Only when execution is resumed" ], "tabs":[ - "Main", - "Signal Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 1, - 9 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -498,53 +476,57 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Switch", + "blocktype":"ActionPort", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2435", - "className":"Simulink.SubSystem", - "icon":"WebViewIcon4", - "name":"Counter", - "label":"Counter", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2440", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From8", + "label":"From8", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2428", "inspector":{ "params":[ - "z_cntInit" + "GotoTag", + "IconDisplay" ], "values":[ - "0" + "b_cntRst", + "Tag" ], "tabs":[ + "Parameter Attributes" ], - "tabs_idx":[ - ] + "tabs_idx":0 }, "viewer":{ - "jshandler":"webview/handlers/ContainerHandler" + "jshandler":"webview/handlers/ElementHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"SubSystem", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2438", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2444", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From2", - "label":"From2", + "name":"Goto2", + "label":"Goto2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2428", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "yDeacv", + "b_cntRst", + "local", "Tag" ], "tabs":[ @@ -558,16 +540,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2430", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2431", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"b_cntRst", - "label":"b_cntRst", + "name":"yPrev", + "label":"yPrev", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2428", "inspector":{ "params":[ @@ -590,7 +572,7 @@ "OutputFunctionCall" ], "values":[ - "2", + "3", "Port number", "[]", "[]", @@ -630,42 +612,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2436", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From1", - "label":"From1", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2428", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "yPrev", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2429", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2430", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"tDeacv", - "label":"tDeacv", + "name":"b_cntRst", + "label":"b_cntRst", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2428", "inspector":{ "params":[ @@ -688,7 +639,7 @@ "OutputFunctionCall" ], "values":[ - "1", + "2", "Port number", "[]", "[]", @@ -728,11 +679,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2444", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2442", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto2", - "label":"Goto2", + "name":"Goto1", + "label":"Goto1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2428", "inspector":{ "params":[ @@ -741,7 +692,7 @@ "IconDisplay" ], "values":[ - "b_cntRst", + "yDeacv", "local", "Tag" ], @@ -761,11 +712,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2431", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2429", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"yPrev", - "label":"yPrev", + "name":"tDeacv", + "label":"tDeacv", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2428", "inspector":{ "params":[ @@ -788,7 +739,7 @@ "OutputFunctionCall" ], "values":[ - "3", + "1", "Port number", "[]", "[]", @@ -827,6 +778,55 @@ "masktype":"" } }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2433", + "className":"Simulink.Constant", + "icon":"WebViewIcon3", + "name":"Constant1", + "label":"Constant1", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2428", + "inspector":{ + "params":[ + "Value", + "VectorParams1D", + "SampleTime", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "FramePeriod" + ], + "values":[ + "0", + "on", + "inf", + "[]", + "[]", + "Inherit: Inherit via back propagation", + "off", + "inf" + ], + "tabs":[ + "Main", + "Signal Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 3, + 7 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Constant", + "masktype":"" + } + }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2438#out:1", "className":"Simulink.Line", diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2428_d.png b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2428_d.png index 73a9444469c47b4a63d675bf38428b023d571ccd..e0806c9b524c3abbfbf176cc97af045de64af6bf 100644 GIT binary patch literal 6879 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 literal 6891 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 diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2428_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2428_d.svg index 10d6011..1de4efb 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2428_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2428_d.svg @@ -13,59 +13,187 @@ - - - + + + - - + + - + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + T + + + + + + + + F - - - - - - - - - - + + - + - - + + - + boolean @@ -87,11 +215,11 @@ - + - + 1 @@ -109,11 +237,11 @@ - + - + yDeacv @@ -125,29 +253,44 @@ - - - + + + - - + + - - + + - - [yPrev] + + [yDeacv] - - + + + + + + + + + + + + + + + + + boolean @@ -158,62 +301,44 @@ - - - + + + - - + + - + - - [yDeacv] + + [yPrev] - - + + - - - - - - - - - - - - - - - + + + + - - + + - - [tDeacv] - - - - - - - + + boolean @@ -224,44 +349,29 @@ - - - + + + - - + + - - + + - - [tDeacv] + + [yPrev] - - - - - - - - - - - - - - - - - uint16 + + @@ -282,11 +392,11 @@ - + - + [tDeacv] @@ -304,11 +414,11 @@ - + - + uint16 @@ -320,92 +430,235 @@ - - - + + + - - + + + + + + + + + inc + + + + + + + + max + - + - - [b_cntRst] + + rst + + + + + + + + cnt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - + + + - - + + - - boolean + + Counter - - - - - - - - - - - - - - - + + + + - - + + - - 0 - - - - - - - + + uint16 - - - - + - - + + - - boolean + + + + + + + + + + + + + + + + + + + + + + @@ -426,11 +679,11 @@ - + - + 1 @@ -448,11 +701,11 @@ - + - + uint16 @@ -464,44 +717,44 @@ - - - + + + - - + + - - + + - - elseif { } + + [tDeacv] - - + + - - - + + + - - + + - - Action Port + + uint16 @@ -512,187 +765,59 @@ - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - T + + - - + + - - F + + + + + + + + + + - - + + - + - - + + - + boolean @@ -704,235 +829,158 @@ - - - + + + - - + + - - - - - - inc - - - - - - - - max - - - - - - - - rst - - - - - - - - cnt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + [tDeacv] - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + elseif { } - - + + - - + + - - + + - - Counter + + Action Port + + + + + + + + + + + + + + + + + + + + + + + + + + [b_cntRst] + + + + + + + - - + + - - + + - - uint16 + + boolean - + + + + + + + + + + + + + + + - - + + - - + + [b_cntRst] - - - - - - - - - - - - - - - - - - + + + + + @@ -943,43 +991,58 @@ - - - + + + - - + + - - + + - - [yDeacv] + + 3 - - + + + + + + + + + + + + + + + + + yPrev - + - - + + - + boolean @@ -1001,11 +1064,11 @@ - + - + 2 @@ -1023,11 +1086,11 @@ - + - + b_cntRst @@ -1038,11 +1101,11 @@ - + - + boolean @@ -1054,44 +1117,29 @@ - - - + + + - - + + - - + + - - [yPrev] + + [yDeacv] - - - - - - - - - - - - - - - - - boolean + + @@ -1112,11 +1160,11 @@ - + - + 1 @@ -1134,11 +1182,11 @@ - + - + tDeacv @@ -1149,11 +1197,11 @@ - + - + uint16 @@ -1165,91 +1213,43 @@ - - - - - - - - - - - - - - - - [b_cntRst] - - - - - - - - - - - - - - - - - - - - + + + - - + + - - + + - - 3 + + 0 - - - - - - - - - - - - - - - - - yPrev + + - + - + - + boolean @@ -1443,5 +1443,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2435_2515_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2435_2515_d.svg index 5a27541..283b6b3 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2435_2515_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2435_2515_d.svg @@ -486,32 +486,32 @@ - - - + + + - + - - Ini=initVal + + uint16 - - - + + + - + - - uint16 + + Ini=initVal @@ -592,5 +592,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2435_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2435_d.json index 5e305ac..444311e 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2435_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2435_d.json @@ -288,11 +288,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2435:2412", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2435:2413", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"inc", - "label":"inc", + "name":"max", + "label":"max", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2435", "inspector":{ "params":[ @@ -315,7 +315,7 @@ "OutputFunctionCall" ], "values":[ - "1", + "2", "Port number", "[]", "[]", @@ -355,11 +355,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2435:2413", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2435:2412", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"max", - "label":"max", + "name":"inc", + "label":"inc", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2435", "inspector":{ "params":[ @@ -382,7 +382,7 @@ "OutputFunctionCall" ], "values":[ - "2", + "1", "Port number", "[]", "[]", diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2435_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2435_d.svg index 8409215..ff51857 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2435_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2435_d.svg @@ -63,7 +63,7 @@ - + @@ -128,32 +128,32 @@ - - - + + + - + - - uint16 + + Ini=z_cntInit - - - + + + - + - - Ini=z_cntInit + + uint16 @@ -270,7 +270,7 @@ - + @@ -395,11 +395,11 @@ - - + + - + @@ -409,44 +409,44 @@ - - 1 + + 2 - + - - + + - + - - inc + + max - + - + - + uint16 @@ -458,11 +458,11 @@ - - + + - + @@ -472,44 +472,44 @@ - - 2 + + 1 - + - - + + - + - - max + + inc - + - + - + uint16 @@ -625,5 +625,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2473_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2473_d.json index ffbe09e..d638710 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2473_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2473_d.json @@ -57,99 +57,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2490", - "className":"Simulink.RelationalOperator", - "icon":"WebViewIcon3", - "name":"Relational Operator2", - "label":"Relational Operator2", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2473", - "inspector":{ - "params":[ - "Operator", - "InputSameDT", - "OutDataTypeStr", - "RndMeth", - "SampleTime", - "ZeroCross" - ], - "values":[ - ">", - "off", - "boolean", - "Simplest", - "-1", - "on" - ], - "tabs":[ - "Main", - "Data Type", - "-Other" - ], - "tabs_idx":[ - 0, - 1, - 4 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"RelationalOperator", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2487", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto1", - "label":"Goto1", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2473", - "inspector":{ - "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" - ], - "values":[ - "yAcv", - "local", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Goto", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2486", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2484", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto", - "label":"Goto", + "name":"From7", + "label":"From7", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2473", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ "tAcv", - "local", "Tag" ], "tabs":[ @@ -163,16 +83,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2485", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2483", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From8", - "label":"From8", + "name":"From2", + "label":"From2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2473", "inspector":{ "params":[ @@ -180,7 +100,7 @@ "IconDisplay" ], "values":[ - "b_cntRst", + "yAcv", "Tag" ], "tabs":[ @@ -279,11 +199,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2484", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2481", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From7", - "label":"From7", + "name":"From1", + "label":"From1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2473", "inspector":{ "params":[ @@ -291,7 +211,7 @@ "IconDisplay" ], "values":[ - "tAcv", + "yPrev", "Tag" ], "tabs":[ @@ -310,19 +230,21 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2483", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2488", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From2", - "label":"From2", + "name":"Goto17", + "label":"Goto17", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2473", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "yAcv", + "yPrev", + "local", "Tag" ], "tabs":[ @@ -336,24 +258,26 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2481", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2486", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From1", - "label":"From1", + "name":"Goto", + "label":"Goto", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2473", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "yPrev", + "tAcv", + "local", "Tag" ], "tabs":[ @@ -367,25 +291,25 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2482", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2477", + "className":"Simulink.ActionPort", "icon":"WebViewIcon3", - "name":"From10", - "label":"From10", + "name":"Action Port", + "label":"Action Port", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2473", "inspector":{ "params":[ - "GotoTag", - "IconDisplay" + "InitializeStates", + "PropagateVarSize" ], "values":[ - "tAcv", - "Tag" + "held", + "Only when execution is resumed" ], "tabs":[ "Parameter Attributes" @@ -398,48 +322,30 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"ActionPort", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2478", - "className":"Simulink.Constant", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2482", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Constant1", - "label":"Constant1", + "name":"From10", + "label":"From10", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2473", "inspector":{ "params":[ - "Value", - "VectorParams1D", - "SampleTime", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "FramePeriod" + "GotoTag", + "IconDisplay" ], "values":[ - "1", - "on", - "inf", - "[]", - "[]", - "Inherit: Inherit via back propagation", - "off", - "inf" + "tAcv", + "Tag" ], "tabs":[ - "Main", - "Signal Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 3, - 7 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -447,81 +353,59 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Constant", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2489", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto2", - "label":"Goto2", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2480", + "className":"Simulink.SubSystem", + "icon":"WebViewIcon4", + "name":"Counter", + "label":"Counter", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2473", "inspector":{ "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" + "z_cntInit" ], "values":[ - "b_cntRst", - "local", - "Tag" + "0" ], "tabs":[ - "Parameter Attributes" ], - "tabs_idx":0 + "tabs_idx":[ + ] }, "viewer":{ - "jshandler":"webview/handlers/ElementHandler" + "jshandler":"webview/handlers/ContainerHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"SubSystem", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2479", - "className":"Simulink.Constant", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2485", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Constant6", - "label":"Constant6", + "name":"From8", + "label":"From8", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2473", "inspector":{ "params":[ - "Value", - "VectorParams1D", - "SampleTime", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "FramePeriod" + "GotoTag", + "IconDisplay" ], "values":[ - "1", - "on", - "inf", - "[]", - "[]", - "uint16", - "off", - "inf" + "b_cntRst", + "Tag" ], "tabs":[ - "Main", - "Signal Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 3, - 7 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -529,25 +413,27 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Constant", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2477", - "className":"Simulink.ActionPort", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2487", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Action Port", - "label":"Action Port", + "name":"Goto1", + "label":"Goto1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2473", "inspector":{ "params":[ - "InitializeStates", - "PropagateVarSize" + "GotoTag", + "TagVisibility", + "IconDisplay" ], "values":[ - "held", - "Only when execution is resumed" + "yAcv", + "local", + "Tag" ], "tabs":[ "Parameter Attributes" @@ -560,61 +446,115 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"ActionPort", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2480", - "className":"Simulink.SubSystem", - "icon":"WebViewIcon4", - "name":"Counter", - "label":"Counter", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2476", + "className":"Simulink.Inport", + "icon":"WebViewIcon3", + "name":"b_errPrev", + "label":"b_errPrev", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2473", "inspector":{ "params":[ - "z_cntInit" + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" ], "values":[ - "0" + "3", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "", + "on", + "off", + "off", + "off" ], "tabs":[ + "Main", + "Signal Attributes", + "-Other" ], "tabs_idx":[ + 0, + 2, + 11 ] }, "viewer":{ - "jshandler":"webview/handlers/ContainerHandler" + "jshandler":"webview/handlers/ElementHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"SubSystem", + "blocktype":"Inport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2488", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2478", + "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"Goto17", - "label":"Goto17", + "name":"Constant1", + "label":"Constant1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2473", "inspector":{ "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" + "Value", + "VectorParams1D", + "SampleTime", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "FramePeriod" ], "values":[ - "yPrev", - "local", - "Tag" + "1", + "on", + "inf", + "[]", + "[]", + "Inherit: Inherit via back propagation", + "off", + "inf" ], "tabs":[ - "Parameter Attributes" + "Main", + "Signal Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 3, + 7 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -622,7 +562,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"Constant", "masktype":"" } }, @@ -693,6 +633,51 @@ "masktype":"" } }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2490", + "className":"Simulink.RelationalOperator", + "icon":"WebViewIcon3", + "name":"Relational Operator2", + "label":"Relational Operator2", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2473", + "inspector":{ + "params":[ + "Operator", + "InputSameDT", + "OutDataTypeStr", + "RndMeth", + "SampleTime", + "ZeroCross" + ], + "values":[ + ">", + "off", + "boolean", + "Simplest", + "-1", + "on" + ], + "tabs":[ + "Main", + "Data Type", + "-Other" + ], + "tabs_idx":[ + 0, + 1, + 4 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"RelationalOperator", + "masktype":"" + } + }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2474", "className":"Simulink.Inport", @@ -761,50 +746,32 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2476", - "className":"Simulink.Inport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2479", + "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"b_errPrev", - "label":"b_errPrev", + "name":"Constant6", + "label":"Constant6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2473", "inspector":{ "params":[ - "Port", - "IconDisplay", + "Value", + "VectorParams1D", + "SampleTime", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" + "FramePeriod" ], "values":[ - "3", - "Port number", + "1", + "on", + "inf", "[]", "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "", - "on", - "off", + "uint16", "off", - "off" + "inf" ], "tabs":[ "Main", @@ -813,8 +780,8 @@ ], "tabs_idx":[ 0, - 2, - 11 + 3, + 7 ] }, "viewer":{ @@ -823,7 +790,40 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", + "blocktype":"Constant", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2489", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto2", + "label":"Goto2", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2473", + "inspector":{ + "params":[ + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "b_cntRst", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", "masktype":"" } }, diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2473_d.png b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2473_d.png index 57009d5109eb44a68b6e0bcef84964bf6e39402d..5717ff094ee40cbab1e1dc1217594573d3200b6a 100644 GIT binary patch literal 6787 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 K!OPTDQoE8Ho`H1euzuvJU+2I)4xnz;lV= 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 diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2473_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2473_d.svg index d69268a..88059ca 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2473_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2473_d.svg @@ -205,126 +205,44 @@ - - - + + + - - + + - + - - - - - - - - - + - - + + [tAcv] - - - - - - - - - - + + - - - - - - - - - - boolean - - - - - - - - - - - - - - - - - - - - - - - - - - [yAcv] - - - - - - - + + - - - - - - - - - - - - - - - - - - - - + + - - [tAcv] - - - - - - - + + uint16 @@ -335,43 +253,43 @@ - - + + - + - + - - [b_cntRst] + + [yAcv] - + - + - - + + - + boolean @@ -393,11 +311,11 @@ - + - + 1 @@ -415,11 +333,11 @@ - + - + yAcv @@ -431,44 +349,44 @@ - - + + - + - + - - [tAcv] + + [yPrev] - + - - + + - - + + - - uint16 + + boolean @@ -479,44 +397,62 @@ - - - + + + - - + + - - + + - - [yAcv] + + [yPrev] - - + + - - - - + + + + + + + + + + + + + + + - - + + - - boolean + + [tAcv] + + + + + + + @@ -527,44 +463,44 @@ - - - + + + - - + + - - + + - - [yPrev] + + if { } - - + + - - - + + + - - + + - - boolean + + Action Port @@ -585,11 +521,11 @@ - + - + [tAcv] @@ -607,11 +543,11 @@ - + - + uint16 @@ -623,342 +559,165 @@ - - - + + + - - + + - - + + - - 1 - - - - - - - + + inc - - - - - - - - - - - - - - boolean - - - - - - - - - - - - - - - - - - - - - - - - - - [b_cntRst] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - uint16 - - - - - - - - - - - - - - - - - - - - - - - - - - if { } - - - - - - - - - - - - - - - - - - - - - - Action Port - - - - - - - - - - - - - - - - - - - - - - - - - - inc - - - + - + max - + - + rst - + - + cnt - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -976,11 +735,11 @@ - + - + Counter @@ -991,11 +750,11 @@ - + - + uint16 @@ -1003,29 +762,29 @@ - + - + - + - + - + - + @@ -1039,28 +798,76 @@ - - + + + + + + + + + + + + + + + + [b_cntRst] + + + + + + + + + + + + + + + + + + + + + + boolean + + + + + + + + + + + + - + - + - - [yPrev] + + [yAcv] - + @@ -1070,6 +877,117 @@ + + + + + + + + + + + + + + + + + + 3 + + + + + + + + + + + + + + + + + + + + + + b_errPrev + + + + + + + + + + + + + + + boolean + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + boolean + + + + + + + + @@ -1082,11 +1000,11 @@ - + - + 2 @@ -1104,11 +1022,11 @@ - + - + b_cntRst @@ -1119,11 +1037,75 @@ - + - + + boolean + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + boolean @@ -1145,11 +1127,11 @@ - + - + 1 @@ -1167,11 +1149,11 @@ - + - + tAcv @@ -1182,11 +1164,11 @@ - + - + uint16 @@ -1198,59 +1180,77 @@ - - - + + + - - + + - - + + - - 3 + + 1 - - + + - - - + + + - - + + - - b_errPrev + + uint16 - - - - + + + + + + + + + + + + + + + - + - - boolean + + [b_cntRst] + + + + + + + @@ -1443,5 +1443,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2480_2515_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2480_2515_d.svg index 0a30442..b0d0e8d 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2480_2515_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2480_2515_d.svg @@ -592,5 +592,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2480_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2480_d.json index 903fe2e..a4f3c99 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2480_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2480_d.json @@ -80,42 +80,79 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2480:2416", - "className":"Simulink.Sum", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2480:2515", + "className":"Simulink.SubSystem", + "icon":"WebViewIcon4", + "name":"rst_Delay", + "label":"rst_Delay", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2480", + "inspector":{ + "params":[ + "initVal" + ], + "values":[ + "z_cntInit" + ], + "tabs":[ + ], + "tabs_idx":[ + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ContainerHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"SubSystem", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2480:2414", + "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"Sum1", - "label":"Sum1", + "name":"rst", + "label":"rst", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2480", "inspector":{ "params":[ - "IconShape", - "Inputs", - "InputSameDT", - "AccumDataTypeStr", + "Port", + "IconDisplay", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", - "SampleTime" + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" ], "values":[ - "round", - "|++", - "on", - "Inherit: Same as first input", + "3", + "Port number", "[]", "[]", - "Inherit: Same as first input", + "Inherit: auto", "off", - "Simplest", + "inherit", + "-1", + "Inherit", + "-1", + "auto", "off", - "1", - "All dimensions", - "-1" + "", + "on", + "off", + "off", + "off" ], "tabs":[ "Main", @@ -125,7 +162,7 @@ "tabs_idx":[ 0, 2, - 10 + 11 ] }, "viewer":{ @@ -134,7 +171,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Sum", + "blocktype":"Inport", "masktype":"" } }, @@ -258,35 +295,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2480:2515", - "className":"Simulink.SubSystem", - "icon":"WebViewIcon4", - "name":"rst_Delay", - "label":"rst_Delay", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2480", - "inspector":{ - "params":[ - "initVal" - ], - "values":[ - "z_cntInit" - ], - "tabs":[ - ], - "tabs_idx":[ - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ContainerHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"SubSystem", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2480:2412", "className":"Simulink.Inport", @@ -355,50 +363,42 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2480:2414", - "className":"Simulink.Inport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2480:2416", + "className":"Simulink.Sum", "icon":"WebViewIcon3", - "name":"rst", - "label":"rst", + "name":"Sum1", + "label":"Sum1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2480", "inspector":{ "params":[ - "Port", - "IconDisplay", + "IconShape", + "Inputs", + "InputSameDT", + "AccumDataTypeStr", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" + "RndMeth", + "SaturateOnIntegerOverflow", + "CollapseDim", + "CollapseMode", + "SampleTime" ], "values":[ - "3", - "Port number", + "round", + "|++", + "on", + "Inherit: Same as first input", "[]", "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "", - "on", + "Inherit: Same as first input", "off", + "Simplest", "off", - "off" + "1", + "All dimensions", + "-1" ], "tabs":[ "Main", @@ -408,7 +408,7 @@ "tabs_idx":[ 0, 2, - 11 + 10 ] }, "viewer":{ @@ -417,7 +417,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", + "blocktype":"Sum", "masktype":"" } }, diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2480_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2480_d.svg index f029d93..aff5487 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2480_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2480_d.svg @@ -61,72 +61,198 @@ - - - + + + - - + + - + - - + + u - + - - + + rst - + - - + + y - + - - + + 1 + + + + + + + + z + + + + + + + + - - + + + + + + + + + + + + + + + + + Ini=z_cntInit - - + + - - + + - + uint16 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + + + + + + + + + + + + + + + + + + + + + + rst + + + + + + + + + + + + + + + boolean + + + + @@ -135,7 +261,7 @@ - + @@ -143,19 +269,19 @@ - + - + - + - + @@ -181,11 +307,11 @@ - + - + uint16 @@ -207,11 +333,11 @@ - + - + 2 @@ -229,11 +355,11 @@ - + - + max @@ -244,151 +370,16 @@ - + - - uint16 - - - - - - - - - - - - - - - - - - - - - - - - - - u - - - - - - - - rst - - - - - - - - y - - - - - - - - 1 - - - - - - - - z - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Ini=z_cntInit - - - - - - - - - - - - - - + uint16 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -405,11 +396,11 @@ - + - + 1 @@ -427,11 +418,11 @@ - + - + inc @@ -442,11 +433,11 @@ - + - + uint16 @@ -458,59 +449,68 @@ - - - + + + - - + + - - + + - - 3 + + - - - - - - + + + + + + + - - - - - - + + + + + + + - + - - rst + + + + + + + + + - - + + - + - - boolean + + uint16 @@ -625,5 +625,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2507_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2507_d.svg index 86bd7fa..b114a9f 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2507_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2507_d.svg @@ -345,5 +345,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_d.json index 448acf0..4be4c1f 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_d.json @@ -79,6 +79,153 @@ "masktype":"" } }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2509", + "className":"Simulink.UnitDelay", + "icon":"WebViewIcon3", + "name":"UnitDelay", + "label":"UnitDelay", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", + "inspector":{ + "params":[ + "InitialCondition", + "InputProcessing", + "SampleTime", + "StateName", + "CodeGenStateStorageTypeQualifier", + "StateMustResolveToSignalObject", + "StateSignalObject", + "StateStorageClass" + ], + "values":[ + "0", + "Inherited", + "-1", + "", + "", + "off", + [ + ], + "Auto" + ], + "tabs":[ + "Main", + "State Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 3, + 4 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"UnitDelay", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2473", + "className":"Simulink.SubSystem", + "icon":"WebViewIcon1", + "name":"Qualification", + "label":"Qualification", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", + "inspector":{ + "params":[ + "ShowPortLabels", + "Permissions", + "ErrorFcn", + "PermitHierarchicalResolution", + "TreatAsAtomicUnit", + "TreatAsGroupedWhenPropagatingVariantConditions", + "ActiveVariant", + "ActiveVariantBlock", + "AllowZeroVariantControls", + "BlockChoice", + "FunctionInterfaceSpec", + "FunctionWithSeparateData", + "GeneratePreprocessorConditionals", + "IsSubsystemVirtual", + "MemberBlocks", + "MinAlgLoopOccurrences", + "OverrideUsingVariant", + "PropExecContextOutsideSubsystem", + "PropagateVariantConditions", + "RTWFcnName", + "RTWFcnNameOpts", + "RTWFileName", + "RTWFileNameOpts", + "RTWMemSecDataConstants", + "RTWMemSecDataInternal", + "RTWMemSecDataParameters", + "RTWMemSecFuncExecute", + "RTWMemSecFuncInitTerm", + "RTWSystemCode", + "SystemSampleTime", + "TemplateBlock", + "Variant", + "VariantControl" + ], + "values":[ + "FromPortIcon", + "ReadWrite", + "", + "All", + "off", + "on", + "", + "", + "off", + "", + "void_void", + "off", + "off", + "off", + "", + "off", + "", + "off", + "off", + "", + "Auto", + "", + "Auto", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Auto", + "-1", + "", + "off", + "" + ], + "tabs":[ + "Main", + "-Other" + ], + "tabs_idx":[ + 0, + 6 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ContainerHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"SubSystem", + "masktype":"" + } + }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2472", "className":"Simulink.Merge", @@ -119,11 +266,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2463", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2465", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto2", - "label":"Goto2", + "name":"Goto4", + "label":"Goto4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", "inspector":{ "params":[ @@ -132,7 +279,40 @@ "IconDisplay" ], "values":[ - "u", + "tAcv", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2462", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto1", + "label":"Goto1", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", + "inspector":{ + "params":[ + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "y", "local", "Tag" ], @@ -247,19 +427,21 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2458", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2464", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From7", - "label":"From7", + "name":"Goto3", + "label":"Goto3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ "yPrev", + "local", "Tag" ], "tabs":[ @@ -273,16 +455,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2456", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2457", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From5", - "label":"From5", + "name":"From6", + "label":"From6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", "inspector":{ "params":[ @@ -290,7 +472,7 @@ "IconDisplay" ], "values":[ - "u", + "y", "Tag" ], "tabs":[ @@ -309,11 +491,44 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2455", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2463", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto2", + "label":"Goto2", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", + "inspector":{ + "params":[ + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "u", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2458", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From4", - "label":"From4", + "name":"From7", + "label":"From7", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", "inspector":{ "params":[ @@ -340,11 +555,54 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2454", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2467", + "className":"Simulink.If", + "icon":"WebViewIcon3", + "name":"If2", + "label":"If2", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", + "inspector":{ + "params":[ + "NumInputs", + "IfExpression", + "ElseIfExpressions", + "ShowElse", + "SampleTime", + "ZeroCross" + ], + "values":[ + "2", + "u1 ~= 0", + "u2 ~=0", + "on", + "-1", + "on" + ], + "tabs":[ + "Parameter Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 4 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"If", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2452", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From3", - "label":"From3", + "name":"From12", + "label":"From12", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", "inspector":{ "params":[ @@ -352,7 +610,7 @@ "IconDisplay" ], "values":[ - "u", + "tDeacv", "Tag" ], "tabs":[ @@ -371,11 +629,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2453", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2449", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From2", - "label":"From2", + "name":"From1", + "label":"From1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", "inspector":{ "params":[ @@ -383,7 +641,7 @@ "IconDisplay" ], "values":[ - "u", + "tAcv", "Tag" ], "tabs":[ @@ -402,21 +660,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2465", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2453", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto4", - "label":"Goto4", + "name":"From2", + "label":"From2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "tAcv", - "local", + "u", "Tag" ], "tabs":[ @@ -430,16 +686,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2450", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2448", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From10", - "label":"From10", + "name":"From", + "label":"From", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", "inspector":{ "params":[ @@ -447,7 +703,7 @@ "IconDisplay" ], "values":[ - "b_cntRst", + "yPrev", "Tag" ], "tabs":[ @@ -466,44 +722,25 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2509", - "className":"Simulink.UnitDelay", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2455", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"UnitDelay", - "label":"UnitDelay", + "name":"From4", + "label":"From4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", "inspector":{ "params":[ - "InitialCondition", - "InputProcessing", - "SampleTime", - "StateName", - "CodeGenStateStorageTypeQualifier", - "StateMustResolveToSignalObject", - "StateSignalObject", - "StateStorageClass" + "GotoTag", + "IconDisplay" ], "values":[ - "0", - "Inherited", - "-1", - "", - "", - "off", - [ - ], - "Auto" + "yPrev", + "Tag" ], "tabs":[ - "Main", - "State Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 3, - 4 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -511,113 +748,47 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"UnitDelay", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2507", - "className":"Either edge detection", - "icon":"WebViewIcon4", - "name":"either_edge", - "label":"either_edge", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2451", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From11", + "label":"From11", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", "inspector":{ "params":[ - "ShowPortLabels", - "Permissions", - "ErrorFcn", - "PermitHierarchicalResolution", - "TreatAsAtomicUnit", - "TreatAsGroupedWhenPropagatingVariantConditions", - "ActiveVariant", - "ActiveVariantBlock", - "AllowZeroVariantControls", - "BlockChoice", - "FunctionInterfaceSpec", - "FunctionWithSeparateData", - "GeneratePreprocessorConditionals", - "IsSubsystemVirtual", - "MemberBlocks", - "MinAlgLoopOccurrences", - "OverrideUsingVariant", - "PropExecContextOutsideSubsystem", - "PropagateVariantConditions", - "RTWFcnName", - "RTWFcnNameOpts", - "RTWFileName", - "RTWFileNameOpts", - "RTWMemSecDataConstants", - "RTWMemSecDataInternal", - "RTWMemSecDataParameters", - "RTWMemSecFuncExecute", - "RTWMemSecFuncInitTerm", - "RTWSystemCode", - "SystemSampleTime", - "TemplateBlock", - "Variant", - "VariantControl" + "GotoTag", + "IconDisplay" ], "values":[ - "FromPortIcon", - "ReadWrite", - "", - "All", - "on", - "on", - "", - "", - "off", - "", - "void_void", - "off", - "off", - "off", - "", - "off", - "", - "off", - "off", - "", - "Auto", - "", - "Auto", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Auto", - "-1", - "", - "off", - "" + "yPrev", + "Tag" ], "tabs":[ - "Main", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 6 - ] + "tabs_idx":0 }, "viewer":{ - "jshandler":"webview/handlers/ContainerHandler" + "jshandler":"webview/handlers/ElementHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"SubSystem", - "masktype":"Either edge detection" + "blocktype":"From", + "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2428", - "className":"Simulink.SubSystem", - "icon":"WebViewIcon1", - "name":"Dequalification", - "label":"Dequalification", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2507", + "className":"Either edge detection", + "icon":"WebViewIcon4", + "name":"either_edge", + "label":"either_edge", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", "inspector":{ "params":[ @@ -660,7 +831,7 @@ "ReadWrite", "", "All", - "off", + "on", "on", "", "", @@ -700,54 +871,21 @@ ] }, "viewer":{ - "jshandler":"webview/handlers/ContainerHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"SubSystem", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2462", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto1", - "label":"Goto1", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", - "inspector":{ - "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" - ], - "values":[ - "y", - "local", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" + "jshandler":"webview/handlers/ContainerHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", - "masktype":"" + "blocktype":"SubSystem", + "masktype":"Either edge detection" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2423", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2428", "className":"Simulink.SubSystem", "icon":"WebViewIcon1", - "name":"Default", - "label":"Default", + "name":"Dequalification", + "label":"Dequalification", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", "inspector":{ "params":[ @@ -840,54 +978,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2467", - "className":"Simulink.If", - "icon":"WebViewIcon3", - "name":"If2", - "label":"If2", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", - "inspector":{ - "params":[ - "NumInputs", - "IfExpression", - "ElseIfExpressions", - "ShowElse", - "SampleTime", - "ZeroCross" - ], - "values":[ - "2", - "u1 ~= 0", - "u2 ~=0", - "on", - "-1", - "on" - ], - "tabs":[ - "Parameter Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 4 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"If", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2473", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2423", "className":"Simulink.SubSystem", "icon":"WebViewIcon1", - "name":"Qualification", - "label":"Qualification", + "name":"Default", + "label":"Default", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", "inspector":{ "params":[ @@ -980,11 +1075,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2448", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2454", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From", - "label":"From", + "name":"From3", + "label":"From3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", "inspector":{ "params":[ @@ -992,7 +1087,38 @@ "IconDisplay" ], "values":[ - "yPrev", + "u", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2450", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From10", + "label":"From10", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "b_cntRst", "Tag" ], "tabs":[ @@ -1111,106 +1237,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2451", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From11", - "label":"From11", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "yPrev", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2457", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From6", - "label":"From6", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "y", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2464", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto3", - "label":"Goto3", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", - "inspector":{ - "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" - ], - "values":[ - "yPrev", - "local", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Goto", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2452", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2456", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From12", - "label":"From12", + "name":"From5", + "label":"From5", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", "inspector":{ "params":[ @@ -1218,7 +1249,7 @@ "IconDisplay" ], "values":[ - "tDeacv", + "u", "Tag" ], "tabs":[ @@ -1370,37 +1401,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2449", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From1", - "label":"From1", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "tAcv", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2471", "className":"Simulink.Logic", @@ -1447,11 +1447,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2469", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2470", "className":"Simulink.Logic", "icon":"WebViewIcon3", - "name":"Logical Operator2", - "label":"Logical Operator2", + "name":"Logical Operator3", + "label":"Logical Operator3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", "inspector":{ "params":[ @@ -1492,11 +1492,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2468", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2469", "className":"Simulink.Logic", "icon":"WebViewIcon3", - "name":"Logical Operator1", - "label":"Logical Operator1", + "name":"Logical Operator2", + "label":"Logical Operator2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", "inspector":{ "params":[ @@ -1508,7 +1508,7 @@ "SampleTime" ], "values":[ - "NOT", + "AND", "2", "rectangular", "off", @@ -1537,11 +1537,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2470", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8486:2468", "className":"Simulink.Logic", "icon":"WebViewIcon3", - "name":"Logical Operator3", - "label":"Logical Operator3", + "name":"Logical Operator1", + "label":"Logical Operator1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8486", "inspector":{ "params":[ @@ -1553,7 +1553,7 @@ "SampleTime" ], "values":[ - "AND", + "NOT", "2", "rectangular", "off", diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_d.png b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_d.png index 552ae2687237409777a537b876d4c007e8e71efe..c9576825b655a985f4985ac353c8674344d09394 100644 GIT binary patch literal 6785 zcmd^ki91wn{Pzr5Vk~9JmQ=QE(IZJ?4Iw0Zb_(;@w-`H(A!L8-TS$^E>lhk?NeD67 zx6oL#lNjrJd*Anu_+8iUy385ZICIXqzxVh1*+lEs_7BU}W91f6Wk>b_6G-r>!41(<|3jw!pSZAOG47-HG?mvdTK#nBX==f#%f-dj6rZ zifL+;O6`x!Dt8crmP4}qZahl`rMa>Vq|WC@IY&1RdWAX_UjE?s&6;_n(*C3~wB+>g zxc}@p^o+0t??*A~Cl*dI@V!fZszjTl485*OO%=h+$;zzqLhpao2Oqvohk42QZSWKl zKX^Py(wNr6K2l*`Fzj?Gw&Sgy@YZlu zh|!KhwJB_HaInWMU%e>2XTfa5S%WMI@83o9Hm>$^23c4$y@`XGV}9X}LyniOoPFBe z-9?_A>{q+bD9GmOBI?bAS?L-rBt8r~bvGy+%u*txxu#x@S|)coI5_AT8KFOZ6d|5i zRbA21(a|gY!pY0Y*>-Rs+tk#gXJR5W&f8P76?|z;^+x#0%D;7Wbs7{0e<$4^Rv43h z50`=EY_=Rpgd7mA6;@YYdf>apERVtCuLa?ryP zvnJP}%PT}pDqA=AZ>DM~7wan*=-GtsD~PGKLm*`pyiWD+XPsj=lx0vR*1>Gog8y9N z4LPt4Iwdb<-0KZ(&0tVzgRo3YR-fP%BX!;XbJ>ifS>a8fF~_)Bb}yA7 z`{nm}@`C?9BL;Kn%voQqIW0MB}Av$`D$tA{CR(t-tvGmp>(6vvl$%w^VH;WBZ&xAS66X4IXUA$ zZ5MB0-iC6utr|ceORnn!+-39%Rm;5d)qX$Q&dkIhoysYFze3d?ZBMlXL&7xpUlkNw zU-psn;1LR#{&9Lr-d#%47JO=8Kp9W+m~Dj;N#RP6+}zw`l#j}YzAKLMIm@U==T*Nh zg(`&79T??1{nmN@n#qRigk6ndeF%G$O-eU^&3O5z$32R&-$%#CqksSI@cC*d)$Jyg zt9$!w@KOz(8!O{1wPpF)E)o){T;CQZ9v4^kQ%Oa{k|uW#XsJ1%Z z87Lb@{@cS251OZi@bM-*x3z`B`=8s{QADd!wEnUZ3XORrlYL$`-4d4R^w6E#taJrM zMU(-!kYPoh>-WkKN>(^v441i47H6$o1ITHkmh?Lzc&=nfJ%(1E2V$`t$TIPE+Bvl;EZH;U*l3<;J0aheF)XNuqjx0 zaoWiHsW&4dBRYcu;xeLsZf?4F_CEa3Q=&VVPkF*`kFl!qdxqa}$L+C~8;iQga7%MB za72cKm26BmKee__0G)`lVgk*WW{+Nxlgnl7esLK_pvAC6M@Y&63_~}upjDvtW^txs z0BtX(YEh+X2}~K64THgatzHC<15Wie9O@itqpN$f_zac*`W&8GTE=M$qI~2S;z@KN zr6%oe827Pjs2BzfNsceQy>Ad>jjUMf5YR)0$84fl@d*2801xUK8e%q{2&VKnb)uLQ zXw&QgE~AfJWU}=<|E(R@I;9vH8Y=(2u77ZHYL8zuHmrt5tKL93JDdAtZYYHOY zIXpTlFccwE}uiK$YUd_oCjUG_3o>%tIq-A96 zdeX!f-1OBxjD-!2jQj#1n=G#(&4nh+wXUtXwCxzhlK?XejE`drzqQUBFW#eijB8gr51Pth#+Gv-hWh3MwWp$`uOzK}dK`WB6D>6~s6n1}-d zd{f_tO+;DgBw;r*d#GQpeuBO&E><&*??yS=kl8g z#vtaG(O0Zm_f|)V6B98AX}Y|nr-1Uew>@n)J=VsgEbt-0;)+@2nVFmgv8lQxYV_Lz zDVhM8HSdY$>OOz*LiJ#+udlCNdB3ZRR;7TM@tVTt_X~Ysg6; zO-5#Bcqi!`4+mGi003KGFwp&?E#V#s7Rv?j`HsJS?QZ zE}5E|GEbN2m(ocXHcSjor~Bq>73h}&DWcYCMDDaa=Vssa2{ej^snW^TOfUu7={W%E zOP9Pq?Uz6A-*KwWZTl^>V?+5{w^Mz)Q+?V3PDoI2Aj9M=zs~{f{Xna@W)>i8E_+iJ zyuYZRKzZ4Yfr;t4udi_1ekZ7;-YJI4~%_`Ib1DgjrzFCVG0|DjULKX!2>&J?8R(7^pm1PAq zTE#hUnogLH?frn~_rAlObo?987s9FE3N6czFV$)bQsylc7?+_prsF;sicI-0<(5rs zXemL*FL>QF_6i6LoZCi5WJ0M?P{11JxVyU7cy@X;T3Vlqrci;1<;g4hEbC#jpLz=O z*{cX(xGAY#q~cEgP6E})9!mv=E(Cv#hKW~In6>@jpi%FsDS&CPg5|w{Ph#}=ncIfU zi|iL^*qt@J*w8S7QV~%@gw7k|ZG^^7ilowM73(*S6k4cV@AQ=9ifgwEH8L_vzL=AJ z3EV~gU>4PWCUp7Y+?Sj_2Np{L(WyQr(tF_?mT<1srfvs$A^3a>3c9W=vw)GNWKlXz zTUKTYB?~X-dNV00sq0O0n+|GVrC+~(o!v%i1yq7+@?TcAw$6X&EEq+S^?CWSprs|G zxUXD;HIc41IRKfeg%&q&c)f^NNS_M8S;5bacLiKmbNzmTjcN_2q_M$F77!8qjyv?x z>P3w{EBbBSG2EPB=Rj?3BUhJ~g~7cNHTYY1;bQFczqVzYnw!-`n?NNJI&c0rt*fow z3S@Mxi$N)CKtRA-$^>KTA zF+p^5WW$RdCA2%#UL-6^q?gV9-1t%a7|19!$6NpDuQlAFNIrAsVvHh=jR~9W@pHiJ z+}t)I%d*O&jwRB17F76{!+?wve}$=ISHx7hZ}c7}-Fy^*i#DtHT9O|U1Ki=<<4kMH znjaJ&!S6&VZ87$T41~?qi{XzwZ2rvtO8F4tATDr6)6B&&8ZJUsE zt+L@5w|`)$kr88Jbl35I+gXW0DTkjMB&@_K$o z2J`zV;3RFU<8vSQQG~s#w68F9QHl}2_q^V0&O#@15kl*arpwUj3OKo))DYWU)^;?E945j>6)Onj!v74%uNm$d(Ie8VW6QH)9iuW zo82XY$9PLb42+IOf%@UkPBy`HUU%35UJmRYw9u;00_{k)#o|$u>+06l*8rV>AK7@q zPh6mFy%~D1)p+M8c6fgQJgAwuxrvWw|CEOAb-*a+MlcZ|xb<68u}I)fCf)ItNZsm< zp&!MMt}=FhjQV%w<8SOK&bUnN`Sa(*;&?AhF;rXF(I(!SgZ#s(etC2Ak)vY?BB5?V zpr))E=OGKjOvag5`BNpx|IJ`d)Dz|}zqB=&f698kuhi7kvmUYo)6?SQecr2A)d2q0 zJC8xn-S%#tJuQM z?i8WXpyDsU#jQ_bNIwHNQ{fF$Mmk<7Msi@{)apN(ZwA&GsZq2SD3W^;044(AMr`V? zHr2jkX9P3}ma$i#t(oQ)<`J*|g=ke34$hsUljPzsFq5EkKn3pIsjrbvP&oXsM#4%U z+^PtkIeM?k^n|q}nk~fv5QC8(Gg#a#-c8VSc6NShZrfuIFiEmNBsh(Qic z&TzsUq^E|K8U>P>*Qz%T{$lVrH`i}EIYUnM_Bd5!2Q@z?>(Fa-aY2^Rs>+1J;}At)te{c?5W zmC5l$moQ(pk}Qt|`9>ZkC1u9{%R2zGJZ?!8viy?bLPt)IeNXSNuk;!wf-Md+%!$2n zJ4SFk^@bnW5oeXKxaa^hxOP=^CkfQ{*{-u#jTk+^TM;akp2yBFbrmR9QzZ2xq9ZHE z&hb!3aIj`oIjkcQWGSSfQUj2OfCdEuS~mDl8g$3^Jb8L>Q8b#W4v6=hR6UXWejzh8 z0UpNZo$*(}d4=oW`}*e2^(Rxv7K#mTf+hOw(|H3e_jFW{l}@>8lz!M3{oZxS`V{-| zqgGAdV9ArB=H|d*iP=p2qKB>+J7Hje8LX?k;&@_rxPA9HD{Yd(Cr+g%d>f9J=;XuL zIYv;_T-<`=7x7!zRj!{-=k#AznMZ0 zC_$70SZB@m0a!*nuYA*2@p21R<{LY>&ETpjoe#p&)4BgY61@^zjx`lC{`6fjlsu%R z=J?}clCq`P|GcbJy)72G182g|00SKc(9z54YoaX&2aFmRw4u>alx;>$J=#Sf`TVQ| zBJn9OZ2(+>pB83am?V1eL;;@E6TSfU({-}psYX{*Qqb;6h+=X#|L@gRV0?SH7$E?@ z!LEWy)DTSBIy$j;Wg55OpE(7Ny>{FpzF{hH+~q6qsMu^}nM;~VptM6yFNs&qC*?Ep z5@4N1L3ik)gLvkCzmSKnM!R7YU3s`l$2kR}Zj8`1ThT(Fuv`WySBpauh>b z<{5Yuf(|14HGykC-Nz@Ko`y^X?@uE)ar=Pf&R1sR;sQIj_#kcy2Q!s=+!9faPNt~I zn!XCs5y~Cl@UB!;RA`h80%xltdv0AojNBFf{!$IEmK=T8?&oF23gg)K?*%~$-2L2Z zhp-K@!)hB@-;Js0nX}V6q7x_(LS6x(?VJY(*eU_sQ@Px)wfze8m`U+B z#<g4gsnNQX`vu+NKHqkgd`J`^un1x1hL~ z3bJ)TN}z;%wz?g1vT98#h~gFb*F2&;oo!ti5TM6Q@V>2$&D(iW%DtH&mfQH_8fHca zXe{KfXrZ@*D`~_RDkJ?d@ydX~A$&<1VyhhdGh<^M8@T=dtF3*$qYTU063(S$z%%zh z%S8#lKo4Ag^(WT)nBwZytH|~GQN*EKsp+ar?-A+R83$x*H~)+WMws31yw+L$yb~du zZYZtUHq_b*0fwl@ibkKde|L)hWCRUcn-KYAWuO2eA_v&Yw^Z? zYUpYG$L_T?F}rHhag)1JTyemvqNd$$n?LAUG?e6vNK{L`XQ-w@RS?E}gLDQh2#C}9 V{=ljU{7(s@siv!1sbcf${{YC6)d>Iq literal 6796 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 - - - + + + - - + + - + - - + + - + - - + + + + + + + + + + + + + + + + + + @@ -98,56 +114,38 @@ - - + + - + - - + + - + boolean - - - - - - - - - - - - - - + + + - - + + - - [u] - - - - - - - + + Ini=0 @@ -158,77 +156,136 @@ - - - + + + - - + + + + + + + + - - + + - - [b_cntRst] + + tAcv + + + + + + + + b_cntRst + + + + + + + + b_errPrev + + + + + + + + yAcv + + + + + + + + if { } - - + + + + + + + + - - - - - - - - - - - - - - - + - - + + + + + + + + + + + - - [yPrev] + + Qualification - - - + + + + + + + + + + + + + + + + + boolean - - + + + + + + + + - - + + - - boolean + + action @@ -239,43 +296,65 @@ - - - + + + + + + + + + - - + + - + - - + + - - [b_cntRst] + + + + + + + + + + + + + + + + + + - - + + - + - - + + - + boolean @@ -287,44 +366,29 @@ - - - + + + - - + + - - + + - - [yPrev] + + [tAcv] - - - - - - - - - - - - - - - - - boolean + + @@ -335,44 +399,62 @@ - - - + + + - - + + - - + + - - [u] + + [y] - - + + - - - - + + + + + + + + + + + + + + + - - + + - - boolean + + [b_cntRst] + + + + + + + @@ -383,43 +465,43 @@ - - + + - + - + - + [yPrev] - + - + - - + + - + boolean @@ -431,43 +513,43 @@ - - + + - + - + - - [u] + + [b_cntRst] - + - + - - + + - + boolean @@ -479,43 +561,76 @@ - - + + + + + + + + + + + + + + + + [yPrev] + + + + + + + + + + + + + + + + + + + - + - + - - [u] + + [y] - + - + - - + + - + boolean @@ -527,28 +642,28 @@ - - + + - + - + - - [tAcv] + + [u] - + @@ -560,43 +675,43 @@ - - + + - + - + - - [b_cntRst] + + [yPrev] - + - + - - + + - + boolean @@ -608,91 +723,106 @@ - - - + + + - - + + - + - - + + - - + + u1 - - + + - - + + u2 - - + + - - + + if(u1 ~= 0) - - + + - - + + elseif(u2 ~=0) + + + + + + + + else - - - - - + + + + - - - + + + + + + + + + + + action - - - + + + - - + + - - Ini=0 + + action - - + + - - + + - - boolean + + action @@ -703,148 +833,44 @@ - - - + + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + [tDeacv] - - + + - - + + - - - - - - boolean - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - + + uint16 @@ -855,136 +881,92 @@ - - - + + + - - - - - - - - + + - - - - - - tDeacv - - - - - - - - b_cntRst - - - - - - - - yPrev - - - - - - - - yDeacv - - - - + + - - elseif { } + + [tAcv] - - - - - - - - + + - - - - - - - - - + + + - - + + - - Dequalification + + uint16 - - - - - - - - - - + + + + + + + + + + + + + + + - - + + - - boolean + + [u] + + + + + + + - - - - - - - - + + - - + + - - action + + boolean @@ -995,35 +977,44 @@ - - - - - - - - - + + + - - + + - - + + - - [y] + + [yPrev] - - + + + + + + + + + + + + + + + + + boolean @@ -1034,120 +1025,92 @@ - - - + + + - - - - - - - - + + - - - - - - yPrev - - - - - - - - yDefault - - - - + + - - else { } + + [yPrev] - - - - - - - - + + - - - - - - - - - + + + - - + + - - Default + + boolean - - - - - - - - - - + + + + + + + + + + + + + + + - - + + - - boolean + + [yPrev] + + + + + + + - - - - - - - - + + - - + + - - action + + boolean @@ -1158,112 +1121,148 @@ - - - - - - - - - + + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - u1 + + - - + + - - u2 + + - - + + - - if(u1 ~= 0) + + - - + + - - elseif(u2 ~=0) + + - - + + - - else + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - action + + boolean - - - - + - - + + - - action + + - - - - - - - - - - - - - action + + + + + + + + + + + + + + + + + + @@ -1274,72 +1273,72 @@ - - + + - + - + - + - - tAcv + + tDeacv - + - + b_cntRst - + - - b_errPrev + + yPrev - + - - yAcv + + yDeacv - + - - if { } + + elseif { } - + - + @@ -1347,41 +1346,41 @@ - + - - + + - - + + - - Qualification + + Dequalification - + - + - - + + - + boolean @@ -1389,20 +1388,20 @@ - + - + - - + + - + action @@ -1414,113 +1413,126 @@ - + - + - - + + - - + + + + + + + + - - + + - - [yPrev] - - - - - - - - - - - - - - + + yPrev - - + + - - boolean + + yDefault - - - - - - - - - - - - - - - - - - - + - - 2 + + else { } - - + + + + + + + + - - + + + + + + + + - + - - tAcv + + Default + + + + + + + + + + + + + + + + + + + + + boolean - - + + + + + + + + - - + + - - uint16 + + action @@ -1531,29 +1543,50 @@ - - - + + + + + + + + + - - + + - - + + - - [tDeacv] + + [u] - - + + + + + + + + + + + + + + + + + boolean @@ -1564,43 +1597,43 @@ - - + + - + - + - - [yPrev] + + [b_cntRst] - + - + - - + + - + boolean @@ -1612,44 +1645,59 @@ - - - + + + - - + + - - + + - - [y] + + 2 - - + + + + + + + + + + + + + + + + + tAcv - - + + - - + + - - boolean + + uint16 @@ -1660,28 +1708,28 @@ - - + + - + - + - - [yPrev] + + [tDeacv] - + @@ -1693,44 +1741,44 @@ - - + + - + - + - - [tDeacv] + + [u] - + - - + + - - + + - - uint16 + + boolean @@ -1751,11 +1799,11 @@ - + - + 3 @@ -1773,11 +1821,11 @@ - + - + tDeacv @@ -1788,11 +1836,11 @@ - + - + uint16 @@ -1814,11 +1862,11 @@ - + - + 1 @@ -1836,11 +1884,11 @@ - + - + u @@ -1851,11 +1899,11 @@ - + - + boolean @@ -1865,54 +1913,6 @@ - - - - - - - - - - - - - - - - - - [tAcv] - - - - - - - - - - - - - - - - - - - - - - uint16 - - - - - - - - @@ -1979,11 +1979,11 @@ - - + + - + @@ -1993,7 +1993,7 @@ - + @@ -2001,7 +2001,7 @@ - + @@ -2012,22 +2012,22 @@ - + - + - + boolean - + @@ -2043,30 +2043,30 @@ - - - + + + - - + + - + - - + + - - + + @@ -2076,23 +2076,23 @@ - + - + - + boolean - - + + @@ -2107,30 +2107,30 @@ - - - + + + - - + + - + - - + + - - + + @@ -2140,23 +2140,23 @@ - + - + - + boolean - - + + @@ -2597,5 +2597,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8519_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8519_d.svg index 537893f..f0cbe28 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8519_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8519_d.svg @@ -345,5 +345,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8535_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8535_d.json index b037cdc..211da68 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8535_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8535_d.json @@ -191,11 +191,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8651", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8650", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto9", - "label":"Goto9", + "name":"Goto8", + "label":"Goto8", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8535", "inspector":{ "params":[ @@ -204,7 +204,7 @@ "IconDisplay" ], "values":[ - "b_motEna", + "b_errFlag", "local", "Tag" ], @@ -224,11 +224,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8645", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9423", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto3", - "label":"Goto3", + "name":"Goto7", + "label":"Goto7", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8535", "inspector":{ "params":[ @@ -237,7 +237,7 @@ "IconDisplay" ], "values":[ - "z_ctrlModReq", + "b_motStdStill", "local", "Tag" ], @@ -290,19 +290,21 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9390", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8640", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From9", - "label":"From9", + "name":"Goto1", + "label":"Goto1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8535", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "z_ctrlModPrev", + "b_toOpen", + "local", "Tag" ], "tabs":[ @@ -316,16 +318,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8636", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9390", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From7", - "label":"From7", + "name":"From9", + "label":"From9", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8535", "inspector":{ "params":[ @@ -333,7 +335,7 @@ "IconDisplay" ], "values":[ - "b_toTrqMod", + "z_ctrlModPrev", "Tag" ], "tabs":[ @@ -352,11 +354,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9423", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8646", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto7", - "label":"Goto7", + "name":"Goto4", + "label":"Goto4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8535", "inspector":{ "params":[ @@ -365,7 +367,7 @@ "IconDisplay" ], "values":[ - "b_motStdStill", + "b_toSpdMod", "local", "Tag" ], @@ -385,21 +387,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8639", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8635", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto", - "label":"Goto", + "name":"From6", + "label":"From6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8535", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "z_ctrlMod", - "local", + "z_ctrlModReq", "Tag" ], "tabs":[ @@ -413,26 +413,24 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8650", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8628", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto8", - "label":"Goto8", + "name":"From12", + "label":"From12", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8535", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ "b_errFlag", - "local", "Tag" ], "tabs":[ @@ -446,26 +444,24 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8646", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8636", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto4", - "label":"Goto4", + "name":"From7", + "label":"From7", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8535", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "b_toSpdMod", - "local", + "b_toTrqMod", "Tag" ], "tabs":[ @@ -479,16 +475,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8633", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8625", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From4", - "label":"From4", + "name":"From1", + "label":"From1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8535", "inspector":{ "params":[ @@ -496,7 +492,7 @@ "IconDisplay" ], "values":[ - "b_motEna", + "b_toOpen", "Tag" ], "tabs":[ @@ -515,11 +511,139 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8640", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8603", + "className":"Simulink.SubSystem", + "icon":"WebViewIcon6", + "name":"F02_02_Control_Mode_Manager", + "label":"F02_02_Control_Mode_Manager", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8535", + "inspector":{ + "params":[ + "ShowPortLabels", + "Permissions", + "ErrorFcn", + "PermitHierarchicalResolution", + "TreatAsAtomicUnit", + "TreatAsGroupedWhenPropagatingVariantConditions", + "ActiveVariant", + "ActiveVariantBlock", + "AllowZeroVariantControls", + "BlockChoice", + "FunctionInterfaceSpec", + "FunctionWithSeparateData", + "GeneratePreprocessorConditionals", + "IsSubsystemVirtual", + "MemberBlocks", + "MinAlgLoopOccurrences", + "OverrideUsingVariant", + "PropExecContextOutsideSubsystem", + "PropagateVariantConditions", + "RTWFcnName", + "RTWFcnNameOpts", + "RTWFileName", + "RTWFileNameOpts", + "RTWMemSecDataConstants", + "RTWMemSecDataInternal", + "RTWMemSecDataParameters", + "RTWMemSecFuncExecute", + "RTWMemSecFuncInitTerm", + "RTWSystemCode", + "SystemSampleTime", + "TemplateBlock", + "Variant", + "VariantControl" + ], + "values":[ + "FromPortIcon", + "ReadWrite", + "Stateflow.Translate.translate", + "ExplicitOnly", + "on", + "on", + "", + "", + "off", + "", + "void_void", + "off", + "off", + "off", + "", + "off", + "", + "off", + "off", + "", + "Auto", + "", + "Auto", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Auto", + "-1", + "", + "off", + "" + ], + "tabs":[ + "Main", + "-Other" + ], + "tabs_idx":[ + 0, + 6 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ContainerHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"SubSystem", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9424", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From10", + "label":"From10", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8535", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "b_motStdStill", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8642", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto1", - "label":"Goto1", + "name":"Goto16", + "label":"Goto16", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8535", "inspector":{ "params":[ @@ -528,7 +652,7 @@ "IconDisplay" ], "values":[ - "b_toOpen", + "z_ctrlModPrev", "local", "Tag" ], @@ -579,11 +703,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8630", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8633", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From2", - "label":"From2", + "name":"From4", + "label":"From4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8535", "inspector":{ "params":[ @@ -591,7 +715,7 @@ "IconDisplay" ], "values":[ - "b_toSpdMod", + "b_motEna", "Tag" ], "tabs":[ @@ -610,11 +734,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9424", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8624", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From10", - "label":"From10", + "name":"From", + "label":"From", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8535", "inspector":{ "params":[ @@ -622,7 +746,7 @@ "IconDisplay" ], "values":[ - "b_motStdStill", + "b_toActive", "Tag" ], "tabs":[ @@ -641,11 +765,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8625", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8630", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From1", - "label":"From1", + "name":"From2", + "label":"From2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8535", "inspector":{ "params":[ @@ -653,7 +777,7 @@ "IconDisplay" ], "values":[ - "b_toOpen", + "b_toSpdMod", "Tag" ], "tabs":[ @@ -672,43 +796,93 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8654", - "className":"Simulink.UnitDelay", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8645", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"UnitDelay1", - "label":"UnitDelay1", + "name":"Goto3", + "label":"Goto3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8535", "inspector":{ "params":[ - "InitialCondition", - "InputProcessing", + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "z_ctrlModReq", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8539", + "className":"Simulink.Inport", + "icon":"WebViewIcon3", + "name":"z_ctrlModReq", + "label":"z_ctrlModReq", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8535", + "inspector":{ + "params":[ + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", "SampleTime", - "StateName", - "CodeGenStateStorageTypeQualifier", - "StateMustResolveToSignalObject", - "StateSignalObject", - "StateStorageClass" + "SignalType", + "BusOutputAsStruct", + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" ], "values":[ - "0", - "Elements as channels (sample based)", + "4", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", "-1", + "Inherit", + "-1", + "auto", + "off", "", - "", + "on", "off", - [ - ], - "Auto" + "off", + "off" ], "tabs":[ "Main", - "State Attributes", + "Signal Attributes", "-Other" ], "tabs_idx":[ 0, - 3, - 4 + 2, + 11 ] }, "viewer":{ @@ -717,16 +891,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"UnitDelay", + "blocktype":"Inport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8603", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "className":"Simulink.SubSystem", - "icon":"WebViewIcon6", - "name":"F02_02_Control_Mode_Manager", - "label":"F02_02_Control_Mode_Manager", + "icon":"WebViewIcon1", + "name":"F02_01_Mode_Transition_Calculation", + "label":"F02_01_Mode_Transition_Calculation", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8535", "inspector":{ "params":[ @@ -767,9 +941,9 @@ "values":[ "FromPortIcon", "ReadWrite", - "Stateflow.Translate.translate", - "ExplicitOnly", - "on", + "", + "All", + "off", "on", "", "", @@ -778,7 +952,7 @@ "void_void", "off", "off", - "off", + "on", "", "off", "", @@ -819,25 +993,44 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8628", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8654", + "className":"Simulink.UnitDelay", "icon":"WebViewIcon3", - "name":"From12", - "label":"From12", + "name":"UnitDelay1", + "label":"UnitDelay1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8535", "inspector":{ "params":[ - "GotoTag", - "IconDisplay" + "InitialCondition", + "InputProcessing", + "SampleTime", + "StateName", + "CodeGenStateStorageTypeQualifier", + "StateMustResolveToSignalObject", + "StateSignalObject", + "StateStorageClass" ], "values":[ - "b_errFlag", - "Tag" + "0", + "Elements as channels (sample based)", + "-1", + "", + "", + "off", + [ + ], + "Auto" ], "tabs":[ - "Parameter Attributes" + "Main", + "State Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 3, + 4 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -845,16 +1038,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"UnitDelay", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8642", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8639", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto16", - "label":"Goto16", + "name":"Goto", + "label":"Goto", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8535", "inspector":{ "params":[ @@ -863,7 +1056,7 @@ "IconDisplay" ], "values":[ - "z_ctrlModPrev", + "z_ctrlMod", "local", "Tag" ], @@ -883,11 +1076,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8539", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8537", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"z_ctrlModReq", - "label":"z_ctrlModReq", + "name":"b_motEna", + "label":"b_motEna", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8535", "inspector":{ "params":[ @@ -910,7 +1103,7 @@ "OutputFunctionCall" ], "values":[ - "4", + "3", "Port number", "[]", "[]", @@ -950,61 +1143,27 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8537", - "className":"Simulink.Inport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8647", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"b_motEna", - "label":"b_motEna", + "name":"Goto5", + "label":"Goto5", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8535", "inspector":{ "params":[ - "Port", - "IconDisplay", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" + "GotoTag", + "TagVisibility", + "IconDisplay" ], "values":[ - "3", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "", - "on", - "off", - "off", - "off" + "b_toTrqMod", + "local", + "Tag" ], "tabs":[ - "Main", - "Signal Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 2, - 11 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1012,7 +1171,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", + "blocktype":"Goto", "masktype":"" } }, @@ -1084,139 +1243,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8546", - "className":"Simulink.SubSystem", - "icon":"WebViewIcon1", - "name":"F02_01_Mode_Transition_Calculation", - "label":"F02_01_Mode_Transition_Calculation", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8535", - "inspector":{ - "params":[ - "ShowPortLabels", - "Permissions", - "ErrorFcn", - "PermitHierarchicalResolution", - "TreatAsAtomicUnit", - "TreatAsGroupedWhenPropagatingVariantConditions", - "ActiveVariant", - "ActiveVariantBlock", - "AllowZeroVariantControls", - "BlockChoice", - "FunctionInterfaceSpec", - "FunctionWithSeparateData", - "GeneratePreprocessorConditionals", - "IsSubsystemVirtual", - "MemberBlocks", - "MinAlgLoopOccurrences", - "OverrideUsingVariant", - "PropExecContextOutsideSubsystem", - "PropagateVariantConditions", - "RTWFcnName", - "RTWFcnNameOpts", - "RTWFileName", - "RTWFileNameOpts", - "RTWMemSecDataConstants", - "RTWMemSecDataInternal", - "RTWMemSecDataParameters", - "RTWMemSecFuncExecute", - "RTWMemSecFuncInitTerm", - "RTWSystemCode", - "SystemSampleTime", - "TemplateBlock", - "Variant", - "VariantControl" - ], - "values":[ - "FromPortIcon", - "ReadWrite", - "", - "All", - "off", - "on", - "", - "", - "off", - "", - "void_void", - "off", - "off", - "on", - "", - "off", - "", - "off", - "off", - "", - "Auto", - "", - "Auto", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Auto", - "-1", - "", - "off", - "" - ], - "tabs":[ - "Main", - "-Other" - ], - "tabs_idx":[ - 0, - 6 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ContainerHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"SubSystem", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8624", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From", - "label":"From", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8535", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "b_toActive", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8647", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8651", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto5", - "label":"Goto5", + "name":"Goto9", + "label":"Goto9", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8535", "inspector":{ "params":[ @@ -1225,7 +1256,7 @@ "IconDisplay" ], "values":[ - "b_toTrqMod", + "b_motEna", "local", "Tag" ], @@ -1311,37 +1342,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8635", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From6", - "label":"From6", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8535", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "z_ctrlModReq", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8634#out:1", "className":"Simulink.Line", diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8535_d.png b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8535_d.png index b8581e06009d94ac994600c959899dbfb2971552..e84f51b99590da823b7bcef4b9509753f769300f 100644 GIT binary patch delta 6961 zcmZu$cQ}>r|F?I@&dv@Yd(VuJkYr`AjDxb*BQs=mLN>`BC+URj&_M}F_B=+mL-xV< z_PKt4{?7HdF6WQue$Mm0->>z)>y&DhQsty<@7+~13C!J^3G!wc%j4e_-9F>Qi98C^ zdn2s-QNa8ekKBzZS`@EK@wkC;eqi4H+~1qY0ckK%u|VAJFn|13DAo14B0H`Qm)hx3 zh5bDOmL#H~x$txA_V5Q>B#}7kz1iMVuq$<9&-~F@(b&dKcpqoxccUjy!bEdg)>c+mhi7K4 z)tEMq=6u}JAyA{<_TyC?)DW4=u71+&e@!~)J~j*nqx5f9a?fgNlIwL8H>)uvh*D!p z(!zMLqHeNMYH+2gLR@J$IQ`$h8=0DBAd}nLl)LTk2+)yjPBlCTRm?MRaC0M*l9HlY z+?ru@aBvXI(igaO3-<$ZZpI9&e}7N=Nj3wsLs>Ut3t<*;a#{7!!5;UFsw) zJ4xo@KYwCRPlI{j_okbk6UX0GpT_Lbr=Wa}ckNch-H^-&2hhRdPW$?!Dz)dI#$Mgm+~T3QkUyhVowuesQ%tyuLUY7Q1w*66vN zxMA13_wJF##>L?Z6A3d>s23S_*w@W>$I}wFj)nC2u+otc{#xtty2YHNju=aXRGvJpZ^gIY5EBy8Yx+k_~e)bGnLd+d*_ z++b#r?~QNywj8m?R#oD};k$Yf2eMzfhqDuBDo5w%vu{q+6KfS;cXD!~CcxD#p&1w$ zFjvUxTIeXz%iR5?C%TZ?j^%x$%PS}-$eE@iCMg;1D-R`kL1$Bodor-;UU>_IQ+POg zeSJM4gcHeGSXxTtTp!fs6qFy=wV>+c#QRFi!H6wpFkdMV#R0MIw4I57)duzA%aa8^Mq=Xst{(KqCm5Z8b4sZw#W=_)~h~!k| zN`pA*$U5DSpfKoRZ4Ua(!R3&|9{ax=8&O)txBi}!MdGMY8=9JauKWa{lVohgnCAVP zG1&b*9~_}c;JA3uNA20v6Bbnx(?0EJt0z{kfA zJe+Wm38l^9rA__$^JmTM8>!pE!Y@0Mw2FsZB~x{Hm{?e%2AsbO8s!@BbET13SXj*a z%J;nHuiw`z37GQ2hN}>$MHrMt8CMYCM0eTwgk|mco$R5K*&JY1D72a)JL3lQoH7nS zEG$em>{QY^WJ_vSkqT*X`$8yPcX(nV3kl(L{P;n!va&**f?DvEH?p)OhxhSZoX4qP zZ(i(Th(hhQy{OR<7@Q#(K5RX|L*sHqh9$g|g@|Xr^9ef>PNr_BlyWkBW~SVtE^0?I z>mkGZwp>UZv7?eZp<@+z8)$wK>24o(hnl3rQM@K-mw2G z?eD!Eo|+<;P>EV%5!J}FQXJ7yjT-7y>1=a>8W;RwOsV^;gASlA0*___jLgkR>Ci^6}0>bfuQP``BS~D{n12_5HUuMw76DcObY&~pMYNJ@ZiDw2-0^sFl3tgWrBIy^Ms0&oJWu%{5q z=TQo#Lu3FbY;0`iJ${nRJ@fONv9YnKx+O!ivm*HhI9JFSnwv{;KqW5>6=_rnt}!PO zg}2*OKW0-24;@iSJP6Ie-}__fwGhvr-*K|Py0Cu&pf&%jX=r?$Bu4#3SwVRA2{spx zh9VAQ0JV=NAQA8In%&$n;GUYP1VUlxv--f`AmemGdWCBJt5>h4NBmOtN#BjS4Udn% z_1kW>lF!qU&->QVp=xCM%lzB7Z$nd4&2~ZzAC7}S$40K6MA{5qZJg)RdJi|D3{H~2 z;pl5to*o2>>>bWgldD|{yu7j>=%O2DgUN}h*zbyG{irOgG7%i#@&~oBYJ|LTY2pc_ zbFNXwX;hO`j=J6Dx(+Z4AYx)-QdnJ0k(Za(7_{$f#1R7?z^iL8kUCwmHao&g$Eu-D?Ki%O+s;qdV2h%q$vIsq;poD|T16=jEzWgQN# z2FC#>TduX0YLVs^+=k>S1l|HuFDxX4kMddED>5WeE}(j$%2{>GS|qc}Lpl-HsKTTi zfk1uzir02B;8lAvnKjmH*4B1FfQO60+gbje>9hX3qI!h0eU2(ipD0~71}K-Et1F3f z{SC0u{15U8aE?Qjr`y6Ttz2YTV>wA&-Q4hSz*Dh*wN<{Np_*r`9A~6ldR{gN0vJVm zVi=;OZNY!VH$iIaU~#Kc4MXRiG7zh6VJTzPG`0~lwIy;)2cW%B6vu8aBB89DY$#wd zbo!#X%*?-;ZFzZl5xwCjRX4RY-W-5vv?_%?bPc&U|7gms`R({vwz9JFS!EQ^vj5uT zmZ`ZpbVFB9FY9}tBD-v!0Z><<`t5Tm2?+_;#SWN~2Dds7X|dhhNUNXIpxPMcR z=k+7TZ1K{vGGJP+#BFcy852cp_5P~2END23H*9$P{QQ7HElqHPhJr&v?8LLg?%a71 zA5SWft_wuKOqc=m#qZHkHEM#p#YQHNA0sSX`kS%>rniU+ba8PizxNj!3(9!(Og;_F zMJjC8!c!@GeAw5>Dyn9u__uwXC_$YmY9@O~^2F)=0`5n3`Y6VQ%P zOsRT|c-Pt*RwbkPsRho3^3f?9xdNRmB@Gl$Aec^8TwLtx={X>%_6>zfGbl59{Fu0G zB;HJzh_kt>Z!h@1cviHP2nxuEppejY3ZgW9zMhqBfW5k3Y-BOsOTB5gPZYNsu36R@ zSJ2hsM@&%sJHS0SU>bA7EYw)eX9(W&YCGWrpKb;!+q&B=MMXC^6nB81+6{yhU7tQx z^YRk?wI;cUk^N+GTlr*(_U}P3tE{(bOGKugrjMN+F04V}GNA1)AH1lp&S%tU1)ZXz z#g*2vxhd@C=GNV&+4CpC?*bc?E9-;D5xR?OB1jK}6WA*cX%_oBrfO56!2H4WQe5G~ zurGca42Rn@iT(Y$b%Y<0Na&G=cdu2br@MRCK#okB4i6yS`TY~%{W^VEJ*0Dvy-GzI z_dW$Ee6JvA3S6a}&C1tuTRUPXp%GQWiq%Ih9i80~7k~XIa!H6Le*W)p@ee2Q^ndAj zGvJ}X#n{!E6`EFEr;IByu1MAAOVcg!2JYcgLqil=766V14&4I;ND>+0C{9{6n*9jn zEz4@Jr&r3AZ%}qUu?L75xKT_&fjqJ2^+So(^Cf^u`C*G0ek&11;1#5+qjnWj78dNf z?dx)d+TH8Sgv)DcZXciYMBhk7DsQf>J*{i1XZm+|_^zl3mz#kPS+)@ z8chIe0-kV1S^y5KQwpzYvJwIB1CTkj(1BFu@`wznBB+g%3pA3^N} zVb)|$VocJ=xd-xj3|=*iNp=Ac6E0XL^R(v%W57JS9m6#)eRV3lKC2>&qoXT z&e_GKM`23*dvZz&x}q#U*n216u2uI7Cy8b~8b2W5&{zH%5S+~KF#upZG^99*Pc&td zE&aaNs24?yy7j;xD3d0my;py-d9yaG$5x!21ii_~;L6fhuQ2(#=6hBA7pgeM6(-mV z*<{*wn`HFR=qS>upzj=d^HAuIsK(7kclQ@Zv-s=~D?Bm+Y6-o8+E@psHMZd5Um1uj zz)yhGqUP={l%1XZ@#lgKbnf>iJ>AaU9xuF|!y3WJii&51z0%@_&3qv&9wveJMRRK> zFa1s!1+FVbJ&nEtu$-g#6{LYm!Ta7wdE?{woGdFqEu17DENaSYYpq9R#pL8jON_Hd z6ObQYE6d0bSB-vIFU=$F+w$iInM5$%9&o8(x~?KyvQ{zZBp}*=x9xA)fZw?>hA1v8 zBL>?I>U8_|ZC7`9OFw4+l^-{*+Jt|<_DS=+w=6Yf-1QVx&(6-3QO{{td0qpVA!gc= z@|)z|XEJyi31Z;eu=31oEeUM|aCMQx!$$9oE2^8@_Leb$(yRn_PC|cHm5=168-4I4 zBqTtX5)c)Q)92HWWTy8Lm10f;Qq7pdJF+IJrKJTPb_cvf!&Fjh$dU65)!tfJ!PRC| zR+3RE{iB|S$tbd?K;sjG&h_zQ&%xL1oSerq?5Bm^tZ`<-eEFxmG^8L$VibIuXa26Q z_fMWY4tH7eWd>xqNFsXlD*<@_A>dGV_Y?bKaTkKvfeV5)umDfUkfKlMd z0E+08@e(`=0L7ka0W_4WBr~AJI-!OM4=rH^+8uR$9-76lam7LIG#yodON4}y(zWK9 zWJmE^hhjhf$ykP`5W6>TY-}{#FHG$F+`jyIJao5{csID!P=HR>Z=EhUIC$vy{om2G zwIbL}7ZutK0kC^l2JhiR+F9r_OkZEW1C*vLCadmqe%PV8Riig9D7txZD2TNnZD|x4 z7S`6nx-eZjb^@HyVuo3I@E5o&P*^@WNY7&Oiv)(7nW;SGRbJ!2>{J^Rz8JpcA6t@L zv=hx{b|c@8ZZZea=D9E4GbHK3HOo0Kn8Le<)rvu@r9;zZkN+*;Fzle7!m2fFi*|1` zDsKpI2I-U-rxpgnGWydEifQ5wZk`lHh&jR@4oo*9Wvh%ZnXE#6%i`}Lq~L2{>OXJ8)iCpVqm%p+@kXNS=xE-x$V3W^{}yScmj?62Gh zr7CP{V@1=#nOLBl2-HTDH6qH2PeY7OeXLEX95HnRt(K;#@Q!|?I7PXixqNcxD6!bz zar>RaK!3JDSx+Y!&dcZ5MG!Atw4PI)l^U8`6BXZ)Ftns#PWn+?e|RK4!WKg~ zex0|s|JS@4Fp(Cy%YS4D6PIC3$jO>K#%M(|lY9KpcG}Pz&Kx~ejE$Pj(`HXEOko6F zw149u8JSMop0MhQk~OyH!3DQ6wD-Kcroy5@oP#2E_u_=g=U?wl#e=i<0O+$+)Si_X zna=EvtU65yIj!aC=P4fbl^{3Aims2$sYC=*}$;^Hx7L zx8V6^nuhlArz5_lXL7Nzd4YQvl;IO3W)tB-m#S{0%Jef|DaVg@28}6f?WA1tS<|78 zZpo0jac!44GH_*$-^X^29ovPt;9zE1_lDciN!|l7IAikUVF)n4Wf zc?r?^$vw{lnr@CfgD9`oV<{{ay0rO(lrH-CPB`VD+RDYQw6xR^Daq(0K=&2oAowgD zBLo1R=*(4mu=z5gclntQ=X(17x@NHvAanrvj~~SwXJBvMys4J!bL6Cs07H)~374xl z`R5Pc;lLN)H5wu!BJY2O{JKAgUL`e)?O@*hcJ3UHCcl0EfF$;7;NFozZC%XCcHu

FM*qc}B!JnJBaoqd3+Te*WUci)(CU&yG(9q2!enXD}`J>nr~Wi7YB9aT>*P0SSbs z(KF)z{AmEMqUV6t|Fn&9KQxwwS>JVvVbj77iLH1Aokz8I%v~I$JfF>gPItwzFL3gM zPVeEUiuWx%xWpp7QE~|=1J6vC0*ni^IO&xgKU?rF?!sbb6_M;T)A$~6VS%;_Tc4po9gC9J~ z+7+n|_P=84+vVaADo4v-*J+QuDXiq?k-8;c0kxA^&-rUSxxdG^bWl9%`eA;5xdp48 zsoeRZ_GdNfVt%8n$h2zrM<)B=*+FJOt<#E8idJ#e?C9UW0;i{^-37qF_#STAW9djemwuxNf8r+7W?aGj==Qr8!WO6hTX8J zkuMuF;DhUwNhDDU0z(9H1PBd4ez{mF(f`&)%m+yc@WvawIDjgERQ-}g1~v~;VmI)Q zz;@R{uM9hQ6 z#^?pUKZ9RqVwC$mHc!>QPwZ|GTR*>#mo>EC<@ZpXwb2>P_8CASG{S{$*oV2%GP3`=*h9AMK;ZgckW_$?>NF&a9f z#jbI*=fcaFR3K&Sc~$#Ya+?sX(9nLRsL5cO#wrn8q+940lXM>N~8s0 zGP=mn5mB{zP+u<4&~--=Z|t{ZWfjAN+uN^Ry(@xhnNK!%#j_+4%N3%g3;z15;*2dB zRO4U_BWjR;iv-WO;*G2}C(0*qyJ;0i_;Wc(Ud~TE^!ec9NcT+H)uyh62z|b;zm4Q2 zrV`)ytjx?vI&6n-Qj@$u2l3F{V@e{Dl=)*nxc#}>GxVecp;k6JU%~(2tE<>_tMpA_ z{|Tsf)k3rF`$JW-25!99Iy~JKg;eZ{V3vbhJS^bvZZ>g5hQq+X(7oD?_QCXf$4+>} z_Sj$NkYG*%^N@0}99uD0pMSf!z02a?3a?Ell-$MJoS2EtX@KJ31qv;jI}>Aq&+6HB z+@|yW@2XBtOMp zuYI9NY0G>=z$31V#!&*){;fXWTm8}`MqxbY@H`V!aEY4JK#VNz!yB17Z{5c3dtoJ1 zar_%(iXmG8gdY#Q4{M#Nn;L1Px@YQYQ@+W8w21$+A`i!9p@$%>PCi1LOp}ppzhhsK zb!<+<1$Cb1u0c)Ea#+>ivlYx?W&^xhS7yNlUNW0p>ewlYugtDWNrzjA!B+dXn)KMY zil81(hfMxCO&ex2b8kF0bm-0pATgnysQQep&#ju#cwayGKc=-k+wz(63`s;Klk{#) zHS|=?13j1H<>g&;-2x5;jPk&QZjn%<$%+!hma0*~+N*N{U{{)&%v&-(wp87F`t%k^ zh}l9*y}nYU@L`r)AcwyIv{Cr}J;AUm-N?uYn3sQ;@Bk56I>&SLe4G`v(4Q{E#K92< zhJD1IAZ1-mpeSc9jOf9l26Q1&a17vXBv9AY4aO4VQw`8)9OI`wqBZ6 z&(2y4&~41=e@a{4j~e%oHZe7=wcz`27Ge7rI`uL%hdueSV_#Qb%EKI0`?5@pDJM6! z=7I!iPj9RJh7-V(3M-}0H}cCW22YqbYw9jz%Iz<#UNJNBJuRL+Ng{MBPZby%r@Y~b z-;xE?q!U5x;WV#)@5P_yN^>Be?fQwDE>)2F0jRmhH@4)4B!G&BJf06pT%y| z_EEMZU21iv@~liaE^Y%nft~v5V2b6xgQ!c6>{V=F;+e4s4*1;DG`L%kA#qrZ*W>!bxbJh$>-Bs+$LoHPs*rjmE^7TmQBKeI9d_2wjd?tWds|@h3<;Y%Qb(on zp(=TdE4jpPOw*#d>jBYBiH%UKgNVuYo~_Uga-y!!=)qhmvP7kDBR-e`ogHyY5FC+`m-Y>Yj^;wYaj+1)sfOBqvhj zpjIreAGgs*B>57-c z$C2mc~Md(ACwAK`;4YA{n~>63Vsz`NN498ge{=ovy=pG`!d1=|)FI zMJ*hiS&A@e>*$1~q)@}+;bcVNT0C@Ljrhde7Zv5U4$RzHh$H1gz5I8c#wisHtsgAT z59Y}vzlL7Zkc5R47vD)sOKZ0fT-ZUgGi3DPURYXUa%&5#tLa8ZM~|wL0y^AT{&5<*=mVSS#xZ6A(oJU<)Sa&=Akk}3X8|f)ys_X|BW4UwNo3>iX3U#i@ zArRz5+6D$h;NH?v=`~de2?^~kbp<6QWTK*?ulj6YA#dL@8S%X-eVHfjNz~-C6*Y}j z0@n{kl7Q}$M9P0PDFcP^-5*x&`RjQyXH~&?dUlpS>_F<@7KW5X5CCkH^J3?HmncAQ z>rMHaw>!yVqJtRE2cX9il6CbVripRZ0{I^zTM}g{;nW21w#$FnzI9(HjZP7&_IBIB z0gn#H#_?fu&}9&4J!8HW$sV+~XVi)+*5iGH3~pn$tGZEDRaG)aH@L^h&aSMg8h<>o zuz<`B*leJf@3!kB_*hcnRPxYPos5jk%B^6SM}&!jljd448f{rMS&5>H?g~}m3>zCW z5M!aN_|vz6(^;K8WCmj+hj>4-`d*J04#T(^nVSC#c-D%mutsN2Lu)&}h-7rn>AP7M zWeAed$dgVSHw&PU98@SXh`&S?>Uh0;X^Ult2?`5`H#CTMFS&!We~*rKfH8$GF;q~D zOyCFVyu35!ZZQiEnAb!|b|d%BP}|8sRNiV7yf4r#gP6FZP{&O}ZNWy9>a*d-!Xx#6 zX@vCwKg~Aa#?YV%e9{p-PQ5qwt&ur70iIx%niHF3XiqO=?sAWg79yfFyc|r3r)QNB zjotpiLC23lS*S6-@tp;|N`W$AWKe&^R3OJFEdbpiuF3z4?3M6+@gtXw-J&9uzV~E`}WtP zy1H7nSnrEt52|QHkdfTM!NExX$smhdiP?2>F$ zKkS4*my}Q^Dm^SMn8`3GE&Dw`pZw(uzgUijX@dtLI+wVsFdIPZf?w;xxG-p(+0!Y$?5Q{|5Nbo;$7iQCxvWnZNc=_yJ7GEkeweeZ+JHu zQR|hA#wc=tnFUk%skHQpN*Ws*-S++se2}2olS~c`g>THY1b|6M|Dka+MFpGyz}>MY zNk>Wuh9MtdePp%!udEHEB3t_OzZs*c$3(q;*w=976j9U z0Q|15BFUyKk<**1DV?qho_;&g zHPCus{AaUL@9sevH-aRF!B@b%H9@yX!#0QLllAlzhP^K>C6_rJPTqzTvsut+DD2y>>G8Xv%(u3z=8w$g z-5z;L^mqic_y#zrNcK!wS7B0WYbgvj5Bz~{kV^M}+4fz@kIw8@Q&U6IkzTJ3Uf8^2 zU~GJYmzTF2J-+U!V_*=~5^xmPZ@cy&vUYi1z)4ic2K@8;#zu)E2^FEN?v<4lsT`|x zC?f+*Sz1E^0CN{6WYjSdNwR%*4r)5%HY=T{DXG7I5@-wwGm?KQFCUap4?Y+*tSA?W zU88El*W`({A$6#M1?kWC=5OIj67TFt8yJ;=X zTA#)B4TqBiW3R`npOoEv;xbd8au9$-geVnIH)ZfWgk)r>fa;WtzCG~$r|?FFvxHy7 zwtm*dL4*m2Tfv79ctqhh*Ky)3lnT7*^tRFMKyLwsUe}jpt8Q(T&Q!atrlDcw;X#8c zqyZ{GA5R!63p+SCKoG!(9q531t&e4Sxctj;YiKXh0W!Ah@hR;)#nTFJrrc$B?35_v zM@Lcx1qJaMD=g>H5-d+wR-2A=er^B)h)x=Ic%t&Ns| zhEJ@iQ{UVA_|2W=*Q!Vwic2gh98%;6MHO~VOfXJOO;w^^#l~I(Cg%6}co)VENgogY zw&_^eY?i8a`({S}eV`+sKl2iV%Wc>bA?jDQYin#@-;;_Sd?RNvS7+xR5`&L?Hd!PgHY$^+Plw0H zqrD^&eI+S@a%oDR5cs#S5mT}t1Q!14Xqy@th4laZewibX(r4q~=xFjX?c{hVIYou@ ziXo<^Oe$QpD{8EAWFR(fjd$(D?18X!6k*$ZvK9|P_CORcpCzNDxyx0J&tdUFc`mb! zkzg`DeEy7b4s~{doM@R@gc!`Hr>EWb{;2~Z1I!C37??jd7UJxI+ZWlzWM3q)vp+p} z<@o0s!hL33KE4Td)#u&W?V=LCs{)!1IMYzP1# z9BY^`Zj691frkW8i>6{%QdTAgweP~n3PD*BpaVz}mD{Pn!x+CLZ<^(=t+wG^T=ilC zJ{FJ=cq5=`U>_V-uT*A=X-ZvhUos4!aaXwcHv?+MfpV^I>yf+BjX;AnTZrdeai zuw<0y-o1gTCq%@=)RfWprKA$i&yKoQy*ih60Jea@b~x5_V!gW@YvfBtKa`fLIVaCM zY8273va;qCqfXB|$yNSU+m~f0!xkp(^Jc3lo@w&Xg^jP@J3b+ely@eb12sf}Oo~sZ^o$)&jZg1?=WB46d73Hsyky{rK$PFbI!7^vfbl)umogLfqyd>_; zRrY_5|1`Sxp}53`cl(A{|BFqJ)3l3?E~*`>4&<>4fle9y3l!JIU>BA3`*JE!vu*#D z<4vD7vIbMiyuoOIKA6wbuR=a~w%&h$1B#3!1Vavi2?oaK$IqW}KDD-Qaxyd9M>J*5 z7v`k8{L{VU5OH>B;?2zs&<&kpI`F7qqJcWY=$qo)SnAf^JdKoxmyE_0<@%GdpfNvl z9xaHuj8f42q8z3j3&2e0=WC!X4bkg3fPh3h0+kJ%jEP8I+nw z$-9k?!naz8C3gt^BYm}voRHTs{cS8X30R8}^K#IDZ zddF#j2)4M}?*sYDAuMW4v~_i>KD%205<(RUm0WkShY%gO0Xml}uI%b6AfJx_b-J49xw+Ogk&Pc&!XUoU z1_*5dRrGFR1%t5TYl^#I3)w5PkB0D=f1POtbwl+LVEy_WJch1aFglTwa z2>C$uzmew&Nl6?ml-A%O_%p}?jy4Ax+5dpXMuKL%d@0K2zj70#0AEQqsG=%wz>c^It7gpW7(ANrDG1lF79QXnEhiWkSI>IG7EX z9sd@yjqfiWWK+lYbT=VrVvqBM~__XD0Gc{b4~<6SK_O7*69yP9(i&#Og78G^(@dd}QU-mXy_@dOfm8I&MZVFSqGGjpJ8BTKOIbA78t|a<=cy_+{i8ZTf#i*(hfYtpg9&FJxqW|t<*6>VM z>vKK*v@VAq>Cc$yQ~_RmCC%G zmI-fC(d+-ZW;sC(aeezoqlGgZGMsXmek#d>B+O^stO~<>T`o!X$}gD#+DW~P8O#YJ ze_1oSZtyR>12HFac{7PkJfaA?JlY(rwbRNaQ-b$B4Ze1geYq=)i*CbtW~%j4WCY>5 z@8cHc&l%Bd;%Oth4FwT&ad_#-{eY+Vf13@*q*pJDiO$^S~A*oX-MG0`2lmcF<4 zxIi1sts6`9?yd*m0I*9b74NeF265H}oh59K%;*PH#(y}_=(S1%bkTiZivjh6C_z)~ z{?^Wi-*z3xA8E@5C`h6@ebY`&k&Kb_heTx2LeCoK=$>yaGq3O?`X=%8RN z@;E*jgp%I8q0bz!1M8xz-4YP-Q5*+Qmeg0*8Sp{iO#OVF9aWHt_(7_0Q4J67a?M|a(%bTo5d$Ts4O8XFrc<(KJkP)U9g3&==jNQE;_;NwX$;~HQifteJLPB~f^ka^bs zqkt_@$*`rQqT>Gk(NVn2ty{Mi6Lg*KT^d*1LcJQuID@E9G+U4E;m+7Exg|Z0VQWrK zV{KZDq?mBBjGaHr$zAWqZCiR7awTKSWiGiKYS!MFJ<3w!$oVNE@d>EX7t;njFq}Z- z-NX_`iZtz|Kw7hyZw+E(WqquxOAA6kD3uHj0X%|A(a8U==Zfb5<04`eH&^NIvL!EJ+u#bS>S%ArKyWpRrPZL+$my0rWLQXtG}nVIE^P7dvUKPgnr5EK^&ySF+aKNvIoU!FL+i@!c*o$==9ua7g4B*#n887*#=z3p{s5u*$gj5{xB z1Ah!M2n?JO4R4%6>FK}uTRms3O!?vHz-M zU|^s`L*0OKYGKEBNTFm!K(8@f8u$@m>Lmz(WJA zeJ#jD;qd%(SMDs4Hzzj>raNymt0PQUb|Oq*9isL8L5IcA;tB@; zRljY59CM`)DwbfPs)_ZX>m?;O`=jQKt;um-k1EzJ$C)d^l8}%9C&Q2>*ST0I@r@)G z?JiQSndoJceK@lW)T=OU*H72pOZ~Rl?%-10woJwxFGU;Om(mgPO8{_i|hRf$UP6`Nu=EIUYcdWmRk$JS* z?XHa66Uii2@mJ%g=%SggqpTlOu9JPewT8@IzhF=2qFGoU45BuNHsk%A6{J@fjd(~^ zT5Fe#`@N^|Mhz zS8IEa+<`pb1q-^vuBxn&J$p&)Y7amo<;$1HAcYQtEg_oCrK9_| zNH6y@aMqCH@64Q|&Mm5YgoD z6^9SQ@>;UHoIEH*d{4fyySZOQ9GX^zr13+pLPaJPib0*)F*7w^P6oSD#;{5`h0AjhxP&c!qo}9=H7!ZQxhc)YUtd_bmPWnR0R- z - - + + - + @@ -171,14 +171,14 @@ - - [b_motEna] + + [b_errFlag] - + @@ -190,11 +190,11 @@ - - + + - + @@ -204,14 +204,14 @@ - - [z_ctrlModReq] + + [b_motStdStill] - + @@ -256,44 +256,29 @@ - - - + + + - - + + - + - - [z_ctrlModPrev] + + [b_toOpen] - - - - - - - - - - - - - - - - - uint8 + + @@ -304,44 +289,44 @@ - - + + - + - + - - [b_toTrqMod] + + [z_ctrlModPrev] - + - - + + - - + + - - boolean + + uint8 @@ -352,28 +337,28 @@ - - + + - + - + - - [b_motStdStill] + + [b_toSpdMod] - + @@ -385,95 +370,44 @@ - - - + + + - - + + - - + + - - [z_ctrlMod] + + [z_ctrlModReq] - - - - - - - - - - - - - - - - - - - - - - - - - - - - [b_errFlag] + + - - - + + + - - - - - - - - - - - - - - - - - - - - + + - - [b_toSpdMod] - - - - - - - + + uint8 @@ -484,43 +418,43 @@ - - + + - + - + - - [b_motEna] + + [b_errFlag] - + - + - - + + - + boolean @@ -532,77 +466,44 @@ - - - - - - - - - - - - - - - - [b_toOpen] - - - - - - - - - - - - - - - - - - - + + - + - + - - [z_ctrlModPrev] + + [b_toTrqMod] - + - - + + - - + + - - uint8 + + boolean @@ -613,43 +514,43 @@ - - + + - + - + - - [b_toSpdMod] + + [b_toOpen] - + - + - - + + - + boolean @@ -661,185 +562,9 @@ - - - - - - - - - - - - - - - - [b_motStdStill] - - - - - - - - - - - - - - - - - - - - - - boolean - - - - - - - - - - - - - - - - - - - - - - - - - - [b_toOpen] - - - - - - - - - - - - - - - - - - - - - - boolean - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - uint8 - - - - - - - - - - - - - + + + @@ -853,43 +578,43 @@ - + - + b_toOpen - + - + b_toActive - + - + b_toSpdMod - + - + b_toTrqMod - + - + z_ctrlMod @@ -906,59 +631,59 @@ - + - + F02_02_Control_Mode_Manager - + - + - - + + + + + + + + + + uint8 - + - - + + - + - - - - - - - - - - uint8 + + @@ -969,49 +694,49 @@ - + - + - + - + - - [b_errFlag] + + [b_motStdStill] - + - + - - + + - + boolean @@ -1033,11 +758,11 @@ - + - + [z_ctrlModPrev] @@ -1056,58 +781,43 @@ - - - + + + - - + + - - + + - - 4 + + [z_ctrlModPrev] - - - - - - - - - - - - - - - - - z_ctrlModReq + + - + - - + + - + uint8 @@ -1119,58 +829,91 @@ - - - + + + - - + + - - + + - - 3 + + [b_motEna] - - + + - - - + + + - - + + - - b_motEna + + boolean + + + + + + + + + + + + + + + + + + + + + + + + + + [b_toActive] + + + + + + + - + - - + + - + boolean @@ -1182,59 +925,140 @@ - - + + + + + + + + + + + + + + + + [b_toSpdMod] + + + + + + + + + + + + + + + + + + + + + + boolean + + + + + + + + + + + + + + + + + + + + + + + + + + [z_ctrlModReq] + + + + + + + + + + + + + + + + + + + - + - + - - 2 + + 4 - + - - + + - - + + - - b_motStdStill + + z_ctrlModReq - - + + - - + + - - boolean + + uint8 @@ -1261,75 +1085,75 @@ - + - + b_motEna - + - + b_motStdStill - + - + b_errFlag - + - + z_ctrlModReq - + - + z_ctrlModPrev - + - + b_toOpen - + - + b_toActive - + - + b_toSpdMod - + - + b_toTrqMod @@ -1359,11 +1183,11 @@ - + - + F02_01_Mode_Transition_Calculation @@ -1380,11 +1204,11 @@ - + - + boolean @@ -1397,15 +1221,15 @@ - + - - + + - + boolean @@ -1418,15 +1242,15 @@ - + - - + + - + boolean @@ -1439,15 +1263,15 @@ - + - - + + - + boolean @@ -1459,49 +1283,177 @@ - + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - [b_toActive] + + uint8 + + + + + + + + + + + + + + + + + + + + + + + + + + [z_ctrlMod] - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + + + + + + + + + + + + + + + + + + + + + + b_motEna - + - - + + - + boolean @@ -1523,11 +1475,11 @@ - + - + [b_toTrqMod] @@ -1546,58 +1498,58 @@ - - + + - + - + - - 1 + + 2 - + - - + + - - + + - - b_errFlag + + b_motStdStill - + - - + + - + boolean @@ -1609,44 +1561,92 @@ - - - + + + - - + + - - + + - - [z_ctrlModReq] + + [b_motEna] - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + b_errFlag - - + + - + - - uint8 + + boolean @@ -1971,5 +1971,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8546_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8546_d.json index 6f34b86..a5c3f20 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8546_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8546_d.json @@ -98,11 +98,11 @@ ] }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8599", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8600", "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"b_toSpdMod", - "label":"b_toSpdMod", + "name":"b_toTrqMod", + "label":"b_toTrqMod", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ @@ -131,7 +131,7 @@ "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "3", + "4", "Port number", "[]", "[]", @@ -178,11 +178,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8598", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8599", "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"b_toActive", - "label":"b_toActive", + "name":"b_toSpdMod", + "label":"b_toSpdMod", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ @@ -211,7 +211,7 @@ "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "2", + "3", "Port number", "[]", "[]", @@ -258,60 +258,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8595", - "className":"Simulink.Constant", - "icon":"WebViewIcon3", - "name":"constant8", - "label":"constant8", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", - "inspector":{ - "params":[ - "Value", - "VectorParams1D", - "SampleTime", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "FramePeriod" - ], - "values":[ - "OPEN_MODE", - "on", - "inf", - "[]", - "[]", - "Inherit: Inherit via back propagation", - "off", - "inf" - ], - "tabs":[ - "Main", - "Signal Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 3, - 7 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Constant", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8593", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8594", "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"constant6", - "label":"constant6", + "name":"constant7", + "label":"constant7", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ @@ -325,7 +276,7 @@ "FramePeriod" ], "values":[ - "SPD_MODE", + "TRQ_MODE", "on", "inf", "[]", @@ -499,11 +450,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8585", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8584", "className":"Simulink.RelationalOperator", "icon":"WebViewIcon3", - "name":"Relational Operator4", - "label":"Relational Operator4", + "name":"Relational Operator3", + "label":"Relational Operator3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ @@ -544,11 +495,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8592", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8589", "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"constant5", - "label":"constant5", + "name":"constant", + "label":"constant", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ @@ -562,7 +513,7 @@ "FramePeriod" ], "values":[ - "VLT_MODE", + "TRQ_MODE", "on", "inf", "[]", @@ -592,51 +543,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8584", - "className":"Simulink.RelationalOperator", - "icon":"WebViewIcon3", - "name":"Relational Operator3", - "label":"Relational Operator3", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", - "inspector":{ - "params":[ - "Operator", - "InputSameDT", - "OutDataTypeStr", - "RndMeth", - "SampleTime", - "ZeroCross" - ], - "values":[ - "==", - "off", - "boolean", - "Simplest", - "-1", - "on" - ], - "tabs":[ - "Main", - "Data Type", - "-Other" - ], - "tabs_idx":[ - 0, - 1, - 4 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"RelationalOperator", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8582", "className":"Simulink.RelationalOperator", @@ -683,56 +589,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8581", - "className":"Simulink.RelationalOperator", - "icon":"WebViewIcon3", - "name":"Relational Operator10", - "label":"Relational Operator10", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", - "inspector":{ - "params":[ - "Operator", - "InputSameDT", - "OutDataTypeStr", - "RndMeth", - "SampleTime", - "ZeroCross" - ], - "values":[ - "==", - "off", - "boolean", - "Simplest", - "-1", - "on" - ], - "tabs":[ - "Main", - "Data Type", - "-Other" - ], - "tabs_idx":[ - 0, - 1, - 4 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"RelationalOperator", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8580", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8585", "className":"Simulink.RelationalOperator", "icon":"WebViewIcon3", - "name":"Relational Operator1", - "label":"Relational Operator1", + "name":"Relational Operator4", + "label":"Relational Operator4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ @@ -773,11 +634,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8589", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8592", "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"constant", - "label":"constant", + "name":"constant5", + "label":"constant5", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ @@ -791,7 +652,7 @@ "FramePeriod" ], "values":[ - "TRQ_MODE", + "VLT_MODE", "on", "inf", "[]", @@ -822,11 +683,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8572", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8570", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto8", - "label":"Goto8", + "name":"Goto5", + "label":"Goto5", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ @@ -835,7 +696,7 @@ "IconDisplay" ], "values":[ - "b_errFlag", + "b_toSpdMod", "local", "Tag" ], @@ -855,27 +716,39 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8568", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8587", + "className":"Simulink.RelationalOperator", "icon":"WebViewIcon3", - "name":"Goto3", - "label":"Goto3", + "name":"Relational Operator6", + "label":"Relational Operator6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" + "Operator", + "InputSameDT", + "OutDataTypeStr", + "RndMeth", + "SampleTime", + "ZeroCross" ], "values":[ - "z_ctrlModReq", - "local", - "Tag" + "==", + "off", + "boolean", + "Simplest", + "-1", + "on" ], "tabs":[ - "Parameter Attributes" + "Main", + "Data Type", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 1, + 4 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -883,16 +756,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"RelationalOperator", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8566", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8569", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto2", - "label":"Goto2", + "name":"Goto4", + "label":"Goto4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ @@ -901,7 +774,7 @@ "IconDisplay" ], "values":[ - "b_toTrqMod", + "b_toActive", "local", "Tag" ], @@ -921,44 +794,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8571", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8581", + "className":"Simulink.RelationalOperator", "icon":"WebViewIcon3", - "name":"Goto6", - "label":"Goto6", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", - "inspector":{ - "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" - ], - "values":[ - "b_toOpen", - "local", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Goto", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8587", - "className":"Simulink.RelationalOperator", - "icon":"WebViewIcon3", - "name":"Relational Operator6", - "label":"Relational Operator6", + "name":"Relational Operator10", + "label":"Relational Operator10", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ @@ -999,19 +839,21 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8561", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8565", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From5", - "label":"From5", + "name":"Goto1", + "label":"Goto1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "b_toOpen", + "z_ctrlModPrev", + "local", "Tag" ], "tabs":[ @@ -1025,24 +867,26 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8560", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8571", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From4", - "label":"From4", + "name":"Goto6", + "label":"Goto6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "z_ctrlModReq", + "b_toOpen", + "local", "Tag" ], "tabs":[ @@ -1056,16 +900,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9419", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8563", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From7", - "label":"From7", + "name":"From8", + "label":"From8", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ @@ -1073,7 +917,7 @@ "IconDisplay" ], "values":[ - "b_motStdStill", + "b_toOpen", "Tag" ], "tabs":[ @@ -1092,25 +936,39 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8556", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8583", + "className":"Simulink.RelationalOperator", "icon":"WebViewIcon3", - "name":"From13", - "label":"From13", + "name":"Relational Operator2", + "label":"Relational Operator2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ - "GotoTag", - "IconDisplay" + "Operator", + "InputSameDT", + "OutDataTypeStr", + "RndMeth", + "SampleTime", + "ZeroCross" ], "values":[ - "z_ctrlModReq", - "Tag" + "~=", + "off", + "boolean", + "Simplest", + "-1", + "on" ], "tabs":[ - "Parameter Attributes" + "Main", + "Data Type", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 1, + 4 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1118,24 +976,26 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"RelationalOperator", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8555", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8572", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From12", - "label":"From12", + "name":"Goto8", + "label":"Goto8", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "z_ctrlModPrev", + "b_errFlag", + "local", "Tag" ], "tabs":[ @@ -1149,16 +1009,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8562", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9419", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From6", - "label":"From6", + "name":"From7", + "label":"From7", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ @@ -1166,7 +1026,7 @@ "IconDisplay" ], "values":[ - "b_toSpdMod", + "b_motStdStill", "Tag" ], "tabs":[ @@ -1185,63 +1045,32 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8600", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8593", + "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"b_toTrqMod", - "label":"b_toTrqMod", + "name":"constant6", + "label":"constant6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ - "Port", - "IconDisplay", + "Value", + "VectorParams1D", + "SampleTime", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" + "FramePeriod" ], "values":[ - "4", - "Port number", + "SPD_MODE", + "on", + "inf", "[]", "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "off", - "0", - "off", - "reset", + "Inherit: Inherit via back propagation", "off", - "0", - "", - [ - ], - "Dialog", - "Auto", - "off" + "inf" ], "tabs":[ "Main", @@ -1250,8 +1079,8 @@ ], "tabs_idx":[ 0, - 2, - 11 + 3, + 7 ] }, "viewer":{ @@ -1260,44 +1089,30 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", + "blocktype":"Constant", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8583", - "className":"Simulink.RelationalOperator", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8561", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Relational Operator2", - "label":"Relational Operator2", + "name":"From5", + "label":"From5", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ - "Operator", - "InputSameDT", - "OutDataTypeStr", - "RndMeth", - "SampleTime", - "ZeroCross" + "GotoTag", + "IconDisplay" ], "values":[ - "~=", - "off", - "boolean", - "Simplest", - "-1", - "on" + "b_toOpen", + "Tag" ], "tabs":[ - "Main", - "Data Type", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 1, - 4 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1305,16 +1120,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"RelationalOperator", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8553", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8560", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From1", - "label":"From1", + "name":"From4", + "label":"From4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ @@ -1322,7 +1137,7 @@ "IconDisplay" ], "values":[ - "b_toActive", + "z_ctrlModReq", "Tag" ], "tabs":[ @@ -1341,21 +1156,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8570", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8559", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto5", - "label":"Goto5", + "name":"From3", + "label":"From3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "b_toSpdMod", - "local", + "z_ctrlModReq", "Tag" ], "tabs":[ @@ -1369,26 +1182,24 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8565", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8558", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto1", - "label":"Goto1", + "name":"From2", + "label":"From2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "z_ctrlModPrev", - "local", + "b_toTrqMod", "Tag" ], "tabs":[ @@ -1402,26 +1213,24 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9421", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8556", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto7", - "label":"Goto7", + "name":"From13", + "label":"From13", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "b_motStdStill", - "local", + "z_ctrlModReq", "Tag" ], "tabs":[ @@ -1435,66 +1244,30 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8551", - "className":"Simulink.Inport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8555", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"z_ctrlModPrev", - "label":"z_ctrlModPrev", + "name":"From12", + "label":"From12", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ - "Port", - "IconDisplay", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" + "GotoTag", + "IconDisplay" ], "values":[ - "5", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "", - "on", - "off", - "off", - "off" + "z_ctrlModPrev", + "Tag" ], "tabs":[ - "Main", - "Signal Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 2, - 11 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1502,7 +1275,40 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8568", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto3", + "label":"Goto3", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", + "inspector":{ + "params":[ + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "z_ctrlModReq", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", "masktype":"" } }, @@ -1538,11 +1344,104 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8549", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8554", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From10", + "label":"From10", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "b_motEna", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8562", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From6", + "label":"From6", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "b_toSpdMod", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8553", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From1", + "label":"From1", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "b_toActive", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8551", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"z_ctrlModReq", - "label":"z_ctrlModReq", + "name":"z_ctrlModPrev", + "label":"z_ctrlModPrev", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ @@ -1565,7 +1464,7 @@ "OutputFunctionCall" ], "values":[ - "4", + "5", "Port number", "[]", "[]", @@ -1605,11 +1504,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8597", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8549", + "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"b_toOpen", - "label":"b_toOpen", + "name":"z_ctrlModReq", + "label":"z_ctrlModReq", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ @@ -1625,20 +1524,14 @@ "SampleTime", "SignalType", "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" ], "values":[ - "1", + "4", "Port number", "[]", "[]", @@ -1650,17 +1543,10 @@ "-1", "auto", "off", + "", + "on", "off", - "0", - "off", - "reset", "off", - "0", - "", - [ - ], - "Dialog", - "Auto", "off" ], "tabs":[ @@ -1680,30 +1566,48 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", + "blocktype":"Inport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8558", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8595", + "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"From2", - "label":"From2", + "name":"constant8", + "label":"constant8", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ - "GotoTag", - "IconDisplay" + "Value", + "VectorParams1D", + "SampleTime", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "FramePeriod" ], "values":[ - "b_toTrqMod", - "Tag" + "OPEN_MODE", + "on", + "inf", + "[]", + "[]", + "Inherit: Inherit via back propagation", + "off", + "inf" ], "tabs":[ - "Parameter Attributes" + "Main", + "Signal Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 3, + 7 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1711,32 +1615,66 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Constant", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8569", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8548", + "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"Goto4", - "label":"Goto4", + "name":"b_errFlag", + "label":"b_errFlag", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" ], "values":[ - "b_toActive", - "local", - "Tag" + "3", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "", + "on", + "off", + "off", + "off" ], "tabs":[ - "Parameter Attributes" + "Main", + "Signal Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 2, + 11 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1744,24 +1682,26 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"Inport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8552", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8566", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From", - "label":"From", + "name":"Goto2", + "label":"Goto2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "b_errFlag", + "b_toTrqMod", + "local", "Tag" ], "tabs":[ @@ -1775,32 +1715,79 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8573", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8598", + "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"Goto9", - "label":"Goto9", + "name":"b_toActive", + "label":"b_toActive", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "b_motEna", - "local", - "Tag" + "2", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "off", + "0", + "off", + "reset", + "off", + "0", + "", + [ + ], + "Dialog", + "Auto", + "off" ], "tabs":[ - "Parameter Attributes" + "Main", + "Signal Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 2, + 11 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1808,65 +1795,43 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"Outport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9420", - "className":"Simulink.Inport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8580", + "className":"Simulink.RelationalOperator", "icon":"WebViewIcon3", - "name":"b_motStdStill", - "label":"b_motStdStill", + "name":"Relational Operator1", + "label":"Relational Operator1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ - "Port", - "IconDisplay", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", + "Operator", + "InputSameDT", + "OutDataTypeStr", + "RndMeth", "SampleTime", - "SignalType", - "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" + "ZeroCross" ], "values":[ - "2", - "Port number", - "[]", - "[]", - "Inherit: auto", + "==", "off", - "inherit", - "-1", - "Inherit", + "boolean", + "Simplest", "-1", - "auto", - "off", - "", - "on", - "off", - "off", - "off" + "on" ], "tabs":[ "Main", - "Signal Attributes", + "Data Type", "-Other" ], "tabs_idx":[ 0, - 2, - 11 + 1, + 4 ] }, "viewer":{ @@ -1875,16 +1840,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", + "blocktype":"RelationalOperator", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8548", - "className":"Simulink.Inport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8597", + "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"b_errFlag", - "label":"b_errFlag", + "name":"b_toOpen", + "label":"b_toOpen", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ @@ -1900,14 +1865,20 @@ "SampleTime", "SignalType", "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "3", + "1", "Port number", "[]", "[]", @@ -1919,10 +1890,17 @@ "-1", "auto", "off", - "", - "on", "off", + "0", + "off", + "reset", "off", + "0", + "", + [ + ], + "Dialog", + "Auto", "off" ], "tabs":[ @@ -1942,16 +1920,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", + "blocktype":"Outport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8554", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8552", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From10", - "label":"From10", + "name":"From", + "label":"From", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ @@ -1959,7 +1937,7 @@ "IconDisplay" ], "values":[ - "b_motEna", + "b_errFlag", "Tag" ], "tabs":[ @@ -1978,19 +1956,21 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8563", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9421", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From8", - "label":"From8", + "name":"Goto7", + "label":"Goto7", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "b_toOpen", + "b_motStdStill", + "local", "Tag" ], "tabs":[ @@ -2004,48 +1984,32 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8594", - "className":"Simulink.Constant", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8573", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"constant7", - "label":"constant7", + "name":"Goto9", + "label":"Goto9", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ - "Value", - "VectorParams1D", - "SampleTime", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "FramePeriod" + "GotoTag", + "TagVisibility", + "IconDisplay" ], "values":[ - "TRQ_MODE", - "on", - "inf", - "[]", - "[]", - "Inherit: Inherit via back propagation", - "off", - "inf" + "b_motEna", + "local", + "Tag" ], "tabs":[ - "Main", - "Signal Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 3, - 7 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -2053,30 +2017,66 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Constant", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8559", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8547", + "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"From3", - "label":"From3", + "name":"b_motEna", + "label":"b_motEna", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ - "GotoTag", - "IconDisplay" + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" ], "values":[ - "z_ctrlModReq", - "Tag" + "1", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "", + "on", + "off", + "off", + "off" ], "tabs":[ - "Parameter Attributes" + "Main", + "Signal Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 2, + 11 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -2084,16 +2084,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Inport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8547", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9420", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"b_motEna", - "label":"b_motEna", + "name":"b_motStdStill", + "label":"b_motStdStill", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ @@ -2116,7 +2116,7 @@ "OutputFunctionCall" ], "values":[ - "1", + "2", "Port number", "[]", "[]", @@ -2156,11 +2156,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8574", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8578", "className":"Simulink.Logic", "icon":"WebViewIcon3", - "name":"Logical Operator1", - "label":"Logical Operator1", + "name":"Logical Operator7", + "label":"Logical Operator7", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ @@ -2172,7 +2172,7 @@ "SampleTime" ], "values":[ - "AND", + "NOT", "2", "rectangular", "off", @@ -2201,11 +2201,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8575", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8579", "className":"Simulink.Logic", "icon":"WebViewIcon3", - "name":"Logical Operator3", - "label":"Logical Operator3", + "name":"Logical Operator9", + "label":"Logical Operator9", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ @@ -2217,8 +2217,8 @@ "SampleTime" ], "values":[ - "AND", - "3", + "NOT", + "2", "rectangular", "off", "boolean", @@ -2291,11 +2291,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8577", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8574", "className":"Simulink.Logic", "icon":"WebViewIcon3", - "name":"Logical Operator6", - "label":"Logical Operator6", + "name":"Logical Operator1", + "label":"Logical Operator1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ @@ -2307,8 +2307,8 @@ "SampleTime" ], "values":[ - "OR", - "3", + "AND", + "2", "rectangular", "off", "boolean", @@ -2336,11 +2336,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8578", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8577", "className":"Simulink.Logic", "icon":"WebViewIcon3", - "name":"Logical Operator7", - "label":"Logical Operator7", + "name":"Logical Operator6", + "label":"Logical Operator6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ @@ -2352,8 +2352,8 @@ "SampleTime" ], "values":[ - "NOT", - "2", + "OR", + "3", "rectangular", "off", "boolean", @@ -2381,11 +2381,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8579", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8575", "className":"Simulink.Logic", "icon":"WebViewIcon3", - "name":"Logical Operator9", - "label":"Logical Operator9", + "name":"Logical Operator3", + "label":"Logical Operator3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8546", "inspector":{ "params":[ @@ -2397,8 +2397,8 @@ "SampleTime" ], "values":[ - "NOT", - "2", + "AND", + "3", "rectangular", "off", "boolean", diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8546_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8546_d.svg index f3b3022..d4ad37a 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8546_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8546_d.svg @@ -83,11 +83,11 @@ - - + + - + @@ -97,30 +97,30 @@ - - 3 + + 4 - + - - + + - + - - b_toSpdMod + + b_toTrqMod @@ -131,11 +131,11 @@ - - + + - + @@ -145,30 +145,30 @@ - - 2 + + 3 - + - - + + - + - - b_toActive + + b_toSpdMod @@ -179,11 +179,11 @@ - - + + - + @@ -193,77 +193,29 @@ - - OPEN_MODE + + TRQ_MODE - + - + - - - - - uint8 - - - - - - - - - - - - - - - - - - - - - - - - - - SPD_MODE - - - - - - - - - - - - - - - - - - + - + uint8 @@ -285,11 +237,11 @@ - + - + OPEN_MODE @@ -307,11 +259,11 @@ - + - + uint8 @@ -333,11 +285,11 @@ - + - + SPD_MODE @@ -355,11 +307,11 @@ - + - + uint8 @@ -373,7 +325,7 @@ - + @@ -381,27 +333,27 @@ - + - + - + - + - + - + @@ -427,11 +379,11 @@ - + - + boolean @@ -443,37 +395,37 @@ - - - + + + - + - + - + - + - + - + - + @@ -488,22 +440,22 @@ - + - + - - + + - + boolean @@ -515,43 +467,43 @@ - - + + - + - + - - VLT_MODE + + TRQ_MODE - + - + - - + + - + uint8 @@ -563,38 +515,30 @@ - - - + + + - + - + - + - - - - - - - - - - + + - - + + @@ -608,22 +552,22 @@ - + - + - - + + - + boolean @@ -635,30 +579,38 @@ - - - + + + - + - + - + - - + + - - + + + + + + + + + + @@ -672,22 +624,22 @@ - + - + - - + + - + boolean @@ -699,68 +651,44 @@ - - - + + + - - + + - - - - - - - - - - - - - - - - - + - - + + - - + + VLT_MODE - - - - - - - - - - + + - - + + - - + + - - boolean + + uint8 @@ -771,37 +699,70 @@ - - - + + + - - + + - + - - + + - - + + [b_toSpdMod] - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + @@ -816,22 +777,22 @@ - + - + - - + + - + boolean @@ -843,44 +804,29 @@ - - - + + + - - + + - - + + - - TRQ_MODE + + [b_toActive] - - - - - - - - - - - - - - - - - uint8 + + @@ -891,29 +837,68 @@ - - - + + + - - + + - + - - + + - - [b_errFlag] + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + boolean @@ -924,28 +909,28 @@ - - + + - + - + - - [z_ctrlModReq] + + [z_ctrlModPrev] - + @@ -957,28 +942,28 @@ - - + + - + - + - - [b_toTrqMod] + + [b_toOpen] - + @@ -990,29 +975,44 @@ - - - + + + - - + + - - + + - + [b_toOpen] - - + + + + + + + + + + + + + + + + + boolean @@ -1023,11 +1023,11 @@ - - - + + + - + @@ -1037,24 +1037,16 @@ - + - - - - - - - - - + - - + + @@ -1068,22 +1060,22 @@ - + - + - - + + - + boolean @@ -1095,44 +1087,29 @@ - - - + + + - - + + - - + + - - [b_toOpen] + + [b_errFlag] - - - - - - - - - - - - - - - - - boolean + + @@ -1143,44 +1120,44 @@ - - + + - + - + - - [z_ctrlModReq] + + [b_motStdStill] - + - - + + - - + + - - uint8 + + boolean @@ -1191,44 +1168,44 @@ - - - + + + - - + + - - - + + + - - [b_motStdStill] + + SPD_MODE - - + + - - + + - - + + - - boolean + + uint8 @@ -1239,44 +1216,44 @@ - - + + - + - + - - [z_ctrlModReq] + + [b_toOpen] - + - - + + - - + + - - uint8 + + boolean @@ -1287,43 +1264,43 @@ - - + + - + - + - - [z_ctrlModPrev] + + [z_ctrlModReq] - + - + - - + + - + uint8 @@ -1335,44 +1312,44 @@ - - + + - + - + - - [b_toSpdMod] + + [z_ctrlModReq] - + - - + + - - + + - - boolean + + uint8 @@ -1383,44 +1360,44 @@ - - - + + + - - + + - - + + - - 4 + + [b_toTrqMod] - - + + - - - + + + - - + + - - b_toTrqMod + + boolean @@ -1431,60 +1408,44 @@ - - - + + + - - + + - - - - - - - - - + - - + + - - + + [z_ctrlModReq] - - - - - - - - - - + + - - + + - - + + - - boolean + + uint8 @@ -1495,44 +1456,44 @@ - - + + - + - + - - [b_toActive] + + [z_ctrlModPrev] - + - - + + - - + + - - boolean + + uint8 @@ -1543,28 +1504,28 @@ - - + + - + - + - - [b_toSpdMod] + + [z_ctrlModReq] - + @@ -1576,29 +1537,44 @@ - - - + + + - - + + - - + + - - [z_ctrlModPrev] + + [z_ctrlModReq] - - + + + + + + + + + + + + + + + + + uint8 @@ -1609,29 +1585,44 @@ - - - + + + - - + + - - + + - - [b_motStdStill] + + [b_motEna] - - + + + + + + + + + + + + + + + + + boolean @@ -1642,59 +1633,44 @@ - - - + + + - - + + - - + + - - 5 + + [b_toSpdMod] - - - - - - - - - - - - - - - - - z_ctrlModPrev + + - - + + - - + + - - uint8 + + boolean @@ -1705,44 +1681,44 @@ - - + + - + - + - - [z_ctrlModReq] + + [b_toActive] - + - - + + - - + + - - uint8 + + boolean @@ -1753,58 +1729,58 @@ - - + + - + - + - - 4 + + 5 - + - - + + - - + + - - z_ctrlModReq + + z_ctrlModPrev - + - - + + - + uint8 @@ -1816,44 +1792,59 @@ - - + + - + - + - - 1 + + 4 - + - - + + - - + + - - b_toOpen + + z_ctrlModReq + + + + + + + + + + + + + + + uint8 @@ -1864,44 +1855,44 @@ - - - + + + - - + + - - + + - - [b_toTrqMod] + + OPEN_MODE - - + + - - + + - - + + - - boolean + + uint8 @@ -1912,76 +1903,58 @@ - - - + + + - - + + - - + + - - [b_toActive] + + 3 - - + + - - - - - - - - - - - - - - - + + + + - - + + - - [b_errFlag] - - - - - - - + + b_errFlag - + - - + + - + boolean @@ -1993,28 +1966,28 @@ - - + + - + - + - - [b_motEna] + + [b_toTrqMod] - + @@ -2026,59 +1999,44 @@ - - + + - + - + - + 2 - + - - - - - - - - - - b_motStdStill - - - - - - - + + - - + + - - boolean + + b_toActive @@ -2089,58 +2047,67 @@ - - - + + + - - + + - + - - + + - - 3 + + + + + + + + + + + + + + + + + + - - - - + - - - - - - - - - - - b_errFlag + + + + + + + - + - - + + - + boolean @@ -2152,44 +2119,44 @@ - - - + + + - - + + - - + + - - [b_motEna] + + 1 - - + + - - - + + + - - + + - - boolean + + b_toOpen @@ -2200,43 +2167,43 @@ - - + + - + - + - - [b_toOpen] + + [b_errFlag] - + - + - - - + + + - + boolean @@ -2248,44 +2215,62 @@ - - - + + + - - + + - - + + - - TRQ_MODE + + [b_motStdStill] - - + + - - - - + + + + + + + + + + + + + + + - - + + - - uint8 + + [b_motEna] + + + + + + + @@ -2296,44 +2281,59 @@ - - - + + + - - + + - - + + - - [z_ctrlModReq] + + 1 - - + + + + + + + + + + + + + + + + + b_motEna - - + + - + - - uint8 + + boolean @@ -2344,11 +2344,11 @@ - - + + - + @@ -2358,44 +2358,44 @@ - - 1 + + 2 - + - - + + - + - - b_motEna + + b_motStdStill - + - + - + boolean @@ -2407,30 +2407,30 @@ - - - + + + - - + + - + - - + + - - + + @@ -2440,23 +2440,23 @@ - + - + - + boolean - - + + @@ -2471,30 +2471,30 @@ - - - + + + - - + + - + - - + + - - + + @@ -2503,32 +2503,32 @@ - - - - - - - - - - - - + - - + + - + boolean + + + + + + + + + + + @@ -2599,30 +2599,30 @@ - - - + + + - - + + - + - - + + - + - - + + @@ -2632,23 +2632,23 @@ - + - + - + boolean - - + + @@ -2663,30 +2663,30 @@ - - - + + + - - + + - + - - + + - + - - + + @@ -2696,23 +2696,23 @@ - + - + - + boolean - - + + @@ -2727,30 +2727,30 @@ - - - + + + - - + + - + - - + + - - + + @@ -2760,23 +2760,23 @@ - + - + - + boolean - - + + @@ -3050,10 +3050,10 @@ - + - + @@ -3417,5 +3417,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8603_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8603_d.json index 5a26ec7..a422452 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8603_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8603_d.json @@ -180,7 +180,7 @@ ] }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8603:33", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8603:12", "className":"Stateflow.Transition", "icon":"WebViewIcon8", "name":"", @@ -194,7 +194,7 @@ "Document" ], "values":[ - 1, + 2, "", "", "" @@ -312,7 +312,7 @@ ] }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8603:12", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8603:33", "className":"Stateflow.Transition", "icon":"WebViewIcon8", "name":"", @@ -326,7 +326,7 @@ "Document" ], "values":[ - 2, + 1, "", "", "" diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8603_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8603_d.svg index 36284cf..a040876 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8603_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8603_d.svg @@ -55,18 +55,6 @@ - - - - - - - - - - - - @@ -74,7 +62,7 @@ - + @@ -88,25 +76,25 @@ - + - + - + - + - + @@ -165,7 +153,7 @@ - + @@ -180,25 +168,25 @@ - + - + - + - + - + @@ -257,7 +245,7 @@ - + @@ -272,25 +260,25 @@ - + - + - + - + - + @@ -349,7 +337,7 @@ - + @@ -361,10 +349,22 @@ + + + + + + + + + + + + - + @@ -372,12 +372,26 @@ - + - + - + + + + + + + + + + + + + 2 + + @@ -404,19 +418,19 @@ - + - + - + - + [b_toSpdMod] @@ -426,11 +440,11 @@ - + - + 1 @@ -460,19 +474,19 @@ - + - + - + - + [b_toTrqMod] @@ -482,11 +496,11 @@ - + - + 1 @@ -522,7 +536,7 @@ - + @@ -530,26 +544,12 @@ - + - + - - - - - - - - - - - - - 2 - - + @@ -798,5 +798,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8658_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8658_d.json index d900a88..1e67a4b 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8658_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8658_d.json @@ -715,7 +715,7 @@ "OutputFunctionCall" ], "values":[ - "7", + "8", "Port number", "[]", "[]", @@ -815,7 +815,7 @@ "OutputFunctionCall" ], "values":[ - "8", + "9", "Port number", "[]", "[]", @@ -968,86 +968,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9197", - "className":"Simulink.Outport", - "icon":"WebViewIcon3", - "name":"r_devSignal2", - "label":"r_devSignal2", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", - "inspector":{ - "params":[ - "Port", - "IconDisplay", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" - ], - "values":[ - "6", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "off", - "0", - "off", - "reset", - "off", - "0", - "", - [ - ], - "Dialog", - "Auto", - "off" - ], - "tabs":[ - "Main", - "Signal Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 2, - 11 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Outport", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9195", "className":"Simulink.Outport", @@ -1129,80 +1049,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9142", - "className":"Simulink.UnitDelay", - "icon":"WebViewIcon3", - "name":"UnitDelay4", - "label":"UnitDelay4", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", - "inspector":{ - "params":[ - "InitialCondition", - "InputProcessing", - "SampleTime", - "StateName", - "CodeGenStateStorageTypeQualifier", - "StateMustResolveToSignalObject", - "StateSignalObject", - "StateStorageClass" - ], - "values":[ - "0", - "Inherited", - "-1", - "", - "", - "off", - [ - ], - "Auto" - ], - "tabs":[ - "Main", - "State Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 3, - 4 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"UnitDelay", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9072", - "className":"Simulink.Scope", - "icon":"WebViewIcon3", - "name":"Scope8", - "label":"Scope8", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", - "inspector":[ - ], - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Scope", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9045", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9109", "className":"Simulink.SubSystem", "icon":"WebViewIcon1", - "name":"Park_Transform", - "label":"Park_Transform", + "name":"Torque_Mode", + "label":"Torque_Mode", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -1254,7 +1105,7 @@ "void_void", "off", "off", - "on", + "off", "", "off", "", @@ -1295,108 +1146,50 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9074", - "className":"Simulink.SubSystem", - "icon":"WebViewIcon1", - "name":"Speed_Mode", - "label":"Speed_Mode", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9108", + "className":"Simulink.SwitchCase", + "icon":"WebViewIcon3", + "name":"Switch Case", + "label":"Switch Case", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ - "ShowPortLabels", - "Permissions", - "ErrorFcn", - "PermitHierarchicalResolution", - "TreatAsAtomicUnit", - "TreatAsGroupedWhenPropagatingVariantConditions", - "ActiveVariant", - "ActiveVariantBlock", - "AllowZeroVariantControls", - "BlockChoice", - "FunctionInterfaceSpec", - "FunctionWithSeparateData", - "GeneratePreprocessorConditionals", - "IsSubsystemVirtual", - "MemberBlocks", - "MinAlgLoopOccurrences", - "OverrideUsingVariant", - "PropExecContextOutsideSubsystem", - "PropagateVariantConditions", - "RTWFcnName", - "RTWFcnNameOpts", - "RTWFileName", - "RTWFileNameOpts", - "RTWMemSecDataConstants", - "RTWMemSecDataInternal", - "RTWMemSecDataParameters", - "RTWMemSecFuncExecute", - "RTWMemSecFuncInitTerm", - "RTWSystemCode", - "SystemSampleTime", - "TemplateBlock", - "Variant", - "VariantControl" + "CaseConditions", + "ShowDefaultCase", + "SampleTime", + "ZeroCross" ], "values":[ - "FromPortIcon", - "ReadWrite", - "", - "All", - "off", + "{VLT_MODE, SPD_MODE, TRQ_MODE}", "on", - "", - "", - "off", - "", - "void_void", - "off", - "off", - "off", - "", - "off", - "", - "off", - "off", - "", - "Auto", - "", - "Auto", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Auto", "-1", - "", - "off", - "" + "on" ], "tabs":[ - "Main", + "Parameter Attributes", "-Other" ], "tabs_idx":[ 0, - 6 + 2 ] }, "viewer":{ - "jshandler":"webview/handlers/ContainerHandler" + "jshandler":"webview/handlers/ElementHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"SubSystem", + "blocktype":"SwitchCase", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9029", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9045", "className":"Simulink.SubSystem", "icon":"WebViewIcon1", - "name":"Open_Mode", - "label":"Open_Mode", + "name":"Park_Transform", + "label":"Park_Transform", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -1448,7 +1241,7 @@ "void_void", "off", "off", - "off", + "on", "", "off", "", @@ -1550,6 +1343,86 @@ "masktype":"" } }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9196", + "className":"Simulink.Outport", + "icon":"WebViewIcon3", + "name":"r_devSignal1", + "label":"r_devSignal1", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", + "inspector":{ + "params":[ + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" + ], + "values":[ + "5", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "off", + "0", + "off", + "reset", + "off", + "0", + "", + [ + ], + "Dialog", + "Auto", + "off" + ], + "tabs":[ + "Main", + "Signal Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 2, + 11 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Outport", + "masktype":"" + } + }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9023", "className":"Simulink.Mux", @@ -1717,25 +1590,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9073", - "className":"Simulink.Scope", - "icon":"WebViewIcon3", - "name":"Scope9", - "label":"Scope9", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", - "inspector":[ - ], - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Scope", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8864", "className":"Simulink.Goto", @@ -1770,65 +1624,43 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8863", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto8", - "label":"Goto8", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", - "inspector":{ - "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" - ], - "values":[ - "b_enaFOC", - "local", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Goto", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9108", - "className":"Simulink.SwitchCase", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9142", + "className":"Simulink.UnitDelay", "icon":"WebViewIcon3", - "name":"Switch Case", - "label":"Switch Case", + "name":"UnitDelay4", + "label":"UnitDelay4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ - "CaseConditions", - "ShowDefaultCase", + "InitialCondition", + "InputProcessing", "SampleTime", - "ZeroCross" + "StateName", + "CodeGenStateStorageTypeQualifier", + "StateMustResolveToSignalObject", + "StateSignalObject", + "StateStorageClass" ], "values":[ - "{VLT_MODE, SPD_MODE, TRQ_MODE}", - "on", + "0", + "Inherited", "-1", - "on" + "", + "", + "off", + [ + ], + "Auto" ], "tabs":[ - "Parameter Attributes", + "Main", + "State Attributes", "-Other" ], "tabs_idx":[ 0, - 2 + 3, + 4 ] }, "viewer":{ @@ -1837,16 +1669,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"SwitchCase", + "blocktype":"UnitDelay", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8861", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8863", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto6", - "label":"Goto6", + "name":"Goto8", + "label":"Goto8", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -1855,7 +1687,7 @@ "IconDisplay" ], "values":[ - "Vq_max", + "b_enaFOC", "local", "Tag" ], @@ -1875,11 +1707,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8860", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8861", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto40", - "label":"Goto40", + "name":"Goto6", + "label":"Goto6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -1888,7 +1720,7 @@ "IconDisplay" ], "values":[ - "id_TgtAbs", + "Vq_max", "local", "Tag" ], @@ -1908,143 +1740,108 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8857", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto35", - "label":"Goto35", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9029", + "className":"Simulink.SubSystem", + "icon":"WebViewIcon1", + "name":"Open_Mode", + "label":"Open_Mode", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" + "ShowPortLabels", + "Permissions", + "ErrorFcn", + "PermitHierarchicalResolution", + "TreatAsAtomicUnit", + "TreatAsGroupedWhenPropagatingVariantConditions", + "ActiveVariant", + "ActiveVariantBlock", + "AllowZeroVariantControls", + "BlockChoice", + "FunctionInterfaceSpec", + "FunctionWithSeparateData", + "GeneratePreprocessorConditionals", + "IsSubsystemVirtual", + "MemberBlocks", + "MinAlgLoopOccurrences", + "OverrideUsingVariant", + "PropExecContextOutsideSubsystem", + "PropagateVariantConditions", + "RTWFcnName", + "RTWFcnNameOpts", + "RTWFileName", + "RTWFileNameOpts", + "RTWMemSecDataConstants", + "RTWMemSecDataInternal", + "RTWMemSecDataParameters", + "RTWMemSecFuncExecute", + "RTWMemSecFuncInitTerm", + "RTWSystemCode", + "SystemSampleTime", + "TemplateBlock", + "Variant", + "VariantControl" ], "values":[ - "r_sin", - "local", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Goto", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8851", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto3", - "label":"Goto3", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", - "inspector":{ - "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" - ], - "values":[ - "z_ctrlMod", - "local", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Goto", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8850", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto29", - "label":"Goto29", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", - "inspector":{ - "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" - ], - "values":[ - "id_min", - "local", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Goto", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8848", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto27", - "label":"Goto27", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", - "inspector":{ - "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" - ], - "values":[ - "r_inpTgtSca", - "local", - "Tag" + "FromPortIcon", + "ReadWrite", + "", + "All", + "off", + "on", + "", + "", + "off", + "", + "void_void", + "off", + "off", + "off", + "", + "off", + "", + "off", + "off", + "", + "Auto", + "", + "Auto", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Auto", + "-1", + "", + "off", + "" ], "tabs":[ - "Parameter Attributes" + "Main", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 6 + ] }, "viewer":{ - "jshandler":"webview/handlers/ElementHandler" + "jshandler":"webview/handlers/ContainerHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"SubSystem", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8854", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9673", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto32", - "label":"Goto32", + "name":"Goto5", + "label":"Goto5", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -2053,7 +1850,7 @@ "IconDisplay" ], "values":[ - "n_max", + "r_inpTgt", "local", "Tag" ], @@ -2073,11 +1870,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8844", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8858", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto23", - "label":"Goto23", + "name":"Goto36", + "label":"Goto36", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -2086,7 +1883,7 @@ "IconDisplay" ], "values":[ - "iq", + "r_cos", "local", "Tag" ], @@ -2106,11 +1903,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8841", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8857", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto20", - "label":"Goto20", + "name":"Goto35", + "label":"Goto35", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -2119,7 +1916,7 @@ "IconDisplay" ], "values":[ - "Vd", + "r_sin", "local", "Tag" ], @@ -2139,11 +1936,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9109", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9171", "className":"Simulink.SubSystem", "icon":"WebViewIcon1", - "name":"Torque_Mode", - "label":"Torque_Mode", + "name":"Voltage_Mode", + "label":"Voltage_Mode", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -2236,11 +2033,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8836", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8855", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto16", - "label":"Goto16", + "name":"Goto33", + "label":"Goto33", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -2249,7 +2046,7 @@ "IconDisplay" ], "values":[ - "Vq_prev", + "n_min", "local", "Tag" ], @@ -2269,11 +2066,77 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9171", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8852", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto30", + "label":"Goto30", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", + "inspector":{ + "params":[ + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "Vq", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8848", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto27", + "label":"Goto27", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", + "inspector":{ + "params":[ + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "r_inpTgtSca", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9074", "className":"Simulink.SubSystem", "icon":"WebViewIcon1", - "name":"Voltage_Mode", - "label":"Voltage_Mode", + "name":"Speed_Mode", + "label":"Speed_Mode", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -2366,11 +2229,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8837", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8844", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto17", - "label":"Goto17", + "name":"Goto23", + "label":"Goto23", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -2379,7 +2242,7 @@ "IconDisplay" ], "values":[ - "Vd_max", + "iq", "local", "Tag" ], @@ -2399,11 +2262,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8834", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8842", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto14", - "label":"Goto14", + "name":"Goto21", + "label":"Goto21", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -2412,7 +2275,7 @@ "IconDisplay" ], "values":[ - "Vq_Vlt", + "a_elecAngle", "local", "Tag" ], @@ -2432,11 +2295,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8839", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8838", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto19", - "label":"Goto19", + "name":"Goto18", + "label":"Goto18", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -2445,7 +2308,7 @@ "IconDisplay" ], "values":[ - "id_max", + "Vd_min", "local", "Tag" ], @@ -2465,11 +2328,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8831", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8837", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto11", - "label":"Goto11", + "name":"Goto17", + "label":"Goto17", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -2478,7 +2341,7 @@ "IconDisplay" ], "values":[ - "Vq_Trq", + "Vd_max", "local", "Tag" ], @@ -2498,19 +2361,21 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8826", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8847", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From71", - "label":"From71", + "name":"Goto26", + "label":"Goto26", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "id", + "id_Tgt", + "local", "Tag" ], "tabs":[ @@ -2524,24 +2389,26 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9655", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8849", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From7", - "label":"From7", + "name":"Goto28", + "label":"Goto28", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "r_inpTgtSca", + "iq_min", + "local", "Tag" ], "tabs":[ @@ -2555,24 +2422,26 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8824", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8836", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From68", - "label":"From68", + "name":"Goto16", + "label":"Goto16", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "iq_limPrott", + "Vq_prev", + "local", "Tag" ], "tabs":[ @@ -2586,24 +2455,26 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8823", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8832", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From67", - "label":"From67", + "name":"Goto12", + "label":"Goto12", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "n_limProt", + "Vq_Spd", + "local", "Tag" ], "tabs":[ @@ -2617,16 +2488,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8856", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8831", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto34", - "label":"Goto34", + "name":"Goto11", + "label":"Goto11", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -2635,7 +2506,7 @@ "IconDisplay" ], "values":[ - "n_limProt", + "Vq_Trq", "local", "Tag" ], @@ -2655,21 +2526,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8855", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8826", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto33", - "label":"Goto33", + "name":"From71", + "label":"From71", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "n_min", - "local", + "id", "Tag" ], "tabs":[ @@ -2683,16 +2552,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8817", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9655", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From61", - "label":"From61", + "name":"From7", + "label":"From7", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -2700,7 +2569,7 @@ "IconDisplay" ], "values":[ - "iq", + "r_inpTgt", "Tag" ], "tabs":[ @@ -2719,11 +2588,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8816", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8824", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From60", - "label":"From60", + "name":"From68", + "label":"From68", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -2731,7 +2600,7 @@ "IconDisplay" ], "values":[ - "iq_min", + "iq_limPrott", "Tag" ], "tabs":[ @@ -2750,11 +2619,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8815", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8822", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From6", - "label":"From6", + "name":"From66", + "label":"From66", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -2762,7 +2631,7 @@ "IconDisplay" ], "values":[ - "Vq", + "n_min", "Tag" ], "tabs":[ @@ -2781,19 +2650,21 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8814", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8862", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From59", - "label":"From59", + "name":"Goto7", + "label":"Goto7", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "iq_max", + "Vq_min", + "local", "Tag" ], "tabs":[ @@ -2807,16 +2678,35 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8811", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9072", + "className":"Simulink.Scope", + "icon":"WebViewIcon3", + "name":"Scope8", + "label":"Scope8", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", + "inspector":[ + ], + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Scope", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8821", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From56", - "label":"From56", + "name":"From65", + "label":"From65", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -2824,7 +2714,7 @@ "IconDisplay" ], "values":[ - "Vd_min", + "n_max", "Tag" ], "tabs":[ @@ -2843,37 +2733,27 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8865", - "className":"Simulink.If", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8853", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"If1", - "label":"If1", + "name":"Goto31", + "label":"Goto31", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ - "NumInputs", - "IfExpression", - "ElseIfExpressions", - "ShowElse", - "SampleTime", - "ZeroCross" + "GotoTag", + "TagVisibility", + "IconDisplay" ], "values":[ - "1", - "u1 ~= 0", - "", - "off", - "-1", - "on" + "iq_limPrott", + "local", + "Tag" ], "tabs":[ - "Parameter Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 4 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -2881,24 +2761,26 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"If", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8807", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8839", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From52", - "label":"From52", + "name":"Goto19", + "label":"Goto19", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "id_TgtAbs", + "id_max", + "local", "Tag" ], "tabs":[ @@ -2912,24 +2794,26 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8820", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8845", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From64", - "label":"From64", + "name":"Goto24", + "label":"Goto24", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "n_limProt", + "id", + "local", "Tag" ], "tabs":[ @@ -2943,47 +2827,35 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8804", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9073", + "className":"Simulink.Scope", "icon":"WebViewIcon3", - "name":"From49", - "label":"From49", + "name":"Scope9", + "label":"Scope9", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "Vq_Open", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, + "inspector":[ + ], "viewer":{ "jshandler":"webview/handlers/ElementHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Scope", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8813", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8816", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From58", - "label":"From58", + "name":"From60", + "label":"From60", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -2991,7 +2863,7 @@ "IconDisplay" ], "values":[ - "id_min", + "iq_min", "Tag" ], "tabs":[ @@ -3010,11 +2882,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8852", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8846", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto30", - "label":"Goto30", + "name":"Goto25", + "label":"Goto25", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -3023,7 +2895,7 @@ "IconDisplay" ], "values":[ - "Vq", + "iq_max", "local", "Tag" ], @@ -3043,11 +2915,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8803", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8815", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From48", - "label":"From48", + "name":"From6", + "label":"From6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -3055,7 +2927,7 @@ "IconDisplay" ], "values":[ - "Vq_Trq", + "Vq", "Tag" ], "tabs":[ @@ -3074,21 +2946,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8858", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8814", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto36", - "label":"Goto36", + "name":"From59", + "label":"From59", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "r_cos", - "local", + "iq_max", "Tag" ], "tabs":[ @@ -3102,26 +2972,24 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8847", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8809", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto26", - "label":"Goto26", + "name":"From54", + "label":"From54", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "id_Tgt", - "local", + "Vd_min", "Tag" ], "tabs":[ @@ -3135,16 +3003,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8799", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8807", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From44", - "label":"From44", + "name":"From52", + "label":"From52", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -3152,7 +3020,7 @@ "IconDisplay" ], "values":[ - "Vq_min", + "id_TgtAbs", "Tag" ], "tabs":[ @@ -3171,11 +3039,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8796", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8803", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From41", - "label":"From41", + "name":"From48", + "label":"From48", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -3183,7 +3051,7 @@ "IconDisplay" ], "values":[ - "Vq_max", + "Vq_Trq", "Tag" ], "tabs":[ @@ -3202,11 +3070,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8795", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8802", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From40", - "label":"From40", + "name":"From47", + "label":"From47", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -3214,7 +3082,7 @@ "IconDisplay" ], "values":[ - "Vq", + "Vq_Spd", "Tag" ], "tabs":[ @@ -3233,108 +3101,42 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9143", - "className":"Simulink.SubSystem", - "icon":"WebViewIcon1", - "name":"Vd_Calculation", - "label":"Vd_Calculation", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8813", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From58", + "label":"From58", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ - "ShowPortLabels", - "Permissions", - "ErrorFcn", - "PermitHierarchicalResolution", - "TreatAsAtomicUnit", - "TreatAsGroupedWhenPropagatingVariantConditions", - "ActiveVariant", - "ActiveVariantBlock", - "AllowZeroVariantControls", - "BlockChoice", - "FunctionInterfaceSpec", - "FunctionWithSeparateData", - "GeneratePreprocessorConditionals", - "IsSubsystemVirtual", - "MemberBlocks", - "MinAlgLoopOccurrences", - "OverrideUsingVariant", - "PropExecContextOutsideSubsystem", - "PropagateVariantConditions", - "RTWFcnName", - "RTWFcnNameOpts", - "RTWFileName", - "RTWFileNameOpts", - "RTWMemSecDataConstants", - "RTWMemSecDataInternal", - "RTWMemSecDataParameters", - "RTWMemSecFuncExecute", - "RTWMemSecFuncInitTerm", - "RTWSystemCode", - "SystemSampleTime", - "TemplateBlock", - "Variant", - "VariantControl" + "GotoTag", + "IconDisplay" ], "values":[ - "FromPortIcon", - "ReadWrite", - "", - "All", - "off", - "on", - "", - "", - "off", - "", - "void_void", - "off", - "off", - "off", - "", - "off", - "", - "off", - "off", - "", - "Auto", - "", - "Auto", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Auto", - "-1", - "", - "off", - "" + "id_min", + "Tag" ], "tabs":[ - "Main", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 6 - ] + "tabs_idx":0 }, "viewer":{ - "jshandler":"webview/handlers/ContainerHandler" + "jshandler":"webview/handlers/ElementHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"SubSystem", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8792", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8801", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From37", - "label":"From37", + "name":"From46", + "label":"From46", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -3342,7 +3144,7 @@ "IconDisplay" ], "values":[ - "r_inpTgtSca", + "Vq_Vlt", "Tag" ], "tabs":[ @@ -3361,19 +3163,21 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8791", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8841", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From36", - "label":"From36", + "name":"Goto20", + "label":"Goto20", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "n_mot", + "Vd", + "local", "Tag" ], "tabs":[ @@ -3387,16 +3191,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8790", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8808", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From35", - "label":"From35", + "name":"From53", + "label":"From53", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -3404,7 +3208,7 @@ "IconDisplay" ], "values":[ - "b_enaFOC", + "Vd_max", "Tag" ], "tabs":[ @@ -3423,11 +3227,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8789", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8799", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From34", - "label":"From34", + "name":"From44", + "label":"From44", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -3454,11 +3258,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8822", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8798", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From66", - "label":"From66", + "name":"From43", + "label":"From43", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -3466,7 +3270,7 @@ "IconDisplay" ], "values":[ - "n_min", + "Vd", "Tag" ], "tabs":[ @@ -3485,11 +3289,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8805", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8795", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From5", - "label":"From5", + "name":"From40", + "label":"From40", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -3497,7 +3301,7 @@ "IconDisplay" ], "values":[ - "Vq_prev", + "Vq", "Tag" ], "tabs":[ @@ -3516,11 +3320,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8802", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8794", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From47", - "label":"From47", + "name":"From4", + "label":"From4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -3528,7 +3332,7 @@ "IconDisplay" ], "values":[ - "Vq_Spd", + "Vd", "Tag" ], "tabs":[ @@ -3547,11 +3351,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8787", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8811", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From32", - "label":"From32", + "name":"From56", + "label":"From56", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -3559,7 +3363,7 @@ "IconDisplay" ], "values":[ - "id", + "Vd_min", "Tag" ], "tabs":[ @@ -3578,11 +3382,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8786", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8791", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From31", - "label":"From31", + "name":"From36", + "label":"From36", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -3590,7 +3394,7 @@ "IconDisplay" ], "values":[ - "iq", + "n_mot", "Tag" ], "tabs":[ @@ -3609,74 +3413,25 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9196", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8790", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"r_devSignal1", - "label":"r_devSignal1", + "name":"From35", + "label":"From35", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ - "Port", - "IconDisplay", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" - ], + "GotoTag", + "IconDisplay" + ], "values":[ - "5", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "off", - "0", - "off", - "reset", - "off", - "0", - "", - [ - ], - "Dialog", - "Auto", - "off" + "b_enaFOC", + "Tag" ], "tabs":[ - "Main", - "Signal Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 2, - 11 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -3684,16 +3439,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8784", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8789", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From29", - "label":"From29", + "name":"From34", + "label":"From34", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -3701,7 +3456,7 @@ "IconDisplay" ], "values":[ - "r_cos", + "Vq_min", "Tag" ], "tabs":[ @@ -3720,11 +3475,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8806", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8788", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From50", - "label":"From50", + "name":"From33", + "label":"From33", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -3732,7 +3487,7 @@ "IconDisplay" ], "values":[ - "Vq", + "id_Tgt", "Tag" ], "tabs":[ @@ -3751,21 +3506,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8843", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8797", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto22", - "label":"Goto22", + "name":"From42", + "label":"From42", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "n_motAbs", - "local", + "Vq_min", "Tag" ], "tabs":[ @@ -3779,16 +3532,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8783", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8784", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From28", - "label":"From28", + "name":"From29", + "label":"From29", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -3796,7 +3549,7 @@ "IconDisplay" ], "values":[ - "r_sin", + "r_cos", "Tag" ], "tabs":[ @@ -3846,11 +3599,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8781", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8818", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From26", - "label":"From26", + "name":"From62", + "label":"From62", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -3858,7 +3611,7 @@ "IconDisplay" ], "values":[ - "r_sin", + "iq_limPrott", "Tag" ], "tabs":[ @@ -3877,11 +3630,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8812", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8780", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From57", - "label":"From57", + "name":"From25", + "label":"From25", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -3889,7 +3642,7 @@ "IconDisplay" ], "values":[ - "id_max", + "Vq_max", "Tag" ], "tabs":[ @@ -3908,11 +3661,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8809", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8820", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From54", - "label":"From54", + "name":"From64", + "label":"From64", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -3920,7 +3673,7 @@ "IconDisplay" ], "values":[ - "Vd_min", + "n_limProt", "Tag" ], "tabs":[ @@ -3970,11 +3723,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8776", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8800", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From2", - "label":"From2", + "name":"From45", + "label":"From45", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -3982,7 +3735,7 @@ "IconDisplay" ], "values":[ - "Vd", + "iq", "Tag" ], "tabs":[ @@ -4001,11 +3754,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8772", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8796", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From15", - "label":"From15", + "name":"From41", + "label":"From41", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -4013,7 +3766,7 @@ "IconDisplay" ], "values":[ - "r_inpTgtSca", + "Vq_max", "Tag" ], "tabs":[ @@ -4032,11 +3785,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8775", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8776", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From19", - "label":"From19", + "name":"From2", + "label":"From2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -4044,7 +3797,7 @@ "IconDisplay" ], "values":[ - "a_elecAngle", + "Vd", "Tag" ], "tabs":[ @@ -4063,11 +3816,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8770", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8777", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From13", - "label":"From13", + "name":"From20", + "label":"From20", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -4075,7 +3828,7 @@ "IconDisplay" ], "values":[ - "id_Tgt", + "Vq_min", "Tag" ], "tabs":[ @@ -4094,11 +3847,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8825", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8773", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From69", - "label":"From69", + "name":"From16", + "label":"From16", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -4106,7 +3859,7 @@ "IconDisplay" ], "values":[ - "z_ctrlMod", + "Vq_max", "Tag" ], "tabs":[ @@ -4125,11 +3878,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8768", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8783", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From11", - "label":"From11", + "name":"From28", + "label":"From28", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -4137,7 +3890,7 @@ "IconDisplay" ], "values":[ - "iq", + "r_sin", "Tag" ], "tabs":[ @@ -4156,11 +3909,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8777", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8770", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From20", - "label":"From20", + "name":"From13", + "label":"From13", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -4168,7 +3921,7 @@ "IconDisplay" ], "values":[ - "Vq_min", + "id_Tgt", "Tag" ], "tabs":[ @@ -4187,11 +3940,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8808", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8772", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From53", - "label":"From53", + "name":"From15", + "label":"From15", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -4199,7 +3952,7 @@ "IconDisplay" ], "values":[ - "Vd_max", + "r_inpTgtSca", "Tag" ], "tabs":[ @@ -4218,108 +3971,77 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8743", - "className":"Simulink.SubSystem", - "icon":"WebViewIcon1", - "name":"Field_Weakening", - "label":"Field_Weakening", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8860", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto40", + "label":"Goto40", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ - "ShowPortLabels", - "Permissions", - "ErrorFcn", - "PermitHierarchicalResolution", - "TreatAsAtomicUnit", - "TreatAsGroupedWhenPropagatingVariantConditions", - "ActiveVariant", - "ActiveVariantBlock", - "AllowZeroVariantControls", - "BlockChoice", - "FunctionInterfaceSpec", - "FunctionWithSeparateData", - "GeneratePreprocessorConditionals", - "IsSubsystemVirtual", - "MemberBlocks", - "MinAlgLoopOccurrences", - "OverrideUsingVariant", - "PropExecContextOutsideSubsystem", - "PropagateVariantConditions", - "RTWFcnName", - "RTWFcnNameOpts", - "RTWFileName", - "RTWFileNameOpts", - "RTWMemSecDataConstants", - "RTWMemSecDataInternal", - "RTWMemSecDataParameters", - "RTWMemSecFuncExecute", - "RTWMemSecFuncInitTerm", - "RTWSystemCode", - "SystemSampleTime", - "TemplateBlock", - "Variant", - "VariantControl" + "GotoTag", + "TagVisibility", + "IconDisplay" ], "values":[ - "FromPortIcon", - "ReadWrite", - "", - "All", - "off", - "on", - "", - "", - "off", - "", - "void_void", - "off", - "off", - "on", - "", - "off", - "", - "off", - "off", - "", - "Auto", - "", - "Auto", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Auto", - "-1", - "", - "off", - "" + "id_TgtAbs", + "local", + "Tag" ], "tabs":[ - "Main", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 6 - ] + "tabs_idx":0 }, "viewer":{ - "jshandler":"webview/handlers/ContainerHandler" + "jshandler":"webview/handlers/ElementHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"SubSystem", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8819", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8854", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto32", + "label":"Goto32", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", + "inspector":{ + "params":[ + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "n_max", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8786", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From63", - "label":"From63", + "name":"From31", + "label":"From31", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -4327,7 +4049,7 @@ "IconDisplay" ], "values":[ - "n_mot", + "iq", "Tag" ], "tabs":[ @@ -4346,21 +4068,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8842", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8810", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto21", - "label":"Goto21", + "name":"From55", + "label":"From55", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "a_elecAngle", - "local", + "Vd_max", "Tag" ], "tabs":[ @@ -4374,123 +4094,228 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8726", - "className":"Simulink.SubSystem", - "icon":"WebViewIcon1", - "name":"Current_Filtering", - "label":"Current_Filtering", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8787", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From32", + "label":"From32", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ - "ShowPortLabels", - "Permissions", - "ErrorFcn", - "PermitHierarchicalResolution", - "TreatAsAtomicUnit", - "TreatAsGroupedWhenPropagatingVariantConditions", - "ActiveVariant", - "ActiveVariantBlock", - "AllowZeroVariantControls", - "BlockChoice", - "FunctionInterfaceSpec", - "FunctionWithSeparateData", - "GeneratePreprocessorConditionals", - "IsSubsystemVirtual", - "MemberBlocks", - "MinAlgLoopOccurrences", - "OverrideUsingVariant", - "PropExecContextOutsideSubsystem", - "PropagateVariantConditions", - "RTWFcnName", - "RTWFcnNameOpts", - "RTWFileName", - "RTWFileNameOpts", - "RTWMemSecDataConstants", - "RTWMemSecDataInternal", - "RTWMemSecDataParameters", - "RTWMemSecFuncExecute", - "RTWMemSecFuncInitTerm", - "RTWSystemCode", - "SystemSampleTime", - "TemplateBlock", - "Variant", - "VariantControl" + "GotoTag", + "IconDisplay" ], "values":[ - "FromPortIcon", - "ReadWrite", - "", - "All", - "off", - "on", - "", - "", - "off", - "", - "void_void", + "id", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8785", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From3", + "label":"From3", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "n_motAbs", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8774", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From18", + "label":"From18", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "r_inpTgtSca", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8793", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From38", + "label":"From38", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "Vq_max", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9197", + "className":"Simulink.Outport", + "icon":"WebViewIcon3", + "name":"r_devSignal2", + "label":"r_devSignal2", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", + "inspector":{ + "params":[ + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" + ], + "values":[ + "6", + "Port number", + "[]", + "[]", + "Inherit: auto", "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", "off", - "on", - "", "off", - "", + "0", "off", + "reset", "off", + "0", "", + [ + ], + "Dialog", "Auto", - "", - "Auto", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Auto", - "-1", - "", - "off", - "" + "off" ], "tabs":[ "Main", + "Signal Attributes", "-Other" ], "tabs_idx":[ 0, - 6 + 2, + 11 ] }, "viewer":{ - "jshandler":"webview/handlers/ContainerHandler" + "jshandler":"webview/handlers/ElementHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"SubSystem", + "blocktype":"Outport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8846", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8812", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto25", - "label":"Goto25", + "name":"From57", + "label":"From57", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "iq_max", - "local", + "id_max", "Tag" ], "tabs":[ @@ -4504,16 +4329,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8766", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8823", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From1", - "label":"From1", + "name":"From67", + "label":"From67", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -4521,7 +4346,7 @@ "IconDisplay" ], "values":[ - "id", + "n_limProt", "Tag" ], "tabs":[ @@ -4540,42 +4365,108 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8821", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From65", - "label":"From65", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8726", + "className":"Simulink.SubSystem", + "icon":"WebViewIcon1", + "name":"Current_Filtering", + "label":"Current_Filtering", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ - "GotoTag", - "IconDisplay" + "ShowPortLabels", + "Permissions", + "ErrorFcn", + "PermitHierarchicalResolution", + "TreatAsAtomicUnit", + "TreatAsGroupedWhenPropagatingVariantConditions", + "ActiveVariant", + "ActiveVariantBlock", + "AllowZeroVariantControls", + "BlockChoice", + "FunctionInterfaceSpec", + "FunctionWithSeparateData", + "GeneratePreprocessorConditionals", + "IsSubsystemVirtual", + "MemberBlocks", + "MinAlgLoopOccurrences", + "OverrideUsingVariant", + "PropExecContextOutsideSubsystem", + "PropagateVariantConditions", + "RTWFcnName", + "RTWFcnNameOpts", + "RTWFileName", + "RTWFileNameOpts", + "RTWMemSecDataConstants", + "RTWMemSecDataInternal", + "RTWMemSecDataParameters", + "RTWMemSecFuncExecute", + "RTWMemSecFuncInitTerm", + "RTWSystemCode", + "SystemSampleTime", + "TemplateBlock", + "Variant", + "VariantControl" ], "values":[ - "n_max", - "Tag" + "FromPortIcon", + "ReadWrite", + "", + "All", + "off", + "on", + "", + "", + "off", + "", + "void_void", + "off", + "off", + "on", + "", + "off", + "", + "off", + "off", + "", + "Auto", + "", + "Auto", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Auto", + "-1", + "", + "off", + "" ], "tabs":[ - "Parameter Attributes" + "Main", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 6 + ] }, "viewer":{ - "jshandler":"webview/handlers/ElementHandler" + "jshandler":"webview/handlers/ContainerHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"SubSystem", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8810", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8768", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From55", - "label":"From55", + "name":"From11", + "label":"From11", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -4583,7 +4474,7 @@ "IconDisplay" ], "values":[ - "Vd_max", + "iq", "Tag" ], "tabs":[ @@ -4602,11 +4493,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8849", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8850", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto28", - "label":"Goto28", + "name":"Goto29", + "label":"Goto29", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -4615,7 +4506,7 @@ "IconDisplay" ], "values":[ - "iq_min", + "id_min", "local", "Tag" ], @@ -4635,11 +4526,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8668", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8743", "className":"Simulink.SubSystem", "icon":"WebViewIcon1", - "name":"Clarke_Transform", - "label":"Clarke_Transform", + "name":"Field_Weakening", + "label":"Field_Weakening", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -4732,11 +4623,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8832", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8834", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto12", - "label":"Goto12", + "name":"Goto14", + "label":"Goto14", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -4745,7 +4636,7 @@ "IconDisplay" ], "values":[ - "Vq_Spd", + "Vq_Vlt", "local", "Tag" ], @@ -4765,20 +4656,20 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8798", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9026", + "className":"Simulink.Mux", "icon":"WebViewIcon3", - "name":"From43", - "label":"From43", + "name":"Mux2", + "label":"Mux2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ - "GotoTag", - "IconDisplay" + "Inputs", + "DisplayOption" ], "values":[ - "Vd", - "Tag" + "2", + "bar" ], "tabs":[ "Parameter Attributes" @@ -4791,30 +4682,42 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Mux", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8773", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8865", + "className":"Simulink.If", "icon":"WebViewIcon3", - "name":"From16", - "label":"From16", + "name":"If1", + "label":"If1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ - "GotoTag", - "IconDisplay" + "NumInputs", + "IfExpression", + "ElseIfExpressions", + "ShowElse", + "SampleTime", + "ZeroCross" ], "values":[ - "Vq_max", - "Tag" + "1", + "u1 ~= 0", + "", + "off", + "-1", + "on" ], "tabs":[ - "Parameter Attributes" + "Parameter Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 4 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -4822,16 +4725,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"If", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8765", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8806", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From", - "label":"From", + "name":"From50", + "label":"From50", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -4839,7 +4742,7 @@ "IconDisplay" ], "values":[ - "r_inpTgtSca", + "Vq", "Tag" ], "tabs":[ @@ -4858,52 +4761,118 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8838", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto18", - "label":"Goto18", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9143", + "className":"Simulink.SubSystem", + "icon":"WebViewIcon1", + "name":"Vd_Calculation", + "label":"Vd_Calculation", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" + "ShowPortLabels", + "Permissions", + "ErrorFcn", + "PermitHierarchicalResolution", + "TreatAsAtomicUnit", + "TreatAsGroupedWhenPropagatingVariantConditions", + "ActiveVariant", + "ActiveVariantBlock", + "AllowZeroVariantControls", + "BlockChoice", + "FunctionInterfaceSpec", + "FunctionWithSeparateData", + "GeneratePreprocessorConditionals", + "IsSubsystemVirtual", + "MemberBlocks", + "MinAlgLoopOccurrences", + "OverrideUsingVariant", + "PropExecContextOutsideSubsystem", + "PropagateVariantConditions", + "RTWFcnName", + "RTWFcnNameOpts", + "RTWFileName", + "RTWFileNameOpts", + "RTWMemSecDataConstants", + "RTWMemSecDataInternal", + "RTWMemSecDataParameters", + "RTWMemSecFuncExecute", + "RTWMemSecFuncInitTerm", + "RTWSystemCode", + "SystemSampleTime", + "TemplateBlock", + "Variant", + "VariantControl" ], "values":[ - "Vd_min", - "local", - "Tag" + "FromPortIcon", + "ReadWrite", + "", + "All", + "off", + "on", + "", + "", + "off", + "", + "void_void", + "off", + "off", + "off", + "", + "off", + "", + "off", + "off", + "", + "Auto", + "", + "Auto", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Auto", + "-1", + "", + "off", + "" ], "tabs":[ - "Parameter Attributes" + "Main", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 6 + ] }, "viewer":{ - "jshandler":"webview/handlers/ElementHandler" + "jshandler":"webview/handlers/ContainerHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"SubSystem", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8800", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8851", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From45", - "label":"From45", + "name":"Goto3", + "label":"Goto3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "iq", + "z_ctrlMod", + "local", "Tag" ], "tabs":[ @@ -4917,25 +4886,25 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8785", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8667", + "className":"Simulink.ActionPort", "icon":"WebViewIcon3", - "name":"From3", - "label":"From3", + "name":"Action Port", + "label":"Action Port", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ - "GotoTag", - "IconDisplay" + "InitializeStates", + "PropagateVarSize" ], "values":[ - "n_motAbs", - "Tag" + "reset", + "Only when execution is resumed" ], "tabs":[ "Parameter Attributes" @@ -4948,24 +4917,26 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"ActionPort", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8794", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8856", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From4", - "label":"From4", + "name":"Goto34", + "label":"Goto34", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "Vd", + "n_limProt", + "local", "Tag" ], "tabs":[ @@ -4979,57 +4950,121 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8774", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From18", - "label":"From18", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8668", + "className":"Simulink.SubSystem", + "icon":"WebViewIcon1", + "name":"Clarke_Transform", + "label":"Clarke_Transform", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ - "GotoTag", - "IconDisplay" + "ShowPortLabels", + "Permissions", + "ErrorFcn", + "PermitHierarchicalResolution", + "TreatAsAtomicUnit", + "TreatAsGroupedWhenPropagatingVariantConditions", + "ActiveVariant", + "ActiveVariantBlock", + "AllowZeroVariantControls", + "BlockChoice", + "FunctionInterfaceSpec", + "FunctionWithSeparateData", + "GeneratePreprocessorConditionals", + "IsSubsystemVirtual", + "MemberBlocks", + "MinAlgLoopOccurrences", + "OverrideUsingVariant", + "PropExecContextOutsideSubsystem", + "PropagateVariantConditions", + "RTWFcnName", + "RTWFcnNameOpts", + "RTWFileName", + "RTWFileNameOpts", + "RTWMemSecDataConstants", + "RTWMemSecDataInternal", + "RTWMemSecDataParameters", + "RTWMemSecFuncExecute", + "RTWMemSecFuncInitTerm", + "RTWSystemCode", + "SystemSampleTime", + "TemplateBlock", + "Variant", + "VariantControl" ], "values":[ - "r_inpTgtSca", - "Tag" + "FromPortIcon", + "ReadWrite", + "", + "All", + "off", + "on", + "", + "", + "off", + "", + "void_void", + "off", + "off", + "on", + "", + "off", + "", + "off", + "off", + "", + "Auto", + "", + "Auto", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Auto", + "-1", + "", + "off", + "" ], "tabs":[ - "Parameter Attributes" + "Main", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 6 + ] }, "viewer":{ - "jshandler":"webview/handlers/ElementHandler" + "jshandler":"webview/handlers/ContainerHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"SubSystem", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8853", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8766", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto31", - "label":"Goto31", + "name":"From1", + "label":"From1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "iq_limPrott", - "local", + "id", "Tag" ], "tabs":[ @@ -5043,16 +5078,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8664", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8663", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"a_elecAngle", - "label":"a_elecAngle", + "name":"n_motAbs", + "label":"n_motAbs", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -5115,21 +5150,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8862", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8765", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto7", - "label":"Goto7", + "name":"From", + "label":"From", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "Vq_min", - "local", + "r_inpTgtSca", "Tag" ], "tabs":[ @@ -5143,16 +5176,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8818", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8819", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From62", - "label":"From62", + "name":"From63", + "label":"From63", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -5160,7 +5193,7 @@ "IconDisplay" ], "values":[ - "iq_limPrott", + "n_mot", "Tag" ], "tabs":[ @@ -5179,20 +5212,82 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8667", - "className":"Simulink.ActionPort", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8771", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Action Port", - "label":"Action Port", + "name":"From14", + "label":"From14", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ - "InitializeStates", - "PropagateVarSize" + "GotoTag", + "IconDisplay" + ], + "values":[ + "b_enaFOC", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8817", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From61", + "label":"From61", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "iq", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8792", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From37", + "label":"From37", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" ], "values":[ - "reset", - "Only when execution is resumed" + "r_inpTgtSca", + "Tag" ], "tabs":[ "Parameter Attributes" @@ -5205,7 +5300,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"ActionPort", + "blocktype":"From", "masktype":"" } }, @@ -5237,7 +5332,7 @@ "OutputFunctionCall" ], "values":[ - "3", + "4", "Port number", "[]", "[]", @@ -5277,11 +5372,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8797", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8775", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From42", - "label":"From42", + "name":"From19", + "label":"From19", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -5289,7 +5384,7 @@ "IconDisplay" ], "values":[ - "Vq_min", + "a_elecAngle", "Tag" ], "tabs":[ @@ -5308,25 +5403,61 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9026", - "className":"Simulink.Mux", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9672", + "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"Mux2", - "label":"Mux2", + "name":"r_inpTgt", + "label":"r_inpTgt", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ - "Inputs", - "DisplayOption" + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" ], "values":[ - "2", - "bar" + "3", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "", + "on", + "off", + "off", + "off" ], "tabs":[ - "Parameter Attributes" + "Main", + "Signal Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 2, + 11 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -5334,7 +5465,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Mux", + "blocktype":"Inport", "masktype":"" } }, @@ -5366,7 +5497,7 @@ "OutputFunctionCall" ], "values":[ - "4", + "5", "Port number", "[]", "[]", @@ -5406,11 +5537,42 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8663", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8805", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From5", + "label":"From5", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "Vq_prev", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8664", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"n_motAbs", - "label":"n_motAbs", + "name":"a_elecAngle", + "label":"a_elecAngle", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -5433,7 +5595,7 @@ "OutputFunctionCall" ], "values":[ - "5", + "7", "Port number", "[]", "[]", @@ -5573,42 +5735,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8780", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From25", - "label":"From25", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "Vq_max", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8801", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8781", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From46", - "label":"From46", + "name":"From26", + "label":"From26", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -5616,7 +5747,7 @@ "IconDisplay" ], "values":[ - "Vq_Vlt", + "r_sin", "Tag" ], "tabs":[ @@ -5635,11 +5766,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8771", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8825", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From14", - "label":"From14", + "name":"From69", + "label":"From69", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -5647,7 +5778,7 @@ "IconDisplay" ], "values":[ - "b_enaFOC", + "z_ctrlMod", "Tag" ], "tabs":[ @@ -5666,11 +5797,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8788", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8804", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From33", - "label":"From33", + "name":"From49", + "label":"From49", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -5678,7 +5809,7 @@ "IconDisplay" ], "values":[ - "id_Tgt", + "Vq_Open", "Tag" ], "tabs":[ @@ -5697,11 +5828,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8845", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8843", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto24", - "label":"Goto24", + "name":"Goto22", + "label":"Goto22", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", "inspector":{ "params":[ @@ -5710,7 +5841,7 @@ "IconDisplay" ], "values":[ - "id", + "n_motAbs", "local", "Tag" ], @@ -5796,37 +5927,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8793", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From38", - "label":"From38", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "Vq_max", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8827#out:1", "className":"Simulink.Line", @@ -11844,5 +11944,56 @@ ], "finder":[ ] + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9672#out:1", + "className":"Simulink.Line", + "icon":"WebViewIcon5", + "name":"", + "label":"", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8658", + "inspector":{ + "params":[ + "SignalNameFromLabel", + "MustResolveToSignal", + "ShowPropagatedSignal", + "DataLogging", + "TestPoint", + "SignalObjectPackage", + "StorageClass", + "Description", + "documentLink" + ], + "values":[ + "", + "off", + "off", + "off", + "off", + "Simulink", + "Auto", + "", + "" + ], + "tabs":[ + "Parameter Attributes", + "Logging and Accessibility", + "Code Generation", + "Documentation" + ], + "tabs_idx":[ + 0, + 3, + 5, + 7 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":[ + ] } ] \ No newline at end of file diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8658_d.png b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8658_d.png index c9ee16f330bbb7e8832180389e3b4ffbd55db960..de94db24747f5a43399576d1074eb6c3828996ab 100644 GIT binary patch literal 9867 zcmdUV_dnI|ANMh`vNA%}q4PmVLUvYW8L5au$j(+qR(AF(vJyhJLmYeW6OxSLmqeppny|3%_dalR2ymVe6X+#MKe_d4+`paoSL`X~)Crhm8dM&Qi_Y0Poo|1?CON|VM z>2aDvcm<#CTvMgN`QE;uqr)2*eqB1t-kp8fAKZq53EL&pQi~oJTPp<56DvlkG%V30 zUt=lBgOO~=0NP+86m6jMD`F*D>No|mHUc^_MM(uhE;3SeB=Icb|Eqs=UGLAf^zGbl zEz|c37$Q2k?-hJMmoc&&f9-(ybtG4YcKhO%)^W`fzy1H@j{n`a5Me;;w|oY$)RUrTDQ;!!GaS{#2Za$ zqE(3k6c7kgW)kTP>ZGJ3XHQShJhvvY0aToJeo$?#6dMPJQUdDBmoLb)er^2Z>pP)& zw(2Ol4NuwX!Tq_&YhN8P@tQmYh+Yf2C;rFVSn19JH>&`#G%eyFMVr)6t4eY`z5ExB z9a6(KVju7a9fN}lt{eM4WF$fG^MA3|HhXz9o#~5)Y!qmTSJu}rvr%X6r|V!Vtp{he z_RDK(dQL~}s*oB9IWvQ(I8WJ_^`=AW3c*{t3`=z}G9GK`3vnHHK91O#IXbQ>mu>F* zY`kn-a<6~N+3dc0=~2l=3AAf1Tj`VLnB3glg2zmQneu8#T7}9V!Fjfy9`N7QW2E7b zML0hvx|WQkB_`PPWD7)oxXY)Yr)Phhc^XhZed4y);P|Qegae(sIkuWYJm*@w(Mrmh zzCi0lT=j@5$x=$LdwsWk!L{+Ds5Cn)j6vm>tJGupk2uGtetz%M3^ILpe$=Mm!j%bA z^SEfqkhEk`dk-8jtRCxAAxN^zWzoSWT<^OUb&D|@i;)=n>09OYeziuG;inZCQVrS- zj3vw07kfT(9p=}WL$B{>vA~&$ii#%sX{+(SjabF~krc!#!Ep{Q&Ue@N9UnXxz)Nz- z`%%Vr6KNzMBe>y6*)p5!>LQ#aqfE+3ld&O156iTVOddae{92hiX3*?}JI6rqZ!4Wq|DlzE?hZqI$m5t;sPbfkc}8^ zZ1>QryN*4{r@{yyxxrZ6pp*aMV-y{E4bHJ?g;0%2GwW{4TY-l)UdV{KS6@Bc-DkF6 z>Iz;Qa>Qg6^7Fr?kULnqj8J>x32&Xvca%OhI$Hkub8vJtm3l&OXQzr|Bxb_lg__tN`x>r;*Q{o@|+huBp`mg zPluJ_q587y60*U%A%WAGWiG2HY$7RYRwmqbuY$V{^mJ)y~q8gO>fNwKb`m zn_C>pc4j@#R*69c-t|#QSARlc1qKrq5)u+Wzq@t3JAIjfVw16NaZ7PnY>k!8gTBwI zQayhdPWsb`U5)Dkg@3edD&NJ(nCaYXzSpWb`3FAk-|cREo^Y7xR?$@!Nn!Ig8F3{j zINfcI8@RZ+dvYQlfQ*_J#W1QjjkNjqTOcV2PhuvhDo5HToSLI==MriSvo%v0ua+{k#Js>K}GiEzt`vQ(-Onm0xq-*-z^%U zr3it7h;2$|8o=2uNuWdf(_HKw9Jnq;zwhg)sBfX6p@C`{vKOCquP4pcNzo*MHcHXt zPVAi-EqVND3}54WxYOgLTks%maM8^0;-sSllt`&bV?7P5$~n58jV5G)rq9f6Q$rUPEd7dc zI9z~?i~O+@XKZ);?OYPgVyM}5ccJ8GGekdIiFJ!c%Ar0s49doWkYs#sZ;j<=I+ZJ52?iEB8-_J$C%}&&cMgqt1A(n;!p_gOK#M2h!on<+~Y*TH- zF1^dhSfDO8WA1L6Zfzy7FjNJK!7f}fP^`vauFJ?^pHADKGrMwO*7@BbdtE6F8H$a% zT};c*g;FM+BbL;u`FQ8mlHBQ$+fo1Y5f#8v4f%Jci-0vf6_l6>Uw(Q4IMuheH)n3; z53_it<9gDwZ5mBt%bu6fp$#bON+(p&7KYW)<{?C4;qjOplyXB1PgZNG- zW1-hVOnz2|o(KP~pfm#WY~Q7%Na->>v$X8o4B8o9|2Q}>VD9I~0gsHdPlzs2N3}f+ zn~fZRZ5_i?v00BRT2W5?%f~H6sOF4MOav7c9x*StvP5JnBv}exyC&n<6#dl6i6%pv z6i%$xXwASy>YT>QMh?wk*=_taXm`oY-7Za&=4qOC;qr!tsMymr`Ilx^6N@W9DNrLe zGuH$dUnAtSd1jwsph_`PEcSX!&!uTqT)Ote6fN(?0&o^dTi42lL^ov4X zHp-b=bTT5?#e&h`Kc__AW2{F5emUas1xi_W=g05ZwBd zlK3^ha~nU#OL2{f;v7eem9|sWqXnKIOT(kB&UqJNLIS9;mi67I-rlSLD)cE8^Bgjc z+ma5Sj%Ces1!tD(v5Q+otsfmRk$`}Tw4My-B}GC`cb}ZF3d$WZsfXfd{kEyHBYC6D z3koBSk9`p>s}u82WUpv*DPb#sw(ZvkSXo)WiuGStEalv}g{_FvFY3G|q{@@ndUPbK zyt!05w0?&?5P_NK_q~#g-M%+`nX+A>)~MQdvO+MpeKuZja(nv)bni(@SG;!qh1hP= zK*SePuahIGBfsYP+7Y`O@A7(m%K_~X31r@FWM1XrI6WzI z+5UM0wRZCBmu|6nee`K{GtGq-CWMhBMH;lXfuQ?J#_mUNCU+p#IS*Oyov1KX!=4Ht zZZ9vdnXn|3ZA+ME24IrAhsWmVW2b1@Fw4Q}M_0cL48#-HbyIR6X@x=93O1Q zPgm;~Wto(@-Iq%2HFa^hP*ha(x_iD{@Yye=qXT>yX@#JWbi|E;jz4hf#I4t59R=d# ztt$7nG1G1AvGdc-ug$OXj;`7H+$oMgikg(nU*r*ym587?tO zK2kL3;9;gz(q(8OxPle&k>ga#`r2~+haI0r!fGgPbo8P`?CM>;7sX`P=q`2=0?>vx zHr||U^iGza!f$(Sj@IyvuC)7yr^FGC$)6nj;?d_xRLmKg;lWlt8`EATv3^m1g**cw(nIUM{GA& z1UF_oLoRG^Q6{;t-Zrt{3VNU%gCR9c0&xAnN1-{ajHGR8Ya=vAzgxBLwW{oP{M}dK z<9OxrwICOsQPg;8!Qh`4NBQ|Wv)ZVQc?-HG{qqP_wi2jI&`rSRU;6t&ctuHScUxA5 zDsh$m9U0LxYWB-GeV4eRMAPm*K|@V_S138l_EH^A=;x|9{MtL$ZvPdBGX@O-D#a0l z)k@Vb+P+N|>?@z&_$sV<`b2>=(u5t;W<-3fTMS!#MiY9aWBASVhIqcwC&!Obr+ZBA zB0Z6(e~J>*3|fXdr|qf+jOJVE{ysNWt9qmYk{#YkX1#$3TTxzL9|=M!Epq$haQ&%= z2NTH9P0z{ebKe{>x_k_tdtQ6B(|(6nbwpFr(t^hDDsq`>CHg_r>j2knC6CpX2kT0o zy1VaaW@bpr$3&VFsIeBb&*|$i;$xdblDsH;a~0m#htbIGIj`VXa|{Y2n)@t}gnOch zQYNoEb)}bqYxyExBrsYqSJ%tgmMDX;I^g~QmSB*~N@h8hQ@#s!e{OTHg`(|S&EZ2@ zjf6Zae!4QAYM#-=M^vYq%lG+uQB#qsv)(S7|78BS*BZ1JCRzT_MIM{8PHB)jXDe|x zPshG&q&6PAKpjT)yt)0~yF4lJ=1=-XP(up33_w^-neBF$;3t|{ z*dFrSX*e0Du&C5;_aFZez(z5PQzksoKVPE%43+ub;U0lnJqWFs6`#z`4)c`e#I`_! z)V$X9-Pn)4<QSq#E3+7LR-ws|*#%`AEJsT^{kp9)1 zZLsgd5t04DNGNA`d8To9N=7`Q3N(G1gp-n<9_$vh_ZZr*4(AA3K6_&IuX&aqJyuK$ zDj%f7Ut+8|nhaYJhh3lzSN5!Vp!+7--25%pa>D*cC4<8S`IbMg#`|lUDJKhl4(THo z+*zA@Esz9z-z$*Kl9B>zQW^}AjJ!W)-`HRzL}~o;^GmDltZ0KM-tp_ajbr%M zRreflO$;jCxW$v7aT-#RlCR8|!8U+E6Q(3eKyfipfJ2M19vH=+;rhp6+n$OjSbiI@ z(2Ez0=g*%vYA7uHD@_Xa!dtR&ZDnO;gTF%!+W&P!5x%U7@ULp3-u*&371254uX|x^UD-pL9Vp_OX+7VlOG8Q-k;f zPIkmx2ipMdNtdCvwp)KqHD^=xeDJ~{0W1Vdr|B5jx3|E3x;(7(P1M{3cL5 z#u1mwr}t=B44gB-4=@dYZR~e5pIw}Xfss)#k_==`KsKMjlP78@I>p?3vsczCD=Y8n zZQoNt8}xrkyL~z!g|%3dz+A=7ZL748VRO`Colj4EPrR)v4X3D7lNJ)okg3QSGbDl> zQC&Ur(nVs`y}sL#fm#iHzc7u&^JBkC62(w~yIbLr#`S1Rc< z*NcKn@i9&I{vPQgBO?U#0<>i5g>pUmNDmbG>DHR@nYVN8if99vfhq)|T{A5yE(TBD zQXweo^*4C8^O8`lv9WO{$P~)DYyrmnFClcjdIJ zXq3{a^;u2$7{GXfO#M*E?>HrEr)|Yd0%~MjED1C>NNG5)4nUbp;RcT&8G_9?PLRrKTpq&73PHebE@n#Y z?zQjEVyy4D)mR6X+Xo6C^#;CWxHLYN|gb4<=phQf5bhmOox zZ3S;^J^0>*9whh~Vv-6GD@vjjro`UKTR%+hFr5Rb3!fgV%JJ#xMKfPsbtL`V8=X;k zW**=t29-UZCNu$|J6NilA{o#8{W&*1({)^>!xe;{F1BxV;kVz{t^fF#@)H$DjuymL z=Xm)qzO4-ITAyzAw`ceg^DwKn!xFUR)aLM&k2-|4%296F0XdByB&0MpWtSv0GQQlW z>k&YN&%a(>b=W)hlXD8avADD@+k2ZTH0=eXF7NG#UyYq3P%|^BN8P0(+w5y`WY8X{ znqFTVE<12TPxiNT;(Rt>pY; z`QSjWXrzE9%L{6SPIgYrad#5HN%*jaF*sVuRI_4GnNaHT@%-dKMCnnetj> zN6g&+3_^{`w(^IvbjI&a13`*0uv5qCJc%xooTev2s#$m69i6Wu zraa$8P1p0rtUnLH@j|#VU>u$U5b1SGHE2eU-RRH+c>1Djw)&{s7-CG~h-_19YwHi$&R$+; zG4%FJ$h+HxqrxNe@^p1S*h0vcvDDfHUO z?vytTxDZufUGcO|;6IWCqJW$=0X!b>GY3jh@JYdYdH)#g{PwiR!0F04Lj?|P?=Sx3 zOOMl#pcquDdcv0|zX?cGbU)Z$azYHO z9YD5+s`@?K9=5kX=s$2eD85Y>PVB@YEm$|N-2b!31O?dX#X?wXGrlA(1Da2QE9@aH z4+#l98LRonLjGxbI+Y6$|B<4)Ag{j2#B|MPJxo(D@IFM8>ZtOjrWj@J)->D7m}r24 zNgb9ZuA^lgf5_2ZT~53T0ho=hFtf5;W;f8#E8(tv+2n;LErFh3$}&1ZoH2t6j6G6P zQrvVrc3(Cw+9k4v&MvL&dgyRMxl$^B6VsYMyqK1j2HBEN=5M_~Vi7KPs|T=gXak=s zW&;v8amU;r5++1N`k#BqKqQZ@tPFa<|DtsLR+N%l&l{IigY!pUO~e2lRz6BxqGDrX z`(RRbD*?4sH(d5kjMIv()pR2_ zw(~L+hKeq16NI^5b>5Xfeih(X*5N=tdR5t`GNrCf*;ReD5wqvS2%aCZVSrq5@cm5) zUSXP~o_lX^Z$6ei*4OB7Hl&nRr@y!Mlc(OL0g6CQ_uM$lj9FMKQKHle*Ks+Xtij}3 zW&|boq)g5MGIyW=$(UImaq}gGcCc1wZT$|y0 zQ)GK-ZL(H$Q+0M{r+U7#&&q3Xa1c^`>lRY4ofVd(*D z6p*iM#3Jm)BLPM{>NDJP7*$*}ci$813&_b9Ks=E%VmG_75ob-hI~ZzYV)8pP=K()B z)ejH&X8~LquH3-Stij0Y-|~IG(rN$Go4*$qy@n+&Dp}vMG?c^%Q$n)@%vSQwM$@Yc zC7(qKa+zV4h7e>gZNCJb0z(oA(vRf^_FUl@9#lt-_wL%bkk2vU*{U=9CRW`cn6Eu0 zcts-sdjTqph&~VO^~Pp5XXdA;wWWAaWoLbA@t7xZmOQ?NhDqnN>3sd;-St;Rh0^5} zR8I{r0u4<%?so7b*{0H}T-f)S691VDUNy2aPLs!Lds;Hxu6r<2VxZ$TiViGg!_6<{ z^URbaYSN#16E%X{&AKnXJsWqGjYUEb10OKEWn)-+`V>RqwNjI!5dgySs;Uqe`-DFt zM<48-xPBWRu(UAjXo(Ns29E~uF3mdwu(Y9O$cvGi=WFlsnL0Q)pyZ=k?`e*!*O(>r zqF{(ftT;pTy36Il?q3OQWCAMVW#B5RJTgn(JNcLj!Kro?`*)oDelgdU#$u4>7AmMtB(L2X>Xn8mQxPOiFl|8Gc%--aoI8E8V_lMp2Wm>9rFs88K& ztemFp3vO5m(0<6~%|phRAlzm`@2}Tot$%tf4MR~Hd<+!y$rbM{s?a&|5qg3bK_3WW z=c)`&j1dTu>t}ZXsOVl@=EMp|1@N84iLlnf!s-|E-Nql?1;{pnXc)R`0WgCQMg#sk*1HPd&%et@S*&~vL+ighOzrWduC-B* zN=UF3rl~wiS+r+kp^OZ6K_MYm`aAy%T4C}90UzupOu7NJAQQIlnWPp$Ym?vcNJf#T z=24-p?&KGWPMcm@UJFo|G4dFGR&~k$)Eo_>ioh_5bnT~%j0~VHk!~@VN^roSBiyoniY{g{>MQFrLf z@QiI<=&z34J~2EJWE&BY)?o_jA@)kcgnv6?KwNMe6{j%JgT3ux?XiS4plN&Q1{ibp zsw25WHXAonIZyYxW4g-)&%=yh#Evl#c~;Ka(e|2`@c3;Jt^myxbM#UTXA3{k<@g@; zI&ZkEA)QgJ(F)26ZQqH*eSq67(%yNw$^wO}s_&)A)bG^5J zokqcfwyCKp^}0ikY2UCXCx4U6jOq^Yl;jqD)sK~Jg^{;CcvWGcEZB+ z9r376bJ?ok6b+2ibk}gc4rv!B^efEU!C`@BW>0(H`twz49$Yfm-wV1|5Dd=NZ6N&{ z?ni`LR2V@2!PBjI9yFoaG9M`^>1DYd7+pC|H&J0Lcy6=DqsX)Fl0mKp1Mn{vTEnVB z2cRK#&7jj4#iCK&V=S;_ms%t6TQDJY~tzlEq(bt9bl7PN|nZfFBZjU{QT@8NM zZ?(C6`&!xNZ1^B!*BR$OYrP8}Rut&@Z~n7D ztJtOP3psHLd0!yx1t|%mm#qJd02)oYLHHrqq~^9?W_XYg_3RpO-UHYrFc zo}iV0f=N8gY};9+covpqwo+#fdQe*{$0eRnwEWH?lH3)F=|KMPI+Oc1^8c@|GW|dA cV4ZSidJa5GCDXwF1Gn<#vj6}9 literal 9826 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 V8SM3d1#TKcs48kGl*yTf{0~SnkHY`} diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8658_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8658_d.svg index cb2cad3..4e5310b 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8658_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8658_d.svg @@ -770,15 +770,15 @@ - + - + - + int16 @@ -791,15 +791,15 @@ - + - + - + int16 @@ -818,10 +818,10 @@ - + - + @@ -831,44 +831,44 @@ - - 7 + + 8 - + - + - + - + i_phaAB - + - + - + sfix16_En4 @@ -881,10 +881,10 @@ - + - + @@ -894,14 +894,14 @@ - + [i_phaAB] - + @@ -914,10 +914,10 @@ - + - + @@ -927,44 +927,44 @@ - - 8 + + 9 - + - + - + - + i_phaBC - + - + - + sfix16_En4 @@ -977,10 +977,10 @@ - + - + @@ -990,14 +990,14 @@ - + [i_phaBC] - + @@ -1154,11 +1154,11 @@ - - + + - + @@ -1168,30 +1168,30 @@ - - 6 + + 4 - + - - + + - + - - r_devSignal2 + + Vq @@ -1202,139 +1202,168 @@ - - - + + + - - + + + + + + + + - + - - 4 - - - - - - - - - - - - - - + + r_inpTgtSca - + - - Vq + + Vq_max + + + + + + + + Vq_min - - - - - - - - - - - - - - - - - - - + - - + + iq - - + + - - + + iq_max - - + + - - + + iq_min - - + + - - + + n_limProt + + + + + + + + Vq_Trq + + + + + + + + case: { } - - - - - + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + Torque_Mode - + + + + + + + - - + + - + sfix16_En4 - - - + + + + + + + + + - - + + - - Ini=0 + + action @@ -1345,45 +1374,127 @@ - - - + + + + + + + + + - - + + - + - - + + - - + + u1 - - + + - - + + case [ 1 ]: + + + + + + + + case [ 2 ]: + + + + + + + + case [ 3 ]: + + + + + + + + default: - + + + + - + + + + + + + + + + + action + - - - + + + + + + + + + + + action + + + + + + + + + + + + + + + action + + + + + + + + + + + + + + + action @@ -1396,65 +1507,65 @@ - + - + - + - + - + i_apha - + - + i_beta - + - + r_sin - + - + r_cos - + - + iq_Raw - + - + id_Raw @@ -1462,7 +1573,7 @@ - + @@ -1475,7 +1586,7 @@ - + @@ -1484,11 +1595,11 @@ - + - + Park_Transform @@ -1496,20 +1607,20 @@ - + - + - - + + - + sfix16_En4 @@ -1517,20 +1628,20 @@ - + - + - - + + - + sfix16_En4 @@ -1542,173 +1653,97 @@ - + - + - - + + - - - - - - - - + + - - - - - - r_inpTgtSca - - - - - - - - Vq_max - - - - - - - - Vq_min - - - - - - - - n_mot - - - - - - - - n_max - - - - - - - - n_min - - - - - - - - iq_limProt - - - - - - - - Vq_Spd - - - - + + - - case: { } + + - - - - - - - - + + - - - - - - - - - + + + - - + + - - Speed_Mode + + sfix16_En4 - - - - - - - - - - + + + + + + + + + + + + + + + - - + + - - action + + + + + + + + + - - - - - - - + - - + + - + sfix16_En4 @@ -1720,228 +1755,44 @@ - - - - - - - - - + + + - - - - - - - - + + - - - - - - Vq_prev - - - - - - - - Vq_Open - - - - + + - - default: { } + + 5 - - - - - - - - + + - - - - - - - - - - - - - - - - Open_Mode - - - - - - - - - - - - - - - - - - - - - sfix16_En4 - - - - - - - - - - - - - - - - - - - - - action - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - sfix16_En4 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - sfix16_En4 + + r_devSignal1 @@ -1962,11 +1813,11 @@ - + - + @@ -1984,11 +1835,11 @@ - + - + sfix16_En4 @@ -2002,153 +1853,153 @@ - + - + - + - + - + z_ctrlMod - + - + Vd - + - + id_TgtAbs - + - + iq - + - + n_mot - + - + Vd_max - + - + Vd_min - + - + Vq_max - + - + Vq_min - + - + id_max - + - + id_min - + - + iq_max - + - + iq_min - + - + iq_limProt - + - + n_max - + - + n_min - + - + n_limProt @@ -2156,7 +2007,7 @@ - + @@ -2169,7 +2020,7 @@ - + @@ -2178,11 +2029,11 @@ - + - + Motor_Limitations @@ -2190,20 +2041,20 @@ - + - + - - + + - + sfix16_En4 @@ -2211,7 +2062,7 @@ - + @@ -2220,11 +2071,11 @@ - + - + sfix16_En4 @@ -2232,20 +2083,20 @@ - + - + - - + + - + sfix16_En4 @@ -2253,20 +2104,20 @@ - + - + - - + + - + sfix16_En4 @@ -2274,20 +2125,20 @@ - + - + - - + + - + sfix16_En4 @@ -2295,20 +2146,20 @@ - + - + - - + + - + sfix16_En4 @@ -2316,20 +2167,20 @@ - + - + - - + + - + sfix16_En4 @@ -2337,20 +2188,20 @@ - + - + - - + + - + sfix16_En4 @@ -2358,20 +2209,20 @@ - + - + - - + + - + sfix16_En4 @@ -2379,7 +2230,7 @@ - + @@ -2388,11 +2239,11 @@ - + - + sfix16_En4 @@ -2400,20 +2251,20 @@ - + - + - - + + - + sfix16_En4 @@ -2421,20 +2272,20 @@ - + - + - - + + - + sfix16_En4 @@ -2448,13 +2299,13 @@ - + - + @@ -2462,19 +2313,19 @@ - + - + - + - + @@ -2500,11 +2351,11 @@ - + - + sfix16_En4 @@ -2514,112 +2365,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + [n_mot] - - - - - - - - - - - - - - - - - - - - - - - - - - - - [b_enaFOC] - - - - - - + @@ -2631,121 +2400,91 @@ - - - + + + - - + + - - - - - - - - u1 - + - - + + - - case [ 1 ]: + + - - + + - - case [ 2 ]: + + - - + + - - case [ 3 ]: + + - - + + - - default: + + - - - - + - - - - - - - - - - - action - + - - - - - - - - - - - action + + + - - + + - - + + - - action + + sfix16_En4 - - - + + + - - + + - - action + + Ini=0 @@ -2756,28 +2495,28 @@ - - + + - + - + - - [Vq_max] + + [b_enaFOC] - + @@ -2789,28 +2528,28 @@ - - + + - + - + - - [id_TgtAbs] + + [Vq_max] - + @@ -2822,128 +2561,120 @@ - - - + + + - - + + + + + + + + - - + + - - [r_sin] + + Vq_prev - - - - - - + + + + + + + Vq_Open + + + + + + + + default: { } - - - - - - - - - - - - - - - + - - - + + + + - - [z_ctrlMod] + + - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + - - [id_min] + + Open_Mode - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + - - [r_inpTgtSca] + + sfix16_En4 - - - + + + + + + + + + + + + + + + + + action @@ -2954,28 +2685,34 @@ - - + + + + + + + + - + - - + + - - [n_max] + + [r_inpTgt] - + @@ -2987,28 +2724,28 @@ - - + + - + - + - - [iq] + + [r_cos] - + @@ -3020,28 +2757,28 @@ - - + + - + - - + + - - [Vd] + + [r_sin] - + @@ -3053,9 +2790,9 @@ - - - + + + @@ -3063,81 +2800,65 @@ - - + + - - + + - + r_inpTgtSca - - + + - + Vq_max - - + + - + Vq_min - - - - - - iq - - - - - - - - iq_max - - - - + + - - iq_min + + iq_limProt - - + + - + n_limProt - - + + - - Vq_Trq + + Vq_Vlt - - + + - + case: { } @@ -3150,8 +2871,8 @@ - - + + @@ -3163,16 +2884,16 @@ - - + + - - + + - - Torque_Mode + + Voltage_Mode @@ -3184,15 +2905,15 @@ - + - - + + - + action @@ -3205,15 +2926,15 @@ - + - - + + - + sfix16_En4 @@ -3225,34 +2946,34 @@ - + - + - + - + - - [Vq_prev] + + [n_min] - + @@ -3264,75 +2985,157 @@ - - - + + + - - - - - - - - + + - - - - - - r_inpTgtSca - - - - + + - - Vq_max + + [Vq] + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + [r_inpTgtSca] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + r_inpTgtSca + + + + + + + + Vq_max + + + + - + Vq_min - - + + - - iq_limProt + + n_mot - - + + - - n_limProt + + n_max - - + + - - Vq_Vlt + + n_min - - + + - + + iq_limProt + + + + + + + + Vq_Spd + + + + + + + case: { } @@ -3345,8 +3148,8 @@ - - + + @@ -3358,16 +3161,16 @@ - - + + - - + + - - Voltage_Mode + + Speed_Mode @@ -3379,16 +3182,16 @@ - - + + - - + + - - action + + sfix16_En4 @@ -3400,16 +3203,16 @@ - - + + - - + + - - sfix16_En4 + + action @@ -3420,34 +3223,34 @@ - + - + - + - + - - [Vd_max] + + [iq] - + @@ -3459,28 +3262,28 @@ - - + + - + - + - - [Vq_Vlt] + + [a_elecAngle] - + @@ -3492,28 +3295,28 @@ - - + + - + - - + + - - [id_max] + + [Vd_min] - + @@ -3525,28 +3328,28 @@ - - + + - + - - + + - - [Vq_Trq] + + [Vd_max] - + @@ -3558,44 +3361,29 @@ - - - + + + - - + + - - + + - - [id] + + [id_Tgt] - - - - - - - - - - - - - - - - - sfix16_En4 + + @@ -3606,44 +3394,29 @@ - - - + + + - - + + - - + + - - [r_inpTgtSca] + + [iq_min] - - - - - - - - - - - - - - - - - sfix16_En4 + + @@ -3654,92 +3427,29 @@ - - - - - - - - - - - - - - - - [iq_limPrott] - - - - - - - - - - - - - - - - - - - - - - sfix16_En4 - - - - - - - - - - - - - + + + - - + + - - + + - - [n_limProt] + + [Vq_prev] - - - - - - - - - - - - - - - - - sfix16_En4 + + @@ -3750,28 +3460,28 @@ - - + + - + - + - - [n_limProt] + + [Vq_Spd] - + @@ -3783,28 +3493,28 @@ - - + + - + - + - - [n_min] + + [Vq_Trq] - + @@ -3816,43 +3526,43 @@ - - + + - + - - + + - - [iq] + + [id] - + - + - - + + - + sfix16_En4 @@ -3864,43 +3574,43 @@ - - + + - + - - + + - - [iq_min] + + [r_inpTgt] - + - + - - + + - + sfix16_En4 @@ -3912,43 +3622,43 @@ - - + + - + - - + + - - [Vq] + + [iq_limPrott] - + - + - - + + - + sfix16_En4 @@ -3960,43 +3670,43 @@ - - + + - + - + - - [iq_max] + + [n_min] - + - + - - + + - + sfix16_En4 @@ -4008,44 +3718,29 @@ - - - + + + - - + + - - + + - - [Vd_min] + + [Vq_min] - - - - - - - - - - - - - - - - - sfix16_En4 + + @@ -4056,52 +3751,45 @@ - - - + + + - - + + - + - - + + - - u1 + + - - + + - - if(u1 ~= 0) + + - - - - + - - - - - - - - - - - action + + + + + + + @@ -4112,43 +3800,43 @@ - - + + - + - + - - [id_TgtAbs] + + [n_max] - + - + - - + + - + sfix16_En4 @@ -4160,44 +3848,29 @@ - - - + + + - - + + - - + + - - [n_limProt] + + [iq_limPrott] - - - - - - - - - - - - - - - - - sfix16_En4 + + @@ -4208,44 +3881,29 @@ - - - + + + - - + + - - + + - - [Vq_Open] + + [id_max] - - - - - - - - - - - - - - - - - sfix16_En4 + + @@ -4256,44 +3914,29 @@ - - - + + + - - + + - - + + - - [id_min] + + [id] - - - - - - - - - - - - - - - - - sfix16_En4 + + @@ -4304,29 +3947,45 @@ - - - + + + - - + + - + - - + + - - [Vq] + + + + + + + + + + + + + + + + + + - - + + @@ -4337,43 +3996,43 @@ - - + + - + - + - - [Vq_Trq] + + [iq_min] - + - + - - + + - + sfix16_En4 @@ -4385,28 +4044,28 @@ - - + + - + - - + + - - [r_cos] + + [iq_max] - + @@ -4418,29 +4077,44 @@ - - - + + + - - + + - - + + - - [id_Tgt] + + [Vq] - - + + + + + + + + + + + + + + + + + sfix16_En4 @@ -4451,43 +4125,43 @@ - - + + - + - + - - [Vq_min] + + [iq_max] - + - + - - + + - + sfix16_En4 @@ -4499,43 +4173,43 @@ - - + + - + - + - - [Vq_max] + + [Vd_min] - + - + - - + + - + sfix16_En4 @@ -4547,43 +4221,43 @@ - - + + - + - + - - [Vq] + + [id_TgtAbs] - + - + - - + + - + sfix16_En4 @@ -4595,159 +4269,43 @@ - - - - - - - - - - - - + + + + + + - - - - - - id_Tgt - - - - - - - - id - - - - - - - - Vd_max - - - - - - - - Vd_min - - - - - - - - id_max - - - - - - - - id_min - - - - - - - - Vd - - - - + + - - if { } + + [Vq_Trq] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Vd_Calculation - - - - - - - - - - - - - - - - - - - - - action + + - - - - - - - + - - + + - + sfix16_En4 @@ -4759,49 +4317,43 @@ - - - - - - - - + + - + - + - - [r_inpTgtSca] + + [Vq_Spd] - + - + - - + + - + sfix16_En4 @@ -4813,43 +4365,43 @@ - - + + - + - + - - [n_mot] + + [id_min] - + - + - - + + - + sfix16_En4 @@ -4861,44 +4413,44 @@ - - + + - + - + - - [b_enaFOC] + + [Vq_Vlt] - + - - + + - - + + - - boolean + + sfix16_En4 @@ -4909,44 +4461,29 @@ - - - + + + - - + + - - + + - - [Vq_min] + + [Vd] - - - - - - - - - - - - - - - - - sfix16_En4 + + @@ -4957,43 +4494,43 @@ - - + + - + - + - - [n_min] + + [Vd_max] - + - + - - + + - + sfix16_En4 @@ -5005,43 +4542,43 @@ - - + + - + - + - - [Vq_prev] + + [Vq_min] - + - + - - + + - + sfix16_En4 @@ -5053,43 +4590,43 @@ - - + + - + - + - - [Vq_Spd] + + [Vd] - + - + - - + + - + sfix16_En4 @@ -5101,43 +4638,43 @@ - - + + - + - + - - [id] + + [Vq] - + - + - - + + - + sfix16_En4 @@ -5149,43 +4686,43 @@ - - + + - + - + - - [iq] + + [Vd] - + - + - - + + - + sfix16_En4 @@ -5197,44 +4734,44 @@ - - - + + + - - + + - - + + - - 5 + + [Vd_min] - - + + - - - + + + - - + + - - r_devSignal1 + + sfix16_En4 @@ -5245,44 +4782,44 @@ - - + + - + - + - - [r_cos] + + [n_mot] - + - - + + - - + + - - sfix16_En14 + + sfix16_En4 @@ -5293,44 +4830,44 @@ - - + + - + - + - - [Vq] + + [b_enaFOC] - + - - + + - - + + - - sfix16_En4 + + boolean @@ -5341,29 +4878,44 @@ - - - + + + - - + + - - + + - - [n_motAbs] + + [Vq_min] - - + + + + + + + + + + + + + + + + + sfix16_En4 @@ -5374,44 +4926,44 @@ - - + + - + - + - - [r_sin] + + [id_Tgt] - + - - + + - - + + - - sfix16_En14 + + sfix16_En4 @@ -5422,44 +4974,44 @@ - - + + - + - - + + - - [r_cos] + + [Vq_min] - + - - + + - - + + - - sfix16_En14 + + sfix16_En4 @@ -5470,43 +5022,43 @@ - - + + - + - - + + - - [r_sin] + + [r_cos] - + - + - - + + - + sfix16_En14 @@ -5518,44 +5070,44 @@ - - + + - + - - + + - - [id_max] + + [r_cos] - + - - + + - - + + - - sfix16_En4 + + sfix16_En14 @@ -5566,43 +5118,43 @@ - - + + - + - + - - [Vd_min] + + [iq_limPrott] - + - + - - + + - + sfix16_En4 @@ -5614,44 +5166,44 @@ - - + + - + - + - - [z_ctrlMod] + + [Vq_max] - + - - + + - - + + - - uint8 + + sfix16_En4 @@ -5662,43 +5214,43 @@ - - + + - + - + - - [Vd] + + [n_limProt] - + - + - - + + - + sfix16_En4 @@ -5710,44 +5262,44 @@ - - + + - + - + - - [r_inpTgtSca] + + [z_ctrlMod] - + - - + + - - + + - - sfix16_En4 + + uint8 @@ -5758,44 +5310,44 @@ - - + + - + - - + + - - [a_elecAngle] + + [iq] - + - - + + - - + + - - ufix16_En6 + + sfix16_En4 @@ -5806,43 +5358,43 @@ - - + + - + - + - - [id_Tgt] + + [Vq_max] - + - + - - + + - + sfix16_En4 @@ -5854,44 +5406,44 @@ - - + + - + - - + + - - [z_ctrlMod] + + [Vd] - + - - + + - - + + - - uint8 + + sfix16_En4 @@ -5902,43 +5454,43 @@ - - + + - + - - + + - - [iq] + + [Vq_min] - + - + - - + + - + sfix16_En4 @@ -5950,43 +5502,43 @@ - - + + - + - + - - [Vq_min] + + [Vq_max] - + - + - - + + - + sfix16_En4 @@ -5998,44 +5550,44 @@ - - + + - + - + - - [Vd_max] + + [r_sin] - + - - + + - - + + - - sfix16_En4 + + sfix16_En14 @@ -6046,172 +5598,700 @@ - - - + + + - - - - - - - - + + - - - - - - a_elecAngle - - - - - - - - r_inpTgtSca - - - - - - - - n_motAbs - - - - - - - - r_sin - - - - - - - - r_cos - - - - - - - - id_Tgt - - - - + + - - id_TgtAbs + + [id_Tgt] - - - - - - - - + + - - - - - - - - - + + + - - + + - - Field_Weakening + + sfix16_En4 + + + + + + + + + + + + + + + + + + + + + + + + + + [r_inpTgtSca] + + + + + + + + + + + + + + + + + + + + + + sfix16_En4 + + + + + + + + + + + + + + + + + + + + + + + + + + [id_TgtAbs] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [n_max] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [iq] + + + + + + + + + + + + + + + + + + + + + + sfix16_En4 + + + + + + + + + + + + + + + + + + + + + + + + + + [Vd_max] + + + + + + + + + + + + + + + + + + + + + + sfix16_En4 + + + + + + + + + + + + + + + + + + + + + + + + + + [id] + + + + + + + + + + + + + + + + + + + + + + sfix16_En4 + + + + + + + + + + + + + + + + + + + + + + + + + + [n_motAbs] + + + + + + + + + + + + + + + + + + + + + + sfix16_En4 + + + + + + + + + + + + + + + + + + + + + + + + + + [r_inpTgtSca] + + + + + + + + + + - - - - + + + - + + sfix16_En4 + + + + + + + + + + + + + + + + + + + + + + + + + + [Vq_max] + + + + + + + + + + + + + - - + + + + + + sfix16_En4 + + + + + + + + + + + + + + + + + + + + + + + + + + 6 + + + + + + + + + + + + + + + + + + + + + + r_devSignal2 + + + + + + + + + + + + + + + + + + + + + + - + + [id_max] + + + + + + + + + + + + + + + + + + + + + + sfix16_En4 + + + + + + + + + + + + + + + + + + + + + + + + + + [n_limProt] + + + + + + + + + + + + + + + + + + + + + sfix16_En4 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + iq_raw + + + + + + + + id_raw + + + + + + + + iq + + + + + + + + id + + + + + + + + + + + + + + + + + + - + - - + + - - + + - - sfix16_En14 + + Current_Filtering - + - + - - + + - + sfix16_En4 @@ -6219,21 +6299,21 @@ - + - - + + - - + + - - sfix16_En14 + + sfix16_En4 @@ -6244,49 +6324,49 @@ - + - + - + - + - - + + - - [n_mot] + + [iq] - + - + - - + + - + sfix16_En4 @@ -6298,28 +6378,28 @@ - - + + - + - + - - [a_elecAngle] + + [id_min] - + @@ -6331,106 +6411,130 @@ - - - + + + - + - - + + - - + + - - iq_raw + + a_elecAngle - - + + - - id_raw + + r_inpTgt - - + + - - iq + + n_motAbs - - + + - - id + + r_sin + + + + + + + + r_cos + + + + + + + + id_Tgt + + + + + + + + id_TgtAbs - + - - + + - + - - + + - - + + - - Current_Filtering + + Field_Weakening - + - + - - + + - + sfix16_En4 @@ -6438,20 +6542,62 @@ - + - + + + + + + + + + + sfix16_En14 + + + + + + + + + + + + + + + + + + + + + sfix16_En14 + + + + + + + + + + + + - - + + - + sfix16_En4 @@ -6463,34 +6609,34 @@ - + - + - + - + - + - - [iq_max] + + [Vq_Vlt] - + @@ -6502,43 +6648,43 @@ - - - + + + - - + + - - + + - - [id] + + - - + + - + - - + + - + sfix16_En4 @@ -6550,44 +6696,52 @@ - - - + + + - - + + - - + + - - [n_max] + + u1 + + + + + + + + if(u1 ~= 0) - - + + - - + + - - + + - - sfix16_En4 + + action @@ -6598,43 +6752,43 @@ - - + + - + - + - - [Vd_max] + + [Vq] - + - + - - + + - + sfix16_En4 @@ -6646,160 +6800,159 @@ - - - - - - - - - - - - - - - - [iq_min] - - - - - - - - - - - - - - - - - - - - + + + - + - - + + - - + + - - i_phaAB + + id_Tgt - - + + - - i_phaBC + + id - - + + - - i_alpha + + Vd_max - - + + - - i_beta + + Vd_min + + + + + + + + id_max + + + + + + + + id_min + + + + + + + + Vd + + + + + + + + if { } - + - - + + - + - - + + - - + + - - Clarke_Transform + + Vd_Calculation - + - - + + - - + + - - sfix16_En4 + + action - + - + - - + + - + sfix16_En4 @@ -6811,131 +6964,35 @@ - + - + - + - + - - - - - - [Vq_Spd] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Vd] - - - - - - - - - - - - - - - - - - - - - - sfix16_En4 - - - - - - - - - - - - - - - - - - - - - - - - - - [Vq_max] - - - - - - - - - - - - - - - - - - + + - - sfix16_En4 + + [z_ctrlMod] + + + + + + + @@ -6946,44 +7003,44 @@ - - - + + + - - + + - - + + - - [r_inpTgtSca] + + if { } - - + + - - - + + + - - + + - - sfix16_En4 + + Action Port @@ -6994,28 +7051,28 @@ - - + + - + - - + + - - [Vd_min] + + [n_limProt] - + @@ -7027,91 +7084,127 @@ - - - + + + - - + + + + + + + + - - + + - - [iq] + + i_phaAB + + + + + + + + i_phaBC + + + + + + + + i_alpha + + + + + + + + i_beta - - + + + + + + + + - - - + + + + + + + + + - - + + - - sfix16_En4 + + Clarke_Transform - - - - - - - - - - - - - - - + - - - + + + + - - [n_motAbs] + + - - - - - - + + + + + + + sfix16_En4 - + + + + + + + - - + + - + sfix16_En4 @@ -7123,43 +7216,49 @@ - - + + + + + + + + - + - + - - [Vd] + + [id] - + - + - - + + - + sfix16_En4 @@ -7171,43 +7270,58 @@ - - - + + + - - + + - - + + - - [r_inpTgtSca] + + 6 - - + + + + + + + + + + + + + + + + + n_motAbs - + - - + + - + sfix16_En4 @@ -7219,29 +7333,44 @@ - - - + + + - - + + - - + + - - [iq_limPrott] + + [r_inpTgtSca] - - + + + + + + + + + + + + + + + + + sfix16_En4 @@ -7252,59 +7381,44 @@ - - - + + + - - + + - - + + - - 6 + + [n_mot] - - - - - - - - - - - - - - - - - a_elecAngle + + - - + + - - + + - - ufix16_En6 + + sfix16_En4 @@ -7315,29 +7429,44 @@ - - - + + + - - + + - - + + - - [Vq_min] + + [b_enaFOC] - - + + + + + + + + + + + + + + + + + boolean @@ -7348,43 +7477,43 @@ - - + + - + - + - - [iq_limPrott] + + [iq] - + - + - - + + - + sfix16_En4 @@ -7396,44 +7525,44 @@ - - - + + + - - + + - - + + - - if { } + + [r_inpTgtSca] - - + + - - - + + + - - + + - - Action Port + + sfix16_En4 @@ -7445,57 +7574,57 @@ - + - + - + - - 3 + + 4 - + - + - - + + - + r_inpTgtSca - + - - + + - + sfix16_En4 @@ -7507,44 +7636,44 @@ - - + + - + - - + + - - [Vq_min] + + [a_elecAngle] - + - - + + - - + + - - sfix16_En4 + + ufix16_En6 @@ -7555,43 +7684,58 @@ - - - + + + - - + + - - + + - - + + 3 - - + + + + + + + + + + + + + + + + + r_inpTgt - + - - + + - + sfix16_En4 @@ -7604,57 +7748,105 @@ - + - + - + - - 4 + + 5 - + - - - - - - - - - - - n_mot + + + + + + + + + + + n_mot + + + + + + + + + + + + + + + sfix16_En4 + + + + + + + + + + + + + + + + + + + + + + + + + + [Vq_prev] + + + + + + + - + - - + + - + sfix16_En4 @@ -7666,59 +7858,59 @@ - - + + - + - + - - 5 + + 7 - + - - + + - - + + - - n_motAbs + + a_elecAngle - - + + - - + + - - sfix16_En4 + + ufix16_En6 @@ -7739,11 +7931,11 @@ - + - + [Vq_Open] @@ -7772,11 +7964,11 @@ - + - + 2 @@ -7794,11 +7986,11 @@ - + - + z_ctrlMod @@ -7809,11 +8001,11 @@ - + - + uint8 @@ -7825,92 +8017,44 @@ - - - - - - - - - - - - - - - - [Vq_max] - - - - - - - - - - - - - - - - - - - - - - sfix16_En4 - - - - - - - - - - - - + + - + - - + + - - [Vq_Vlt] + + [r_sin] - + - - + + - - + + - - sfix16_En4 + + sfix16_En14 @@ -7921,44 +8065,44 @@ - - + + - + - - + + - - [b_enaFOC] + + [z_ctrlMod] - + - - + + - - + + - - boolean + + uint8 @@ -7969,43 +8113,43 @@ - - + + - + - + - - [id_Tgt] + + [Vq_Open] - + - + - - + + - + sfix16_En4 @@ -8017,28 +8161,28 @@ - - + + - + - - + + - - [id] + + [n_motAbs] - + @@ -8060,11 +8204,11 @@ - + - + 1 @@ -8082,11 +8226,11 @@ - + - + b_enaFOC @@ -8097,11 +8241,11 @@ - + - + boolean @@ -8111,54 +8255,6 @@ - - - - - - - - - - - - - - - - - - [Vq_max] - - - - - - - - - - - - - - - - - - - - - - sfix16_En4 - - - - - - - - @@ -8232,11 +8328,11 @@ - + - + @@ -8246,11 +8342,11 @@ - + - + @@ -8470,11 +8566,11 @@ - + - + @@ -8872,11 +8968,11 @@ - + - + @@ -9718,11 +9814,11 @@ - + - + @@ -9802,11 +9898,11 @@ - + - + @@ -9911,7 +10007,21 @@ + + + + + + + + + + + + + + - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8668_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8668_d.json index 439d5eb..1d60bbd 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8668_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8668_d.json @@ -1,84 +1,4 @@ [ - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8725", - "className":"Simulink.Outport", - "icon":"WebViewIcon3", - "name":"i_beta", - "label":"i_beta", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8668", - "inspector":{ - "params":[ - "Port", - "IconDisplay", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" - ], - "values":[ - "2", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "off", - "[]", - "off", - "held", - "off", - "0", - "", - [ - ], - "Dialog", - "Auto", - "off" - ], - "tabs":[ - "Main", - "Signal Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 2, - 11 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Outport", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8724", "className":"Simulink.Outport", @@ -159,94 +79,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8723", - "className":"Simulink.Constant", - "icon":"WebViewIcon3", - "name":"b_selPhaABCurrMeas", - "label":"b_selPhaABCurrMeas", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8668", - "inspector":{ - "params":[ - "Value", - "VectorParams1D", - "SampleTime", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "FramePeriod" - ], - "values":[ - "b_selPhaABCurrMeas", - "on", - "inf", - "[]", - "[]", - "boolean", - "off", - "inf" - ], - "tabs":[ - "Main", - "Signal Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 3, - 7 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Constant", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8721", - "className":"Simulink.Merge", - "icon":"WebViewIcon3", - "name":"Merge", - "label":"Merge", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8668", - "inspector":{ - "params":[ - "Inputs", - "InitialOutput", - "AllowUnequalInputPortWidths", - "InputPortOffsets" - ], - "values":[ - "2", - "[]", - "off", - "[]" - ], - "tabs":[ - "Parameter Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 3 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Merge", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8720", "className":"Simulink.If", @@ -291,11 +123,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8719", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8718", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto6", - "label":"Goto6", + "name":"Goto4", + "label":"Goto4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8668", "inspector":{ "params":[ @@ -304,7 +136,7 @@ "IconDisplay" ], "values":[ - "i_beta", + "i_betaBC", "local", "Tag" ], @@ -324,11 +156,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8716", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8717", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto2", - "label":"Goto2", + "name":"Goto3", + "label":"Goto3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8668", "inspector":{ "params":[ @@ -337,7 +169,7 @@ "IconDisplay" ], "values":[ - "i_alphaBC", + "i_betaAB", "local", "Tag" ], @@ -357,11 +189,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8715", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8716", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto15", - "label":"Goto15", + "name":"Goto2", + "label":"Goto2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8668", "inspector":{ "params":[ @@ -370,7 +202,7 @@ "IconDisplay" ], "values":[ - "i_phaBC", + "i_alphaBC", "local", "Tag" ], @@ -422,39 +254,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8718", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto4", - "label":"Goto4", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8668", - "inspector":{ - "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" - ], - "values":[ - "i_betaBC", - "local", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Goto", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8713", "className":"Simulink.Goto", @@ -592,19 +391,21 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8707", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8715", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From5", - "label":"From5", + "name":"Goto15", + "label":"Goto15", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8668", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "i_beta", + "i_phaBC", + "local", "Tag" ], "tabs":[ @@ -618,16 +419,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8702", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8710", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From", - "label":"From", + "name":"From8", + "label":"From8", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8668", "inspector":{ "params":[ @@ -635,7 +436,7 @@ "IconDisplay" ], "values":[ - "i_alphaAB", + "i_phaBC", "Tag" ], "tabs":[ @@ -654,19 +455,21 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8704", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8719", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From2", - "label":"From2", + "name":"Goto6", + "label":"Goto6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8668", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "i_betaAB", + "i_beta", + "local", "Tag" ], "tabs":[ @@ -680,7 +483,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, @@ -716,21 +519,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8717", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8705", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto3", - "label":"Goto3", + "name":"From3", + "label":"From3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8668", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "i_betaAB", - "local", + "i_betaBC", "Tag" ], "tabs":[ @@ -744,7 +545,131 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8706", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From4", + "label":"From4", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8668", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "i_alpha", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8707", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From5", + "label":"From5", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8668", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "i_beta", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8702", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From", + "label":"From", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8668", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "i_alphaAB", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8703", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From1", + "label":"From1", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8668", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "i_alphaBC", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", "masktype":"" } }, @@ -846,11 +771,99 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8706", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8723", + "className":"Simulink.Constant", + "icon":"WebViewIcon3", + "name":"b_selPhaABCurrMeas", + "label":"b_selPhaABCurrMeas", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8668", + "inspector":{ + "params":[ + "Value", + "VectorParams1D", + "SampleTime", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "FramePeriod" + ], + "values":[ + "b_selPhaABCurrMeas", + "on", + "inf", + "[]", + "[]", + "boolean", + "off", + "inf" + ], + "tabs":[ + "Main", + "Signal Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 3, + 7 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Constant", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8721", + "className":"Simulink.Merge", + "icon":"WebViewIcon3", + "name":"Merge", + "label":"Merge", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8668", + "inspector":{ + "params":[ + "Inputs", + "InitialOutput", + "AllowUnequalInputPortWidths", + "InputPortOffsets" + ], + "values":[ + "2", + "[]", + "off", + "[]" + ], + "tabs":[ + "Parameter Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 3 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Merge", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8704", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From4", - "label":"From4", + "name":"From2", + "label":"From2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8668", "inspector":{ "params":[ @@ -858,7 +871,7 @@ "IconDisplay" ], "values":[ - "i_alpha", + "i_betaAB", "Tag" ], "tabs":[ @@ -877,11 +890,91 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8705", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8725", + "className":"Simulink.Outport", + "icon":"WebViewIcon3", + "name":"i_beta", + "label":"i_beta", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8668", + "inspector":{ + "params":[ + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" + ], + "values":[ + "2", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "off", + "[]", + "off", + "held", + "off", + "0", + "", + [ + ], + "Dialog", + "Auto", + "off" + ], + "tabs":[ + "Main", + "Signal Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 2, + 11 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Outport", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8708", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From3", - "label":"From3", + "name":"From6", + "label":"From6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8668", "inspector":{ "params":[ @@ -889,7 +982,7 @@ "IconDisplay" ], "values":[ - "i_betaBC", + "i_phaAB", "Tag" ], "tabs":[ @@ -1071,68 +1164,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8703", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From1", - "label":"From1", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8668", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "i_alphaBC", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8710", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From8", - "label":"From8", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8668", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "i_phaBC", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8669", "className":"Simulink.Inport", @@ -1200,37 +1231,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8708", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From6", - "label":"From6", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8668", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "i_phaAB", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8686#out:1", "className":"Simulink.Line", diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8668_d.png b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8668_d.png index 7a2b8ae1e5827d42f4b84b3d8ca938fbf7552016..b3d74dbc6a49c21520402f879d47c44856ea7f27 100644 GIT binary patch literal 5854 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 literal 5838 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 bpU^F!-?C0Mwg`g(HAG+Mo_3k0!;Aj`Np}1$ diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8668_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8668_d.svg index 3aa02ed..6b0b387 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8668_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8668_d.svg @@ -10,54 +10,6 @@ - - - - - - - - - - - - - - - - - - - 2 - - - - - - - - - - - - - - - - - - - - - - i_beta - - - - - - - @@ -71,11 +23,11 @@ - + - + 1 @@ -93,11 +45,11 @@ - + - + i_alpha @@ -107,138 +59,11 @@ - - - - - - - - - - - - - - - - - - b_selPhaABCurrMeas - - - - - - - - - - - - - - - - - - - - - - b_selPhaABCurrMeas - - - - - - - - - - - - - - - boolean - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - sfix16_En4 - - - - - - - - - + @@ -246,27 +71,27 @@ - + - + u1 - + - + if(u1 ~= 0) - + - + else @@ -284,11 +109,11 @@ - + - + action @@ -299,11 +124,11 @@ - + - + action @@ -315,28 +140,28 @@ - - + + - + - + - - [i_beta] + + [i_betaBC] - + @@ -348,28 +173,28 @@ - - + + - + - + - - [i_alphaBC] + + [i_betaAB] - + @@ -381,28 +206,28 @@ - - + + - + - + - - [i_phaBC] + + [i_alphaBC] - + @@ -424,11 +249,11 @@ - + - + [i_phaAB] @@ -445,39 +270,6 @@ - - - - - - - - - - - - - - - - - - [i_betaBC] - - - - - - - - - - - - - - - @@ -490,11 +282,11 @@ - + - + [i_alphaAB] @@ -515,7 +307,7 @@ - + @@ -523,19 +315,19 @@ - + - + - + - + @@ -561,11 +353,11 @@ - + - + sfix16_En4 @@ -587,11 +379,11 @@ - + - + [i_alpha] @@ -620,11 +412,11 @@ - + - + [i_phaBC] @@ -642,11 +434,11 @@ - + - + sfix16_En4 @@ -658,43 +450,76 @@ - - - + + + - - + + - - + + - - [i_beta] + + [i_phaBC] - + + + + + + + + + + + + + + + + + + + + + + + + + + + + [i_phaBC] + + + + + + - + - - + + - + sfix16_En4 @@ -706,43 +531,76 @@ - - + + + + + + + + + + + + + + + + [i_beta] + + + + + + + + + + + + + + + + + + + - + - + - - [i_alphaAB] + + [i_phaAB] - + - + - - + + - + sfix16_En4 @@ -754,43 +612,43 @@ - - + + - + - + - - [i_betaAB] + + [i_betaBC] - + - + - - + + - + sfix16_En4 @@ -802,43 +660,43 @@ - - + + - + - + - - [i_phaAB] + + [i_alpha] - + - + - - + + - + sfix16_En4 @@ -850,29 +708,140 @@ - - - + + + - - + + - - + + - - [i_betaAB] + + [i_beta] - - + + + + + + + + + + + + + + + + + sfix16_En4 + + + + + + + + + + + + + + + + + + + + + + + + + + [i_alphaAB] + + + + + + + + + + + + + + + + + + + + + + sfix16_En4 + + + + + + + + + + + + + + + + + + + + + + + + + + [i_alphaBC] + + + + + + + + + + + + + + + + + + + + + + sfix16_En4 @@ -885,7 +854,7 @@ - + @@ -899,43 +868,43 @@ - + - + i_phaB - + - + i_phaC - + - + i_alphaBC - + - + i_betaBC - + - + else { } @@ -965,11 +934,11 @@ - + - + Clarke_PhasesBC @@ -982,16 +951,16 @@ - - + + - - + + - - action + + sfix16_En4 @@ -1003,36 +972,217 @@ - + - - + + + + + + sfix16_En4 + + + + + + + + + + + + + + + + + + + + + action + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + b_selPhaABCurrMeas + + + + + + + + + + + + + + + + + + + + + + b_selPhaABCurrMeas + + + + + + + + + + + + + + + boolean + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + sfix16_En4 + + + + + + + + + + + + + + + + + + + + + + - - sfix16_En4 + + [i_betaAB] + + + + + + + - - - - - - - + - - + + - + sfix16_En4 @@ -1044,50 +1194,44 @@ - - - - - - - - - + + + - - + + - - + + - - [i_alpha] + + 2 - - + + - - - + + + - - + + - - sfix16_En4 + + i_beta @@ -1098,43 +1242,43 @@ - - + + - + - + - - [i_betaBC] + + [i_phaAB] - + - + - - + + - + sfix16_En4 @@ -1148,7 +1292,7 @@ - + @@ -1162,43 +1306,43 @@ - + - + i_phaA - + - + i_phaB - + - + i_alphaAB - + - + i_betaAB - + - + if { } @@ -1228,11 +1372,11 @@ - + - + Clarke_PhasesAB @@ -1245,16 +1389,16 @@ - - + + - - + + - - sfix16_En4 + + action @@ -1266,16 +1410,16 @@ - - + + - - + + - - action + + sfix16_En4 @@ -1287,15 +1431,15 @@ - + - - + + - + sfix16_En4 @@ -1323,11 +1467,11 @@ - + - + 2 @@ -1345,11 +1489,11 @@ - + - + i_phaBC @@ -1360,107 +1504,11 @@ - + - - sfix16_En4 - - - - - - - - - - - - - - - - - - - - - - - - - - [i_alphaBC] - - - - - - - - - - - - - - - - - - - - - - sfix16_En4 - - - - - - - - - - - - - - - - - - - - - - - - - - [i_phaBC] - - - - - - - - - - - - - - - - - - - - - + sfix16_En4 @@ -1482,11 +1530,11 @@ - + - + 1 @@ -1504,11 +1552,11 @@ - + - + i_phaAB @@ -1518,60 +1566,12 @@ - - - - - - - sfix16_En4 - - - - - - - - - - - - - - - - - - - - - - - - - - [i_phaAB] - - - - - - - - - - - - - - - - + - + sfix16_En4 @@ -1877,5 +1877,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8671_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8671_d.json index a868ce6..acbb023 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8671_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8671_d.json @@ -49,11 +49,124 @@ ] }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8679", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8683", + "className":"Simulink.Outport", + "icon":"WebViewIcon3", + "name":"i_alphaAB", + "label":"i_alphaAB", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8671", + "inspector":{ + "params":[ + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" + ], + "values":[ + "1", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "off", + "[]", + "off", + "held", + "off", + "0", + "", + [ + ], + "Dialog", + "Auto", + "off" + ], + "tabs":[ + "Main", + "Signal Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 2, + 11 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Outport", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8681", + "className":"Simulink.SignalConversion", + "icon":"WebViewIcon3", + "name":"Signal Conversion2", + "label":"Signal Conversion2", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8671", + "inspector":{ + "params":[ + "ConversionOutput", + "OutDataTypeStr", + "OverrideOpt" + ], + "values":[ + "Signal copy", + "Inherit: auto", + "off" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"SignalConversion", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8680", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto13", - "label":"Goto13", + "name":"Goto15", + "label":"Goto15", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8671", "inspector":{ "params":[ @@ -62,7 +175,7 @@ "IconDisplay" ], "values":[ - "i_phaA", + "i_phaB", "local", "Tag" ], @@ -82,53 +195,27 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8682", - "className":"Simulink.Sum", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8679", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Sum1", - "label":"Sum1", + "name":"Goto13", + "label":"Goto13", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8671", "inspector":{ "params":[ - "IconShape", - "Inputs", - "InputSameDT", - "AccumDataTypeStr", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", - "SampleTime" + "GotoTag", + "TagVisibility", + "IconDisplay" ], "values":[ - "rectangular", - "++", - "off", - "Inherit: Inherit via internal rule", - "[]", - "[]", - "fixdt(1,16,4)", - "off", - "Simplest", - "on", - "1", - "All dimensions", - "-1" + "i_phaA", + "local", + "Tag" ], "tabs":[ - "Main", - "Signal Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 2, - 10 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -136,16 +223,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Sum", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8678", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8677", "className":"Simulink.Gain", "icon":"WebViewIcon3", - "name":"Gain4", - "label":"Gain4", + "name":"Gain2", + "label":"Gain2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8671", "inspector":{ "params":[ @@ -163,7 +250,7 @@ "SampleTime" ], "values":[ - "1/sqrt(3)", + "2/sqrt(3)", "Element-wise(K.*u)", "[]", "[]", @@ -200,11 +287,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8677", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8678", "className":"Simulink.Gain", "icon":"WebViewIcon3", - "name":"Gain2", - "label":"Gain2", + "name":"Gain4", + "label":"Gain4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8671", "inspector":{ "params":[ @@ -222,7 +309,7 @@ "SampleTime" ], "values":[ - "2/sqrt(3)", + "1/sqrt(3)", "Element-wise(K.*u)", "[]", "[]", @@ -259,22 +346,20 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8680", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8674", + "className":"Simulink.ActionPort", "icon":"WebViewIcon3", - "name":"Goto15", - "label":"Goto15", + "name":"Action Port", + "label":"Action Port", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8671", "inspector":{ "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" + "InitializeStates", + "PropagateVarSize" ], "values":[ - "i_phaB", - "local", - "Tag" + "held", + "Only when execution is resumed" ], "tabs":[ "Parameter Attributes" @@ -287,16 +372,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"ActionPort", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8675", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8676", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From", - "label":"From", + "name":"From1", + "label":"From1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8671", "inspector":{ "params":[ @@ -304,7 +389,7 @@ "IconDisplay" ], "values":[ - "i_phaA", + "i_phaB", "Tag" ], "tabs":[ @@ -323,75 +408,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8681", - "className":"Simulink.SignalConversion", - "icon":"WebViewIcon3", - "name":"Signal Conversion2", - "label":"Signal Conversion2", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8671", - "inspector":{ - "params":[ - "ConversionOutput", - "OutDataTypeStr", - "OverrideOpt" - ], - "values":[ - "Signal copy", - "Inherit: auto", - "off" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"SignalConversion", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8674", - "className":"Simulink.ActionPort", - "icon":"WebViewIcon3", - "name":"Action Port", - "label":"Action Port", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8671", - "inspector":{ - "params":[ - "InitializeStates", - "PropagateVarSize" - ], - "values":[ - "held", - "Only when execution is resumed" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"ActionPort", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8673", - "className":"Simulink.Inport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8684", + "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"i_phaB", - "label":"i_phaB", + "name":"i_betaAB", + "label":"i_betaAB", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8671", "inspector":{ "params":[ @@ -407,11 +428,17 @@ "SampleTime", "SignalType", "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ "2", @@ -426,10 +453,17 @@ "-1", "auto", "off", - "", - "on", "off", + "[]", + "off", + "held", "off", + "0", + "", + [ + ], + "Dialog", + "Auto", "off" ], "tabs":[ @@ -449,16 +483,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", + "blocktype":"Outport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8683", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8673", + "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"i_alphaAB", - "label":"i_alphaAB", + "name":"i_phaB", + "label":"i_phaB", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8671", "inspector":{ "params":[ @@ -474,20 +508,14 @@ "SampleTime", "SignalType", "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" ], "values":[ - "1", + "2", "Port number", "[]", "[]", @@ -499,17 +527,10 @@ "-1", "auto", "off", + "", + "on", "off", - "[]", - "off", - "held", "off", - "0", - "", - [ - ], - "Dialog", - "Auto", "off" ], "tabs":[ @@ -529,99 +550,47 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8676", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From1", - "label":"From1", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8671", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "i_phaB", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", + "blocktype":"Inport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8684", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8682", + "className":"Simulink.Sum", "icon":"WebViewIcon3", - "name":"i_betaAB", - "label":"i_betaAB", + "name":"Sum1", + "label":"Sum1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8671", "inspector":{ "params":[ - "Port", - "IconDisplay", + "IconShape", + "Inputs", + "InputSameDT", + "AccumDataTypeStr", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" + "RndMeth", + "SaturateOnIntegerOverflow", + "CollapseDim", + "CollapseMode", + "SampleTime" ], "values":[ - "2", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", + "rectangular", + "++", "off", + "Inherit: Inherit via internal rule", "[]", + "[]", + "fixdt(1,16,4)", "off", - "held", - "off", - "0", - "", - [ - ], - "Dialog", - "Auto", - "off" + "Simplest", + "on", + "1", + "All dimensions", + "-1" ], "tabs":[ "Main", @@ -631,7 +600,7 @@ "tabs_idx":[ 0, 2, - 11 + 10 ] }, "viewer":{ @@ -640,7 +609,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", + "blocktype":"Sum", "masktype":"" } }, @@ -711,6 +680,37 @@ "masktype":"" } }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8675", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From", + "label":"From", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8671", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "i_phaA", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8673#out:1", "className":"Simulink.Line", diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8671_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8671_d.svg index 8e060ef..a1bf68d 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8671_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8671_d.svg @@ -64,29 +64,44 @@ - - - + + + - - + + - + - - [i_phaA] + + 1 - - + + + + + + + + + + + + + + + + + i_alphaAB @@ -97,163 +112,171 @@ - - - + + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - + + + + + + + - - - - - - + + + + + + + - - + + - - sfix16_En4 + + - - - - - - - - - - - - - - - - - - - - + + - - 1/sqrt(3) + + - - - - - - + + + + + + + - - - - - - + + + + + + + - - + + - - sfix16_En4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + - - - - - - - 2/sqrt(3) - - - + + - + - - + + - + sfix16_En4 @@ -275,11 +298,11 @@ - + - + [i_phaB] @@ -298,44 +321,29 @@ - - - + + + - - + + - - + + - + [i_phaA] - - - - - - - - - - - - - - - - - sfix16_En4 + + @@ -346,171 +354,91 @@ - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + 2/sqrt(3) - - - - - - - + + + + + + - - - - - - - + + + + + + - - + + - - + + sfix16_En4 - - + + + + + + + + + + + + + + + + + + + 1/sqrt(3) + - - + + - + - - + + - + sfix16_En4 @@ -524,7 +452,7 @@ - + @@ -532,11 +460,11 @@ - + - + if { } @@ -554,11 +482,11 @@ - + - + Action Port @@ -570,58 +498,43 @@ - - - + + + - - + + - - + + - - 2 + + [i_phaB] - - - - - - - - - - - - - - - - - i_phaB + + - + - - + + - + sfix16_En4 @@ -633,44 +546,44 @@ - - + + - + - + - - 1 + + 2 - + - - + + - - + + - - i_alphaAB + + i_betaAB @@ -681,43 +594,58 @@ - - - + + + - - + + - - + + - - [i_phaB] + + 2 - - + + + + + + + + + + + + + + + + + i_phaB - + - - + + - + sfix16_En4 @@ -729,44 +657,68 @@ - - - + + + - - + + - - + + - - 2 + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - + + + - - + + - - i_betaAB + + sfix16_En4 @@ -787,11 +739,11 @@ - + - + 1 @@ -809,11 +761,11 @@ - + - + i_phaA @@ -824,11 +776,59 @@ - + - + + sfix16_En4 + + + + + + + + + + + + + + + + + + + + + + + + + + [i_phaA] + + + + + + + + + + + + + + + + + + + + + sfix16_En4 @@ -972,5 +972,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8686_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8686_d.json index 68d8fa3..bb3f7b7 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8686_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8686_d.json @@ -48,6 +48,86 @@ "finder":[ ] }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8700", + "className":"Simulink.Outport", + "icon":"WebViewIcon3", + "name":"i_betaBC", + "label":"i_betaBC", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8686", + "inspector":{ + "params":[ + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" + ], + "values":[ + "2", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "off", + "[]", + "off", + "held", + "off", + "0", + "", + [ + ], + "Dialog", + "Auto", + "off" + ], + "tabs":[ + "Main", + "Signal Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 2, + 11 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Outport", + "masktype":"" + } + }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8698", "className":"Simulink.Sum", @@ -108,11 +188,70 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8700", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8697", + "className":"Simulink.Sum", + "icon":"WebViewIcon3", + "name":"Sum1", + "label":"Sum1", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8686", + "inspector":{ + "params":[ + "IconShape", + "Inputs", + "InputSameDT", + "AccumDataTypeStr", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "RndMeth", + "SaturateOnIntegerOverflow", + "CollapseDim", + "CollapseMode", + "SampleTime" + ], + "values":[ + "rectangular", + "--", + "off", + "Inherit: Inherit via internal rule", + "[]", + "[]", + "fixdt(1,16,4)", + "off", + "Simplest", + "on", + "1", + "All dimensions", + "-1" + ], + "tabs":[ + "Main", + "Signal Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 2, + 10 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Sum", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8699", "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"i_betaBC", - "label":"i_betaBC", + "name":"i_alphaBC", + "label":"i_alphaBC", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8686", "inspector":{ "params":[ @@ -141,7 +280,7 @@ "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "2", + "1", "Port number", "[]", "[]", @@ -188,53 +327,27 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8694", - "className":"Simulink.Gain", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8696", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Gain2", - "label":"Gain2", + "name":"Goto15", + "label":"Goto15", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8686", "inspector":{ "params":[ - "Gain", - "Multiplication", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "ParamMin", - "ParamMax", - "ParamDataTypeStr", - "SampleTime" + "GotoTag", + "TagVisibility", + "IconDisplay" ], "values":[ - "1/sqrt(3)", - "Element-wise(K.*u)", - "[]", - "[]", - "Inherit: Same as input", - "off", - "Zero", - "off", - "[]", - "[]", - "Inherit: Inherit via internal rule", - "-1" + "i_phaC", + "local", + "Tag" ], "tabs":[ - "Main", - "Signal Attributes", - "Parameter Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 2, - 8, - 11 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -242,16 +355,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Gain", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8696", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8695", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto15", - "label":"Goto15", + "name":"Goto13", + "label":"Goto13", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8686", "inspector":{ "params":[ @@ -260,7 +373,7 @@ "IconDisplay" ], "values":[ - "i_phaC", + "i_phaB", "local", "Tag" ], @@ -280,25 +393,53 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8692", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8694", + "className":"Simulink.Gain", "icon":"WebViewIcon3", - "name":"From4", - "label":"From4", + "name":"Gain2", + "label":"Gain2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8686", "inspector":{ "params":[ - "GotoTag", - "IconDisplay" + "Gain", + "Multiplication", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "RndMeth", + "SaturateOnIntegerOverflow", + "ParamMin", + "ParamMax", + "ParamDataTypeStr", + "SampleTime" ], "values":[ - "i_phaB", - "Tag" + "1/sqrt(3)", + "Element-wise(K.*u)", + "[]", + "[]", + "Inherit: Same as input", + "off", + "Zero", + "off", + "[]", + "[]", + "Inherit: Inherit via internal rule", + "-1" ], "tabs":[ - "Parameter Attributes" + "Main", + "Signal Attributes", + "Parameter Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 2, + 8, + 11 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -306,7 +447,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Gain", "masktype":"" } }, @@ -342,11 +483,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8690", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8693", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From2", - "label":"From2", + "name":"From5", + "label":"From5", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8686", "inspector":{ "params":[ @@ -354,7 +495,7 @@ "IconDisplay" ], "values":[ - "i_phaB", + "i_phaC", "Tag" ], "tabs":[ @@ -373,74 +514,25 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8699", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8690", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"i_alphaBC", - "label":"i_alphaBC", + "name":"From2", + "label":"From2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8686", "inspector":{ "params":[ - "Port", - "IconDisplay", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" + "GotoTag", + "IconDisplay" ], "values":[ - "1", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "off", - "[]", - "off", - "held", - "off", - "0", - "", - [ - ], - "Dialog", - "Auto", - "off" + "i_phaB", + "Tag" ], "tabs":[ - "Main", - "Signal Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 2, - 11 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -448,7 +540,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", + "blocktype":"From", "masktype":"" } }, @@ -551,52 +643,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8693", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8692", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From5", - "label":"From5", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8686", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "i_phaC", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8695", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto13", - "label":"Goto13", + "name":"From4", + "label":"From4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8686", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ "i_phaB", - "local", "Tag" ], "tabs":[ @@ -610,7 +669,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, @@ -681,65 +740,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8697", - "className":"Simulink.Sum", - "icon":"WebViewIcon3", - "name":"Sum1", - "label":"Sum1", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8686", - "inspector":{ - "params":[ - "IconShape", - "Inputs", - "InputSameDT", - "AccumDataTypeStr", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", - "SampleTime" - ], - "values":[ - "rectangular", - "--", - "off", - "Inherit: Inherit via internal rule", - "[]", - "[]", - "fixdt(1,16,4)", - "off", - "Simplest", - "on", - "1", - "All dimensions", - "-1" - ], - "tabs":[ - "Main", - "Signal Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 2, - 10 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Sum", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8691#out:1", "className":"Simulink.Line", diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8686_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8686_d.svg index 57f874a..ff95e1d 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8686_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8686_d.svg @@ -62,6 +62,54 @@ + + + + + + + + + + + + + + + + + + 2 + + + + + + + + + + + + + + + + + + + + + + i_betaBC + + + + + + + + @@ -74,27 +122,27 @@ - + - + - + - + - + - + @@ -112,11 +160,11 @@ - + - + sfix16_En4 @@ -128,44 +176,52 @@ - - - + + + - - + + - - + + - - 2 + + + + + + + + + + - - + + - - - + + + - - + + - - i_betaBC + + sfix16_En4 @@ -176,44 +232,44 @@ - - - + + + - - + + - - + + - - 1/sqrt(3) + + 1 - - + + - - - + + + - - + + - - sfix16_En4 + + i_alphaBC @@ -234,11 +290,11 @@ - + - + [i_phaC] @@ -257,43 +313,76 @@ - - - + + + - - + + - - + + - + [i_phaB] - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1/sqrt(3) + + + + + + + - + - - + + - + sfix16_En4 @@ -315,11 +404,11 @@ - + - + [i_phaC] @@ -337,11 +426,11 @@ - + - + sfix16_En4 @@ -353,43 +442,43 @@ - - + + - + - + - - [i_phaB] + + [i_phaC] - + - + - - + + - + sfix16_En4 @@ -401,44 +490,44 @@ - - - + + + - - + + - - + + - - 1 + + [i_phaB] - - + + - - - + + + - - + + - - i_alphaBC + + sfix16_En4 @@ -459,11 +548,11 @@ - + - + 2 @@ -481,11 +570,11 @@ - + - + i_phaC @@ -496,11 +585,11 @@ - + - + sfix16_En4 @@ -514,7 +603,7 @@ - + @@ -522,11 +611,11 @@ - + - + else { } @@ -544,11 +633,11 @@ - + - + Action Port @@ -560,43 +649,43 @@ - - + + - + - + - - [i_phaC] + + [i_phaB] - + - + - - + + - + sfix16_En4 @@ -606,39 +695,6 @@ - - - - - - - - - - - - - - - - - - [i_phaB] - - - - - - - - - - - - - - - @@ -651,11 +707,11 @@ - + - + 1 @@ -673,11 +729,11 @@ - + - + i_phaB @@ -687,68 +743,12 @@ - - - - - - - sfix16_En4 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + sfix16_En4 @@ -886,5 +886,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8726_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8726_d.json index 7f65563..14057db 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8726_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8726_d.json @@ -1,10 +1,10 @@ [ { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8741", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8742", "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"iq", - "label":"iq", + "name":"id", + "label":"id", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8726", "inspector":{ "params":[ @@ -33,7 +33,7 @@ "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "1", + "2", "Port number", "[]", "[]", @@ -159,6 +159,72 @@ "masktype":"" } }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8737", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto6", + "label":"Goto6", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8726", + "inspector":{ + "params":[ + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "id", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8736", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto3", + "label":"Goto3", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8726", + "inspector":{ + "params":[ + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "id_raw", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", + "masktype":"" + } + }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8738", "className":"Simulink.SubSystem", @@ -253,44 +319,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8736", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto3", - "label":"Goto3", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8726", - "inspector":{ - "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" - ], - "values":[ - "id_raw", - "local", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Goto", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8734", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8735", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto", - "label":"Goto", + "name":"Goto2", + "label":"Goto2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8726", "inspector":{ "params":[ @@ -299,7 +332,7 @@ "IconDisplay" ], "values":[ - "iq", + "iq_raw", "local", "Tag" ], @@ -319,11 +352,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8733", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8731", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From3", - "label":"From3", + "name":"From1", + "label":"From1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8726", "inspector":{ "params":[ @@ -331,7 +364,7 @@ "IconDisplay" ], "values":[ - "id_raw", + "id", "Tag" ], "tabs":[ @@ -350,11 +383,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8731", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8730", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From1", - "label":"From1", + "name":"From", + "label":"From", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8726", "inspector":{ "params":[ @@ -362,7 +395,7 @@ "IconDisplay" ], "values":[ - "id", + "iq", "Tag" ], "tabs":[ @@ -381,21 +414,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8737", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8732", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto6", - "label":"Goto6", + "name":"From2", + "label":"From2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8726", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "id", - "local", + "iq_raw", "Tag" ], "tabs":[ @@ -409,16 +440,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8730", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8733", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From", - "label":"From", + "name":"From3", + "label":"From3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8726", "inspector":{ "params":[ @@ -426,7 +457,7 @@ "IconDisplay" ], "values":[ - "iq", + "id_raw", "Tag" ], "tabs":[ @@ -445,11 +476,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8735", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8734", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto2", - "label":"Goto2", + "name":"Goto", + "label":"Goto", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8726", "inspector":{ "params":[ @@ -458,7 +489,7 @@ "IconDisplay" ], "values":[ - "iq_raw", + "iq", "local", "Tag" ], @@ -511,42 +542,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8732", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From2", - "label":"From2", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8726", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "iq_raw", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8727", - "className":"Simulink.Inport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8741", + "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"iq_raw", - "label":"iq_raw", + "name":"iq", + "label":"iq", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8726", "inspector":{ "params":[ @@ -562,11 +562,17 @@ "SampleTime", "SignalType", "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ "1", @@ -581,10 +587,17 @@ "-1", "auto", "off", - "", - "on", "off", + "[]", + "off", + "held", "off", + "0", + "", + [ + ], + "Dialog", + "Auto", "off" ], "tabs":[ @@ -604,16 +617,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", + "blocktype":"Outport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8742", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8728", + "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"id", - "label":"id", + "name":"id_raw", + "label":"id_raw", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8726", "inspector":{ "params":[ @@ -629,17 +642,11 @@ "SampleTime", "SignalType", "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" ], "values":[ "2", @@ -654,17 +661,10 @@ "-1", "auto", "off", + "", + "on", "off", - "[]", - "off", - "held", "off", - "0", - "", - [ - ], - "Dialog", - "Auto", "off" ], "tabs":[ @@ -684,16 +684,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", + "blocktype":"Inport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8728", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8727", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"id_raw", - "label":"id_raw", + "name":"iq_raw", + "label":"iq_raw", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8726", "inspector":{ "params":[ @@ -716,7 +716,7 @@ "OutputFunctionCall" ], "values":[ - "2", + "1", "Port number", "[]", "[]", diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8726_d.png b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8726_d.png index 8bda22c09e3319f139e4c5db6ef067243e48a48c..86a7848c2c944268ff3f82b1e479561e8704e624 100644 GIT binary patch delta 4603 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 UO{ty(p9CQ~_w+O>)NI554{obsDgXcg diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8726_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8726_d.svg index 03f0579..9cd9700 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8726_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8726_d.svg @@ -13,11 +13,11 @@ - - + + - + @@ -27,30 +27,30 @@ - - 1 + + 2 - + - + - + - - iq + + id @@ -170,11 +170,77 @@ + + + + + + + + + + + + + + + + + + [id] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [id_raw] + + + + + + + + + + + + + + + - + @@ -182,195 +248,195 @@ - + - + u - + - + coef - + - + y - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + coef @@ -388,11 +454,11 @@ - + - + Low_Pass_Filter @@ -403,11 +469,11 @@ - + - + sfix16_En4 @@ -415,29 +481,29 @@ - + - + - + - + - + - + @@ -451,61 +517,28 @@ - - - - - - - - - - - - - - - - [id_raw] - - - - - - - - - - - - - - - - - - - + + - + - + - - [iq] + + [iq_raw] - + @@ -517,43 +550,43 @@ - - + + - + - + - - [id_raw] + + [id] - + - + - - + + - + sfix16_En4 @@ -565,43 +598,43 @@ - - + + - + - + - - [id] + + [iq] - + - + - - + + - + sfix16_En4 @@ -613,29 +646,44 @@ - - - + + + - - + + - - + + - - [id] + + [iq_raw] - - + + + + + + + + + + + + + + + + + sfix16_En4 @@ -646,43 +694,43 @@ - - + + - + - + - - [iq] + + [id_raw] - + - + - - + + - + sfix16_En4 @@ -694,28 +742,28 @@ - - + + - + - + - - [iq_raw] + + [iq] - + @@ -737,11 +785,11 @@ - + - + @@ -754,79 +802,31 @@ - - - - - - - - - - - sfix16_En4 - - - - - + - + sfix16_En4 - - - - - - - - - - - - - - - - - - - - - - [iq_raw] - - - - - - - - - - - - + - + - + sfix16_En4 @@ -838,11 +838,11 @@ - - + + - + @@ -852,45 +852,30 @@ - + 1 - + - - + + - - - - - iq_raw - - - - - - - - - - - + - - sfix16_En4 + + iq @@ -901,44 +886,59 @@ - - + + - + - + - + 2 - + - - + + + + + + + + + + id_raw + + + + + + + - + - - id + + sfix16_En4 @@ -949,11 +949,11 @@ - - + + - + @@ -963,44 +963,44 @@ - - 2 + + 1 - + - + - + - - id_raw + + iq_raw - + - + - + sfix16_En4 @@ -1166,5 +1166,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8738_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8738_d.json index 4969c88..8993a3a 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8738_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8738_d.json @@ -1,42 +1,72 @@ [ { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8738:2406", - "className":"Simulink.UnitDelay", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8738:2407", + "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"UnitDelay3", - "label":"UnitDelay3", + "name":"y", + "label":"y", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8738", "inspector":{ "params":[ - "InitialCondition", - "InputProcessing", + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", "SampleTime", - "StateName", - "CodeGenStateStorageTypeQualifier", - "StateMustResolveToSignalObject", - "StateSignalObject", - "StateStorageClass" + "SignalType", + "BusOutputAsStruct", + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "0", - "Elements as channels (sample based)", + "1", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", "-1", - "", - "", + "Inherit", + "-1", + "auto", + "off", + "off", + "[]", + "off", + "held", "off", + "0", + "", [ ], - "Auto" + "Dialog", + "Auto", + "off" ], "tabs":[ "Main", - "State Attributes", + "Signal Attributes", "-Other" ], "tabs_idx":[ 0, - 3, - 4 + 2, + 11 ] }, "viewer":{ @@ -45,7 +75,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"UnitDelay", + "blocktype":"Outport", "masktype":"" } }, @@ -225,42 +255,43 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8738:2401", - "className":"Simulink.Constant", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8738:2406", + "className":"Simulink.UnitDelay", "icon":"WebViewIcon3", - "name":"Constant1", - "label":"Constant1", + "name":"UnitDelay3", + "label":"UnitDelay3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8738", "inspector":{ "params":[ - "Value", - "VectorParams1D", + "InitialCondition", + "InputProcessing", "SampleTime", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "FramePeriod" + "StateName", + "CodeGenStateStorageTypeQualifier", + "StateMustResolveToSignalObject", + "StateSignalObject", + "StateStorageClass" ], "values":[ - "1", - "on", - "inf", - "[]", - "[]", - "Inherit: Inherit via back propagation", + "0", + "Elements as channels (sample based)", + "-1", + "", + "", "off", - "inf" + [ + ], + "Auto" ], "tabs":[ "Main", - "Signal Attributes", + "State Attributes", "-Other" ], "tabs_idx":[ 0, 3, - 7 + 4 ] }, "viewer":{ @@ -269,45 +300,55 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Constant", + "blocktype":"UnitDelay", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8738:2402", - "className":"Simulink.Product", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8738:2400", + "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"Divide1", - "label":"Divide1", + "name":"coef", + "label":"coef", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8738", "inspector":{ "params":[ - "Inputs", - "Multiplication", - "InputSameDT", + "Port", + "IconDisplay", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", - "SampleTime" + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" ], "values":[ - "**", - "Element-wise(.*)", - "off", + "2", + "Port number", "[]", "[]", - "Inherit: Same as first input", + "Inherit: auto", "off", - "Simplest", + "inherit", + "-1", + "Inherit", + "-1", + "auto", "off", - "1", - "All dimensions", - "-1" + "", + "on", + "off", + "off", + "off" ], "tabs":[ "Main", @@ -317,7 +358,7 @@ "tabs_idx":[ 0, 2, - 9 + 11 ] }, "viewer":{ @@ -326,16 +367,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Product", + "blocktype":"Inport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8738:2400", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8738:2399", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"coef", - "label":"coef", + "name":"u", + "label":"u", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8738", "inspector":{ "params":[ @@ -358,7 +399,7 @@ "OutputFunctionCall" ], "values":[ - "2", + "1", "Port number", "[]", "[]", @@ -398,63 +439,40 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8738:2407", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8738:2402", + "className":"Simulink.Product", "icon":"WebViewIcon3", - "name":"y", - "label":"y", + "name":"Divide1", + "label":"Divide1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8738", "inspector":{ "params":[ - "Port", - "IconDisplay", + "Inputs", + "Multiplication", + "InputSameDT", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" + "RndMeth", + "SaturateOnIntegerOverflow", + "CollapseDim", + "CollapseMode", + "SampleTime" ], "values":[ - "1", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", + "**", + "Element-wise(.*)", "off", "[]", + "[]", + "Inherit: Same as first input", "off", - "held", + "Simplest", "off", - "0", - "", - [ - ], - "Dialog", - "Auto", - "off" + "1", + "All dimensions", + "-1" ], "tabs":[ "Main", @@ -464,7 +482,7 @@ "tabs_idx":[ 0, 2, - 11 + 9 ] }, "viewer":{ @@ -473,55 +491,37 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", + "blocktype":"Product", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8738:2399", - "className":"Simulink.Inport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8738:2401", + "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"u", - "label":"u", + "name":"Constant1", + "label":"Constant1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8738", "inspector":{ "params":[ - "Port", - "IconDisplay", + "Value", + "VectorParams1D", + "SampleTime", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" + "FramePeriod" ], "values":[ "1", - "Port number", + "on", + "inf", "[]", "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "", - "on", - "off", + "Inherit: Inherit via back propagation", "off", - "off" + "inf" ], "tabs":[ "Main", @@ -530,8 +530,8 @@ ], "tabs_idx":[ 0, - 2, - 11 + 3, + 7 ] }, "viewer":{ @@ -540,7 +540,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", + "blocktype":"Constant", "masktype":"" } }, diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8738_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8738_d.svg index c3389bd..7899ac6 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8738_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8738_d.svg @@ -13,76 +13,44 @@ - - - + + + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + 1 - - - - - - - - - - + + - - - + + + - - + + - - sfix16_En4 + + y @@ -103,27 +71,27 @@ - + - + - + - + - + - + @@ -141,11 +109,11 @@ - + - + ufix16_En16 @@ -167,35 +135,35 @@ - + - + - + - + - + - + - + - + @@ -213,11 +181,11 @@ - + - + sfix16_En4 @@ -239,19 +207,19 @@ - + - + - + - + @@ -269,11 +237,11 @@ - + - + sfix16_En4 @@ -285,99 +253,75 @@ - - - + + + - - + + - + - - + + - - 1 - - - - - - - - - - - - - - + + - - + + - - ufix16_En16 + + - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + + + + + + + + + - - + + - - + + - - + + - + sfix16_En4 @@ -399,11 +343,11 @@ - + - + 2 @@ -421,11 +365,11 @@ - + - + coef @@ -436,11 +380,11 @@ - + - + ufix16_En16 @@ -452,44 +396,59 @@ - - + + - + - + - + 1 - + - - + + - - + + - - y + + u + + + + + + + + + + + + + + + sfix16_En4 @@ -500,59 +459,100 @@ - - - + + + - - + + - - + + - - 1 + + + + + + + + + + - - + + - - - + + + + + + + + + + sfix16_En4 + + + + + + + + + + + + + + + + + + + - + - - u + + 1 + + + + + + + - - + + - + - - sfix16_En4 + + ufix16_En16 @@ -715,5 +715,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8743_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8743_d.json index 4499557..f6c60fc 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8743_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8743_d.json @@ -276,212 +276,74 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8757", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8755", + "className":"Simulink.Interpolation_nD", "icon":"WebViewIcon3", - "name":"r_sin", - "label":"r_sin", + "name":"r_sin_M1", + "label":"r_sin_M1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", "inspector":{ "params":[ - "Port", - "IconDisplay", - "OutMin", - "OutMax", + "NumberOfTableDimensions", + "RequireIndexFractionAsBus", + "TableSpecification", + "TableSource", + "Table", + "InterpMethod", + "DiagnosticForOutOfRangeInput", + "ValidIndexMayReachLast", + "NumSelectionDims", + "RemoveProtectionIndex", + "TableDataTypeStr", + "TableMin", + "TableMax", "OutDataTypeStr", - "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" - ], - "values":[ - "1", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "off", - "[]", - "off", - "held", - "off", - "0", - "", - [ - ], - "Dialog", - "Auto", - "off" - ], - "tabs":[ - "Main", - "Signal Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 2, - 11 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Outport", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8756", - "className":"Simulink.Gain", - "icon":"WebViewIcon3", - "name":"toNegative", - "label":"toNegative", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", - "inspector":{ - "params":[ - "Gain", - "Multiplication", "OutMin", "OutMax", - "OutDataTypeStr", + "InternalRulePriority", "LockScale", "RndMeth", "SaturateOnIntegerOverflow", - "ParamMin", - "ParamMax", - "ParamDataTypeStr", + "ExtrapMethod", + "IntermediateResultsDataTypeStr", + "LookupTableObject", "SampleTime" ], "values":[ - "-1", - "Element-wise(K.*u)", - "[]", - "[]", - "fixdt(1,16,4)", - "off", - "Zero", + "1", "off", + "Explicit values", + "Dialog", + "r_sin_M1", + "Flat", + "Error", + "on", + "0", + "on", + "Inherit: Same as output", "[]", "[]", - "Inherit: Same as input", - "-1" - ], - "tabs":[ - "Main", - "Signal Attributes", - "Parameter Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 2, - 8, - 11 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Gain", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8758", - "className":"Simulink.Outport", - "icon":"WebViewIcon3", - "name":"r_cos", - "label":"r_cos", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", - "inspector":{ - "params":[ - "Port", - "IconDisplay", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" - ], - "values":[ - "2", - "Port number", - "[]", + "fixdt(1,16,14)", "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "off", "[]", + "Speed", "off", - "held", + "Simplest", "off", - "0", + "Clip", + "Inherit: Same as output", "", - [ - ], - "Dialog", - "Auto", - "off" + "-1" ], "tabs":[ "Main", - "Signal Attributes", + "Data Types", "-Other" ], "tabs_idx":[ 0, - 2, - 11 + 10, + 20 ] }, "viewer":{ @@ -490,7 +352,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", + "blocktype":"Interpolation_n-D", "masktype":"" } }, @@ -574,32 +436,38 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8751", - "className":"Simulink.Constant", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9657", + "className":"Simulink.Relay", "icon":"WebViewIcon3", - "name":"b_fieldWeakEna", - "label":"b_fieldWeakEna", + "name":"n_fieldWeakAuth", + "label":"n_fieldWeakAuth", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", "inspector":{ "params":[ - "Value", - "VectorParams1D", - "SampleTime", + "OnSwitchValue", + "OffSwitchValue", + "OnOutputValue", + "OffOutputValue", + "InputProcessing", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "FramePeriod" + "SampleTime", + "ZeroCross" ], "values":[ - "b_fieldWeakEna", - "on", - "inf", + "n_fieldWeakAuthHi", + "n_fieldWeakAuthLo", + "1", + "0", + "Elements as channels (sample based)", "[]", "[]", "boolean", "off", - "inf" + "-1", + "on" ], "tabs":[ "Main", @@ -608,8 +476,8 @@ ], "tabs_idx":[ 0, - 3, - 7 + 5, + 9 ] }, "viewer":{ @@ -618,16 +486,97 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Constant", + "blocktype":"Relay", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8749", - "className":"Simulink.Constant", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8752", + "className":"Simulink.Interpolation_nD", "icon":"WebViewIcon3", - "name":"a_elecPeriod1", - "label":"a_elecPeriod1", + "name":"id_fieldWeak_M1", + "label":"id_fieldWeak_M1", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", + "inspector":{ + "params":[ + "NumberOfTableDimensions", + "RequireIndexFractionAsBus", + "TableSpecification", + "TableSource", + "Table", + "InterpMethod", + "DiagnosticForOutOfRangeInput", + "ValidIndexMayReachLast", + "NumSelectionDims", + "RemoveProtectionIndex", + "TableDataTypeStr", + "TableMin", + "TableMax", + "OutDataTypeStr", + "OutMin", + "OutMax", + "InternalRulePriority", + "LockScale", + "RndMeth", + "SaturateOnIntegerOverflow", + "ExtrapMethod", + "IntermediateResultsDataTypeStr", + "LookupTableObject", + "SampleTime" + ], + "values":[ + "1", + "off", + "Explicit values", + "Dialog", + "id_fieldWeak_M1", + "Linear", + "Error", + "off", + "0", + "on", + "Inherit: Same as output", + "[]", + "[]", + "fixdt(1,16,4)", + "[]", + "[]", + "Precision", + "off", + "Simplest", + "off", + "Clip", + "Inherit: Same as output", + "", + "-1" + ], + "tabs":[ + "Main", + "Data Types", + "-Other" + ], + "tabs_idx":[ + 0, + 10, + 20 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Interpolation_n-D", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8751", + "className":"Simulink.Constant", + "icon":"WebViewIcon3", + "name":"b_fieldWeakEna", + "label":"b_fieldWeakEna", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", "inspector":{ "params":[ @@ -641,12 +590,12 @@ "FramePeriod" ], "values":[ - "0", + "b_fieldWeakEna", "on", "inf", "[]", "[]", - "Inherit: Inherit via back propagation", + "boolean", "off", "inf" ], @@ -672,63 +621,81 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8759", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8750", + "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"id_Tgt", - "label":"id_Tgt", + "name":"a_elecPeriod3", + "label":"a_elecPeriod3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", "inspector":{ "params":[ - "Port", - "IconDisplay", + "Value", + "VectorParams1D", + "SampleTime", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" + "FramePeriod" ], "values":[ - "3", - "Port number", + "0", + "on", + "inf", "[]", "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", + "uint8", "off", + "inf" + ], + "tabs":[ + "Main", + "Signal Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 3, + 7 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Constant", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8749", + "className":"Simulink.Constant", + "icon":"WebViewIcon3", + "name":"a_elecPeriod1", + "label":"a_elecPeriod1", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", + "inspector":{ + "params":[ + "Value", + "VectorParams1D", + "SampleTime", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "FramePeriod" + ], + "values":[ + "0", + "on", + "inf", "[]", + "[]", + "Inherit: Inherit via back propagation", "off", - "held", - "off", - "0", - "", - [ - ], - "Dialog", - "Auto", - "off" + "inf" ], "tabs":[ "Main", @@ -737,8 +704,8 @@ ], "tabs_idx":[ 0, - 2, - 11 + 3, + 7 ] }, "viewer":{ @@ -747,7 +714,40 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", + "blocktype":"Constant", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9638", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto12", + "label":"Goto12", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", + "inspector":{ + "params":[ + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "n_motAbs", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", "masktype":"" } }, @@ -809,11 +809,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9650", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9646", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto3", - "label":"Goto3", + "name":"Goto1", + "label":"Goto1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", "inspector":{ "params":[ @@ -822,7 +822,7 @@ "IconDisplay" ], "values":[ - "id_TgtAbs", + "r_cos", "local", "Tag" ], @@ -842,11 +842,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9638", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9644", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto12", - "label":"Goto12", + "name":"Goto", + "label":"Goto", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", "inspector":{ "params":[ @@ -855,7 +855,7 @@ "IconDisplay" ], "values":[ - "n_motAbs", + "r_sin", "local", "Tag" ], @@ -875,92 +875,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8754", - "className":"Simulink.Interpolation_nD", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9649", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"r_cos_M1", - "label":"r_cos_M1", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", - "inspector":{ - "params":[ - "NumberOfTableDimensions", - "RequireIndexFractionAsBus", - "TableSpecification", - "TableSource", - "Table", - "InterpMethod", - "DiagnosticForOutOfRangeInput", - "ValidIndexMayReachLast", - "NumSelectionDims", - "RemoveProtectionIndex", - "TableDataTypeStr", - "TableMin", - "TableMax", - "OutDataTypeStr", - "OutMin", - "OutMax", - "InternalRulePriority", - "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "ExtrapMethod", - "IntermediateResultsDataTypeStr", - "LookupTableObject", - "SampleTime" - ], - "values":[ - "1", - "off", - "Explicit values", - "Dialog", - "r_cos_M1", - "Flat", - "Error", - "on", - "0", - "on", - "Inherit: Same as output", - "[]", - "[]", - "fixdt(1,16,14)", - "[]", - "[]", - "Speed", - "off", - "Simplest", - "off", - "Clip", - "Inherit: Same as output", - "", - "-1" - ], - "tabs":[ - "Main", - "Data Types", - "-Other" - ], - "tabs_idx":[ - 0, - 10, - 20 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Interpolation_n-D", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9646", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto1", - "label":"Goto1", + "name":"Goto2", + "label":"Goto2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", "inspector":{ "params":[ @@ -969,7 +888,7 @@ "IconDisplay" ], "values":[ - "r_cos", + "id_Tgt", "local", "Tag" ], @@ -989,73 +908,25 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8748", - "className":"Simulink.PreLookup", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9653", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"a_elecAngle_XA", - "label":"a_elecAngle_XA", + "name":"From6", + "label":"From6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", "inspector":{ "params":[ - "BreakpointsSpecification", - "BreakpointsDataSource", - "BreakpointsData", - "OutputSelection", - "IndexSearchMethod", - "ExtrapMethod", - "UseLastBreakpoint", - "DiagnosticForOutOfRangeInput", - "RemoveProtectionInput", - "BreakpointDataTypeStr", - "BreakpointMin", - "BreakpointMax", - "IndexDataTypeStr", - "FractionDataTypeStr", - "LockScale", - "RndMeth", - "BeginIndexSearchUsingPreviousIndexResult", - "BreakpointObject", - "BreakpointsFirstPoint", - "BreakpointsNumPoints", - "BreakpointsSpacing", - "OutputBusDataTypeStr", - "SampleTime" + "GotoTag", + "IconDisplay" ], "values":[ - "Explicit values", - "Dialog", - "a_elecAngle_XA", - "Index only", - "Evenly spaced points", - "Clip", - "off", - "Error", - "off", - "Inherit: Same as input", - "[]", - "[]", - "uint8", - "fixdt(0,16,14)", - "off", - "Simplest", - "on", - "", - "10", - "11", - "10", - "Inherit: auto", - "-1" + "r_inpTgt", + "Tag" ], "tabs":[ - "Main", - "Data Types", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 9, - 16 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1063,80 +934,32 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"PreLookup", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8755", - "className":"Simulink.Interpolation_nD", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9652", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"r_sin_M1", - "label":"r_sin_M1", + "name":"Goto27", + "label":"Goto27", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", "inspector":{ "params":[ - "NumberOfTableDimensions", - "RequireIndexFractionAsBus", - "TableSpecification", - "TableSource", - "Table", - "InterpMethod", - "DiagnosticForOutOfRangeInput", - "ValidIndexMayReachLast", - "NumSelectionDims", - "RemoveProtectionIndex", - "TableDataTypeStr", - "TableMin", - "TableMax", - "OutDataTypeStr", - "OutMin", - "OutMax", - "InternalRulePriority", - "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "ExtrapMethod", - "IntermediateResultsDataTypeStr", - "LookupTableObject", - "SampleTime" + "GotoTag", + "TagVisibility", + "IconDisplay" ], "values":[ - "1", - "off", - "Explicit values", - "Dialog", - "r_sin_M1", - "Flat", - "Error", - "on", - "0", - "on", - "Inherit: Same as output", - "[]", - "[]", - "fixdt(1,16,14)", - "[]", - "[]", - "Speed", - "off", - "Simplest", - "off", - "Clip", - "Inherit: Same as output", - "", - "-1" + "r_inpTgt", + "local", + "Tag" ], "tabs":[ - "Main", - "Data Types", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 10, - 20 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1144,54 +967,30 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Interpolation_n-D", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9657", - "className":"Simulink.Relay", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9641", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"n_commDeacv", - "label":"n_commDeacv", + "name":"From1", + "label":"From1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", "inspector":{ "params":[ - "OnSwitchValue", - "OffSwitchValue", - "OnOutputValue", - "OffOutputValue", - "InputProcessing", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "SampleTime", - "ZeroCross" + "GotoTag", + "IconDisplay" ], "values":[ - "n_fieldWeakAuthHi", - "n_fieldWeakAuthLo", - "1", - "0", - "Elements as channels (sample based)", - "[]", - "[]", - "boolean", - "off", - "-1", - "on" + "n_motAbs", + "Tag" ], "tabs":[ - "Main", - "Signal Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 5, - 9 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1199,16 +998,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Relay", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9653", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9640", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From6", - "label":"From6", + "name":"From", + "label":"From", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", "inspector":{ "params":[ @@ -1216,7 +1015,7 @@ "IconDisplay" ], "values":[ - "r_inpTgtSca", + "a_elecAngle", "Tag" ], "tabs":[ @@ -1235,32 +1034,63 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8750", - "className":"Simulink.Constant", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8758", + "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"a_elecPeriod3", - "label":"a_elecPeriod3", + "name":"r_cos", + "label":"r_cos", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", "inspector":{ "params":[ - "Value", - "VectorParams1D", - "SampleTime", + "Port", + "IconDisplay", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "FramePeriod" + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "0", - "on", - "inf", + "2", + "Port number", "[]", "[]", - "uint8", + "Inherit: auto", "off", - "inf" + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "off", + "[]", + "off", + "held", + "off", + "0", + "", + [ + ], + "Dialog", + "Auto", + "off" ], "tabs":[ "Main", @@ -1269,8 +1099,8 @@ ], "tabs_idx":[ 0, - 3, - 7 + 2, + 11 ] }, "viewer":{ @@ -1279,61 +1109,46 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Constant", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9648", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From5", - "label":"From5", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "id_TgtAbs", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", + "blocktype":"Outport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9643", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9654", + "className":"Simulink.Abs", "icon":"WebViewIcon3", - "name":"From2", - "label":"From2", + "name":"Abs5", + "label":"Abs5", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", "inspector":{ "params":[ - "GotoTag", - "IconDisplay" + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "RndMeth", + "SaturateOnIntegerOverflow", + "SampleTime", + "ZeroCross" ], "values":[ - "r_sin", - "Tag" + "[]", + "[]", + "Inherit: Inherit via back propagation", + "off", + "Zero", + "off", + "-1", + "on" ], "tabs":[ - "Parameter Attributes" + "Signal Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 6 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1341,26 +1156,24 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Abs", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9649", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9648", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto2", - "label":"Goto2", + "name":"From5", + "label":"From5", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "id_Tgt", - "local", + "id_TgtAbs", "Tag" ], "tabs":[ @@ -1374,24 +1187,26 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9641", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9650", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From1", - "label":"From1", + "name":"Goto3", + "label":"Goto3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "n_motAbs", + "id_TgtAbs", + "local", "Tag" ], "tabs":[ @@ -1405,26 +1220,24 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9652", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9647", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto27", - "label":"Goto27", + "name":"From4", + "label":"From4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "r_inpTgtSca", - "local", + "id_Tgt", "Tag" ], "tabs":[ @@ -1438,16 +1251,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9647", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9643", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From4", - "label":"From4", + "name":"From2", + "label":"From2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", "inspector":{ "params":[ @@ -1455,7 +1268,7 @@ "IconDisplay" ], "values":[ - "id_Tgt", + "r_sin", "Tag" ], "tabs":[ @@ -1474,11 +1287,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8752", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8754", "className":"Simulink.Interpolation_nD", "icon":"WebViewIcon3", - "name":"id_fieldWeak_M1", - "label":"id_fieldWeak_M1", + "name":"r_cos_M1", + "label":"r_cos_M1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", "inspector":{ "params":[ @@ -1512,19 +1325,19 @@ "off", "Explicit values", "Dialog", - "id_fieldWeak_M1", - "Linear", + "r_cos_M1", + "Flat", "Error", - "off", + "on", "0", "on", "Inherit: Same as output", "[]", "[]", - "fixdt(1,16,4)", + "fixdt(1,16,14)", "[]", "[]", - "Precision", + "Speed", "off", "Simplest", "off", @@ -1555,40 +1368,220 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9654", - "className":"Simulink.Abs", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8745", + "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"Abs5", - "label":"Abs5", + "name":"n_motAbs", + "label":"n_motAbs", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", "inspector":{ "params":[ + "Port", + "IconDisplay", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", + "Unit", + "PortDimensions", + "VarSizeSig", "SampleTime", - "ZeroCross" + "SignalType", + "BusOutputAsStruct", + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" + ], + "values":[ + "3", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "", + "on", + "off", + "off", + "off" + ], + "tabs":[ + "Main", + "Signal Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 2, + 11 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Inport", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8759", + "className":"Simulink.Outport", + "icon":"WebViewIcon3", + "name":"id_Tgt", + "label":"id_Tgt", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", + "inspector":{ + "params":[ + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" + ], + "values":[ + "3", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "off", + "[]", + "off", + "held", + "off", + "0", + "", + [ + ], + "Dialog", + "Auto", + "off" + ], + "tabs":[ + "Main", + "Signal Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 2, + 11 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Outport", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8757", + "className":"Simulink.Outport", + "icon":"WebViewIcon3", + "name":"r_sin", + "label":"r_sin", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", + "inspector":{ + "params":[ + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ + "1", + "Port number", + "[]", "[]", + "Inherit: auto", + "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "off", "[]", - "Inherit: Inherit via back propagation", "off", - "Zero", + "held", "off", - "-1", - "on" + "0", + "", + [ + ], + "Dialog", + "Auto", + "off" ], "tabs":[ + "Main", "Signal Attributes", "-Other" ], "tabs_idx":[ 0, - 6 + 2, + 11 ] }, "viewer":{ @@ -1597,64 +1590,56 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Abs", + "blocktype":"Outport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8745", - "className":"Simulink.Inport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8756", + "className":"Simulink.Gain", "icon":"WebViewIcon3", - "name":"n_motAbs", - "label":"n_motAbs", + "name":"toNegative", + "label":"toNegative", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", "inspector":{ "params":[ - "Port", - "IconDisplay", + "Gain", + "Multiplication", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" + "RndMeth", + "SaturateOnIntegerOverflow", + "ParamMin", + "ParamMax", + "ParamDataTypeStr", + "SampleTime" ], "values":[ - "3", - "Port number", + "-1", + "Element-wise(K.*u)", "[]", "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "", - "on", + "fixdt(1,16,4)", "off", + "Zero", "off", - "off" + "[]", + "[]", + "Inherit: Same as input", + "-1" ], "tabs":[ "Main", "Signal Attributes", + "Parameter Attributes", "-Other" ], "tabs_idx":[ 0, 2, + 8, 11 ] }, @@ -1664,26 +1649,24 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", + "blocktype":"Gain", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9639", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9645", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto8", - "label":"Goto8", + "name":"From3", + "label":"From3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "a_elecAngle", - "local", + "r_cos", "Tag" ], "tabs":[ @@ -1697,16 +1680,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8744", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9651", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"a_elecAngle", - "label":"a_elecAngle", + "name":"r_inpTgt", + "label":"r_inpTgt", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", "inspector":{ "params":[ @@ -1729,7 +1712,7 @@ "OutputFunctionCall" ], "values":[ - "1", + "2", "Port number", "[]", "[]", @@ -1769,11 +1752,90 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9651", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8748", + "className":"Simulink.PreLookup", + "icon":"WebViewIcon3", + "name":"a_elecAngle_XA", + "label":"a_elecAngle_XA", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", + "inspector":{ + "params":[ + "BreakpointsSpecification", + "BreakpointsDataSource", + "BreakpointsData", + "OutputSelection", + "IndexSearchMethod", + "ExtrapMethod", + "UseLastBreakpoint", + "DiagnosticForOutOfRangeInput", + "RemoveProtectionInput", + "BreakpointDataTypeStr", + "BreakpointMin", + "BreakpointMax", + "IndexDataTypeStr", + "FractionDataTypeStr", + "LockScale", + "RndMeth", + "BeginIndexSearchUsingPreviousIndexResult", + "BreakpointObject", + "BreakpointsFirstPoint", + "BreakpointsNumPoints", + "BreakpointsSpacing", + "OutputBusDataTypeStr", + "SampleTime" + ], + "values":[ + "Explicit values", + "Dialog", + "a_elecAngle_XA", + "Index only", + "Evenly spaced points", + "Clip", + "off", + "Error", + "off", + "Inherit: Same as input", + "[]", + "[]", + "uint8", + "fixdt(0,16,14)", + "off", + "Simplest", + "on", + "", + "10", + "11", + "10", + "Inherit: auto", + "-1" + ], + "tabs":[ + "Main", + "Data Types", + "-Other" + ], + "tabs_idx":[ + 0, + 9, + 16 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"PreLookup", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8744", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"r_inpTgtSca", - "label":"r_inpTgtSca", + "name":"a_elecAngle", + "label":"a_elecAngle", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", "inspector":{ "params":[ @@ -1796,7 +1858,7 @@ "OutputFunctionCall" ], "values":[ - "2", + "1", "Port number", "[]", "[]", @@ -1836,42 +1898,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9645", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From3", - "label":"From3", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "r_cos", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9644", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9639", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto", - "label":"Goto", + "name":"Goto8", + "label":"Goto8", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", "inspector":{ "params":[ @@ -1880,7 +1911,7 @@ "IconDisplay" ], "values":[ - "r_sin", + "a_elecAngle", "local", "Tag" ], @@ -1899,37 +1930,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9640", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From", - "label":"From", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8743", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "a_elecAngle", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9636", "className":"Simulink.Logic", diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8743_d.png b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8743_d.png index 470eb812c82d42d206edd5e3cd526d0da11e78c5..526be1f37dce33205f6872982482794196e46a4b 100644 GIT binary patch literal 9570 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 literal 9568 zcmd6NWl)si+b>8e9nu2A3P?+rbV_%Jbax3Xh=_CxNQty`NvG27lETs*Qqr+-ZvN-Y zyfbI!%=!4fA9i7OcAw{t>;BdCM5w9A;XI*uf`o*GqaZJ>0si(syfD$hd%0f4SMcYt ztGvDk5)y9r!wWf?1(y;Di55vgT0+Y=bARETYsS{wtz!;nd|J#^+8)JLX$@j8wL~k$ z8q0wi3&z;_IfeD+VwM@WF+8ZOVbnRPxNmmfb52D#%Z}TrcHg-YP>L+wJ(vb zFZP8@iq&jB#30uy>)1`}SWcpq zzAXMnyW+!hWXxY043FqApGb?NN(5tu(=y>B6QH8e(SGLrLlBg2iGPe5ya^Pm5?W9ok7gdhWS!E^!t>(7V}f2yu7?Wj(oIF*=uL9 zJNx@Fal`1_L`b3vW;|LJM6S2figm0B2;Xj34%mCxmh zHvPB4E`J$NcI60M2^!ocK)`$C$*JuWGxL6L=)KHG87%aWZBHSH0v$z+d7Z(|&Q4BE zO`<&H1MATG`ueb)>D;W&rJVzd7!wnc{wG(m!9jtwlj@VU3%xc!UZkblO@2YwWhAj{ zSX}?Wz}vm)axER5!jM-hM=M?OiPFx_>`*8)Iy%~{&OiY|czS+Lh>6O?$|{{=MeVo! z9EmWZJ9AN9q9WEpx2??3DmRFA5Mv=QvdoXiUj7Z&p;vT5yk+3jt6tLGeOq4U^lKF2 z_1*6*!z)=1c}6V+vX$zv&BvOiwyTm$0(bI>G$yW^@uhilZ`V8iGFiuT^$*mmClY@9 zpi%l2EbKDOfO48D2D6_kQ^4(mcBzgPYm{sr7^I2{ZiMtBuv<%qjACLzbI|Wv%wWG5 zk|K6@?I(A&g17q<=!u^`C5Y%A##~2DilS-}OLo@bFHCOz#q<=_J(E2~>)>*RI5_lEhX#S{jZM4})?iI$!WR zUbAM5z?aNUNCRDZp<@*I?~jk&SV^!3EEB7%t3BOp&6{Y4XM_)1rPS479~x4v1QBZv zJQVu1);JU~)^lEcy}ea>?oCHQciiX~ayuJ|7HkfIhxc#m1dA4Mi68x&Hgu_WUJw#R zoN7+m^LBN0+47{HdWEnKH7+=}pB8Ya8yU4O^ZO0m{!4X52$5mqV|H?nbuQCJ$8{Ab z9&P8j-ifSl6r@Z||4QRtc6~pFadRGQf=3gGX~N++hgx1q)Ak%_EtSdRudFyJKGs%I{ht z?bbM@SXhFd+xWO)C`A(rE-oDKdZ)b7(x{xA=Z<`o{^x&lii&L1XPzfQV84HJ-bA9H z#LJ5-JeH;_Hg%NOW>rF++EYecmoiQ{$HfH8q8K>Y`$wVW!Y1_#s_>22zwD87kttM&%~M*3#B482Uss)kIX(P+k4%Hc;%vix-VX6{qBO?sYC69^As- zf4?BIjG9r~+KNrr>-pj#RR)?J^8=P8dLFyPlT!tOFcy}T`KHNKF{)2qd&|31llNk0 z#F+xfd3nWWAwMT815|K5y(OX0-P-;!)ixE*FHcON&=LV1ofLzhv9DUy%KhV$lb^MR z1ZiqmYwf3)-@JKK^Ytb*=qfeZpv<_%+iks{;FkqEYXb7MQI|-2DS?GPy+gfdt}j(B z`nntqv|FN_#QasGFM;>p&Vysu+;2#58|15tpnIQ#mP1h`2BPb+cKjMvO(UbsV{}{^ z(cwG9jiB2qDgfj%!-iNjCTTf2xn`y!m@OGO`O5Ookj~S(XC8!cUBA^z%EZ!!(D*3H zT-3GyN=6y8%zFmSOi$}P3PzI6OZfRyLRMC`N{^MBBorM3gPelmjaUlgak);^g7cW( zA%Kmt%2LaP8`FY6`1vy!8#-ihC1e5Ds17u~j=gJ{ytFl}9*s?D_2RT`e?1Bc=J~_0 z6jO(Ke*gZR8~D<^nha0msPjVuX-Xj$DZ3?_rLQkpn@Jq&kY4%pX-)A|ef$$CU0u=~ zHKsPDJeZo6)@QF{=;hH{zOwSd<$f2ngtaYK77=5-#qTKzD2&Am*GB-G9K;zSrLwZJ zh>3~6P3&y%?-vvnTKC%5C7bWk$SW`r6G~*SPpFC+pT4dc9DL)x<<`dk+Y4{*W^A2%oG`>qvQGHi2BvMPgez;(->LbJ_Ydu(E{1uDhqKJ9E`)(95r zo$X~?H@Drz&VEcSt)t?lF`|xZ?d!X4hsw5I7sRxS+iLe?9ts>)F$9m5m6iU@?%`ok zUfu(Gn3~f3G{esx3wu-W%a&*L*cTH$r1f-M@x+g)0e-yJ7tv$BeRe%;-{ty+MYrNe zxZ^|^lB7Twfhv^c+*@-tTWdoOM!I*Vp`+8=4!zm*qH1btBDcv=Ol8l}DFwg&J6jvZ zZ8Q2C2KzahC478?*y;6GgpCE=op|1~J*JMsNE-M!>sZ*?%0Sc6KlQ+C=wO-JZ*o z0U-mkg%Cz?iiiw%b|QhT?*a>0u?1R_%unhtL8?%g{bg59yZzhi$IJQSO&SF62!bNSBZ zd!F4Zt!-szyDfP%Cy72!kau0{#TmBtXr^#3{&LxAXlN)Hcq?FfGdFWN>eC)Fu>(nv zH>=hQm!=ah+2sTTw7R(-wF5T;7tq>#d=MO zUif_RuxXDgAd9EDI|`!`@s0Ocf|8~Vh05khwibMrMw%sf zXozSUbxI5B>%FHrY9R_n&7O89b$Ta=8Wl(SAui@*W(%4XSF#w{r1n?B6X#%QDf>A3Z>HId!~1KZXZDOw(}J4)Nqr1?C|;06xvllaoU%pD-i=1i&|=_G=XZ2u zLvPO6cCDAPj{522=3z4}NgFp;0q2Pjx6^HyCrx^Bk0#i|U=$4BlM()Rx5s@iU%p&P zQWYKWWee*{IJ*Pep9p!&l{TK0*4x`#h)}n;vs=M3z5Erhxcba(`}cG2gLwrJ>aFXu zy$5(BH4RXA%h2Z-FKYQi;+(C=`bnp>=kS8V*1yhRWP6(_ezzjvc(td@3$Ve}Q5T+i z>D2nhMnMa|L!H6y?rx2NOV`M#5}^N;!~46#*&lX9Fx$_{8GKgd!XhHA-z++`txJ0R z9yWPzFYnv8_drBxD{y8Rnv%X89=JN$;*OL9f=!(Eec#$o>)KZW0^fb#3MB~5;$XHmc{n%4(5TTBnSX@-$p~yNfOHNId12hh9s=$$PfNl#uJQK)BPbaR-w&sSB zc{j&uXgXAT@6YvM&;)cwWFxrm+DWM4UrV4nROSO?UwgmAq@esRF=w?xc4OiNq zs<%?jfuafWM?m$d8yXJ5^5h=Y*3Q8}s&a-18~ti_EU*`>vVyc{LoJoC>O{;=w@T?=R!-#Y?9^ zX_HY<1SvEB>B9;q%FPT04G%PW7kUA-fG9)UWfJC95Xe|6&6)J*;fW8PN~1l zMpGGfe-M=1)J2&6be~gGC+6l#1SF$o9eWQSZtB{yppWwO;V=V=L$bHG2NOcc4!nK| z;DH_=^Y@=W;Y)`_ptvl#6nuPqWW@pYBtRl;vY{yeVAY^;rz%v`)G7_#$&iR=!rq*s zqAG@llzTIka*6rTyMC2388CO<6su2RVcg6_Po6yaUQ#mH90>N`916wx%0P)bf7|-Z zMtiP0u6Q7@zY8x8^%QI%%{+g53|;+*+Hl zRrjXLLEZLW#hOJ&z9QuOZ}+{0RYi`wf50Q(vr2HISqc#?5E!wO#+O7G4C6Fz*yrZt zj#yjR+A_T^ggbWg_P@5>T}A4Up;DBIXDIypJ{T-l~#xS{L+LPtk`ujOBQ2tD)gT{ALnwvfp>m_^)($l`vRG^%A9sK}1np^o*8rCSE) z2H{fuhZ#Lkz#8S!G7zzVD(}ur?~|S2_0?8GDdfUnY<}@_;4Di)vbAavX z>~7Qp>a0|51+{Vph~1)`oVO~*`i#2w2IV^Sj7QKZFF^5^I0qfIw~NHhsT zc(otLxR~)}a6cMfSQv>QVyuGiHyW`6jBP4w|K^jijpvRR4|!Z?@Y*R(5(r@_yw^PY z(j|&baw~0;nGy%c++HkBwzl$kEo&!Nn?GVW#Xt?kN5GzL*^4F(VNMXqlv#ls!yVA> z>ha}k?wWx%aqu$l@v&@4C@_N+AbF9`T2EG*GUL%;{AV5rX`Yac_ec3 z|0jUb^7_BSr=K;&n~23QDdNrD#$8->JO0&weZKj8*(YslpAF8woEFE*SgfF~!5|MQ zO{`*fA|dm)-?@Doaj;$7>Xx}kj?B(y;ct2EU+wVPYAsX8RhQ3ym}+zs<$Fsqw8`;I zS$i6rZsc-w7NkkyYQzQ-_wk%6*T_p{EsGih3%YS zEC=}DmI)ubV~)ulD-{0Dm8w(^!A=ePK)kV2O~RHDr~IX-rgSseO0C%W&c9Ti>-KMM z7zf{Q3+L^69T#?bph<-Xe)gG zl`Bt5n&GF2A(Ppk&3%B$CQUIqT_KSouNLEXRK6>H z-R7@AF0|t6yBPfLaO*xQ@iz8!P2Dtlo{9}2^_+?i<)<1|h=k%-nJ^!o$i+KKk?U@n z;XU4uN_4bQ@fKWa*03?V1#yuu0Igg?LXk6j1t7%%0%m0I?C+J}=ch{nukU@o*c$y3 zCRxqd_a5bsaV;3>Lu5Sr*rooLp{wUHr;x2-dz z6Duev`0<1K zC{!f+_0s# z8SF=1Mh@F5wB9((R1n1Vk=EfUByy5rm+99sti@fQ!(E7?diux47>S>#>*@j%kD*eO z1cRvq&PDoOS_;HSk&T7Dv-4)3*xf6gQeF%1!oos^!~uwfg+F;^tulJn-`aH~6l2-uAe zKWV*NvSMR#AM&R>f*9E@5Cj7$JN!o#Lbx(l=Kvvm3>fvNSv;@9bUtGU;2YGCpQrNM z0EJtRdnrFBC#&n|$bvwrS}z(1$5$dEnbc%{lK%ewe(>zub;iF7+R9TQ_?Qf2XFZso zR=dp=cs})iiivcU z1{I7<{wP==;-eBzx^#*QdiUO$dF?FOec2V1E}_%8VeR6ER2%27dssD`iv{}$mSf~0 z@^akWc3l6^kYct(`|SqD$!3NN`=vli#tVXYfB=hiGmGs|;gOM%KaTb9oE~U;^u8Gb zsZ=}6Ag|YQ`W1C}Qg&sYeI0qS(9>x>CCN8~nXmmx8sN&T52^{jc2-G*nvpO9STo<{ zV2na&IS5v{(jW<+w-0bMw4Fx{ipHL<29KO@{Mw(bWn2r}9J{|Adv~+nkYM$$_v(pm zA{a+YIXE<>5{sU-4Wkf>q;Oe6RCZW31($O}2mJma8vo{G~f|$OPMumvZ;y7=z0J znKz1wT3c5a2%Vk~JkiEwC@U$zHM2ou<(Z>V!E#EgV_yB5ir9*k44dZ2=E;sO?o+S9 zfzmH`5&BA?se`Ql87Ib{oT{wg`}c5wEK7%Sc`%>_s`Xf-L7|zMR6s(%%Fvv74pebiSMZ26$Yk?o_JHZ#nJpyAZEjB2EK*^!g>T5BS_c20 zSQc!%r>AF?-^=jT;Tr>eDO2*W5>Bm?lWEHyxlW0VXq-E5I9Hh=2mmc~yd<6vsK#hWN zp?3{B6R`RbKhXz~&&I}vQAZ%cnP$+Kag=sQoEHCEM~9e0Q`d^#5xL{4iM+A#f;ryd zSB6J5*gxv(3Mgq+rpL!?mfwe$ED{sMTZxzJs2V=5`m(u8NBeS>Li&r2mlyBC!h+8Y z=YfzLdXuuKU=ZO5Tc%B)IooEI&zOd$rW7X`gd%3uyTt__|BYydmL&_b--%1~^7U@1 zg?NdSc7^^BpbXfz=Lt#+e*dDStF|bsHh03MlP*!*EXj2QYoip6+gf~g3hoo?Zh0P1 z!uS}S=sT~P@!ORoMH9&ti0N#Q$NE(Q!Tpbsm5!T*!-v2Mda=;(-2yvQlH4L-V{0o9 zW;;G&sl!YV56@q+Kvgbr@r~_y!$d5lBjKf7GGjVIWv^<;xbTT{U1>@92)=Z8?nG(i zw<=`$;zHT9>F}1%|Dflv=sw6juO~Az^K?60lak^(K-5xS<-)%M-ra^z5HGw6>cqCr z0MG=;B_K%yc9aw)Q})2V3HTgP<*0>kef2*`c_zh5B2}3Ur}ZIXsE}fKw0h=O4c~u= zp}fYVv#`iQkIi)4!z@BQX1)9d)AMEnnOuSf$+@cHGyu#e%*Q zVFdn@&~cPWP?OjpKjQ-tAX@f5Tzp-$7&A3B6#&fj4g!n`q99p1WnQiKUdu(Ua%Kn& z6f`RGDk@@uq)5!j7y^wVn0;NO6i1d=(AQMcK=L{RWe^dIX5-cQx%tolUSwipGoBP> z2!B8S{0)5ykMZTx#C#*7WEYON$}#`cM2b|h%zb^oBqkF6^%iz+$N>Mm_Z0gav3W>D zdb@Nz-QWwtnee_f+rmjjU0vN1)%#P`fIY*dRlNHnJnpZ;@BTr64=&2j|2RKyv>0>` z1*>>-zTdUt3OGg__zJ)ziE%S=oAm9QA-fM^lqNs-@sD9wPkuAMA8Zo+knpe`U45yTI!p z{uKmZ(S4;l<>_Zi$CH|>>L9k2kwK&6cOLdVsP3Z%_TKgG_Nokljg4JpGxpW9uN*{# zKg~LKJVCX|0t*PjH!w7@(vA++p)X1d01$Tm{)MC|;e42Z!-qOM#dWY&LFe;+JS|xujd0k69fe5=Z;90r)>HifzVzLpl2N-!)j`3%Ag?s8@>EmD7+X-h}<+H zD<=mO!A_JONMzyrg=J-qbJcDw{wR$i1g(oq$=NZ9whg-y{wI?D&q?QfBtiSNr>7_C z`h$HPJ(IB>5)vBv!?OT$FSN^BJ!99|!OWE6+%Y-%_)>TorloZa@?hb!j-v*0DI2HH zYyb}`D}(Oer<4>DcGLFgt`)FK<6sf$o!|mNcOo;DrZ!*-jD^El)G-QWr2`gbOv9h* zrceJ>y!Bm+;jc+ge~5KTrv^35cqm+UDlasuR#6CX!?;zhK%M;pL9D6iSQu!Zf8DkQ zDigpjkgwm%%d_gSN?3<}{P=McLUW6xkodi_a?JLViMDo6f4_Y5wj1Kw3ztfuGw9~E zoZp|X;!MFW@fpe9Y&#x=Sc5AP^2FV8#jZ zN?Qj9dZ5kZ+%t`$HjaHc)0Do9SkJ-X#T6AQ_hy1wDj+*Q_7%x%WKr3YiMan ztE;PDD|UF;oC{bc$V2FfK^IY?k2mWnO?-j*e)`x!Qd!+9UN`qBwa>4H4#d9jxq;?k zgVGOLy+}~!?=2mg{Kk#G=5YW+R)DYpvY}(NT?UAPwi@Wuf$4EV+^&cFK6bqY>0IN{ zu}t6ze-O6=4KVLbSaR)L55EJr*k8k1C}Nl^Eq+kbqtwDMA84*c^#6Nkgw-PvvT||- z%nZ0660ki;T(TO(g^bR`>_i~``6!uFw(*}l`lCrDP$*RnGwh<5%P9XP_Q&+@K~Esy z6ejm~spDSd*>xfyW+mVa`CJwsdJI6Rg9j==uAVl9Ru3BeK&2xWe~mD`zn*#bx4Lh9 ztmAynf$Fv2=ZPX!Onf3t zj{9f;_kmi;@Pa3cgX{*#-@JkXG;m0HD1fd&OB(n*C1_Uy66yp1IH#OKL~X|m+1ff> zKq2I|wg#xfRWl_jjGE{eM$;^uoHBmoid$P|)-jEZ!Hq}hl61!Vk&6951J diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8743_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8743_d.svg index 6676828..1ebd177 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8743_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8743_d.svg @@ -145,449 +145,363 @@ - - - + + + - - + + - + - - 1 - - - - - - - - - - - - - - + + - + - - r_sin + + - - - - - - - - - - - - - - - - - - - - + + - - -1 - - - - - - - + + - - - - - - + + + + + + + - + - - sfix16_En4 + + - - - - - - - - - - - - - - - - - - - - + + - - 2 - - - - - - - + + - - - - - - + + + + + + + - + - - r_cos + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - r_fieldWeak_XA - - - - - - - + + - - + + - - uint8 + + - - - - - - + + + + + + + 1-D T(k,f) - - + + - - ufix8_En6 + + k1 - - - - - - - - - - - - - - - - - - - - + + - - b_fieldWeakEna + + f1 - - + + - - + + - - + + - - b_fieldWeakEna + + r_sin_M1 - - + + - - + + - - boolean + + sfix16_En14 @@ -598,284 +512,242 @@ - - - + + + - - + + - + - - + + - - 0 - - - - - - - - - - - - - - + + - - + + - - sfix16_En4 + + - - - - - - - - - - - - - - - - - - - - + + - - 3 - - - - - - - - - - - - - - + + - - + + - - id_Tgt + + - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - T + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - F + + r_fieldWeak_XA - - - + + + + + + + + + + + uint8 - - + + - - + + - - sfix16_En4 + + ufix8_En6 @@ -886,62 +758,107 @@ - - - + + + - - + + - + - - + + - - [id_TgtAbs] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + - - - - - - - - - + + - - + + + + + + - + + + + - - + + - - [n_motAbs] + + n_fieldWeakAuth - - - + + + + + + + + + + + boolean @@ -952,363 +869,179 @@ - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - + - + - + - - - - - - - - - - - - - - - - - + 1-D T(k,f) - + - + k1 - + - + f1 - + - - + + - - + + - - r_cos_M1 + + id_fieldWeak_M1 - - + + - - + + - - sfix16_En14 + + sfix16_En4 @@ -1319,171 +1052,106 @@ - - - + + + - - + + - - + + - - [r_cos] + + b_fieldWeakEna - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - + + - - + + b_fieldWeakEna - - - - - - - + + + + + + - - + + - - + + boolean - - + + + + + + + + + - - - + + - - - + + + + + + + + 0 - - - - - - - - - - - a_elecAngle_XA + + + - + - - + + - + uint8 @@ -1495,363 +1163,416 @@ - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + 0 - - - - - - - + + + + + + - - - - - - - + + + + + + - - + + - - + + sfix16_En4 + + + + + + + + + + + + + + + + + + - - + + - - + + [n_motAbs] - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + T - - + + - - + + F - - - - - - - + + + + + + + + + + + + + - - + + - - + + sfix16_En4 + + + + + + + + + + + + + + + + + + - - + + - - 1-D T(k,f) + + [r_cos] + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - k1 + + [r_sin] + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - f1 + + [id_Tgt] - - + + - - - - + + + + + + + + + + + + + + + - - + + - - r_sin_M1 + + [r_inpTgt] + + + + + + + - - + + - - + + - - sfix16_En14 + + sfix16_En4 @@ -1862,107 +1583,77 @@ - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + [r_inpTgt] - + + + + - - + + + + + + + + + - - - - - - + + - - - - + - - + + - - n_commDeacv + + [n_motAbs] + + + + + + + - - + + - - + + - - boolean + + sfix16_En4 @@ -1973,44 +1664,44 @@ - - + + - + - + - - [r_inpTgtSca] + + [a_elecAngle] - + - - + + - - + + - - sfix16_En4 + + ufix16_En6 @@ -2021,44 +1712,44 @@ - - - + + + - - + + - - + + - - 0 + + 2 - - + + - - - + + + - - + + - - uint8 + + r_cos @@ -2069,43 +1760,75 @@ - - - + + + - - + + - + - - + + - - [id_TgtAbs] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - - + + - + sfix16_En4 @@ -2117,44 +1840,44 @@ - - + + - + - + - - [r_sin] + + [id_TgtAbs] - + - - + + - - + + - - sfix16_En14 + + sfix16_En4 @@ -2165,28 +1888,28 @@ - - + + - + - + - - [id_Tgt] + + [id_TgtAbs] - + @@ -2198,43 +1921,43 @@ - - + + - + - + - - [n_motAbs] + + [id_Tgt] - + - + - - + + - + sfix16_En4 @@ -2246,77 +1969,44 @@ - - - - - - - - - - - - - - - - [r_inpTgtSca] - - - - - - - - - - - - - - - - - - - + + - + - + - - [id_Tgt] + + [r_sin] - + - - + + - - + + - - sfix16_En4 + + sfix16_En14 @@ -2327,179 +2017,363 @@ - - + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + 1-D T(k,f) - + - + k1 - + - + f1 - + - - + + - - + + - - id_fieldWeak_M1 + + r_cos_M1 - - + + - - + + - - sfix16_En4 + + sfix16_En14 @@ -2510,76 +2384,107 @@ - - - + + + - - + + - + - - + + - - + + 3 - - - - - - - + + + + + + + + + + + + + - - + + - - + + n_motAbs + + + + + + + - - + + - - + + sfix16_En4 - - + + + + + + + + + + + + + + + + + + + 3 + - - + + - - - + + + - - + + - - sfix16_En4 + + id_Tgt @@ -2590,59 +2495,44 @@ - - + + - + - + - - 3 + + 1 - + - - - - - - - - - - n_motAbs - - - - - - - + + - - + + - - sfix16_En4 + + r_sin @@ -2653,29 +2543,44 @@ - - - + + + - - + + - - + + - - [a_elecAngle] + + -1 - - + + + + + + + + + + + + + + + + + sfix16_En4 @@ -2686,59 +2591,44 @@ - - - + + + - - + + - - + + - - 1 + + [r_cos] - - - - - - - - - - - - - - - - - a_elecAngle + + - - + + - - + + - - ufix16_En6 + + sfix16_En14 @@ -2759,11 +2649,11 @@ - + - + 2 @@ -2778,15 +2668,15 @@ - + - - + + - - r_inpTgtSca + + r_inpTgt @@ -2796,11 +2686,11 @@ - + - + sfix16_En4 @@ -2812,44 +2702,139 @@ - - - + + + - - + + - + - - + + - - [r_cos] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + a_elecAngle_XA - - + + - - + + - - sfix16_En14 + + uint8 @@ -2860,29 +2845,59 @@ - - - + + + - - + + - - + + - - [r_sin] + + 1 - - + + + + + + + + + + + + + + + + + a_elecAngle + + + + + + + + + + + + + + + ufix16_En6 @@ -2893,44 +2908,29 @@ - - - + + + - - + + - - + + - + [a_elecAngle] - - - - - - - - - - - - - - - - - ufix16_En6 + + @@ -2973,32 +2973,32 @@ + + + + + + + + + + + - + - + boolean - - - - - - - - - - - @@ -3401,5 +3401,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8866_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8866_d.json index 3ee2377..4134c78 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8866_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8866_d.json @@ -472,25 +472,53 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8878", - "className":"Simulink.Mux", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8880", + "className":"Simulink.Sum", "icon":"WebViewIcon3", - "name":"Mux4", - "label":"Mux4", + "name":"Sum6", + "label":"Sum6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8866", "inspector":{ "params":[ + "IconShape", "Inputs", - "DisplayOption" + "InputSameDT", + "AccumDataTypeStr", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "RndMeth", + "SaturateOnIntegerOverflow", + "CollapseDim", + "CollapseMode", + "SampleTime" ], "values":[ - "3", - "bar" + "rectangular", + "-+", + "off", + "Inherit: Inherit via internal rule", + "[]", + "[]", + "Inherit: Same as first input", + "off", + "Simplest", + "on", + "1", + "All dimensions", + "-1" ], "tabs":[ - "Parameter Attributes" + "Main", + "Signal Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 2, + 10 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -498,52 +526,30 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Mux", + "blocktype":"Sum", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8877", - "className":"Simulink.MinMax", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8878", + "className":"Simulink.Mux", "icon":"WebViewIcon3", - "name":"MinMax2", - "label":"MinMax2", + "name":"Mux4", + "label":"Mux4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8866", "inspector":{ "params":[ - "OutDataTypeStr", - "Function", - "InputSameDT", "Inputs", - "LockScale", - "OutMax", - "OutMin", - "RndMeth", - "SampleTime", - "SaturateOnIntegerOverflow", - "ZeroCross" + "DisplayOption" ], "values":[ - "Inherit: Inherit via internal rule", - "max", - "on", - "1", - "off", - "[]", - "[]", - "Floor", - "-1", - "off", - "on" + "3", + "bar" ], "tabs":[ - "Signal Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 1 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -551,51 +557,57 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"MinMax", + "blocktype":"Mux", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8876", - "className":"Simulink.MinMax", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8879", + "className":"Simulink.Sum", "icon":"WebViewIcon3", - "name":"MinMax1", - "label":"MinMax1", + "name":"Sum2", + "label":"Sum2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8866", "inspector":{ "params":[ - "OutDataTypeStr", - "Function", - "InputSameDT", + "IconShape", "Inputs", - "LockScale", - "OutMax", + "InputSameDT", + "AccumDataTypeStr", "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", "RndMeth", - "SampleTime", "SaturateOnIntegerOverflow", - "ZeroCross" + "CollapseDim", + "CollapseMode", + "SampleTime" ], "values":[ - "Inherit: Inherit via internal rule", - "min", - "on", - "1", + "rectangular", + "--", "off", + "Inherit: Inherit via internal rule", "[]", "[]", - "Floor", - "-1", + "Inherit: Same as first input", "off", - "on" + "Simplest", + "on", + "1", + "All dimensions", + "-1" ], "tabs":[ + "Main", "Signal Attributes", "-Other" ], "tabs_idx":[ 0, - 1 + 2, + 10 ] }, "viewer":{ @@ -604,16 +616,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"MinMax", + "blocktype":"Sum", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8873", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8875", "className":"Simulink.Gain", "icon":"WebViewIcon3", - "name":"Gain2", - "label":"Gain2", + "name":"Gain4", + "label":"Gain4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8866", "inspector":{ "params":[ @@ -631,11 +643,11 @@ "SampleTime" ], "values":[ - "0.5", + "2/sqrt(3)", "Element-wise(K.*u)", "[]", "[]", - "Inherit: Same as input", + "fixdt(1,16,0)", "off", "Floor", "off", @@ -668,52 +680,52 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8879", - "className":"Simulink.Sum", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8874", + "className":"Simulink.Gain", "icon":"WebViewIcon3", - "name":"Sum2", - "label":"Sum2", + "name":"Gain3", + "label":"Gain3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8866", "inspector":{ "params":[ - "IconShape", - "Inputs", - "InputSameDT", - "AccumDataTypeStr", + "Gain", + "Multiplication", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", "RndMeth", "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", + "ParamMin", + "ParamMax", + "ParamDataTypeStr", "SampleTime" ], "values":[ - "rectangular", - "--", - "off", - "Inherit: Inherit via internal rule", + "1/2", + "Element-wise(K.*u)", "[]", "[]", - "Inherit: Same as first input", + "Inherit: Same as input", "off", - "Simplest", - "on", - "1", - "All dimensions", + "Zero", + "off", + "[]", + "[]", + "Inherit: Inherit via internal rule", "-1" ], "tabs":[ "Main", "Signal Attributes", + "Parameter Attributes", "-Other" ], "tabs_idx":[ 0, 2, - 10 + 8, + 11 ] }, "viewer":{ @@ -722,16 +734,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Sum", + "blocktype":"Gain", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8875", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8873", "className":"Simulink.Gain", "icon":"WebViewIcon3", - "name":"Gain4", - "label":"Gain4", + "name":"Gain2", + "label":"Gain2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8866", "inspector":{ "params":[ @@ -749,11 +761,11 @@ "SampleTime" ], "values":[ - "2/sqrt(3)", + "0.5", "Element-wise(K.*u)", "[]", "[]", - "fixdt(1,16,0)", + "Inherit: Same as input", "off", "Floor", "off", @@ -786,52 +798,52 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8870", - "className":"Simulink.Sum", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8872", + "className":"Simulink.Gain", "icon":"WebViewIcon3", - "name":"Add1", - "label":"Add1", + "name":"Gain1", + "label":"Gain1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8866", "inspector":{ "params":[ - "IconShape", - "Inputs", - "InputSameDT", - "AccumDataTypeStr", + "Gain", + "Multiplication", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", "RndMeth", "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", + "ParamMin", + "ParamMax", + "ParamDataTypeStr", "SampleTime" ], "values":[ - "rectangular", - "-+", - "off", - "Inherit: Inherit via internal rule", + "sqrt(3)/2", + "Element-wise(K.*u)", "[]", "[]", - "Inherit: Same as first input", + "Inherit: Same as input", "off", - "Floor", - "on", - "1", - "All dimensions", + "Zero", + "off", + "[]", + "[]", + "Inherit: Inherit via internal rule", "-1" ], "tabs":[ "Main", "Signal Attributes", + "Parameter Attributes", "-Other" ], "tabs_idx":[ 0, 2, - 10 + 8, + 11 ] }, "viewer":{ @@ -840,7 +852,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Sum", + "blocktype":"Gain", "masktype":"" } }, @@ -878,52 +890,52 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8874", - "className":"Simulink.Gain", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8869", + "className":"Simulink.Sum", "icon":"WebViewIcon3", - "name":"Gain3", - "label":"Gain3", + "name":"Add", + "label":"Add", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8866", "inspector":{ "params":[ - "Gain", - "Multiplication", + "IconShape", + "Inputs", + "InputSameDT", + "AccumDataTypeStr", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", "RndMeth", "SaturateOnIntegerOverflow", - "ParamMin", - "ParamMax", - "ParamDataTypeStr", + "CollapseDim", + "CollapseMode", "SampleTime" ], "values":[ - "1/2", - "Element-wise(K.*u)", - "[]", - "[]", - "Inherit: Same as input", - "off", - "Zero", + "rectangular", + "++", "off", + "Inherit: Inherit via internal rule", "[]", "[]", "Inherit: Inherit via internal rule", + "off", + "Floor", + "on", + "1", + "All dimensions", "-1" ], "tabs":[ "Main", "Signal Attributes", - "Parameter Attributes", "-Other" ], "tabs_idx":[ 0, 2, - 8, - 11 + 10 ] }, "viewer":{ @@ -932,57 +944,57 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Gain", + "blocktype":"Sum", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8872", - "className":"Simulink.Gain", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8870", + "className":"Simulink.Sum", "icon":"WebViewIcon3", - "name":"Gain1", - "label":"Gain1", + "name":"Add1", + "label":"Add1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8866", "inspector":{ "params":[ - "Gain", - "Multiplication", + "IconShape", + "Inputs", + "InputSameDT", + "AccumDataTypeStr", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", "RndMeth", "SaturateOnIntegerOverflow", - "ParamMin", - "ParamMax", - "ParamDataTypeStr", + "CollapseDim", + "CollapseMode", "SampleTime" ], "values":[ - "sqrt(3)/2", - "Element-wise(K.*u)", - "[]", - "[]", - "Inherit: Same as input", - "off", - "Zero", + "rectangular", + "-+", "off", + "Inherit: Inherit via internal rule", "[]", "[]", - "Inherit: Inherit via internal rule", + "Inherit: Same as first input", + "off", + "Floor", + "on", + "1", + "All dimensions", "-1" ], "tabs":[ "Main", "Signal Attributes", - "Parameter Attributes", "-Other" ], "tabs_idx":[ 0, 2, - 8, - 11 + 10 ] }, "viewer":{ @@ -991,57 +1003,51 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Gain", + "blocktype":"Sum", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8880", - "className":"Simulink.Sum", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8876", + "className":"Simulink.MinMax", "icon":"WebViewIcon3", - "name":"Sum6", - "label":"Sum6", + "name":"MinMax1", + "label":"MinMax1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8866", "inspector":{ "params":[ - "IconShape", - "Inputs", - "InputSameDT", - "AccumDataTypeStr", - "OutMin", - "OutMax", "OutDataTypeStr", + "Function", + "InputSameDT", + "Inputs", "LockScale", + "OutMax", + "OutMin", "RndMeth", + "SampleTime", "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", - "SampleTime" + "ZeroCross" ], "values":[ - "rectangular", - "-+", - "off", "Inherit: Inherit via internal rule", + "min", + "on", + "1", + "off", "[]", "[]", - "Inherit: Same as first input", + "Floor", + "-1", "off", - "Simplest", - "on", - "1", - "All dimensions", - "-1" + "on" ], "tabs":[ - "Main", "Signal Attributes", "-Other" ], "tabs_idx":[ 0, - 2, - 10 + 1 ] }, "viewer":{ @@ -1050,57 +1056,51 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Sum", + "blocktype":"MinMax", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8869", - "className":"Simulink.Sum", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8877", + "className":"Simulink.MinMax", "icon":"WebViewIcon3", - "name":"Add", - "label":"Add", + "name":"MinMax2", + "label":"MinMax2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8866", "inspector":{ "params":[ - "IconShape", - "Inputs", - "InputSameDT", - "AccumDataTypeStr", - "OutMin", - "OutMax", "OutDataTypeStr", + "Function", + "InputSameDT", + "Inputs", "LockScale", + "OutMax", + "OutMin", "RndMeth", + "SampleTime", "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", - "SampleTime" + "ZeroCross" ], "values":[ - "rectangular", - "++", - "off", "Inherit: Inherit via internal rule", + "max", + "on", + "1", + "off", "[]", "[]", - "Inherit: Inherit via internal rule", - "off", "Floor", - "on", - "1", - "All dimensions", - "-1" + "-1", + "off", + "on" ], "tabs":[ - "Main", "Signal Attributes", "-Other" ], "tabs_idx":[ 0, - 2, - 10 + 1 ] }, "viewer":{ @@ -1109,7 +1109,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Sum", + "blocktype":"MinMax", "masktype":"" } }, diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8866_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8866_d.svg index af0bb77..d40e844 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8866_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8866_d.svg @@ -361,43 +361,59 @@ - - - + + + - - + + - + - - + + + + + + + + + + + + + + + + + + - - + + - + - - + + - + sfix16_En4 @@ -409,59 +425,43 @@ - - - + + + - - + + - - - - - - - - - + - - + + - - + + - - - - - - - - - - + + - + - - + + - + sfix16_En4 @@ -473,59 +473,51 @@ - - - + + + - - + + - + - - + + - - + + - - + + - - + + - - - - - - - - - - + + - + - - + + - + sfix16_En4 @@ -537,44 +529,44 @@ - - - + + + - - + + - - + + - - 0.5 + + 2/sqrt(3) - - + + - - + + - - + + - - sfix16_En4 + + int16 @@ -585,51 +577,43 @@ - - - + + + - - + + - - - - - - - - - - + + - - + + 1/2 - - + + - + - - + + - + sfix16_En4 @@ -641,44 +625,44 @@ - - - + + + - - + + - - + + - - 2/sqrt(3) + + 0.5 - - + + - - + + - - + + - - int16 + + sfix16_En4 @@ -689,59 +673,43 @@ - - - + + + - - + + - - - - - - - - - - - - - - - - - - + + - - + + sqrt(3)/2 - - + + - + - - + + - + sfix16_En4 @@ -763,11 +731,11 @@ - + - + @@ -781,15 +749,15 @@ - + - - + + - + int16 @@ -800,26 +768,26 @@ - + - + int16 - + - - + + - + int16 @@ -831,43 +799,67 @@ - - - + + + - - + + - - + + - - 1/2 + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - - + + - + sfix16_En4 @@ -879,43 +871,59 @@ - - - + + + - - + + - - + + - - sqrt(3)/2 + + + + + + + + + + + + + + + + + + - - + + - + - - + + - + sfix16_En4 @@ -927,59 +935,59 @@ - - - + + + - - + + - - - - - - - - - + - - + + - - + + - - + + - - + + + + + + + + + + - - + + - + - - + + - + sfix16_En4 @@ -991,67 +999,59 @@ - - - + + + - - + + - - - - - - - - - - - - - - - - - + - - + + - - + + - - + + - - + + + + + + + + + + - - + + - + - + - + sfix16_En4 @@ -1409,5 +1409,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8886_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8886_d.json index 57e8d59..db5f391 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8886_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8886_d.json @@ -477,53 +477,27 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8908", - "className":"Simulink.Sum", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8906", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Sum6", - "label":"Sum6", + "name":"Goto3", + "label":"Goto3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8886", "inspector":{ "params":[ - "IconShape", - "Inputs", - "InputSameDT", - "AccumDataTypeStr", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", - "SampleTime" + "GotoTag", + "TagVisibility", + "IconDisplay" ], "values":[ - "rectangular", - "+-", - "off", - "Inherit: Inherit via internal rule", - "[]", - "[]", - "Inherit: Same as first input", - "off", - "Simplest", - "on", - "1", - "All dimensions", - "-1" + "r_cos", + "local", + "Tag" ], "tabs":[ - "Main", - "Signal Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 2, - 10 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -531,7 +505,40 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Sum", + "blocktype":"Goto", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8903", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto", + "label":"Goto", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8886", + "inspector":{ + "params":[ + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "Vq", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", "masktype":"" } }, @@ -595,21 +602,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8904", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8899", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto1", - "label":"Goto1", + "name":"From5", + "label":"From5", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8886", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "Vd", - "local", + "r_cos", "Tag" ], "tabs":[ @@ -623,26 +628,24 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8903", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8898", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto", - "label":"Goto", + "name":"From4", + "label":"From4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8886", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "Vq", - "local", + "Vd", "Tag" ], "tabs":[ @@ -656,16 +659,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8900", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8901", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From6", - "label":"From6", + "name":"From7", + "label":"From7", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8886", "inspector":{ "params":[ @@ -673,7 +676,7 @@ "IconDisplay" ], "values":[ - "Vq", + "r_sin", "Tag" ], "tabs":[ @@ -692,19 +695,21 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8896", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8905", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From1", - "label":"From1", + "name":"Goto2", + "label":"Goto2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8886", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "r_cos", + "r_sin", + "local", "Tag" ], "tabs":[ @@ -718,16 +723,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8902", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8895", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From8", - "label":"From8", + "name":"From", + "label":"From", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8886", "inspector":{ "params":[ @@ -735,7 +740,7 @@ "IconDisplay" ], "values":[ - "Vd", + "r_sin", "Tag" ], "tabs":[ @@ -754,11 +759,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8895", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8896", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From", - "label":"From", + "name":"From1", + "label":"From1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8886", "inspector":{ "params":[ @@ -766,7 +771,7 @@ "IconDisplay" ], "values":[ - "r_sin", + "r_cos", "Tag" ], "tabs":[ @@ -785,27 +790,51 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8905", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8894", + "className":"Simulink.Product", "icon":"WebViewIcon3", - "name":"Goto2", - "label":"Goto2", + "name":"Divide4", + "label":"Divide4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8886", "inspector":{ "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" + "Inputs", + "Multiplication", + "InputSameDT", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "RndMeth", + "SaturateOnIntegerOverflow", + "CollapseDim", + "CollapseMode", + "SampleTime" ], "values":[ - "r_sin", - "local", - "Tag" + "**", + "Element-wise(.*)", + "off", + "[]", + "[]", + "Inherit: Same as first input", + "off", + "Simplest", + "off", + "1", + "All dimensions", + "-1" ], "tabs":[ - "Parameter Attributes" + "Main", + "Signal Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 2, + 9 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -813,16 +842,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"Product", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8893", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8891", "className":"Simulink.Product", "icon":"WebViewIcon3", - "name":"Divide3", - "label":"Divide3", + "name":"Divide1", + "label":"Divide1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8886", "inspector":{ "params":[ @@ -932,19 +961,52 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8898", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8904", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From4", - "label":"From4", + "name":"Goto1", + "label":"Goto1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8886", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ "Vd", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8897", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From3", + "label":"From3", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8886", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "Vq", "Tag" ], "tabs":[ @@ -963,21 +1025,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8906", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8902", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto3", - "label":"Goto3", + "name":"From8", + "label":"From8", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8886", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "r_cos", - "local", + "Vd", "Tag" ], "tabs":[ @@ -991,16 +1051,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8897", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8900", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From3", - "label":"From3", + "name":"From6", + "label":"From6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8886", "inspector":{ "params":[ @@ -1027,17 +1087,18 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8891", - "className":"Simulink.Product", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8908", + "className":"Simulink.Sum", "icon":"WebViewIcon3", - "name":"Divide1", - "label":"Divide1", + "name":"Sum6", + "label":"Sum6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8886", "inspector":{ "params":[ + "IconShape", "Inputs", - "Multiplication", "InputSameDT", + "AccumDataTypeStr", "OutMin", "OutMax", "OutDataTypeStr", @@ -1049,15 +1110,16 @@ "SampleTime" ], "values":[ - "**", - "Element-wise(.*)", + "rectangular", + "+-", "off", + "Inherit: Inherit via internal rule", "[]", "[]", "Inherit: Same as first input", "off", "Simplest", - "off", + "on", "1", "All dimensions", "-1" @@ -1070,7 +1132,7 @@ "tabs_idx":[ 0, 2, - 9 + 10 ] }, "viewer":{ @@ -1079,16 +1141,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Product", + "blocktype":"Sum", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8894", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8893", "className":"Simulink.Product", "icon":"WebViewIcon3", - "name":"Divide4", - "label":"Divide4", + "name":"Divide3", + "label":"Divide3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8886", "inspector":{ "params":[ @@ -1140,68 +1202,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8901", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From7", - "label":"From7", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8886", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "r_sin", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8899", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From5", - "label":"From5", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8886", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "r_cos", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8889#out:1", "className":"Simulink.Line", diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8886_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8886_d.svg index 6c90fc5..eee9935 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8886_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8886_d.svg @@ -412,60 +412,62 @@ - - - + + + - - + + - - - - - - - - - - - - - - - - - + - - + + [r_cos] - - + + - - - - + + + + + + + + + + + + + + + - - + + - - sfix16_En4 + + [Vq] + + + + + + + @@ -486,35 +488,35 @@ - + - + - + - + - + - + - + - + @@ -532,11 +534,11 @@ - + - + sfix16_En4 @@ -548,62 +550,44 @@ - - - + + + - - + + - - + + - - [Vd] + + [r_cos] - - + + - - - - - - - - - - - - - - - + + + + - - + + - - [Vq] - - - - - - - + + sfix16_En14 @@ -614,43 +598,43 @@ - - + + - + - + - - [Vq] + + [Vd] - + - + - - + + - + sfix16_En4 @@ -662,43 +646,43 @@ - - + + - + - + - - [r_cos] + + [r_sin] - + - + - - + + - + sfix16_En14 @@ -710,44 +694,29 @@ - - - + + + - - + + - - + + - - [Vd] + + [r_sin] - - - - - - - - - - - - - - - - - sfix16_En4 + + @@ -768,11 +737,11 @@ - + - + [r_sin] @@ -790,11 +759,11 @@ - + - + sfix16_En14 @@ -806,29 +775,44 @@ - - - + + + - - + + - - + + - - [r_sin] + + [r_cos] - - + + + + + + + + + + + + + + + + + sfix16_En14 @@ -839,51 +823,51 @@ - - + + - + - - + + - - + + - - + + - - + + - + - + - - + + - + sfix16_En4 @@ -895,51 +879,51 @@ - - + + - + - - + + - - + + - - + + - - + + - + - + - - + + - + sfix16_En4 @@ -951,43 +935,51 @@ - - - + + + - - + + - - + + - - [Vd] + + + + + + + + + + - - + + - + - - + + - + sfix16_En4 @@ -999,28 +991,28 @@ - - + + - + - + - - [r_cos] + + [Vd] - + @@ -1042,11 +1034,11 @@ - + - + [Vq] @@ -1064,11 +1056,11 @@ - + - + sfix16_En4 @@ -1080,51 +1072,43 @@ - - - + + + - - + + - - - - - - - - - - + + - - + + [Vd] - - + + - + - - + + - + sfix16_En4 @@ -1136,51 +1120,43 @@ - - - + + + - - + + - - - - - - - - - - + + - - + + [Vq] - - + + - + - - + + - + sfix16_En4 @@ -1192,44 +1168,60 @@ - - - + + + - - + + - - + + - - [r_sin] + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - sfix16_En14 + + sfix16_En4 @@ -1240,44 +1232,52 @@ - - - + + + - - + + + + + + + + + + - + - - [r_cos] + + - - + + - - + + - + - - sfix16_En14 + + sfix16_En4 @@ -1540,5 +1540,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8913_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8913_d.json index fe6a0bb..d1b5d57 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8913_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8913_d.json @@ -245,11 +245,11 @@ ] }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9017", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9016", "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"n_limProt", - "label":"n_limProt", + "name":"n_min", + "label":"n_min", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -278,7 +278,7 @@ "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "12", + "11", "Port number", "[]", "[]", @@ -565,11 +565,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9007", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9009", "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"Vd_min", - "label":"Vd_min", + "name":"Vq_min", + "label":"Vq_min", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -598,7 +598,7 @@ "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "2", + "4", "Port number", "[]", "[]", @@ -645,11 +645,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9006", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9007", "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"Vd_max", - "label":"Vd_max", + "name":"Vd_min", + "label":"Vd_min", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -678,7 +678,7 @@ "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "1", + "2", "Port number", "[]", "[]", @@ -691,7 +691,7 @@ "auto", "off", "off", - "V_max", + "V_min", "off", "reset", "off", @@ -725,139 +725,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9005", - "className":"Simulink.Constant", - "icon":"WebViewIcon3", - "name":"n_max1", - "label":"n_max1", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", - "inspector":{ - "params":[ - "Value", - "VectorParams1D", - "SampleTime", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "FramePeriod" - ], - "values":[ - "n_max", - "on", - "inf", - "[]", - "[]", - "fixdt(1,16,4)", - "off", - "inf" - ], - "tabs":[ - "Main", - "Signal Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 3, - 7 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Constant", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9004", - "className":"Simulink.PreLookup", - "icon":"WebViewIcon3", - "name":"iq_max_XA", - "label":"iq_max_XA", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", - "inspector":{ - "params":[ - "BreakpointsSpecification", - "BreakpointsDataSource", - "BreakpointsData", - "OutputSelection", - "IndexSearchMethod", - "ExtrapMethod", - "UseLastBreakpoint", - "DiagnosticForOutOfRangeInput", - "RemoveProtectionInput", - "BreakpointDataTypeStr", - "BreakpointMin", - "BreakpointMax", - "IndexDataTypeStr", - "FractionDataTypeStr", - "LockScale", - "RndMeth", - "BeginIndexSearchUsingPreviousIndexResult", - "BreakpointObject", - "BreakpointsFirstPoint", - "BreakpointsNumPoints", - "BreakpointsSpacing", - "OutputBusDataTypeStr", - "SampleTime" - ], - "values":[ - "Explicit values", - "Dialog", - "iq_max_XA", - "Index only", - "Evenly spaced points", - "Clip", - "off", - "Error", - "off", - "Inherit: Same as input", - "[]", - "[]", - "uint8", - "fixdt(0,8,6)", - "off", - "Simplest", - "on", - "", - "10", - "11", - "10", - "Inherit: auto", - "-1" - ], - "tabs":[ - "Main", - "Data Types", - "-Other" - ], - "tabs_idx":[ - 0, - 9, - 16 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"PreLookup", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9012", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9006", "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"iq_max", - "label":"iq_max", + "name":"Vd_max", + "label":"Vd_max", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -886,7 +758,7 @@ "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "7", + "1", "Port number", "[]", "[]", @@ -933,11 +805,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9002", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9005", "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"i_max", - "label":"i_max", + "name":"n_max1", + "label":"n_max1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -951,7 +823,7 @@ "FramePeriod" ], "values":[ - "i_max", + "n_max", "on", "inf", "[]", @@ -982,42 +854,74 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9000", - "className":"Simulink.Constant", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9003", + "className":"Simulink.Interpolation_nD", "icon":"WebViewIcon3", - "name":"a_elecPeriod1", - "label":"a_elecPeriod1", + "name":"iq_max_M1", + "label":"iq_max_M1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ - "Value", - "VectorParams1D", - "SampleTime", + "NumberOfTableDimensions", + "RequireIndexFractionAsBus", + "TableSpecification", + "TableSource", + "Table", + "InterpMethod", + "DiagnosticForOutOfRangeInput", + "ValidIndexMayReachLast", + "NumSelectionDims", + "RemoveProtectionIndex", + "TableDataTypeStr", + "TableMin", + "TableMax", + "OutDataTypeStr", "OutMin", "OutMax", - "OutDataTypeStr", + "InternalRulePriority", "LockScale", - "FramePeriod" + "RndMeth", + "SaturateOnIntegerOverflow", + "ExtrapMethod", + "IntermediateResultsDataTypeStr", + "LookupTableObject", + "SampleTime" ], "values":[ + "1", + "off", + "Explicit values", + "Dialog", + "iq_max_M1", + "Flat", + "Error", + "on", "0", "on", - "inf", + "Inherit: Same as output", "[]", "[]", - "uint8", + "fixdt(1,16,4)", + "[]", + "[]", + "Speed", "off", - "inf" + "Simplest", + "off", + "Clip", + "Inherit: Same as output", + "", + "-1" ], "tabs":[ "Main", - "Signal Attributes", + "Data Types", "-Other" ], "tabs_idx":[ 0, - 3, - 7 + 10, + 20 ] }, "viewer":{ @@ -1026,16 +930,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Constant", + "blocktype":"Interpolation_n-D", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8997", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9001", "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"Vd_max1", - "label":"Vd_max1", + "name":"a_elecPeriod2", + "label":"a_elecPeriod2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -1049,12 +953,12 @@ "FramePeriod" ], "values":[ - "Vd_max", + "0", "on", "inf", "[]", "[]", - "fixdt(1,16,4)", + "uint8", "off", "inf" ], @@ -1080,73 +984,121 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9014", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9000", + "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"iq_limProt", - "label":"iq_limProt", + "name":"a_elecPeriod1", + "label":"a_elecPeriod1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ - "Port", - "IconDisplay", - "OutMin", - "OutMax", + "Value", + "VectorParams1D", + "SampleTime", + "OutMin", + "OutMax", "OutDataTypeStr", "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" + "FramePeriod" ], "values":[ - "9", - "Port number", + "0", + "on", + "inf", "[]", "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", + "uint8", "off", + "inf" + ], + "tabs":[ + "Main", + "Signal Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 3, + 7 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Constant", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8999", + "className":"Simulink.PreLookup", + "icon":"WebViewIcon3", + "name":"Vq_max_XA", + "label":"Vq_max_XA", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", + "inspector":{ + "params":[ + "BreakpointsSpecification", + "BreakpointsDataSource", + "BreakpointsData", + "OutputSelection", + "IndexSearchMethod", + "ExtrapMethod", + "UseLastBreakpoint", + "DiagnosticForOutOfRangeInput", + "RemoveProtectionInput", + "BreakpointDataTypeStr", + "BreakpointMin", + "BreakpointMax", + "IndexDataTypeStr", + "FractionDataTypeStr", + "LockScale", + "RndMeth", + "BeginIndexSearchUsingPreviousIndexResult", + "BreakpointObject", + "BreakpointsFirstPoint", + "BreakpointsNumPoints", + "BreakpointsSpacing", + "OutputBusDataTypeStr", + "SampleTime" + ], + "values":[ + "Explicit values", + "Dialog", + "Vq_max_XA", + "Index only", + "Evenly spaced points", + "Clip", "off", - "V_min", + "Error", "off", - "reset", + "Inherit: Same as input", + "[]", + "[]", + "uint8", + "fixdt(0,8,6)", "off", - "0", + "Simplest", + "on", "", - [ - ], - "Dialog", - "Auto", - "off" + "10", + "11", + "10", + "Inherit: auto", + "-1" ], "tabs":[ "Main", - "Signal Attributes", + "Data Types", "-Other" ], "tabs_idx":[ 0, - 2, - 11 + 9, + 16 ] }, "viewer":{ @@ -1155,7 +1107,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", + "blocktype":"PreLookup", "masktype":"" } }, @@ -1302,56 +1254,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8983", - "className":"Simulink.RelationalOperator", - "icon":"WebViewIcon3", - "name":"Relational Operator1", - "label":"Relational Operator1", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", - "inspector":{ - "params":[ - "Operator", - "InputSameDT", - "OutDataTypeStr", - "RndMeth", - "SampleTime", - "ZeroCross" - ], - "values":[ - "==", - "off", - "boolean", - "Simplest", - "-1", - "on" - ], - "tabs":[ - "Main", - "Data Type", - "-Other" - ], - "tabs_idx":[ - 0, - 1, - 4 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"RelationalOperator", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9011", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9008", "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"id_min", - "label":"id_min", + "name":"Vq_max", + "label":"Vq_max", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -1380,7 +1287,7 @@ "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "6", + "3", "Port number", "[]", "[]", @@ -1393,7 +1300,7 @@ "auto", "off", "off", - "V_min", + "V_max", "off", "reset", "off", @@ -1427,35 +1334,37 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8978", - "className":"Simulink.If", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8985", + "className":"Simulink.RelationalOperator", "icon":"WebViewIcon3", - "name":"If1", - "label":"If1", + "name":"Relational Operator3", + "label":"Relational Operator3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ - "NumInputs", - "IfExpression", - "ElseIfExpressions", - "ShowElse", + "Operator", + "InputSameDT", + "OutDataTypeStr", + "RndMeth", "SampleTime", "ZeroCross" ], "values":[ - "1", - "u1 ~= 0", - "", + "==", "off", + "boolean", + "Simplest", "-1", "on" ], "tabs":[ - "Parameter Attributes", + "Main", + "Data Type", "-Other" ], "tabs_idx":[ 0, + 1, 4 ] }, @@ -1465,32 +1374,44 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"If", + "blocktype":"RelationalOperator", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8977", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8984", + "className":"Simulink.RelationalOperator", "icon":"WebViewIcon3", - "name":"Goto9", - "label":"Goto9", + "name":"Relational Operator2", + "label":"Relational Operator2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" + "Operator", + "InputSameDT", + "OutDataTypeStr", + "RndMeth", + "SampleTime", + "ZeroCross" ], "values":[ - "iq_limProt", - "local", - "Tag" + "==", + "off", + "boolean", + "Simplest", + "-1", + "on" ], "tabs":[ - "Parameter Attributes" + "Main", + "Data Type", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 1, + 4 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1498,17 +1419,103 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"RelationalOperator", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8975", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8979", + "className":"Simulink.If", "icon":"WebViewIcon3", - "name":"Goto7", - "label":"Goto7", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", + "name":"If2", + "label":"If2", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", + "inspector":{ + "params":[ + "NumInputs", + "IfExpression", + "ElseIfExpressions", + "ShowElse", + "SampleTime", + "ZeroCross" + ], + "values":[ + "1", + "u1 ~= 0", + "", + "off", + "-1", + "on" + ], + "tabs":[ + "Parameter Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 4 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"If", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8978", + "className":"Simulink.If", + "icon":"WebViewIcon3", + "name":"If1", + "label":"If1", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", + "inspector":{ + "params":[ + "NumInputs", + "IfExpression", + "ElseIfExpressions", + "ShowElse", + "SampleTime", + "ZeroCross" + ], + "values":[ + "1", + "u1 ~= 0", + "", + "off", + "-1", + "on" + ], + "tabs":[ + "Parameter Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 4 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"If", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8975", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto7", + "label":"Goto7", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ "GotoTag", @@ -1569,11 +1576,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8973", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8977", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto5", - "label":"Goto5", + "name":"Goto9", + "label":"Goto9", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -1582,7 +1589,7 @@ "IconDisplay" ], "values":[ - "iq_max", + "iq_limProt", "local", "Tag" ], @@ -1602,11 +1609,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8972", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8969", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto4", - "label":"Goto4", + "name":"Goto16", + "label":"Goto16", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -1615,7 +1622,7 @@ "IconDisplay" ], "values":[ - "id_max", + "z_ctrlMod", "local", "Tag" ], @@ -1635,11 +1642,60 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8971", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9002", + "className":"Simulink.Constant", + "icon":"WebViewIcon3", + "name":"i_max", + "label":"i_max", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", + "inspector":{ + "params":[ + "Value", + "VectorParams1D", + "SampleTime", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "FramePeriod" + ], + "values":[ + "i_max", + "on", + "inf", + "[]", + "[]", + "fixdt(1,16,4)", + "off", + "inf" + ], + "tabs":[ + "Main", + "Signal Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 3, + 7 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Constant", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8963", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto3", - "label":"Goto3", + "name":"Goto10", + "label":"Goto10", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -1648,7 +1704,7 @@ "IconDisplay" ], "values":[ - "Vd_min", + "n_max", "local", "Tag" ], @@ -1668,11 +1724,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8969", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8962", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto16", - "label":"Goto16", + "name":"Goto1", + "label":"Goto1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -1681,7 +1737,7 @@ "IconDisplay" ], "values":[ - "z_ctrlMod", + "Vd", "local", "Tag" ], @@ -1701,11 +1757,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8968", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8961", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto15", - "label":"Goto15", + "name":"Goto", + "label":"Goto", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -1714,7 +1770,7 @@ "IconDisplay" ], "values":[ - "Vq_min", + "Vd_max", "local", "Tag" ], @@ -1787,11 +1843,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8966", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8972", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto13", - "label":"Goto13", + "name":"Goto4", + "label":"Goto4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -1800,7 +1856,7 @@ "IconDisplay" ], "values":[ - "n_limProt", + "id_max", "local", "Tag" ], @@ -1820,27 +1876,53 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8965", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8960", + "className":"Simulink.Gain", "icon":"WebViewIcon3", - "name":"Goto12", - "label":"Goto12", + "name":"Gain6", + "label":"Gain6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" + "Gain", + "Multiplication", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "RndMeth", + "SaturateOnIntegerOverflow", + "ParamMin", + "ParamMax", + "ParamDataTypeStr", + "SampleTime" ], "values":[ - "n_mot", - "local", - "Tag" + "-1", + "Element-wise(K.*u)", + "[]", + "[]", + "Inherit: Same as input", + "off", + "Zero", + "off", + "[]", + "[]", + "Inherit: Same as input", + "-1" ], "tabs":[ - "Parameter Attributes" + "Main", + "Signal Attributes", + "Parameter Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 2, + 8, + 11 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1848,16 +1930,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"Gain", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8964", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8967", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto11", - "label":"Goto11", + "name":"Goto14", + "label":"Goto14", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -1866,7 +1948,7 @@ "IconDisplay" ], "values":[ - "n_min", + "Vq_max", "local", "Tag" ], @@ -1886,11 +1968,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8963", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8970", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto10", - "label":"Goto10", + "name":"Goto2", + "label":"Goto2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -1899,7 +1981,7 @@ "IconDisplay" ], "values":[ - "n_max", + "id_TgtAbs", "local", "Tag" ], @@ -1919,11 +2001,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8962", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8964", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto1", - "label":"Goto1", + "name":"Goto11", + "label":"Goto11", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -1932,7 +2014,7 @@ "IconDisplay" ], "values":[ - "Vd", + "n_min", "local", "Tag" ], @@ -1952,11 +2034,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8961", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8966", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto", - "label":"Goto", + "name":"Goto13", + "label":"Goto13", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -1965,7 +2047,7 @@ "IconDisplay" ], "values":[ - "Vd_max", + "n_limProt", "local", "Tag" ], @@ -1985,74 +2067,52 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9003", - "className":"Simulink.Interpolation_nD", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8957", + "className":"Simulink.Gain", "icon":"WebViewIcon3", - "name":"iq_max_M1", - "label":"iq_max_M1", + "name":"Gain3", + "label":"Gain3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ - "NumberOfTableDimensions", - "RequireIndexFractionAsBus", - "TableSpecification", - "TableSource", - "Table", - "InterpMethod", - "DiagnosticForOutOfRangeInput", - "ValidIndexMayReachLast", - "NumSelectionDims", - "RemoveProtectionIndex", - "TableDataTypeStr", - "TableMin", - "TableMax", - "OutDataTypeStr", + "Gain", + "Multiplication", "OutMin", "OutMax", - "InternalRulePriority", + "OutDataTypeStr", "LockScale", "RndMeth", "SaturateOnIntegerOverflow", - "ExtrapMethod", - "IntermediateResultsDataTypeStr", - "LookupTableObject", + "ParamMin", + "ParamMax", + "ParamDataTypeStr", "SampleTime" ], "values":[ - "1", - "off", - "Explicit values", - "Dialog", - "iq_max_M1", - "Flat", - "Error", - "on", - "0", - "on", - "Inherit: Same as output", - "[]", - "[]", - "fixdt(1,16,4)", + "-1", + "Element-wise(K.*u)", "[]", "[]", - "Speed", + "Inherit: Same as input", "off", - "Simplest", + "Zero", "off", - "Clip", - "Inherit: Same as output", - "", + "[]", + "[]", + "Inherit: Same as input", "-1" ], "tabs":[ "Main", - "Data Types", + "Signal Attributes", + "Parameter Attributes", "-Other" ], "tabs_idx":[ 0, - 10, - 20 + 2, + 8, + 11 ] }, "viewer":{ @@ -2061,49 +2121,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Interpolation_n-D", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8976", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto8", - "label":"Goto8", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", - "inspector":{ - "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" - ], - "values":[ - "iq", - "local", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Goto", + "blocktype":"Gain", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8958", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8956", "className":"Simulink.Gain", "icon":"WebViewIcon3", - "name":"Gain4", - "label":"Gain4", + "name":"Gain1", + "label":"Gain1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -2158,11 +2185,42 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8970", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8953", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From7", + "label":"From7", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "id_min", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8968", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto2", - "label":"Goto2", + "name":"Goto15", + "label":"Goto15", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -2171,7 +2229,7 @@ "IconDisplay" ], "values":[ - "id_TgtAbs", + "Vq_min", "local", "Tag" ], @@ -2191,11 +2249,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8954", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8949", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From8", - "label":"From8", + "name":"From37", + "label":"From37", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -2203,7 +2261,7 @@ "IconDisplay" ], "values":[ - "iq_max", + "z_ctrlMod", "Tag" ], "tabs":[ @@ -2222,11 +2280,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8953", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8947", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From7", - "label":"From7", + "name":"From3", + "label":"From3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -2234,7 +2292,7 @@ "IconDisplay" ], "values":[ - "id_min", + "Vq_min", "Tag" ], "tabs":[ @@ -2253,74 +2311,25 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9008", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8945", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Vq_max", - "label":"Vq_max", + "name":"From19", + "label":"From19", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ - "Port", - "IconDisplay", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" + "GotoTag", + "IconDisplay" ], "values":[ - "3", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "off", - "V_max", - "off", - "reset", - "off", - "0", - "", - [ - ], - "Dialog", - "Auto", - "off" + "n_max", + "Tag" ], "tabs":[ - "Main", - "Signal Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 2, - 11 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -2328,16 +2337,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8952", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8950", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From6", - "label":"From6", + "name":"From4", + "label":"From4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -2345,7 +2354,7 @@ "IconDisplay" ], "values":[ - "id_TgtAbs", + "Vd_min", "Tag" ], "tabs":[ @@ -2364,70 +2373,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8960", - "className":"Simulink.Gain", - "icon":"WebViewIcon3", - "name":"Gain6", - "label":"Gain6", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", - "inspector":{ - "params":[ - "Gain", - "Multiplication", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "ParamMin", - "ParamMax", - "ParamDataTypeStr", - "SampleTime" - ], - "values":[ - "-1", - "Element-wise(K.*u)", - "[]", - "[]", - "Inherit: Same as input", - "off", - "Zero", - "off", - "[]", - "[]", - "Inherit: Same as input", - "-1" - ], - "tabs":[ - "Main", - "Signal Attributes", - "Parameter Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 2, - 8, - 11 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Gain", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8948", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8946", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From36", - "label":"From36", + "name":"From2", + "label":"From2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -2435,7 +2385,7 @@ "IconDisplay" ], "values":[ - "z_ctrlMod", + "Vd_max", "Tag" ], "tabs":[ @@ -2453,87 +2403,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8998", - "className":"Simulink.Interpolation_nD", - "icon":"WebViewIcon3", - "name":"Vq_max_M1", - "label":"Vq_max_M1", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", - "inspector":{ - "params":[ - "NumberOfTableDimensions", - "RequireIndexFractionAsBus", - "TableSpecification", - "TableSource", - "Table", - "InterpMethod", - "DiagnosticForOutOfRangeInput", - "ValidIndexMayReachLast", - "NumSelectionDims", - "RemoveProtectionIndex", - "TableDataTypeStr", - "TableMin", - "TableMax", - "OutDataTypeStr", - "OutMin", - "OutMax", - "InternalRulePriority", - "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "ExtrapMethod", - "IntermediateResultsDataTypeStr", - "LookupTableObject", - "SampleTime" - ], - "values":[ - "1", - "off", - "Explicit values", - "Dialog", - "Vq_max_M1", - "Flat", - "Error", - "on", - "0", - "on", - "Inherit: Same as output", - "[]", - "[]", - "fixdt(1,16,4)", - "[]", - "[]", - "Speed", - "off", - "Simplest", - "off", - "Clip", - "Inherit: Same as output", - "", - "-1" - ], - "tabs":[ - "Main", - "Data Types", - "-Other" - ], - "tabs_idx":[ - 0, - 10, - 20 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Interpolation_n-D", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8944", "className":"Simulink.From", @@ -2597,11 +2466,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8938", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8941", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From12", - "label":"From12", + "name":"From15", + "label":"From15", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -2609,7 +2478,7 @@ "IconDisplay" ], "values":[ - "iq", + "n_min", "Tag" ], "tabs":[ @@ -2628,25 +2497,74 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8936", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9014", + "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"From10", - "label":"From10", + "name":"iq_limProt", + "label":"iq_limProt", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ - "GotoTag", - "IconDisplay" + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "iq_max", - "Tag" + "9", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "off", + "V_min", + "off", + "reset", + "off", + "0", + "", + [ + ], + "Dialog", + "Auto", + "off" ], "tabs":[ - "Parameter Attributes" + "Main", + "Signal Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 2, + 11 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -2654,16 +2572,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Outport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8946", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8951", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From2", - "label":"From2", + "name":"From5", + "label":"From5", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -2671,7 +2589,7 @@ "IconDisplay" ], "values":[ - "Vd_max", + "id_max", "Tag" ], "tabs":[ @@ -2690,11 +2608,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8934", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8937", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From", - "label":"From", + "name":"From11", + "label":"From11", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -2702,7 +2620,7 @@ "IconDisplay" ], "values":[ - "Vd", + "iq_min", "Tag" ], "tabs":[ @@ -2721,11 +2639,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8935", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8936", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From1", - "label":"From1", + "name":"From10", + "label":"From10", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -2733,7 +2651,7 @@ "IconDisplay" ], "values":[ - "Vq_max", + "iq_max", "Tag" ], "tabs":[ @@ -2752,108 +2670,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8924", - "className":"Simulink.SubSystem", - "icon":"WebViewIcon1", - "name":"Current_Limit_Protection", - "label":"Current_Limit_Protection", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", - "inspector":{ - "params":[ - "ShowPortLabels", - "Permissions", - "ErrorFcn", - "PermitHierarchicalResolution", - "TreatAsAtomicUnit", - "TreatAsGroupedWhenPropagatingVariantConditions", - "ActiveVariant", - "ActiveVariantBlock", - "AllowZeroVariantControls", - "BlockChoice", - "FunctionInterfaceSpec", - "FunctionWithSeparateData", - "GeneratePreprocessorConditionals", - "IsSubsystemVirtual", - "MemberBlocks", - "MinAlgLoopOccurrences", - "OverrideUsingVariant", - "PropExecContextOutsideSubsystem", - "PropagateVariantConditions", - "RTWFcnName", - "RTWFcnNameOpts", - "RTWFileName", - "RTWFileNameOpts", - "RTWMemSecDataConstants", - "RTWMemSecDataInternal", - "RTWMemSecDataParameters", - "RTWMemSecFuncExecute", - "RTWMemSecFuncInitTerm", - "RTWSystemCode", - "SystemSampleTime", - "TemplateBlock", - "Variant", - "VariantControl" - ], - "values":[ - "FromPortIcon", - "ReadWrite", - "", - "All", - "off", - "on", - "", - "", - "off", - "", - "void_void", - "off", - "off", - "off", - "", - "off", - "", - "off", - "off", - "", - "Auto", - "", - "Auto", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Auto", - "-1", - "", - "off", - "" - ], - "tabs":[ - "Main", - "-Other" - ], - "tabs_idx":[ - 0, - 6 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ContainerHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"SubSystem", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8923", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8997", "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"CTRL_COMM3", - "label":"CTRL_COMM3", + "name":"Vd_max1", + "label":"Vd_max1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -2867,12 +2688,12 @@ "FramePeriod" ], "values":[ - "TRQ_MODE", + "Vd_max", "on", "inf", "[]", "[]", - "Inherit: Inherit via back propagation", + "fixdt(1,16,4)", "off", "inf" ], @@ -2898,53 +2719,25 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8957", - "className":"Simulink.Gain", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8948", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Gain3", - "label":"Gain3", + "name":"From36", + "label":"From36", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ - "Gain", - "Multiplication", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "ParamMin", - "ParamMax", - "ParamDataTypeStr", - "SampleTime" + "GotoTag", + "IconDisplay" ], "values":[ - "-1", - "Element-wise(K.*u)", - "[]", - "[]", - "Inherit: Same as input", - "off", - "Zero", - "off", - "[]", - "[]", - "Inherit: Same as input", - "-1" + "z_ctrlMod", + "Tag" ], "tabs":[ - "Main", - "Signal Attributes", - "Parameter Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 2, - 8, - 11 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -2952,16 +2745,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Gain", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8942", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8935", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From16", - "label":"From16", + "name":"From1", + "label":"From1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -2969,7 +2762,7 @@ "IconDisplay" ], "values":[ - "n_mot", + "Vq_max", "Tag" ], "tabs":[ @@ -2988,11 +2781,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8947", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8940", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From3", - "label":"From3", + "name":"From14", + "label":"From14", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -3000,7 +2793,7 @@ "IconDisplay" ], "values":[ - "Vq_min", + "n_max", "Tag" ], "tabs":[ @@ -3019,11 +2812,75 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9016", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8973", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto5", + "label":"Goto5", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", + "inspector":{ + "params":[ + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "iq_max", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8954", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From8", + "label":"From8", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "iq_max", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9011", "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"n_min", - "label":"n_min", + "name":"id_min", + "label":"id_min", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -3052,7 +2909,7 @@ "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "11", + "6", "Port number", "[]", "[]", @@ -3099,100 +2956,169 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9001", - "className":"Simulink.Constant", - "icon":"WebViewIcon3", - "name":"a_elecPeriod2", - "label":"a_elecPeriod2", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8924", + "className":"Simulink.SubSystem", + "icon":"WebViewIcon1", + "name":"Current_Limit_Protection", + "label":"Current_Limit_Protection", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ - "Value", - "VectorParams1D", - "SampleTime", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "FramePeriod" + "ShowPortLabels", + "Permissions", + "ErrorFcn", + "PermitHierarchicalResolution", + "TreatAsAtomicUnit", + "TreatAsGroupedWhenPropagatingVariantConditions", + "ActiveVariant", + "ActiveVariantBlock", + "AllowZeroVariantControls", + "BlockChoice", + "FunctionInterfaceSpec", + "FunctionWithSeparateData", + "GeneratePreprocessorConditionals", + "IsSubsystemVirtual", + "MemberBlocks", + "MinAlgLoopOccurrences", + "OverrideUsingVariant", + "PropExecContextOutsideSubsystem", + "PropagateVariantConditions", + "RTWFcnName", + "RTWFcnNameOpts", + "RTWFileName", + "RTWFileNameOpts", + "RTWMemSecDataConstants", + "RTWMemSecDataInternal", + "RTWMemSecDataParameters", + "RTWMemSecFuncExecute", + "RTWMemSecFuncInitTerm", + "RTWSystemCode", + "SystemSampleTime", + "TemplateBlock", + "Variant", + "VariantControl" ], "values":[ - "0", + "FromPortIcon", + "ReadWrite", + "", + "All", + "off", "on", - "inf", - "[]", - "[]", - "uint8", + "", + "", "off", - "inf" + "", + "void_void", + "off", + "off", + "off", + "", + "off", + "", + "off", + "off", + "", + "Auto", + "", + "Auto", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Auto", + "-1", + "", + "off", + "" ], "tabs":[ "Main", - "Signal Attributes", "-Other" ], "tabs_idx":[ 0, - 3, - 7 + 6 ] }, "viewer":{ - "jshandler":"webview/handlers/ElementHandler" + "jshandler":"webview/handlers/ContainerHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"Constant", + "blocktype":"SubSystem", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8959", - "className":"Simulink.Gain", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9012", + "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"Gain5", - "label":"Gain5", + "name":"iq_max", + "label":"iq_max", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ - "Gain", - "Multiplication", + "Port", + "IconDisplay", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "ParamMin", - "ParamMax", - "ParamDataTypeStr", - "SampleTime" + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "-1", - "Element-wise(K.*u)", + "7", + "Port number", "[]", "[]", - "Inherit: Same as input", + "Inherit: auto", "off", - "Zero", + "inherit", + "-1", + "Inherit", + "-1", + "auto", "off", - "[]", - "[]", - "Inherit: Same as input", - "-1" + "off", + "V_max", + "off", + "reset", + "off", + "0", + "", + [ + ], + "Dialog", + "Auto", + "off" ], "tabs":[ "Main", "Signal Attributes", - "Parameter Attributes", "-Other" ], "tabs_idx":[ 0, 2, - 8, 11 ] }, @@ -3202,48 +3128,30 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Gain", + "blocktype":"Outport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8922", - "className":"Simulink.Constant", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8934", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"CTRL_COMM2", - "label":"CTRL_COMM2", + "name":"From", + "label":"From", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ - "Value", - "VectorParams1D", - "SampleTime", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "FramePeriod" + "GotoTag", + "IconDisplay" ], "values":[ - "VLT_MODE", - "on", - "inf", - "[]", - "[]", - "Inherit: Inherit via back propagation", - "off", - "inf" + "Vd", + "Tag" ], "tabs":[ - "Main", - "Signal Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 3, - 7 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -3251,16 +3159,78 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Constant", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8921", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8942", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From16", + "label":"From16", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "n_mot", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8938", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From12", + "label":"From12", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "iq", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8922", "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"CTRL_COMM1", - "label":"CTRL_COMM1", + "name":"CTRL_COMM2", + "label":"CTRL_COMM2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -3274,7 +3244,7 @@ "FramePeriod" ], "values":[ - "SPD_MODE", + "VLT_MODE", "on", "inf", "[]", @@ -3305,40 +3275,42 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8919", - "className":"Simulink.Abs", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8921", + "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"Abs5", - "label":"Abs5", + "name":"CTRL_COMM1", + "label":"CTRL_COMM1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ + "Value", + "VectorParams1D", + "SampleTime", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "SampleTime", - "ZeroCross" + "FramePeriod" ], "values":[ + "SPD_MODE", + "on", + "inf", "[]", "[]", "Inherit: Inherit via back propagation", "off", - "Zero", - "off", - "-1", - "on" + "inf" ], "tabs":[ + "Main", "Signal Attributes", "-Other" ], "tabs_idx":[ 0, - 6 + 3, + 7 ] }, "viewer":{ @@ -3347,24 +3319,26 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Abs", + "blocktype":"Constant", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8950", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8971", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From4", - "label":"From4", + "name":"Goto3", + "label":"Goto3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ "Vd_min", + "local", "Tag" ], "tabs":[ @@ -3378,55 +3352,37 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8917", - "className":"Simulink.Inport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8920", + "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"iq", - "label":"iq", + "name":"CTRL_COMM", + "label":"CTRL_COMM", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ - "Port", - "IconDisplay", + "Value", + "VectorParams1D", + "SampleTime", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" + "FramePeriod" ], "values":[ - "4", - "Port number", + "VLT_MODE", + "on", + "inf", "[]", "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "", - "on", - "off", + "Inherit: Inherit via back propagation", "off", - "off" + "inf" ], "tabs":[ "Main", @@ -3435,8 +3391,8 @@ ], "tabs_idx":[ 0, - 2, - 11 + 3, + 7 ] }, "viewer":{ @@ -3445,30 +3401,44 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", + "blocktype":"Constant", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8945", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8983", + "className":"Simulink.RelationalOperator", "icon":"WebViewIcon3", - "name":"From19", - "label":"From19", + "name":"Relational Operator1", + "label":"Relational Operator1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ - "GotoTag", - "IconDisplay" + "Operator", + "InputSameDT", + "OutDataTypeStr", + "RndMeth", + "SampleTime", + "ZeroCross" ], "values":[ - "n_max", - "Tag" + "==", + "off", + "boolean", + "Simplest", + "-1", + "on" ], "tabs":[ - "Parameter Attributes" + "Main", + "Data Type", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 1, + 4 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -3476,77 +3446,57 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"RelationalOperator", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8999", - "className":"Simulink.PreLookup", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8958", + "className":"Simulink.Gain", "icon":"WebViewIcon3", - "name":"Vq_max_XA", - "label":"Vq_max_XA", + "name":"Gain4", + "label":"Gain4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ - "BreakpointsSpecification", - "BreakpointsDataSource", - "BreakpointsData", - "OutputSelection", - "IndexSearchMethod", - "ExtrapMethod", - "UseLastBreakpoint", - "DiagnosticForOutOfRangeInput", - "RemoveProtectionInput", - "BreakpointDataTypeStr", - "BreakpointMin", - "BreakpointMax", - "IndexDataTypeStr", - "FractionDataTypeStr", + "Gain", + "Multiplication", + "OutMin", + "OutMax", + "OutDataTypeStr", "LockScale", "RndMeth", - "BeginIndexSearchUsingPreviousIndexResult", - "BreakpointObject", - "BreakpointsFirstPoint", - "BreakpointsNumPoints", - "BreakpointsSpacing", - "OutputBusDataTypeStr", + "SaturateOnIntegerOverflow", + "ParamMin", + "ParamMax", + "ParamDataTypeStr", "SampleTime" ], "values":[ - "Explicit values", - "Dialog", - "Vq_max_XA", - "Index only", - "Evenly spaced points", - "Clip", + "-1", + "Element-wise(K.*u)", + "[]", + "[]", + "Inherit: Same as input", "off", - "Error", + "Zero", "off", - "Inherit: Same as input", "[]", "[]", - "uint8", - "fixdt(0,8,6)", - "off", - "Simplest", - "on", - "", - "10", - "11", - "10", - "Inherit: auto", + "Inherit: Same as input", "-1" ], "tabs":[ "Main", - "Data Types", + "Signal Attributes", + "Parameter Attributes", "-Other" ], "tabs_idx":[ 0, - 9, - 16 + 2, + 8, + 11 ] }, "viewer":{ @@ -3555,16 +3505,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"PreLookup", + "blocktype":"Gain", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9009", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9017", "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"Vq_min", - "label":"Vq_min", + "name":"n_limProt", + "label":"n_limProt", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -3593,7 +3543,7 @@ "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "4", + "12", "Port number", "[]", "[]", @@ -3640,38 +3590,60 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8985", - "className":"Simulink.RelationalOperator", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8917", + "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"Relational Operator3", - "label":"Relational Operator3", + "name":"iq", + "label":"iq", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ - "Operator", - "InputSameDT", + "Port", + "IconDisplay", + "OutMin", + "OutMax", "OutDataTypeStr", - "RndMeth", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", "SampleTime", - "ZeroCross" + "SignalType", + "BusOutputAsStruct", + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" ], "values":[ - "==", + "4", + "Port number", + "[]", + "[]", + "Inherit: auto", "off", - "boolean", - "Simplest", + "inherit", "-1", - "on" + "Inherit", + "-1", + "auto", + "off", + "", + "on", + "off", + "off", + "off" ], "tabs":[ "Main", - "Data Type", + "Signal Attributes", "-Other" ], "tabs_idx":[ 0, - 1, - 4 + 2, + 11 ] }, "viewer":{ @@ -3680,55 +3652,26 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"RelationalOperator", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8937", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From11", - "label":"From11", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "iq_min", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", + "blocktype":"Inport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8941", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8976", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From15", - "label":"From15", + "name":"Goto8", + "label":"Goto8", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "n_min", + "iq", + "local", "Tag" ], "tabs":[ @@ -3742,24 +3685,26 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8955", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8965", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From9", - "label":"From9", + "name":"Goto12", + "label":"Goto12", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "iq_min", + "n_mot", + "local", "Tag" ], "tabs":[ @@ -3773,30 +3718,78 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8951", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9004", + "className":"Simulink.PreLookup", "icon":"WebViewIcon3", - "name":"From5", - "label":"From5", + "name":"iq_max_XA", + "label":"iq_max_XA", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ - "GotoTag", - "IconDisplay" + "BreakpointsSpecification", + "BreakpointsDataSource", + "BreakpointsData", + "OutputSelection", + "IndexSearchMethod", + "ExtrapMethod", + "UseLastBreakpoint", + "DiagnosticForOutOfRangeInput", + "RemoveProtectionInput", + "BreakpointDataTypeStr", + "BreakpointMin", + "BreakpointMax", + "IndexDataTypeStr", + "FractionDataTypeStr", + "LockScale", + "RndMeth", + "BeginIndexSearchUsingPreviousIndexResult", + "BreakpointObject", + "BreakpointsFirstPoint", + "BreakpointsNumPoints", + "BreakpointsSpacing", + "OutputBusDataTypeStr", + "SampleTime" ], "values":[ - "id_max", - "Tag" + "Explicit values", + "Dialog", + "iq_max_XA", + "Index only", + "Evenly spaced points", + "Clip", + "off", + "Error", + "off", + "Inherit: Same as input", + "[]", + "[]", + "uint8", + "fixdt(0,8,6)", + "off", + "Simplest", + "on", + "", + "10", + "11", + "10", + "Inherit: auto", + "-1" ], "tabs":[ - "Parameter Attributes" + "Main", + "Data Types", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 9, + 16 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -3804,7 +3797,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"PreLookup", "masktype":"" } }, @@ -3876,11 +3869,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8949", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8939", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From37", - "label":"From37", + "name":"From13", + "label":"From13", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -3888,7 +3881,7 @@ "IconDisplay" ], "values":[ - "z_ctrlMod", + "iq_limProt", "Tag" ], "tabs":[ @@ -3907,11 +3900,42 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8918", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8952", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From6", + "label":"From6", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "id_TgtAbs", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8915", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"n_mot", - "label":"n_mot", + "name":"Vd", + "label":"Vd", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -3934,7 +3958,7 @@ "OutputFunctionCall" ], "values":[ - "5", + "2", "Port number", "[]", "[]", @@ -3950,17 +3974,98 @@ "on", "off", "off", - "off" + "off" + ], + "tabs":[ + "Main", + "Signal Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 2, + 11 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Inport", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8998", + "className":"Simulink.Interpolation_nD", + "icon":"WebViewIcon3", + "name":"Vq_max_M1", + "label":"Vq_max_M1", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", + "inspector":{ + "params":[ + "NumberOfTableDimensions", + "RequireIndexFractionAsBus", + "TableSpecification", + "TableSource", + "Table", + "InterpMethod", + "DiagnosticForOutOfRangeInput", + "ValidIndexMayReachLast", + "NumSelectionDims", + "RemoveProtectionIndex", + "TableDataTypeStr", + "TableMin", + "TableMax", + "OutDataTypeStr", + "OutMin", + "OutMax", + "InternalRulePriority", + "LockScale", + "RndMeth", + "SaturateOnIntegerOverflow", + "ExtrapMethod", + "IntermediateResultsDataTypeStr", + "LookupTableObject", + "SampleTime" + ], + "values":[ + "1", + "off", + "Explicit values", + "Dialog", + "Vq_max_M1", + "Flat", + "Error", + "on", + "0", + "on", + "Inherit: Same as output", + "[]", + "[]", + "fixdt(1,16,4)", + "[]", + "[]", + "Speed", + "off", + "Simplest", + "off", + "Clip", + "Inherit: Same as output", + "", + "-1" ], "tabs":[ "Main", - "Signal Attributes", + "Data Types", "-Other" ], "tabs_idx":[ 0, - 2, - 11 + 10, + 20 ] }, "viewer":{ @@ -3969,16 +4074,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", + "blocktype":"Interpolation_n-D", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8915", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8918", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"Vd", - "label":"Vd", + "name":"n_mot", + "label":"n_mot", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -4001,7 +4106,7 @@ "OutputFunctionCall" ], "values":[ - "2", + "5", "Port number", "[]", "[]", @@ -4041,36 +4146,40 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8979", - "className":"Simulink.If", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8919", + "className":"Simulink.Abs", "icon":"WebViewIcon3", - "name":"If2", - "label":"If2", + "name":"Abs5", + "label":"Abs5", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ - "NumInputs", - "IfExpression", - "ElseIfExpressions", - "ShowElse", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "RndMeth", + "SaturateOnIntegerOverflow", "SampleTime", "ZeroCross" ], "values":[ - "1", - "u1 ~= 0", - "", + "[]", + "[]", + "Inherit: Inherit via back propagation", + "off", + "Zero", "off", "-1", "on" ], "tabs":[ - "Parameter Attributes", + "Signal Attributes", "-Other" ], "tabs_idx":[ 0, - 4 + 6 ] }, "viewer":{ @@ -4079,47 +4188,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"If", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8940", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From14", - "label":"From14", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "n_max", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", + "blocktype":"Abs", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8920", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8923", "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"CTRL_COMM", - "label":"CTRL_COMM", + "name":"CTRL_COMM3", + "label":"CTRL_COMM3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -4133,7 +4211,7 @@ "FramePeriod" ], "values":[ - "VLT_MODE", + "TRQ_MODE", "on", "inf", "[]", @@ -4163,37 +4241,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8939", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From13", - "label":"From13", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "iq_limProt", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8914", "className":"Simulink.Inport", @@ -4262,89 +4309,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8967", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto14", - "label":"Goto14", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", - "inspector":{ - "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" - ], - "values":[ - "Vq_max", - "local", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Goto", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8984", - "className":"Simulink.RelationalOperator", - "icon":"WebViewIcon3", - "name":"Relational Operator2", - "label":"Relational Operator2", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", - "inspector":{ - "params":[ - "Operator", - "InputSameDT", - "OutDataTypeStr", - "RndMeth", - "SampleTime", - "ZeroCross" - ], - "values":[ - "==", - "off", - "boolean", - "Simplest", - "-1", - "on" - ], - "tabs":[ - "Main", - "Data Type", - "-Other" - ], - "tabs_idx":[ - 0, - 1, - 4 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"RelationalOperator", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8956", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8959", "className":"Simulink.Gain", "icon":"WebViewIcon3", - "name":"Gain1", - "label":"Gain1", + "name":"Gain5", + "label":"Gain5", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -4399,11 +4368,42 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8981", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8955", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From9", + "label":"From9", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "iq_min", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8980", "className":"Simulink.Logic", "icon":"WebViewIcon3", - "name":"Logical Operator2", - "label":"Logical Operator2", + "name":"Logical Operator1", + "label":"Logical Operator1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ @@ -4444,11 +4444,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8980", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8981", "className":"Simulink.Logic", "icon":"WebViewIcon3", - "name":"Logical Operator1", - "label":"Logical Operator1", + "name":"Logical Operator2", + "label":"Logical Operator2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8913", "inspector":{ "params":[ diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8913_d.png b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8913_d.png index 1f3ffdabbb846e384ebbbc57af20c80c9a236067..57aa92392c3b4f532e044713bb0ad94173e4c333 100644 GIT binary patch delta 13338 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 K>0(I(-~R(fWNSzO diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8913_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8913_d.svg index 527a282..0e54034 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8913_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8913_d.svg @@ -188,11 +188,11 @@ - - + + - + @@ -202,30 +202,30 @@ - - 12 + + 11 - + - - + + - + - - n_limProt + + n_min @@ -378,6 +378,54 @@ + + + + + + + + + + + + + + + + + + 4 + + + + + + + + + + + + + + + + + + + + + + Vq_min + + + + + + + + @@ -390,11 +438,11 @@ - + - + 2 @@ -412,11 +460,11 @@ - + - + Vd_min @@ -438,11 +486,11 @@ - + - + 1 @@ -460,11 +508,11 @@ - + - + Vd_max @@ -486,11 +534,11 @@ - + - + n_max @@ -508,11 +556,11 @@ - + - + sfix16_En4 @@ -524,234 +572,362 @@ - - - + + + - - + + - + - - + + - - + + + + + + + + + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - + + + + + + + - - - - - - + + + + + + + - - + + - - iq_max_XA + + - - - - - - + + + + + + + - - + + - - uint8 + + - - - - - - - - - - - - - - - - - - - - + + - - 7 + + - - - - - - + + + + + + + - - - - - - + + + + + + + - - + + - - iq_max + + - - - - - - - - - - - - - - - - - - - - + + - - i_max + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1-D T(k,f) + + + + + + + + k1 + + + + + + + + f1 - - + + + + + + + + + + + + + + + + + iq_max_M1 - + - - + + - + sfix16_En4 @@ -763,43 +939,43 @@ - - + + - + - + - + 0 - + - + - - + + - + uint8 @@ -811,44 +987,44 @@ - - - + + + - - + + - - + + - - Vd_max + + 0 - - + + - - + + - - + + - - sfix16_En4 + + uint8 @@ -859,107 +1035,202 @@ - - - + + + - - + + - + - - + + - - 9 - - - - - - - - - - - - - - + + - - + + - - iq_limProt + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - n_mot + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Vq_max_XA + + + + + + + + + + + + + + + uint8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + n_mot + + + - + n_max - + - + n_min - + - + n_limProt - + - + if { } @@ -989,11 +1260,11 @@ - + - + Speed_Limit_Protection @@ -1010,11 +1281,11 @@ - + - + action @@ -1031,11 +1302,11 @@ - + - + sfix16_En4 @@ -1063,27 +1334,27 @@ - + - + - + - + - + - + @@ -1109,11 +1380,11 @@ - + - + boolean @@ -1125,37 +1396,85 @@ - - - + + + - + + + + + + + + + + + + 3 + + + + + + + + + + + + + + + + + + + + + + Vq_max + + + + + + + + + + + + + + + - + - + - + - + - + - + @@ -1170,22 +1489,22 @@ - + - + - - + + - + boolean @@ -1197,44 +1516,68 @@ - - - + + + - - + + - + - - + + - - 6 + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - + + + - - + + - - id_min + + boolean @@ -1245,51 +1588,51 @@ - - - + + + - + - + - + u1 - + - + if(u1 ~= 0) - + - + - - + + - + action @@ -1301,29 +1644,52 @@ - - - - - - + + + + + + - - + + - - [iq_limProt] + + u1 + + + + + + + + if(u1 ~= 0) - - + + + + + + + + + + + + + + + + + action @@ -1344,11 +1710,11 @@ - + - + [id_min] @@ -1377,11 +1743,11 @@ - + - + [iq_min] @@ -1400,28 +1766,28 @@ - - + + - + - + - - [iq_max] + + [iq_limProt] - + @@ -1433,28 +1799,28 @@ - - + + - + - + - - [id_max] + + [z_ctrlMod] - + @@ -1466,28 +1832,76 @@ - - + + + + + + + + + + + + + + + + i_max + + + + + + + + + + + + + + + + + + + + + + sfix16_En4 + + + + + + + + + + + + - + - + - - [Vd_min] + + [n_max] - + @@ -1499,28 +1913,28 @@ - - + + - + - + - - [z_ctrlMod] + + [Vd] - + @@ -1532,28 +1946,28 @@ - - + + - + - + - - [Vq_min] + + [Vd_max] - + @@ -1567,7 +1981,7 @@ - + @@ -1575,19 +1989,19 @@ - + - + - + - + @@ -1613,11 +2027,11 @@ - + - + sfix16_En4 @@ -1629,28 +2043,28 @@ - - + + - + - + - - [n_limProt] + + [id_max] - + @@ -1662,29 +2076,44 @@ - - - + + + - - + + - - + + - - [n_mot] + + -1 - - + + + + + + + + + + + + + + + + + sfix16_En4 @@ -1695,28 +2124,28 @@ - - + + - + - + - - [n_min] + + [Vq_max] - + @@ -1728,28 +2157,28 @@ - - + + - + - + - - [n_max] + + [id_TgtAbs] - + @@ -1761,28 +2190,28 @@ - - + + - + - + - - [Vd] + + [n_min] - + @@ -1794,28 +2223,28 @@ - - + + - + - + - - [Vd_max] + + [n_limProt] - + @@ -1827,362 +2256,43 @@ - - - + + + - - + + - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1-D T(k,f) - - - - - - - - k1 - - - - - - - - f1 + + -1 - - - - - - - - - - - - - - - - - iq_max_M1 + + - + - - + + - + sfix16_En4 @@ -2194,157 +2304,43 @@ - - - - - - - - - - - - - - - - [iq] - - - - - - - - - - - - - - - - - - - + + - + - + - + -1 - + - - - - - - - - - - sfix16_En4 - - - - - - - - - - - - - - - - - - - - - - - - - - [id_TgtAbs] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [iq_max] - - - - - - - - - - - - - + - - + + - + sfix16_En4 @@ -2366,11 +2362,11 @@ - + - + [id_min] @@ -2388,11 +2384,11 @@ - + - + sfix16_En4 @@ -2404,44 +2400,29 @@ - - - + + + - - + + - - + + - - 3 + + [Vq_min] - - - - - - - - - - - - - - - - - Vq_max + + @@ -2452,44 +2433,44 @@ - - + + - + - + - - [id_TgtAbs] + + [z_ctrlMod] - + - - + + - - + + - - sfix16_En4 + + uint8 @@ -2500,43 +2481,43 @@ - - - + + + - - + + - - + + - - -1 + + [Vq_min] - - + + - + - - + + - + sfix16_En4 @@ -2548,44 +2529,44 @@ - - + + - + - + - - [z_ctrlMod] + + [n_max] - + - - + + - - + + - - uint8 + + sfix16_En4 @@ -2596,362 +2577,379 @@ - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + [Vd_min] - - - - - - - + + + + + + + + + + + + + - - + + - - + + sfix16_En4 + + + + + + + + + + + + + + + + + + - + - - + + [Vd_max] - - - - - - - + + + + + + + + + + + + + - - + + - - + + sfix16_En4 + + + + + + + + + + + + + + + + + + - + - - + + [n_limProt] - - - - - - - + + + + + + + + + + + + + - - + + - - + + sfix16_En4 + + + + + + + + + + + + + + + + + + - + - - + + [n_min] - - - - - - - + + + + + + + + + + + + + - - + + - - + + sfix16_En4 + + + + + + + + + + + + + + + + + + - + - - + + [n_min] - - - - - - - + + + + + + + + + + + + + - - + + - - + + sfix16_En4 + + + + + + + + + + + + + + + + + + - + - - + + 9 - - - - - - - + + + + + + + + + + + + + - - + + - - + + iq_limProt + + + + + + + + + + + + + + + + + + - + - - 1-D T(k,f) + + [id_max] - - - - - - - k1 + + + + + + + + + + + + + - - + + - - f1 + + sfix16_En4 - - - - - + + + + + + + + + + + + - - - - + - + - - Vq_max_M1 + + [iq_min] + + + + + + + - + - + - + sfix16_En4 @@ -2963,11 +2961,11 @@ - - + + - + @@ -2977,29 +2975,29 @@ - - [n_limProt] + + [iq_max] - + - + - + - + sfix16_En4 @@ -3011,43 +3009,43 @@ - - - + + + - - + + - + - - [n_min] + + Vd_max - - + + - + - + - + sfix16_En4 @@ -3059,11 +3057,11 @@ - - + + - + @@ -3073,30 +3071,30 @@ - - [iq] + + [z_ctrlMod] - + - - + + - + - - sfix16_En4 + + uint8 @@ -3107,11 +3105,11 @@ - - + + - + @@ -3121,29 +3119,29 @@ - - [iq_max] + + [Vq_max] - + - + - + - + sfix16_En4 @@ -3155,11 +3153,11 @@ - - + + - + @@ -3169,29 +3167,29 @@ - - [Vd_max] + + [n_max] - + - + - + - + sfix16_En4 @@ -3203,43 +3201,76 @@ - - + + + + + + + + + + + + + + + + [iq_max] + + + + + + + + + + + + + + + + + + + - + - + - - [Vd] + + [iq_max] - + - + - - + + - + sfix16_En4 @@ -3251,44 +3282,44 @@ - - - + + + - - + + - - + + - - [Vq_max] + + 6 - - + + - - - + + + - - + + - - sfix16_En4 + + id_min @@ -3301,7 +3332,7 @@ - + @@ -3315,43 +3346,43 @@ - + - + iq - + - + iq_max - + - + iq_min - + - + iq_limProt - + - + if { } @@ -3381,11 +3412,11 @@ - + - + Current_Limit_Protection @@ -3398,16 +3429,16 @@ - - + + - - + + - - sfix16_En4 + + action @@ -3419,16 +3450,16 @@ - - + + - - + + - - action + + sfix16_En4 @@ -3439,50 +3470,50 @@ - + - - + + - - + + - - + + - - TRQ_MODE + + 7 - - + + - - - + + + - - + + - - uint8 + + iq_max @@ -3493,43 +3524,43 @@ - - - + + + - - + + - - + + - - -1 + + [Vd] - - + + - + - - + + - + sfix16_En4 @@ -3551,11 +3582,11 @@ - + - + [n_mot] @@ -3573,11 +3604,11 @@ - + - + sfix16_En4 @@ -3589,43 +3620,43 @@ - - + + - + - + - - [Vq_min] + + [iq] - + - + - - + + - + sfix16_En4 @@ -3637,44 +3668,44 @@ - - - + + + - - + + - - + + - - 11 + + VLT_MODE - - + + - - - + + + - - + + - - n_min + + uint8 @@ -3685,43 +3716,43 @@ - - - + + + - - + + - - + + - - 0 + + SPD_MODE - - + + - + - - + + - + uint8 @@ -3733,44 +3764,29 @@ - - - + + + - - + + - - + + - - -1 + + [Vd_min] - - - - - - - - - - - - - - - - - sfix16_En4 + + @@ -3781,43 +3797,43 @@ - - + + - + - + - + VLT_MODE - + - + - - + + - + uint8 @@ -3829,44 +3845,68 @@ - - - + + + - - + + - + - - + + - - SPD_MODE + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - uint8 + + boolean @@ -3874,78 +3914,46 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - + + + + + + + + + -1 + - - + + - + - + - + sfix16_En4 @@ -3957,44 +3965,44 @@ - - - + + + - - + + - + - - [Vd_min] + + 12 - - + + - - - + + + - + - - sfix16_En4 + + n_limProt @@ -4068,44 +4076,62 @@ - - - + + + - - + + - + - - [n_max] + + [iq] - - + + - - - - + + + + + + + + + + + + + + + - - + + - - sfix16_En4 + + [n_mot] + + + + + + + @@ -4116,93 +4142,93 @@ - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4217,37 +4243,37 @@ - + - - + + - - + + - - Vq_max_XA + + iq_max_XA - + - - + + - + uint8 @@ -4259,163 +4285,58 @@ - - + + - + - - - - - - 4 - - - - - - - - - - - - - - - - - - - - - - Vq_min - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - boolean - - - - - - - - - - - - - - - - - - - - - - + + - - [iq_min] + + 3 - - + + + + + + + + + + + + + + + + + id_TgtAbs - + - - + + - + sfix16_En4 @@ -4427,43 +4348,43 @@ - - + + - + - + - - [n_min] + + [iq_limProt] - + - + - - + + - + sfix16_En4 @@ -4475,43 +4396,43 @@ - - + + - + - + - - [iq_min] + + [id_TgtAbs] - + - + - - + + - + sfix16_En4 @@ -4523,43 +4444,58 @@ - - - + + + - - + + - - + + - - [id_max] + + 2 - - + + + + + + + + + + + + + + + + + Vd - + - - + + - + sfix16_En4 @@ -4571,289 +4507,363 @@ - - - + + + - - + + - - + + - - 3 + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + - + - - id_TgtAbs - - - - - - - + + - + - - sfix16_En4 + + - - - - - - - - - - - - - - - - - - - - + + - - [z_ctrlMod] - - - - - - - + + - - - - - - + + + + + + + - + - - uint8 + + - - - - - - - - - - - - - - - - - - - - + + - - 5 - - - - - - - + + - - - - - - + + + + + + + - + - - n_mot - - - - - - - + + - + - - sfix16_En4 + + - - - - - - - - - - - - - - - - - - - - + + - - 2 - - - - - - - + + - - - - - - + + + + + + + - + - - Vd - - - - - - - + + - + - - sfix16_En4 + + 1-D T(k,f) - - - - - - - - - - - - - - - - - - - - + + - - u1 + + k1 - - + + - - if(u1 ~= 0) + + f1 - - + + + + + + + + + + + + + + + + + Vq_max_M1 - - + + - + - - action + + sfix16_En4 @@ -4864,43 +4874,58 @@ - - - + + + - - + + - + - - [n_max] + + 5 - - + + + + + + + + + + + + + + + + + n_mot - + - - + + - + sfix16_En4 @@ -4912,44 +4937,76 @@ - - - + + + - - + + - + - - + + - - VLT_MODE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - uint8 + + sfix16_En4 @@ -4960,44 +5017,44 @@ - - - + + + - - + + - - + + - - [iq_limProt] + + TRQ_MODE - - + + - - + + - - + + - - sfix16_En4 + + uint8 @@ -5018,11 +5075,11 @@ - + - + 1 @@ -5040,11 +5097,11 @@ - + - + z_ctrlMod @@ -5055,11 +5112,11 @@ - + - + uint8 @@ -5071,101 +5128,44 @@ - - - + + + - - + + - - - - - - [Vq_max] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + -1 - - - - - - - - - - + + - - + + - + - - boolean + + sfix16_En4 @@ -5176,43 +5176,43 @@ - - - + + + - - + + - + - - -1 + + [iq_min] - - + + - + - + - + sfix16_En4 @@ -5224,11 +5224,11 @@ - - + + - + @@ -5238,7 +5238,7 @@ - + @@ -5246,7 +5246,7 @@ - + @@ -5257,7 +5257,7 @@ - + @@ -5268,15 +5268,15 @@ - + - + - + boolean @@ -5288,11 +5288,11 @@ - - + + - + @@ -5302,7 +5302,7 @@ - + @@ -5310,7 +5310,7 @@ - + @@ -5320,32 +5320,32 @@ - - - - - - - - - - - - + - - + + - + boolean + + + + + + + + + + + @@ -5583,10 +5583,10 @@ - + - + @@ -6310,5 +6310,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8924_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8924_d.json index 98ba590..5b5381d 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8924_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8924_d.json @@ -1,63 +1,4 @@ [ - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8931", - "className":"Simulink.Sum", - "icon":"WebViewIcon3", - "name":"Sum3", - "label":"Sum3", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8924", - "inspector":{ - "params":[ - "IconShape", - "Inputs", - "InputSameDT", - "AccumDataTypeStr", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", - "SampleTime" - ], - "values":[ - "round", - "|+-", - "off", - "Inherit: Inherit via internal rule", - "[]", - "[]", - "Inherit: Inherit via internal rule", - "off", - "Simplest", - "off", - "1", - "All dimensions", - "-1" - ], - "tabs":[ - "Main", - "Signal Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 2, - 10 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Sum", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8933", "className":"Simulink.Outport", @@ -177,6 +118,55 @@ "masktype":"Saturation Dynamic" } }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8932", + "className":"Simulink.Constant", + "icon":"WebViewIcon3", + "name":"cf_iqKpLimProt", + "label":"cf_iqKpLimProt", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8924", + "inspector":{ + "params":[ + "Value", + "VectorParams1D", + "SampleTime", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "FramePeriod" + ], + "values":[ + "cf_iqKpLimProt", + "on", + "inf", + "[]", + "[]", + "fixdt(0,16,8)", + "off", + "inf" + ], + "tabs":[ + "Main", + "Signal Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 3, + 7 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Constant", + "masktype":"" + } + }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8929", "className":"Simulink.Product", @@ -235,11 +225,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8926", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8927", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"iq_max", - "label":"iq_max", + "name":"iq_min", + "label":"iq_min", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8924", "inspector":{ "params":[ @@ -262,7 +252,7 @@ "OutputFunctionCall" ], "values":[ - "2", + "3", "Port number", "[]", "[]", @@ -302,32 +292,42 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8932", - "className":"Simulink.Constant", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8931", + "className":"Simulink.Sum", "icon":"WebViewIcon3", - "name":"cf_iqKpLimProt", - "label":"cf_iqKpLimProt", + "name":"Sum3", + "label":"Sum3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8924", "inspector":{ "params":[ - "Value", - "VectorParams1D", - "SampleTime", + "IconShape", + "Inputs", + "InputSameDT", + "AccumDataTypeStr", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "FramePeriod" + "RndMeth", + "SaturateOnIntegerOverflow", + "CollapseDim", + "CollapseMode", + "SampleTime" ], "values":[ - "cf_iqKpLimProt", - "on", - "inf", + "round", + "|+-", + "off", + "Inherit: Inherit via internal rule", "[]", "[]", - "fixdt(0,16,8)", + "Inherit: Inherit via internal rule", "off", - "inf" + "Simplest", + "off", + "1", + "All dimensions", + "-1" ], "tabs":[ "Main", @@ -336,8 +336,8 @@ ], "tabs_idx":[ 0, - 3, - 7 + 2, + 10 ] }, "viewer":{ @@ -346,16 +346,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Constant", + "blocktype":"Sum", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8925", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8926", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"iq", - "label":"iq", + "name":"iq_max", + "label":"iq_max", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8924", "inspector":{ "params":[ @@ -378,7 +378,7 @@ "OutputFunctionCall" ], "values":[ - "1", + "2", "Port number", "[]", "[]", @@ -418,11 +418,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8927", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8925", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"iq_min", - "label":"iq_min", + "name":"iq", + "label":"iq", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8924", "inspector":{ "params":[ @@ -445,7 +445,7 @@ "OutputFunctionCall" ], "values":[ - "3", + "1", "Port number", "[]", "[]", diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8924_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8924_d.svg index 2dc94cb..1433361 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8924_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8924_d.svg @@ -10,70 +10,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - sfix16_En4 - - - - - - - @@ -87,11 +23,11 @@ - + - + 1 @@ -109,11 +45,11 @@ - + - + iq_limProt @@ -127,7 +63,7 @@ - + @@ -135,35 +71,35 @@ - + - + - + - + - + - + - + - + @@ -175,35 +111,35 @@ - + - + up - + - + u - + - + lo - + - + y @@ -221,11 +157,11 @@ - + - + sfix16_En4 @@ -235,11 +171,74 @@ + + + + + + + + + + + + + + + + + + cf_iqKpLimProt + + + + + + + + + + + + + + + + + + + + + + cf_iqKpLimProt + + + + + + + + + + + + + + + ufix16_En8 + + + + + + + + - + @@ -247,19 +246,19 @@ - + - + - + - + @@ -277,11 +276,11 @@ - + - + sfix16_En4 @@ -293,58 +292,58 @@ - - + + - + - + - - 2 + + 3 - + - - + + - - + + - - iq_max + + iq_min - + - - + + - + sfix16_En4 @@ -356,59 +355,60 @@ - - - + + + - - + + - - + + - - cf_iqKpLimProt - - - - - - - + + - - - - - - + + + + + + + - + - - cf_iqKpLimProt + + + + + + + + + - - + + - + - - ufix16_En8 + + sfix16_En4 @@ -419,11 +419,11 @@ - - + + - + @@ -433,44 +433,44 @@ - - 1 + + 2 - + - - + + - + - - iq + + iq_max - + - + - + sfix16_En4 @@ -482,11 +482,11 @@ - - + + - + @@ -496,44 +496,44 @@ - - 3 + + 1 - + - - + + - + - - iq_min + + iq - + - + - + sfix16_En4 @@ -547,7 +547,7 @@ - + @@ -711,5 +711,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8930_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8930_d.svg index bf6e66f..9a62b3a 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8930_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8930_d.svg @@ -63,7 +63,7 @@ - + @@ -1012,10 +1012,10 @@ - + - + @@ -1103,10 +1103,10 @@ - + - + @@ -1176,5 +1176,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8987_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8987_d.json index 9c7170f..2765a29 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8987_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8987_d.json @@ -1,102 +1,4 @@ [ - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8994", - "className":"Simulink.Sum", - "icon":"WebViewIcon3", - "name":"Sum1", - "label":"Sum1", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8987", - "inspector":{ - "params":[ - "IconShape", - "Inputs", - "InputSameDT", - "AccumDataTypeStr", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", - "SampleTime" - ], - "values":[ - "round", - "|+-", - "off", - "Inherit: Inherit via internal rule", - "[]", - "[]", - "Inherit: Inherit via internal rule", - "off", - "Simplest", - "off", - "1", - "All dimensions", - "-1" - ], - "tabs":[ - "Main", - "Signal Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 2, - 10 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Sum", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8993", - "className":"Saturation Dynamic", - "icon":"WebViewIcon3", - "name":"Saturation Dynamic1", - "label":"Saturation Dynamic1", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8987", - "inspector":{ - "params":[ - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "RndMeth", - "DoSatur" - ], - "values":[ - "[]", - "[]", - "Inherit: Same as second input", - "off", - "Floor", - "off" - ], - "tabs":[ - ], - "tabs_idx":[ - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ContainerHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"SubSystem", - "masktype":"Saturation Dynamic" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8996", "className":"Simulink.Outport", @@ -177,6 +79,65 @@ "masktype":"" } }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8994", + "className":"Simulink.Sum", + "icon":"WebViewIcon3", + "name":"Sum1", + "label":"Sum1", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8987", + "inspector":{ + "params":[ + "IconShape", + "Inputs", + "InputSameDT", + "AccumDataTypeStr", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "RndMeth", + "SaturateOnIntegerOverflow", + "CollapseDim", + "CollapseMode", + "SampleTime" + ], + "values":[ + "round", + "|+-", + "off", + "Inherit: Inherit via internal rule", + "[]", + "[]", + "Inherit: Inherit via internal rule", + "off", + "Simplest", + "off", + "1", + "All dimensions", + "-1" + ], + "tabs":[ + "Main", + "Signal Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 2, + 10 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Sum", + "masktype":"" + } + }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8992", "className":"Simulink.Product", @@ -284,11 +245,81 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8990", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8991", + "className":"Simulink.ActionPort", + "icon":"WebViewIcon3", + "name":"Action Port", + "label":"Action Port", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8987", + "inspector":{ + "params":[ + "InitializeStates", + "PropagateVarSize" + ], + "values":[ + "reset", + "Only when execution is resumed" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"ActionPort", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8993", + "className":"Saturation Dynamic", + "icon":"WebViewIcon3", + "name":"Saturation Dynamic1", + "label":"Saturation Dynamic1", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8987", + "inspector":{ + "params":[ + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "RndMeth", + "DoSatur" + ], + "values":[ + "[]", + "[]", + "Inherit: Same as second input", + "off", + "Floor", + "off" + ], + "tabs":[ + ], + "tabs_idx":[ + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ContainerHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"SubSystem", + "masktype":"Saturation Dynamic" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8989", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"n_min", - "label":"n_min", + "name":"n_max", + "label":"n_max", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8987", "inspector":{ "params":[ @@ -311,7 +342,7 @@ "OutputFunctionCall" ], "values":[ - "3", + "2", "Port number", "[]", "[]", @@ -351,11 +382,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8989", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8988", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"n_max", - "label":"n_max", + "name":"n_mot", + "label":"n_mot", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8987", "inspector":{ "params":[ @@ -378,7 +409,7 @@ "OutputFunctionCall" ], "values":[ - "2", + "1", "Port number", "[]", "[]", @@ -418,11 +449,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8988", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8990", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"n_mot", - "label":"n_mot", + "name":"n_min", + "label":"n_min", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8987", "inspector":{ "params":[ @@ -445,7 +476,7 @@ "OutputFunctionCall" ], "values":[ - "1", + "3", "Port number", "[]", "[]", @@ -484,37 +515,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8991", - "className":"Simulink.ActionPort", - "icon":"WebViewIcon3", - "name":"Action Port", - "label":"Action Port", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:8987", - "inspector":{ - "params":[ - "InitializeStates", - "PropagateVarSize" - ], - "values":[ - "reset", - "Only when execution is resumed" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"ActionPort", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:8993#out:1", "className":"Simulink.Line", diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8987_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8987_d.svg index 7b97200..96f8e48 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8987_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8987_d.svg @@ -13,60 +13,44 @@ - - - + + + - - + + - - - - - - - - - - - - - - - - - + - - + + 1 - - + + - - - + + + - - + + - - sfix16_En4 + + n_limProt @@ -77,107 +61,59 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + - - - - - - up - - - - + + - - u + + - - + + - - lo + + - - + + - - y + + - - + + - + - - + + - + sfix16_En4 @@ -187,59 +123,11 @@ - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - n_limProt - - - - - - - - - + @@ -247,19 +135,19 @@ - + - + - + - + @@ -277,11 +165,11 @@ - + - + sfix16_En4 @@ -303,11 +191,11 @@ - + - + cf_nKpLimProt @@ -325,11 +213,11 @@ - + - + cf_nKpLimProt @@ -340,11 +228,11 @@ - + - + ufix16_En8 @@ -356,58 +244,155 @@ - - - + + + - - + + - - + + - - 3 + + if { } - - + + - - + + - - + + - - n_min + + Action Port + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + up + + + + + + + + u + + + + + + + + lo + + + + + + + + y + + + + + + + - + - - + + - + sfix16_En4 @@ -429,11 +414,11 @@ - + - + 2 @@ -451,11 +436,11 @@ - + - + n_max @@ -466,11 +451,11 @@ - + - + sfix16_En4 @@ -492,11 +477,11 @@ - + - + 1 @@ -514,11 +499,11 @@ - + - + n_mot @@ -529,11 +514,11 @@ - + - + sfix16_En4 @@ -545,44 +530,59 @@ - - - + + + - - + + - - + + - - if { } + + 3 - - + + - - + + + + + + + + + + n_min + + + + + + + - + - - Action Port + + sfix16_En4 @@ -711,5 +711,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8993_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8993_d.svg index 7e833b0..5a0feec 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8993_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8993_d.svg @@ -63,7 +63,7 @@ - + @@ -1012,13 +1012,13 @@ - + - + @@ -1176,5 +1176,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9029_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9029_d.json index 837ccd6..24a22ff 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9029_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9029_d.json @@ -48,86 +48,6 @@ "finder":[ ] }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9043", - "className":"Simulink.Outport", - "icon":"WebViewIcon3", - "name":"Vq_Open", - "label":"Vq_Open", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9029", - "inspector":{ - "params":[ - "Port", - "IconDisplay", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" - ], - "values":[ - "1", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "off", - "[]", - "off", - "held", - "off", - "0", - "", - [ - ], - "Dialog", - "Auto", - "off" - ], - "tabs":[ - "Main", - "Signal Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 2, - 11 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Outport", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9042", "className":"Rising edge init", @@ -367,6 +287,119 @@ "masktype":"" } }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9039", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto13", + "label":"Goto13", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9029", + "inspector":{ + "params":[ + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "Vq_prev", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9043", + "className":"Simulink.Outport", + "icon":"WebViewIcon3", + "name":"Vq_Open", + "label":"Vq_Open", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9029", + "inspector":{ + "params":[ + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" + ], + "values":[ + "1", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "off", + "[]", + "off", + "held", + "off", + "0", + "", + [ + ], + "Dialog", + "Auto", + "off" + ], + "tabs":[ + "Main", + "Signal Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 2, + 11 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Outport", + "masktype":"" + } + }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9037", "className":"Simulink.Gain", @@ -536,72 +569,41 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9039", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto13", - "label":"Goto13", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9029", - "inspector":{ - "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" - ], - "values":[ - "Vq_prev", - "local", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Goto", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9033", - "className":"Simulink.DataTypeConversion", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9032", + "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"Data Type Conversion", - "label":"Data Type Conversion", + "name":"Constant23", + "label":"Constant23", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9029", "inspector":{ "params":[ + "Value", + "VectorParams1D", + "SampleTime", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "ConvertRealWorld", - "RndMeth", - "SaturateOnIntegerOverflow", - "SampleTime" + "FramePeriod" ], "values":[ + "0", + "on", + "inf", "[]", "[]", - "fixdt(1,28,16)", - "off", - "Real World Value (RWV)", - "Floor", + "Inherit: Inherit via back propagation", "off", - "-1" + "inf" ], "tabs":[ - "Parameter Attributes", + "Main", + "Signal Attributes", "-Other" ], "tabs_idx":[ 0, + 3, 7 ] }, @@ -611,40 +613,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"DataTypeConversion", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9038", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto", - "label":"Goto", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9029", - "inspector":{ - "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" - ], - "values":[ - "Vq_Open", - "local", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Goto", + "blocktype":"Constant", "masktype":"" } }, @@ -679,55 +648,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9032", - "className":"Simulink.Constant", - "icon":"WebViewIcon3", - "name":"Constant23", - "label":"Constant23", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9029", - "inspector":{ - "params":[ - "Value", - "VectorParams1D", - "SampleTime", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "FramePeriod" - ], - "values":[ - "0", - "on", - "inf", - "[]", - "[]", - "Inherit: Inherit via back propagation", - "off", - "inf" - ], - "tabs":[ - "Main", - "Signal Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 3, - 7 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Constant", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9030", "className":"Simulink.Inport", @@ -795,6 +715,86 @@ "masktype":"" } }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9038", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto", + "label":"Goto", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9029", + "inspector":{ + "params":[ + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "Vq_Open", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9033", + "className":"Simulink.DataTypeConversion", + "icon":"WebViewIcon3", + "name":"Data Type Conversion", + "label":"Data Type Conversion", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9029", + "inspector":{ + "params":[ + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "ConvertRealWorld", + "RndMeth", + "SaturateOnIntegerOverflow", + "SampleTime" + ], + "values":[ + "[]", + "[]", + "fixdt(1,28,16)", + "off", + "Real World Value (RWV)", + "Floor", + "off", + "-1" + ], + "tabs":[ + "Parameter Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 7 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"DataTypeConversion", + "masktype":"" + } + }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9030#out:1", "className":"Simulink.Line", diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9029_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9029_d.svg index 9d5e098..2e94586 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9029_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9029_d.svg @@ -30,59 +30,11 @@ - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - Vq_Open - - - - - - - - - + @@ -90,43 +42,43 @@ - + - + - + - + - + - + - + - + - + - + @@ -139,31 +91,46 @@ + + + + + + + + + + + boolean + + + + - + - + - + - + - + - + @@ -171,21 +138,6 @@ - - - - - - - - - - - boolean - - - - @@ -202,11 +154,11 @@ - + - + dV_openRate @@ -224,11 +176,11 @@ - + - + dV_openRate @@ -239,11 +191,11 @@ - + - + sfix28_En16 @@ -265,75 +217,75 @@ - + - + u - + - + initVal - + - + init - + - + inc - + - + dec - + - + y - + - + - + - + - + - + @@ -351,11 +303,11 @@ - + - + Rate_Limiter @@ -366,11 +318,11 @@ - + - + sfix28_En16 @@ -378,29 +330,29 @@ - + - + - + - + - + - + @@ -412,6 +364,87 @@ + + + + + + + + + + + + + + + + + + [Vq_prev] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + Vq_Open + + + + + + + + @@ -424,11 +457,11 @@ - + - + -1 @@ -446,11 +479,11 @@ - + - + sfix28_En16 @@ -472,11 +505,11 @@ - + - + [Vq_Open] @@ -494,11 +527,11 @@ - + - + sfix16_En4 @@ -520,11 +553,11 @@ - + - + [Vq_prev] @@ -542,11 +575,11 @@ - + - + sfix16_En4 @@ -568,19 +601,19 @@ - + - + - + - + @@ -606,11 +639,11 @@ - + - + sfix16_En4 @@ -622,92 +655,43 @@ - - - + + + - - + + - - - - - - - [Vq_prev] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + 0 - - - - - - - - - - + + - + - - + + - + sfix28_En16 @@ -717,39 +701,6 @@ - - - - - - - - - - - - - - - - - - [Vq_Open] - - - - - - - - - - - - - - - @@ -762,11 +713,11 @@ - + - + default: { } @@ -784,11 +735,11 @@ - + - + Action Port @@ -800,44 +751,59 @@ - - - + + + - - + + - - + + - - 0 + + 1 - - + + + + + + + + + + + + + + + + + Vq_prev - - + + - - + + - - sfix28_En16 + + sfix16_En4 @@ -848,59 +814,93 @@ - - - + + + - - + + - - + + - - 1 + + [Vq_Open] - - + + - - - + + + + + + + + + + + + + + + + + + + + + + - - + + - - Vq_prev + + + + + + + + + + + + + + + + + - - + + - + - - sfix16_En4 + + sfix28_En16 @@ -1071,5 +1071,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9040_2342_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9040_2342_d.svg index 8542e14..d5844ad 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9040_2342_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9040_2342_d.svg @@ -15,7 +15,7 @@ - + @@ -444,7 +444,7 @@ - + @@ -693,32 +693,32 @@ - - - + + + - + - - Ini=initVal + + sfix28_En16 - - - + + + - + - - sfix28_En16 + + Ini=initVal @@ -853,5 +853,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9040_2395_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9040_2395_d.svg index 7791171..e7dd8c4 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9040_2395_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9040_2395_d.svg @@ -63,7 +63,7 @@ - + @@ -142,7 +142,7 @@ - + @@ -334,7 +334,7 @@ - + @@ -526,7 +526,7 @@ - + @@ -605,7 +605,7 @@ - + @@ -654,7 +654,7 @@ - + @@ -1009,16 +1009,16 @@ - + - + - + - + @@ -1103,10 +1103,10 @@ - + - + @@ -1176,5 +1176,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9040_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9040_d.json index c62d50d..be40f3b 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9040_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9040_d.json @@ -49,79 +49,11 @@ ] }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9040:2395", - "className":"Saturation Dynamic", - "icon":"WebViewIcon3", - "name":"Saturation Dynamic", - "label":"Saturation Dynamic", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9040", - "inspector":{ - "params":[ - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "RndMeth", - "DoSatur" - ], - "values":[ - "[]", - "[]", - "Inherit: Same as second input", - "off", - "Floor", - "off" - ], - "tabs":[ - ], - "tabs_idx":[ - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ContainerHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"SubSystem", - "masktype":"Saturation Dynamic" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9040:2342", - "className":"Simulink.SubSystem", - "icon":"WebViewIcon4", - "name":"Delay_Init1", - "label":"Delay_Init1", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9040", - "inspector":{ - "params":[ - "initVal" - ], - "values":[ - "0" - ], - "tabs":[ - ], - "tabs_idx":[ - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ContainerHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"SubSystem", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9040:2356", - "className":"Simulink.Inport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9040:2360", + "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"init", - "label":"init", + "name":"y", + "label":"y", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9040", "inspector":{ "params":[ @@ -137,14 +69,20 @@ "SampleTime", "SignalType", "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "3", + "1", "Port number", "[]", "[]", @@ -156,10 +94,17 @@ "-1", "auto", "off", - "", - "on", "off", + "[]", + "off", + "held", "off", + "0", + "", + [ + ], + "Dialog", + "Auto", "off" ], "tabs":[ @@ -179,7 +124,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", + "blocktype":"Outport", "masktype":"" } }, @@ -243,50 +188,42 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9040:2355", - "className":"Simulink.Inport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9040:2343", + "className":"Simulink.Sum", "icon":"WebViewIcon3", - "name":"initVal", - "label":"initVal", + "name":"Sum2", + "label":"Sum2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9040", "inspector":{ "params":[ - "Port", - "IconDisplay", + "IconShape", + "Inputs", + "InputSameDT", + "AccumDataTypeStr", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" + "RndMeth", + "SaturateOnIntegerOverflow", + "CollapseDim", + "CollapseMode", + "SampleTime" ], "values":[ - "2", - "Port number", + "rectangular", + "++", + "off", + "Inherit: Inherit via internal rule", "[]", "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "", - "on", + "Inherit: Same as first input", "off", + "Zero", "off", - "off" + "1", + "All dimensions", + "-1" ], "tabs":[ "Main", @@ -296,7 +233,7 @@ "tabs_idx":[ 0, 2, - 11 + 10 ] }, "viewer":{ @@ -305,16 +242,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", + "blocktype":"Sum", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9040:2360", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9040:2358", + "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"y", - "label":"y", + "name":"dec", + "label":"dec", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9040", "inspector":{ "params":[ @@ -330,20 +267,14 @@ "SampleTime", "SignalType", "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" ], "values":[ - "1", + "5", "Port number", "[]", "[]", @@ -355,17 +286,10 @@ "-1", "auto", "off", + "", + "on", "off", - "[]", - "off", - "held", "off", - "0", - "", - [ - ], - "Dialog", - "Auto", "off" ], "tabs":[ @@ -385,47 +309,84 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", + "blocktype":"Inport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9040:2343", - "className":"Simulink.Sum", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9040:2342", + "className":"Simulink.SubSystem", + "icon":"WebViewIcon4", + "name":"Delay_Init1", + "label":"Delay_Init1", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9040", + "inspector":{ + "params":[ + "initVal" + ], + "values":[ + "0" + ], + "tabs":[ + ], + "tabs_idx":[ + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ContainerHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"SubSystem", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9040:2357", + "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"Sum2", - "label":"Sum2", + "name":"inc", + "label":"inc", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9040", "inspector":{ "params":[ - "IconShape", - "Inputs", - "InputSameDT", - "AccumDataTypeStr", + "Port", + "IconDisplay", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", - "SampleTime" + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" ], "values":[ - "rectangular", - "++", - "off", - "Inherit: Inherit via internal rule", + "4", + "Port number", "[]", "[]", - "Inherit: Same as first input", + "Inherit: auto", "off", - "Zero", + "inherit", + "-1", + "Inherit", + "-1", + "auto", "off", - "1", - "All dimensions", - "-1" + "", + "on", + "off", + "off", + "off" ], "tabs":[ "Main", @@ -435,7 +396,7 @@ "tabs_idx":[ 0, 2, - 10 + 11 ] }, "viewer":{ @@ -444,16 +405,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Sum", + "blocktype":"Inport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9040:2359", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9040:2356", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"u", - "label":"u", + "name":"init", + "label":"init", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9040", "inspector":{ "params":[ @@ -476,7 +437,7 @@ "OutputFunctionCall" ], "values":[ - "1", + "3", "Port number", "[]", "[]", @@ -516,11 +477,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9040:2357", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9040:2355", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"inc", - "label":"inc", + "name":"initVal", + "label":"initVal", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9040", "inspector":{ "params":[ @@ -543,7 +504,7 @@ "OutputFunctionCall" ], "values":[ - "4", + "2", "Port number", "[]", "[]", @@ -583,11 +544,50 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9040:2358", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9040:2395", + "className":"Saturation Dynamic", + "icon":"WebViewIcon3", + "name":"Saturation Dynamic", + "label":"Saturation Dynamic", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9040", + "inspector":{ + "params":[ + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "RndMeth", + "DoSatur" + ], + "values":[ + "[]", + "[]", + "Inherit: Same as second input", + "off", + "Floor", + "off" + ], + "tabs":[ + ], + "tabs_idx":[ + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ContainerHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"SubSystem", + "masktype":"Saturation Dynamic" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9040:2359", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"dec", - "label":"dec", + "name":"u", + "label":"u", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9040", "inspector":{ "params":[ @@ -610,7 +610,7 @@ "OutputFunctionCall" ], "values":[ - "5", + "1", "Port number", "[]", "[]", diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9040_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9040_d.svg index c5f6694..431f550 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9040_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9040_d.svg @@ -48,107 +48,242 @@ - - - + + + - - + + - + - + - - + + 1 + + + + + + + + + + + + + + - - + + - - + + y + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + + + + + + + + + - + + + + + + + + + + + + + + + sfix28_En16 + + + + + + + + + + + + + + + + + + - - + + - - up + + - - + + - - u + + - - + + - - lo + + - - + + - - y + + - - + + - + - - + + + + + + sfix28_En16 + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + + + + + + + + + + + + + + + + + + + + + + dec + + + + + + + + + + + - + sfix28_En16 @@ -162,7 +297,7 @@ - + @@ -170,59 +305,59 @@ - + - + u - + - + initVal - + - + init - + - + y - + - + 1 - + - + z - + - + @@ -240,11 +375,11 @@ - + - + sfix28_En16 @@ -252,29 +387,29 @@ - + - + - + - + - + - + @@ -288,59 +423,59 @@ - - + + - + - + - - 3 + + 4 - + - - + + - - + + - - init + + inc - - + + - - + + - - boolean + + sfix28_En16 @@ -351,60 +486,59 @@ - - - + + + - - + + - - - - - - - - - - - - - - - - - - + + - - + + 3 - - + + + + + + + + + + + + + + + + + init - - + + - - + + - - sfix28_En16 + + boolean @@ -425,11 +559,11 @@ - + - + 2 @@ -447,11 +581,11 @@ - + - + initVal @@ -462,11 +596,11 @@ - + - + sfix28_En16 @@ -478,241 +612,107 @@ - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - y - - - - - - - - - - - - - + + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - + + - - - - - - - - - - - sfix28_En16 - + - - - - - - - - - - - - - - - - + + - - 1 - - - - - - - - - - - - - - + + up - - + + - - u - - - - - - - + + u - - + + - - sfix28_En16 + + lo - - - - - - - - - - - - - - - - - - - - + + - - 4 + + y - - - - - - - - - - - - - - - - - inc + + - + - + - + sfix28_En16 @@ -724,11 +724,11 @@ - - + + - + @@ -738,44 +738,44 @@ - - 5 + + 1 - + - - + + - + - - dec + + u - + - + - + sfix28_En16 @@ -953,5 +953,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9042_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9042_d.svg index 05ecf92..16e2737 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9042_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9042_d.svg @@ -232,5 +232,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9045_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9045_d.json index 16763bd..f416a1e 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9045_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9045_d.json @@ -477,11 +477,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9066", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9067", "className":"Simulink.Sum", "icon":"WebViewIcon3", - "name":"Sum1", - "label":"Sum1", + "name":"Sum6", + "label":"Sum6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9045", "inspector":{ "params":[ @@ -501,7 +501,7 @@ ], "values":[ "rectangular", - "++", + "-+", "off", "Inherit: Inherit via internal rule", "[]", @@ -536,11 +536,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9062", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9064", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto1", - "label":"Goto1", + "name":"Goto26", + "label":"Goto26", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9045", "inspector":{ "params":[ @@ -549,7 +549,7 @@ "IconDisplay" ], "values":[ - "r_cos", + "r_sin", "local", "Tag" ], @@ -569,11 +569,44 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9060", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9063", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto2", + "label":"Goto2", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9045", + "inspector":{ + "params":[ + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "i_apha", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9061", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From6", - "label":"From6", + "name":"From7", + "label":"From7", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9045", "inspector":{ "params":[ @@ -581,7 +614,7 @@ "IconDisplay" ], "values":[ - "i_beta", + "r_sin", "Tag" ], "tabs":[ @@ -631,11 +664,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9056", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9058", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From2", - "label":"From2", + "name":"From4", + "label":"From4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9045", "inspector":{ "params":[ @@ -662,11 +695,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9055", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9057", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From1", - "label":"From1", + "name":"From3", + "label":"From3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9045", "inspector":{ "params":[ @@ -674,7 +707,7 @@ "IconDisplay" ], "values":[ - "r_cos", + "i_beta", "Tag" ], "tabs":[ @@ -693,21 +726,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9065", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9055", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto3", - "label":"Goto3", + "name":"From1", + "label":"From1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9045", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "i_beta", - "local", + "r_cos", "Tag" ], "tabs":[ @@ -721,16 +752,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9054", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9060", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From", - "label":"From", + "name":"From6", + "label":"From6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9045", "inspector":{ "params":[ @@ -738,7 +769,7 @@ "IconDisplay" ], "values":[ - "r_sin", + "i_beta", "Tag" ], "tabs":[ @@ -757,51 +788,27 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9053", - "className":"Simulink.Product", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9062", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Divide4", - "label":"Divide4", + "name":"Goto1", + "label":"Goto1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9045", "inspector":{ "params":[ - "Inputs", - "Multiplication", - "InputSameDT", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", - "SampleTime" + "GotoTag", + "TagVisibility", + "IconDisplay" ], "values":[ - "**", - "Element-wise(.*)", - "off", - "[]", - "[]", - "Inherit: Same as first input", - "off", - "Simplest", - "off", - "1", - "All dimensions", - "-1" + "r_cos", + "local", + "Tag" ], "tabs":[ - "Main", - "Signal Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 2, - 9 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -809,7 +816,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Product", + "blocktype":"Goto", "masktype":"" } }, @@ -871,11 +878,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9064", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9065", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto26", - "label":"Goto26", + "name":"Goto3", + "label":"Goto3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9045", "inspector":{ "params":[ @@ -884,7 +891,7 @@ "IconDisplay" ], "values":[ - "r_sin", + "i_beta", "local", "Tag" ], @@ -904,42 +911,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9058", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From4", - "label":"From4", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9045", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "i_apha", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9051", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9050", "className":"Simulink.Product", "icon":"WebViewIcon3", - "name":"Divide2", - "label":"Divide2", + "name":"Divide1", + "label":"Divide1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9045", "inspector":{ "params":[ @@ -992,25 +968,53 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9057", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9066", + "className":"Simulink.Sum", "icon":"WebViewIcon3", - "name":"From3", - "label":"From3", + "name":"Sum1", + "label":"Sum1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9045", "inspector":{ "params":[ - "GotoTag", - "IconDisplay" + "IconShape", + "Inputs", + "InputSameDT", + "AccumDataTypeStr", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "RndMeth", + "SaturateOnIntegerOverflow", + "CollapseDim", + "CollapseMode", + "SampleTime" ], "values":[ - "i_beta", - "Tag" + "rectangular", + "++", + "off", + "Inherit: Inherit via internal rule", + "[]", + "[]", + "fixdt(1,16,4)", + "off", + "Simplest", + "on", + "1", + "All dimensions", + "-1" ], "tabs":[ - "Parameter Attributes" + "Main", + "Signal Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 2, + 10 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1018,32 +1022,56 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Sum", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9063", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9053", + "className":"Simulink.Product", "icon":"WebViewIcon3", - "name":"Goto2", - "label":"Goto2", + "name":"Divide4", + "label":"Divide4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9045", "inspector":{ "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" + "Inputs", + "Multiplication", + "InputSameDT", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "RndMeth", + "SaturateOnIntegerOverflow", + "CollapseDim", + "CollapseMode", + "SampleTime" ], "values":[ - "i_apha", - "local", - "Tag" + "**", + "Element-wise(.*)", + "off", + "[]", + "[]", + "Inherit: Same as first input", + "off", + "Simplest", + "off", + "1", + "All dimensions", + "-1" ], "tabs":[ - "Parameter Attributes" + "Main", + "Signal Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 2, + 9 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1051,16 +1079,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"Product", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9050", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9051", "className":"Simulink.Product", "icon":"WebViewIcon3", - "name":"Divide1", - "label":"Divide1", + "name":"Divide2", + "label":"Divide2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9045", "inspector":{ "params":[ @@ -1113,11 +1141,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9061", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9054", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From7", - "label":"From7", + "name":"From", + "label":"From", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9045", "inspector":{ "params":[ @@ -1144,53 +1172,25 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9067", - "className":"Simulink.Sum", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9056", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Sum6", - "label":"Sum6", + "name":"From2", + "label":"From2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9045", "inspector":{ "params":[ - "IconShape", - "Inputs", - "InputSameDT", - "AccumDataTypeStr", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", - "SampleTime" + "GotoTag", + "IconDisplay" ], "values":[ - "rectangular", - "-+", - "off", - "Inherit: Inherit via internal rule", - "[]", - "[]", - "fixdt(1,16,4)", - "off", - "Simplest", - "on", - "1", - "All dimensions", - "-1" + "i_apha", + "Tag" ], "tabs":[ - "Main", - "Signal Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 2, - 10 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1198,7 +1198,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Sum", + "blocktype":"From", "masktype":"" } }, diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9045_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9045_d.svg index 4cb97d1..689a584 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9045_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9045_d.svg @@ -412,67 +412,59 @@ - - - + + + - - + + - + - + - + - + - + - - - - - - - - - + - - + + - + - - + + - + sfix16_En4 @@ -484,28 +476,28 @@ - - + + - + - + - - [r_cos] + + [r_sin] - + @@ -517,44 +509,77 @@ - - + + + + + + + + + + + + + + + + [i_apha] + + + + + + + + + + + + + + + + + + + - + - + - - [i_beta] + + [r_sin] - + - - + + - - + + - - sfix16_En4 + + sfix16_En14 @@ -575,11 +600,11 @@ - + - + [r_cos] @@ -597,11 +622,11 @@ - + - + sfix16_En14 @@ -613,43 +638,43 @@ - - + + - + - + - + [i_apha] - + - + - - + + - + sfix16_En4 @@ -661,44 +686,44 @@ - - + + - + - + - - [r_cos] + + [i_beta] - + - - + + - - + + - - sfix16_En14 + + sfix16_En4 @@ -709,29 +734,44 @@ - - - + + + - - + + - - + + - - [i_beta] + + [r_cos] - - + + + + + + + + + + + + + + + + + sfix16_En14 @@ -742,44 +782,44 @@ - - + + - + - + - - [r_sin] + + [i_beta] - + - - + + - - + + - - sfix16_En14 + + sfix16_En4 @@ -790,52 +830,29 @@ - - - + + + - - + + - - - - - - - - - - + + - - + + [r_cos] - - - - - - - - - - - - - - - - - sfix16_En4 + + @@ -902,11 +919,11 @@ - - + + - + @@ -916,14 +933,14 @@ - - [r_sin] + + [i_beta] - + @@ -935,43 +952,51 @@ - - - + + + - - + + - + - - [i_apha] + + + + + + + + + + - - + + - + - - + + - + sfix16_En4 @@ -983,99 +1008,67 @@ - - - + + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - + + - - + + - - sfix16_En4 + + - - - - - - - - - - - - - - - - - - - + - - [i_beta] + + - - + + - + - + - + sfix16_En4 @@ -1087,29 +1080,52 @@ - - - + + + - - + + - + - - [i_apha] + + + + + + + + + + - - + + + + + + + + + + + + + + + + + sfix16_En4 @@ -1120,51 +1136,51 @@ - - + + - + - - + + - - + + - - + + - - + + - + - + - - + + - + sfix16_En4 @@ -1176,43 +1192,43 @@ - - + + - + - + - + [r_sin] - + - + - - + + - + sfix16_En14 @@ -1224,59 +1240,43 @@ - - - + + + - - + + - - - - - - - - - - - - - - - - - + - - + + [i_apha] - - + + - + - + - + sfix16_En4 @@ -1540,5 +1540,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9074_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9074_d.json index 663f5cf..3752ab0 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9074_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9074_d.json @@ -227,32 +227,42 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9102", - "className":"Simulink.Constant", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9101", + "className":"Simulink.Sum", "icon":"WebViewIcon3", - "name":"cf_iqKiLimProt", - "label":"cf_iqKiLimProt", + "name":"Sum3", + "label":"Sum3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9074", "inspector":{ "params":[ - "Value", - "VectorParams1D", - "SampleTime", + "IconShape", + "Inputs", + "InputSameDT", + "AccumDataTypeStr", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "FramePeriod" + "RndMeth", + "SaturateOnIntegerOverflow", + "CollapseDim", + "CollapseMode", + "SampleTime" ], "values":[ - "cf_iqKiLimProt", - "on", - "inf", + "round", + "|+-", + "off", + "Inherit: Inherit via internal rule", "[]", "[]", - "fixdt(0,16,16)", + "Inherit: Inherit via internal rule", "off", - "inf" + "Simplest", + "on", + "1", + "All dimensions", + "-1" ], "tabs":[ "Main", @@ -261,8 +271,8 @@ ], "tabs_idx":[ 0, - 3, - 7 + 2, + 10 ] }, "viewer":{ @@ -271,87 +281,33 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Constant", + "blocktype":"Sum", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9098", - "className":"Simulink.SubSystem", - "icon":"WebViewIcon9", - "name":"PI_backCalc_fixdt_n", - "label":"PI_backCalc_fixdt_n", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9099", + "className":"Saturation Dynamic", + "icon":"WebViewIcon3", + "name":"Saturation Dynamic1", + "label":"Saturation Dynamic1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9074", "inspector":{ "params":[ - "ShowPortLabels", - "BlockChoice", - "TemplateBlock", - "MemberBlocks", - "Permissions", - "ErrorFcn", - "PermitHierarchicalResolution", - "TreatAsAtomicUnit", - "MinAlgLoopOccurrences", - "PropExecContextOutsideSubsystem", - "SystemSampleTime", - "RTWSystemCode", - "RTWFcnNameOpts", - "RTWFcnName", - "RTWFileNameOpts", - "RTWFileName", - "FunctionInterfaceSpec", - "FunctionWithSeparateData", - "RTWMemSecFuncInitTerm", - "RTWMemSecFuncExecute", - "RTWMemSecDataConstants", - "RTWMemSecDataInternal", - "RTWMemSecDataParameters", - "IsSubsystemVirtual", - "Variant", - "VariantControl", - "OverrideUsingVariant", - "GeneratePreprocessorConditionals", - "AllowZeroVariantControls", - "PropagateVariantConditions", - "ActiveVariant", - "ActiveVariantBlock", - "TreatAsGroupedWhenPropagatingVariantConditions" + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "RndMeth", + "DoSatur" ], "values":[ - "FromPortIcon", - "", - "", - "", - "ReadWrite", - "", - "All", - "on", - "off", - "off", - "-1", - "Reusable function", - "Use subsystem name", - "", - "Auto", - "", - "void_void", - "off", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "off", - "off", - "", - "", - "off", - "off", + "[]", + "[]", + "Inherit: Same as second input", "off", - "", - "", - "on" + "Floor", + "off" ], "tabs":[ ], @@ -365,15 +321,15 @@ ], "finder":{ "blocktype":"SubSystem", - "masktype":"" + "masktype":"Saturation Dynamic" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9097", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9096", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto5", - "label":"Goto5", + "name":"Goto4", + "label":"Goto4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9074", "inspector":{ "params":[ @@ -382,7 +338,7 @@ "IconDisplay" ], "values":[ - "n_min", + "n_max", "local", "Tag" ], @@ -402,44 +358,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9100", - "className":"Simulink.SignalConversion", - "icon":"WebViewIcon3", - "name":"Signal Conversion2", - "label":"Signal Conversion2", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9074", - "inspector":{ - "params":[ - "ConversionOutput", - "OutDataTypeStr", - "OverrideOpt" - ], - "values":[ - "Signal copy", - "Inherit: auto", - "off" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"SignalConversion", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9096", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9093", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto4", - "label":"Goto4", + "name":"Goto2", + "label":"Goto2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9074", "inspector":{ "params":[ @@ -448,7 +371,7 @@ "IconDisplay" ], "values":[ - "n_max", + "Vq_min", "local", "Tag" ], @@ -468,84 +391,95 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9103", - "className":"Simulink.Constant", - "icon":"WebViewIcon3", - "name":"cf_nKb", - "label":"cf_nKb", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9098", + "className":"Simulink.SubSystem", + "icon":"WebViewIcon9", + "name":"PI_backCalc_fixdt_n", + "label":"PI_backCalc_fixdt_n", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9074", "inspector":{ "params":[ - "Value", - "VectorParams1D", - "SampleTime", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "FramePeriod" + "ShowPortLabels", + "BlockChoice", + "TemplateBlock", + "MemberBlocks", + "Permissions", + "ErrorFcn", + "PermitHierarchicalResolution", + "TreatAsAtomicUnit", + "MinAlgLoopOccurrences", + "PropExecContextOutsideSubsystem", + "SystemSampleTime", + "RTWSystemCode", + "RTWFcnNameOpts", + "RTWFcnName", + "RTWFileNameOpts", + "RTWFileName", + "FunctionInterfaceSpec", + "FunctionWithSeparateData", + "RTWMemSecFuncInitTerm", + "RTWMemSecFuncExecute", + "RTWMemSecDataConstants", + "RTWMemSecDataInternal", + "RTWMemSecDataParameters", + "IsSubsystemVirtual", + "Variant", + "VariantControl", + "OverrideUsingVariant", + "GeneratePreprocessorConditionals", + "AllowZeroVariantControls", + "PropagateVariantConditions", + "ActiveVariant", + "ActiveVariantBlock", + "TreatAsGroupedWhenPropagatingVariantConditions" ], "values":[ - "cf_nKb", + "FromPortIcon", + "", + "", + "", + "ReadWrite", + "", + "All", "on", - "inf", - "[]", - "[]", - "fixdt(0,16,16)", "off", - "inf" + "off", + "-1", + "Reusable function", + "Use subsystem name", + "", + "Auto", + "", + "void_void", + "off", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "off", + "off", + "", + "", + "off", + "off", + "off", + "", + "", + "on" ], "tabs":[ - "Main", - "Signal Attributes", - "-Other" ], "tabs_idx":[ - 0, - 3, - 7 ] }, "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Constant", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9092", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto13", - "label":"Goto13", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9074", - "inspector":{ - "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" - ], - "values":[ - "r_inpTgtSca", - "local", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" + "jshandler":"webview/handlers/ContainerHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"SubSystem", "masktype":"" } }, @@ -614,53 +548,27 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9101", - "className":"Simulink.Sum", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9100", + "className":"Simulink.SignalConversion", "icon":"WebViewIcon3", - "name":"Sum3", - "label":"Sum3", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9074", - "inspector":{ - "params":[ - "IconShape", - "Inputs", - "InputSameDT", - "AccumDataTypeStr", - "OutMin", - "OutMax", + "name":"Signal Conversion2", + "label":"Signal Conversion2", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9074", + "inspector":{ + "params":[ + "ConversionOutput", "OutDataTypeStr", - "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", - "SampleTime" + "OverrideOpt" ], "values":[ - "round", - "|+-", - "off", - "Inherit: Inherit via internal rule", - "[]", - "[]", - "Inherit: Inherit via internal rule", - "off", - "Simplest", - "on", - "1", - "All dimensions", - "-1" + "Signal copy", + "Inherit: auto", + "off" ], "tabs":[ - "Main", - "Signal Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 2, - 10 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -668,26 +576,24 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Sum", + "blocktype":"SignalConversion", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9095", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9089", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto31", - "label":"Goto31", + "name":"From38", + "label":"From38", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9074", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "iq_limProt", - "local", + "Vq_max", "Tag" ], "tabs":[ @@ -701,7 +607,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, @@ -737,21 +643,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9094", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9084", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto3", - "label":"Goto3", + "name":"From1", + "label":"From1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9074", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "n_mot", - "local", + "iq_limProt", "Tag" ], "tabs":[ @@ -765,7 +669,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, @@ -858,11 +762,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9084", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9086", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From1", - "label":"From1", + "name":"From20", + "label":"From20", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9074", "inspector":{ "params":[ @@ -870,7 +774,7 @@ "IconDisplay" ], "values":[ - "iq_limProt", + "n_min", "Tag" ], "tabs":[ @@ -889,75 +793,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9093", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto2", - "label":"Goto2", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9074", - "inspector":{ - "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" - ], - "values":[ - "Vq_min", - "local", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Goto", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9082", - "className":"Simulink.ActionPort", - "icon":"WebViewIcon3", - "name":"Action Port", - "label":"Action Port", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9074", - "inspector":{ - "params":[ - "InitializeStates", - "PropagateVarSize" - ], - "values":[ - "reset", - "Only when execution is resumed" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"ActionPort", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9081", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9080", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"iq_limProt", - "label":"iq_limProt", + "name":"n_min", + "label":"n_min", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9074", "inspector":{ "params":[ @@ -980,7 +820,7 @@ "OutputFunctionCall" ], "values":[ - "7", + "6", "Port number", "[]", "[]", @@ -1087,11 +927,44 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9078", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9092", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto13", + "label":"Goto13", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9074", + "inspector":{ + "params":[ + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "r_inpTgtSca", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9081", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"n_mot", - "label":"n_mot", + "name":"iq_limProt", + "label":"iq_limProt", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9074", "inspector":{ "params":[ @@ -1114,7 +987,7 @@ "OutputFunctionCall" ], "values":[ - "4", + "7", "Port number", "[]", "[]", @@ -1154,73 +1027,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9089", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From38", - "label":"From38", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9074", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "Vq_max", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9085", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From16", - "label":"From16", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9074", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "n_max", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9077", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9078", "className":"Simulink.Inport", - "icon":"WebViewIcon3", - "name":"Vq_min", - "label":"Vq_min", + "icon":"WebViewIcon3", + "name":"n_mot", + "label":"n_mot", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9074", "inspector":{ "params":[ @@ -1243,7 +1054,7 @@ "OutputFunctionCall" ], "values":[ - "3", + "4", "Port number", "[]", "[]", @@ -1283,11 +1094,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9076", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9077", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"Vq_max", - "label":"Vq_max", + "name":"Vq_min", + "label":"Vq_min", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9074", "inspector":{ "params":[ @@ -1310,7 +1121,7 @@ "OutputFunctionCall" ], "values":[ - "2", + "3", "Port number", "[]", "[]", @@ -1350,25 +1161,43 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9086", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9103", + "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"From20", - "label":"From20", + "name":"cf_nKb", + "label":"cf_nKb", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9074", "inspector":{ "params":[ - "GotoTag", - "IconDisplay" + "Value", + "VectorParams1D", + "SampleTime", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "FramePeriod" ], "values":[ - "n_min", - "Tag" + "cf_nKb", + "on", + "inf", + "[]", + "[]", + "fixdt(0,16,16)", + "off", + "inf" ], "tabs":[ - "Parameter Attributes" + "Main", + "Signal Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 3, + 7 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1376,16 +1205,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Constant", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9080", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9076", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"n_min", - "label":"n_min", + "name":"Vq_max", + "label":"Vq_max", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9074", "inspector":{ "params":[ @@ -1408,7 +1237,7 @@ "OutputFunctionCall" ], "values":[ - "6", + "2", "Port number", "[]", "[]", @@ -1448,42 +1277,182 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9099", - "className":"Saturation Dynamic", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9097", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Saturation Dynamic1", - "label":"Saturation Dynamic1", + "name":"Goto5", + "label":"Goto5", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9074", + "inspector":{ + "params":[ + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "n_min", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9082", + "className":"Simulink.ActionPort", + "icon":"WebViewIcon3", + "name":"Action Port", + "label":"Action Port", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9074", + "inspector":{ + "params":[ + "InitializeStates", + "PropagateVarSize" + ], + "values":[ + "reset", + "Only when execution is resumed" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"ActionPort", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9094", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto3", + "label":"Goto3", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9074", + "inspector":{ + "params":[ + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "n_mot", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9102", + "className":"Simulink.Constant", + "icon":"WebViewIcon3", + "name":"cf_iqKiLimProt", + "label":"cf_iqKiLimProt", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9074", "inspector":{ "params":[ + "Value", + "VectorParams1D", + "SampleTime", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "RndMeth", - "DoSatur" + "FramePeriod" ], "values":[ + "cf_iqKiLimProt", + "on", + "inf", "[]", "[]", - "Inherit: Same as second input", + "fixdt(0,16,16)", "off", - "Floor", - "off" + "inf" ], "tabs":[ + "Main", + "Signal Attributes", + "-Other" ], "tabs_idx":[ + 0, + 3, + 7 ] }, "viewer":{ - "jshandler":"webview/handlers/ContainerHandler" + "jshandler":"webview/handlers/ElementHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"SubSystem", - "masktype":"Saturation Dynamic" + "blocktype":"Constant", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9095", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto31", + "label":"Goto31", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9074", + "inspector":{ + "params":[ + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "iq_limProt", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", + "masktype":"" } }, { @@ -1553,6 +1522,37 @@ "masktype":"" } }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9085", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From16", + "label":"From16", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9074", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "n_max", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9090#out:1", "className":"Simulink.Line", diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9074_d.png b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9074_d.png index 3e8f6d9b24d738c9f0721ca8320d500ed915504a..2669637015faa6c8d01338587ade38c19a634353 100644 GIT binary patch literal 5237 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 F{0~L=hj9P^ literal 5225 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 F{ttC^f~Wuh diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9074_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9074_d.svg index 0514b38..785b81d 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9074_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9074_d.svg @@ -184,59 +184,238 @@ - - - + + + - - + + - + - - cf_iqKiLimProt + + + + + + + + + + + + + + + + + + - - + + - - - + + + - - + + - - cf_iqKiLimProt + + sfix16_En4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + up + + + + + + + + u + + + + + + + + lo + + + + + + + + y + + + + + + + - - + + - - + + - - ufix16_En16 + + sfix16_En4 + + + + + + + + + + + + + + + + + + + + + + + + + + [n_max] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [Vq_min] + + + + + + + @@ -257,75 +436,75 @@ - + - + err - + - + P - + - + I - + - + Kb - + - + ext_limProt - + - + satMax - + - + satMin - + - + out - + - + PI(z) @@ -343,11 +522,11 @@ - + - + PI_backCalc_fixdt_n @@ -358,11 +537,11 @@ - + - + sfix16_En4 @@ -370,29 +549,29 @@ - + - + - + - + - + - + @@ -406,28 +585,28 @@ - - + + - + - + - - [n_min] + + [Vq_max] - + @@ -439,141 +618,189 @@ - - - + + + - - + + - + - - + + - - + + [Vq_min] - - - - - - - + + + + + + - - - + + + + + + + + + + - + + sfix16_En4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -599,11 +826,11 @@ - + - + sfix16_En4 @@ -615,190 +842,43 @@ - - - - - - - - - - - - - - - - [n_max] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - cf_nKb - - - - - - - - - - - - - - - - - - - - - - ufix16_En16 - - - - - - - - - - - - - - - - - - - - - - - - - - [r_inpTgtSca] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Vq_max] - - - - - - - - - - - - - - - - - - - + + - + - + - - [Vq_min] + + [Vq_max] - + - + - - + + - + sfix16_En4 @@ -810,59 +890,43 @@ - - - + + + - - + + - - - - - - - - - - - - - - - - - - + + - - + + [r_inpTgtSca] - - + + - + - - + + - + sfix16_En4 @@ -874,76 +938,43 @@ - - - - - - - - - - - - - - - - [iq_limProt] - - - - - - - - - - - - - - - - - - - + + - + - + - - [r_inpTgtSca] + + [iq_limProt] - + - + - - + + - + sfix16_En4 @@ -953,39 +984,6 @@ - - - - - - - - - - - - - - - - - - [n_mot] - - - - - - - - - - - - - - - @@ -998,11 +996,11 @@ - + - + [n_mot] @@ -1020,11 +1018,11 @@ - + - + sfix16_En4 @@ -1046,123 +1044,42 @@ - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - sfix16_En10 - - - - - - - - - - - - - - - - - - - - - - - - - - [iq_limProt] - - - - - - - - - - - - - - - - - - - - - - sfix16_En4 - - - - - - - - - - - - - - - - - - - + + + + - - + + - - [Vq_min] + + - - + + + + + + + + + + + + + + + + + sfix16_En10 @@ -1173,44 +1090,44 @@ - - - + + + - - + + - - + + - - case: { } + + [n_min] - - + + - - - + + + - - + + - - Action Port + + sfix16_En4 @@ -1221,58 +1138,58 @@ - - + + - + - + - - 7 + + 6 - + - - + + - - + + - - iq_limProt + + n_min - + - - + + - + sfix16_En4 @@ -1294,11 +1211,11 @@ - + - + 5 @@ -1316,11 +1233,11 @@ - + - + n_max @@ -1331,11 +1248,11 @@ - + - + sfix16_En4 @@ -1347,59 +1264,29 @@ - - - + + + - - + + - - + + - - 4 + + [r_inpTgtSca] - - - - - - - - - - - - - - - - - n_mot - - - - - - - - - - - - - - - sfix16_En4 + + @@ -1410,43 +1297,58 @@ - - - + + + - - + + - - + + - - [Vq_max] + + 7 - - + + + + + + + + + + + + + + + + + iq_limProt - + - - + + - + sfix16_En4 @@ -1458,43 +1360,58 @@ - - - + + + - - + + - - + + - - [n_max] + + 4 - - + + + + + + + + + + + + + + + + + n_mot - + - - + + - + sfix16_En4 @@ -1516,11 +1433,11 @@ - + - + 3 @@ -1538,11 +1455,11 @@ - + - + Vq_min @@ -1553,12 +1470,60 @@ - - + + + + + + sfix16_En4 + + + + + + + + + + + + + + + + + + + + + + + + + + cf_nKb + + + + + + + + + + + + + + + + + + - - sfix16_En4 + + ufix16_En16 @@ -1579,11 +1544,11 @@ - + - + 2 @@ -1601,11 +1566,11 @@ - + - + Vq_max @@ -1616,11 +1581,11 @@ - + - + sfix16_En4 @@ -1632,44 +1597,29 @@ - - - + + + - - + + - - + + - + [n_min] - - - - - - - - - - - - - - - - - sfix16_En4 + + @@ -1680,59 +1630,77 @@ - - - + + + - - + + - - + + - - 6 + + case: { } - - + + - - + + - - + + - - n_min + + Action Port - - - - + + + + + + + + + + + + + + + - - + + - - sfix16_En4 + + [n_mot] + + + + + + + @@ -1743,108 +1711,92 @@ - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + cf_iqKiLimProt - + + + + - - - - - - - - up + + + - - + + - - u + + cf_iqKiLimProt - - - - - - - lo + + + + + + - - + + - - y + + ufix16_En16 - - - - - + + + + + + + + + + + + - - - - + - - + + - - sfix16_En4 + + [iq_limProt] + + + + + + + @@ -1865,11 +1817,11 @@ - + - + 1 @@ -1887,11 +1839,11 @@ - + - + r_inpTgtSca @@ -1902,11 +1854,59 @@ - + - + + sfix16_En4 + + + + + + + + + + + + + + + + + + + + + + + + + + [n_max] + + + + + + + + + + + + + + + + + + + + + sfix16_En4 @@ -2240,5 +2240,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9098_2275_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9098_2275_d.json index a0e3c00..bd7dca8 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9098_2275_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9098_2275_d.json @@ -80,43 +80,52 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2528", - "className":"Simulink.UnitDelay", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2279", + "className":"Simulink.Sum", "icon":"WebViewIcon3", - "name":"UnitDelay", - "label":"UnitDelay", + "name":"Sum1", + "label":"Sum1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2275", "inspector":{ "params":[ - "InitialCondition", - "InputProcessing", - "SampleTime", - "StateName", - "CodeGenStateStorageTypeQualifier", - "StateMustResolveToSignalObject", - "StateSignalObject", - "StateStorageClass" + "IconShape", + "Inputs", + "InputSameDT", + "AccumDataTypeStr", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "RndMeth", + "SaturateOnIntegerOverflow", + "CollapseDim", + "CollapseMode", + "SampleTime" ], "values":[ - "0", - "Inherited", - "-1", - "", - "", + "round", + "|++", "off", - [ - ], - "Auto" + "Inherit: Same as first input", + "[]", + "[]", + "Inherit: Same as first input", + "off", + "Simplest", + "off", + "1", + "All dimensions", + "-1" ], "tabs":[ "Main", - "State Attributes", + "Signal Attributes", "-Other" ], "tabs_idx":[ 0, - 3, - 4 + 2, + 10 ] }, "viewer":{ @@ -125,57 +134,95 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"UnitDelay", + "blocktype":"Sum", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2279", - "className":"Simulink.Sum", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2697", + "className":"Simulink.DataTypeConversion", "icon":"WebViewIcon3", - "name":"Sum1", - "label":"Sum1", + "name":"Data Type Conversion1", + "label":"Data Type Conversion1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2275", "inspector":{ "params":[ - "IconShape", - "Inputs", - "InputSameDT", - "AccumDataTypeStr", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", + "ConvertRealWorld", "RndMeth", "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", "SampleTime" ], "values":[ - "round", - "|++", - "off", - "Inherit: Same as first input", "[]", "[]", - "Inherit: Same as first input", + "fixdt(1,16,4)", "off", - "Simplest", + "Real World Value (RWV)", + "Floor", "off", - "1", - "All dimensions", "-1" ], + "tabs":[ + "Parameter Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 7 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"DataTypeConversion", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2528", + "className":"Simulink.UnitDelay", + "icon":"WebViewIcon3", + "name":"UnitDelay", + "label":"UnitDelay", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2275", + "inspector":{ + "params":[ + "InitialCondition", + "InputProcessing", + "SampleTime", + "StateName", + "CodeGenStateStorageTypeQualifier", + "StateMustResolveToSignalObject", + "StateSignalObject", + "StateStorageClass" + ], + "values":[ + "0", + "Inherited", + "-1", + "", + "", + "off", + [ + ], + "Auto" + ], "tabs":[ "Main", - "Signal Attributes", + "State Attributes", "-Other" ], "tabs_idx":[ 0, - 2, - 10 + 3, + 4 ] }, "viewer":{ @@ -184,7 +231,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Sum", + "blocktype":"UnitDelay", "masktype":"" } }, @@ -255,53 +302,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2697", - "className":"Simulink.DataTypeConversion", - "icon":"WebViewIcon3", - "name":"Data Type Conversion1", - "label":"Data Type Conversion1", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2275", - "inspector":{ - "params":[ - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "ConvertRealWorld", - "RndMeth", - "SaturateOnIntegerOverflow", - "SampleTime" - ], - "values":[ - "[]", - "[]", - "fixdt(1,16,4)", - "off", - "Real World Value (RWV)", - "Floor", - "off", - "-1" - ], - "tabs":[ - "Parameter Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 7 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"DataTypeConversion", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2697#out:1", "className":"Simulink.Line", diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9098_2275_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9098_2275_d.svg index ee95d1e..a241ba3 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9098_2275_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9098_2275_d.svg @@ -61,91 +61,132 @@ - - - + + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + + + + - + + + + + + + + + + + sfix32_En20 + - - - - - + + + + + + + + + + + + - - - + + + + + + + + - - + + - - sfix32_En20 + + + + + + - - + + + + + + + + + + + + + - - + + - - Ini=0 + + sfix16_En4 @@ -156,67 +197,90 @@ - - - + + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + - - + + + + + + + + + + + + + + + + + Ini=0 - - + + - - + + - + sfix32_En20 @@ -238,11 +302,11 @@ - + - + 1 @@ -260,11 +324,11 @@ - + - + u @@ -275,11 +339,11 @@ - + - + sfix32_En20 @@ -289,70 +353,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - sfix16_En4 - - - - - - - - @@ -431,5 +431,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9098_2282_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9098_2282_d.svg index 0ec5ad8..bdc648f 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9098_2282_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9098_2282_d.svg @@ -63,7 +63,7 @@ - + @@ -1009,15 +1009,15 @@ - - - + + + @@ -1103,10 +1103,10 @@ - + - + @@ -1176,5 +1176,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9098_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9098_d.json index 76f3d20..ec796d8 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9098_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9098_d.json @@ -1,4 +1,84 @@ [ + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2290", + "className":"Simulink.Outport", + "icon":"WebViewIcon3", + "name":"out", + "label":"out", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9098", + "inspector":{ + "params":[ + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" + ], + "values":[ + "1", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "off", + "[]", + "off", + "held", + "off", + "0", + "", + [ + ], + "Dialog", + "Auto", + "off" + ], + "tabs":[ + "Main", + "Signal Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 2, + 11 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Outport", + "masktype":"" + } + }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2527", "className":"Simulink.UnitDelay", @@ -108,6 +188,65 @@ "masktype":"" } }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2285", + "className":"Simulink.Sum", + "icon":"WebViewIcon3", + "name":"Sum6", + "label":"Sum6", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9098", + "inspector":{ + "params":[ + "IconShape", + "Inputs", + "InputSameDT", + "AccumDataTypeStr", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "RndMeth", + "SaturateOnIntegerOverflow", + "CollapseDim", + "CollapseMode", + "SampleTime" + ], + "values":[ + "rectangular", + "++", + "off", + "Inherit: Inherit via internal rule", + "[]", + "[]", + "fixdt(1,16,4)", + "off", + "Simplest", + "on", + "1", + "All dimensions", + "-1" + ], + "tabs":[ + "Main", + "Signal Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 2, + 10 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Sum", + "masktype":"" + } + }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2275", "className":"Simulink.SubSystem", @@ -206,68 +345,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2272", - "className":"Simulink.Product", - "icon":"WebViewIcon3", - "name":"Divide1", - "label":"Divide1", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9098", - "inspector":{ - "params":[ - "Inputs", - "Multiplication", - "InputSameDT", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", - "SampleTime" - ], - "values":[ - "**", - "Element-wise(.*)", - "off", - "[]", - "[]", - "Inherit: Inherit via internal rule", - "off", - "Simplest", - "on", - "1", - "All dimensions", - "-1" - ], - "tabs":[ - "Main", - "Signal Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 2, - 9 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Product", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2285", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2284", "className":"Simulink.Sum", "icon":"WebViewIcon3", - "name":"Sum6", - "label":"Sum6", + "name":"Sum2", + "label":"Sum2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9098", "inspector":{ "params":[ @@ -287,12 +369,12 @@ ], "values":[ "rectangular", - "++", + "+++", "off", "Inherit: Inherit via internal rule", "[]", "[]", - "fixdt(1,16,4)", + "Inherit: Inherit via internal rule", "off", "Simplest", "on", @@ -322,70 +404,42 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2253", - "className":"Simulink.Inport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2282", + "className":"Saturation Dynamic", "icon":"WebViewIcon3", - "name":"satMax", - "label":"satMax", + "name":"Saturation Dynamic1", + "label":"Saturation Dynamic1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9098", "inspector":{ "params":[ - "Port", - "IconDisplay", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" + "RndMeth", + "DoSatur" ], "values":[ - "6", - "Port number", "[]", "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "", - "on", - "off", + "Inherit: Same as second input", "off", + "Floor", "off" ], "tabs":[ - "Main", - "Signal Attributes", - "-Other" ], "tabs_idx":[ - 0, - 2, - 11 ] }, "viewer":{ - "jshandler":"webview/handlers/ElementHandler" + "jshandler":"webview/handlers/ContainerHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", - "masktype":"" + "blocktype":"SubSystem", + "masktype":"Saturation Dynamic" } }, { @@ -446,50 +500,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2282", - "className":"Saturation Dynamic", - "icon":"WebViewIcon3", - "name":"Saturation Dynamic1", - "label":"Saturation Dynamic1", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9098", - "inspector":{ - "params":[ - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "RndMeth", - "DoSatur" - ], - "values":[ - "[]", - "[]", - "Inherit: Same as second input", - "off", - "Floor", - "off" - ], - "tabs":[ - ], - "tabs_idx":[ - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ContainerHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"SubSystem", - "masktype":"Saturation Dynamic" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2273", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2272", "className":"Simulink.Product", "icon":"WebViewIcon3", - "name":"Divide4", - "label":"Divide4", + "name":"Divide1", + "label":"Divide1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9098", "inspector":{ "params":[ @@ -512,7 +527,7 @@ "off", "[]", "[]", - "fixdt(1,16,5)", + "Inherit: Inherit via internal rule", "off", "Simplest", "on", @@ -609,63 +624,40 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2290", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2273", + "className":"Simulink.Product", "icon":"WebViewIcon3", - "name":"out", - "label":"out", + "name":"Divide4", + "label":"Divide4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9098", "inspector":{ "params":[ - "Port", - "IconDisplay", + "Inputs", + "Multiplication", + "InputSameDT", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" + "RndMeth", + "SaturateOnIntegerOverflow", + "CollapseDim", + "CollapseMode", + "SampleTime" ], "values":[ - "1", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", + "**", + "Element-wise(.*)", "off", "[]", + "[]", + "fixdt(1,16,5)", "off", - "held", - "off", - "0", - "", - [ - ], - "Dialog", - "Auto", - "off" + "Simplest", + "on", + "1", + "All dimensions", + "-1" ], "tabs":[ "Main", @@ -675,7 +667,7 @@ "tabs_idx":[ 0, 2, - 11 + 9 ] }, "viewer":{ @@ -684,47 +676,55 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", + "blocktype":"Product", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2284", - "className":"Simulink.Sum", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2253", + "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"Sum2", - "label":"Sum2", + "name":"satMax", + "label":"satMax", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9098", "inspector":{ "params":[ - "IconShape", - "Inputs", - "InputSameDT", - "AccumDataTypeStr", + "Port", + "IconDisplay", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", - "SampleTime" + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" ], "values":[ - "rectangular", - "+++", - "off", - "Inherit: Inherit via internal rule", + "6", + "Port number", "[]", "[]", - "Inherit: Inherit via internal rule", + "Inherit: auto", "off", - "Simplest", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "", "on", - "1", - "All dimensions", - "-1" + "off", + "off", + "off" ], "tabs":[ "Main", @@ -734,7 +734,7 @@ "tabs_idx":[ 0, 2, - 10 + 11 ] }, "viewer":{ @@ -743,7 +743,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Sum", + "blocktype":"Inport", "masktype":"" } }, @@ -882,11 +882,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2251", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2396", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"P", - "label":"P", + "name":"ext_limProt", + "label":"ext_limProt", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9098", "inspector":{ "params":[ @@ -909,7 +909,7 @@ "OutputFunctionCall" ], "values":[ - "2", + "5", "Port number", "[]", "[]", @@ -949,11 +949,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2396", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9098:2251", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"ext_limProt", - "label":"ext_limProt", + "name":"P", + "label":"P", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9098", "inspector":{ "params":[ @@ -976,7 +976,7 @@ "OutputFunctionCall" ], "values":[ - "5", + "2", "Port number", "[]", "[]", diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9098_d.png b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9098_d.png index b66d6f9d9c1ebf1c61db7985902afcb0fc690ebd..159247878c90b6f0ed22686372a5ae077e709b90 100644 GIT binary patch literal 6954 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 literal 6949 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 I%3DPI2foUPWdHyG diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9098_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9098_d.svg index a04497e..7ff3a5b 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9098_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9098_d.svg @@ -10,6 +10,54 @@ + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + out + + + + + + + @@ -23,35 +71,35 @@ - + - + - + - + - + - + - + - + @@ -72,32 +120,32 @@ - - - + + + - - + + - - Ini=0 + + sfix32_En20 - - - + + + - - + + - - sfix32_En20 + + Ini=0 @@ -118,27 +166,27 @@ - + - + - + - + - + - + @@ -156,11 +204,83 @@ - + - + + sfix16_En4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + sfix16_En4 @@ -188,19 +308,19 @@ - + - + u - + - + y @@ -230,11 +350,11 @@ - + - + Integrator @@ -251,11 +371,11 @@ - + - + sfix16_En4 @@ -267,248 +387,89 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - sfix32_En20 - - - - - - - - - - - - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - + + - - - - - - - sfix16_En4 - - - - - - - - - - - - - - - - - - - - + - - 6 - - - - - - - - - - - - - - + + - + - - satMax - - - - - - - + + - + - - sfix16_En4 + + - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + sfix32_En20 @@ -530,35 +491,35 @@ - + - + - + - + - + - + - + - + @@ -570,35 +531,35 @@ - + - + up - + - + u - + - + lo - + - + y @@ -616,11 +577,11 @@ - + - + sfix16_En4 @@ -632,52 +593,108 @@ - - - + + + - - + + + + + + + + + + - + - + + + + + + + + + + + + + + + - + - - + + sfix32_En20 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - + + - - sfix16_En5 + + sfix32_En20 @@ -698,11 +715,11 @@ - + - + 7 @@ -720,11 +737,11 @@ - + - + satMin @@ -735,11 +752,11 @@ - + - + sfix16_En4 @@ -751,44 +768,52 @@ - - - + + + - - + + - - + + - - 1 + + + + + + + + + + - - + + - - - + + + - - + + - - out + + sfix16_En5 @@ -799,84 +824,59 @@ - - - + + + - - + + - - - - - - - - - - - - - - - - - - + + - - + + 6 - - - - - - - + + + + + + - - - - - - - + + + + + + - + - - - - - - - - - + + satMax - - + + - + - - sfix32_En20 + + sfix16_En4 @@ -1013,11 +1013,11 @@ - - + + - + @@ -1027,45 +1027,45 @@ - - 2 + + 5 - + - - + + - + - - P + + ext_limProt - - + + - + - - ufix16_En12 + + sfix16_En10 @@ -1076,11 +1076,11 @@ - - + + - + @@ -1090,45 +1090,45 @@ - - 5 + + 2 - + - - + + - + - - ext_limProt + + P - - + + - + - - sfix16_En10 + + ufix16_En12 @@ -1486,5 +1486,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9099_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9099_d.svg index da35118..bfe4ff9 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9099_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9099_d.svg @@ -63,7 +63,7 @@ - + @@ -142,7 +142,7 @@ - + @@ -334,7 +334,7 @@ - + @@ -526,7 +526,7 @@ - + @@ -605,7 +605,7 @@ - + @@ -654,7 +654,7 @@ - + @@ -1009,16 +1009,16 @@ - + - + - + @@ -1103,10 +1103,10 @@ - + - + @@ -1176,5 +1176,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9109_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9109_d.json index 5462bd1..5add691 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9109_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9109_d.json @@ -1,31 +1,62 @@ [ { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9140", - "className":"Simulink.Constant", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9141", + "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"constant", - "label":"constant", + "name":"Vq_Trq", + "label":"Vq_Trq", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", "inspector":{ "params":[ - "Value", - "VectorParams1D", - "SampleTime", + "Port", + "IconDisplay", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "FramePeriod" + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "0", - "on", - "inf", + "1", + "Port number", "[]", "[]", - "Inherit: Inherit via back propagation", + "Inherit: auto", "off", - "inf" + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "off", + "[]", + "off", + "held", + "off", + "0", + "", + [ + ], + "Dialog", + "Auto", + "off" ], "tabs":[ "Main", @@ -34,8 +65,8 @@ ], "tabs_idx":[ 0, - 3, - 7 + 2, + 11 ] }, "viewer":{ @@ -44,7 +75,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Constant", + "blocktype":"Outport", "masktype":"" } }, @@ -98,11 +129,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9138", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9137", "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"cf_iqKi", - "label":"cf_iqKi", + "name":"cf_iqKb", + "label":"cf_iqKb", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", "inspector":{ "params":[ @@ -116,7 +147,7 @@ "FramePeriod" ], "values":[ - "cf_iqKi", + "cf_iqKb", "on", "inf", "[]", @@ -147,43 +178,27 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9137", - "className":"Simulink.Constant", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9134", + "className":"Simulink.SignalConversion", "icon":"WebViewIcon3", - "name":"cf_iqKb", - "label":"cf_iqKb", + "name":"Signal Conversion2", + "label":"Signal Conversion2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", "inspector":{ "params":[ - "Value", - "VectorParams1D", - "SampleTime", - "OutMin", - "OutMax", + "ConversionOutput", "OutDataTypeStr", - "LockScale", - "FramePeriod" + "OverrideOpt" ], "values":[ - "cf_iqKb", - "on", - "inf", - "[]", - "[]", - "fixdt(0,16,16)", - "off", - "inf" + "Signal copy", + "Inherit: auto", + "off" ], "tabs":[ - "Main", - "Signal Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 3, - 7 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -191,47 +206,37 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Constant", + "blocktype":"SignalConversion", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9135", - "className":"Simulink.Sum", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9138", + "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"Sum1", - "label":"Sum1", + "name":"cf_iqKi", + "label":"cf_iqKi", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", "inspector":{ "params":[ - "IconShape", - "Inputs", - "InputSameDT", - "AccumDataTypeStr", + "Value", + "VectorParams1D", + "SampleTime", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", - "SampleTime" + "FramePeriod" ], "values":[ - "round", - "|+-", - "off", - "Inherit: Inherit via internal rule", + "cf_iqKi", + "on", + "inf", "[]", "[]", - "Inherit: Inherit via internal rule", + "fixdt(0,16,16)", "off", - "Simplest", - "on", - "1", - "All dimensions", - "-1" + "inf" ], "tabs":[ "Main", @@ -240,8 +245,8 @@ ], "tabs_idx":[ 0, - 2, - 10 + 3, + 7 ] }, "viewer":{ @@ -250,100 +255,47 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Sum", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9134", - "className":"Simulink.SignalConversion", - "icon":"WebViewIcon3", - "name":"Signal Conversion2", - "label":"Signal Conversion2", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", - "inspector":{ - "params":[ - "ConversionOutput", - "OutDataTypeStr", - "OverrideOpt" - ], - "values":[ - "Signal copy", - "Inherit: auto", - "off" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"SignalConversion", + "blocktype":"Constant", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9136", - "className":"Simulink.Sum", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9133", + "className":"Saturation Dynamic", "icon":"WebViewIcon3", - "name":"Sum2", - "label":"Sum2", + "name":"Saturation Dynamic", + "label":"Saturation Dynamic", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", "inspector":{ "params":[ - "IconShape", - "Inputs", - "InputSameDT", - "AccumDataTypeStr", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", "RndMeth", - "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", - "SampleTime" + "DoSatur" ], "values":[ - "rectangular", - "++", - "off", - "Inherit: Inherit via internal rule", "[]", "[]", - "Inherit: Inherit via internal rule", + "Inherit: Same as second input", "off", - "Simplest", - "on", - "1", - "All dimensions", - "-1" + "Floor", + "off" ], "tabs":[ - "Main", - "Signal Attributes", - "-Other" ], "tabs_idx":[ - 0, - 2, - 10 ] }, "viewer":{ - "jshandler":"webview/handlers/ElementHandler" + "jshandler":"webview/handlers/ContainerHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"Sum", - "masktype":"" + "blocktype":"SubSystem", + "masktype":"Saturation Dynamic" } }, { @@ -440,50 +392,60 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9133", - "className":"Saturation Dynamic", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9140", + "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"Saturation Dynamic", - "label":"Saturation Dynamic", + "name":"constant", + "label":"constant", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", "inspector":{ "params":[ + "Value", + "VectorParams1D", + "SampleTime", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "RndMeth", - "DoSatur" + "FramePeriod" ], "values":[ + "0", + "on", + "inf", "[]", "[]", - "Inherit: Same as second input", + "Inherit: Inherit via back propagation", "off", - "Floor", - "off" + "inf" ], "tabs":[ + "Main", + "Signal Attributes", + "-Other" ], "tabs_idx":[ + 0, + 3, + 7 ] }, "viewer":{ - "jshandler":"webview/handlers/ContainerHandler" + "jshandler":"webview/handlers/ElementHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"SubSystem", - "masktype":"Saturation Dynamic" + "blocktype":"Constant", + "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9128", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9131", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto2", - "label":"Goto2", + "name":"Goto4", + "label":"Goto4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", "inspector":{ "params":[ @@ -492,7 +454,7 @@ "IconDisplay" ], "values":[ - "Vq_min", + "n_limProt", "local", "Tag" ], @@ -512,11 +474,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9127", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9129", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto19", - "label":"Goto19", + "name":"Goto29", + "label":"Goto29", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", "inspector":{ "params":[ @@ -525,7 +487,7 @@ "IconDisplay" ], "values":[ - "iq_max", + "iq_min", "local", "Tag" ], @@ -545,27 +507,53 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9125", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9135", + "className":"Simulink.Sum", "icon":"WebViewIcon3", - "name":"Goto1", - "label":"Goto1", + "name":"Sum1", + "label":"Sum1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", "inspector":{ "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" + "IconShape", + "Inputs", + "InputSameDT", + "AccumDataTypeStr", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "RndMeth", + "SaturateOnIntegerOverflow", + "CollapseDim", + "CollapseMode", + "SampleTime" ], "values":[ - "Vq_max", - "local", - "Tag" + "round", + "|+-", + "off", + "Inherit: Inherit via internal rule", + "[]", + "[]", + "Inherit: Inherit via internal rule", + "off", + "Simplest", + "on", + "1", + "All dimensions", + "-1" ], "tabs":[ - "Parameter Attributes" + "Main", + "Signal Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 2, + 10 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -573,24 +561,26 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"Sum", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9124", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9127", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From47", - "label":"From47", + "name":"Goto19", + "label":"Goto19", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "Vq_min", + "iq_max", + "local", "Tag" ], "tabs":[ @@ -604,24 +594,26 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9121", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9130", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From34", - "label":"From34", + "name":"Goto3", + "label":"Goto3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "r_inpTgtSca", + "iq", + "local", "Tag" ], "tabs":[ @@ -635,24 +627,26 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9119", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9126", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From2", - "label":"From2", + "name":"Goto13", + "label":"Goto13", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "iq_max", + "r_inpTgtSca", + "local", "Tag" ], "tabs":[ @@ -666,16 +660,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9126", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9125", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto13", - "label":"Goto13", + "name":"Goto1", + "label":"Goto1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", "inspector":{ "params":[ @@ -684,7 +678,7 @@ "IconDisplay" ], "values":[ - "r_inpTgtSca", + "Vq_max", "local", "Tag" ], @@ -704,11 +698,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9123", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9124", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From44", - "label":"From44", + "name":"From47", + "label":"From47", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", "inspector":{ "params":[ @@ -716,7 +710,7 @@ "IconDisplay" ], "values":[ - "Vq_max", + "Vq_min", "Tag" ], "tabs":[ @@ -766,11 +760,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9118", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9121", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From1", - "label":"From1", + "name":"From34", + "label":"From34", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", "inspector":{ "params":[ @@ -778,7 +772,7 @@ "IconDisplay" ], "values":[ - "iq", + "r_inpTgtSca", "Tag" ], "tabs":[ @@ -797,20 +791,22 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9117", - "className":"Simulink.ActionPort", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9128", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Action Port", - "label":"Action Port", + "name":"Goto2", + "label":"Goto2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", "inspector":{ "params":[ - "InitializeStates", - "PropagateVarSize" + "GotoTag", + "TagVisibility", + "IconDisplay" ], "values":[ - "reset", - "Only when execution is resumed" + "Vq_min", + "local", + "Tag" ], "tabs":[ "Parameter Attributes" @@ -823,16 +819,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"ActionPort", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9120", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9118", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From3", - "label":"From3", + "name":"From1", + "label":"From1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", "inspector":{ "params":[ @@ -840,7 +836,7 @@ "IconDisplay" ], "values":[ - "iq_min", + "iq", "Tag" ], "tabs":[ @@ -859,11 +855,42 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9115", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9117", + "className":"Simulink.ActionPort", + "icon":"WebViewIcon3", + "name":"Action Port", + "label":"Action Port", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", + "inspector":{ + "params":[ + "InitializeStates", + "PropagateVarSize" + ], + "values":[ + "reset", + "Only when execution is resumed" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"ActionPort", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9116", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"iq_min", - "label":"iq_min", + "name":"n_limProt", + "label":"n_limProt", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", "inspector":{ "params":[ @@ -886,7 +913,7 @@ "OutputFunctionCall" ], "values":[ - "6", + "7", "Port number", "[]", "[]", @@ -926,27 +953,61 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9130", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9114", + "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"Goto3", - "label":"Goto3", + "name":"iq_max", + "label":"iq_max", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", "inspector":{ "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" ], "values":[ - "iq", - "local", - "Tag" + "5", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "", + "on", + "off", + "off", + "off" ], "tabs":[ - "Parameter Attributes" + "Main", + "Signal Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 2, + 11 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -954,16 +1015,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"Inport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9114", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9113", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"iq_max", - "label":"iq_max", + "name":"iq", + "label":"iq", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", "inspector":{ "params":[ @@ -986,7 +1047,7 @@ "OutputFunctionCall" ], "values":[ - "5", + "4", "Port number", "[]", "[]", @@ -1026,54 +1087,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9131", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto4", - "label":"Goto4", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", - "inspector":{ - "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" - ], - "values":[ - "n_limProt", - "local", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Goto", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9129", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9119", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto29", - "label":"Goto29", + "name":"From2", + "label":"From2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "iq_min", - "local", + "iq_max", "Tag" ], "tabs":[ @@ -1087,68 +1113,47 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9141", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9136", + "className":"Simulink.Sum", "icon":"WebViewIcon3", - "name":"Vq_Trq", - "label":"Vq_Trq", + "name":"Sum2", + "label":"Sum2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", "inspector":{ "params":[ - "Port", - "IconDisplay", + "IconShape", + "Inputs", + "InputSameDT", + "AccumDataTypeStr", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" + "RndMeth", + "SaturateOnIntegerOverflow", + "CollapseDim", + "CollapseMode", + "SampleTime" ], "values":[ - "1", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", + "rectangular", + "++", "off", + "Inherit: Inherit via internal rule", "[]", + "[]", + "Inherit: Inherit via internal rule", "off", - "held", - "off", - "0", - "", - [ - ], - "Dialog", - "Auto", - "off" + "Simplest", + "on", + "1", + "All dimensions", + "-1" ], "tabs":[ "Main", @@ -1158,7 +1163,7 @@ "tabs_idx":[ 0, 2, - 11 + 10 ] }, "viewer":{ @@ -1167,16 +1172,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", + "blocktype":"Sum", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9116", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9112", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"n_limProt", - "label":"n_limProt", + "name":"Vq_min", + "label":"Vq_min", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", "inspector":{ "params":[ @@ -1199,7 +1204,7 @@ "OutputFunctionCall" ], "values":[ - "7", + "3", "Port number", "[]", "[]", @@ -1239,61 +1244,25 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9112", - "className":"Simulink.Inport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9120", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Vq_min", - "label":"Vq_min", + "name":"From3", + "label":"From3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", "inspector":{ "params":[ - "Port", - "IconDisplay", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" + "GotoTag", + "IconDisplay" ], "values":[ - "3", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "", - "on", - "off", - "off", - "off" + "iq_min", + "Tag" ], "tabs":[ - "Main", - "Signal Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 2, - 11 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1301,16 +1270,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9113", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9111", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"iq", - "label":"iq", + "name":"Vq_max", + "label":"Vq_max", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", "inspector":{ "params":[ @@ -1333,7 +1302,7 @@ "OutputFunctionCall" ], "values":[ - "4", + "2", "Port number", "[]", "[]", @@ -1373,11 +1342,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9111", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9110", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"Vq_max", - "label":"Vq_max", + "name":"r_inpTgtSca", + "label":"r_inpTgtSca", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", "inspector":{ "params":[ @@ -1400,7 +1369,7 @@ "OutputFunctionCall" ], "values":[ - "2", + "1", "Port number", "[]", "[]", @@ -1440,11 +1409,42 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9110", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9123", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From44", + "label":"From44", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "Vq_max", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9115", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"r_inpTgtSca", - "label":"r_inpTgtSca", + "name":"iq_min", + "label":"iq_min", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9109", "inspector":{ "params":[ @@ -1467,7 +1467,7 @@ "OutputFunctionCall" ], "values":[ - "1", + "6", "Port number", "[]", "[]", diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9109_d.png b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9109_d.png index 85955a4e75478351f36909f6c5067208f3c3dea4..356348eeb7616505db8958586177a53ca3bed721 100644 GIT binary patch delta 4157 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 delta 4138 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 - - - + + + - - + + - + - - 0 + + 1 - - + + - - - + + + - + - - sfix32_En20 + + Vq_Trq @@ -107,54 +107,6 @@ - - - - - - - - - - - - - - - - - - cf_iqKi - - - - - - - - - - - - - - - - - - - - - - ufix16_En16 - - - - - - - - @@ -167,11 +119,11 @@ - + - + cf_iqKb @@ -189,11 +141,11 @@ - + - + ufix16_En16 @@ -203,70 +155,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - sfix16_En4 - - - - - - - - @@ -279,131 +167,131 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -429,11 +317,11 @@ - + - + sfix16_En4 @@ -445,68 +333,44 @@ - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + cf_iqKi - - + + - - + + - - + + - - sfix16_En4 + + ufix16_En16 @@ -517,85 +381,197 @@ - - - + + + - - + + - + - - + + - - err + + - - + + - - P + + - - + + - - I + + - - + + - - Kb + + + + + + + + + + - - + + - - ext_limProt + + up - - - + + + + + + u + + + + + + + + lo + + + + + + + + y + + + + + + + + + + + + + + + + + + + + + + sfix16_En4 + + + + + + + + + + + + + + + + + + + + + + + + + + err + + + + + - + + P + + + + + + + + I + + + + + + + + Kb + + + + + + + + ext_limProt + + + + + + + satMax - + - + satMin - + - + out - + - + PI(z) @@ -613,11 +589,11 @@ - + - + PI_backCalc_fixdt_Iq @@ -628,11 +604,11 @@ - + - + sfix16_En4 @@ -640,29 +616,29 @@ - + - + - + - + - + - + @@ -676,107 +652,173 @@ - - - + + + - - + + - + - - + + - - + + 0 - - - - - - - + + + + + + + + + + + + + - - + + - - + + sfix32_En20 + + + + + + + + + + + + + + + + + + - - + + - - + + [n_limProt] - + + + + + + + + + + + + + + + + + + - + - - up + + [iq_min] + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - u + + - - + + - - lo + + - - + + - - y + + - - + + - + - - + + - + sfix16_En4 @@ -788,28 +830,28 @@ - - + + - + - + - - [Vq_min] + + [iq_max] - + @@ -821,28 +863,28 @@ - - + + - + - + - - [iq_max] + + [iq] - + @@ -854,28 +896,28 @@ - - + + - + - + - - [Vq_max] + + [r_inpTgtSca] - + @@ -887,44 +929,29 @@ - - - + + + - - + + - - + + - - [Vq_min] + + [Vq_max] - - - - - - - - - - - - - - - - - sfix16_En4 + + @@ -935,11 +962,11 @@ - - + + - + @@ -949,29 +976,29 @@ - - [r_inpTgtSca] + + [Vq_min] - + - + - + - + sfix16_En4 @@ -983,11 +1010,11 @@ - - + + - + @@ -997,29 +1024,29 @@ - - [iq_max] + + [n_limProt] - + - + - + - + sfix16_En4 @@ -1031,76 +1058,43 @@ - - - - - - - - - - - - - - - - [r_inpTgtSca] - - - - - - - - - - - - - - - - - - - + + - + - + - - [Vq_max] + + [r_inpTgtSca] - + - + - - + + - + sfix16_En4 @@ -1112,44 +1106,29 @@ - - - + + + - - + + - - + + - - [n_limProt] + + [Vq_min] - - - - - - - - - - - - - - - - - sfix16_En4 + + @@ -1170,11 +1149,11 @@ - + - + [iq] @@ -1192,11 +1171,11 @@ - + - + sfix16_En4 @@ -1218,11 +1197,11 @@ - + - + case: { } @@ -1240,11 +1219,11 @@ - + - + Action Port @@ -1256,43 +1235,58 @@ - - - + + + - - + + - - + + - - [iq_min] + + 7 - - + + + + + + + + + + + + + + + + + n_limProt - + - - + + - + sfix16_En4 @@ -1304,58 +1298,58 @@ - - + + - + - + - - 6 + + 5 - + - - + + - - + + - - iq_min + + iq_max - + - - + + - + sfix16_En4 @@ -1367,29 +1361,59 @@ - - - + + + - - + + - - + + - - [iq] + + 4 - - + + + + + + + + + + + + + + + + + iq + + + + + + + + + + + + + + + sfix16_En4 @@ -1400,58 +1424,43 @@ - - - + + + - - + + - + - - 5 + + [iq_max] - - - - - - - - - - - - - - - - - iq_max + + - + - - + + - + sfix16_En4 @@ -1463,62 +1472,68 @@ - - - + + + - - + + + + + + + + + + - + - - [n_limProt] + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - + + + + - - + + - - [iq_min] - - - - - - - + + sfix16_En4 @@ -1529,44 +1544,59 @@ - - + + - + - + - - 1 + + 3 - + - - + + - - + + - - Vq_Trq + + Vq_min + + + + + + + + + + + + + + + sfix16_En4 @@ -1577,58 +1607,43 @@ - - - + + + - - + + - - + + - - 7 + + [iq_min] - - - - - - - - - - - - - - - - - n_limProt + + - + - - + + - + sfix16_En4 @@ -1640,58 +1655,58 @@ - - + + - + - + - - 3 + + 2 - + - - + + - - + + - - Vq_min + + Vq_max - + - - + + - + sfix16_En4 @@ -1703,58 +1718,58 @@ - - + + - + - + - - 4 + + 1 - + - - + + - - + + - - iq + + r_inpTgtSca - + - - + + - + sfix16_En4 @@ -1766,58 +1781,43 @@ - - - + + + - - + + - - + + - - 2 + + [Vq_max] - - - - - - - - - - - - - - - - - Vq_max + + - + - + - + sfix16_En4 @@ -1829,11 +1829,11 @@ - - + + - + @@ -1843,44 +1843,44 @@ - - 1 + + 6 - + - - + + - + - - r_inpTgtSca + + iq_min - + - + - + sfix16_En4 @@ -2214,5 +2214,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9132_2275_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9132_2275_d.json index ad5ef7f..87b1c4d 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9132_2275_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9132_2275_d.json @@ -1,54 +1,4 @@ [ - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2528", - "className":"Simulink.UnitDelay", - "icon":"WebViewIcon3", - "name":"UnitDelay", - "label":"UnitDelay", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2275", - "inspector":{ - "params":[ - "InitialCondition", - "InputProcessing", - "SampleTime", - "StateName", - "CodeGenStateStorageTypeQualifier", - "StateMustResolveToSignalObject", - "StateSignalObject", - "StateStorageClass" - ], - "values":[ - "0", - "Inherited", - "-1", - "", - "", - "off", - [ - ], - "Auto" - ], - "tabs":[ - "Main", - "State Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 3, - 4 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"UnitDelay", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2281", "className":"Simulink.Outport", @@ -130,40 +80,52 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2697", - "className":"Simulink.DataTypeConversion", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2279", + "className":"Simulink.Sum", "icon":"WebViewIcon3", - "name":"Data Type Conversion1", - "label":"Data Type Conversion1", + "name":"Sum1", + "label":"Sum1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2275", "inspector":{ "params":[ + "IconShape", + "Inputs", + "InputSameDT", + "AccumDataTypeStr", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "ConvertRealWorld", "RndMeth", "SaturateOnIntegerOverflow", + "CollapseDim", + "CollapseMode", "SampleTime" ], "values":[ + "round", + "|++", + "off", + "Inherit: Same as first input", "[]", "[]", - "fixdt(1,16,4)", + "Inherit: Same as first input", "off", - "Real World Value (RWV)", - "Floor", + "Simplest", "off", + "1", + "All dimensions", "-1" ], "tabs":[ - "Parameter Attributes", + "Main", + "Signal Attributes", "-Other" ], "tabs_idx":[ 0, - 7 + 2, + 10 ] }, "viewer":{ @@ -172,57 +134,45 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"DataTypeConversion", + "blocktype":"Sum", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2279", - "className":"Simulink.Sum", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2697", + "className":"Simulink.DataTypeConversion", "icon":"WebViewIcon3", - "name":"Sum1", - "label":"Sum1", + "name":"Data Type Conversion1", + "label":"Data Type Conversion1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2275", "inspector":{ "params":[ - "IconShape", - "Inputs", - "InputSameDT", - "AccumDataTypeStr", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", + "ConvertRealWorld", "RndMeth", "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", "SampleTime" ], "values":[ - "round", - "|++", - "off", - "Inherit: Same as first input", "[]", "[]", - "Inherit: Same as first input", + "fixdt(1,16,4)", "off", - "Simplest", + "Real World Value (RWV)", + "Floor", "off", - "1", - "All dimensions", "-1" ], "tabs":[ - "Main", - "Signal Attributes", + "Parameter Attributes", "-Other" ], "tabs_idx":[ 0, - 2, - 10 + 7 ] }, "viewer":{ @@ -231,7 +181,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Sum", + "blocktype":"DataTypeConversion", "masktype":"" } }, @@ -302,6 +252,56 @@ "masktype":"" } }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2528", + "className":"Simulink.UnitDelay", + "icon":"WebViewIcon3", + "name":"UnitDelay", + "label":"UnitDelay", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2275", + "inspector":{ + "params":[ + "InitialCondition", + "InputProcessing", + "SampleTime", + "StateName", + "CodeGenStateStorageTypeQualifier", + "StateMustResolveToSignalObject", + "StateSignalObject", + "StateStorageClass" + ], + "values":[ + "0", + "Inherited", + "-1", + "", + "", + "off", + [ + ], + "Auto" + ], + "tabs":[ + "Main", + "State Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 3, + 4 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"UnitDelay", + "masktype":"" + } + }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2697#out:1", "className":"Simulink.Line", diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9132_2275_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9132_2275_d.svg index 7b53931..a7633da 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9132_2275_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9132_2275_d.svg @@ -13,91 +13,44 @@ - - - + + + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + 1 - - - - - - - - - - - - - - - - - - - - - - - - - sfix32_En20 + + - - - + + + - - + + - - Ini=0 + + y @@ -108,44 +61,68 @@ - - - + + + - - + + - - + + - - 1 + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - + + + - - + + - - y + + sfix32_En20 @@ -166,19 +143,19 @@ - + - + - + - + @@ -204,11 +181,11 @@ - + - + sfix16_En4 @@ -220,67 +197,58 @@ - - - + + + - - + + - - + + - - + + 1 - - - - - - - + + + + + + - - - - - - - + + + + + + - - + + - - - - - - - - - + + u - + - - + + - + sfix32_En20 @@ -292,59 +260,91 @@ - - - + + + - - + + - + - - + + - - 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - + + + - + - - u + + sfix32_En20 - - - + + + - + - - sfix32_En20 + + Ini=0 @@ -431,5 +431,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9132_2282_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9132_2282_d.svg index 81fcd2c..f4b5a5e 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9132_2282_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9132_2282_d.svg @@ -63,7 +63,7 @@ - + @@ -1012,13 +1012,13 @@ - + - + @@ -1176,5 +1176,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9132_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9132_d.json index 2848631..029b011 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9132_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9132_d.json @@ -1,60 +1,10 @@ [ { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2527", - "className":"Simulink.UnitDelay", - "icon":"WebViewIcon3", - "name":"UnitDelay", - "label":"UnitDelay", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9132", - "inspector":{ - "params":[ - "InitialCondition", - "InputProcessing", - "SampleTime", - "StateName", - "CodeGenStateStorageTypeQualifier", - "StateMustResolveToSignalObject", - "StateSignalObject", - "StateStorageClass" - ], - "values":[ - "0", - "Inherited", - "-1", - "", - "", - "off", - [ - ], - "Auto" - ], - "tabs":[ - "Main", - "State Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 3, - 4 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"UnitDelay", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2285", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2284", "className":"Simulink.Sum", "icon":"WebViewIcon3", - "name":"Sum6", - "label":"Sum6", + "name":"Sum2", + "label":"Sum2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9132", "inspector":{ "params":[ @@ -74,12 +24,12 @@ ], "values":[ "rectangular", - "++", + "+++", "off", "Inherit: Inherit via internal rule", "[]", "[]", - "fixdt(1,16,4)", + "Inherit: Inherit via internal rule", "off", "Simplest", "on", @@ -109,11 +59,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2284", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2293", "className":"Simulink.Sum", "icon":"WebViewIcon3", - "name":"Sum2", - "label":"Sum2", + "name":"Sum3", + "label":"Sum3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9132", "inspector":{ "params":[ @@ -132,8 +82,8 @@ "SampleTime" ], "values":[ - "rectangular", - "+++", + "round", + "-+|", "off", "Inherit: Inherit via internal rule", "[]", @@ -141,7 +91,7 @@ "Inherit: Inherit via internal rule", "off", "Simplest", - "on", + "off", "1", "All dimensions", "-1" @@ -168,90 +118,32 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2275", - "className":"Simulink.SubSystem", - "icon":"WebViewIcon1", - "name":"Integrator", - "label":"Integrator", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2282", + "className":"Saturation Dynamic", + "icon":"WebViewIcon3", + "name":"Saturation Dynamic1", + "label":"Saturation Dynamic1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9132", "inspector":{ "params":[ - "ShowPortLabels", - "Permissions", - "ErrorFcn", - "PermitHierarchicalResolution", - "TreatAsAtomicUnit", - "TreatAsGroupedWhenPropagatingVariantConditions", - "ActiveVariant", - "ActiveVariantBlock", - "AllowZeroVariantControls", - "BlockChoice", - "FunctionInterfaceSpec", - "FunctionWithSeparateData", - "GeneratePreprocessorConditionals", - "IsSubsystemVirtual", - "MemberBlocks", - "MinAlgLoopOccurrences", - "OverrideUsingVariant", - "PropExecContextOutsideSubsystem", - "PropagateVariantConditions", - "RTWFcnName", - "RTWFcnNameOpts", - "RTWFileName", - "RTWFileNameOpts", - "RTWMemSecDataConstants", - "RTWMemSecDataInternal", - "RTWMemSecDataParameters", - "RTWMemSecFuncExecute", - "RTWMemSecFuncInitTerm", - "RTWSystemCode", - "SystemSampleTime", - "TemplateBlock", - "Variant", - "VariantControl" + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "RndMeth", + "DoSatur" ], "values":[ - "FromPortIcon", - "ReadWrite", - "", - "All", - "off", - "on", - "", - "", - "off", - "", - "void_void", - "off", - "off", - "on", - "", - "off", - "", - "off", - "off", - "", - "Auto", - "", - "Auto", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Auto", - "-1", - "", + "[]", + "[]", + "Inherit: Same as second input", "off", - "" + "Floor", + "off" ], "tabs":[ - "Main", - "-Other" ], "tabs_idx":[ - 0, - 6 ] }, "viewer":{ @@ -261,21 +153,22 @@ ], "finder":{ "blocktype":"SubSystem", - "masktype":"" + "masktype":"Saturation Dynamic" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2273", - "className":"Simulink.Product", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2285", + "className":"Simulink.Sum", "icon":"WebViewIcon3", - "name":"Divide4", - "label":"Divide4", + "name":"Sum6", + "label":"Sum6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9132", "inspector":{ "params":[ + "IconShape", "Inputs", - "Multiplication", "InputSameDT", + "AccumDataTypeStr", "OutMin", "OutMax", "OutDataTypeStr", @@ -287,12 +180,13 @@ "SampleTime" ], "values":[ - "**", - "Element-wise(.*)", + "rectangular", + "++", "off", + "Inherit: Inherit via internal rule", "[]", "[]", - "fixdt(1,16,5)", + "fixdt(1,16,4)", "off", "Simplest", "on", @@ -308,7 +202,7 @@ "tabs_idx":[ 0, 2, - 9 + 10 ] }, "viewer":{ @@ -317,16 +211,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Product", + "blocktype":"Sum", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2292", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2273", "className":"Simulink.Product", "icon":"WebViewIcon3", - "name":"Divide2", - "label":"Divide2", + "name":"Divide4", + "label":"Divide4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9132", "inspector":{ "params":[ @@ -349,10 +243,10 @@ "off", "[]", "[]", - "Inherit: Inherit via internal rule", + "fixdt(1,16,5)", "off", "Simplest", - "off", + "on", "1", "All dimensions", "-1" @@ -379,11 +273,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2253", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2254", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"satMax", - "label":"satMax", + "name":"satMin", + "label":"satMin", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9132", "inspector":{ "params":[ @@ -406,7 +300,7 @@ "OutputFunctionCall" ], "values":[ - "6", + "7", "Port number", "[]", "[]", @@ -446,50 +340,91 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2282", - "className":"Saturation Dynamic", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2290", + "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"Saturation Dynamic1", - "label":"Saturation Dynamic1", + "name":"out", + "label":"out", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9132", "inspector":{ "params":[ + "Port", + "IconDisplay", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "RndMeth", - "DoSatur" + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ + "1", + "Port number", "[]", "[]", - "Inherit: Same as second input", + "Inherit: auto", "off", - "Floor", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "off", + "[]", + "off", + "held", + "off", + "0", + "", + [ + ], + "Dialog", + "Auto", "off" ], "tabs":[ + "Main", + "Signal Attributes", + "-Other" ], "tabs_idx":[ + 0, + 2, + 11 ] }, "viewer":{ - "jshandler":"webview/handlers/ContainerHandler" + "jshandler":"webview/handlers/ElementHandler" }, "obj_viewer":[ ], - "finder":{ - "blocktype":"SubSystem", - "masktype":"Saturation Dynamic" + "finder":{ + "blocktype":"Outport", + "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2396", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2291", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"ext_limProt", - "label":"ext_limProt", + "name":"Kb", + "label":"Kb", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9132", "inspector":{ "params":[ @@ -512,7 +447,7 @@ "OutputFunctionCall" ], "values":[ - "5", + "4", "Port number", "[]", "[]", @@ -552,63 +487,40 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2290", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2292", + "className":"Simulink.Product", "icon":"WebViewIcon3", - "name":"out", - "label":"out", + "name":"Divide2", + "label":"Divide2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9132", "inspector":{ "params":[ - "Port", - "IconDisplay", + "Inputs", + "Multiplication", + "InputSameDT", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" + "RndMeth", + "SaturateOnIntegerOverflow", + "CollapseDim", + "CollapseMode", + "SampleTime" ], "values":[ - "1", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", + "**", + "Element-wise(.*)", "off", "[]", + "[]", + "Inherit: Inherit via internal rule", "off", - "held", + "Simplest", "off", - "0", - "", - [ - ], - "Dialog", - "Auto", - "off" + "1", + "All dimensions", + "-1" ], "tabs":[ "Main", @@ -618,7 +530,7 @@ "tabs_idx":[ 0, 2, - 11 + 9 ] }, "viewer":{ @@ -627,16 +539,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", + "blocktype":"Product", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2291", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2252", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"Kb", - "label":"Kb", + "name":"I", + "label":"I", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9132", "inspector":{ "params":[ @@ -659,7 +571,7 @@ "OutputFunctionCall" ], "values":[ - "4", + "3", "Port number", "[]", "[]", @@ -756,11 +668,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2254", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2253", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"satMin", - "label":"satMin", + "name":"satMax", + "label":"satMax", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9132", "inspector":{ "params":[ @@ -783,7 +695,7 @@ "OutputFunctionCall" ], "values":[ - "7", + "6", "Port number", "[]", "[]", @@ -823,61 +735,99 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2293", - "className":"Simulink.Sum", - "icon":"WebViewIcon3", - "name":"Sum3", - "label":"Sum3", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2275", + "className":"Simulink.SubSystem", + "icon":"WebViewIcon1", + "name":"Integrator", + "label":"Integrator", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9132", "inspector":{ "params":[ - "IconShape", - "Inputs", - "InputSameDT", - "AccumDataTypeStr", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", - "SampleTime" + "ShowPortLabels", + "Permissions", + "ErrorFcn", + "PermitHierarchicalResolution", + "TreatAsAtomicUnit", + "TreatAsGroupedWhenPropagatingVariantConditions", + "ActiveVariant", + "ActiveVariantBlock", + "AllowZeroVariantControls", + "BlockChoice", + "FunctionInterfaceSpec", + "FunctionWithSeparateData", + "GeneratePreprocessorConditionals", + "IsSubsystemVirtual", + "MemberBlocks", + "MinAlgLoopOccurrences", + "OverrideUsingVariant", + "PropExecContextOutsideSubsystem", + "PropagateVariantConditions", + "RTWFcnName", + "RTWFcnNameOpts", + "RTWFileName", + "RTWFileNameOpts", + "RTWMemSecDataConstants", + "RTWMemSecDataInternal", + "RTWMemSecDataParameters", + "RTWMemSecFuncExecute", + "RTWMemSecFuncInitTerm", + "RTWSystemCode", + "SystemSampleTime", + "TemplateBlock", + "Variant", + "VariantControl" ], "values":[ - "round", - "-+|", + "FromPortIcon", + "ReadWrite", + "", + "All", "off", - "Inherit: Inherit via internal rule", - "[]", - "[]", - "Inherit: Inherit via internal rule", + "on", + "", + "", "off", - "Simplest", + "", + "void_void", "off", - "1", - "All dimensions", - "-1" + "off", + "on", + "", + "off", + "", + "off", + "off", + "", + "Auto", + "", + "Auto", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Auto", + "-1", + "", + "off", + "" ], "tabs":[ "Main", - "Signal Attributes", "-Other" ], "tabs_idx":[ 0, - 2, - 10 + 6 ] }, "viewer":{ - "jshandler":"webview/handlers/ElementHandler" + "jshandler":"webview/handlers/ContainerHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"Sum", + "blocktype":"SubSystem", "masktype":"" } }, @@ -1016,11 +966,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2252", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2396", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"I", - "label":"I", + "name":"ext_limProt", + "label":"ext_limProt", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9132", "inspector":{ "params":[ @@ -1043,7 +993,7 @@ "OutputFunctionCall" ], "values":[ - "3", + "5", "Port number", "[]", "[]", @@ -1082,6 +1032,56 @@ "masktype":"" } }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2527", + "className":"Simulink.UnitDelay", + "icon":"WebViewIcon3", + "name":"UnitDelay", + "label":"UnitDelay", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9132", + "inspector":{ + "params":[ + "InitialCondition", + "InputProcessing", + "SampleTime", + "StateName", + "CodeGenStateStorageTypeQualifier", + "StateMustResolveToSignalObject", + "StateSignalObject", + "StateStorageClass" + ], + "values":[ + "0", + "Inherited", + "-1", + "", + "", + "off", + [ + ], + "Auto" + ], + "tabs":[ + "Main", + "State Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 3, + 4 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"UnitDelay", + "masktype":"" + } + }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9132:2273#out:1", "className":"Simulink.Line", diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9132_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9132_d.svg index 939d150..13823fb 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9132_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9132_d.svg @@ -13,90 +13,83 @@ - - - + + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - + + - - - - - - + + + + + + + - - + + - - Ini=0 + + + + + + + + + - - + + - - + + - + sfix32_En20 @@ -108,67 +101,59 @@ - - - + + + - - + + - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + sfix16_En4 @@ -180,84 +165,108 @@ - - - + + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + - - + + - - + + up - - + + - - + + u + + + + + + + + lo + + + + + + + + y - - + + - - + + - - + + - - sfix32_En20 + + sfix16_En4 @@ -268,90 +277,67 @@ - - - + + + - - - - - - - - + + - - + + - - u + + - - + + - - y - - - - - - - - - - - - - + + - - - - - - - - + + + - - + + - - + + - - Integrator + + + + + + + + + - - - - - - - + - - + + - + sfix16_En4 @@ -364,14 +350,8 @@ - - - - - - - + @@ -379,19 +359,19 @@ - + - + - + - + @@ -409,11 +389,11 @@ - + - + sfix16_En5 @@ -425,114 +405,58 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - sfix32_En20 - - - - - - - - - - - - + + - + - + - - 6 + + 7 - + - - + + - - + + - - satMax + + satMin - + - - + + - + sfix16_En4 @@ -544,108 +468,44 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + - - - - - - up - - - - - - - - u - - - - - - - - lo - - - - + + - - y + + 1 - - + + - - - + + + - - + + - - sfix16_En4 + + out @@ -656,59 +516,59 @@ - - + + - + - + - - 5 + + 4 - + - - + + - - + + - - ext_limProt + + Kb - - + + - - + + - - sfix32_En20 + + ufix16_En16 @@ -719,44 +579,52 @@ - - - + + + - - + + - - + + - - 1 + + + + + + + + + + - - + + - - - - + + + + - - + + - - out + + sfix32_En20 @@ -767,58 +635,58 @@ - - + + - + - + - - 4 + + 3 - + - - + + - - + + - - Kb + + I - + - - + + - + ufix16_En16 @@ -832,7 +700,7 @@ - + @@ -840,19 +708,19 @@ - + - + - + - + @@ -870,11 +738,11 @@ - + - + sfix32_En20 @@ -886,58 +754,58 @@ - - + + - + - + - - 7 + + 6 - + - - + + - - + + - - satMin + + satMax - + - - + + - + sfix16_En4 @@ -949,59 +817,90 @@ - - - + + + - - + + + + + + + + - - + + - - + + u - - + + - - + + y + + + + - - - + + + + - - + + - - - + + + + + + + + + + + + + + + + + Integrator - - + + + + + + + + - - + + - + sfix16_En4 @@ -1014,6 +913,12 @@ + + + + + + @@ -1023,11 +928,11 @@ - + - + 2 @@ -1045,11 +950,11 @@ - + - + P @@ -1060,11 +965,11 @@ - + - + ufix16_En12 @@ -1086,11 +991,11 @@ - + - + 1 @@ -1108,11 +1013,11 @@ - + - + err @@ -1123,11 +1028,11 @@ - + - + sfix16_En4 @@ -1139,59 +1044,154 @@ - - + + - + - + - - 3 + + 5 - + - - + + + + + + + + + + ext_limProt + + + + + + + + + + + + + + + sfix32_En20 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - I + + Ini=0 - - + + - + - - ufix16_En16 + + sfix32_En20 @@ -1486,5 +1486,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9133_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9133_d.svg index 472b094..08c45bc 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9133_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9133_d.svg @@ -63,7 +63,7 @@ - + @@ -142,7 +142,7 @@ - + @@ -334,7 +334,7 @@ - + @@ -526,7 +526,7 @@ - + @@ -605,7 +605,7 @@ - + @@ -654,7 +654,7 @@ - + @@ -1009,7 +1009,7 @@ - + @@ -1018,7 +1018,7 @@ - + @@ -1176,5 +1176,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9143_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9143_d.json index 98ca4b3..e6734ce 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9143_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9143_d.json @@ -58,86 +58,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9170", - "className":"Simulink.Outport", - "icon":"WebViewIcon3", - "name":"Vd", - "label":"Vd", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9143", - "inspector":{ - "params":[ - "Port", - "IconDisplay", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" - ], - "values":[ - "1", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "off", - "0", - "off", - "reset", - "off", - "0", - "", - [ - ], - "Dialog", - "Auto", - "off" - ], - "tabs":[ - "Main", - "Signal Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 2, - 11 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Outport", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9169", "className":"Simulink.Constant", @@ -188,11 +108,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9168", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9166", "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"cf_idKp", - "label":"cf_idKp", + "name":"cf_idKb", + "label":"cf_idKb", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9143", "inspector":{ "params":[ @@ -206,12 +126,12 @@ "FramePeriod" ], "values":[ - "cf_idKp", + "cf_idKb", "on", "inf", "[]", "[]", - "fixdt(0,16,12)", + "fixdt(0,16,16)", "off", "inf" ], @@ -330,11 +250,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9162", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9161", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto29", - "label":"Goto29", + "name":"Goto2", + "label":"Goto2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9143", "inspector":{ "params":[ @@ -343,7 +263,7 @@ "IconDisplay" ], "values":[ - "id_min", + "id", "local", "Tag" ], @@ -363,11 +283,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9161", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9162", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto2", - "label":"Goto2", + "name":"Goto29", + "label":"Goto29", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9143", "inspector":{ "params":[ @@ -376,7 +296,7 @@ "IconDisplay" ], "values":[ - "id", + "id_min", "local", "Tag" ], @@ -429,19 +349,70 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9156", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9168", + "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"From6", - "label":"From6", + "name":"cf_idKp", + "label":"cf_idKp", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9143", + "inspector":{ + "params":[ + "Value", + "VectorParams1D", + "SampleTime", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "FramePeriod" + ], + "values":[ + "cf_idKp", + "on", + "inf", + "[]", + "[]", + "fixdt(0,16,12)", + "off", + "inf" + ], + "tabs":[ + "Main", + "Signal Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 3, + 7 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Constant", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9158", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto17", + "label":"Goto17", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9143", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "id_min", + "Vd_max", + "local", "Tag" ], "tabs":[ @@ -455,16 +426,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9155", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9156", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From5", - "label":"From5", + "name":"From6", + "label":"From6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9143", "inspector":{ "params":[ @@ -472,7 +443,7 @@ "IconDisplay" ], "values":[ - "id_max", + "id_min", "Tag" ], "tabs":[ @@ -491,19 +462,21 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9154", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9157", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From4", - "label":"From4", + "name":"Goto", + "label":"Goto", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9143", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "Vd_min", + "id_Tgt", + "local", "Tag" ], "tabs":[ @@ -517,16 +490,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9151", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9152", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From1", - "label":"From1", + "name":"From2", + "label":"From2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9143", "inspector":{ "params":[ @@ -534,7 +507,7 @@ "IconDisplay" ], "values":[ - "id_Tgt", + "id", "Tag" ], "tabs":[ @@ -586,126 +559,51 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9164", - "className":"Saturation Dynamic", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9151", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Saturation Dynamic", - "label":"Saturation Dynamic", + "name":"From1", + "label":"From1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9143", "inspector":{ "params":[ - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "RndMeth", - "DoSatur" + "GotoTag", + "IconDisplay" ], "values":[ - "[]", - "[]", - "Inherit: Same as second input", - "off", - "Floor", - "off" + "id_Tgt", + "Tag" ], "tabs":[ + "Parameter Attributes" ], - "tabs_idx":[ - ] + "tabs_idx":0 }, "viewer":{ - "jshandler":"webview/handlers/ContainerHandler" + "jshandler":"webview/handlers/ElementHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"SubSystem", - "masktype":"Saturation Dynamic" + "blocktype":"From", + "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9147", - "className":"Simulink.Inport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9155", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Vd_min", - "label":"Vd_min", + "name":"From5", + "label":"From5", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9143", "inspector":{ "params":[ - "Port", - "IconDisplay", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" - ], - "values":[ - "4", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "", - "on", - "off", - "off", - "off" - ], - "tabs":[ - "Main", - "Signal Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 2, - 11 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Inport", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9150", - "className":"Simulink.ActionPort", - "icon":"WebViewIcon3", - "name":"Action Port", - "label":"Action Port", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9143", - "inspector":{ - "params":[ - "InitializeStates", - "PropagateVarSize" + "GotoTag", + "IconDisplay" ], "values":[ - "reset", - "Only when execution is resumed" + "id_max", + "Tag" ], "tabs":[ "Parameter Attributes" @@ -718,16 +616,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"ActionPort", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9146", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9147", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"Vd_max", - "label":"Vd_max", + "name":"Vd_min", + "label":"Vd_min", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9143", "inspector":{ "params":[ @@ -750,7 +648,7 @@ "OutputFunctionCall" ], "values":[ - "3", + "4", "Port number", "[]", "[]", @@ -790,11 +688,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9148", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9146", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"id_max", - "label":"id_max", + "name":"Vd_max", + "label":"Vd_max", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9143", "inspector":{ "params":[ @@ -817,7 +715,7 @@ "OutputFunctionCall" ], "values":[ - "5", + "3", "Port number", "[]", "[]", @@ -857,11 +755,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9153", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9154", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From3", - "label":"From3", + "name":"From4", + "label":"From4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9143", "inspector":{ "params":[ @@ -869,7 +767,7 @@ "IconDisplay" ], "values":[ - "Vd_max", + "Vd_min", "Tag" ], "tabs":[ @@ -888,91 +786,61 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9157", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto", - "label":"Goto", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9143", - "inspector":{ - "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" - ], - "values":[ - "id_Tgt", - "local", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Goto", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9158", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto17", - "label":"Goto17", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9143", - "inspector":{ - "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" - ], - "values":[ - "Vd_max", - "local", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Goto", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9152", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9148", + "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"From2", - "label":"From2", + "name":"id_max", + "label":"id_max", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9143", "inspector":{ "params":[ - "GotoTag", - "IconDisplay" + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" ], "values":[ - "id", - "Tag" + "5", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "", + "on", + "off", + "off", + "off" ], "tabs":[ - "Parameter Attributes" + "Main", + "Signal Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 2, + 11 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -980,16 +848,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Inport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9149", - "className":"Simulink.Inport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9170", + "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"id_min", - "label":"id_min", + "name":"Vd", + "label":"Vd", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9143", "inspector":{ "params":[ @@ -1005,14 +873,20 @@ "SampleTime", "SignalType", "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "6", + "1", "Port number", "[]", "[]", @@ -1024,10 +898,17 @@ "-1", "auto", "off", - "", - "on", "off", + "0", + "off", + "reset", "off", + "0", + "", + [ + ], + "Dialog", + "Auto", "off" ], "tabs":[ @@ -1047,7 +928,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", + "blocktype":"Outport", "masktype":"" } }, @@ -1119,11 +1000,81 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9166", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9164", + "className":"Saturation Dynamic", + "icon":"WebViewIcon3", + "name":"Saturation Dynamic", + "label":"Saturation Dynamic", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9143", + "inspector":{ + "params":[ + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "RndMeth", + "DoSatur" + ], + "values":[ + "[]", + "[]", + "Inherit: Same as second input", + "off", + "Floor", + "off" + ], + "tabs":[ + ], + "tabs_idx":[ + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ContainerHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"SubSystem", + "masktype":"Saturation Dynamic" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9150", + "className":"Simulink.ActionPort", + "icon":"WebViewIcon3", + "name":"Action Port", + "label":"Action Port", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9143", + "inspector":{ + "params":[ + "InitializeStates", + "PropagateVarSize" + ], + "values":[ + "reset", + "Only when execution is resumed" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"ActionPort", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9167", "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"cf_idKb", - "label":"cf_idKb", + "name":"cf_idKi", + "label":"cf_idKi", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9143", "inspector":{ "params":[ @@ -1137,7 +1088,7 @@ "FramePeriod" ], "values":[ - "cf_idKb", + "cf_idKi", "on", "inf", "[]", @@ -1235,32 +1186,50 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9167", - "className":"Simulink.Constant", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9149", + "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"cf_idKi", - "label":"cf_idKi", + "name":"id_min", + "label":"id_min", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9143", "inspector":{ "params":[ - "Value", - "VectorParams1D", - "SampleTime", + "Port", + "IconDisplay", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "FramePeriod" + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" ], "values":[ - "cf_idKi", - "on", - "inf", + "6", + "Port number", "[]", "[]", - "fixdt(0,16,16)", + "Inherit: auto", "off", - "inf" + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "", + "on", + "off", + "off", + "off" ], "tabs":[ "Main", @@ -1269,8 +1238,8 @@ ], "tabs_idx":[ 0, - 3, - 7 + 2, + 11 ] }, "viewer":{ @@ -1279,7 +1248,38 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Constant", + "blocktype":"Inport", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9153", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From3", + "label":"From3", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9143", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "Vd_max", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", "masktype":"" } }, diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9143_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9143_d.svg index afe6956..f90d0df 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9143_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9143_d.svg @@ -75,54 +75,6 @@ - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - Vd - - - - - - - - @@ -135,11 +87,11 @@ - + - + 0 @@ -157,11 +109,11 @@ - + - + sfix32_En20 @@ -173,44 +125,44 @@ - - + + - + - + - - cf_idKp + + cf_idKb - + - + - - + + - - ufix16_En12 + + ufix16_En16 @@ -231,75 +183,75 @@ - + - + err - + - + P - + - + I - + - + Kb - + - + ext_limProt - + - + satMax - + - + satMin - + - + out - + - + PI(z) @@ -317,11 +269,11 @@ - + - + PI_backCalc_fixdt_Id @@ -332,11 +284,11 @@ - + - + sfix16_En4 @@ -344,29 +296,29 @@ - + - + - + - + - + - + @@ -380,28 +332,28 @@ - - + + - + - + - - [id_min] + + [id] - + @@ -413,28 +365,28 @@ - - + + - + - + - - [id] + + [id_min] - + @@ -456,11 +408,11 @@ - + - + [id_max] @@ -479,44 +431,44 @@ - - - + + + - - + + - - + + - - [id_min] + + cf_idKp - - + + - - + + - - + + - - sfix16_En4 + + ufix16_En12 @@ -527,43 +479,76 @@ - - + + + + + + + + + + + + + + + + [Vd_max] + + + + + + + + + + + + + + + + + + + - + - + - - [id_max] + + [id_min] - + - + - - + + - + sfix16_En4 @@ -575,44 +560,29 @@ - - - + + + - - + + - - + + - - [Vd_min] + + [id_Tgt] - - - - - - - - - - - - - - - - - sfix16_En4 + + @@ -623,43 +593,43 @@ - - + + - + - - + + - - [id_Tgt] + + [id] - + - + - - + + - + sfix16_En4 @@ -681,11 +651,11 @@ - + - + [Vd_min] @@ -704,107 +674,91 @@ - - - + + + - - + + - + - - + + - - + + [id_Tgt] - - - - - - - + + + + + + - - - - - - - + + + + + + - - + + - - + + sfix16_En4 - - + + + + + + + + + + + + - - - - - - up - - - - - - - - u - - - - - - - - lo - - - - + + - - y + + [id_max] - - + + - + - - + + - + sfix16_En4 @@ -826,11 +780,11 @@ - + - + 4 @@ -848,11 +802,11 @@ - + - + Vd_min @@ -863,11 +817,11 @@ - + - + sfix16_En4 @@ -879,44 +833,59 @@ - - - + + + - - + + - - + + - - if { } + + 3 - - + + - - + + - - + + - - Action Port + + Vd_max + + + + + + + + + + + + + + + sfix16_En4 @@ -927,58 +896,43 @@ - - - + + + - - + + - - + + - - 3 + + [Vd_min] - - - - - - - - - - - - - - - - - Vd_max + + - + - - + + - + sfix16_En4 @@ -1000,11 +954,11 @@ - + - + 5 @@ -1022,11 +976,11 @@ - + - + id_max @@ -1037,11 +991,11 @@ - + - + sfix16_En4 @@ -1053,44 +1007,44 @@ - - - + + + - - + + - - + + - - [Vd_max] + + 1 - - + + - - - + + + - - + + - - sfix16_En4 + + Vd @@ -1101,62 +1055,59 @@ - - - + + + - - + + - - + + - - [id_Tgt] + + 2 - - + + - - - - - - - - - - - - - - - + + + + - - + + - - [Vd_max] + + id - - - + + + + + + + + + + + sfix16_En4 @@ -1167,43 +1118,107 @@ - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + up + + + + + + + + u + - + - - [id] + + lo + + + + + + + + y - - + + - + - - + + - + sfix16_En4 @@ -1215,59 +1230,44 @@ - - - + + + - - + + - - + + - - 6 + + if { } - - + + - - - - - - - - - - id_min - - - - - - - + + - + - - sfix16_En4 + + Action Port @@ -1278,59 +1278,44 @@ - - - + + + - - + + - + - - 2 + + cf_idKi - - - - - - - - - - - - - - - - - id + + - - + + - - + + - - sfix16_En4 + + ufix16_En16 @@ -1341,44 +1326,59 @@ - - - + + + - - + + - - + + - - cf_idKb + + 1 - - + + + + + + + + + + + + + + + + + id_Tgt - - + + - + - - ufix16_En16 + + sfix16_En4 @@ -1389,11 +1389,11 @@ - - + + - + @@ -1403,44 +1403,44 @@ - - 1 + + 6 - + - - + + - + - - id_Tgt + + id_min - + - + - + sfix16_En4 @@ -1452,44 +1452,44 @@ - - - + + + - - + + - + - - cf_idKi + + [Vd_max] - - + + - - + + - + - - ufix16_En16 + + sfix16_En4 @@ -1766,5 +1766,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9163_2275_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9163_2275_d.json index acdabc6..d1a8906 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9163_2275_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9163_2275_d.json @@ -49,6 +49,120 @@ "masktype":"" } }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2697", + "className":"Simulink.DataTypeConversion", + "icon":"WebViewIcon3", + "name":"Data Type Conversion1", + "label":"Data Type Conversion1", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2275", + "inspector":{ + "params":[ + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "ConvertRealWorld", + "RndMeth", + "SaturateOnIntegerOverflow", + "SampleTime" + ], + "values":[ + "[]", + "[]", + "fixdt(1,16,4)", + "off", + "Real World Value (RWV)", + "Floor", + "off", + "-1" + ], + "tabs":[ + "Parameter Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 7 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"DataTypeConversion", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2276", + "className":"Simulink.Inport", + "icon":"WebViewIcon3", + "name":"u", + "label":"u", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2275", + "inspector":{ + "params":[ + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" + ], + "values":[ + "1", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "", + "on", + "off", + "off", + "off" + ], + "tabs":[ + "Main", + "Signal Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 2, + 11 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Inport", + "masktype":"" + } + }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2281", "className":"Simulink.Outport", @@ -188,120 +302,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2697", - "className":"Simulink.DataTypeConversion", - "icon":"WebViewIcon3", - "name":"Data Type Conversion1", - "label":"Data Type Conversion1", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2275", - "inspector":{ - "params":[ - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "ConvertRealWorld", - "RndMeth", - "SaturateOnIntegerOverflow", - "SampleTime" - ], - "values":[ - "[]", - "[]", - "fixdt(1,16,4)", - "off", - "Real World Value (RWV)", - "Floor", - "off", - "-1" - ], - "tabs":[ - "Parameter Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 7 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"DataTypeConversion", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2276", - "className":"Simulink.Inport", - "icon":"WebViewIcon3", - "name":"u", - "label":"u", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2275", - "inspector":{ - "params":[ - "Port", - "IconDisplay", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" - ], - "values":[ - "1", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "", - "on", - "off", - "off", - "off" - ], - "tabs":[ - "Main", - "Signal Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 2, - 11 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Inport", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2697#out:1", "className":"Simulink.Line", diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9163_2275_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9163_2275_d.svg index 7afab09..ada0271 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9163_2275_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9163_2275_d.svg @@ -15,7 +15,7 @@ - + @@ -108,44 +108,60 @@ - - - + + + - - + + - + - + - - 1 + + + + + + + + + + + + + + + + + + - - + + - - - + + + - - + + - - y + + sfix16_En4 @@ -156,67 +172,58 @@ - - - + + + - - + + - - + + - - + + 1 - - - - - - - + + + + + + - - - - - - - + + + + + + - - + + - - - - - - - - - + + u - + - - + + - + sfix32_En20 @@ -228,60 +235,44 @@ - - - + + + - - + + - - - - - - - - - + - - + + - - + + 1 - - - - - - - - - - + + - - - + + + - - + + - - sfix16_En4 + + y @@ -292,58 +283,67 @@ - - - + + + - - + + - - + + - - 1 + + - - - - - - + + + + + + + - - - - - - + + + + + + + - + - - u + + + + + + + + + - + - + - + sfix32_En20 @@ -431,5 +431,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9163_2282_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9163_2282_d.svg index 3420a90..4fe109b 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9163_2282_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9163_2282_d.svg @@ -63,7 +63,7 @@ - + @@ -1009,9 +1009,6 @@ - - - @@ -1021,6 +1018,9 @@ + + + @@ -1176,5 +1176,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9163_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9163_d.json index 629e7f0..5496d08 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9163_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9163_d.json @@ -1,72 +1,42 @@ [ { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2290", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2527", + "className":"Simulink.UnitDelay", "icon":"WebViewIcon3", - "name":"out", - "label":"out", + "name":"UnitDelay", + "label":"UnitDelay", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9163", "inspector":{ "params":[ - "Port", - "IconDisplay", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", + "InitialCondition", + "InputProcessing", "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" + "StateName", + "CodeGenStateStorageTypeQualifier", + "StateMustResolveToSignalObject", + "StateSignalObject", + "StateStorageClass" ], "values":[ - "1", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "off", - "[]", - "off", - "held", - "off", "0", + "Inherited", + "-1", "", + "", + "off", [ ], - "Dialog", - "Auto", - "off" + "Auto" ], "tabs":[ "Main", - "Signal Attributes", + "State Attributes", "-Other" ], "tabs_idx":[ 0, - 2, - 11 + 3, + 4 ] }, "viewer":{ @@ -75,7 +45,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", + "blocktype":"UnitDelay", "masktype":"" } }, @@ -138,56 +108,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2527", - "className":"Simulink.UnitDelay", - "icon":"WebViewIcon3", - "name":"UnitDelay", - "label":"UnitDelay", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9163", - "inspector":{ - "params":[ - "InitialCondition", - "InputProcessing", - "SampleTime", - "StateName", - "CodeGenStateStorageTypeQualifier", - "StateMustResolveToSignalObject", - "StateSignalObject", - "StateStorageClass" - ], - "values":[ - "0", - "Inherited", - "-1", - "", - "", - "off", - [ - ], - "Auto" - ], - "tabs":[ - "Main", - "State Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 3, - 4 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"UnitDelay", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2293", "className":"Simulink.Sum", @@ -307,108 +227,68 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2275", - "className":"Simulink.SubSystem", - "icon":"WebViewIcon1", - "name":"Integrator", - "label":"Integrator", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2273", + "className":"Simulink.Product", + "icon":"WebViewIcon3", + "name":"Divide4", + "label":"Divide4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9163", "inspector":{ "params":[ - "ShowPortLabels", - "Permissions", - "ErrorFcn", - "PermitHierarchicalResolution", - "TreatAsAtomicUnit", - "TreatAsGroupedWhenPropagatingVariantConditions", - "ActiveVariant", - "ActiveVariantBlock", - "AllowZeroVariantControls", - "BlockChoice", - "FunctionInterfaceSpec", - "FunctionWithSeparateData", - "GeneratePreprocessorConditionals", - "IsSubsystemVirtual", - "MemberBlocks", - "MinAlgLoopOccurrences", - "OverrideUsingVariant", - "PropExecContextOutsideSubsystem", - "PropagateVariantConditions", - "RTWFcnName", - "RTWFcnNameOpts", - "RTWFileName", - "RTWFileNameOpts", - "RTWMemSecDataConstants", - "RTWMemSecDataInternal", - "RTWMemSecDataParameters", - "RTWMemSecFuncExecute", - "RTWMemSecFuncInitTerm", - "RTWSystemCode", - "SystemSampleTime", - "TemplateBlock", - "Variant", - "VariantControl" + "Inputs", + "Multiplication", + "InputSameDT", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "RndMeth", + "SaturateOnIntegerOverflow", + "CollapseDim", + "CollapseMode", + "SampleTime" ], "values":[ - "FromPortIcon", - "ReadWrite", - "", - "All", - "off", - "on", - "", - "", - "off", - "", - "void_void", + "**", + "Element-wise(.*)", "off", + "[]", + "[]", + "fixdt(1,16,5)", "off", + "Simplest", "on", - "", - "off", - "", - "off", - "off", - "", - "Auto", - "", - "Auto", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Inherit from model", - "Auto", - "-1", - "", - "off", - "" + "1", + "All dimensions", + "-1" ], "tabs":[ "Main", + "Signal Attributes", "-Other" ], "tabs_idx":[ 0, - 6 + 2, + 9 ] }, "viewer":{ - "jshandler":"webview/handlers/ContainerHandler" + "jshandler":"webview/handlers/ElementHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"SubSystem", + "blocktype":"Product", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2273", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2292", "className":"Simulink.Product", "icon":"WebViewIcon3", - "name":"Divide4", - "label":"Divide4", + "name":"Divide2", + "label":"Divide2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9163", "inspector":{ "params":[ @@ -431,10 +311,10 @@ "off", "[]", "[]", - "fixdt(1,16,5)", + "Inherit: Inherit via internal rule", "off", "Simplest", - "on", + "off", "1", "All dimensions", "-1" @@ -461,50 +341,79 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2254", - "className":"Simulink.Inport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2282", + "className":"Saturation Dynamic", "icon":"WebViewIcon3", - "name":"satMin", - "label":"satMin", + "name":"Saturation Dynamic1", + "label":"Saturation Dynamic1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9163", "inspector":{ "params":[ - "Port", - "IconDisplay", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" + "RndMeth", + "DoSatur" ], "values":[ - "7", - "Port number", "[]", "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", + "Inherit: Same as second input", "off", - "", - "on", + "Floor", + "off" + ], + "tabs":[ + ], + "tabs_idx":[ + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ContainerHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"SubSystem", + "masktype":"Saturation Dynamic" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2272", + "className":"Simulink.Product", + "icon":"WebViewIcon3", + "name":"Divide1", + "label":"Divide1", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9163", + "inspector":{ + "params":[ + "Inputs", + "Multiplication", + "InputSameDT", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "RndMeth", + "SaturateOnIntegerOverflow", + "CollapseDim", + "CollapseMode", + "SampleTime" + ], + "values":[ + "**", + "Element-wise(.*)", "off", + "[]", + "[]", + "Inherit: Inherit via internal rule", "off", - "off" + "Simplest", + "on", + "1", + "All dimensions", + "-1" ], "tabs":[ "Main", @@ -514,7 +423,7 @@ "tabs_idx":[ 0, 2, - 11 + 9 ] }, "viewer":{ @@ -523,16 +432,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", + "blocktype":"Product", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2291", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2396", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"Kb", - "label":"Kb", + "name":"ext_limProt", + "label":"ext_limProt", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9163", "inspector":{ "params":[ @@ -555,7 +464,7 @@ "OutputFunctionCall" ], "values":[ - "4", + "5", "Port number", "[]", "[]", @@ -595,11 +504,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2253", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2254", "className":"Simulink.Inport", - "icon":"WebViewIcon3", - "name":"satMax", - "label":"satMax", + "icon":"WebViewIcon3", + "name":"satMin", + "label":"satMin", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9163", "inspector":{ "params":[ @@ -622,7 +531,7 @@ "OutputFunctionCall" ], "values":[ - "6", + "7", "Port number", "[]", "[]", @@ -662,11 +571,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2396", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2291", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"ext_limProt", - "label":"ext_limProt", + "name":"Kb", + "label":"Kb", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9163", "inspector":{ "params":[ @@ -689,7 +598,7 @@ "OutputFunctionCall" ], "values":[ - "5", + "4", "Port number", "[]", "[]", @@ -729,11 +638,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2252", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2251", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"I", - "label":"I", + "name":"P", + "label":"P", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9163", "inspector":{ "params":[ @@ -756,7 +665,7 @@ "OutputFunctionCall" ], "values":[ - "3", + "2", "Port number", "[]", "[]", @@ -796,11 +705,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2251", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2253", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"P", - "label":"P", + "name":"satMax", + "label":"satMax", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9163", "inspector":{ "params":[ @@ -823,7 +732,7 @@ "OutputFunctionCall" ], "values":[ - "2", + "6", "Port number", "[]", "[]", @@ -863,136 +772,227 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2282", - "className":"Saturation Dynamic", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2290", + "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"Saturation Dynamic1", - "label":"Saturation Dynamic1", + "name":"out", + "label":"out", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9163", "inspector":{ "params":[ + "Port", + "IconDisplay", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "RndMeth", - "DoSatur" + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ + "1", + "Port number", "[]", "[]", - "Inherit: Same as second input", + "Inherit: auto", "off", - "Floor", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "off", + "[]", + "off", + "held", + "off", + "0", + "", + [ + ], + "Dialog", + "Auto", "off" ], "tabs":[ + "Main", + "Signal Attributes", + "-Other" ], "tabs_idx":[ + 0, + 2, + 11 ] }, "viewer":{ - "jshandler":"webview/handlers/ContainerHandler" + "jshandler":"webview/handlers/ElementHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"SubSystem", - "masktype":"Saturation Dynamic" + "blocktype":"Outport", + "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2292", - "className":"Simulink.Product", - "icon":"WebViewIcon3", - "name":"Divide2", - "label":"Divide2", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2275", + "className":"Simulink.SubSystem", + "icon":"WebViewIcon1", + "name":"Integrator", + "label":"Integrator", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9163", "inspector":{ "params":[ - "Inputs", - "Multiplication", - "InputSameDT", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", - "SampleTime" + "ShowPortLabels", + "Permissions", + "ErrorFcn", + "PermitHierarchicalResolution", + "TreatAsAtomicUnit", + "TreatAsGroupedWhenPropagatingVariantConditions", + "ActiveVariant", + "ActiveVariantBlock", + "AllowZeroVariantControls", + "BlockChoice", + "FunctionInterfaceSpec", + "FunctionWithSeparateData", + "GeneratePreprocessorConditionals", + "IsSubsystemVirtual", + "MemberBlocks", + "MinAlgLoopOccurrences", + "OverrideUsingVariant", + "PropExecContextOutsideSubsystem", + "PropagateVariantConditions", + "RTWFcnName", + "RTWFcnNameOpts", + "RTWFileName", + "RTWFileNameOpts", + "RTWMemSecDataConstants", + "RTWMemSecDataInternal", + "RTWMemSecDataParameters", + "RTWMemSecFuncExecute", + "RTWMemSecFuncInitTerm", + "RTWSystemCode", + "SystemSampleTime", + "TemplateBlock", + "Variant", + "VariantControl" ], "values":[ - "**", - "Element-wise(.*)", + "FromPortIcon", + "ReadWrite", + "", + "All", "off", - "[]", - "[]", - "Inherit: Inherit via internal rule", + "on", + "", + "", "off", - "Simplest", + "", + "void_void", "off", - "1", - "All dimensions", - "-1" + "off", + "on", + "", + "off", + "", + "off", + "off", + "", + "Auto", + "", + "Auto", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Inherit from model", + "Auto", + "-1", + "", + "off", + "" ], "tabs":[ "Main", - "Signal Attributes", "-Other" ], "tabs_idx":[ 0, - 2, - 9 + 6 ] }, "viewer":{ - "jshandler":"webview/handlers/ElementHandler" + "jshandler":"webview/handlers/ContainerHandler" }, "obj_viewer":[ ], "finder":{ - "blocktype":"Product", + "blocktype":"SubSystem", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2272", - "className":"Simulink.Product", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2250", + "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"Divide1", - "label":"Divide1", + "name":"err", + "label":"err", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9163", "inspector":{ "params":[ - "Inputs", - "Multiplication", - "InputSameDT", + "Port", + "IconDisplay", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", - "SampleTime" + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" ], "values":[ - "**", - "Element-wise(.*)", - "off", + "1", + "Port number", "[]", "[]", - "Inherit: Inherit via internal rule", + "Inherit: auto", "off", - "Simplest", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "", "on", - "1", - "All dimensions", - "-1" + "off", + "off", + "off" ], "tabs":[ "Main", @@ -1002,7 +1002,7 @@ "tabs_idx":[ 0, 2, - 9 + 11 ] }, "viewer":{ @@ -1011,16 +1011,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Product", + "blocktype":"Inport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2250", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9163:2252", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"err", - "label":"err", + "name":"I", + "label":"I", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9163", "inspector":{ "params":[ @@ -1043,7 +1043,7 @@ "OutputFunctionCall" ], "values":[ - "1", + "3", "Port number", "[]", "[]", diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9163_d.png b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9163_d.png index 806d5dab75efa987fee26b46d38aebcf0167078c..7d3507f4fff741fea78ce00b16572499961c4618 100644 GIT binary patch literal 6972 zcmdU!S5Onsx9%wd(vb)#O}at^>C!klqO$siB9e z^xivXGv`0|&YiiB=jA+vFqujA&faT%-|t)b^jcM(n1Gr90|SFtQ9)K6Ja^qb?&5;K zg*ruP;0fPJLDv-ngQWfTff)}ap~1kQ-d2=-q3MO#Li=leb-%vZTOn$53XIMmx;vZU z{FqH$F&8zS;z%>4HK$66UR_&81Z<%ve_x%U1GXHBR;rc*rbo1L3Xezia*nN1r(A3c zifb~1yi=GyW-xRW@`|)#@bz&&pOZZ0eZifGP1N^fr&IX4MZnc?+|mhVFn(0?RybAl zu{8W%p1&am<7M(4*}FL8WQ_L}q(WXZVBV8{|G(#jj&U5a?S{i)B?I5BN(ZCj{QSkz zPWqH~ausoMGRcIvIGK0vGN;Gw1*cgOENo)+pZ?Q~g38MHxW{VbWMtfn8{OUA zeW{|Ju}ZA%P7?SErl!o#XT6wPT3VPJVOm;jnD+u&pjA3P4QXX%yhOOza{(8e#KgoE zzkg%BhQU;QeMRN6zJ!MpI3iTxic3Qje+!4z(=LwnYuj24rZq|MT$R~o8#lOS15XTH zTwG31m!iRf3!9VWxhR|1*jOQ#zjwiB@9sK%`}R$z#JDBI{{drte-^YW0rFT#_qCLU z1D6UVp-N2+Kg^fYh~ob4Vckw_Vq%z9f%zYVaFQ}xYg-#W3CZ%9zN7hUy?1*@$9I&C zqN3uvmSCK(@$o8$E99+EvD#qSJk7Z)?$er<1qSyHq6AKTLAyseBi-BRI^9we9BP#t z>ply<=W~91;|8w%r>{8MS@xbV6#vp`Noeq0i}<`r+Lfm<@5DV~w|s;4oP%HFYI0~5 z!?px;WW6QC$m7GN#8d8=9%9f8JgBii*o%exlU$DXjiM11!4V!u0%b z?G7HE>*^q5S$X-|=B8}cP)uwrZ=N|sqchj0l*^!6N=62|Gm7p&Pi^?yH|nCMYoFhC zle}gZIq3mCX9p{jrKVxf`$tDdI!`H&cjgB6mO6#qR>=ee1Yqo8l55-B$L{yqZ>Zmj zDtLPf+uPee1!vk-IO3&KsKo(=cK7$Y+l%_2^SdthIbRtV8L8>%QKQjlTFC$ejYBnN z(Ar22c8TW>toSR^NbKrx{FZnY6Ls(VWD%&Ijhm~vBy4QMX#@#gjkELRh5Ptk3*Ms`1fnlZ z+*d(G1!>0nMngl!!GQ~WWjA;CFY)oAa#@*WWw8|%6^xzH5fKOLVYS2Jd+iX6Q50%# zMe=5{Gdp=ojG#;0vA(4 zQV2OY*5RD$+L2F%UZJOCC>f+ZD@YUf&S4mKMlJRA)*MDjAELXcxX~mb<=JI(+Yv?q zs%NUw_UvpR@K0+fVW+MeBU_q0=GjRJH%#1@Qr?DR###PGF6@J~eDuEYJI3DqeYu(9 zh6aBH=I{L$SwDY%JU%|&OEiEh&cBg@HSS1+M?cDO9;DJIzCY_hqll01a6*%7?vkpU z_3n6clAO#Lx%-5HBR)KM#(*FwTH+jzKp+@VCDI0ka_FQXG+KN+VWX={q4E0M77Gs* zPQ2`ZfRn}9k7Cx`Twiqh5BK#c^YZa^`qM5Lg4>tT+r!4ff=5ToXRBw9Z{+3WG4k=n z{r)Z3+S)p3Q^~^0`UZ5mkB`Xv_wPa9$HvFMw6@OEo^ssu5Y5cY1T_+Up<~Jj>BPrK z^V<=h-CS$o&sBMa9+&rUuGkdRqioURV7`r-wqMft-@Jr!Bm z_M{&3@=3p`8q{M=KyF7NiRb_vgkBgnO6C@xYxZn9Bq8nUwa8VUiTk}WP6$YMr76WpwdrYB(R8d09mMol{ zoMH!kd_S_Yza%Egzj{T0?_eWxaen@~0A}E6!;10FZAGulRk3a&i<0=kl{8(= z!#=>Y? zPZG|<1l_VZRoPqMUkvm9M^Qz33D&<)MdiC?pk3bFC_z8akF+QsnwU^9HfC^L`NPV@ z6s(lUbq@mJd$+>H$!UJHjtU|EcF=63Y$b(-g=G+^m?6m^dAUH^Foj~_<8y7l&^PX? zDb~XM@E%-lg&rpl4^L6rsIIQArluwt1hVvv+jKW3c;}*1^7=ijI43t3ey}pIDfJ2Ue=*lx|XQBG`85!d(c-!b5y zKDAhsXQFI?i@n>KZAj|3_-#Mk(Gf{AwB{DaTk@-+A(d1A_iF=#&2!1p>8-=VLn2>C zS64nz8sM^seeE;!CLF3X-oAYaM0HS-ztv6&mT$Fn-|=I4QaMK0@LyS?k=?5r=(OjFz5rvV=(>5Z?}ap@nmz; z4j_cMxcKFMV$NXQPfA ztw>5hK)wHOe9f(XuY*P=YNb2r@MJD9ePTlA)vH$@KRZ)FOe_3Lzk*IXwIi5vY`UV% z8dC7`s+O-bq{sQY)D|`gNNBm`${L|MTwCYuiWZST*SNOxtYHhVf9U+N1B3zEgqWC^ zaDF7?w-Omk4ioqP*4T3JYE# z@4e>yw}6bs?dbY2Ws zs0E*!hqUH>q12GjkF{H>yH{Hl<;m^svf8L0yQDUiKC3s*ugQoGJxZoOg~Oe$_AVO1 zU67njnv}*QB`KJhu>gWBZafdycWiKPpM?NV%0*o_bS2AUdIzkjr-?cR&F1D_8yPr0 z%l}5LUROKex6=?3`8ssv&+*o@xdTiR^58*NAg4js#+=^=0Wn%>nT1hyz^=Lt4VPur z6HC;sr>9=9z$f*u+JlCpns(0*Fkw&Y7}tBDv}yiTPt!4+vgj_ipt9E7Uhxb4B8QI@Y-oO%ZG-Bib$MW zB`;UyC8_rh)=>rin&dZ&b8qiTpC)x`$E2mDF*b0$<)GlR=#whcBDFRbct8YHF8IR- zMKv|g$}$^%>h<;Y61_s;`)X5{^}tOak5#LEZah3ZhS6x1fPlsVJAZ$FnD4f;NGf=z zYMPj$n;ZY9PoFfkwITQK%UW2l0f3#b6Era~v9h(**bL_K8^{W}yit=_ICEWDrJdp5 zapG<&{o<)zxLBYj;apkvGdueoKlLZTmg3@QR1Y--BBP-J0cX>fE}4FMdg@G3pOy7t z)#{{y8*g*EDw>dr>$SGFJPbw;vdV)h+a-ojB0fDM$BwDzP468y+6ksdAu`yxxlj3(|}|IJ&;rsk5KQ@;dvM2+l)n zw;6l&$VaPCPoQX_8Hh9k56_UmQm2mnO!b%gda>>5B@%l7!#Ap_A_69&vWkk`=1{6v zN=n7+D-A%T@C}tZKsHj&i4)0zXmSkNWL8pG41C;npzQzlFV5i(5{dj}P!l^fr8o9V zmv1pC*m~qAdqN?|d&meX4dBxtyAX31&1NYjJk89@vz}>+CZ-WAvFNAHFDTG0w}^b2 zu_OZ&0$sPWOlsseG}j|Cm|b5K<&BAXInkf50kLoUNQ^N$Hdf}oF~&n@imr8+3Ow;~ zbSqF*P;e6Uc*lRc`HUv}#ZW5PgOk1Xi5g<~q+N$G_q>x3xa*~8B$8I#XVg8f$!(2X zH75>KDlG{faD>}L8>i*uSOz@v=*W9ZXK{T&kb#1N0uU!S)I}SL2CqFP+z%}R%cjV1 zid&*MKR<`o@^mjadD$CB-TAw|D9G@E<_?G@C=}|c{%<>-qfKD$jZGUA@>onWd#evw zfE?Nu)mVJ*UE~8xx_Nl`{L?AxI71uUj)=r03TsZ(gSj`=k>JQ+=U0}fTLr@QZNBVNK&T_$2r4fx^m zk(87a#<)?ScuwPT3}C4JXBn-UjaU}yAcHRIN_O*gozruwN)CB0V^x3LA6s0UN%Id zg~B(2)t=OZx2viz`sncR$)DK8Li(;&aeVlrx~<>Seug3JJK+sTauZ&IJ#DfGkBijsK;l}A0As%0%rD93&QyDXps1vK%mAK_5f1|y}|@Q7XddHbLB4o zUPaN1ha*kCuvW_}I+Xg&_a*bqc(0^hE>bn^_I!(;^IRWg7qpwWJ!`N907!eSgwJl< z7bud~e)r>s09B*p)zFVD3=-VF$9AAMfNmUmIV`pG&Ir?z0R2-?RAgjl@2>o6;N-*& z)NIDNlkS#Coff1s0#{uC@YQ+l(3cq+q}{o53L<4#q$MB(CP~S_);|wvXq4>ies%5y zuB3Vz^v)FORfdCcjLX_EE0~CY7ed3r>Jr>-ZEO~MpEb!ApiBf)*q=OMU|^7H<#|O; zcHZWLuu&id0sC?3M7}pt zWSbrr@ZKu?fi9VI24JgQHdVJQ4N}vRh=rx)s#{ zqA&x;{53IA?KE(|c^Hq8krB}3;^N{HD0GQ5@D$q-Fi&m{gg2$XD6BIm2m@%3>)T&h zycB2dQh-SnRaNOx68|T4fZ+`2i_9UbuCA^O5Pg%99)KB+ukd)P z$*QcRC_t?fDExP-0AlhbHa56z!D)*I%)9<-v9Yn?27#2(zNNRpT!<|>^_uYJ-;l_f zHhIp7@Zyz^y*(#z(3qGQ&{SW)5~Wz$0?q^l)VameZ@~v58M6eoo2RFSq2bo=XJe8# zXKFpYz1=-MiwXJ;508DUte$-N@?~4{M-sm_nxY-Ox$%m$9OR0Zg<5sTTie@g5)!bz zq%<*xI@3zMwe@wt|IyWE(+h23fR3m~N<%#j-7z0VL`9MK`1ruX!$H6yh(HE+n|&)$ z4cOb;t3O?ga4?ee+@1+RXn#(-6LKv;fS1B!`Z4+y(`97E2he~;3=rVlw;S~MXW&?v z3uQ~YV}=#-@uSPl)yYNegI2=7luG}1209;aNfy^FYi`a8c-yK{@6bn_B<#blUr+y^ zY0iI)+osY?<5V&l%jI`rWZ}&@)o}~@5kghHP)l&uoeEGsCdfs%sdjW!Q<)6{W;DQ3 zZzCSiLy$8;je-V7g44`~hE_9qjZ)d36%?0MWn|oh$%HXHBOSHjPMI8@>APvzD7tr| zv3|oc1BF7fN=gRDkz`(8IM#HC%yXZvuAp6~yZD*=o4Uv$PY^8OIqo1HGZtu~=gbA>D zMOD>Bg_w!W!{e>-jU&i!iBqqaFJC$@wBi_1$tW|nVVUqI-z6e)tNYMmJfGs&m|0(s zaBMsS7Cavx4CaY~jRjt?zT zDk{VeA3l_ol{Mz4&MPXixV}6CnJ=n_j4~qhXk#1{YJd5F1Yt8URVP45VB%7AlBda$ zuJr((XQ`=Ff*Kp+4ZQXnKc@f#i(B9WnpRY|UCTq!yx_Fk#T@-wL!)i(=Gqf*LeO=_ z^>I}b9T@PlP3K~Ps20Y#O-@G_Ib=oaiaBZ{P~31#4b}ysGwxBNem9UiKj@cEsmX+3 zrJnerhuY>$O&m5JNzAuzJ^m-?l_{8!(ZF(liY}O0CPhI*s=V&UH29wQ_%)mNCKw)z zgHMuwz1yWk?M*@qc^Xp-Fe?aoSU=M70V~M^e{F zDx;W$1UYbDfMJWAzz}7BImMA<>?c0YLopj1H<47CYaAS$F9?M4>(_%N<6ntLI>R0X z2$=}+^75W;7~Opodn8_&;i-050(=-an%{SJrZfBgK3o_Pa2B@W9`c+Z$^Yd@+ z>%zPFep-^1PZ9-9+R>xo1JI+XRPL*J4;E~dUp(Ju; zNlI=JOsDMZXkDA0G0NHM5J=0>_ybP-zv!gOvH7I_9;X;ujGW^?#GlyS}>0AR#de z#6+X3BnUJV87-|cpa(!zD+0=@IgkisE0{5W@e(k(mYje0GTO@59 F{9k21d<_5q literal 6973 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 - - - + + + - - + + - + - + - - 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - + + + - - + + - - out + + Ini=0 + + + + + + + + + + + + + + + sfix32_En20 @@ -71,35 +118,35 @@ - + - + - + - + - + - + - + - + @@ -117,11 +164,11 @@ - + - + sfix16_En4 @@ -131,101 +178,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Ini=0 - - - - - - - - - - - - - - - sfix32_En20 - - - - - - - - @@ -238,27 +190,27 @@ - + - + - + - + - + - + @@ -276,11 +228,11 @@ - + - + sfix16_En4 @@ -302,51 +254,51 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -364,11 +316,11 @@ - + - + sfix32_En20 @@ -380,91 +332,52 @@ - - - + + + - - - - - - - - + + - - + + - - u + + - - + + - - y + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Integrator + + - - - - - - - + - - + + - - sfix16_En4 + + sfix16_En5 @@ -475,58 +388,52 @@ - - - - - - - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - sfix16_En5 + + sfix32_En20 @@ -537,58 +444,107 @@ - - - + + + - - + + - + - - + + - - 7 + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + - - - + + + + + + + + up - - + + - - satMin + + u + + + + + + + + lo + + + + + + + + y + + + + + + + - + - - + + - + sfix16_En4 @@ -600,59 +556,52 @@ - - - + + + - - + + - - + + - - 4 + + - - - - - - + + + + + + + - - - - - - - - - - - Kb + + + - - + + - - + + - - ufix16_En16 + + sfix32_En20 @@ -663,59 +612,59 @@ - - + + - + - + - - 6 + + 5 - + - - + + - - + + - - satMax + + ext_limProt - - + + - - + + - - sfix16_En4 + + sfix32_En20 @@ -726,59 +675,59 @@ - - + + - + - + - - 5 + + 7 - + - - + + - - + + - - ext_limProt + + satMin - - + + - - + + - - sfix32_En20 + + sfix16_En4 @@ -789,58 +738,58 @@ - - + + - + - + - - 3 + + 4 - + - - + + - - + + - - I + + Kb - + - - + + - + ufix16_En16 @@ -862,11 +811,11 @@ - + - + 2 @@ -884,11 +833,11 @@ - + - + P @@ -899,11 +848,11 @@ - + - + ufix16_En12 @@ -915,108 +864,107 @@ - - - + + + - - + + - + - - + + - - + + 6 - - - - - - - + + + + + + + + + + + + + - - + + - - + + satMax + + + + + + + - - + + - - + + sfix16_En4 - - + + + + + + + + + + + + - - - - - - - up - - - - - - - - u - - - - - - lo - - - - + - - y + + 1 - - + + - - - + + + - - + + - - sfix16_En4 + + out @@ -1027,52 +975,91 @@ - - - + + + - - + + + + + + + + - - + + - - + + u - - + + - - + + y - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Integrator - - + + + + + + + + - + - - sfix32_En20 + + sfix16_En4 @@ -1083,52 +1070,65 @@ - - - + + + + + + + + + - - + + - - - - - - - - - + - - + + 1 - - + + + + + + + + + + + + + + + + + err - - + + - + - - sfix32_En20 + + sfix16_En4 @@ -1139,11 +1139,11 @@ - - + + - + @@ -1153,45 +1153,45 @@ - - 1 + + 3 - + - - + + - + - - err + + I - - + + - + - - sfix16_En4 + + ufix16_En16 @@ -1486,5 +1486,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9164_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9164_d.svg index 28806b6..504d351 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9164_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9164_d.svg @@ -63,7 +63,7 @@ - + @@ -142,7 +142,7 @@ - + @@ -334,7 +334,7 @@ - + @@ -526,7 +526,7 @@ - + @@ -605,7 +605,7 @@ - + @@ -654,7 +654,7 @@ - + @@ -1009,16 +1009,16 @@ - + - + - + @@ -1176,5 +1176,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9171_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9171_d.json index 31bd902..8b94ad5 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9171_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9171_d.json @@ -1,41 +1,62 @@ [ { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9190", - "className":"Simulink.Sum", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9191", + "className":"Simulink.Outport", "icon":"WebViewIcon3", - "name":"Sum3", - "label":"Sum3", + "name":"Vq_Vlt", + "label":"Vq_Vlt", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9171", "inspector":{ "params":[ - "IconShape", - "Inputs", - "InputSameDT", - "AccumDataTypeStr", + "Port", + "IconDisplay", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", - "SampleTime" + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" ], "values":[ - "rectangular", - "+++", - "off", - "Inherit: Inherit via internal rule", + "1", + "Port number", "[]", "[]", - "Inherit: Inherit via internal rule", + "Inherit: auto", "off", - "Simplest", - "on", - "1", - "All dimensions", - "-1" + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "off", + "[]", + "off", + "held", + "off", + "0", + "", + [ + ], + "Dialog", + "Auto", + "off" ], "tabs":[ "Main", @@ -45,7 +66,7 @@ "tabs_idx":[ 0, 2, - 10 + 11 ] }, "viewer":{ @@ -54,7 +75,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Sum", + "blocktype":"Outport", "masktype":"" } }, @@ -92,27 +113,53 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9186", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9190", + "className":"Simulink.Sum", "icon":"WebViewIcon3", - "name":"Goto3", - "label":"Goto3", + "name":"Sum3", + "label":"Sum3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9171", "inspector":{ "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" + "IconShape", + "Inputs", + "InputSameDT", + "AccumDataTypeStr", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "RndMeth", + "SaturateOnIntegerOverflow", + "CollapseDim", + "CollapseMode", + "SampleTime" ], "values":[ - "n_limProt", - "local", - "Tag" + "rectangular", + "+++", + "off", + "Inherit: Inherit via internal rule", + "[]", + "[]", + "Inherit: Inherit via internal rule", + "off", + "Simplest", + "on", + "1", + "All dimensions", + "-1" ], "tabs":[ - "Parameter Attributes" + "Main", + "Signal Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 2, + 10 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -120,7 +167,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"Sum", "masktype":"" } }, @@ -164,11 +211,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9183", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9187", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto1", - "label":"Goto1", + "name":"Goto31", + "label":"Goto31", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9171", "inspector":{ "params":[ @@ -177,7 +224,7 @@ "IconDisplay" ], "values":[ - "Vq_max", + "iq_limProt", "local", "Tag" ], @@ -197,11 +244,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9184", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9185", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto13", - "label":"Goto13", + "name":"Goto2", + "label":"Goto2", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9171", "inspector":{ "params":[ @@ -210,7 +257,7 @@ "IconDisplay" ], "values":[ - "r_inpTgtSca", + "Vq_min", "local", "Tag" ], @@ -230,74 +277,27 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9191", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9184", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Vq_Vlt", - "label":"Vq_Vlt", + "name":"Goto13", + "label":"Goto13", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9171", "inspector":{ "params":[ - "Port", - "IconDisplay", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" + "GotoTag", + "TagVisibility", + "IconDisplay" ], "values":[ - "1", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "off", - "[]", - "off", - "held", - "off", - "0", - "", - [ - ], - "Dialog", - "Auto", - "off" + "r_inpTgtSca", + "local", + "Tag" ], "tabs":[ - "Main", - "Signal Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 2, - 11 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -305,7 +305,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", + "blocktype":"Goto", "masktype":"" } }, @@ -341,61 +341,151 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9176", - "className":"Simulink.Inport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9181", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"n_limProt", - "label":"n_limProt", + "name":"From20", + "label":"From20", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9171", "inspector":{ "params":[ - "Port", - "IconDisplay", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" + "GotoTag", + "IconDisplay" + ], + "values":[ + "Vq_min", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9180", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From2", + "label":"From2", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9171", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "iq_limProt", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9178", + "className":"Simulink.From", + "icon":"WebViewIcon3", + "name":"From", + "label":"From", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9171", + "inspector":{ + "params":[ + "GotoTag", + "IconDisplay" + ], + "values":[ + "r_inpTgtSca", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"From", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9186", + "className":"Simulink.Goto", + "icon":"WebViewIcon3", + "name":"Goto3", + "label":"Goto3", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9171", + "inspector":{ + "params":[ + "GotoTag", + "TagVisibility", + "IconDisplay" + ], + "values":[ + "n_limProt", + "local", + "Tag" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Goto", + "masktype":"" + } + }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9177", + "className":"Simulink.ActionPort", + "icon":"WebViewIcon3", + "name":"Action Port", + "label":"Action Port", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9171", + "inspector":{ + "params":[ + "InitializeStates", + "PropagateVarSize" ], "values":[ - "5", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "", - "on", - "off", - "off", - "off" + "reset", + "Only when execution is resumed" ], "tabs":[ - "Main", - "Signal Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 2, - 11 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -403,7 +493,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", + "blocktype":"ActionPort", "masktype":"" } }, @@ -439,11 +529,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9187", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9183", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto31", - "label":"Goto31", + "name":"Goto1", + "label":"Goto1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9171", "inspector":{ "params":[ @@ -452,7 +542,7 @@ "IconDisplay" ], "values":[ - "iq_limProt", + "Vq_max", "local", "Tag" ], @@ -538,68 +628,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9180", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From2", - "label":"From2", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9171", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "iq_limProt", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9177", - "className":"Simulink.ActionPort", - "icon":"WebViewIcon3", - "name":"Action Port", - "label":"Action Port", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9171", - "inspector":{ - "params":[ - "InitializeStates", - "PropagateVarSize" - ], - "values":[ - "reset", - "Only when execution is resumed" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"ActionPort", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9173", "className":"Simulink.Inport", @@ -668,73 +696,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9181", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From20", - "label":"From20", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9171", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "Vq_min", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9178", - "className":"Simulink.From", - "icon":"WebViewIcon3", - "name":"From", - "label":"From", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9171", - "inspector":{ - "params":[ - "GotoTag", - "IconDisplay" - ], - "values":[ - "r_inpTgtSca", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"From", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9172", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9174", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"r_inpTgtSca", - "label":"r_inpTgtSca", + "name":"Vq_min", + "label":"Vq_min", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9171", "inspector":{ "params":[ @@ -757,7 +723,7 @@ "OutputFunctionCall" ], "values":[ - "1", + "3", "Port number", "[]", "[]", @@ -797,27 +763,61 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9185", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9176", + "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"Goto2", - "label":"Goto2", + "name":"n_limProt", + "label":"n_limProt", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9171", "inspector":{ "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" ], "values":[ - "Vq_min", - "local", - "Tag" + "5", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "", + "on", + "off", + "off", + "off" ], "tabs":[ - "Parameter Attributes" + "Main", + "Signal Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 2, + 11 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -825,16 +825,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"Inport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9174", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9172", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"Vq_min", - "label":"Vq_min", + "name":"r_inpTgtSca", + "label":"r_inpTgtSca", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9171", "inspector":{ "params":[ @@ -857,7 +857,7 @@ "OutputFunctionCall" ], "values":[ - "3", + "1", "Port number", "[]", "[]", diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9171_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9171_d.svg index 97ac9c2..8a93bde 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9171_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9171_d.svg @@ -13,84 +13,44 @@ - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + 1 - - + + - - - + + + - - + + - - sfix16_En4 + + Vq_Vlt @@ -111,131 +71,131 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -261,11 +221,11 @@ - + - + sfix16_En4 @@ -277,29 +237,84 @@ - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - [n_limProt] + + - - + + + + + + + + + + + + + + + + + sfix16_En4 @@ -312,7 +327,7 @@ - + @@ -320,35 +335,35 @@ - + - + - + - + - + - + - + - + @@ -360,35 +375,35 @@ - + - + up - + - + u - + - + lo - + - + y @@ -406,11 +421,11 @@ - + - + sfix16_En4 @@ -422,28 +437,28 @@ - - + + - + - + - - [Vq_max] + + [iq_limProt] - + @@ -455,28 +470,28 @@ - - + + - + - + - - [r_inpTgtSca] + + [Vq_min] - + @@ -488,44 +503,29 @@ - - - + + + - - + + - - + + - - 1 + + [r_inpTgtSca] - - - - - - - - - - - - - - - - - Vq_Vlt + + @@ -584,58 +584,43 @@ - - - + + + - - + + - + - - 5 + + [Vq_min] - - - - - - - - - - - - - - - - - n_limProt + + - + - - + + - + sfix16_En4 @@ -647,43 +632,43 @@ - - + + - + - + - - [Vq_max] + + [iq_limProt] - + - + - - + + - + sfix16_En4 @@ -695,29 +680,44 @@ - - - + + + - - + + - - + + - - [iq_limProt] + + [r_inpTgtSca] - - + + + + + + + + + + + + + + + + + sfix16_En4 @@ -728,59 +728,77 @@ - - - + + + - - + + - + - - 4 + + [n_limProt] - - + + - - - - + + + + + + + + + + + + + + + - - + + - - iq_limProt + + case: { } - - - + + + + + + + + + + - - + + - - sfix16_En4 + + Action Port @@ -791,43 +809,43 @@ - - + + - + - + - - [iq_limProt] + + [Vq_max] - + - + - - + + - + sfix16_En4 @@ -839,44 +857,29 @@ - - - + + + - - + + - - + + - - case: { } + + [Vq_max] - - - - - - - - - - - - - - - - - Action Port + + @@ -887,11 +890,11 @@ - - + + - + @@ -901,44 +904,44 @@ - - 2 + + 4 - + - - + + - + - - Vq_max + + iq_limProt - + - + - + sfix16_En4 @@ -950,43 +953,58 @@ - - - + + + - - + + - + - - [Vq_min] + + 2 - - + + + + + + + + + + + + + + + + + Vq_max - + - - + + - + sfix16_En4 @@ -998,43 +1016,58 @@ - - - + + + - - + + - - + + - - [r_inpTgtSca] + + 3 - - + + + + + + + + + + + + + + + + + Vq_min - + - - + + - + sfix16_En4 @@ -1046,92 +1079,59 @@ - - + + - + - + - - 1 + + 5 - + - - + + - - + + - - r_inpTgtSca + + n_limProt - + - - - - - - - sfix16_En4 - - - - - - - - - - - - - - - - - - - - + - - [Vq_min] - - - - - - - + + sfix16_En4 @@ -1142,11 +1142,11 @@ - - + + - + @@ -1156,44 +1156,44 @@ - - 3 + + 1 - + - - + + - + - - Vq_min + + r_inpTgtSca - + - + - + sfix16_En4 @@ -1387,5 +1387,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9188_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9188_d.svg index cdf2c52..402a4bc 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9188_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9188_d.svg @@ -63,7 +63,7 @@ - + @@ -1012,13 +1012,13 @@ - + - + - + @@ -1103,10 +1103,10 @@ - + - + @@ -1176,5 +1176,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9198_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9198_d.json index 0b44c34..35cd210 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9198_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9198_d.json @@ -1417,6 +1417,86 @@ "masktype":"" } }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9455", + "className":"Simulink.Outport", + "icon":"WebViewIcon3", + "name":"VqFinPrev", + "label":"VqFinPrev", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9198", + "inspector":{ + "params":[ + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" + ], + "values":[ + "4", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "off", + "0", + "off", + "reset", + "off", + "0", + "", + [ + ], + "Dialog", + "Auto", + "off" + ], + "tabs":[ + "Main", + "Signal Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 2, + 11 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Outport", + "masktype":"" + } + }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9235", "className":"Simulink.Switch", @@ -1475,37 +1555,42 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9233", - "className":"Simulink.RelationalOperator", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9449", + "className":"Simulink.UnitDelay", "icon":"WebViewIcon3", - "name":"Relational Operator6", - "label":"Relational Operator6", + "name":"UnitDelay4", + "label":"UnitDelay4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9198", "inspector":{ "params":[ - "Operator", - "InputSameDT", - "OutDataTypeStr", - "RndMeth", + "InitialCondition", + "InputProcessing", "SampleTime", - "ZeroCross" + "StateName", + "CodeGenStateStorageTypeQualifier", + "StateMustResolveToSignalObject", + "StateSignalObject", + "StateStorageClass" ], "values":[ - "==", - "off", - "boolean", - "Simplest", + "0", + "Inherited", "-1", - "on" + "", + "", + "off", + [ + ], + "Auto" ], "tabs":[ "Main", - "Data Type", + "State Attributes", "-Other" ], "tabs_idx":[ 0, - 1, + 3, 4 ] }, @@ -1515,32 +1600,44 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"RelationalOperator", + "blocktype":"UnitDelay", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9227", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9233", + "className":"Simulink.RelationalOperator", "icon":"WebViewIcon3", - "name":"Goto5", - "label":"Goto5", + "name":"Relational Operator6", + "label":"Relational Operator6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9198", "inspector":{ "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" + "Operator", + "InputSameDT", + "OutDataTypeStr", + "RndMeth", + "SampleTime", + "ZeroCross" ], "values":[ - "z_ctrlTypSel", - "local", - "Tag" + "==", + "off", + "boolean", + "Simplest", + "-1", + "on" ], "tabs":[ - "Parameter Attributes" + "Main", + "Data Type", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 1, + 4 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1548,7 +1645,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"RelationalOperator", "masktype":"" } }, @@ -1586,11 +1683,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9451", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9452", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto11", - "label":"Goto11", + "name":"Goto12", + "label":"Goto12", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9198", "inspector":{ "params":[ @@ -1599,7 +1696,7 @@ "IconDisplay" ], "values":[ - "VqFin", + "VqFinPrev", "local", "Tag" ], @@ -1619,11 +1716,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9454", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9453", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From5", - "label":"From5", + "name":"From4", + "label":"From4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9198", "inspector":{ "params":[ @@ -1631,7 +1728,7 @@ "IconDisplay" ], "values":[ - "VqFinPrev", + "VqFin", "Tag" ], "tabs":[ @@ -1650,11 +1747,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9453", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9215", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From4", - "label":"From4", + "name":"From3", + "label":"From3", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9198", "inspector":{ "params":[ @@ -1662,7 +1759,7 @@ "IconDisplay" ], "values":[ - "VqFin", + "r_inpTgtSca", "Tag" ], "tabs":[ @@ -1681,61 +1778,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9449", - "className":"Simulink.UnitDelay", - "icon":"WebViewIcon3", - "name":"UnitDelay4", - "label":"UnitDelay4", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9198", - "inspector":{ - "params":[ - "InitialCondition", - "InputProcessing", - "SampleTime", - "StateName", - "CodeGenStateStorageTypeQualifier", - "StateMustResolveToSignalObject", - "StateSignalObject", - "StateStorageClass" - ], - "values":[ - "0", - "Inherited", - "-1", - "", - "", - "off", - [ - ], - "Auto" - ], - "tabs":[ - "Main", - "State Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 3, - 4 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"UnitDelay", - "masktype":"" - } - }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9210", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9214", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From", - "label":"From", + "name":"From25", + "label":"From25", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9198", "inspector":{ "params":[ @@ -1743,7 +1790,7 @@ "IconDisplay" ], "values":[ - "b_enaFOC", + "z_ctrlTypSel", "Tag" ], "tabs":[ @@ -1762,21 +1809,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9452", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9454", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto12", - "label":"Goto12", + "name":"From5", + "label":"From5", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9198", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ "VqFinPrev", - "local", "Tag" ], "tabs":[ @@ -1790,7 +1835,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, @@ -1844,19 +1889,21 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9214", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9451", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From25", - "label":"From25", + "name":"Goto11", + "label":"Goto11", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9198", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "z_ctrlTypSel", + "VqFin", + "local", "Tag" ], "tabs":[ @@ -1870,79 +1917,30 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9455", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9210", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"VqFinPrev", - "label":"VqFinPrev", + "name":"From", + "label":"From", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9198", "inspector":{ "params":[ - "Port", - "IconDisplay", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" + "GotoTag", + "IconDisplay" ], "values":[ - "4", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "off", - "0", - "off", - "reset", - "off", - "0", - "", - [ - ], - "Dialog", - "Auto", - "off" + "b_enaFOC", + "Tag" ], "tabs":[ - "Main", - "Signal Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 2, - 11 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -1950,24 +1948,26 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9215", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9227", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From3", - "label":"From3", + "name":"Goto5", + "label":"Goto5", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9198", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "r_inpTgtSca", + "z_ctrlTypSel", + "local", "Tag" ], "tabs":[ @@ -1981,7 +1981,7 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9198_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9198_d.svg index aaea944..f9d2a89 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9198_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9198_d.svg @@ -1178,30 +1178,30 @@ - + - + - + int16 - + - + - + int16 @@ -1797,46 +1797,70 @@ - - - + + + - - + + - + - - + + 4 - - - - - - - + + + + + + + + + + + + + - - + + - - + + VqFinPrev + + + + + + + + + + + + + + + + + + - + @@ -1844,7 +1868,7 @@ - + @@ -1852,7 +1876,7 @@ - + @@ -1860,7 +1884,7 @@ - + @@ -1868,7 +1892,7 @@ - + @@ -1876,7 +1900,7 @@ - + @@ -1884,7 +1908,7 @@ - + @@ -1892,7 +1916,7 @@ - + @@ -1900,7 +1924,7 @@ - + @@ -1908,7 +1932,7 @@ - + @@ -1916,7 +1940,7 @@ - + @@ -1924,7 +1948,7 @@ - + @@ -1932,7 +1956,7 @@ - + @@ -1940,22 +1964,46 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + - + T - + - + F @@ -1973,11 +2021,11 @@ - + - + int16 @@ -1989,38 +2037,46 @@ - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + @@ -2034,23 +2090,38 @@ - - + + + + + + + + + + + + + + + + + Ini=0 - - + + - - + + - - boolean + + int16 @@ -2061,29 +2132,68 @@ - - - + + + - - + + - + - - + + - - [z_ctrlTypSel] + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + boolean @@ -2104,11 +2214,11 @@ - + - + [r_inpTgtSca] @@ -2127,28 +2237,28 @@ - - + + - + - + - - [VqFin] + + [VqFinPrev] - + @@ -2160,43 +2270,43 @@ - - + + - + - + - - [VqFinPrev] + + [VqFin] - + - + - - + + - + int16 @@ -2208,43 +2318,43 @@ - - + + - + - + - - [VqFin] + + [r_inpTgtSca] - + - + - - + + - + int16 @@ -2256,91 +2366,44 @@ - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + [z_ctrlTypSel] - - - - - - - - - - - - - - - - - - - - - - - - - Ini=0 + + - + - - + + - - int16 + + uint8 @@ -2351,77 +2414,44 @@ - - + + - + - + - - [b_enaFOC] + + [VqFinPrev] - + - - + + - - - - - - boolean - - - - - - - - - - - - - - - - - - - - - - + + - - [VqFinPrev] - - - - - - - + + int16 @@ -2442,11 +2472,11 @@ - + - + CTRL_COM @@ -2464,11 +2494,11 @@ - + - + uint8 @@ -2480,44 +2510,29 @@ - - - + + + - - + + - - + + - - [z_ctrlTypSel] + + [VqFin] - - - - - - - - - - - - - - - - - uint8 + + @@ -2528,44 +2543,44 @@ - - - + + + - - + + - - + + - - 4 + + [b_enaFOC] - - + + - - - + + + - - + + - - VqFinPrev + + boolean @@ -2576,44 +2591,29 @@ - - - + + + - - + + - - + + - - [r_inpTgtSca] + + [z_ctrlTypSel] - - - - - - - - - - - - - - - - - int16 + + @@ -3218,5 +3218,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9292_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9292_d.svg index 11772da..1a6be58 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9292_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9292_d.svg @@ -10,5 +10,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9293_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9293_d.svg index 6a3bde9..9b39970 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9293_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9293_d.svg @@ -10,5 +10,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9333_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9333_d.json index c2be3ee..79b99c0 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9333_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9333_d.json @@ -48,6 +48,86 @@ "finder":[ ] }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9372", + "className":"Simulink.Outport", + "icon":"WebViewIcon3", + "name":"r_inpTgtSca", + "label":"r_inpTgtSca", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9333", + "inspector":{ + "params":[ + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "EnsureOutportIsVirtual", + "InitialOutput", + "MustResolveToSignalObject", + "OutputWhenDisabled", + "OutputWhenUnConnected", + "OutputWhenUnconnectedValue", + "SignalName", + "SignalObject", + "SourceOfInitialOutputValue", + "StorageClass", + "VectorParamsAs1DForOutWhenUnconnected" + ], + "values":[ + "1", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "off", + "0", + "off", + "reset", + "off", + "0", + "", + [ + ], + "Dialog", + "Auto", + "off" + ], + "tabs":[ + "Main", + "Signal Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 2, + 11 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Outport", + "masktype":"" + } + }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9371", "className":"Simulink.Merge", @@ -131,74 +211,27 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9372", - "className":"Simulink.Outport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9369", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"r_inpTgtSca", - "label":"r_inpTgtSca", + "name":"Goto7", + "label":"Goto7", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9333", "inspector":{ "params":[ - "Port", - "IconDisplay", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "EnsureOutportIsVirtual", - "InitialOutput", - "MustResolveToSignalObject", - "OutputWhenDisabled", - "OutputWhenUnConnected", - "OutputWhenUnconnectedValue", - "SignalName", - "SignalObject", - "SourceOfInitialOutputValue", - "StorageClass", - "VectorParamsAs1DForOutWhenUnconnected" + "GotoTag", + "TagVisibility", + "IconDisplay" ], "values":[ - "1", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "off", - "0", - "off", - "reset", - "off", - "0", - "", - [ - ], - "Dialog", - "Auto", - "off" + "z_ctrlTypSel", + "local", + "Tag" ], "tabs":[ - "Main", - "Signal Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 2, - 11 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -206,24 +239,26 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Outport", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9364", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9367", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From22", - "label":"From22", + "name":"Goto13", + "label":"Goto13", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9333", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ "r_inpTgt", + "local", "Tag" ], "tabs":[ @@ -237,16 +272,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9362", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9365", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From11", - "label":"From11", + "name":"From9", + "label":"From9", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9333", "inspector":{ "params":[ @@ -254,7 +289,7 @@ "IconDisplay" ], "values":[ - "r_inpTgtSca", + "z_ctrlModPrev", "Tag" ], "tabs":[ @@ -273,19 +308,21 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9363", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9368", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From19", - "label":"From19", + "name":"Goto6", + "label":"Goto6", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9333", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ - "z_ctrlTypSel", + "r_inpTgtSca", + "local", "Tag" ], "tabs":[ @@ -299,16 +336,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9361", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9364", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From10", - "label":"From10", + "name":"From22", + "label":"From22", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9333", "inspector":{ "params":[ @@ -335,21 +372,19 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9367", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9363", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto13", - "label":"Goto13", + "name":"From19", + "label":"From19", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9333", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "r_inpTgt", - "local", + "z_ctrlTypSel", "Tag" ], "tabs":[ @@ -363,26 +398,24 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9366", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9361", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"Goto1", - "label":"Goto1", + "name":"From10", + "label":"From10", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9333", "inspector":{ "params":[ "GotoTag", - "TagVisibility", "IconDisplay" ], "values":[ - "z_ctrlModPrev", - "local", + "r_inpTgt", "Tag" ], "tabs":[ @@ -396,16 +429,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9368", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9366", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto6", - "label":"Goto6", + "name":"Goto1", + "label":"Goto1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9333", "inspector":{ "params":[ @@ -414,7 +447,7 @@ "IconDisplay" ], "values":[ - "r_inpTgtSca", + "z_ctrlModPrev", "local", "Tag" ], @@ -530,6 +563,73 @@ "masktype":"" } }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9335", + "className":"Simulink.Inport", + "icon":"WebViewIcon3", + "name":"r_inpTgt", + "label":"r_inpTgt", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9333", + "inspector":{ + "params":[ + "Port", + "IconDisplay", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" + ], + "values":[ + "2", + "Port number", + "[]", + "[]", + "Inherit: auto", + "off", + "inherit", + "-1", + "Inherit", + "-1", + "auto", + "off", + "", + "on", + "off", + "off", + "off" + ], + "tabs":[ + "Main", + "Signal Attributes", + "-Other" + ], + "tabs_idx":[ + 0, + 2, + 11 + ] + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"Inport", + "masktype":"" + } + }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9337", "className":"Simulink.SubSystem", @@ -627,73 +727,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9335", - "className":"Simulink.Inport", - "icon":"WebViewIcon3", - "name":"r_inpTgt", - "label":"r_inpTgt", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9333", - "inspector":{ - "params":[ - "Port", - "IconDisplay", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" - ], - "values":[ - "2", - "Port number", - "[]", - "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "", - "on", - "off", - "off", - "off" - ], - "tabs":[ - "Main", - "Signal Attributes", - "-Other" - ], - "tabs_idx":[ - 0, - 2, - 11 - ] - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Inport", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9334", "className":"Simulink.Inport", @@ -761,39 +794,6 @@ "masktype":"" } }, - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9369", - "className":"Simulink.Goto", - "icon":"WebViewIcon3", - "name":"Goto7", - "label":"Goto7", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9333", - "inspector":{ - "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" - ], - "values":[ - "z_ctrlTypSel", - "local", - "Tag" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"Goto", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9336", "className":"Simulink.Inport", @@ -862,11 +862,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9365", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9362", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From9", - "label":"From9", + "name":"From11", + "label":"From11", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9333", "inspector":{ "params":[ @@ -874,7 +874,7 @@ "IconDisplay" ], "values":[ - "z_ctrlModPrev", + "r_inpTgtSca", "Tag" ], "tabs":[ diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9333_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9333_d.svg index 0cf56a7..fe822a0 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9333_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9333_d.svg @@ -30,11 +30,59 @@ + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + r_inpTgtSca + + + + + + + + - + @@ -42,19 +90,19 @@ - + - + - + - + @@ -80,11 +128,11 @@ - + - + sfix16_En4 @@ -98,7 +146,7 @@ - + @@ -106,27 +154,27 @@ - + - + u1 - + - + if(u1 == CTRL_COM) - + - + else @@ -140,30 +188,30 @@ - + - - + + - + action - + - - + + - + action @@ -175,44 +223,62 @@ - - - + + + - - + + - - + + - - 1 + + [z_ctrlTypSel] - - + + - - - - + + + + + + + + + + + + + + + - - + + - - r_inpTgtSca + + [r_inpTgt] + + + + + + + @@ -223,44 +289,44 @@ - - + + - + - + - - [r_inpTgt] + + [z_ctrlModPrev] - + - - + + - - + + - - sfix16_En4 + + uint8 @@ -271,43 +337,76 @@ - - + + + + + + + + + + + + + + + + [r_inpTgtSca] + + + + + + + + + + + + + + + + + + + - + - + - - [r_inpTgtSca] + + [r_inpTgt] - + - + - - + + - + sfix16_En4 @@ -329,11 +428,11 @@ - + - + [z_ctrlTypSel] @@ -351,11 +450,11 @@ - + - + uint8 @@ -377,11 +476,11 @@ - + - + [r_inpTgt] @@ -399,11 +498,11 @@ - + - + sfix16_En4 @@ -413,39 +512,6 @@ - - - - - - - - - - - - - - - - - - [r_inpTgt] - - - - - - - - - - - - - - - @@ -458,11 +524,11 @@ - + - + [z_ctrlModPrev] @@ -479,44 +545,11 @@ - - - - - - - - - - - - - - - - - - [r_inpTgtSca] - - - - - - - - - - - - - - - - + @@ -530,35 +563,35 @@ - + - + r_inpTgt - + - + z_ctrlModPrev - + - + r_inpTgtScaFOC - + - + else { } @@ -588,11 +621,11 @@ - + - + FOC_Control_Type @@ -609,11 +642,11 @@ - + - + sfix16_En4 @@ -630,11 +663,11 @@ - + - + action @@ -646,15 +679,78 @@ - + + + + + + + + + + + + + + + + 2 + + + + + + + + + + + + + + + + + + + + + + r_inpTgt + + + + + + + + + + + + + + + sfix16_En4 + + + + + + + + + + + - + @@ -668,27 +764,27 @@ - + - + r_inpTgt - + - + r_inpTgtScaCOM - + - + if { } @@ -718,11 +814,11 @@ - + - + Commutation_Control_Type @@ -735,16 +831,16 @@ - - + + - - + + - - action + + sfix16_En4 @@ -756,16 +852,16 @@ - - + + - - + + - - sfix16_En4 + + action @@ -776,76 +872,13 @@ - + - - - - - - - - - - - - - - - 2 - - - - - - - - - - - - - - - - - - - - - - r_inpTgt - - - - - - - - - - - - - - - sfix16_En4 - - - - - - - - - - - @@ -855,11 +888,11 @@ - + - + 1 @@ -877,11 +910,11 @@ - + - + z_ctrlTypSel @@ -892,11 +925,11 @@ - + - + uint8 @@ -906,39 +939,6 @@ - - - - - - - - - - - - - - - - - - [z_ctrlTypSel] - - - - - - - - - - - - - - - @@ -1004,11 +1004,11 @@ - - + + - + @@ -1018,30 +1018,30 @@ - - [z_ctrlModPrev] + + [r_inpTgtSca] - + - - + + - + - - uint8 + + sfix16_En4 @@ -1234,5 +1234,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9337_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9337_d.json index c42b5bc..5e16b69 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9337_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9337_d.json @@ -1,35 +1,4 @@ [ - { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9339", - "className":"Simulink.ActionPort", - "icon":"WebViewIcon3", - "name":"Action Port", - "label":"Action Port", - "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9337", - "inspector":{ - "params":[ - "InitializeStates", - "PropagateVarSize" - ], - "values":[ - "reset", - "Only when execution is resumed" - ], - "tabs":[ - "Parameter Attributes" - ], - "tabs_idx":0 - }, - "viewer":{ - "jshandler":"webview/handlers/ElementHandler" - }, - "obj_viewer":[ - ], - "finder":{ - "blocktype":"ActionPort", - "masktype":"" - } - }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9340", "className":"Simulink.Outport", @@ -110,6 +79,37 @@ "masktype":"" } }, + { + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9339", + "className":"Simulink.ActionPort", + "icon":"WebViewIcon3", + "name":"Action Port", + "label":"Action Port", + "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9337", + "inspector":{ + "params":[ + "InitializeStates", + "PropagateVarSize" + ], + "values":[ + "reset", + "Only when execution is resumed" + ], + "tabs":[ + "Parameter Attributes" + ], + "tabs_idx":0 + }, + "viewer":{ + "jshandler":"webview/handlers/ElementHandler" + }, + "obj_viewer":[ + ], + "finder":{ + "blocktype":"ActionPort", + "masktype":"" + } + }, { "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9338", "className":"Simulink.Inport", diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9337_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9337_d.svg index 94d40ee..707c3e2 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9337_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9337_d.svg @@ -13,44 +13,44 @@ - - - + + + - - + + - + - - if { } + + 1 - - + + - - + + - + - - Action Port + + r_inpTgtScaCOM @@ -61,44 +61,44 @@ - - - + + + - - + + - + - - 1 + + if { } - - + + - - + + - + - - r_inpTgtScaCOM + + Action Port @@ -186,5 +186,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9341_d.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9341_d.json index c8e47f2..3cb5dd7 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9341_d.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9341_d.json @@ -80,11 +80,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9358", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9359", "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"i_max", - "label":"i_max", + "name":"n_max", + "label":"n_max", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9341", "inspector":{ "params":[ @@ -98,7 +98,7 @@ "FramePeriod" ], "values":[ - "i_max", + "n_max", "on", "inf", "[]", @@ -129,11 +129,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9357", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9355", "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"constant1", - "label":"constant1", + "name":"Vd_max", + "label":"Vd_max", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9341", "inspector":{ "params":[ @@ -147,12 +147,12 @@ "FramePeriod" ], "values":[ - "0", + "Vd_max", "on", "inf", "[]", "[]", - "Inherit: Inherit via back propagation", + "fixdt(1,16,4)", "off", "inf" ], @@ -178,42 +178,94 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9356", - "className":"Simulink.Constant", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9354", + "className":"Simulink.Selector", "icon":"WebViewIcon3", - "name":"constant", - "label":"constant", + "name":"Selector", + "label":"Selector", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9341", "inspector":{ "params":[ - "Value", - "VectorParams1D", + "NumberOfDimensions", + "IndexMode", + "IndexOptionArray", + "IndexParamArray", + "OutputSizeArray", + "InputPortWidth", "SampleTime", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "FramePeriod" + "IndexOptions", + "NumberOfDimensions", + "IndexMode", + "IndexOptionArray", + "IndexParamArray", + "OutputSizeArray", + "InputPortWidth", + "SampleTime", + "IndexOptions", + "NumberOfDimensions", + "IndexMode", + "IndexOptionArray", + "IndexParamArray", + "OutputSizeArray", + "InputPortWidth", + "SampleTime", + "IndexOptions", + "Indices", + "OutputSizes" ], "values":[ - "1000", - "on", - "inf", - "[]", - "[]", - "Inherit: Inherit via back propagation", - "off", - "inf" + "1", + "Zero-based", + [ + "Index vector (port)" + ], + [ + "[1 3]" + ], + [ + "1" + ], + "4", + "-1", + "Index vector (port)", + "1", + "Zero-based", + [ + "Index vector (port)" + ], + [ + "[1 3]" + ], + [ + "1" + ], + "4", + "-1", + "Index vector (port)", + "1", + "Zero-based", + [ + "Index vector (port)" + ], + [ + "[1 3]" + ], + [ + "1" + ], + "4", + "-1", + "Index vector (port)", + "[1 3]", + "1" ], "tabs":[ - "Main", - "Signal Attributes", + "Parameter Attributes", "-Other" ], "tabs_idx":[ 0, - 3, - 7 + 24 ] }, "viewer":{ @@ -222,47 +274,25 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Constant", + "blocktype":"Selector", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9354", - "className":"Simulink.Selector", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9353", + "className":"Simulink.Mux", "icon":"WebViewIcon3", - "name":"Selector", - "label":"Selector", + "name":"Mux", + "label":"Mux", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9341", "inspector":{ "params":[ - "IndexMode", - "IndexOptionArray", - "IndexOptions", - "IndexParamArray", - "Indices", - "InputPortWidth", - "NumberOfDimensions", - "OutputSizeArray", - "OutputSizes", - "SampleTime" + "Inputs", + "DisplayOption" ], "values":[ - "Zero-based", - [ - "Index vector (port)" - ], - "Index vector (port)", - [ - "[1 3]" - ], - "[1 3]", "4", - "1", - [ - "1" - ], - "1", - "-1" + "bar" ], "tabs":[ "Parameter Attributes" @@ -275,16 +305,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Selector", + "blocktype":"Mux", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9352", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9350", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto13", - "label":"Goto13", + "name":"Goto", + "label":"Goto", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9341", "inspector":{ "params":[ @@ -293,7 +323,7 @@ "IconDisplay" ], "values":[ - "r_inpTgt", + "r_inpTgtScaFOC", "local", "Tag" ], @@ -313,43 +343,25 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9359", - "className":"Simulink.Constant", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9349", + "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"n_max", - "label":"n_max", + "name":"From9", + "label":"From9", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9341", "inspector":{ "params":[ - "Value", - "VectorParams1D", - "SampleTime", - "OutMin", - "OutMax", - "OutDataTypeStr", - "LockScale", - "FramePeriod" + "GotoTag", + "IconDisplay" ], "values":[ - "n_max", - "on", - "inf", - "[]", - "[]", - "fixdt(1,16,4)", - "off", - "inf" + "z_ctrlModPrev", + "Tag" ], "tabs":[ - "Main", - "Signal Attributes", - "-Other" + "Parameter Attributes" ], - "tabs_idx":[ - 0, - 3, - 7 - ] + "tabs_idx":0 }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -357,16 +369,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Constant", + "blocktype":"From", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9351", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9352", "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"Goto1", - "label":"Goto1", + "name":"Goto13", + "label":"Goto13", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9341", "inspector":{ "params":[ @@ -375,7 +387,7 @@ "IconDisplay" ], "values":[ - "z_ctrlModPrev", + "r_inpTgt", "local", "Tag" ], @@ -395,11 +407,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9355", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9358", "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"Vd_max", - "label":"Vd_max", + "name":"i_max", + "label":"i_max", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9341", "inspector":{ "params":[ @@ -413,7 +425,7 @@ "FramePeriod" ], "values":[ - "Vd_max", + "i_max", "on", "inf", "[]", @@ -444,11 +456,11 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9348", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9347", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From22", - "label":"From22", + "name":"From1", + "label":"From1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9341", "inspector":{ "params":[ @@ -456,7 +468,7 @@ "IconDisplay" ], "values":[ - "r_inpTgt", + "r_inpTgtScaFOC", "Tag" ], "tabs":[ @@ -475,19 +487,21 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9349", - "className":"Simulink.From", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9351", + "className":"Simulink.Goto", "icon":"WebViewIcon3", - "name":"From9", - "label":"From9", + "name":"Goto1", + "label":"Goto1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9341", "inspector":{ "params":[ "GotoTag", + "TagVisibility", "IconDisplay" ], "values":[ "z_ctrlModPrev", + "local", "Tag" ], "tabs":[ @@ -501,45 +515,37 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"From", + "blocktype":"Goto", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9346", - "className":"Simulink.Product", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9357", + "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"Divide4", - "label":"Divide4", + "name":"constant1", + "label":"constant1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9341", "inspector":{ "params":[ - "Inputs", - "Multiplication", - "InputSameDT", + "Value", + "VectorParams1D", + "SampleTime", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", - "SampleTime" + "FramePeriod" ], "values":[ - "*/", - "Element-wise(.*)", - "off", + "0", + "on", + "inf", "[]", "[]", - "fixdt(0,16,12)", - "off", - "Simplest", + "Inherit: Inherit via back propagation", "off", - "1", - "All dimensions", - "-1" + "inf" ], "tabs":[ "Main", @@ -548,8 +554,8 @@ ], "tabs_idx":[ 0, - 2, - 9 + 3, + 7 ] }, "viewer":{ @@ -558,30 +564,56 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Product", + "blocktype":"Constant", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9353", - "className":"Simulink.Mux", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9345", + "className":"Simulink.Product", "icon":"WebViewIcon3", - "name":"Mux", - "label":"Mux", + "name":"Divide1", + "label":"Divide1", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9341", "inspector":{ "params":[ "Inputs", - "DisplayOption" + "Multiplication", + "InputSameDT", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "RndMeth", + "SaturateOnIntegerOverflow", + "CollapseDim", + "CollapseMode", + "SampleTime" ], "values":[ - "4", - "bar" + "**", + "Element-wise(.*)", + "off", + "[]", + "[]", + "Inherit: Same as first input", + "off", + "Simplest", + "off", + "1", + "All dimensions", + "-1" ], "tabs":[ - "Parameter Attributes" + "Main", + "Signal Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 2, + 9 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -589,27 +621,25 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Mux", + "blocktype":"Product", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9350", - "className":"Simulink.Goto", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9344", + "className":"Simulink.ActionPort", "icon":"WebViewIcon3", - "name":"Goto", - "label":"Goto", + "name":"Action Port", + "label":"Action Port", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9341", "inspector":{ "params":[ - "GotoTag", - "TagVisibility", - "IconDisplay" + "InitializeStates", + "PropagateVarSize" ], "values":[ - "r_inpTgtScaFOC", - "local", - "Tag" + "reset", + "Only when execution is resumed" ], "tabs":[ "Parameter Attributes" @@ -622,45 +652,55 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Goto", + "blocktype":"ActionPort", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9345", - "className":"Simulink.Product", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9343", + "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"Divide1", - "label":"Divide1", + "name":"z_ctrlModPrev", + "label":"z_ctrlModPrev", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9341", "inspector":{ "params":[ - "Inputs", - "Multiplication", - "InputSameDT", + "Port", + "IconDisplay", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "RndMeth", - "SaturateOnIntegerOverflow", - "CollapseDim", - "CollapseMode", - "SampleTime" + "Unit", + "PortDimensions", + "VarSizeSig", + "SampleTime", + "SignalType", + "BusOutputAsStruct", + "InputConnect", + "Interpolate", + "LatchByDelayingOutsideSignal", + "LatchInputForFeedbackSignals", + "OutputFunctionCall" ], "values":[ - "**", - "Element-wise(.*)", - "off", + "2", + "Port number", "[]", "[]", - "Inherit: Same as first input", + "Inherit: auto", "off", - "Simplest", + "inherit", + "-1", + "Inherit", + "-1", + "auto", "off", - "1", - "All dimensions", - "-1" + "", + "on", + "off", + "off", + "off" ], "tabs":[ "Main", @@ -670,7 +710,7 @@ "tabs_idx":[ 0, 2, - 9 + 11 ] }, "viewer":{ @@ -679,16 +719,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Product", + "blocktype":"Inport", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9343", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9342", "className":"Simulink.Inport", "icon":"WebViewIcon3", - "name":"z_ctrlModPrev", - "label":"z_ctrlModPrev", + "name":"r_inpTgt", + "label":"r_inpTgt", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9341", "inspector":{ "params":[ @@ -711,7 +751,7 @@ "OutputFunctionCall" ], "values":[ - "2", + "1", "Port number", "[]", "[]", @@ -751,25 +791,51 @@ } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9344", - "className":"Simulink.ActionPort", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9346", + "className":"Simulink.Product", "icon":"WebViewIcon3", - "name":"Action Port", - "label":"Action Port", + "name":"Divide4", + "label":"Divide4", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9341", "inspector":{ "params":[ - "InitializeStates", - "PropagateVarSize" + "Inputs", + "Multiplication", + "InputSameDT", + "OutMin", + "OutMax", + "OutDataTypeStr", + "LockScale", + "RndMeth", + "SaturateOnIntegerOverflow", + "CollapseDim", + "CollapseMode", + "SampleTime" ], "values":[ - "reset", - "Only when execution is resumed" + "*/", + "Element-wise(.*)", + "off", + "[]", + "[]", + "fixdt(0,16,12)", + "off", + "Simplest", + "off", + "1", + "All dimensions", + "-1" ], "tabs":[ - "Parameter Attributes" + "Main", + "Signal Attributes", + "-Other" ], - "tabs_idx":0 + "tabs_idx":[ + 0, + 2, + 9 + ] }, "viewer":{ "jshandler":"webview/handlers/ElementHandler" @@ -777,55 +843,37 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"ActionPort", + "blocktype":"Product", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9342", - "className":"Simulink.Inport", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9356", + "className":"Simulink.Constant", "icon":"WebViewIcon3", - "name":"r_inpTgt", - "label":"r_inpTgt", + "name":"constant", + "label":"constant", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9341", "inspector":{ "params":[ - "Port", - "IconDisplay", + "Value", + "VectorParams1D", + "SampleTime", "OutMin", "OutMax", "OutDataTypeStr", "LockScale", - "Unit", - "PortDimensions", - "VarSizeSig", - "SampleTime", - "SignalType", - "BusOutputAsStruct", - "InputConnect", - "Interpolate", - "LatchByDelayingOutsideSignal", - "LatchInputForFeedbackSignals", - "OutputFunctionCall" + "FramePeriod" ], "values":[ - "1", - "Port number", + "1000", + "on", + "inf", "[]", "[]", - "Inherit: auto", - "off", - "inherit", - "-1", - "Inherit", - "-1", - "auto", - "off", - "", - "on", - "off", + "Inherit: Inherit via back propagation", "off", - "off" + "inf" ], "tabs":[ "Main", @@ -834,8 +882,8 @@ ], "tabs_idx":[ 0, - 2, - 11 + 3, + 7 ] }, "viewer":{ @@ -844,16 +892,16 @@ "obj_viewer":[ ], "finder":{ - "blocktype":"Inport", + "blocktype":"Constant", "masktype":"" } }, { - "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9347", + "sid":"BLDCmotorControl_FOC_R2017b_fixdt:9348", "className":"Simulink.From", "icon":"WebViewIcon3", - "name":"From1", - "label":"From1", + "name":"From22", + "label":"From22", "parent":"BLDCmotorControl_FOC_R2017b_fixdt:9341", "inspector":{ "params":[ @@ -861,7 +909,7 @@ "IconDisplay" ], "values":[ - "r_inpTgtScaFOC", + "r_inpTgt", "Tag" ], "tabs":[ diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9341_d.svg b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9341_d.svg index dfa98cc..51653f0 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9341_d.svg +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9341_d.svg @@ -61,11 +61,11 @@ - - + + - + @@ -75,44 +75,44 @@ - - i_max + + n_max - + - - + + - + - - i_max + + n_max - + - + - + sfix16_En4 @@ -124,11 +124,11 @@ - - + + - + @@ -138,77 +138,44 @@ - - 0 + + Vd_max - + - - - + + + - - - - - sfix16_En4 - - - - - - - - - - - - - - - - - - - - - - + - - 1000 - - - - - - - + + Vd_max - + - - + + - + sfix16_En4 @@ -222,7 +189,7 @@ - + @@ -230,35 +197,35 @@ - + - + U - + - + Idx1 - + - + 0 - + - + Y @@ -276,11 +243,11 @@ - + - + sfix16_En4 @@ -292,29 +259,44 @@ - - - + + + - - + + - - + + - - [r_inpTgt] + + - - + + + + + + + + + + + + + + + + + sfix16_En4 @@ -325,59 +307,77 @@ - - - + + + - - + + - - + + - - n_max + + [r_inpTgtScaFOC] - - + + - - - - + + + + + + + + + + + + + + + - + - - n_max + + [z_ctrlModPrev] + + + + + + + - - + + - + - - sfix16_En4 + + uint8 @@ -388,11 +388,11 @@ - - + + - + @@ -402,14 +402,14 @@ - - [z_ctrlModPrev] + + [r_inpTgt] - + @@ -421,11 +421,11 @@ - - + + - + @@ -435,44 +435,44 @@ - - Vd_max + + i_max - + - - + + - + - - Vd_max + + i_max - + - + - + sfix16_En4 @@ -484,11 +484,11 @@ - - + + - + @@ -498,29 +498,29 @@ - - [r_inpTgt] + + [r_inpTgtScaFOC] - + - + - + - + sfix16_En4 @@ -532,44 +532,29 @@ - - - + + + - - + + - + - + [z_ctrlModPrev] - - - - - - - - - - - - - - - - - uint8 + + @@ -580,69 +565,100 @@ - - - + + + - - + + - - + + - - + + 0 + + + + + + + + + + + + + + - - + + - - + + sfix16_En4 + + + + + + + + + + + + + + + + + + - + - + - + - - - + + - - + + - - + + - + - - ufix16_En12 + + sfix16_En4 @@ -653,44 +669,44 @@ - - - + + + - - + + - + - - + + else { } - - + + - - - + + + - + - - sfix16_En4 + + Action Port @@ -701,85 +717,59 @@ - - - + + + - - + + - + - - [r_inpTgtScaFOC] + + 2 - - + + - - - - - - - - - - - - - - - - - - - - - - + + + - - + + - - - - - - - - - + + z_ctrlModPrev - - + + - - + + - - sfix16_En4 + + uint8 @@ -790,59 +780,59 @@ - - + + - + - + - - 2 + + 1 - + - - + + - - + + - - z_ctrlModPrev + + r_inpTgt - - + + - - + + - - uint8 + + sfix16_En4 @@ -853,44 +843,69 @@ - - - + + + - - + + + + + + + + + + + + + + + + + + - + - - else { } + + + + + + + + + + + - - + + - - - + + + - - + + - - Action Port + + ufix16_En12 @@ -901,58 +916,43 @@ - - - + + + - - + + - - + + - - 1 + + 1000 - - - - - - - - - - - - - - - - - r_inpTgt + + - + - + - + sfix16_En4 @@ -964,11 +964,11 @@ - - + + - + @@ -978,29 +978,29 @@ - - [r_inpTgtScaFOC] + + [r_inpTgt] - + - + - + - + sfix16_En4 @@ -1208,5 +1208,5 @@ - + diff --git a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_h_1.json b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_h_1.json index 4506da8..8d07d60 100644 --- a/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_h_1.json +++ b/01_Matlab/BLDC_controller_ert_rtw/html/webview/support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_h_1.json @@ -39,100 +39,101 @@ ":9308", ":9307", ":9306", + ":9305", ":9303", ":9302", - ":9301", + ":9298", + ":9669", + ":9293", + ":9304", ":9291", - ":9290", - ":9284", - ":9299", ":9389", - ":9281", - ":9280", - ":9279", ":9289", - ":9287", - ":9285", + ":9288", + ":9284", + ":9281", ":9283", - ":9272", - ":9278", - ":9298", - ":9392", + ":9276", ":9275", - ":9251", + ":9277", + ":9270", ":9269", - ":9241", + ":9437", + ":9252", + ":9251", + ":9250", + ":9274", + ":9297", ":9263", - ":9262", - ":9294", - ":9268", - ":9267", ":9441", + ":9271", + ":9268", ":9265", + ":9287", + ":9286", ":9264", + ":9260", + ":9674", + ":9418", ":9261", + ":9301", ":9258", ":9257", - ":9388", - ":9456", - ":9448", - ":9242", - ":9259", - ":9252", + ":9436", ":9292", - ":9437", - ":9295", - ":9276", + ":9294", + ":9249", + ":9448", + ":9299", + ":9285", ":9244", - ":9300", - ":9253", - ":9270", - ":9387", + ":9241", + ":9240", ":9198", - ":9274", - ":9248", + ":9245", + ":9290", + ":8535", + ":9388", + ":9262", + ":9253", + ":9242", + ":9295", + ":9280", ":8220", - ":9282", + ":9278", + ":9259", ":8217", - ":9286", - ":9418", - ":9293", - ":9393", - ":8214", - ":9249", ":9385", - ":8213", ":8215", - ":8211", - ":8535", - ":9271", - ":9288", + ":9279", + ":8213", + ":8214", + ":8212", + ":8218", ":8210", + ":8658", + ":9456", + ":8208", + ":9387", + ":9248", + ":8207", + ":9392", + ":8211", ":8205", - ":8216", ":8204", - ":9240", - ":9260", - ":9250", - ":8209", - ":8208", - ":9436", - ":8203", - ":9669", + ":9393", + ":9300", ":9266", - ":9245", - ":9304", - ":9297", + ":8469", + ":8203", + ":9272", ":8202", ":8206", - ":9305", - ":9277", - ":8658", - ":8212", - ":8469", - ":8218", + ":9282", + ":8216", ":8201", - ":8207", + ":9267", + ":8209", ":9268#out:1", ":8469#out:2", ":8215#out:1", @@ -209,7 +210,8 @@ ":8203#out:1", ":9669#out:1", ":9263#out:1", - ":9262#out:1" + ":9262#out:1", + ":9674#out:1" ], "sameAsElement":true }, @@ -262,46 +264,46 @@ ":8464", ":8426", ":8428", - ":8467", - ":8466", ":9433", - ":8463", + ":8467", ":9383", - ":8462", ":8461", - ":8458", - ":8457", - ":8455", - ":9379", + ":8460", + ":8462", + ":9432", ":9384", + ":9379", ":9377", - ":8446", + ":8455", + ":9382", ":8437", - ":9432", + ":8436", ":8434", - ":9381", - ":9382", + ":8449", ":8432", - ":8431", - ":9380", + ":8458", + ":8435", + ":8446", + ":8430", + ":9431", ":8450", - ":8429", - ":8449", ":8427", + ":9380", + ":8424", ":8384", - ":8430", + ":9374", + ":8457", + ":8429", ":8468", + ":8451", ":9333", - ":9431", - ":9375", - ":8424", - ":9374", ":9378", - ":8451", - ":8436", + ":8463", + ":9381", + ":8431", + ":8466", ":8224", - ":8435", - ":8460", + ":9375", ":8462#out:1", ":8440#out:1", ":8439#out:1", @@ -371,23 +373,23 @@ "backingUrl":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9333_d.json", "elements":[ ":9373", + ":9372", ":9371", ":9370", - ":9372", + ":9369", + ":9367", + ":9365", + ":9368", ":9364", - ":9362", ":9363", ":9361", - ":9367", ":9366", - ":9368", ":9341", - ":9337", ":9335", + ":9337", ":9334", - ":9369", ":9336", - ":9365", + ":9362", ":9337#out:1", ":9364#out:1", ":9362#out:1", @@ -419,8 +421,8 @@ "thumbnail":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9337_d.png", "backingUrl":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9337_d.json", "elements":[ - ":9339", ":9340", + ":9339", ":9338", ":9338#out:1" ], @@ -442,24 +444,24 @@ "backingUrl":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9341_d.json", "elements":[ ":9360", - ":9358", - ":9357", - ":9356", - ":9354", - ":9352", ":9359", - ":9351", ":9355", - ":9348", - ":9349", - ":9346", + ":9354", ":9353", ":9350", + ":9349", + ":9352", + ":9358", + ":9347", + ":9351", + ":9357", ":9345", - ":9343", ":9344", + ":9343", ":9342", - ":9347", + ":9346", + ":9356", + ":9348", ":9342#out:1", ":9347#out:1", ":9343#out:1", @@ -497,8 +499,8 @@ ":8228", ":8234", ":8232", - ":8233", ":8231", + ":8233", ":9634", ":8226#out:1", ":8228#out:1", @@ -573,8 +575,8 @@ ":8258", ":8251", ":8252", - ":8262", ":8260", + ":8262", ":8259", ":8249", ":8259#out:1", @@ -626,62 +628,62 @@ ":8290", ":8266", ":8296", - ":9430", + ":8379", ":8378", - ":8377", ":8376", ":8374", + ":8373", ":9429", ":8372", ":8370", ":8369", - ":9428", - ":8373", - ":8312", + ":8367", + ":8366", + ":8371", + ":9430", + ":8306", + ":9427", + ":8305", + ":8301", ":8304", - ":8303", - ":8314", ":8300", ":8299", - ":8311", - ":9425", ":8294", + ":8293", + ":9425", ":8297", - ":8292", - ":8291", - ":8289", ":8288", - ":8379", + ":8291", ":8286", - ":9477", - ":8306", + ":8303", + ":8308", ":8285", ":8283", - ":8298", - ":8308", - ":8281", - ":9427", ":8280", + ":9428", + ":8276", + ":8292", + ":8281", + ":8311", ":8278", + ":8269", + ":8314", + ":8282", + ":8275", + ":8267", ":8277", - ":8305", - ":8276", - ":8301", ":8270", - ":8275", - ":8371", - ":8293", ":8272", + ":8268", ":9426", - ":8366", - ":8267", - ":8282", + ":8289", + ":8312", ":8313", - ":8268", - ":8284", - ":8367", ":8264", - ":8269", + ":8377", + ":8284", + ":9477", + ":8298", ":8310", ":8309", ":8293#out:1", @@ -755,13 +757,13 @@ "thumbnail":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8272_d.png", "backingUrl":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8272_d.json", "elements":[ - ":8272:2418", + ":8272:2515", ":8272:2416", ":8272:2415", - ":8272:2515", - ":8272:2414", + ":8272:2418", ":8272:2413", ":8272:2412", + ":8272:2414", ":8272:2515#out:1", ":8272:2415#out:1", ":8272:2413#out:1", @@ -820,51 +822,51 @@ ":8363", ":8364", ":8365", - ":8358", - ":8355", - ":8353", - ":8352", - ":8350", - ":8349", - ":8351", - ":8356", ":8360", + ":8357", + ":8356", + ":8355", + ":8354", + ":8348", + ":8347", + ":8346", + ":8345", + ":8341", + ":8340", + ":8339", ":8338", - ":8336", + ":8342", + ":8344", ":8333", - ":8335", - ":8331", - ":8330", + ":8332", ":8329", - ":8348", - ":8328", + ":8350", + ":8358", ":8327", - ":8337", - ":8339", + ":8331", ":8325", - ":8354", + ":8353", + ":8328", + ":8323", ":8324", - ":8334", - ":8332", - ":8345", - ":8359", - ":8357", - ":8321", - ":8326", ":8322", - ":8323", + ":8321", + ":8334", + ":8349", ":8318", - ":8340", - ":8342", + ":8320", + ":8352", + ":8330", ":8317", - ":8344", - ":8341", - ":8316", - ":8346", + ":8326", ":8319", - ":8320", - ":8347", + ":8359", + ":8316", + ":8335", + ":8337", + ":8351", ":8315", + ":8336", ":8343", ":8315#out:1", ":8316#out:1", @@ -941,27 +943,27 @@ ":8416", ":8391", ":8420", - ":8418", ":8417", + ":8421", ":9664", - ":8412", ":9660", - ":8410", - ":8405", - ":8404", - ":8400", - ":8411", - ":8421", + ":8403", + ":8412", ":8398", ":8397", - ":8396", - ":8395", + ":8404", + ":8410", + ":8394", ":8393", ":8392", - ":8403", ":9665", - ":8394", ":8389", + ":8411", + ":8400", + ":8395", + ":8396", + ":8418", + ":8405", ":8385#out:1", ":8386#out:1", ":8399#out:1", @@ -1024,49 +1026,49 @@ ":8526", ":8499", ":8497", - ":8525", + ":8527", ":8524", ":8521", + ":8520", ":8519", - ":9398", + ":8515", ":8514", ":9404", - ":8527", - ":9405", + ":8510", + ":8508", ":9406", - ":8503", - ":8517", + ":8504", ":9397", - ":8500", - ":8515", + ":8493", ":8491", + ":9400", + ":8503", + ":9398", + ":8525", ":9408", - ":9407", - ":8493", - ":8504", + ":8486", + ":8494", ":8484", ":8483", ":9412", - ":8510", - ":8508", - ":8482", - ":9395", - ":8480", - ":8487", + ":9402", + ":8509", ":8479", - ":8520", + ":9407", + ":8478", ":9410", - ":8509", - ":8494", - ":9402", - ":8486", - ":9403", - ":8474", ":8492", + ":8517", + ":9395", + ":8500", + ":8474", ":9394", ":9396", - ":9400", - ":8478", + ":9405", + ":8487", + ":9403", + ":8482", + ":8480", ":9401", ":8497#out:1", ":8470#out:1", @@ -1129,39 +1131,39 @@ "backingUrl":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_d.json", "elements":[ ":8486:2496", + ":8486:2509", + ":8486:2473", ":8486:2472", - ":8486:2463", + ":8486:2465", + ":8486:2462", ":8486:2461", ":8486:2460", ":8486:2459", + ":8486:2464", + ":8486:2457", + ":8486:2463", ":8486:2458", - ":8486:2456", - ":8486:2455", - ":8486:2454", + ":8486:2467", + ":8486:2452", + ":8486:2449", ":8486:2453", - ":8486:2465", - ":8486:2450", - ":8486:2509", + ":8486:2448", + ":8486:2455", + ":8486:2451", ":8486:2507", ":8486:2428", - ":8486:2462", ":8486:2423", - ":8486:2467", - ":8486:2473", - ":8486:2448", + ":8486:2454", + ":8486:2450", ":8486:2421", ":8486:2466", - ":8486:2451", - ":8486:2457", - ":8486:2464", - ":8486:2452", + ":8486:2456", ":8486:2422", ":8486:2420", - ":8486:2449", ":8486:2471", + ":8486:2470", ":8486:2469", ":8486:2468", - ":8486:2470", ":8486:2507#out:1", ":8486:2422#out:1", ":8486:2421#out:1", @@ -1210,9 +1212,9 @@ "backingUrl":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2423_d.json", "elements":[ ":8486:2427", - ":8486:2426", ":8486:2425", ":8486:2424", + ":8486:2426", ":8486:2424#out:1" ], "sameAsElement":true @@ -1233,25 +1235,25 @@ "thumbnail":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2428_d.png", "backingUrl":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2428_d.json", "elements":[ - ":8486:2445", + ":8486:2446", ":8486:2447", + ":8486:2438", + ":8486:2436", ":8486:2443", - ":8486:2442", - ":8486:2441", - ":8486:2439", ":8486:2437", - ":8486:2440", - ":8486:2433", + ":8486:2435", ":8486:2434", + ":8486:2439", + ":8486:2445", + ":8486:2441", ":8486:2432", - ":8486:2446", - ":8486:2435", - ":8486:2438", - ":8486:2430", - ":8486:2436", - ":8486:2429", + ":8486:2440", ":8486:2444", ":8486:2431", + ":8486:2430", + ":8486:2442", + ":8486:2429", + ":8486:2433", ":8486:2438#out:1", ":8486:2429#out:1", ":8486:2430#out:1", @@ -1289,8 +1291,8 @@ ":8486:2435:2416", ":8486:2435:2415", ":8486:2435:2414", - ":8486:2435:2412", ":8486:2435:2413", + ":8486:2435:2412", ":8486:2435:2515#out:1", ":8486:2435:2415#out:1", ":8486:2435:2413#out:1", @@ -1346,24 +1348,24 @@ "backingUrl":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2473_d.json", "elements":[ ":8486:2491", - ":8486:2490", - ":8486:2487", - ":8486:2486", - ":8486:2485", - ":8486:2492", ":8486:2484", ":8486:2483", + ":8486:2492", ":8486:2481", - ":8486:2482", - ":8486:2478", - ":8486:2489", - ":8486:2479", + ":8486:2488", + ":8486:2486", ":8486:2477", + ":8486:2482", ":8486:2480", - ":8486:2488", - ":8486:2475", - ":8486:2474", + ":8486:2485", + ":8486:2487", ":8486:2476", + ":8486:2478", + ":8486:2475", + ":8486:2490", + ":8486:2474", + ":8486:2479", + ":8486:2489", ":8486:2480#out:1", ":8486:2491#out:1", ":8486:2481#out:1", @@ -1397,12 +1399,12 @@ "backingUrl":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8486_2480_d.json", "elements":[ ":8486:2480:2418", - ":8486:2480:2416", + ":8486:2480:2515", + ":8486:2480:2414", ":8486:2480:2415", ":8486:2480:2413", - ":8486:2480:2515", ":8486:2480:2412", - ":8486:2480:2414", + ":8486:2480:2416", ":8486:2480:2515#out:1", ":8486:2480:2415#out:1", ":8486:2480:2413#out:1", @@ -1511,33 +1513,33 @@ ":8655", ":8634", ":9391", - ":8651", - ":8645", + ":8650", + ":9423", ":8643", + ":8640", ":9390", - ":8636", - ":9423", - ":8639", - ":8650", ":8646", - ":8633", - ":8640", - ":8632", - ":8630", - ":9424", + ":8635", + ":8628", + ":8636", ":8625", - ":8654", ":8603", - ":8628", + ":9424", ":8642", + ":8632", + ":8633", + ":8624", + ":8630", + ":8645", ":8539", - ":8537", - ":9422", ":8546", - ":8624", + ":8654", + ":8639", + ":8537", ":8647", + ":9422", + ":8651", ":8536", - ":8635", ":8634#out:1", ":8537#out:1", ":8625#out:1", @@ -1579,58 +1581,58 @@ "elements":[ ":8601", ":8602", + ":8600", ":8599", - ":8598", - ":8595", - ":8593", + ":8594", ":8591", ":8590", ":8586", - ":8585", - ":8592", ":8584", + ":8589", ":8582", + ":8585", + ":8592", + ":8570", + ":8587", + ":8569", ":8581", - ":8580", - ":8589", - ":8572", - ":8568", - ":8566", + ":8565", ":8571", - ":8587", + ":8563", + ":8583", + ":8572", + ":9419", + ":8593", ":8561", ":8560", - ":9419", + ":8559", + ":8558", ":8556", ":8555", + ":8568", + ":8564", + ":8554", ":8562", - ":8600", - ":8583", ":8553", - ":8570", - ":8565", - ":9421", ":8551", - ":8564", ":8549", + ":8595", + ":8548", + ":8566", + ":8598", + ":8580", ":8597", - ":8558", - ":8569", ":8552", + ":9421", ":8573", - ":9420", - ":8548", - ":8554", - ":8563", - ":8594", - ":8559", ":8547", - ":8574", - ":8575", - ":8576", - ":8577", + ":9420", ":8578", ":8579", + ":8576", + ":8574", + ":8577", + ":8575", ":8587#out:1", ":8593#out:1", ":8594#out:1", @@ -1692,11 +1694,11 @@ ":8603:28", ":8603:6", ":8603:4", - ":8603:33", + ":8603:12", ":8603:32", ":8603:31", ":8603:9", - ":8603:12", + ":8603:33", ":8603:30", ":8603:1", ":8603:14", @@ -1752,127 +1754,129 @@ ":9024", ":9071", ":9025", - ":9197", ":9195", - ":9142", - ":9072", + ":9109", + ":9108", ":9045", - ":9074", - ":9029", ":9028", ":9027", + ":9196", ":9023", ":8913", ":8912", - ":9073", ":8864", + ":9142", ":8863", - ":9108", ":8861", - ":8860", + ":9029", + ":9673", + ":8858", ":8857", - ":8851", - ":8850", + ":9171", + ":8855", + ":8852", ":8848", - ":8854", + ":9074", ":8844", - ":8841", - ":9109", - ":8836", - ":9171", + ":8842", + ":8838", ":8837", - ":8834", - ":8839", + ":8847", + ":8849", + ":8836", + ":8832", ":8831", ":8826", ":9655", ":8824", - ":8823", - ":8856", - ":8855", - ":8817", + ":8822", + ":8862", + ":9072", + ":8821", + ":8853", + ":8839", + ":8845", + ":9073", ":8816", + ":8846", ":8815", ":8814", - ":8811", - ":8865", + ":8809", ":8807", - ":8820", - ":8804", - ":8813", - ":8852", ":8803", - ":8858", - ":8847", + ":8802", + ":8813", + ":8801", + ":8841", + ":8808", ":8799", - ":8796", + ":8798", ":8795", - ":9143", - ":8792", + ":8794", + ":8811", ":8791", ":8790", ":8789", - ":8822", - ":8805", - ":8802", - ":8787", - ":8786", - ":9196", + ":8788", + ":8797", ":8784", - ":8806", - ":8843", - ":8783", ":8782", - ":8781", - ":8812", - ":8809", + ":8818", + ":8780", + ":8820", ":8779", + ":8800", + ":8796", ":8776", - ":8772", - ":8775", - ":8770", - ":8825", - ":8768", ":8777", - ":8808", - ":8743", - ":8819", - ":8842", - ":8726", - ":8846", - ":8766", - ":8821", - ":8810", - ":8849", - ":8668", - ":8832", - ":8798", ":8773", - ":8765", - ":8838", - ":8800", + ":8783", + ":8770", + ":8772", + ":8860", + ":8854", + ":8786", + ":8810", + ":8787", ":8785", - ":8794", ":8774", - ":8853", - ":8664", - ":8862", - ":8818", + ":8793", + ":9197", + ":8812", + ":8823", + ":8726", + ":8768", + ":8850", + ":8743", + ":8834", + ":9026", + ":8865", + ":8806", + ":9143", + ":8851", ":8667", + ":8856", + ":8668", + ":8766", + ":8663", + ":8765", + ":8819", + ":8771", + ":8817", + ":8792", ":8661", - ":8797", - ":9026", + ":8775", + ":9672", ":8662", - ":8663", + ":8805", + ":8664", ":8830", ":8660", - ":8780", - ":8801", - ":8771", - ":8788", - ":8845", + ":8781", + ":8825", + ":8804", + ":8843", ":8659", - ":8793", ":8827#out:1", ":8828#out:1", ":8767#out:1", @@ -1990,7 +1994,8 @@ ":9143#out:1", ":9655#out:1", ":8826#out:1", - ":8768#out:1" + ":8768#out:1", + ":9672#out:1" ], "sameAsElement":true }, @@ -2011,34 +2016,34 @@ "thumbnail":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8668_d.png", "backingUrl":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8668_d.json", "elements":[ - ":8725", ":8724", - ":8723", - ":8721", ":8720", - ":8719", + ":8718", + ":8717", ":8716", - ":8715", ":8714", - ":8718", ":8713", ":8722", ":8712", ":8711", + ":8715", + ":8710", + ":8719", + ":8709", + ":8705", + ":8706", ":8707", ":8702", - ":8704", - ":8709", - ":8717", + ":8703", ":8686", - ":8706", - ":8705", + ":8723", + ":8721", + ":8704", + ":8725", + ":8708", ":8671", ":8670", - ":8703", - ":8710", ":8669", - ":8708", ":8686#out:1", ":8705#out:1", ":8704#out:1", @@ -2079,19 +2084,19 @@ "backingUrl":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8671_d.json", "elements":[ ":8685", + ":8683", + ":8681", + ":8680", ":8679", - ":8682", - ":8678", ":8677", - ":8680", - ":8675", - ":8681", + ":8678", ":8674", - ":8673", - ":8683", ":8676", ":8684", + ":8673", + ":8682", ":8672", + ":8675", ":8673#out:1", ":8672#out:1", ":8675#out:1", @@ -2119,20 +2124,20 @@ "backingUrl":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8686_d.json", "elements":[ ":8701", - ":8698", ":8700", - ":8694", + ":8698", + ":8697", + ":8699", ":8696", - ":8692", + ":8695", + ":8694", ":8691", + ":8693", ":8690", - ":8699", ":8688", ":8689", - ":8693", - ":8695", + ":8692", ":8687", - ":8697", ":8691#out:1", ":8690#out:1", ":8693#out:1", @@ -2161,22 +2166,22 @@ "thumbnail":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8726_d.png", "backingUrl":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8726_d.json", "elements":[ - ":8741", + ":8742", ":8740", ":8739", - ":8738", + ":8737", ":8736", - ":8734", - ":8733", + ":8738", + ":8735", ":8731", - ":8737", ":8730", - ":8735", - ":8729", ":8732", - ":8727", - ":8742", + ":8733", + ":8734", + ":8729", + ":8741", ":8728", + ":8727", ":8739#out:1", ":8729#out:2", ":8740#out:1", @@ -2206,15 +2211,15 @@ "thumbnail":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8738_d.png", "backingUrl":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8738_d.json", "elements":[ - ":8738:2406", + ":8738:2407", ":8738:2405", ":8738:2404", ":8738:2403", - ":8738:2401", - ":8738:2402", + ":8738:2406", ":8738:2400", - ":8738:2407", ":8738:2399", + ":8738:2402", + ":8738:2401", ":8738:2399#out:1", ":8738:2404#out:1", ":8738:2401#out:1", @@ -2246,38 +2251,38 @@ ":8763", ":8764", ":8760", - ":8757", - ":8756", - ":8758", + ":8755", ":8753", + ":9657", + ":8752", ":8751", + ":8750", ":8749", - ":8759", - ":8747", - ":9650", ":9638", - ":8754", + ":8747", ":9646", - ":8748", - ":8755", - ":9657", - ":9653", - ":8750", - ":9648", - ":9643", + ":9644", ":9649", - ":9641", + ":9653", ":9652", - ":9647", - ":8752", + ":9641", + ":9640", + ":8758", ":9654", + ":9648", + ":9650", + ":9647", + ":9643", + ":8754", ":8745", - ":9639", - ":8744", - ":9651", + ":8759", + ":8757", + ":8756", ":9645", - ":9644", - ":9640", + ":9651", + ":8748", + ":8744", + ":9639", ":9636", ":8748#out:1", ":8750#out:1", @@ -2328,18 +2333,18 @@ ":8867", ":8881", ":8883", + ":8880", ":8878", - ":8877", - ":8876", - ":8873", ":8879", ":8875", - ":8870", - ":8871", ":8874", + ":8873", ":8872", - ":8880", + ":8871", ":8869", + ":8870", + ":8876", + ":8877", ":8880#out:1", ":8879#out:1", ":8872#out:1", @@ -2381,24 +2386,24 @@ ":8909", ":8889", ":8890", - ":8908", - ":8907", - ":8904", + ":8906", ":8903", - ":8900", - ":8896", - ":8902", - ":8895", + ":8907", + ":8899", + ":8898", + ":8901", ":8905", - ":8893", + ":8895", + ":8896", + ":8894", + ":8891", ":8892", - ":8898", - ":8906", + ":8904", ":8897", - ":8891", - ":8894", - ":8901", - ":8899", + ":8902", + ":8900", + ":8908", + ":8893", ":8889#out:1", ":8888#out:1", ":8887#out:1", @@ -2442,92 +2447,92 @@ ":9020", ":9021", ":9022", - ":9017", + ":9016", ":9015", ":9013", ":9010", + ":9009", ":9007", ":9006", ":9005", - ":9004", - ":9012", - ":9002", + ":9003", + ":9001", ":9000", - ":8997", - ":9014", + ":8999", ":8987", ":8986", - ":8983", - ":9011", + ":9008", + ":8985", + ":8984", + ":8979", ":8978", - ":8977", ":8975", ":8974", - ":8973", - ":8972", - ":8971", + ":8977", ":8969", - ":8968", - ":8982", - ":8966", - ":8965", - ":8964", + ":9002", ":8963", ":8962", ":8961", - ":9003", - ":8976", - ":8958", + ":8982", + ":8972", + ":8960", + ":8967", ":8970", - ":8954", + ":8964", + ":8966", + ":8957", + ":8956", ":8953", - ":9008", - ":8952", - ":8960", - ":8948", - ":8998", + ":8968", + ":8949", + ":8947", + ":8945", + ":8950", + ":8946", ":8944", ":8943", - ":8938", + ":8941", + ":9014", + ":8951", + ":8937", ":8936", - ":8946", - ":8934", + ":8997", + ":8948", ":8935", + ":8940", + ":8973", + ":8954", + ":9011", ":8924", - ":8923", - ":8957", + ":9012", + ":8934", ":8942", - ":8947", - ":9016", - ":9001", - ":8959", + ":8938", ":8922", ":8921", - ":8919", - ":8950", + ":8971", + ":8920", + ":8983", + ":8958", + ":9017", ":8917", - ":8945", - ":8999", - ":9009", - ":8985", - ":8937", - ":8941", - ":8955", - ":8951", + ":8976", + ":8965", + ":9004", ":8916", - ":8949", - ":8918", - ":8915", - ":8979", - ":8940", - ":8920", ":8939", + ":8952", + ":8915", + ":8998", + ":8918", + ":8919", + ":8923", ":8914", - ":8967", - ":8984", - ":8956", - ":8981", + ":8959", + ":8955", ":8980", + ":8981", ":8999#out:1", ":8947#out:1", ":8935#out:1", @@ -2604,14 +2609,14 @@ "thumbnail":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8924_d.png", "backingUrl":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8924_d.json", "elements":[ - ":8931", ":8933", ":8930", + ":8932", ":8929", + ":8927", + ":8931", ":8926", - ":8932", ":8925", - ":8927", ":8928", ":8931#out:1", ":8925#out:1", @@ -2674,15 +2679,15 @@ "thumbnail":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8987_d.png", "backingUrl":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_8987_d.json", "elements":[ - ":8994", - ":8993", ":8996", + ":8994", ":8992", ":8995", - ":8990", + ":8991", + ":8993", ":8989", ":8988", - ":8991", + ":8990", ":8993#out:1", ":8990#out:1", ":8994#out:1", @@ -2746,20 +2751,20 @@ "backingUrl":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9029_d.json", "elements":[ ":9044", - ":9043", ":9042", ":9041", ":9040", + ":9039", + ":9043", ":9037", ":9036", ":9035", ":9034", - ":9039", - ":9033", - ":9038", - ":9031", ":9032", + ":9031", ":9030", + ":9038", + ":9033", ":9030#out:1", ":9032#out:1", ":9042#out:1", @@ -2791,16 +2796,16 @@ "backingUrl":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9040_d.json", "elements":[ ":9040:2353", - ":9040:2395", + ":9040:2360", + ":9040:2346", + ":9040:2343", + ":9040:2358", ":9040:2342", + ":9040:2357", ":9040:2356", - ":9040:2346", ":9040:2355", - ":9040:2360", - ":9040:2343", + ":9040:2395", ":9040:2359", - ":9040:2357", - ":9040:2358", ":9040:2356#out:1", ":9040:2342#out:1", ":9040:2359#out:1", @@ -2924,24 +2929,24 @@ ":9069", ":9048", ":9049", - ":9066", - ":9062", - ":9060", + ":9067", + ":9064", + ":9063", + ":9061", ":9059", - ":9056", + ":9058", + ":9057", ":9055", + ":9060", + ":9062", + ":9052", ":9065", - ":9054", + ":9050", + ":9066", ":9053", - ":9052", - ":9064", - ":9058", ":9051", - ":9057", - ":9063", - ":9050", - ":9061", - ":9067", + ":9054", + ":9056", ":9048#out:1", ":9047#out:1", ":9046#out:1", @@ -2984,35 +2989,35 @@ ":9106", ":9105", ":9104", - ":9102", - ":9098", - ":9097", - ":9100", + ":9101", + ":9099", ":9096", - ":9103", - ":9092", + ":9093", + ":9098", ":9091", ":9090", - ":9101", - ":9095", + ":9100", + ":9089", ":9088", - ":9094", + ":9084", ":9087", ":9083", - ":9084", - ":9093", - ":9082", - ":9081", + ":9086", + ":9080", ":9079", + ":9092", + ":9081", ":9078", - ":9089", - ":9085", ":9077", + ":9103", ":9076", - ":9086", - ":9080", - ":9099", + ":9097", + ":9082", + ":9094", + ":9102", + ":9095", ":9075", + ":9085", ":9090#out:1", ":9089#out:1", ":9104#out:1", @@ -3056,22 +3061,22 @@ "thumbnail":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9098_d.png", "backingUrl":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9098_d.json", "elements":[ + ":9098:2290", ":9098:2527", ":9098:2293", - ":9098:2275", - ":9098:2272", ":9098:2285", - ":9098:2253", - ":9098:2292", + ":9098:2275", + ":9098:2284", ":9098:2282", - ":9098:2273", + ":9098:2292", + ":9098:2272", ":9098:2254", - ":9098:2290", - ":9098:2284", + ":9098:2273", + ":9098:2253", ":9098:2291", ":9098:2252", - ":9098:2251", ":9098:2396", + ":9098:2251", ":9098:2250", ":9098:2273#out:1", ":9098:2275#out:1", @@ -3108,10 +3113,10 @@ "backingUrl":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9098_2275_d.json", "elements":[ ":9098:2281", - ":9098:2528", ":9098:2279", - ":9098:2276", ":9098:2697", + ":9098:2528", + ":9098:2276", ":9098:2697#out:1", ":9098:2528#out:1", ":9098:2279#out:1", @@ -3206,38 +3211,38 @@ "thumbnail":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9109_d.png", "backingUrl":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9109_d.json", "elements":[ - ":9140", + ":9141", ":9139", - ":9138", ":9137", - ":9135", ":9134", - ":9136", - ":9132", + ":9138", ":9133", - ":9128", + ":9132", + ":9140", + ":9131", + ":9129", + ":9135", ":9127", + ":9130", + ":9126", ":9125", ":9124", - ":9121", - ":9119", - ":9126", - ":9123", ":9122", + ":9121", + ":9128", ":9118", ":9117", - ":9120", - ":9115", - ":9130", - ":9114", - ":9131", - ":9129", - ":9141", ":9116", - ":9112", + ":9114", ":9113", + ":9119", + ":9136", + ":9112", + ":9120", ":9111", ":9110", + ":9123", + ":9115", ":9138#out:1", ":9121#out:1", ":9123#out:1", @@ -3281,23 +3286,23 @@ "thumbnail":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9132_d.png", "backingUrl":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9132_d.json", "elements":[ - ":9132:2527", - ":9132:2285", ":9132:2284", - ":9132:2275", - ":9132:2273", - ":9132:2292", - ":9132:2253", + ":9132:2293", ":9132:2282", - ":9132:2396", + ":9132:2285", + ":9132:2273", + ":9132:2254", ":9132:2290", ":9132:2291", + ":9132:2292", + ":9132:2252", ":9132:2272", - ":9132:2254", - ":9132:2293", + ":9132:2253", + ":9132:2275", ":9132:2251", ":9132:2250", - ":9132:2252", + ":9132:2396", + ":9132:2527", ":9132:2273#out:1", ":9132:2275#out:1", ":9132:2284#out:1", @@ -3332,11 +3337,11 @@ "thumbnail":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9132_2275_d.png", "backingUrl":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9132_2275_d.json", "elements":[ - ":9132:2528", ":9132:2281", - ":9132:2697", ":9132:2279", + ":9132:2697", ":9132:2276", + ":9132:2528", ":9132:2697#out:1", ":9132:2528#out:1", ":9132:2279#out:1", @@ -3432,32 +3437,32 @@ "backingUrl":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9143_d.json", "elements":[ ":9165", - ":9170", ":9169", - ":9168", + ":9166", ":9163", - ":9162", ":9161", + ":9162", ":9160", + ":9168", + ":9158", ":9156", - ":9155", - ":9154", - ":9151", + ":9157", + ":9152", ":9159", - ":9164", + ":9151", + ":9155", ":9147", - ":9150", ":9146", + ":9154", ":9148", - ":9153", - ":9157", - ":9158", - ":9152", - ":9149", + ":9170", ":9145", - ":9166", - ":9144", + ":9164", + ":9150", ":9167", + ":9144", + ":9149", + ":9153", ":9152#out:1", ":9151#out:1", ":9144#out:1", @@ -3497,23 +3502,23 @@ "thumbnail":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9163_d.png", "backingUrl":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9163_d.json", "elements":[ - ":9163:2290", - ":9163:2285", ":9163:2527", + ":9163:2285", ":9163:2293", ":9163:2284", - ":9163:2275", ":9163:2273", + ":9163:2292", + ":9163:2282", + ":9163:2272", + ":9163:2396", ":9163:2254", ":9163:2291", - ":9163:2253", - ":9163:2396", - ":9163:2252", ":9163:2251", - ":9163:2282", - ":9163:2292", - ":9163:2272", + ":9163:2253", + ":9163:2290", + ":9163:2275", ":9163:2250", + ":9163:2252", ":9163:2273#out:1", ":9163:2275#out:1", ":9163:2284#out:1", @@ -3549,10 +3554,10 @@ "backingUrl":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9163_2275_d.json", "elements":[ ":9163:2528", - ":9163:2281", - ":9163:2279", ":9163:2697", ":9163:2276", + ":9163:2281", + ":9163:2279", ":9163:2697#out:1", ":9163:2528#out:1", ":9163:2279#out:1", @@ -3646,26 +3651,26 @@ "thumbnail":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9171_d.png", "backingUrl":"support/slwebview_files/BLDCmotorControl_FOC_R2017b_fixdt_9171_d.json", "elements":[ - ":9190", + ":9191", ":9189", - ":9186", + ":9190", ":9188", - ":9183", + ":9187", + ":9185", ":9184", - ":9191", ":9182", - ":9176", - ":9179", - ":9187", - ":9175", + ":9181", ":9180", + ":9178", + ":9186", ":9177", + ":9179", + ":9183", + ":9175", ":9173", - ":9181", - ":9178", - ":9172", - ":9185", ":9174", + ":9176", + ":9172", ":9172#out:1", ":9181#out:1", ":9179#out:1", @@ -3763,20 +3768,20 @@ ":9209", ":9199", ":9223", + ":9455", ":9235", + ":9449", ":9233", - ":9227", ":9225", - ":9451", - ":9454", - ":9453", - ":9449", - ":9210", ":9452", - ":9207", - ":9214", - ":9455", + ":9453", ":9215", + ":9214", + ":9454", + ":9207", + ":9451", + ":9210", + ":9227", ":9206", ":9201", ":9208#out:3", diff --git a/01_Matlab/BLDCmotorControl_FOC_R2017b_fixdt.slx b/01_Matlab/BLDCmotorControl_FOC_R2017b_fixdt.slx index 9fa7c6d0dc1500da5c2a71a31010af519d44f6b9..df23a698287156cce601d45fb8455cf0c139af9e 100644 GIT binary patch delta 174574 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%0A+Riz*Re@}7+; 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≀!i?F-Vy}v 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 literal 178839 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 z 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 MLmwYdQ2^lo0CKzjpa1{> diff --git a/Inc/BLDC_controller.h b/Inc/BLDC_controller.h index 44835ec..eb1a9e2 100644 --- a/Inc/BLDC_controller.h +++ b/Inc/BLDC_controller.h @@ -3,9 +3,9 @@ * * Code generated for Simulink model 'BLDC_controller'. * - * Model version : 1.1183 + * Model version : 1.1187 * Simulink Coder version : 8.13 (R2017b) 24-Jul-2017 - * C/C++ source code generated on : Mon Oct 21 16:34:10 2019 + * C/C++ source code generated on : Sun Oct 27 17:31:20 2019 * * Target selection: ert.tlc * Embedded hardware selection: ARM Compatible->ARM Cortex @@ -122,7 +122,7 @@ typedef struct { boolean_T UnitDelay_DSTATE_g; /* '/UnitDelay' */ boolean_T UnitDelay1_DSTATE_n; /* '/UnitDelay1' */ boolean_T n_commDeacv_Mode; /* '/n_commDeacv' */ - boolean_T n_commDeacv_Mode_c; /* '/n_commDeacv' */ + boolean_T n_fieldWeakAuth_Mode; /* '/n_fieldWeakAuth' */ boolean_T dz_cntTrnsDet_Mode; /* '/dz_cntTrnsDet' */ } DW; @@ -246,10 +246,10 @@ struct P_ { * Referenced by: '/n_commDeacv' */ int16_T n_fieldWeakAuthHi; /* Variable: n_fieldWeakAuthHi - * Referenced by: '/n_commDeacv' + * Referenced by: '/n_fieldWeakAuth' */ int16_T n_fieldWeakAuthLo; /* Variable: n_fieldWeakAuthLo - * Referenced by: '/n_commDeacv' + * Referenced by: '/n_fieldWeakAuth' */ int16_T n_max; /* Variable: n_max * Referenced by: diff --git a/Inc/config.h b/Inc/config.h index b6640d9..73b1df2 100644 --- a/Inc/config.h +++ b/Inc/config.h @@ -98,13 +98,19 @@ // ###### CONTROL VIA TWO POTENTIOMETERS ###### /* ADC-calibration to cover the full poti-range: * Connect potis to left sensor board cable (0 to 3.3V) (do NOT use the red 15V wire in the cable!). see . - * Turn the potis to minimum position, write value 1 to ADC1_MIN and value 2 to ADC2_MIN. - * Turn to maximum position and repeat it for ADC?_MAX. make, flash and test it. + * Turn the potis to minimum position, write value 1 to ADC1_MIN and value 2 to ADC2_MIN + * Turn the potis to maximum position, write value 1 to ADC1_MAX and value 2 to ADC2_MAX + * For middle resting potis: Let the potis in the middle resting position, write value 1 to ADC1_MID and value 2 to ADC2_MID + * Make, flash and test it. */ #define CONTROL_ADC // use ADC as input. disable CONTROL_SERIAL_USART2! +#define ADC1_MID_POT // ADC1 middle resting poti: comment-out if NOT a middle resting poti +#define ADC2_MID_POT // ADC2 middle resting poti: comment-out if NOT a middle resting poti #define ADC1_MIN 0 // min ADC1-value while poti at minimum-position (0 - 4095) +#define ADC1_MID 1963 // mid ADC1-value while poti at minimum-position (ADC1_MIN - ADC1_MAX) #define ADC1_MAX 4095 // max ADC1-value while poti at maximum-position (0 - 4095) #define ADC2_MIN 0 // min ADC2-value while poti at minimum-position (0 - 4095) +#define ADC2_MID 2006 // mid ADC2-value while poti at minimum-position (ADC2_MIN - ADC2_MAX) #define ADC2_MAX 4095 // max ADC2-value while poti at maximum-position (0 - 4095) // ###### CONTROL VIA NINTENDO NUNCHUCK ###### @@ -151,9 +157,11 @@ * - speedR and speedL: normal driving -1000 to 1000 */ -// Value of FILTER is in fixdt(0,16,16) -// VAL_fixedPoint = VAL_floatingPoint * 2^16. In this case 6553 = 0.1 * 2^16 -#define FILTER 6553 // 0.1f [-] lower value == softer filter [0, 65535] = [ 0.0 - 1.0]. +// Value of RATE is in fixdt(1,16,4): VAL_fixedPoint = VAL_floatingPoint * 2^4. In this case 480 = 30 * 2^4 +#define RATE 480 // 30.0f [-] lower value == slower rate [0, 32767] = [0.0 - 2047.9375]. Do NOT make rate negative (>32767) + +// Value of FILTER is in fixdt(0,16,16): VAL_fixedPoint = VAL_floatingPoint * 2^16. In this case 6553 = 0.1 * 2^16 +#define FILTER 6553 // 0.1f [-] lower value == softer filter [0, 65535] = [0.0 - 1.0]. // Value of COEFFICIENT is in fixdt(1,16,14) // If VAL_floatingPoint >= 0, VAL_fixedPoint = VAL_floatingPoint * 2^15 diff --git a/Inc/defines.h b/Inc/defines.h index 7dae05d..e96bbd6 100644 --- a/Inc/defines.h +++ b/Inc/defines.h @@ -160,4 +160,5 @@ typedef struct { // Define low-pass filter functions. Implementation is in main.c void filtLowPass16(int16_t u, uint16_t coef, int16_t *y); void filtLowPass32(int32_t u, uint16_t coef, int32_t *y); -void mixerFcn(int16_t rtu_speed, int16_t rtu_steer, int16_t *rty_speedR, int16_t *rty_speedL); \ No newline at end of file +void mixerFcn(int16_t rtu_speed, int16_t rtu_steer, int16_t *rty_speedR, int16_t *rty_speedL); +void rateLimiter16(int16_t u, int16_t rate, int16_t *y); \ No newline at end of file diff --git a/Inc/rtwtypes.h b/Inc/rtwtypes.h index b0cea52..ac495a5 100644 --- a/Inc/rtwtypes.h +++ b/Inc/rtwtypes.h @@ -3,9 +3,9 @@ * * Code generated for Simulink model 'BLDC_controller'. * - * Model version : 1.1183 + * Model version : 1.1187 * Simulink Coder version : 8.13 (R2017b) 24-Jul-2017 - * C/C++ source code generated on : Mon Oct 21 16:34:10 2019 + * C/C++ source code generated on : Sun Oct 27 17:31:20 2019 * * Target selection: ert.tlc * Embedded hardware selection: ARM Compatible->ARM Cortex diff --git a/Src/BLDC_controller.c b/Src/BLDC_controller.c index 86e7a7d..69e267f 100644 --- a/Src/BLDC_controller.c +++ b/Src/BLDC_controller.c @@ -3,9 +3,9 @@ * * Code generated for Simulink model 'BLDC_controller'. * - * Model version : 1.1183 + * Model version : 1.1187 * Simulink Coder version : 8.13 (R2017b) 24-Jul-2017 - * C/C++ source code generated on : Mon Oct 21 16:34:10 2019 + * C/C++ source code generated on : Sun Oct 27 17:31:20 2019 * * Target selection: ert.tlc * Embedded hardware selection: ARM Compatible->ARM Cortex @@ -790,6 +790,7 @@ void BLDC_controller_step(RT_MODEL *const rtM) boolean_T rtb_RelationalOperator1_m; uint8_T rtb_Sum_l; uint8_T rtb_iq_max_XA; + int16_T rtb_Saturation2; int16_T rtb_Merge; int16_T rtb_Switch2_fv; int16_T rtb_Abs5; @@ -801,7 +802,6 @@ void BLDC_controller_step(RT_MODEL *const rtM) int16_T rtb_Add; int16_T rtb_TmpSignalConversionAtLow_Pa[2]; uint8_T rtb_r_fieldWeak_XA_o2; - int16_T rtb_id_fieldWeak_M1; int16_T rtb_Gain1; int16_T rtb_Gain6; int32_T rtb_Sum2; @@ -827,37 +827,27 @@ void BLDC_controller_step(RT_MODEL *const rtM) * Inport: '/r_inpTgt' */ tmp = rtU->r_inpTgt << 4; + if (tmp >= 16000) { + rtb_Saturation2 = 16000; + } else if (tmp <= -16000) { + rtb_Saturation2 = -16000; + } else { + rtb_Saturation2 = (int16_T)(rtU->r_inpTgt << 4); + } + + /* End of Saturate: '/Saturation2' */ /* If: '/If1' incorporates: * Constant: '/z_ctrlTypSel1' + * Inport: '/r_inpTgt' */ if (rtP->z_ctrlTypSel == 0) { - /* Saturate: '/Saturation2' incorporates: - * Inport: '/r_inpTgt' - * Inport: '/r_inpTgt' + /* Outputs for IfAction SubSystem: '/Commutation_Control_Type' incorporates: + * ActionPort: '/Action Port' */ - if (tmp >= 16000) { - /* Outputs for IfAction SubSystem: '/Commutation_Control_Type' incorporates: - * ActionPort: '/Action Port' - */ - rtb_Merge = 16000; + rtb_Merge = rtb_Saturation2; - /* End of Outputs for SubSystem: '/Commutation_Control_Type' */ - } else if (tmp <= -16000) { - /* Outputs for IfAction SubSystem: '/Commutation_Control_Type' incorporates: - * ActionPort: '/Action Port' - */ - rtb_Merge = -16000; - - /* End of Outputs for SubSystem: '/Commutation_Control_Type' */ - } else { - /* Outputs for IfAction SubSystem: '/Commutation_Control_Type' incorporates: - * ActionPort: '/Action Port' - */ - rtb_Merge = (int16_T)(rtU->r_inpTgt << 4); - - /* End of Outputs for SubSystem: '/Commutation_Control_Type' */ - } + /* End of Outputs for SubSystem: '/Commutation_Control_Type' */ } else { /* Outputs for IfAction SubSystem: '/FOC_Control_Type' incorporates: * ActionPort: '/Action Port' @@ -873,29 +863,13 @@ void BLDC_controller_step(RT_MODEL *const rtM) tmp_0[2] = rtP->n_max; tmp_0[3] = rtP->i_max; - /* End of Outputs for SubSystem: '/FOC_Control_Type' */ - - /* Saturate: '/Saturation2' incorporates: - * Inport: '/r_inpTgt' - */ - if (tmp >= 16000) { - rtb_Switch2_d_0 = 16000; - } else if (tmp <= -16000) { - rtb_Switch2_d_0 = -16000; - } else { - rtb_Switch2_d_0 = (int16_T)(rtU->r_inpTgt << 4); - } - - /* Outputs for IfAction SubSystem: '/FOC_Control_Type' incorporates: - * ActionPort: '/Action Port' - */ /* Product: '/Divide1' incorporates: * Product: '/Divide4' * Selector: '/Selector' * UnitDelay: '/UnitDelay1' */ rtb_Merge = (int16_T)(((uint16_T)((tmp_0[rtDW->UnitDelay1_DSTATE] << 5) / - 125) * rtb_Switch2_d_0) >> 12); + 125) * rtb_Saturation2) >> 12); /* End of Outputs for SubSystem: '/FOC_Control_Type' */ } @@ -1406,10 +1380,10 @@ void BLDC_controller_step(RT_MODEL *const rtM) * Inport: '/i_phaAB' */ tmp = rtU->i_phaAB << 4; - if (tmp >= 24000) { - rtb_Saturation = 24000; - } else if (tmp <= -24000) { - rtb_Saturation = -24000; + if (tmp >= 32000) { + rtb_Saturation = 32000; + } else if (tmp <= -32000) { + rtb_Saturation = -32000; } else { rtb_Saturation = (int16_T)(rtU->i_phaAB << 4); } @@ -1420,10 +1394,10 @@ void BLDC_controller_step(RT_MODEL *const rtM) * Inport: '/i_phaBC' */ tmp = rtU->i_phaBC << 4; - if (tmp >= 24000) { - rtb_Switch2_d = 24000; - } else if (tmp <= -24000) { - rtb_Switch2_d = -24000; + if (tmp >= 32000) { + rtb_Switch2_d = 32000; + } else if (tmp <= -32000) { + rtb_Switch2_d = -32000; } else { rtb_Switch2_d = (int16_T)(rtU->i_phaBC << 4); } @@ -1650,14 +1624,14 @@ void BLDC_controller_step(RT_MODEL *const rtM) /* End of Outputs for SubSystem: '/Low_Pass_Filter' */ - /* Relay: '/n_commDeacv' incorporates: + /* Relay: '/n_fieldWeakAuth' incorporates: * Constant: '/cf_currFilt' */ if (rtb_Abs5 >= rtP->n_fieldWeakAuthHi) { - rtDW->n_commDeacv_Mode_c = true; + rtDW->n_fieldWeakAuth_Mode = true; } else { if (rtb_Abs5 <= rtP->n_fieldWeakAuthLo) { - rtDW->n_commDeacv_Mode_c = false; + rtDW->n_fieldWeakAuth_Mode = false; } } @@ -1665,39 +1639,37 @@ void BLDC_controller_step(RT_MODEL *const rtM) * Constant: '/a_elecPeriod1' * Constant: '/b_fieldWeakEna' * Logic: '/Logical Operator2' - * Relay: '/n_commDeacv' + * Relay: '/n_fieldWeakAuth' */ - if (rtP->b_fieldWeakEna && rtDW->n_commDeacv_Mode_c) { + if (rtP->b_fieldWeakEna && rtDW->n_fieldWeakAuth_Mode) { /* Abs: '/Abs5' */ - if (rtb_Merge < 0) { - rtb_Saturation = (int16_T)-rtb_Merge; - } else { - rtb_Saturation = rtb_Merge; + if (rtb_Saturation2 < 0) { + rtb_Saturation2 = (int16_T)-rtb_Saturation2; } /* End of Abs: '/Abs5' */ /* PreLookup: '/r_fieldWeak_XA' */ - rtb_iq_max_XA = plook_u8s16u8n6_evenc_s(rtb_Saturation, + rtb_iq_max_XA = plook_u8s16u8n6_evenc_s(rtb_Saturation2, rtP->r_fieldWeak_XA[0], (uint16_T)(rtP->r_fieldWeak_XA[1] - rtP->r_fieldWeak_XA[0]), 11U, &rtb_r_fieldWeak_XA_o2); /* Interpolation_n-D: '/id_fieldWeak_M1' */ - rtb_id_fieldWeak_M1 = intrp1d_s16s32s32u8u8n6l_s(rtb_iq_max_XA, + rtb_Saturation = intrp1d_s16s32s32u8u8n6l_s(rtb_iq_max_XA, rtb_r_fieldWeak_XA_o2, rtP->id_fieldWeak_M1); } else { - rtb_id_fieldWeak_M1 = 0; + rtb_Saturation = 0; } /* End of Switch: '/Switch1' */ /* Gain: '/toNegative' */ - rtb_Sum6 = (int16_T)-rtb_id_fieldWeak_M1; + rtb_Saturation2 = (int16_T)-rtb_Saturation; /* Gain: '/Gain4' incorporates: * Constant: '/i_max' */ - rtb_Saturation = (int16_T)-rtP->i_max; + rtb_Sum6 = (int16_T)-rtP->i_max; /* If: '/If1' incorporates: * Constant: '/Vd_max1' @@ -1745,19 +1717,19 @@ void BLDC_controller_step(RT_MODEL *const rtM) * RelationalOperator: '/UpperRelop' * Switch: '/Switch' */ - if (rtb_Sum6 > rtP->i_max) { - rtb_Sum6 = rtP->i_max; + if (rtb_Saturation2 > rtP->i_max) { + rtb_Saturation2 = rtP->i_max; } else { - if (rtb_Sum6 < rtb_Saturation) { + if (rtb_Saturation2 < rtb_Sum6) { /* Switch: '/Switch' */ - rtb_Sum6 = rtb_Saturation; + rtb_Saturation2 = rtb_Sum6; } } /* End of Switch: '/Switch2' */ /* Sum: '/Sum3' */ - tmp = rtb_Sum6 - rtDW->Sum1[1]; + tmp = rtb_Saturation2 - rtDW->Sum1[1]; if (tmp > 32767) { tmp = 32767; } else { @@ -1792,15 +1764,15 @@ void BLDC_controller_step(RT_MODEL *const rtM) (uint16_T)(rtP->Vq_max_XA[1] - rtP->Vq_max_XA[0]), 45U); /* Interpolation_n-D: '/Vq_max_M1' */ - rtb_Sum6 = rtP->Vq_max_M1[rtb_iq_max_XA]; + rtb_Saturation2 = rtP->Vq_max_M1[rtb_iq_max_XA]; /* Gain: '/Gain5' incorporates: * Interpolation_n-D: '/Vq_max_M1' */ - rtb_Saturation = (int16_T)-rtP->Vq_max_M1[rtb_iq_max_XA]; + rtb_Sum6 = (int16_T)-rtP->Vq_max_M1[rtb_iq_max_XA]; /* PreLookup: '/iq_max_XA' */ - rtb_iq_max_XA = plook_u8s16_evencka(rtb_id_fieldWeak_M1, rtP->iq_max_XA[0], + rtb_iq_max_XA = plook_u8s16_evencka(rtb_Saturation, rtP->iq_max_XA[0], (uint16_T)(rtP->iq_max_XA[1] - rtP->iq_max_XA[0]), 50U); /* MinMax: '/MinMax' incorporates: @@ -1808,15 +1780,15 @@ void BLDC_controller_step(RT_MODEL *const rtM) * Interpolation_n-D: '/iq_max_M1' */ if (rtP->i_max < rtP->iq_max_M1[rtb_iq_max_XA]) { - rtb_id_fieldWeak_M1 = rtP->i_max; + rtb_Saturation = rtP->i_max; } else { - rtb_id_fieldWeak_M1 = rtP->iq_max_M1[rtb_iq_max_XA]; + rtb_Saturation = rtP->iq_max_M1[rtb_iq_max_XA]; } /* End of MinMax: '/MinMax' */ /* Gain: '/Gain1' */ - rtb_Gain1 = (int16_T)-rtb_id_fieldWeak_M1; + rtb_Gain1 = (int16_T)-rtb_Saturation; /* Gain: '/Gain6' incorporates: * Constant: '/n_max1' @@ -1851,8 +1823,8 @@ void BLDC_controller_step(RT_MODEL *const rtM) * RelationalOperator: '/UpperRelop' * Switch: '/Switch' */ - if (rtDW->Sum1[0] > rtb_id_fieldWeak_M1) { - rtb_Switch2_d_0 = rtb_id_fieldWeak_M1; + if (rtDW->Sum1[0] > rtb_Saturation) { + rtb_Switch2_d_0 = rtb_Saturation; } else if (rtDW->Sum1[0] < rtb_Gain1) { /* Switch: '/Switch' */ rtb_Switch2_d_0 = rtb_Gain1; @@ -2000,14 +1972,14 @@ void BLDC_controller_step(RT_MODEL *const rtM) * Sum: '/Sum3' * Switch: '/Switch' */ - if ((int16_T)tmp > rtb_Sum6) { + if ((int16_T)tmp > rtb_Saturation2) { /* SignalConversion: '/Signal Conversion2' */ - rtDW->Merge = rtb_Sum6; - } else if ((int16_T)tmp < rtb_Saturation) { + rtDW->Merge = rtb_Saturation2; + } else if ((int16_T)tmp < rtb_Sum6) { /* Switch: '/Switch' incorporates: * SignalConversion: '/Signal Conversion2' */ - rtDW->Merge = rtb_Saturation; + rtDW->Merge = rtb_Sum6; } else { /* SignalConversion: '/Signal Conversion2' */ rtDW->Merge = (int16_T)tmp; @@ -2065,7 +2037,7 @@ void BLDC_controller_step(RT_MODEL *const rtM) /* Outputs for Atomic SubSystem: '/PI_backCalc_fixdt_n' */ rtDW->Merge = (int16_T) PI_backCalc_fixdt_n((int16_T)tmp, rtP->cf_nKp, rtP->cf_nKi, rtP->cf_nKb, (int16_T)((rtDW->Divide4 * rtP->cf_iqKiLimProt) - >> 10), rtb_Sum6, rtb_Saturation, &rtDW->PI_backCalc_fixdt_n_p); + >> 10), rtb_Saturation2, rtb_Sum6, &rtDW->PI_backCalc_fixdt_n_p); /* End of Outputs for SubSystem: '/PI_backCalc_fixdt_n' */ @@ -2105,14 +2077,14 @@ void BLDC_controller_step(RT_MODEL *const rtM) * RelationalOperator: '/LowerRelop1' * Sum: '/Sum2' */ - if (!((int16_T)tmp > rtb_id_fieldWeak_M1)) { + if (!((int16_T)tmp > rtb_Saturation)) { /* Switch: '/Switch' incorporates: * RelationalOperator: '/UpperRelop' */ if ((int16_T)tmp < rtb_Gain1) { - rtb_id_fieldWeak_M1 = rtb_Gain1; + rtb_Saturation = rtb_Gain1; } else { - rtb_id_fieldWeak_M1 = (int16_T)tmp; + rtb_Saturation = (int16_T)tmp; } /* End of Switch: '/Switch' */ @@ -2121,7 +2093,7 @@ void BLDC_controller_step(RT_MODEL *const rtM) /* End of Switch: '/Switch2' */ /* Sum: '/Sum1' */ - tmp = rtb_id_fieldWeak_M1 - rtDW->Sum1[0]; + tmp = rtb_Saturation - rtDW->Sum1[0]; if (tmp > 32767) { tmp = 32767; } else { @@ -2140,7 +2112,7 @@ void BLDC_controller_step(RT_MODEL *const rtM) * Sum: '/Sum1' */ PI_backCalc_fixdt((int16_T)tmp, rtP->cf_iqKp, rtP->cf_iqKi, rtP->cf_iqKb, - 0, rtb_Sum6, rtb_Saturation, &rtDW->Merge, + 0, rtb_Saturation2, rtb_Sum6, &rtDW->Merge, &rtDW->PI_backCalc_fixdt_Iq); /* End of Outputs for SubSystem: '/PI_backCalc_fixdt_Iq' */ @@ -2281,13 +2253,13 @@ void BLDC_controller_step(RT_MODEL *const rtM) * Sum: '/Sum6' * Sum: '/Sum6' */ - rtb_Switch2_d = (int16_T)tmp; + rtb_Saturation2 = (int16_T)tmp; if (!((int16_T)tmp < (int16_T)tmp_3)) { - rtb_Switch2_d = (int16_T)tmp_3; + rtb_Saturation2 = (int16_T)tmp_3; } - if (!(rtb_Switch2_d < (int16_T)tmp_2)) { - rtb_Switch2_d = (int16_T)tmp_2; + if (!(rtb_Saturation2 < (int16_T)tmp_2)) { + rtb_Saturation2 = (int16_T)tmp_2; } /* MinMax: '/MinMax2' incorporates: @@ -2295,20 +2267,20 @@ void BLDC_controller_step(RT_MODEL *const rtM) * Sum: '/Sum6' * Sum: '/Sum6' */ - rtb_Add = (int16_T)tmp; + rtb_Switch2_d = (int16_T)tmp; if (!((int16_T)tmp > (int16_T)tmp_3)) { - rtb_Add = (int16_T)tmp_3; + rtb_Switch2_d = (int16_T)tmp_3; } - if (!(rtb_Add > (int16_T)tmp_2)) { - rtb_Add = (int16_T)tmp_2; + if (!(rtb_Switch2_d > (int16_T)tmp_2)) { + rtb_Switch2_d = (int16_T)tmp_2; } /* Sum: '/Add' incorporates: * MinMax: '/MinMax1' * MinMax: '/MinMax2' */ - tmp_1 = rtb_Switch2_d + rtb_Add; + tmp_1 = rtb_Saturation2 + rtb_Switch2_d; if (tmp_1 > 32767) { tmp_1 = 32767; } else { @@ -2406,8 +2378,8 @@ void BLDC_controller_step(RT_MODEL *const rtM) * 2-dimensional Direct Look-Up returning a Column */ if (rtb_LogicalOperator) { - rtb_Switch2_d = rtDW->Gain4[0]; - rtb_Add = rtDW->Gain4[1]; + rtb_Saturation2 = rtDW->Gain4[0]; + rtb_Switch2_d = rtDW->Gain4[1]; rtb_Saturation = rtDW->Gain4[2]; } else { if (rtConstP.vec_hallToPos_Value[rtb_Sum] > 5) { @@ -2443,8 +2415,10 @@ void BLDC_controller_step(RT_MODEL *const rtM) * 2-dimensional Direct Look-Up returning a Column */ rtb_Sum2 = rtb_Sum2_h * 3; - rtb_Switch2_d = (int16_T)(rtb_Merge * rtConstP.z_commutMap_M1_table[rtb_Sum2]); - rtb_Add = (int16_T)(rtConstP.z_commutMap_M1_table[1 + rtb_Sum2] * rtb_Merge); + rtb_Saturation2 = (int16_T)(rtb_Merge * + rtConstP.z_commutMap_M1_table[rtb_Sum2]); + rtb_Switch2_d = (int16_T)(rtConstP.z_commutMap_M1_table[1 + rtb_Sum2] * + rtb_Merge); rtb_Saturation = (int16_T)(rtConstP.z_commutMap_M1_table[2 + rtb_Sum2] * rtb_Merge); } @@ -2481,10 +2455,10 @@ void BLDC_controller_step(RT_MODEL *const rtM) /* End of Outputs for SubSystem: '/BLDC_controller' */ /* Outport: '/DC_phaA' */ - rtY->DC_phaA = rtb_Switch2_d; + rtY->DC_phaA = rtb_Saturation2; /* Outport: '/DC_phaB' */ - rtY->DC_phaB = rtb_Add; + rtY->DC_phaB = rtb_Switch2_d; /* Outport: '/DC_phaC' */ rtY->DC_phaC = rtb_Saturation; diff --git a/Src/BLDC_controller_data.c b/Src/BLDC_controller_data.c index a3ef361..94b91d6 100644 --- a/Src/BLDC_controller_data.c +++ b/Src/BLDC_controller_data.c @@ -3,9 +3,9 @@ * * Code generated for Simulink model 'BLDC_controller'. * - * Model version : 1.1183 + * Model version : 1.1187 * Simulink Coder version : 8.13 (R2017b) 24-Jul-2017 - * C/C++ source code generated on : Mon Oct 21 16:34:10 2019 + * C/C++ source code generated on : Sun Oct 27 17:31:20 2019 * * Target selection: ert.tlc * Embedded hardware selection: ARM Compatible->ARM Cortex @@ -198,12 +198,12 @@ P rtP_Left = { 480, /* Variable: n_fieldWeakAuthHi - * Referenced by: '/n_commDeacv' + * Referenced by: '/n_fieldWeakAuth' */ 3200, /* Variable: n_fieldWeakAuthLo - * Referenced by: '/n_commDeacv' + * Referenced by: '/n_fieldWeakAuth' */ 2240, diff --git a/Src/bldc.c b/Src/bldc.c index 4a8d49f..de41c0f 100644 --- a/Src/bldc.c +++ b/Src/bldc.c @@ -63,7 +63,7 @@ uint8_t buzzerFreq = 0; uint8_t buzzerPattern = 0; static uint32_t buzzerTimer = 0; -uint8_t enable = 0; +uint8_t enable = 0; // initially motors are disabled for SAFETY static uint8_t enableFin = 0; static const uint16_t pwm_res = 64000000 / 2 / PWM_FREQ; // = 2000 diff --git a/Src/main.c b/Src/main.c index 8993f88..b1f9373 100644 --- a/Src/main.c +++ b/Src/main.c @@ -76,10 +76,12 @@ static volatile Serialcommand command; static uint8_t button1, button2; -static int16_t steerFixdt; // local fixed-point variable for steering. -static int16_t speedFixdt; // local fixed-point variable for speed. static int16_t steer; // local variable for steering. -1000 to 1000 static int16_t speed; // local variable for speed. -1000 to 1000 +static int16_t steerFixdt; // local fixed-point variable for steering low-pass filter +static int16_t speedFixdt; // local fixed-point variable for speed low-pass filter +static int16_t steerRateFixdt; // local fixed-point variable for steering rate limiter +static int16_t speedRateFixdt; // local fixed-point variable for speed rate limiter extern volatile int pwml; // global variable for pwm left. -1000 to 1000 extern volatile int pwmr; // global variable for pwm right. -1000 to 1000 @@ -243,8 +245,6 @@ int main(void) { int16_t board_temp_adcFilt = adc_buffer.temp; int16_t board_temp_deg_c; - enable = 0; // initially motors are disabled for SAFETY - while(1) { HAL_Delay(DELAY_IN_MAIN_LOOP); //delay in ms @@ -267,8 +267,19 @@ int main(void) { #ifdef CONTROL_ADC // ADC values range: 0-4095, see ADC-calibration in config.h - cmd1 = CLAMP(adc_buffer.l_tx2 - ADC1_MIN, 0, ADC1_MAX) * 1000 / ADC1_MAX; // ADC1 - cmd2 = CLAMP(adc_buffer.l_rx2 - ADC2_MIN, 0, ADC2_MAX) * 1000 / ADC2_MAX; // ADC2 + #ifdef ADC1_MID_POT + cmd1 = CLAMP(adc_buffer.l_tx2 - ADC1_MID, 0, ADC1_MAX - ADC1_MID) * 1000 / (ADC1_MAX - ADC1_MID) + -CLAMP(ADC1_MID - adc_buffer.l_tx2, 0, ADC1_MID - ADC1_MIN) * 1000 / (ADC1_MID - ADC1_MIN); // ADC1 + #else + cmd1 = CLAMP(adc_buffer.l_tx2 - ADC1_MIN, 0, ADC1_MAX) * 1000 / ADC1_MAX; // ADC1 + #endif + + #ifdef ADC2_MID_POT + cmd2 = CLAMP(adc_buffer.l_rx2 - ADC2_MID, 0, ADC2_MAX - ADC2_MID) * 1000 / (ADC2_MAX - ADC2_MID) + -CLAMP(ADC2_MID - adc_buffer.l_rx2, 0, ADC2_MID - ADC2_MIN) * 1000 / (ADC2_MID - ADC2_MIN); // ADC2 + #else + cmd2 = CLAMP(adc_buffer.l_rx2 - ADC2_MIN, 0, ADC2_MAX) * 1000 / ADC2_MAX; // ADC2 + #endif // use ADCs as button inputs: button1 = (uint8_t)(adc_buffer.l_tx2 > 2000); // ADC1 @@ -284,18 +295,21 @@ int main(void) { timeout = 0; #endif - // Bypass - only for testing purposes - // cmd1 = 2*(cmd1-500); - // cmd2 = 2*(cmd2-500); // ####### MOTOR ENABLING: Only if the initial input is very small (for SAFETY) ####### if (enable == 0 && (cmd1 > -50 && cmd1 < 50) && (cmd2 > -50 && cmd2 < 50)){ - enable = 1; // enable motors + buzzerPattern = 0; + buzzerFreq = 6; HAL_Delay(100); // make 2 beeps indicating the motor enable + buzzerFreq = 4; HAL_Delay(200); + buzzerFreq = 0; + enable = 1; // enable motors } // ####### LOW-PASS FILTER ####### - filtLowPass16(cmd1, FILTER, &steerFixdt); - filtLowPass16(cmd2, FILTER, &speedFixdt); + rateLimiter16(cmd1, RATE, &steerRateFixdt); + rateLimiter16(cmd2, RATE, &speedRateFixdt); + filtLowPass16(steerRateFixdt >> 4, FILTER, &steerFixdt); + filtLowPass16(speedRateFixdt >> 4, FILTER, &speedFixdt); steer = steerFixdt >> 4; // convert fixed-point to integer speed = speedFixdt >> 4; // convert fixed-point to integer @@ -335,13 +349,11 @@ int main(void) { // ####### DEBUG SERIAL OUT ####### #ifdef CONTROL_ADC - // setScopeChannel(0, (int)adc_buffer.l_tx2); // 1: ADC1 - // setScopeChannel(1, (int)adc_buffer.l_rx2); // 2: ADC2 + setScopeChannel(0, (int)adc_buffer.l_tx2); // 1: ADC1 + setScopeChannel(1, (int)adc_buffer.l_rx2); // 2: ADC2 #endif - setScopeChannel(0, (int16_t)speedR); // 1: output command: [-1000, 1000] - setScopeChannel(1, (int16_t)speedL); // 2: output command: [-1000, 1000] - setScopeChannel(2, (int16_t)rtY_Right.n_mot); // 3: Real motor speed [rpm] - setScopeChannel(3, (int16_t)rtY_Left.n_mot); // 4: Real motor speed [rpm] + setScopeChannel(2, (int16_t)speedR); // 1: output command: [-1000, 1000] + setScopeChannel(3, (int16_t)speedL); // 2: output command: [-1000, 1000] setScopeChannel(4, (int16_t)adc_buffer.batt1); // 5: for battery voltage calibration setScopeChannel(5, (int16_t)(batVoltage * BAT_CALIB_REAL_VOLTAGE / BAT_CALIB_ADC)); // 6: for verifying battery voltage calibration setScopeChannel(6, (int16_t)board_temp_adcFilt); // 7: for board temperature calibration @@ -352,9 +364,13 @@ int main(void) { HAL_GPIO_TogglePin(LED_PORT, LED_PIN); // ####### POWEROFF BY POWER-BUTTON ####### if (HAL_GPIO_ReadPin(BUTTON_PORT, BUTTON_PIN)) { - enable = 0; - while (HAL_GPIO_ReadPin(BUTTON_PORT, BUTTON_PIN)) {} - poweroff(); + enable = 0; // disable motors + while (HAL_GPIO_ReadPin(BUTTON_PORT, BUTTON_PIN)) {} // wait until button is released + if(__HAL_RCC_GET_FLAG(RCC_FLAG_SFTRST)) { // do not power off after software reset (from a programmer/debugger) + __HAL_RCC_CLEAR_RESET_FLAGS(); // clear reset flags + } else { + poweroff(); // release power-latch + } } @@ -507,7 +523,7 @@ void filtLowPass32(int32_t u, uint16_t coef, int32_t *y) /* mixerFcn(rtu_speed, rtu_steer, &rty_speedR, &rty_speedL); * Inputs: rtu_speed, rtu_steer = fixdt(1,16,4) * Outputs: rty_speedR, rty_speedL = int16_t - * Parameters: SPEED_COEFFICIENT, STEER_COEFFICIENT = fixdt(0,16,15) + * Parameters: SPEED_COEFFICIENT, STEER_COEFFICIENT = fixdt(0,16,14) */ void mixerFcn(int16_t rtu_speed, int16_t rtu_steer, int16_t *rty_speedR, int16_t *rty_speedL) { @@ -529,4 +545,29 @@ void mixerFcn(int16_t rtu_speed, int16_t rtu_steer, int16_t *rty_speedR, int16_t *rty_speedL = CLAMP(*rty_speedL, -1000, 1000); } +// =========================================================== + /* rateLimiter16(int16_t u, int16_t rate, int16_t *y); + * Inputs: u = int16 + * Outputs: y = fixdt(1,16,4) + * Parameters: rate = fixdt(1,16,4) = [0, 32767] Do NOT make rate negative (>32767) + */ +void rateLimiter16(int16_t u, int16_t rate, int16_t *y) +{ + int16_t q0; + int16_t q1; + + q0 = (u << 4) - *y; + + if (q0 > rate) { + q0 = rate; + } else { + q1 = -rate; + if (q0 < q1) { + q0 = q1; + } + } + + *y = (int16_T)(q0 + *y); +} + // =========================================================== \ No newline at end of file diff --git a/build/firmware.bin b/build/firmware.bin index 4e9e39027d98adb1a9ddb791878973c22d8171a6..4e46d76931718611b9bb61750647303c26f26a89 100644 GIT binary patch delta 3900 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 MU5H@vZO#4v4WT+d{{R30 delta 3610 zcma)9e{@sT9l!UzGOS!Gk280Q0RmqT~ovnhY%BD=6h3O8CDy(%x3ZA_*p?R-q$-XbR{jr_1W6t^9 z`@P@$efN96Ki|th8x{z5pgzRDk&l=?I>a;sS^xyl20;Jy+Yh|`%o_ z&Hu>$>L)+^Q@j`qz*@>s!am0cc37zqoypF$B`QJzW z6LA)4qCTXuOukk0Marrma<{zW?3T3J^4gZ#GDKZ>QYz~OZ_++_hgYQf+5}!}8&1kX zIVS!i=jod}HabUsaAv`53f*v~jJ+I1dE`y`9LFbxC@0Nd&tn?prunfp>9uyV(ONf5 zQ+q{WS80E%aKEutT-VomouPOR?|t;i*;Gj<7u#yan(8E)?kFIv#! zFE_h{`<*@h8QyMDW@KOVnNjFBAny_$lTNa?3XdImq`)OSd?eLxo6cjUjYrBZvGhup zxT+8F2b`_Kqef&f@tsccgkrj5uPiu^?iN*Q%*G=6TR<6;_tu;HMqY7tiDr;wh;!s6 zXSq4kt0c;fZt>k*0xDf`m0OJ9iCknrybI3V0@4mJ>0zU9tbWWkT$a%$1huW=18VQs zu28wM+}v*N7C&rp2@e?M{b;U<|8|!{;cl;X37gd@2k|rOzZpb2k5I_wyd*i*BNVgU zLZ8+nl)`+0^$4rjX@8U4Jnb8B@<^+&!Jc|jah;RjDKek!%(e}eW*v-d7O$S zjhBW}?w%g7g?FsE7N{r=NL2Zhz-6K4)TBU6Zw_>ea);4pj*YHAiS%m&Z#BLfL@BcV zOiZGDDAW6Jpi3w|;zsvbtF3Ntg*6i^y(Ah81p`R`Ab=sy1Q_>Ia7<6GvV*`mwQ$Z; zfex-7cJ~Zo{mX+m`%iNX6rCd4>Dh{f)GJr+X?OnlKUxx2ikYzCF%yr}GG zDR4w~p2XR-!6j_6%g$4}8JtU~WVZz<1AQJSJC*%-fQB@yG;RstoGkypuV))(mZrcp zYXb$NeQTNm=ZYI7YIRHC;v}&K@r;v+gp3h8ohKDx3bq__8Zle?Ss3n)qAJ^#$~$GPpz;r}i=gCoX>M z__+N=^%Vpbl^eUndjQMXa_eL(9ZI1yy_E%~&>x(~gk^nQq68CCxf44qmZT^(a#=W5 zXAU(lw1k@T+!>YvQ2Kn2-@+w!Y%f4jidS`*Ld`}=Qj$_z$-%^B_o%(9z3a`+3=>?! z#HkKffe)&H%3hTHpxhd*tr28kCbCUIx4k#tt*pKO+nJWOl1iAvKe* z(Svm^p@OAg+{B{nW&b!0w&jPlCy^HXqt@=O*xe?C7HQDj{P5QvNG?r^lxELAXj$i% zl7;6^bA=YmXsr6I^){!0W3D6IIJuB)zeBq`zYtxwB%Ky#8BdF^R40-|w<3zi*IJep zO3^J1H7`GLolbH|G2Y(ecX6uyJ1mKZrMT8w$e-^pI?Q9;;^}z)=0{%jNZ#BEO>qR8 zVt)8luxcyVksogHbc<&--NGNW@4@|h{GSF9di^@4l7kky%a6S4IYjn(6ZNsk_hLfu zOX`qdQO6<^Vjb5iu4h%jSYA1Jyj#40W{x!qE@8b<(Z8+tm|*%@yk(@EU(4NdMGE`k ze&rRZ(xm`O>-qgsz?nSKl(LQ*63La6v?*DhMsIn>8hEAb^ZKGAp?QY<(NvPGo{8mT zzB-*6KS2uBoABr4E%jXdF8NBW*D!~BpuKgT*bf;xjqBkUqSR>9`%lmdz_t?@#_$RH z$8vLo`-w#}Uw%PElP`Qn4rVRMO`S=x7V`eoH1#86%sk;d(y>|@Jov=~xjJ=Wk$)mZ|M@k%$QE{1 zYB}8b`8C;Mx()NSG2mF_oeYt;QhcF6@vH!Ej_q$pLp&e z0=h&DmbZiD;b!WaAuY7rgNkG!cgN-<9dq;YHKezx3bCR2=93I z_Eu$6Wz)v^*8XTH@?^=A#WU?gjg?JEKiQsFQ__oqx%4JO!bL@VKIq5#ysFDW=P5v4 z8F%k!y9RkdQjIDO&TEfQ<4tlY>*~SmffZ67GyRb+6-S zFqbMWI3uR9lLvD1+6&YJ$3X!xCk^B-e$%WRSXGj_MFwhDmaHtwu%8PeI?+CbOV?c% zme*Z`1EHRRR8*6P3`OVJrsQA-Wg2PLA}>v1k+xg38%|cIfvSwESR_0FD&yZ>|D2%Q z6zdZi2UPvF3GAk&1<*qiziyPVO1S;E6ZejMhI32uH9ip;6WE6=w(wV#EzwX=+WlhU zE=~>~aGy@pYkxcP?4z}oCwa4?B^n9ho4#tLR{?uxCSs8fCS=+S2>y3bN~?nTt0XQT?(** zOg}&>XsL*|N`;#Q&n02gb3h}IUkYIN!pgG70CaI&oghk z3McurOCH74Ityu9nnP{2kl!zz0h8~qO9vI{9|;qY>El%^r2jCWl`VzmC4A;PZ`w#F Y#G~U|Y<)?FvwR;E-ozM_cZz5K3tOw*p8x;= diff --git a/build/firmware.elf b/build/firmware.elf index dd460ab647bc3d4d1d2b6af8595680c8f8289d94..41903ecbc56c6d3b807a32140efc22623318482c 100644 GIT binary patch literal 382656 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