📄 dtc_svm_416_acc.c
字号:
}
/* Product: '<S41>/Product' */
{
int_T i1;
const real_T *u0 = &dtc_svm_416_B->Look_Up_Table[0];
const real_T *u1 = &dtc_svm_416_B->Switch_d[0];
real_T *y0 = &dtc_svm_416_B->Product_e[0];
for (i1=0; i1 < 6; i1++) {
y0[i1] = u0[i1] * u1[i1];
}
}
}
} }
}
if (ssIsSampleHit(S, 4, tid)) { /* Sample time: [0.00001, 0.0] */
/* Constant: '<S14>/Constant2' */
dtc_svm_416_B->Constant2_b = dtc_svm_416_P->Constant2_b_Value;
/* UnitDelay: '<S42>/Unit Delay9' */
{
int_T i1;
real_T *y0 = &dtc_svm_416_B->Unit_Delay9[0];
real_T *dw_DSTATE = &dtc_svm_416_DWork->Unit_Delay9_DSTATE[0];
for (i1=0; i1 < 6; i1++) {
y0[i1] = dw_DSTATE[i1];
}
}
/* UnitDelay: '<S38>/Unit Delay3' */
{
int_T i1;
real_T *y0 = &dtc_svm_416_B->Unit_Delay3_a[0];
real_T *dw_DSTATE = &dtc_svm_416_DWork->Unit_Delay3_a_DSTATE[0];
for (i1=0; i1 < 6; i1++) {
y0[i1] = dw_DSTATE[i1];
}
}
/* Level2 S-Function Block: <S34>/State-Space (sfun_psbdiscc) */
/* Call into Simulink for MEX-version of S-function */
ssCallAccelRunBlock(S, 8, 99, SS_CALL_MDL_OUTPUTS);
/* Scope: '<Root>/U I scope1' */
/* Call into Simulink for Scope */
ssCallAccelRunBlock(S, 8, 100, SS_CALL_MDL_OUTPUTS);
}
if (ssIsContinuousTask(S, tid)) { /* Sample time: [0.0, 0.0] */
/* Scope: '<Root>/U I scope2' */
/* Call into Simulink for Scope */
ssCallAccelRunBlock(S, 8, 101, SS_CALL_MDL_OUTPUTS);
}
if (ssIsSampleHit(S, 4, tid)) { /* Sample time: [0.00001, 0.0] */
/* Gain: '<Root>/Gain3' incorporates:
* Sum: '<Root>/Sum6'
*
* Regarding '<Root>/Gain3':
* Gain value: dtc_svm_416_P->Gain3_c_Gain
*/
rtb_Gain3_c = (-dtc_svm_416_B->State_Space[6] +
dtc_svm_416_B->State_Space[8]) * dtc_svm_416_P->Gain3_c_Gain;
/* Sum: '<Root>/Sum7' */
dtc_svm_416_B->Sum7 = dtc_svm_416_B->State_Space[6] + rtb_Gain3_c;
/* Scope: '<Root>/U I scope3' */
/* Call into Simulink for Scope */
ssCallAccelRunBlock(S, 8, 105, SS_CALL_MDL_OUTPUTS);
}
/* SubSystem: '<Root>/XY Graph' */
if (ssIsSampleHit(S, 6, tid)) {
/* Outputs for atomic system: '<Root>/XY Graph' */
/* Level1 S-Function Block: <S15>/sfunxy (sfunxy) */
/* Call into Simulink for MEX-version of S-function */
ssCallAccelRunBlock(S, 7, 0, SS_CALL_MDL_OUTPUTS);
}
if (ssIsContinuousTask(S, tid)) { /* Sample time: [0.0, 0.0] */
/* Integrator: '<S52>/Integrator1' */
dtc_svm_416_B->Integrator1_b = dtc_svm_416_X->Integrator1_b_CSTATE;
/* Integrator: '<S52>/Integrator3' */
dtc_svm_416_B->Integrator3_b = dtc_svm_416_X->Integrator3_b_CSTATE;
/* Scope: '<Root>/x_y' */
/* Call into Simulink for Scope */
ssCallAccelRunBlock(S, 8, 109, SS_CALL_MDL_OUTPUTS);
}
if (ssIsSampleHit(S, 4, tid)) { /* Sample time: [0.00001, 0.0] */
/* Sum: '<Root>/Sum8' */
rtb_Sum8 = rtb_Gain3_c - dtc_svm_416_B->State_Space[8];
/* Fcn: '<S48>/Fcn'
*
* Regarding '<S48>/Fcn':
* Expression: 2/3*(u(1)-1/2*u(2)-1/2*u(3))
*/
dtc_svm_416_B->Fcn_c = 2.0 / 3.0 * ( dtc_svm_416_B->Sum7 - 1.0 / 2.0 *
rtb_Gain3_c - 1.0 / 2.0 * rtb_Sum8 );
/* Fcn: '<S48>/Fcn1'
*
* Regarding '<S48>/Fcn1':
* Expression: 2/3*(sqrt(3)/2*u(2)-sqrt(3)/2*u(3))
*/
dtc_svm_416_B->Fcn1_d = 2.0 / 3.0 * ( sqrt( 3.0) / 2.0 *
rtb_Gain3_c - sqrt( 3.0) / 2.0 * rtb_Sum8 );
}
if (ssIsContinuousTask(S, tid)) { /* Sample time: [0.0, 0.0] */
/* Fcn: '<S47>/Fcn7'
*
* Regarding '<S47>/Fcn7':
* Expression: u(1)*cos(u(3))+u(2)*sin(u(3))
*/
rtb_temp191 = dtc_svm_416_B->Fcn_c * cos( rtb_Integrator3_a ) +
dtc_svm_416_B->Fcn1_d * sin( rtb_Integrator3_a );
/* Fcn: '<S47>/Fcn8'
*
* Regarding '<S47>/Fcn8':
* Expression: -u(1)*sin(u(3))+u(2)*cos(u(3))
*/
rtb_temp187 = ( -dtc_svm_416_B->Fcn_c ) * sin( rtb_Integrator3_a ) +
dtc_svm_416_B->Fcn1_d * cos( rtb_Integrator3_a );
/* Step: '<Root>/Load_torque' */
if (ssIsMajorTimeStep(S)) {
if (ssGetTaskTime(S,tid) >= dtc_svm_416_P->Load_torque_Time) {
dtc_svm_416_DWork->Load_torque_MODE = 1;
} else {
dtc_svm_416_DWork->Load_torque_MODE = 0;
}
}
/* Output value */
rtb_temp188 = (dtc_svm_416_DWork->Load_torque_MODE == 1) ?
dtc_svm_416_P->Load_torque_YFinal : dtc_svm_416_P->Load_torque_Y0;
}
if (ssIsSampleHit(S, 1, tid)) { /* Sample time: [0.0, 1.0] */
/* Constant: '<S50>/Constant' */
dtc_svm_416_B->Constant_b = dtc_svm_416_P->Constant_b_Value;
}
if (ssIsContinuousTask(S, tid)) { /* Sample time: [0.0, 0.0] */
/* Sum: '<S50>/Sum' incorporates:
* Gain: '<S50>/Gain4'
*
* Regarding '<S50>/Gain4':
* Gain value: dtc_svm_416_P->Gain4_b_Gain
*/
rtb_Sum_g = (rtb_Integrator_a * dtc_svm_416_P->Gain4_b_Gain)
+ dtc_svm_416_B->Constant_b;
/* Gain: '<S50>/Gain3'
*
* Regarding '<S50>/Gain3':
* Gain value: dtc_svm_416_P->Gain3_d_Gain
*/
rtb_Gain3_d = rtb_Integrator1_a * dtc_svm_416_P->Gain3_d_Gain;
/* Fcn: '<S50>/Fcn4'
*
* Regarding '<S50>/Fcn4':
* Expression: 3/2*Np*(u(6)*u(5)-u(7)*u(4))
*/
dtc_svm_416_B->temp115 = 3.0 / 2.0 * 3.0 * ( rtb_Sum_g *
rtb_Integrator1_a - rtb_Gain3_d * rtb_Integrator_a );
/* Scope: '<Root>/x_y1' */
/* Call into Simulink for Scope */
ssCallAccelRunBlock(S, 8, 121, SS_CALL_MDL_OUTPUTS);
}
if (ssIsSampleHit(S, 1, tid)) { /* Sample time: [0.0, 1.0] */
/* Constant: '<Root>/X+' */
dtc_svm_416_B->X = dtc_svm_416_P->X_Value;
}
if (ssIsContinuousTask(S, tid)) { /* Sample time: [0.0, 0.0] */
/* Sum: '<Root>/Sum1' */
dtc_svm_416_B->Sum1_e = - dtc_svm_416_B->Integrator1_b + dtc_svm_416_B->X;
/* TransferFcn Block: <S16>/Integral */
rtb_temp195 = 0.0;
/* Gain: '<S16>/D'
*
* Regarding '<S16>/D':
* Gain value: dtc_svm_416_P->D_a_Gain
*/
dtc_svm_416_B->D_a = dtc_svm_416_B->Sum1_e * dtc_svm_416_P->D_a_Gain;
/* Derivative Block: <S16>/Derivative */
{
real_T t = ssGetTaskTime(S,tid);
real_T timeStampA = dtc_svm_416_DWork->Derivative_a_RWORK.TimeStampA;
real_T timeStampB = dtc_svm_416_DWork->Derivative_a_RWORK.TimeStampB;
if (timeStampA >= t && timeStampB >= t) {
rtb_temp194 = 0.0;
} else {
real_T deltaT;
real_T *lastBank = &dtc_svm_416_DWork->Derivative_a_RWORK.TimeStampA;
if (timeStampA < timeStampB) {
if (timeStampB < t) {
lastBank += 2;
}
} else if (timeStampA >= t) {
lastBank += 2;
}
deltaT = t - *lastBank++;
rtb_temp194 = (dtc_svm_416_B->D_a - *lastBank++) / deltaT;
}
}
/* Sum: '<S16>/Sum' incorporates:
* Gain: '<S16>/Proportional'
*
* Regarding '<S16>/Proportional':
* Gain value: dtc_svm_416_P->Proportional_a_Gain
*/
rtb_temp195 = (dtc_svm_416_B->Sum1_e * dtc_svm_416_P->Proportional_a_Gain)
+ rtb_temp195 + rtb_temp194;
}
if (ssIsSampleHit(S, 1, tid)) { /* Sample time: [0.0, 1.0] */
/* Constant: '<Root>/Y+' */
dtc_svm_416_B->Y = dtc_svm_416_P->Y_Value;
}
if (ssIsContinuousTask(S, tid)) { /* Sample time: [0.0, 0.0] */
/* Sum: '<Root>/Sum3' */
dtc_svm_416_B->Sum3 = - dtc_svm_416_B->Integrator3_b + dtc_svm_416_B->Y;
/* TransferFcn Block: <S17>/Integral */
rtb_temp194 = dtc_svm_416_P->Integral_b_C*dtc_svm_416_X->Integral_b_CSTATE;
/* Gain: '<S17>/D'
*
* Regarding '<S17>/D':
* Gain value: dtc_svm_416_P->D_b_Gain
*/
dtc_svm_416_B->D_b = dtc_svm_416_B->Sum3 * dtc_svm_416_P->D_b_Gain;
/* Derivative Block: <S17>/Derivative */
{
real_T t = ssGetTaskTime(S,tid);
real_T timeStampA = dtc_svm_416_DWork->Derivative_b_RWORK.TimeStampA;
real_T timeStampB = dtc_svm_416_DWork->Derivative_b_RWORK.TimeStampB;
if (timeStampA >= t && timeStampB >= t) {
rtb_temp196 = 0.0;
} else {
real_T deltaT;
real_T *lastBank = &dtc_svm_416_DWork->Derivative_b_RWORK.TimeStampA;
if (timeStampA < timeStampB) {
if (timeStampB < t) {
lastBank += 2;
}
} else if (timeStampA >= t) {
lastBank += 2;
}
deltaT = t - *lastBank++;
rtb_temp196 = (dtc_svm_416_B->D_b - *lastBank++) / deltaT;
}
}
/* Sum: '<S17>/Sum' incorporates:
* Gain: '<S17>/Proportional'
*
* Regarding '<S17>/Proportional':
* Gain value: dtc_svm_416_P->Proportional_b_Gain
*/
rtb_temp194 = (dtc_svm_416_B->Sum3 * dtc_svm_416_P->Proportional_b_Gain)
+ rtb_temp194 + rtb_temp196;
/* Fcn: '<Root>/Fcn'
*
* Regarding '<Root>/Fcn':
* Expression: (u(1)*u(3)-u(2)*u(4))/(u(3)*u(3)+u(4)*u(4))
*/
rtb_temp196 = ( rtb_temp195 * dtc_svm_416_B->Zero_Order_Hold1[0] -
rtb_temp194 * dtc_svm_416_B->Zero_Order_Hold1[1] ) / (
dtc_svm_416_B->Zero_Order_Hold1[0] *
dtc_svm_416_B->Zero_Order_Hold1[0] +
dtc_svm_416_B->Zero_Order_Hold1[1] *
dtc_svm_416_B->Zero_Order_Hold1[1] );
/* Gain: '<Root>/Gain1'
*
* Regarding '<Root>/Gain1':
* Gain value: dtc_svm_416_P->Gain1_e_Gain
*/
rtb_temp196 *= dtc_svm_416_P->Gain1_e_Gain;
/* Fcn: '<Root>/Fcn1'
*
* Regarding '<Root>/Fcn1':
* Expression: (u(1)*u(4)+u(2)*u(3))/(u(3)*u(3)+u(4)*u(4))
*/
rtb_temp195 = ( rtb_temp195 * dtc_svm_416_B->Zero_Order_Hold1[1] +
rtb_temp194 * dtc_svm_416_B->Zero_Order_Hold1[0] ) / (
dtc_svm_416_B->Zero_Order_Hold1[0] *
dtc_svm_416_B->Zero_Order_Hold1[0] +
dtc_svm_416_B->Zero_Order_Hold1[1] *
dtc_svm_416_B->Zero_Order_Hold1[1] );
/* Gain: '<Root>/Gain2'
*
* Regarding '<Root>/Gain2':
* Gain value: dtc_svm_416_P->Gain2_e_Gain
*/
rtb_temp195 *= dtc_svm_416_P->Gain2_e_Gain;
/* Fcn: '<S1>/Fcn2'
*
* Regarding '<S1>/Fcn2':
* Expression: -1/2*u(1)+sqrt(3)/2*u(2)
*/
rtb_temp194 = ( -1.0) / 2.0 * rtb_temp196 + sqrt( 3.0) / 2.0 *
rtb_temp195;
/* Fcn: '<S1>/Fcn3'
*
* Regarding '<S1>/Fcn3':
* Expression: u(1)
*/
rtb_temp193 = rtb_temp196;
/* Fcn: '<S1>/Fcn4'
*
* Regarding '<S1>/Fcn4':
* Expression: -1/2*u(1)-sqrt(3)/2*u(2)
*/
rtb_temp196 = ( -1.0) / 2.0 * rtb_temp196 - sqrt( 3.0) / 2.0 *
rtb_temp195;
}
if (ssIsSampleHit(S, 1, tid)) { /* Sample time: [0.0, 1.0] */
/* Constant: '<S2>/g1' */
dtc_svm_416_B->g1 = dtc_svm_416_P->g1_Value;
/* Constant: '<S2>/g2' */
dtc_svm_416_B->g2 = dtc_svm_416_P->g2_Value;
/* Constant: '<S4>/c1' */
dtc_svm_416_B->c1 = dtc_svm_416_P->c1_Value;
/* Constant: '<S4>/c2' */
dtc_svm_416_B->c2 = dtc_svm_416_P->c2_Value;
/* Constant: '<S4>/c3' */
dtc_svm_416_B->c3 = dtc_svm_416_P->c3_Value;
}
if (ssIsContinuousTask(S, tid)) { /* Sample time: [0.0, 0.0] */
/* Gain: '<S5>/Kp5'
*
* Regarding '<S5>/Kp5':
* Gain value: dtc_svm_416_P->Kp5_a_Gain
*/
dtc_svm_416_B->Kp5_a = rtb_Sum2_a * dtc_svm_416_P->Kp5_a_Gain;
/* Fcn: '<S20>/Fcn1'
*
* Regarding '<S20>/Fcn1':
* Expression: u(1)*cos(u(3))-u(2)*sin(u(3))
*/
rtb_temp195 = rtb_temp191 * cos( rtb_Integrator3_a ) - rtb_temp187 *
sin( rtb_Integrator3_a );
/* Fcn: '<S20>/Fcn2'
*
* Regarding '<S20>/Fcn2':
* Expression: u(2)*cos(u(3))+u(1)*sin(u(3))
*/
rtb_temp192 = rtb_temp187 * cos( rtb_Integrator3_a ) + rtb_temp191 *
sin( rtb_Integrator3_a );
}
if (ssIsSampleHit(S, 1, tid)) { /* Sample time: [0.0, 1.0] */
/* Constant: '<S20>/Resistance' */
dtc_svm_416_B->Resistance_a = dtc_svm_416_P->Resistance_a_Value;
}
if (ssIsContinuousTask(S, tid)) { /* Sample time: [0.0, 0.0] */
/* Sum: '<S20>/Sum' incorporates:
* Product: '<S20>/Product'
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -