📄 serialsim_no_observer_acc.c
字号:
}
/* Output the values */
if (serialsim_no_observer_DWork->Pulse_Generator3_IWORK.currValue == 1){
serialsim_no_observer_B->Pulse_Generator3 =
serialsim_no_observer_P->Pulse_Generator3_Amp;
} else {
serialsim_no_observer_B->Pulse_Generator3 = 0;
}
}
if (ssIsSampleHit(S, 6, tid)) { /* Sample time: [-2.0, 4.0] */
/* DiscretePulseGenerator: '<S5>/Pulse Generator4' */
real_T time = ssGetTaskTime(S,tid);
real_T delay = 0.0;
if ( (int_T)serialsim_no_observer_DWork->Pulse_Generator4_IWORK.justEnabled
) {
serialsim_no_observer_DWork->Pulse_Generator4_IWORK.justEnabled = 0;
if (time >= delay) {
real_T ratio = (time - delay)/
serialsim_no_observer_P->Pulse_Generator4_Period;
serialsim_no_observer_DWork->Pulse_Generator4_IWORK.numCompleteCycles =
(int)floor(ratio);
if (
fabs((serialsim_no_observer_DWork->Pulse_Generator4_IWORK.numCompleteCycles+1)-
ratio ) < DBL_EPSILON * ratio )
{
serialsim_no_observer_DWork->Pulse_Generator4_IWORK.numCompleteCycles
=
serialsim_no_observer_DWork->Pulse_Generator4_IWORK.numCompleteCycles+1;
}
serialsim_no_observer_DWork->Pulse_Generator4_IWORK.numCompleteCycles =
serialsim_no_observer_DWork->Pulse_Generator4_IWORK.numCompleteCycles;
if (time < delay +
serialsim_no_observer_DWork->Pulse_Generator4_IWORK.numCompleteCycles *
serialsim_no_observer_P->Pulse_Generator4_Period
+ serialsim_no_observer_P->Pulse_Generator4_Duty *
serialsim_no_observer_P->Pulse_Generator4_Period/100) {
serialsim_no_observer_DWork->Pulse_Generator4_IWORK.currValue = 1;
serialsim_no_observer_DWork->Pulse_Generator4_RWORK.nextTime = delay +
serialsim_no_observer_DWork->Pulse_Generator4_IWORK.numCompleteCycles
* serialsim_no_observer_P->Pulse_Generator4_Period
+ serialsim_no_observer_P->Pulse_Generator4_Duty *
serialsim_no_observer_P->Pulse_Generator4_Period/100;
} else {
serialsim_no_observer_DWork->Pulse_Generator4_IWORK.currValue = 0;
serialsim_no_observer_DWork->Pulse_Generator4_RWORK.nextTime = delay +
(serialsim_no_observer_DWork->Pulse_Generator4_IWORK.numCompleteCycles
+ 1) * serialsim_no_observer_P->Pulse_Generator4_Period;
}
} else {
serialsim_no_observer_DWork->Pulse_Generator4_IWORK.numCompleteCycles =
0;
serialsim_no_observer_DWork->Pulse_Generator4_IWORK.currValue = 0;
serialsim_no_observer_DWork->Pulse_Generator4_RWORK.nextTime = delay;
}
} else {
/* Determine if any values need to change */
if (serialsim_no_observer_DWork->Pulse_Generator4_RWORK.nextTime <= time) {
if (serialsim_no_observer_DWork->Pulse_Generator4_IWORK.currValue == 1) {
serialsim_no_observer_DWork->Pulse_Generator4_IWORK.currValue = 0;
serialsim_no_observer_DWork->Pulse_Generator4_RWORK.nextTime = delay +
(serialsim_no_observer_DWork->Pulse_Generator4_IWORK.numCompleteCycles
+ 1) * serialsim_no_observer_P->Pulse_Generator4_Period;
} else {
if ( serialsim_no_observer_DWork->Pulse_Generator4_RWORK.nextTime !=
delay) {
serialsim_no_observer_DWork->Pulse_Generator4_IWORK.numCompleteCycles
+= 1;
}
serialsim_no_observer_DWork->Pulse_Generator4_IWORK.currValue = 1;
serialsim_no_observer_DWork->Pulse_Generator4_RWORK.nextTime = delay +
serialsim_no_observer_DWork->Pulse_Generator4_IWORK.numCompleteCycles
* serialsim_no_observer_P->Pulse_Generator4_Period
+ 0.01 * serialsim_no_observer_P->Pulse_Generator4_Duty *
serialsim_no_observer_P->Pulse_Generator4_Period;
}
}
}
/* Set the next hit time */
{
real_T tNext =
serialsim_no_observer_DWork->Pulse_Generator4_RWORK.nextTime;
_ssSetVarNextHitTime(S, (int_T)4.0, tNext);
}
/* Output the values */
if (serialsim_no_observer_DWork->Pulse_Generator4_IWORK.currValue == 1){
serialsim_no_observer_B->Pulse_Generator4 =
serialsim_no_observer_P->Pulse_Generator4_Amp;
} else {
serialsim_no_observer_B->Pulse_Generator4 = 0;
}
}
if (ssIsSampleHit(S, 1, tid)) { /* Sample time: [0.0, 1.0] */
/* Constant: '<S5>/T8' */
serialsim_no_observer_B->T8 = serialsim_no_observer_P->T8_Value;
/* Constant: '<S5>/T9' */
serialsim_no_observer_B->T9 = serialsim_no_observer_P->T9_Value;
/* Constant: '<S8>/m4' */
serialsim_no_observer_B->m4 = serialsim_no_observer_P->m4_Value;
}
if (ssIsContinuousTask(S, tid)) { /* Sample time: [0.0, 0.0] */
/* Clock: '<S8>/t' */
rtb_t = ssGetT(S);
}
if (ssIsSampleHit(S, 1, tid)) { /* Sample time: [0.0, 1.0] */
/* Constant: '<S8>/m3' */
serialsim_no_observer_B->m3 = serialsim_no_observer_P->m3_Value;
/* Gain: '<S8>/Gain2'
*
* Regarding '<S8>/Gain2':
* Gain value: serialsim_no_observer_P->Gain2_Gain
*/
serialsim_no_observer_B->Gain2 = serialsim_no_observer_B->m3 *
serialsim_no_observer_P->Gain2_Gain;
/* Constant: '<S8>/Constant' */
serialsim_no_observer_B->Constant_c[0] =
serialsim_no_observer_P->Constant_c_Value[0];
serialsim_no_observer_B->Constant_c[1] =
serialsim_no_observer_P->Constant_c_Value[1];
serialsim_no_observer_B->Constant_c[2] =
serialsim_no_observer_P->Constant_c_Value[2];
/* Constant: '<S8>/Constant1' */
serialsim_no_observer_B->Constant1_b =
serialsim_no_observer_P->Constant1_b_Value;
}
if (ssIsContinuousTask(S, tid)) { /* Sample time: [0.0, 0.0] */
/* Switch: '<S8>/Switch' */
if (serialsim_no_observer_B->Constant1_b >=
serialsim_no_observer_P->Switch_b_Threshold) {
{
/* simstruct variables */
serialsim_no_observer_BlockIO *serialsim_no_observer_B =
(serialsim_no_observer_BlockIO *) _ssGetBlockIO(S);
serialsim_no_observer_Parameters *serialsim_no_observer_P =
(serialsim_no_observer_Parameters *) ssGetDefaultParam(S);
/* Gain: '<S8>/Gain'
*
* Regarding '<S8>/Gain':
* Gain value: serialsim_no_observer_P->Gain_c_Gain
*/
rtb_Gain_c = rtb_t * serialsim_no_observer_P->Gain_c_Gain;
/* Sum: '<S8>/Sum' */
rtb_temp191[0] = rtb_Gain_c + serialsim_no_observer_B->Gain2
+ serialsim_no_observer_B->Constant_c[0];
rtb_temp191[1] = rtb_Gain_c + serialsim_no_observer_B->Gain2
+ serialsim_no_observer_B->Constant_c[1];
rtb_temp191[2] = rtb_Gain_c + serialsim_no_observer_B->Gain2
+ serialsim_no_observer_B->Constant_c[2];
/* Trigonometry: '<S8>/Trigonometric Function' */
rtb_temp191[0] = sin(rtb_temp191[0]);
rtb_temp191[1] = sin(rtb_temp191[1]);
rtb_temp191[2] = sin(rtb_temp191[2]);
/* Product: '<S8>/Product' */
serialsim_no_observer_B->Product_d[0] = serialsim_no_observer_B->m4 *
rtb_temp191[0];
serialsim_no_observer_B->Product_d[1] = serialsim_no_observer_B->m4 *
rtb_temp191[1];
serialsim_no_observer_B->Product_d[2] = serialsim_no_observer_B->m4 *
rtb_temp191[2];
}
serialsim_no_observer_B->Switch_b[0] =
serialsim_no_observer_B->Product_d[0];
serialsim_no_observer_B->Switch_b[1] =
serialsim_no_observer_B->Product_d[1];
serialsim_no_observer_B->Switch_b[2] =
serialsim_no_observer_B->Product_d[2];
} else {
serialsim_no_observer_B->Switch_b[0] = 0.0;
serialsim_no_observer_B->Switch_b[1] = 0.0;
serialsim_no_observer_B->Switch_b[2] = 0.0;
}
/* Clock: '<S10>/Clock' */
rtb_Clock_a = ssGetT(S);
/* S-Function (sfun_tstart): '<S10>/startTime' */
/* S-Function Block (sfun_tstart): <S10>/startTime */
serialsim_no_observer_B->startTime = ssGetTStart(S);
/* Lookup: '<S10>/Look-Up Table1' incorporates:
* Fcn: '<S10>/Fcn1'
* Sum: '<S10>/Sum'
*
* Regarding '<S10>/Fcn1':
* Expression: rem(u[1],period)
*/
serialsim_no_observer_B->Look_Up_Table1 =
rt_Lookup(serialsim_no_observer_P->Look_Up_Table1_XData, 4, (fmod(
(rtb_Clock_a - serialsim_no_observer_B->startTime) ,
9.2592592592592588E-005) ), serialsim_no_observer_P->Look_Up_Table1_YData);
}
if (ssIsSampleHit(S, 1, tid)) { /* Sample time: [0.0, 1.0] */
/* RelationalOperator: '<S8>/Relational Operator' */
if (ssIsMajorTimeStep(S)) {
serialsim_no_observer_DWork->Relational_Operator_a_MODE[0] =
(int_T)(serialsim_no_observer_B->Switch_b[0] >=
serialsim_no_observer_B->Look_Up_Table1);
serialsim_no_observer_DWork->Relational_Operator_a_MODE[1] =
(int_T)(serialsim_no_observer_B->Switch_b[1] >=
serialsim_no_observer_B->Look_Up_Table1);
serialsim_no_observer_DWork->Relational_Operator_a_MODE[2] =
(int_T)(serialsim_no_observer_B->Switch_b[2] >=
serialsim_no_observer_B->Look_Up_Table1);
}
rtb_Relational_Operator_a[0] =
(real_T)(serialsim_no_observer_DWork->Relational_Operator_a_MODE[0]);
rtb_Relational_Operator_a[1] =
(real_T)(serialsim_no_observer_DWork->Relational_Operator_a_MODE[1]);
rtb_Relational_Operator_a[2] =
(real_T)(serialsim_no_observer_DWork->Relational_Operator_a_MODE[2]);
/* Logic: '<S8>/BL4' */
rtb_temp204[0] = !rtb_Relational_Operator_a[0];
rtb_temp204[1] = !rtb_Relational_Operator_a[1];
rtb_temp204[2] = !rtb_Relational_Operator_a[2];
/* DataTypeConversion: '<S8>/Data Type Conversion' */
serialsim_no_observer_B->Data_Type_Conversion[0] =
(real_T)rtb_Relational_Operator_a[0];
serialsim_no_observer_B->Data_Type_Conversion[1] = (real_T)rtb_temp204[0];
serialsim_no_observer_B->Data_Type_Conversion[2] =
(real_T)rtb_Relational_Operator_a[1];
serialsim_no_observer_B->Data_Type_Conversion[3] = (real_T)rtb_temp204[1];
serialsim_no_observer_B->Data_Type_Conversion[4] =
(real_T)rtb_Relational_Operator_a[2];
serialsim_no_observer_B->Data_Type_Conversion[5] = (real_T)rtb_temp204[2];
/* Constant: '<S5>/T5' */
serialsim_no_observer_B->T5_b = serialsim_no_observer_P->T5_b_Value;
/* Constant: '<S5>/T6' */
serialsim_no_observer_B->T6_b = serialsim_no_observer_P->T6_b_Value;
}
if (ssIsContinuousTask(S, tid)) { /* Sample time: [0.0, 0.0] */
/* MultiPortSwitch: '<Root>/Multiport Switch' incorporates:
* Sum: '<S7>/Sum'
*/
switch ((int_T)(rtb_Step + rtb_Step1 + rtb_Step2 + rtb_Step3)) {
case 1:
rtb_Multiport_Switch_b[0] = serialsim_no_observer_B->Pulse_Generator;
rtb_Multiport_Switch_b[1] = serialsim_no_observer_B->T2_a;
rtb_Multiport_Switch_b[2] = serialsim_no_observer_B->T3_a;
rtb_Multiport_Switch_b[3] = serialsim_no_observer_B->T4_a;
rtb_Multiport_Switch_b[4] = serialsim_no_observer_B->T1_a;
rtb_Multiport_Switch_b[5] = serialsim_no_observer_B->T7;
break;
case 2:
rtb_Multiport_Switch_b[0] = serialsim_no_observer_B->T1_b;
rtb_Multiport_Switch_b[1] = serialsim_no_observer_B->T2_b;
rtb_Multiport_Switch_b[2] = serialsim_no_observer_B->T3_b;
rtb_Multiport_Switch_b[3] = serialsim_no_observer_B->T4_b;
rtb_Multiport_Switch_b[4] = serialsim_no_observer_B->T5_a;
rtb_Multiport_Switch_b[5] = serialsim_no_observer_B->T6_a;
break;
case 3:
rtb_Multiport_Switch_b[0] = serialsim_no_observer_B->Pulse_Generator1;
rtb_Multiport_Switch_b[1] = serialsim_no_observer_B->Pulse_Generator2;
rtb_Multiport_Switch_b[2] = serialsim_no_observer_B->Pulse_Generator3;
rtb_Multiport_Switch_b[3] = serialsim_no_observer_B->Pulse_Generator4;
rtb_Multiport_Switch_b[4] = serialsim_no_observer_B->T8;
rtb_Multiport_Switch_b[5] = serialsim_no_observer_B->T9;
break;
case 4:
rtb_Multiport_Switch_b[0] =
serialsim_no_observer_B->Data_Type_Conversion[0];
rtb_Multiport_Switch_b[1] =
serialsim_no_observer_B->Data_Type_Conversion[1];
rtb_Multiport_Switch_b[2] =
serialsim_no_observer_B->Data_Type_Conversion[2];
rtb_Multiport_Switch_b[3] =
serialsim_no_observer_B->Data_Type_Conversion[3];
rtb_Multiport_Switch_b[4] = serialsim_no_observer_B->T5_b;
rtb_Multiport_Switch_b[5] = serialsim_no_observer_B->T6_b;
break;
default:
/* Result undefined */
#if defined(MATLAB_MEX_FILE)
(void)mexPrintf("Error: Invalid control input for block:"
"<Root>/Multiport Switch\n"
"Result is undefined.");
#endif
break;
}
/* DataTypeConversion: '<S17>/Data Type Conversion4' */
{
int_T i1;
const real_T *u0 = &rtb_Multiport_Switch_b[0];
boolean_T *
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -