⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dsmodel.c

📁 这是一个使用vc编程语言在modolica环境下的一个应用!
💻 C
📖 第 1 页 / 共 2 页
字号:
/* 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 + -