📄 serialsim_no_observer_acc.c
字号:
/*
* This file is not available for use in any application other than as a
* MATLAB(R) MEX file for use with the Simulink(R) Accelerator product.
*/
/*
* Real-Time Workshop code generation for Simulink model "serialsim_no_observer_acc.mdl".
*
* Model Version : 1.15
* Real-Time Workshop file version : 5.1 $Date: 2003/08/08 18:37:24 $
* Real-Time Workshop file generated on : Wed May 30 15:01:44 2007
* TLC version : 5.1 (Aug 8 2003)
* C source code generated on : Wed May 30 15:01:44 2007
*/
#include <math.h>
#include <string.h>
#include "serialsim_no_observer_acc.h"
#include "serialsim_no_observer_acc_private.h"
#include <stdio.h>
#include "simstruc.h"
#define CodeFormat S-Function
#define AccDefine1 Accelerator_S-Function
/* Outputs for root system: '<Root>' */
static void mdlOutputs(SimStruct *S, int_T tid)
{
/* simstruct variables */
serialsim_no_observer_BlockIO *serialsim_no_observer_B =
(serialsim_no_observer_BlockIO *) _ssGetBlockIO(S);
serialsim_no_observer_ContinuousStates *serialsim_no_observer_X =
(serialsim_no_observer_ContinuousStates*) ssGetContStates(S);
serialsim_no_observer_D_Work *serialsim_no_observer_DWork =
(serialsim_no_observer_D_Work *) ssGetRootDWork(S);
serialsim_no_observer_Parameters *serialsim_no_observer_P =
(serialsim_no_observer_Parameters *) ssGetDefaultParam(S);
/* local block i/o variables */
real_T rtb_phiqr;
real_T rtb_phidr;
real_T rtb_Llr_a[2];
real_T rtb_phiqs;
real_T rtb_phids;
real_T rtb_Lls[2];
real_T rtb_Llr1_a;
real_T rtb_iqr;
real_T rtb_Llr2_a;
real_T rtb_idr;
real_T rtb_iqs;
real_T rtb_ids;
real_T rtb_Integrator1;
real_T rtb_Integrator_a;
real_T rtb_Switch_a[4];
real_T rtb_Step;
real_T rtb_Step1;
real_T rtb_Step2;
real_T rtb_Step3;
real_T rtb_t;
real_T rtb_Clock_a;
real_T rtb_Vb[4];
real_T rtb_Multiport_Switch_c[2];
real_T rtb_Multiport_Switch1_b[2];
real_T rtb_Sum1_b;
real_T rtb_Multiport_Switch_d;
real_T rtb_Multiport_Switch1_c;
real_T rtb_Integrator_b[6];
real_T rtb_Gain_c;
real_T rtb_Multiport_Switch_a[2];
real_T rtb_Sum2_a;
real_T rtb_Multiport_Switch_b[6];
real_T rtb_Multiport_Switch1_a[2];
real_T rtb_Sum3_c;
real_T rtb_Product1_a;
real_T rtb_Memory2[6];
real_T rtb_beta;
real_T rtb_Complex_to_Magnitude_Angle;
real_T rtb_temp188;
real_T rtb_temp189;
real_T rtb_temp190;
real_T rtb_temp191[3];
boolean_T rtb_b6[6];
boolean_T rtb_Memory_b[6];
boolean_T rtb_Data_Type_Conversion4_b;
boolean_T rtb_id_i[6];
boolean_T rtb_Relational_Operator_a[3];
boolean_T rtb_Memory_c[6];
boolean_T rtb_temp204[3];
boolean_T rtb_temp205[6];
if (ssIsContinuousTask(S, tid)) { /* Sample time: [0.0, 0.0] */
/* StateSpace Block: <Root>/Analog Filter Design */
{
serialsim_no_observer_B->Analog_Filter_Design =
serialsim_no_observer_P->Analog_Filter_Design_C*serialsim_no_observer_X->Analog_Filter_Design_CSTATE[7];
}
/* Scope: '<Root>/Scope4_Rr' */
/* Call into Simulink for Scope */
ssCallAccelRunBlock(S, 13, 1, SS_CALL_MDL_OUTPUTS);
}
if (ssIsSampleHit(S, 1, tid)) { /* Sample time: [0.0, 1.0] */
/* Constant: '<S30>/Constant3' */
serialsim_no_observer_B->Constant3_a =
serialsim_no_observer_P->Constant3_a_Value;
}
if (ssIsContinuousTask(S, tid)) { /* Sample time: [0.0, 0.0] */
/* Integrator: '<S27>/phiqr' */
rtb_phiqr = serialsim_no_observer_X->phiqr_CSTATE;
/* Integrator: '<S27>/phidr' */
rtb_phidr = serialsim_no_observer_X->phidr_CSTATE;
/* Gain: '<S26>/1Llr'
*
* Regarding '<S26>/1Llr':
* Gain value: serialsim_no_observer_P->Llr_a_Gain
*/
rtb_Llr_a[0] = rtb_phiqr * serialsim_no_observer_P->Llr_a_Gain;
rtb_Llr_a[1] = rtb_phidr * serialsim_no_observer_P->Llr_a_Gain;
/* Integrator: '<S28>/phiqs' */
rtb_phiqs = serialsim_no_observer_X->phiqs_CSTATE;
/* Integrator: '<S28>/phids' */
rtb_phids = serialsim_no_observer_X->phids_CSTATE;
/* Gain: '<S26>/1Lls'
*
* Regarding '<S26>/1Lls':
* Gain value: serialsim_no_observer_P->Lls_Gain
*/
rtb_Lls[0] = rtb_phiqs * serialsim_no_observer_P->Lls_Gain;
rtb_Lls[1] = rtb_phids * serialsim_no_observer_P->Lls_Gain;
/* Gain: '<S26>/1Llr1' incorporates:
* Sum: '<S26>/Sum'
*
* Regarding '<S26>/1Llr1':
* Gain value: serialsim_no_observer_P->Llr1_a_Gain
*/
rtb_Llr1_a = (rtb_Llr_a[0] + rtb_Lls[0]) *
serialsim_no_observer_P->Llr1_a_Gain;
/* Gain: '<S27>/1Llr' incorporates:
* Sum: '<S27>/Sum3'
*
* Regarding '<S27>/1Llr':
* Gain value: serialsim_no_observer_P->Llr_b_Gain
*/
rtb_iqr = (rtb_phiqr - rtb_Llr1_a) * serialsim_no_observer_P->Llr_b_Gain;
/* Gain: '<S26>/1Llr2' incorporates:
* Sum: '<S26>/Sum1'
*
* Regarding '<S26>/1Llr2':
* Gain value: serialsim_no_observer_P->Llr2_a_Gain
*/
rtb_Llr2_a = (rtb_Llr_a[1] + rtb_Lls[1]) *
serialsim_no_observer_P->Llr2_a_Gain;
/* Gain: '<S27>/1Llr2' incorporates:
* Sum: '<S27>/Sum4'
*
* Regarding '<S27>/1Llr2':
* Gain value: serialsim_no_observer_P->Llr2_b_Gain
*/
rtb_idr = (-rtb_Llr2_a + rtb_phidr) * serialsim_no_observer_P->Llr2_b_Gain;
/* Gain: '<S28>/1Llr' incorporates:
* Sum: '<S28>/Sum4'
*
* Regarding '<S28>/1Llr':
* Gain value: serialsim_no_observer_P->Llr_c_Gain
*/
rtb_iqs = (rtb_phiqs - rtb_Llr1_a) * serialsim_no_observer_P->Llr_c_Gain;
/* Gain: '<S28>/1Llr2' incorporates:
* Sum: '<S28>/Sum3'
*
* Regarding '<S28>/1Llr2':
* Gain value: serialsim_no_observer_P->Llr2_c_Gain
*/
rtb_ids = (-rtb_Llr2_a + rtb_phids) * serialsim_no_observer_P->Llr2_c_Gain;
/* Integrator: '<S25>/Integrator1' */
rtb_Integrator1 = serialsim_no_observer_X->Integrator1_CSTATE;
}
if (ssIsSampleHit(S, 1, tid)) { /* Sample time: [0.0, 1.0] */
/* Constant: '<S31>/Constant' */
serialsim_no_observer_B->Constant_a =
serialsim_no_observer_P->Constant_a_Value;
}
/* SubSystem: '<S31>/sin(thr),cos(thr)' */
/* Output and update for enable system: '<S31>/sin(thr),cos(thr)' */
{
/* simstruct variables */
serialsim_no_observer_BlockIO *serialsim_no_observer_B =
(serialsim_no_observer_BlockIO *) _ssGetBlockIO(S);
serialsim_no_observer_D_Work *serialsim_no_observer_DWork =
(serialsim_no_observer_D_Work *) ssGetRootDWork(S);
serialsim_no_observer_Parameters *serialsim_no_observer_P =
(serialsim_no_observer_Parameters *) ssGetDefaultParam(S);
/* detect enable/disable transitions */
if (ssIsSampleHit(S, 1, tid)) {
EnableStates prevEnableState = (EnableStates)
serialsim_no_observer_DWork->sin_thr_cos_MODE[0];
EnableStates enableState;
if (ssIsSampleHit(S, 1, tid)) { /* Sample time: [0.0, 1.0] */
serialsim_no_observer_DWork->sin_thr_cos_MODE[1] =
(serialsim_no_observer_B->Constant_a) ? SUBSYS_ENABLED :
SUBSYS_DISABLED;
}
enableState = (EnableStates)
serialsim_no_observer_DWork->sin_thr_cos_MODE[1];
if (enableState == SUBSYS_ENABLED) {
if (prevEnableState == SUBSYS_DISABLED) {
/* SUBSYS_BECOMING_ENABLED */
if ( ssGetT(S) != ssGetTStart(S) ) {
ssSetSolverNeedsReset(S);
}
/* (system initialize function is empty) */
/* (system enable function is empty) */
serialsim_no_observer_DWork->sin_thr_cos_MODE[0] = (int_T)
SUBSYS_ENABLED;
}
} else {
if (prevEnableState == SUBSYS_ENABLED) {
/* SUBSYS_BECOMING_DISABLED */
ssSetSolverNeedsReset(S);
/* Disable for enable system: '<S31>/sin(thr),cos(thr)' */
{
/* simstruct variables */
serialsim_no_observer_BlockIO *serialsim_no_observer_B =
(serialsim_no_observer_BlockIO *) _ssGetBlockIO(S);
serialsim_no_observer_D_Work *serialsim_no_observer_DWork =
(serialsim_no_observer_D_Work *) ssGetRootDWork(S);
serialsim_no_observer_Parameters *serialsim_no_observer_P =
(serialsim_no_observer_Parameters *) ssGetDefaultParam(S);
/* DisableFcn of enable SubSystem Block: <S31>/sin(thr),cos(thr) */
if (serialsim_no_observer_DWork->sin_thr_cos_MODE[0] == (int_T)
SUBSYS_ENABLED) {
/* (Virtual) Outport Block: <S40>/sin(thr),cos(thr) */
serialsim_no_observer_B->Trigonometric_Function_c =
serialsim_no_observer_P->sin_thr_cos_thr_Y0;
serialsim_no_observer_B->Trigonometric_Function1_b =
serialsim_no_observer_P->sin_thr_cos_thr_Y0;
serialsim_no_observer_B->Constant_e[0] =
serialsim_no_observer_P->sin_thr_cos_thr_Y0;
serialsim_no_observer_B->Constant_e[1] =
serialsim_no_observer_P->sin_thr_cos_thr_Y0;
serialsim_no_observer_DWork->sin_thr_cos_MODE[0] = (int_T)
SUBSYS_DISABLED;
}
}
}
}
}
/* run blocks if enabled */
if (serialsim_no_observer_DWork->sin_thr_cos_MODE[0] == SUBSYS_ENABLED) {
if (ssIsContinuousTask(S, tid) || ssIsSampleHit(S, 1, tid)) {
if (ssIsSampleHit(S, 1, tid)) { /* Sample time: [0.0, 1.0] */
/* Constant: '<S40>/Constant' */
serialsim_no_observer_B->Constant_e[0] =
serialsim_no_observer_P->Constant_e_Value[0];
serialsim_no_observer_B->Constant_e[1] =
serialsim_no_observer_P->Constant_e_Value[1];
}
if (ssIsContinuousTask(S, tid)) { /* Sample time: [0.0, 0.0] */
/* Trigonometry: '<S40>/Trigonometric Function' */
serialsim_no_observer_B->Trigonometric_Function_c =
sin(rtb_Integrator1);
/* Trigonometry: '<S40>/Trigonometric Function1' */
serialsim_no_observer_B->Trigonometric_Function1_b =
cos(rtb_Integrator1);
}
} }
}
if (ssIsContinuousTask(S, tid)) { /* Sample time: [0.0, 0.0] */
/* Integrator: '<S25>/Integrator' */
rtb_Integrator_a = serialsim_no_observer_X->Integrator_a_CSTATE;
}
if (ssIsSampleHit(S, 1, tid)) { /* Sample time: [0.0, 1.0] */
/* Constant: '<S31>/Constant3' */
serialsim_no_observer_B->Constant3_b =
serialsim_no_observer_P->Constant3_b_Value;
}
/* SubSystem: '<S31>/sin(beta),cos(beta),sin(th),cos(th)' */
/* Output and update for enable system: '<S31>/sin(beta),cos(beta),sin(th),cos(th)' */
{
/* simstruct variables */
serialsim_no_observer_BlockIO *serialsim_no_observer_B =
(serialsim_no_observer_BlockIO *) _ssGetBlockIO(S);
serialsim_no_observer_D_Work *serialsim_no_observer_DWork =
(serialsim_no_observer_D_Work *) ssGetRootDWork(S);
serialsim_no_observer_Parameters *serialsim_no_observer_P =
(serialsim_no_observer_Parameters *) ssGetDefaultParam(S);
/* detect enable/disable transitions */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -