问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

二阶弹簧阻尼系统PID控制Simulink仿真

创作时间:
作者:
@小白创作中心

二阶弹簧阻尼系统PID控制Simulink仿真

引用
CSDN
1.
https://blog.csdn.net/qq_40440846/article/details/138186841

本文将详细介绍二阶弹簧阻尼系统的PID控制Simulink仿真过程。通过建立系统的数学模型,搭建Simulink仿真模型,测试不同输入信号的响应,并实现PID位置控制和串级PID控制,最终实现对系统位置的精确控制。

二阶弹簧阻尼系统数学建模

二阶弹簧阻尼系统是一个经典的物理系统,其动力学方程可以表示为:

$$m\ddot{x} + c\dot{x} + kx = f(t)$$

其中,$m$是质量,$c$是阻尼系数,$k$是弹簧刚度,$x$是位移,$\dot{x}$是速度,$\ddot{x}$是加速度,$f(t)$是外力。

在Simulink中,可以通过积分器和增益模块来实现上述方程。具体来说,两个积分器分别用于计算速度和位移,增益模块用于设置质量、阻尼系数和弹簧刚度。

二阶弹簧阻尼系统Simulink仿真搭建

打开MATLAB的Simulink工具,先画出弹簧阻尼系统如下:

图中的“4”和“0.2”两个系数分别是$x$和$x$一阶导数的系数。给第二个积分环节一个初值,即位置初始值为“1”。

运行得到结果:

振荡幅值越来越小,与期望结果一致!

系统对输入信号的响应测试

输入信号看作一个新的$f(t)$函数,可以是任意函数,数学模型如下:

阶跃信号输入测试

添加阶跃信号输入,并且将第二个积分环节初值清零,运行结果如下:

阶跃信号由0到1输入,系统振荡后,保持在0.25附近。

正弦信号输入测试

运行结果如下:

PID控制

控制思路

对弹簧阻尼系统进行PID控制,可以采用以下思路:对小车的位置或者速度进行控制,将弹簧和阻尼器看作是干扰。

PID位置控制

跟踪目标为正弦信号,导入PID控制模块,建立反馈通道,直接用“力”控制“位置”,如下:

仿真结果如下,(仿真中PID比例系数往大调,跟踪误差可以很小,实际系统不会那样调,在此用较小的比例系数)

串级PID控制

速度环控制

添加PID控制模块以及跟踪的目标为正弦函数,速度控制将“力”输入被控系统,将被控系统的“速度”反馈并比较。

跟踪效果如下,感觉滞后比较严重,先不管,继续往下。

位置环控制

在速度控制基础上再加上一环PID(位置环),同样以正弦信号为跟踪目标,位置控制将“速度”输入“速度环”,将被控系统的“位置”反馈并比较。

在比例系数都较小情况下,串级PID效果更优!符合伺服电机调试经验。

可以将弹簧阻尼系统封装为一个子系统,看起来更简洁。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号