在之前控制教程 —— 介绍篇:8.基于Simulink为火车系统建模部分已经通过数学模型的方式对火车系统进行了建模和仿真,本教程将使用Simscape工具箱进行物理建模。
在Simscape库中提供了非常多物理模块,可以构建复杂的多状态模型,却无需像前面介绍的那样需要应用牛顿第二定律等物理原理来构建数学模型,回顾一下之前的火车系统。
文章目录
- 物理配置
- 创建Simscape模型
- 仿真结果
物理配置
正如之前描述的那样,火车头和车厢的质量分别由M1
和M2
表示,火车头和车厢采用刚度为k
的联轴器连接,牵引力F
表示火车头提供的拉力,而mu
代表滚动摩擦力。
该系统的参数如下:
-
M1
火车头质量 1kg -
M2
车厢质量 0.5 kg -
k
弹簧常数 1 N/m -
mu
摩擦系数 0.02 s/m -
F
火车头牵引力 1 N -
g
重力加速度 9.8 m/s^2
通过在MATLAB命令窗口中输入ssc_new
来打开新的Simscape
模型。如下所示
该模型的各模块是:
- 求解配置器模块
- PS-Simulink和Simulink-PS模块(显示为双箭头/双三角形)
- 连接到PS-Simulink的示波器模块
PS-Simulink和Simulink-PS模块定义了Simulink的输入输出和Simscape的输入输出之间的转换。
创建Simscape模型
要创建Simscape模型,需要向窗口中添加许多模块:
- 2个 Mass 模块(分别命名为
M1
和M2
) - 1个 Translational Spring 模块(命名为
spring
) - 1个 Mechanical Translational Reference 模块
- 2个 Translational Damper 模块(分别命名为
M1 friction
和M2 friction
)
将本教程开始的参数值分配给每个模块,在这种情况下,我们使用平移阻尼器来模拟系统中的滚动摩擦。具体来说,我们将每个模块的阻尼系数指定为摩擦系数乘以法向力(mu*mass*g
)。如果我们需要更复杂的摩擦模型,则可以改用平移摩擦模块,如图所示连接各个模块,并将Scope
命名为Velocity
。
现在添加以下模块到窗口中
- 1个 Ideal Force Source 模块(命名为
Force Source
) - 1个 Signal Generator 模块(命名为
Force Input
) - 1个 Translational Motion Sensor 模块
在信号发生器中,将波形选择为square
,幅度设置为-1
,频率设置为0.001
,单位选择为Hertz
。按下CTRL-E
,然后从弹出的窗口中将Type
选择为Variable-step
,Sovler
选择为auto
,同时将Stop time
配置为1000
。
仿真结果
运行仿真(按下CTRL-T
或按下绿色运行按钮),然后打开Scope
观察速度的输出。牵引力为两个过程,一个为正,一个为负。可以看出当施加正作用力时,发动机开始前进,然后再施加负作用力后的一段时间内,火车朝相反的方向运动。速度的输出与控制教程 —— 介绍篇:8.基于Simulink为火车系统建模中描述的结果完全一致。