PS: 网上教程太少了,自己花了3天,终于自己摸索出来了。人老了,搞东西太慢了。
先看最后效果(初始角度向右边偏25度):
1.准备工具
matlab2014b 或者以上,往下版本不清楚。
2.创建工程
打开matlab, 命令行输入,smnew(创建新的工程);sm_lib (打开控件库,如果自动打开了,可以忽略),如下:
3. 添加组件,倒立摆主要由一根杆,一个连接件,一个平台即可。
(1)。添加一根长方形杆,也就是一个solid 件(也可以从sm_lib里面拖过来)。双击,填入适当的属性,并命名为摆杆。如下图:
(2)。添加链接件,也就是可以单自由度活动的关节。从sm_lib中选择joint -> pin slot joint. 这个有一个自由度的水平和一个自由度的角度选择关节,正好复合倒立摆。然后选择摆杆的起始角度,复合笛卡尔坐标系。(纠正一下,应该设置为269度左右,具体看坐标系的排版,可以自己设置为重力反向角度即可)
(3)。由于刚才假如的Joint自由度是绕Z轴旋转,沿着X轴的自由度的运动,所以,需要设置重力加速度的方向为Y轴负方向,让Joint能够在X轴上只有运动。如下图
(4),添加连接件的外观方块图,添加一个新的solid.并命名连接件。
(5). 添加一个坐标平移的功能件,因为摆杆和连接件在中间重合了,不符合直观(这个不好描述,同志可以不加试一试就知道了)
(6),用连线吧所有的模块连接起来,如图:
(7),点开始仿真,就可以看到摆杆只有摆动了(因为没有摩擦力,这是理想模型)。
(8),添加PID控制器和相关的组件,这部分很简单。首先,添加一个PS-Simulink Converter 和一个Simulin-PS Converter, 这两个是连接simscape 和 PID 控制器的,他们不能直连。添加一个PID控制器,添加一个常数模块。如下系列图:
(9),配置控制器参数。双击即可设置。
(10)。最后得下图,至于如何让摆杆稳定,自己调PID,这里单纯的P即可(自己调,我就不告诉你了哈):
注:有些截图是后面加的,忽略小细节