0
点赞
收藏
分享

微信扫一扫

Simscape Multiby学习笔记5——在Multibody中建立控制器-驱动力-传感器

奋斗De奶爸 2022-03-18 阅读 75
运维

文章目录

一. 给关节施加力和建立传感器

建立完模型之后,我们最想要做的就是模拟系统在受力情况下是怎么运动的,这就是动力学仿真的真谛。上一节我们其实已经观察了自由单摆在只受重力作用下的运动,其实就是一个正弦变动,由于没有摩擦力,所以他会一直等幅振荡。

接着上一节的内容,本次我们的目标是给单摆施加驱动力矩,同时记录单摆的摆动位置和速度。在Multibody里面施加力和增加传感器都是在关节当中进行的。

打开我们上一节的模型,双击打开Revolute Joint,像下面这样设置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ga8c94zv-1647610691488)(F:\A_Pro_Files\博客\Simscape Multibody系列教程\Dhau7T6MyI.png)]

Internal Mechanics是施加弹性力(Spring Stiffness)与阻尼(Damping Coefficient),以前都学过的,弹性力与位移成正比,阻尼力与速度成正比(力是广义力,包含力矩)这样设置完之后其实就是一个标准的质量—弹簧—阻尼系统了,一个二阶系统。

Actuation是驱动力,在Torque里面选择Provided by Input,就是通过输入力驱动,当然可以选择直接给一个值的。

Sensing就是传感器,这里勾选Position和velocity,位置和速度。

完事之后Revolute Joint就多出了几个接口,分别是输入力与输出位置、速度。

加进去一个正弦信号,一个Simulink-PS Converter,一个PS-Simulink Converter,一个Scope,一个to workspace块,连接起来。最后像下面这样。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-03SJ5umk-1647610691489)(F:\A_Pro_Files\博客\Simscape Multibody系列教程\MATLAB_yk8Z8UUSjX.png)]

说明一下,所有的部件都可以在Simulink library里面找到,找不到就搜索,最快的是直接在模型里面打字,它会自己出来的,比如搜索To Worksapce模块

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d8yw6ioZ-1647610691489)(F:\A_Pro_Files\博客\Simscape Multibody系列教程\MATLAB_rXjFvsmB7v.png)]
这样就加入了力和传感器,Simulink-PS Converter和PS-Simulink Converter的作用已经说过了,是实现Simulink信号与Multibody信号的转换,没有这个东西它是不让你连接的。

点击运行,观察三维视图里面的真实运动,打开Scope观察位移和速度的曲线,然后在Matlab Workspce里面可以使用导出的数据绘图。这里我就不截图了,很简单。

二. 加入PID控制器

接下来是重头戏,我们看如何加入PID控制器,控制输入力矩,实现单摆的角度控制。

有了上面的基础其实答案已经呼之欲出了,我们只需要像在simulink里面仿真一样加入PID控制器、比较器就行了。只不过Simulink里面的Plant是建立的数学模型(传递函数或状态空间或S-function别的什么东东),而Multibody里面是虚拟样机。

直接给出连接关系,如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JqZi9Lea-1647610691489)(F:\A_Pro_Files\博客\Simscape Multibody系列教程\MATLAB_eKN8QhGBtw.png)]

这里面PID控制器的参数调整采用里面提供的PID整定器,双击打开PID控制器,点击Tune,打开PID Turner
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E23CdJY6-1647610691490)(F:\A_Pro_Files\博客\Simscape Multibody系列教程\mM3KqIwpvr.png)]

PID Turner的页面如下,TURNING TOOLS里面拖动两个按钮就可以调整输出曲线。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UEVz4Szc-1647610691490)(F:\A_Pro_Files\博客\Simscape Multibody系列教程\AHcXdG2fkT.png)]

调完之后点击RESULT,点击UPDATE Block,将参数更新到PID控制器。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4WMA6bja-1647610691490)(F:\A_Pro_Files\博客\Simscape Multibody系列教程\54BDxd0wYM.png)]

三.观察运行结果

点击运行,看看效果。很快就调整到倒立位置了,也就是设立的参考输入180度。

可以加一个示波器看看角度曲线。可以看到跟PID整定的曲线是一样的,大家可以调整一下PID,看看变化。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mpAANYOE-1647610691491)(F:\A_Pro_Files\博客\Simscape Multibody系列教程\MATLAB_yE6Ch9l0q4.png)]

举报

相关推荐

0 条评论