弹簧-阻尼-质量块(m-c-k)系统
m-c-k系统是个很简单的二阶振荡系统,这里当做控制学习的一个记录写一写。

一个质量块m-kg,一个阻尼器c-N·s/m,一个弹簧k-N/m。
1、传递函数分析:
系统的输入为f(t),是一个作用力;输出为y(t),是一个位移。
系统的动力学微分方程为:

拉氏变换:

得到传递函数:

可知,mck系统是由一个比例(增益)环节

和一个振荡环节环节

所组成,特征方程为

很好理解,假如f(t)是一个相当于阶跃输入的静载荷力F,振荡环节的响应随时间衰减到0,系统进入稳态后,输出的位移x,就是弹簧的形变,也就是遵循Hooke定律。

而系统的动态特性由振荡环节决定。
对于一个二阶系统,标准形式的传递函数为:

用标准系统,去对比mck系统的振荡环节,可知mck系统的无阻尼固有频率和阻尼比分别为:

所以mck系统的无阻尼固有频率和k、m有关,阻尼比和参数c成正比,和参数m、k成反关系。比较好理解,可以想象质量块的质量m或者弹簧的弹性k增加时,都会使阻尼c的作用相对而言变小,变得不明显。
在分析时间响应的时候,振荡环节存在一个有阻尼固有频率,当阻尼比取值为0、[0,1]、1、[1,很大] 时,分别称为无阻尼、欠阻尼、临界阻尼、过阻尼系统。

在频率特性分析中,振荡环节存在一个谐振频率,且越小,谐振峰值Mr越大。

2、状态空间表达式分析:
系统中的独立储能元件为弹簧和质量块,所以选择两个状态变量,分别为x1=x(位移) ,x2=v= dx/dt(速度)。 输出y = x(位移);所谓的振荡就是弹簧的势能和质量块的动能的相互转换,弹簧所具有的位能和质量块所具有的动能分别为:

根据状态变量本身的关系、系统的动力学微分方程、输出和状态变量的关系,可以写出:

进而得到系统的状态方程和输出方程分别为:

其中:系统矩阵

控制矩阵

输出矩阵

通过系统矩阵A和控制矩阵B,可以大致知道系统的运动因果过程: 输入F,通过控制矩阵中的1/m,产生一个x2导(加速度), x2导经过时间积分产生x2(速度),x2以1的倍数关系控制x1导(定义的时候其实x1导就是x2,因为位移的时间导数就是速度),x2同时以-c/m的关系(阻尼力)反馈控制其本身导数(加速度),x1导时间积分后产生x1(位移),x1以-k/m关系(弹簧力)控制x2导(加速度)。

即:A矩阵中主对角线反映的是状态变量对其自身变化量的反馈,非主对角线元素反应状态变量之间的交互作用情况。x2和x1之间的交互作用就是动能和势能的相互装换,x2本身的交互作用就是阻尼消耗能量的过程。
3、具体分析:
阻尼比大的话,振荡现象就会不明显。为了使后面的各种超调量都明显一些,设定 :

选择满足设定的一组参数组合,m = 1kg , k =100 N/m , c = 6 N/(m/s)。
利用matlab,建立模型并分析。
建立传递函数模型:
m = 1; k = 100; c = 6;
sys_tf = tf(1,[m,c,k])*k %乘k,相当于把传递函数中的增益环节变成1,也相当于没有。sys_tf中就只是振荡环节。
时域:
subplot(2,1,1),impulse(sys_tf,2),grid on
subplot(2,1,2),step(sys_tf,2),grid on

S = stepinfo(sys_tf) %阶跃响应的性能指标,函数返回一个struct类型数据。

性能参数都是一直且正确的。
频域:
subplot(1,2,1),bode(sys_tf),grid on;
subplot(1,2,2),nyquist(sys_tf),grid on;

谐振频率也是吻合的。