一.建立模型
质量—弹簧—阻尼系统是最经典的机械系统了,在Multibody中建立质量—弹簧—阻尼系统其实只需要一个零件,通过一个移动关节与大地连接起来就行了,因为可以在关节里面设置弹性系数和阻尼。
能看到这篇文章的默认看完了我这一系列前面的文章,所以从这一篇开始会写的简略一些。
模型建立如下,包含一个Brick Solid和一个Prismatic Joint(移动关节)
双击打开Brick Solid,设置重物的属性。注意Inertia栏里面based on使用的基于Mass质量,指定质量为0.1kg。
然后双击打开Prismatic Joint,设置弹性系数和阻尼,以及弹簧原始长度、初始位置。如图所示,Equilibrium Position是平衡位置,Spring Stiffness是弹性系数,Damping Coefficient是阻尼系数。
最后双击Mechanism Configuration,把重力加速度改成-10,改它是为了方便我们计算。
这样连接之后实际上就是小重物块的初始位置为10cm,此时弹簧处于平衡位置,这样在重力的作用下重物会往下运动,然后就发生简谐振动,逐渐静止在新的平衡位置。新的平衡位置计算:重物0.1kg=1牛顿,1/20=0.05m=5cm,平衡时弹簧压缩量为5cm,所以弹簧长度为5cm,也就是重物的位置为5cm。
点击运行,看看示波器的数据。可以看到趋势和数据是对的。
虚拟样机的运动
二. 增加控制器
然后我们增加驱动力和控制器,实现对重物的位置控制。
首先修改Prismatic Joint,增加驱动力。
然后加入PID Controller,Simulink-PS converter,Sum模块,连线。期望输入设为一个常量和一个正弦信号,幅值都是0.2m,也就是弹簧被拉长10cm。我们首先把开关打到上面的常量输入,模拟阶跃响应。
运行一下,看看输出曲线,很明显不行,因为PID参数我们还没有改。
双击打开PID控制器,点击Turn,打开PID Turner。
调整参数并更新到PID控制器
看看曲线,可以到达位置了,速度飞起。
看看实际系统的运动(减慢了32倍,速度太快了。。。)
接下来看看把开关打到下面的正弦输入,看看输出曲线,也是完美跟踪的。