📄 dtc_svm_416_acc.c
字号:
break;
case 6:
dtc_svm_416_B->Multiport_Switch_b = rtb_temp186;
break;
default:
/* Result undefined */
#if defined(MATLAB_MEX_FILE)
(void)mexPrintf("Error: Invalid control input for block:"
"<S26>/Multiport Switch\n"
"Result is undefined.");
#endif
break;
}
}
if (ssIsContinuousTask(S, tid)) { /* Sample time: [0.0, 0.0] */
/* Sum: '<S28>/Sum' */
dtc_svm_416_B->Sum_f = dtc_svm_416_B->temp117
- dtc_svm_416_B->Multiport_Switch_b;
/* Relay: '<S28>/Relay' */
if (ssIsMajorTimeStep(S)) {
if (dtc_svm_416_DWork->Relay_MODE == 0) { /* off */
if (dtc_svm_416_B->Sum_f >= dtc_svm_416_P->Relay_OnVal) {
dtc_svm_416_DWork->Relay_MODE = 1; /* turn on */
}
} else {
if (dtc_svm_416_B->Sum_f <= dtc_svm_416_P->Relay_OffVal) {
dtc_svm_416_DWork->Relay_MODE = 0; /* turn off */
}
}
}
if (dtc_svm_416_DWork->Relay_MODE == 0) { /* off */
rtb_Relay = dtc_svm_416_P->Relay_YOff;
} else {
rtb_Relay = dtc_svm_416_P->Relay_YOn;
}
/* DataTypeConversion: '<S28>/Data Type Conversion1' incorporates:
* Logic: '<S28>/Logical Operator'
*/
rtb_temp188 = (real_T)(!rtb_Relay);
}
if (ssIsSampleHit(S, 1, tid)) { /* Sample time: [0.0, 1.0] */
/* MultiPortSwitch: '<S26>/Multiport Switch1' */
switch ((int_T)dtc_svm_416_B->temp116) {
case 1:
dtc_svm_416_B->Multiport_Switch1_b = rtb_temp190;
break;
case 2:
dtc_svm_416_B->Multiport_Switch1_b = rtb_temp185;
break;
case 3:
dtc_svm_416_B->Multiport_Switch1_b = rtb_temp186;
break;
case 4:
dtc_svm_416_B->Multiport_Switch1_b = rtb_temp186;
break;
case 5:
dtc_svm_416_B->Multiport_Switch1_b = rtb_temp190;
break;
case 6:
dtc_svm_416_B->Multiport_Switch1_b = rtb_temp185;
break;
default:
/* Result undefined */
#if defined(MATLAB_MEX_FILE)
(void)mexPrintf("Error: Invalid control input for block:"
"<S26>/Multiport Switch1\n"
"Result is undefined.");
#endif
break;
}
}
if (ssIsContinuousTask(S, tid)) { /* Sample time: [0.0, 0.0] */
/* Sum: '<S28>/Sum1' */
dtc_svm_416_B->Sum1_d = dtc_svm_416_B->temp117
- dtc_svm_416_B->Multiport_Switch1_b;
/* Relay: '<S28>/Relay1' */
if (ssIsMajorTimeStep(S)) {
if (dtc_svm_416_DWork->Relay1_MODE == 0) { /* off */
if (dtc_svm_416_B->Sum1_d >= dtc_svm_416_P->Relay1_OnVal) {
dtc_svm_416_DWork->Relay1_MODE = 1; /* turn on */
}
} else {
if (dtc_svm_416_B->Sum1_d <= dtc_svm_416_P->Relay1_OffVal) {
dtc_svm_416_DWork->Relay1_MODE = 0; /* turn off */
}
}
}
if (dtc_svm_416_DWork->Relay1_MODE == 0) { /* off */
rtb_Relay1 = dtc_svm_416_P->Relay1_YOff;
} else {
rtb_Relay1 = dtc_svm_416_P->Relay1_YOn;
}
/* DataTypeConversion: '<S28>/Data Type Conversion' incorporates:
* Logic: '<S28>/Logical Operator1'
*/
rtb_temp187 = (real_T)(!rtb_Relay1);
}
if (ssIsSampleHit(S, 1, tid)) { /* Sample time: [0.0, 1.0] */
/* MultiPortSwitch: '<S26>/Multiport Switch2' */
switch ((int_T)dtc_svm_416_B->temp116) {
case 1:
dtc_svm_416_B->Multiport_Switch2 = rtb_temp185;
break;
case 2:
dtc_svm_416_B->Multiport_Switch2 = rtb_temp186;
break;
case 3:
dtc_svm_416_B->Multiport_Switch2 = rtb_temp185;
break;
case 4:
dtc_svm_416_B->Multiport_Switch2 = rtb_temp190;
break;
case 5:
dtc_svm_416_B->Multiport_Switch2 = rtb_temp186;
break;
case 6:
dtc_svm_416_B->Multiport_Switch2 = rtb_temp190;
break;
default:
/* Result undefined */
#if defined(MATLAB_MEX_FILE)
(void)mexPrintf("Error: Invalid control input for block:"
"<S26>/Multiport Switch2\n"
"Result is undefined.");
#endif
break;
}
}
if (ssIsContinuousTask(S, tid)) { /* Sample time: [0.0, 0.0] */
/* Sum: '<S28>/Sum2' */
dtc_svm_416_B->Sum2_d = dtc_svm_416_B->temp117
- dtc_svm_416_B->Multiport_Switch2;
/* Relay: '<S28>/Relay2' */
if (ssIsMajorTimeStep(S)) {
if (dtc_svm_416_DWork->Relay2_MODE == 0) { /* off */
if (dtc_svm_416_B->Sum2_d >= dtc_svm_416_P->Relay2_OnVal) {
dtc_svm_416_DWork->Relay2_MODE = 1; /* turn on */
}
} else {
if (dtc_svm_416_B->Sum2_d <= dtc_svm_416_P->Relay2_OffVal) {
dtc_svm_416_DWork->Relay2_MODE = 0; /* turn off */
}
}
}
if (dtc_svm_416_DWork->Relay2_MODE == 0) { /* off */
rtb_Relay2 = dtc_svm_416_P->Relay2_YOff;
} else {
rtb_Relay2 = dtc_svm_416_P->Relay2_YOn;
}
/* DataTypeConversion: '<S28>/Data Type Conversion2' incorporates:
* Logic: '<S28>/Logical Operator2'
*/
rtb_temp191 = (real_T)(!rtb_Relay2);
/* DataTypeConversion: '<S38>/Data Type Conversion4' */
dtc_svm_416_B->Data_Type_Conversion4[0] = (rtb_Relay != 0.0);
dtc_svm_416_B->Data_Type_Conversion4[1] = (rtb_temp188 != 0.0);
dtc_svm_416_B->Data_Type_Conversion4[2] = (rtb_Relay1 != 0.0);
dtc_svm_416_B->Data_Type_Conversion4[3] = (rtb_temp187 != 0.0);
dtc_svm_416_B->Data_Type_Conversion4[4] = (rtb_Relay2 != 0.0);
dtc_svm_416_B->Data_Type_Conversion4[5] = (rtb_temp191 != 0.0);
}
if (ssIsSampleHit(S, 1, tid)) { /* Sample time: [0.0, 1.0] */
/* Constant: '<S38>/2' */
dtc_svm_416_B->id_a = dtc_svm_416_P->id_a_Value;
}
/* SubSystem: '<S38>/Tail discrete' */
/* Outputs for enable system: '<S38>/Tail discrete' */
{
/* simstruct variables */
dtc_svm_416_BlockIO *dtc_svm_416_B = (dtc_svm_416_BlockIO *)
_ssGetBlockIO(S);
dtc_svm_416_D_Work *dtc_svm_416_DWork = (dtc_svm_416_D_Work *)
ssGetRootDWork(S);
dtc_svm_416_PrevZCSigStates *dtc_svm_416_PrevZCSigState =
(dtc_svm_416_PrevZCSigStates *) _ssGetPrevZCSigState(S);
dtc_svm_416_Parameters *dtc_svm_416_P = (dtc_svm_416_Parameters *)
ssGetDefaultParam(S);
/* detect enable/disable transitions */
if (ssIsSampleHit(S, 1, tid)) {
EnableStates prevEnableState = (EnableStates)
dtc_svm_416_DWork->Tail_discret_MODE[0];
EnableStates enableState;
if (ssIsSampleHit(S, 1, tid)) { /* Sample time: [0.0, 1.0] */
dtc_svm_416_DWork->Tail_discret_MODE[1] = (dtc_svm_416_B->id_a) ?
SUBSYS_ENABLED : SUBSYS_DISABLED;
}
enableState = (EnableStates) dtc_svm_416_DWork->Tail_discret_MODE[1];
if (enableState == SUBSYS_ENABLED) {
if (prevEnableState == SUBSYS_DISABLED) {
/* SUBSYS_BECOMING_ENABLED */
if ( ssGetT(S) != ssGetTStart(S) ) {
ssSetSolverNeedsReset(S);
}
/* protect against calling initialize function twice at startup */
if (!(ssIsFirstInitCond(S))) {
/* Initial conditions for enable system: '<S38>/Tail discrete' */
{
/* simstruct variables */
dtc_svm_416_D_Work *dtc_svm_416_DWork = (dtc_svm_416_D_Work *)
ssGetRootDWork(S);
dtc_svm_416_Parameters *dtc_svm_416_P = (dtc_svm_416_Parameters *)
ssGetDefaultParam(S);
/* DiscreteIntegrator Block: <S41>/Discrete-Time Integrator */
{
int_T i1;
real_T *dw_DSTATE =
&dtc_svm_416_DWork->Discrete_Time_Int_DSTATE[0];
for (i1=0; i1 < 6; i1++) {
dw_DSTATE[i1] = dtc_svm_416_P->Discrete_Time_Int_IC;
}
}
/* UnitDelay Block: <S41>/Unit Delay3 */
{
int_T i1;
real_T *dw_DSTATE = &dtc_svm_416_DWork->Unit_Delay3_b_DSTATE[0];
for (i1=0; i1 < 6; i1++) {
dw_DSTATE[i1] = dtc_svm_416_P->Unit_Delay3_b_X0;
}
}
}
}
/* Enable for enable system: '<S38>/Tail discrete' */
{
/* simstruct variables */
dtc_svm_416_D_Work *dtc_svm_416_DWork = (dtc_svm_416_D_Work *)
ssGetRootDWork(S);
/* DiscreteIntegrator Block: <S41>/Discrete-Time Integrator */
dtc_svm_416_DWork->Discrete_Time_Int_SYSTEM_ENABLE = true;
}
dtc_svm_416_DWork->Tail_discret_MODE[0] = (int_T) SUBSYS_ENABLED;
}
} else {
if (prevEnableState == SUBSYS_ENABLED) {
/* SUBSYS_BECOMING_DISABLED */
ssSetSolverNeedsReset(S);
/* Disable for enable system: '<S38>/Tail discrete' */
{
/* simstruct variables */
dtc_svm_416_D_Work *dtc_svm_416_DWork = (dtc_svm_416_D_Work *)
ssGetRootDWork(S);
/* DisableFcn of enable SubSystem Block: <S38>/Tail discrete */
dtc_svm_416_DWork->Tail_discret_MODE[0] = (int_T) SUBSYS_DISABLED;
}
}
}
}
/* run blocks if enabled */
if (dtc_svm_416_DWork->Tail_discret_MODE[0] == SUBSYS_ENABLED) {
if (ssIsContinuousTask(S, tid) || ssIsSampleHit(S, 4, tid)) {
if (ssIsSampleHit(S, 4, tid)) { /* Sample time: [0.00001, 0.0] */
/* Constant: '<S41>/1' */
dtc_svm_416_B->id_j = dtc_svm_416_P->id_j_Value;
/* DiscreteIntegrator: '<S41>/Discrete-Time Integrator'
*
* Regarding '<S41>/Discrete-Time Integrator':
* Unlimited, w/o Saturation Port
*/
(void)memset(&dtc_svm_416_DWork->Discrete_Time_Int_MODE[0], 0,
6*sizeof(int_T));
{
ZCEventType zcEvent;
/* evaluate zero-crossings */
{
int_T i1;
real_T *dw_DSTATE =
&dtc_svm_416_DWork->Discrete_Time_Int_DSTATE[0];
const boolean_T *u1 = &dtc_svm_416_B->Data_Type_Conversion4[0];
ZCSigState *pzc =
&dtc_svm_416_PrevZCSigState->Discrete_Time_Int_ZCE[0];
int_T *mode = &dtc_svm_416_DWork->Discrete_Time_Int_MODE[0];
for (i1=0; i1 < 6; i1++) {
zcEvent = ((ZCEventType) (!u1[i1] && pzc[i1]));
pzc[i1] = (ZCSigState) u1[i1];
if ( zcEvent ) {
dw_DSTATE[i1] = dtc_svm_416_P->Discrete_Time_Int_IC;
mode[i1] = 1;
}
}
}
}
/* system was just enabled */
if ( dtc_svm_416_DWork->Discrete_Time_Int_SYSTEM_ENABLE) {
dtc_svm_416_DWork->Discrete_Time_Int_SYSTEM_ENABLE = false;
{
int_T i1;
real_T *y0 = &dtc_svm_416_B->Discrete_Time_Int[0];
real_T *dw_DSTATE =
&dtc_svm_416_DWork->Discrete_Time_Int_DSTATE[0];
for (i1=0; i1 < 6; i1++) {
y0[i1] = dw_DSTATE[i1];
}
}
} else {
{
int_T i1;
real_T *y0 = &dtc_svm_416_B->Discrete_Time_Int[0];
real_T *dw_DSTATE =
&dtc_svm_416_DWork->Discrete_Time_Int_DSTATE[0];
int_T *mode = &dtc_svm_416_DWork->Discrete_Time_Int_MODE[0];
for (i1=0; i1 < 6; i1++) {
if ( mode[i1] ) {
y0[i1] = dw_DSTATE[i1];
} else {
y0[i1] = dw_DSTATE[i1] + 5.0E-006 * dtc_svm_416_B->id_j;
}
}
}
}
/* Lookup: '<S41>/Look-Up Table' */
{
int_T i1;
const real_T *u0 = &dtc_svm_416_B->Discrete_Time_Int[0];
real_T *y0 = &dtc_svm_416_B->Look_Up_Table[0];
for (i1=0; i1 < 6; i1++) {
y0[i1] = rt_Lookup(dtc_svm_416_P->Look_Up_Table_XData, 4, u0[i1],
dtc_svm_416_P->Look_Up_Table_YData);
}
}
/* UnitDelay: '<S41>/Unit Delay3' */
{
int_T i1;
real_T *y0 = &dtc_svm_416_B->Unit_Delay3_b[0];
real_T *dw_DSTATE = &dtc_svm_416_DWork->Unit_Delay3_b_DSTATE[0];
for (i1=0; i1 < 6; i1++) {
y0[i1] = dw_DSTATE[i1];
}
}
}
if (ssIsContinuousTask(S, tid)) { /* Sample time: [0.0, 0.0] */
/* Switch: '<S41>/Switch' */
{
int_T i1;
const real_T *u0 = &dtc_svm_416_B->Unit_Delay_a[0];
const boolean_T *u1 = &dtc_svm_416_B->Data_Type_Conversion4[0];
const real_T *u2 = &dtc_svm_416_B->Unit_Delay3_b[0];
real_T *y0 = &dtc_svm_416_B->Switch_d[0];
for (i1=0; i1 < 6; i1++) {
if (u1[i1]) {
y0[i1] = u0[i1];
} else {
y0[i1] = u2[i1];
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -