📄 demo1103_io_ad_pwm3_v7.c
字号:
/*
* File: Demo1103_IO_AD_PWM3_V7.c
*
* Real-Time Workshop code generated for Simulink model Demo1103_IO_AD_PWM3_V7.
*
* Model version : 1.103
* Real-Time Workshop file version : 6.6 (R2007a) 01-Feb-2007
* Real-Time Workshop file generated on : Thu Apr 10 19:48:30 2008
* TLC version : 6.6 (Jan 16 2007)
* C source code generated on : Thu Apr 10 19:48:31 2008
*/
#include "Demo1103_IO_AD_PWM3_V7.h"
#include "Demo1103_IO_AD_PWM3_V7_private.h"
/* Block signals (auto storage) */
BlockIO_Demo1103_IO_AD_PWM3_V7 Demo1103_IO_AD_PWM3_V7_B;
/* Block states (auto storage) */
D_Work_Demo1103_IO_AD_PWM3_V7 Demo1103_IO_AD_PWM3_V7_DWork;
/* Real-time model */
RT_MODEL_Demo1103_IO_AD_PWM3_V7 Demo1103_IO_AD_PWM3_V7_M_;
RT_MODEL_Demo1103_IO_AD_PWM3_V7 *Demo1103_IO_AD_PWM3_V7_M =
&Demo1103_IO_AD_PWM3_V7_M_;
/* Model step function */
void Demo1103_IO_AD_PWM3_V7_step(void)
{
/* Memory: '<S5>/Memory1' */
Demo1103_IO_AD_PWM3_V7_B.Memory1 =
Demo1103_IO_AD_PWM3_V7_DWork.Memory1_PreviousInput;
/* RelationalOperator: '<S2>/Relational Operator' incorporates:
* Constant: '<S2>/Constant1'
*/
Demo1103_IO_AD_PWM3_V7_B.EnableSignal = (Demo1103_IO_AD_PWM3_V7_B.Memory1 >=
Demo1103_IO_AD_PWM3_V7_P.Constant1_Value);
/* DataStoreRead: '<S2>/Data Store Read' */
Demo1103_IO_AD_PWM3_V7_B.DataStoreRead =
Demo1103_IO_AD_PWM3_V7_DWork.Flag_data;
/* Logic: '<S2>/Logical Operator' */
Demo1103_IO_AD_PWM3_V7_B.LogicalOperator =
(Demo1103_IO_AD_PWM3_V7_B.EnableSignal ||
(Demo1103_IO_AD_PWM3_V7_B.DataStoreRead != 0.0));
if (Demo1103_IO_AD_PWM3_V7_B.LogicalOperator) {
/* Output and update for enable system: '<Root>/Enabled Subsystem' */
/* DataStoreWrite: '<S3>/Data Store Write' incorporates:
* Constant: '<S3>/Constant1'
*/
Demo1103_IO_AD_PWM3_V7_DWork.Flag_data =
Demo1103_IO_AD_PWM3_V7_P.Constant1_Value_p;
/* DiscreteTransferFcn Block: '<S8>/PT2'
*/
Demo1103_IO_AD_PWM3_V7_B.PT2 = Demo1103_IO_AD_PWM3_V7_P.PT2_C*
Demo1103_IO_AD_PWM3_V7_DWork.PT2_DSTATE;
{
real_T rtsaturate_U0DataInY0Container;
real_T rtsaturate_U0DataInY0Containe_0;
real_T rtsaturate_U0DataInY0Containe_1;
real_T rtsaturate_U0DataInY0Containe_2;
/* Saturate: '<S8>/Saturation' */
rtsaturate_U0DataInY0Container = rt_SATURATE(Demo1103_IO_AD_PWM3_V7_B.PT2,
Demo1103_IO_AD_PWM3_V7_P.Saturation_LowerSat,
Demo1103_IO_AD_PWM3_V7_P.Saturation_UpperSat);
Demo1103_IO_AD_PWM3_V7_B.Saturation = rtsaturate_U0DataInY0Container;
/* Gain: '<S8>/to_fract' */
Demo1103_IO_AD_PWM3_V7_B.to_fract = Demo1103_IO_AD_PWM3_V7_P.to_fract_Gain
* Demo1103_IO_AD_PWM3_V7_B.Saturation;
/* Gain: '<S3>/toggle' */
Demo1103_IO_AD_PWM3_V7_B.toggle = Demo1103_IO_AD_PWM3_V7_P.toggle_Gain *
Demo1103_IO_AD_PWM3_V7_B.to_fract;
/* Switch: '<S3>/Switch' incorporates:
* Constant: '<S3>/Emergency stop'
* Constant: '<S3>/Original Position'
*/
if (Demo1103_IO_AD_PWM3_V7_P.Emergencystop_Value >=
Demo1103_IO_AD_PWM3_V7_P.Switch_Threshold) {
Demo1103_IO_AD_PWM3_V7_B.Switch_p = Demo1103_IO_AD_PWM3_V7_B.toggle;
} else {
Demo1103_IO_AD_PWM3_V7_B.Switch_p =
Demo1103_IO_AD_PWM3_V7_P.OriginalPosition_Value;
}
/* Saturate: '<S3>/control out' */
rtsaturate_U0DataInY0Containe_0 = rt_SATURATE
(Demo1103_IO_AD_PWM3_V7_B.Switch_p,
Demo1103_IO_AD_PWM3_V7_P.controlout_LowerSat,
Demo1103_IO_AD_PWM3_V7_P.controlout_UpperSat);
Demo1103_IO_AD_PWM3_V7_B.controlout = rtsaturate_U0DataInY0Containe_0;
/* Sum: '<S3>/Subtract1' incorporates:
* Constant: '<S3>/Duty_in_a'
* Constant: '<S3>/Duty_in_a1'
*/
Demo1103_IO_AD_PWM3_V7_B.Subtract1 = (Demo1103_IO_AD_PWM3_V7_B.controlout
+ Demo1103_IO_AD_PWM3_V7_P.Duty_in_a_Value) -
Demo1103_IO_AD_PWM3_V7_P.Duty_in_a1_Value;
/* Saturate: '<S3>/Saturation1' */
rtsaturate_U0DataInY0Containe_1 = rt_SATURATE
(Demo1103_IO_AD_PWM3_V7_B.Subtract1,
Demo1103_IO_AD_PWM3_V7_P.Saturation1_LowerSat,
Demo1103_IO_AD_PWM3_V7_P.Saturation1_UpperSat);
Demo1103_IO_AD_PWM3_V7_B.Saturation1 = rtsaturate_U0DataInY0Containe_1;
/* Gain: '<S3>/toggle1' */
Demo1103_IO_AD_PWM3_V7_B.toggle1 = Demo1103_IO_AD_PWM3_V7_P.toggle1_Gain *
Demo1103_IO_AD_PWM3_V7_B.Saturation1;
/* Sum: '<S3>/Subtract2' incorporates:
* Constant: '<S3>/Duty_in_a'
* Constant: '<S3>/Duty_in_a1'
*/
Demo1103_IO_AD_PWM3_V7_B.Subtract2 =
(Demo1103_IO_AD_PWM3_V7_P.Duty_in_a_Value +
Demo1103_IO_AD_PWM3_V7_P.Duty_in_a1_Value) +
Demo1103_IO_AD_PWM3_V7_B.controlout;
/* Saturate: '<S3>/Saturation2' */
rtsaturate_U0DataInY0Containe_2 = rt_SATURATE
(Demo1103_IO_AD_PWM3_V7_B.Subtract2,
Demo1103_IO_AD_PWM3_V7_P.Saturation2_LowerSat,
Demo1103_IO_AD_PWM3_V7_P.Saturation2_UpperSat);
Demo1103_IO_AD_PWM3_V7_B.Saturation2 = rtsaturate_U0DataInY0Containe_2;
/* Gain: '<S3>/toggle2' */
Demo1103_IO_AD_PWM3_V7_B.toggle2 = Demo1103_IO_AD_PWM3_V7_P.toggle2_Gain *
Demo1103_IO_AD_PWM3_V7_B.Saturation2;
}
/* Gain: '<S6>/Slider Gain' incorporates:
* Constant: '<S3>/Aim_position'
*/
Demo1103_IO_AD_PWM3_V7_B.SliderGain =
Demo1103_IO_AD_PWM3_V7_P.SliderGain_Gain *
Demo1103_IO_AD_PWM3_V7_P.Aim_position_Value;
/* Gain: '<S7>/Slider Gain' incorporates:
* Constant: '<S3>/Constant2'
*/
Demo1103_IO_AD_PWM3_V7_B.SliderGain_p =
Demo1103_IO_AD_PWM3_V7_P.SliderGain_Gain_f *
Demo1103_IO_AD_PWM3_V7_P.Constant2_Value;
/* DiscreteTransferFcn Block: '<S8>/PT1'
*/
Demo1103_IO_AD_PWM3_V7_B.PT1 = Demo1103_IO_AD_PWM3_V7_P.PT1_C*
Demo1103_IO_AD_PWM3_V7_DWork.PT1_DSTATE;
/* Sum: '<S8>/Sum1' */
Demo1103_IO_AD_PWM3_V7_B.Sum1 = Demo1103_IO_AD_PWM3_V7_B.SliderGain -
Demo1103_IO_AD_PWM3_V7_B.SliderGain_p;
/* Gain: '<S8>/to_V' */
Demo1103_IO_AD_PWM3_V7_B.to_V = Demo1103_IO_AD_PWM3_V7_P.to_V_Gain *
Demo1103_IO_AD_PWM3_V7_B.Sum1;
/* Gain: '<S8>/f_k_d' */
Demo1103_IO_AD_PWM3_V7_B.f_k_d = Demo1103_IO_AD_PWM3_V7_P.f_k_d_Gain *
Demo1103_IO_AD_PWM3_V7_B.to_V;
/* DiscreteTransferFcn Block: '<S8>/DT1'
*/
Demo1103_IO_AD_PWM3_V7_B.DT1 = Demo1103_IO_AD_PWM3_V7_P.DT1_D*
Demo1103_IO_AD_PWM3_V7_B.f_k_d;
Demo1103_IO_AD_PWM3_V7_B.DT1 += Demo1103_IO_AD_PWM3_V7_P.DT1_C*
Demo1103_IO_AD_PWM3_V7_DWork.DT1_DSTATE;
/* Gain: '<S8>/f_k_d1' */
Demo1103_IO_AD_PWM3_V7_B.f_k_d1 = Demo1103_IO_AD_PWM3_V7_P.f_k_d1_Gain *
Demo1103_IO_AD_PWM3_V7_B.DT1;
/* DiscreteTransferFcn Block: '<S8>/DT2'
*/
Demo1103_IO_AD_PWM3_V7_B.DT2 = Demo1103_IO_AD_PWM3_V7_P.DT2_D*
Demo1103_IO_AD_PWM3_V7_B.f_k_d1;
Demo1103_IO_AD_PWM3_V7_B.DT2 += Demo1103_IO_AD_PWM3_V7_P.DT2_C*
Demo1103_IO_AD_PWM3_V7_DWork.DT2_DSTATE;
/* Sum: '<S8>/Sum3' */
Demo1103_IO_AD_PWM3_V7_B.Sum3 = (Demo1103_IO_AD_PWM3_V7_B.PT1 +
Demo1103_IO_AD_PWM3_V7_B.DT1) + Demo1103_IO_AD_PWM3_V7_B.DT2;
/* Fcn: '<S10>/Fcn' */
Demo1103_IO_AD_PWM3_V7_B.Fcn = -(real_T)(fabs(Demo1103_IO_AD_PWM3_V7_B.Sum3)
>= 0.59999999999999998);
/* Switch: '<S10>/Switch' incorporates:
* Constant: '<S10>/zero'
*/
if (Demo1103_IO_AD_PWM3_V7_B.Fcn >=
Demo1103_IO_AD_PWM3_V7_P.Switch_Threshold_e) {
Demo1103_IO_AD_PWM3_V7_B.Switch_a = Demo1103_IO_AD_PWM3_V7_B.to_V;
} else {
Demo1103_IO_AD_PWM3_V7_B.Switch_a = Demo1103_IO_AD_PWM3_V7_P.zero_Value;
}
/* DiscreteTransferFcn Block: '<S8>/I'
*/
Demo1103_IO_AD_PWM3_V7_B.I = Demo1103_IO_AD_PWM3_V7_P.I_C*
Demo1103_IO_AD_PWM3_V7_DWork.I_DSTATE;
{
real_T rtsaturate_U0DataInY0Container;
/* Gain: '<S8>/f_k_p' */
Demo1103_IO_AD_PWM3_V7_B.f_k_p = Demo1103_IO_AD_PWM3_V7_P.f_k_p_Gain *
Demo1103_IO_AD_PWM3_V7_B.to_V;
/* Gain: '<S8>/k_p' */
Demo1103_IO_AD_PWM3_V7_B.k_p = Demo1103_IO_AD_PWM3_V7_P.k_p_Gain *
Demo1103_IO_AD_PWM3_V7_B.f_k_p;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -