📄 dsmodel.c
字号:
/* DSblock model generated by Dymola from Modelica model MotorDriveTest
Dymola Version 5.3, 2004-06-30 translated this at Mon Apr 04 17:37:49 2005
*/
#include <matrixop.h>
/* Prototypes for functions used in model */
/* Codes used in model */
/* DSblock C-code: */
#include <moutil.c>
#include <dsblock1.c>
/* Define variable names. */
#define Sections_
#define r0_0 Parameter(0)
#define m0_0 Parameter(1)
#define motor_Vs_n_v Variable(0)
#define motor_Vs_inPort_n Variable(1)
#define motor_G_p_v Variable(2)
#define motor_G_p_i Variable(3)
#define motor_Ra_v Variable(4)
#define motor_Ra_n_v Variable(5)
#define motor_Ra_R Parameter(2)
#define motor_La_v Variable(6)
#define motor_La_i State(0)
#define motor_La_der_i Derivative(0)
#define motor_La_L Parameter(3)
#define motor_emf_k Parameter(4)
#define motor_emf_v Variable(7)
#define motor_emf_n_v Variable(8)
#define motor_inPort_n Variable(9)
#define motor_Jm_phi Variable(10)
#define motor_Jm_der_phi Variable(11)
#define motor_Jm_flangex_0a_tau Variable(12)
#define motor_Jm_J Parameter(5)
#define motor_Jm_der_w Variable(13)
#define gearbox_flangex_0a_tau Variable(14)
#define gearbox_flangex_0b_tau Variable(15)
#define gearbox_taux_0support Variable(16)
#define gearbox_bearing_phi Variable(17)
#define gearbox_bearing_tau Variable(18)
#define gearbox_ratio Parameter(6)
#define load_phi State(1)
#define load_der_phi Derivative(1)
#define load_flangex_0b_tau Variable(19)
#define load_J Variable(20)
#define load_w State(2)
#define load_der_w Derivative(2)
#define phiload_flangex_0a_tau Variable(21)
#define phiload_outPort_n Variable(22)
#define phiload_outPort_signal_1 Variable(23)
#define positionerror_n Variable(24)
#define positionerror_inPort1_n Variable(25)
#define positionerror_inPort2_n Variable(26)
#define positionerror_outPort_n Variable(27)
#define positionerror_outPort_signal_1 Variable(28)
#define controller_inPort_n Variable(29)
#define controller_outPort_n Variable(30)
#define controller_outPort_signal_1 Variable(31)
#define controller_y Variable(32)
#define controller_k Parameter(7)
#define controller_Ti Parameter(8)
#define controller_Td Parameter(9)
#define controller_Nd Parameter(10)
#define controller_P_k &Parameter(11)
#define controller_P_k_1 Parameter(11)
#define controller_P_inPort_n Variable(33)
#define controller_P_outPort_n Variable(34)
#define controller_P_outPort_signal_1 Variable(35)
#define controller_I_n Variable(36)
#define controller_I_inPort_n Variable(37)
#define controller_I_outPort_n Variable(38)
#define controller_I_outPort_signal_1 Variable(39)
#define controller_I_y_1 State(3)
#define controller_I_der_y_1 Derivative(3)
#define controller_I_k &Variable(40)
#define controller_I_k_1 Variable(40)
#define controller_I_y0 &Variable(41)
#define controller_I_y0_1 Variable(41)
#define controller_D_n Variable(42)
#define controller_D_inPort_n Variable(43)
#define controller_D_outPort_n Variable(44)
#define controller_D_outPort_signal_1 Variable(45)
#define controller_D_y_1 Variable(46)
#define controller_D_k &Variable(47)
#define controller_D_k_1 Variable(47)
#define controller_D_T &Variable(48)
#define controller_D_T_1 Variable(48)
#define controller_D_x_1 State(4)
#define controller_D_der_x_1 Derivative(4)
#define controller_D_px_0k &Variable(49)
#define controller_D_px_0k_1 Variable(49)
#define controller_D_px_0T &Variable(50)
#define controller_D_px_0T_1 Variable(50)
#define controller_Gain_k &Variable(51)
#define controller_Gain_k_1 Variable(51)
#define controller_Gain_inPort_n Variable(52)
#define controller_Gain_outPort_n Variable(53)
#define controller_Gain_outPort_signal_1 Variable(54)
#define controller_Add_k1 Parameter(12)
#define controller_Add_k2 Parameter(13)
#define controller_Add_k3 Parameter(14)
#define controller_Add_n Variable(55)
#define controller_Add_inPort1_n Variable(56)
#define controller_Add_inPort2_n Variable(57)
#define controller_Add_inPort3_n Variable(58)
#define controller_Add_outPort_n Variable(59)
#define controller_Add_outPort_signal_1 Variable(60)
#define Step1_nout Variable(61)
#define Step1_outPort_n Variable(62)
#define Step1_outPort_signal_1 Variable(63)
#define Step1_y_1 Variable(64)
#define Step1_offset &Parameter(15)
#define Step1_offset_1 Parameter(15)
#define Step1_startTime &Parameter(16)
#define Step1_startTime_1 Parameter(16)
#define Step1_height &Parameter(17)
#define Step1_height_1 Parameter(17)
#define Step1_px_0height &Variable(65)
#define Step1_px_0height_1 Variable(65)
#define Step1_px_0offset &Variable(66)
#define Step1_px_0offset_1 Variable(66)
#define Step1_px_0startTime &Variable(67)
#define Step1_px_0startTime_1 Variable(67)
TranslatedEquations
InitialSection
controller_P_inPort_n = 1;
controller_P_outPort_n = 1;
controller_I_n = 1;
controller_I_inPort_n = 1;
controller_I_outPort_n = 1;
controller_I_y0_1 = 0;
controller_D_n = 1;
controller_D_inPort_n = 1;
controller_D_outPort_n = 1;
controller_Gain_inPort_n = 1;
controller_Gain_outPort_n = 1;
Step1_nout = 1;
Step1_outPort_n = 1;
motor_Vs_inPort_n = 1;
motor_inPort_n = 1;
phiload_outPort_n = 1;
positionerror_n = 1;
controller_inPort_n = 1;
controller_outPort_n = 1;
controller_Add_n = 1;
gearbox_bearing_phi = 0;
gearbox_bearing_tau = 0;
load_flangex_0b_tau = 0;
motor_G_p_v = 0;
motor_Vs_n_v = 0;
motor_emf_n_v = 0;
phiload_flangex_0a_tau = 0;
BoundParameterSection
load_J = 0.5*m0_0*r0_0*r0_0;
positionerror_inPort1_n = positionerror_n;
positionerror_inPort2_n = positionerror_n;
positionerror_outPort_n = positionerror_n;
controller_I_k_1 = divmacro(1,"1",controller_Ti,"controller.Ti");
controller_D_k_1 = controller_Td;
controller_D_T_1 = RealBmax(divmacro(controller_Td,"controller.Td",controller_Nd,
"controller.Nd"), 1E-013);
controller_D_px_0k_1 = controller_D_k_1;
controller_D_px_0T_1 = controller_D_T_1;
controller_Gain_k_1 = controller_k;
controller_Add_inPort1_n = controller_Add_n;
controller_Add_inPort2_n = controller_Add_n;
controller_Add_inPort3_n = controller_Add_n;
controller_Add_outPort_n = controller_Add_n;
Step1_px_0height_1 = Step1_height_1;
Step1_px_0offset_1 = Step1_offset_1;
Step1_px_0startTime_1 = Step1_startTime_1;
InitialSection
DefaultSection
InitializeData(0)
InitialSection
Init=false;InitializeData(1);Init=true;
OutputSection
DynamicsSection
Step1_outPort_signal_1 = Step1_px_0offset_1+(IF LessTime(Step1_px_0startTime_1, 0)
THEN 0 ELSE Step1_px_0height_1);
positionerror_outPort_signal_1 = Step1_outPort_signal_1-load_phi;
helpvar[0] = fabs(controller_D_px_0k_1);
controller_D_der_x_1 = IF fabs(controller_D_px_0k_1) >= 1E-015 THEN divmacro(
positionerror_outPort_signal_1-controller_D_x_1,"positionerror.outPort.signal[1]-controller.D.x[1]",
controller_D_px_0T_1,"controller.D.p_T[1]") ELSE 0;
motor_Jm_flangex_0a_tau = motor_emf_k*motor_La_i;
BreakSectionFunction(1);
/* Linear system of equations to solve. */
load_der_w = Remember_(load_der_w, 0);
SolveScalarLinear(load_J+motor_Jm_J*gearbox_ratio*gearbox_ratio,"load.J+motor.Jm.J*gearbox.ratio*gearbox.ratio",
gearbox_ratio*motor_Jm_flangex_0a_tau,"gearbox.ratio*motor.Jm.flange_a.tau",
load_der_w,"der(load.w)");
motor_Jm_der_w = gearbox_ratio*load_der_w;
gearbox_flangex_0a_tau = motor_Jm_flangex_0a_tau-motor_Jm_J*motor_Jm_der_w;
gearbox_flangex_0b_tau = -gearbox_ratio*gearbox_flangex_0a_tau;
/* End of Equation Block */
BreakSectionFunction(2);
controller_I_der_y_1 = controller_I_k_1*positionerror_outPort_signal_1;
motor_Ra_v = motor_Ra_R*motor_La_i;
controller_P_outPort_signal_1 = controller_P_k_1*positionerror_outPort_signal_1;
controller_D_y_1 = IF fabs(controller_D_px_0k_1) >= 1E-015 THEN divmacro(
controller_D_px_0k_1*(positionerror_outPort_signal_1-controller_D_x_1),
"controller.D.p_k[1]*(positionerror.outPort.signal[1]-controller.D.x[1])",
controller_D_px_0T_1,"controller.D.p_T[1]") ELSE 0;
controller_Add_outPort_signal_1 = controller_Add_k1*controller_P_outPort_signal_1
+controller_Add_k2*controller_I_y_1+controller_Add_k3*controller_D_y_1;
controller_outPort_signal_1 = controller_Gain_k_1*controller_Add_outPort_signal_1;
motor_Ra_n_v = controller_outPort_signal_1-motor_Ra_v;
motor_Jm_der_phi = gearbox_ratio*load_w;
motor_emf_v = motor_emf_k*motor_Jm_der_phi;
motor_La_v = motor_Ra_n_v-motor_emf_v;
/* Linear system of equations to solve. */
motor_La_der_i = Remember_(motor_La_der_i, 1);
SolveScalarLinear(motor_La_L,"motor.La.L", motor_La_v,"motor.La.v",
motor_La_der_i,"der(motor.La.i)");
/* End of Equation Block */
load_der_phi = load_w;
AcceptedSection1
AcceptedSection2
controller_D_outPort_signal_1 = controller_D_y_1;
controller_I_outPort_signal_1 = controller_I_y_1;
controller_Gain_outPort_signal_1 = controller_outPort_signal_1;
phiload_outPort_signal_1 = load_phi;
controller_y = controller_outPort_signal_1;
Step1_y_1 = Step1_outPort_signal_1;
motor_G_p_i = 0;
gearbox_taux_0support = -(gearbox_flangex_0a_tau+gearbox_flangex_0b_tau);
motor_Jm_phi = gearbox_ratio*load_phi;
DefaultSection
InitializeData(1)
EndTranslatedEquations
#include <dsblock6.c>
PreNonAlias(0)
StartNonAlias(0)
DeclareParameter("r", "Radius of load [m]", 0, 0.5, 0.0,1E+100,0.0,0,624)
DeclareParameter("m", "Mass of load [kg]", 1, 80, 0.0,1E+100,0.0,0,624)
DeclareAlias2("motor.Vs.v", "Voltage drop between the two pins (= p.v - n.v) [V]",\
"controller.outPort.signal[1]", 1, 5, 31, 0)
DeclareAlias2("motor.Vs.i", "Current flowing from pin p to pin n [A]", \
"motor.La.i", -1, 1, 0, 0)
DeclareAlias2("motor.Vs.p.v", "Potential at the pin [V]", "controller.outPort.signal[1]", 1,\
5, 31, 4)
DeclareAlias2("motor.Vs.p.i", "Current flowing into the pin [A]", "motor.La.i", -1,\
1, 0, 132)
DeclareVariable("motor.Vs.n.v", "Potential at the pin [V]", 0, 0.0,0.0,0.0,0,521)
DeclareAlias2("motor.Vs.n.i", "Current flowing into the pin [A]", "motor.La.i", 1,\
1, 0, 132)
DeclareVariable("motor.Vs.inPort.n", "Dimension of signal vector", 1, 0.0,0.0,\
0.0,0,525)
DeclareAlias2("motor.Vs.inPort.signal[1]", "Real input signals", \
"controller.outPort.signal[1]", 1, 5, 31, 4)
DeclareVariable("motor.G.p.v", "Potential at the pin [V]", 0, 0.0,0.0,0.0,0,521)
DeclareVariable("motor.G.p.i", "Current flowing into the pin [A]", 0, 0.0,0.0,\
0.0,0,840)
DeclareVariable("motor.Ra.v", "Voltage drop between the two pins (= p.v - n.v) [V]",\
0, 0.0,0.0,0.0,0,576)
DeclareAlias2("motor.Ra.i", "Current flowing from pin p to pin n [A]", \
"motor.La.i", 1, 1, 0, 0)
DeclareAlias2("motor.Ra.p.v", "Potential at the pin [V]", "controller.outPort.signal[1]", 1,\
5, 31, 4)
DeclareAlias2("motor.Ra.p.i", "Current flowing into the pin [A]", "motor.La.i", 1,\
1, 0, 132)
DeclareVariable("motor.Ra.n.v", "Potential at the pin [V]", 0, 0.0,0.0,0.0,0,584)
DeclareAlias2("motor.Ra.n.i", "Current flowing into the pin [A]", "motor.La.i", -1,\
1, 0, 132)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -