PS: 网上教程太少了,自己花了3天,终于自己摸索出来了。人老了,搞东西太慢了。

先看最后效果(初始角度向右边偏25度):

bp神经网络simulink仿真单级倒立摆 倒立摆simulink流程图_经验分享

1.准备工具   

        matlab2014b 或者以上,往下版本不清楚。

2.创建工程

        打开matlab, 命令行输入,smnew(创建新的工程);sm_lib (打开控件库,如果自动打开了,可以忽略),如下:

bp神经网络simulink仿真单级倒立摆 倒立摆simulink流程图_程序人生_02

3. 添加组件,倒立摆主要由一根杆,一个连接件,一个平台即可。

(1)。添加一根长方形杆,也就是一个solid 件(也可以从sm_lib里面拖过来)。双击,填入适当的属性,并命名为摆杆。如下图:

bp神经网络simulink仿真单级倒立摆 倒立摆simulink流程图_配置控制_03

         

(2)。添加链接件,也就是可以单自由度活动的关节。从sm_lib中选择joint -> pin slot joint.  这个有一个自由度的水平和一个自由度的角度选择关节,正好复合倒立摆。然后选择摆杆的起始角度,复合笛卡尔坐标系。(纠正一下,应该设置为269度左右,具体看坐标系的排版,可以自己设置为重力反向角度即可

bp神经网络simulink仿真单级倒立摆 倒立摆simulink流程图_其他_04

(3)。由于刚才假如的Joint自由度是绕Z轴旋转,沿着X轴的自由度的运动,所以,需要设置重力加速度的方向为Y轴负方向,让Joint能够在X轴上只有运动。如下图

bp神经网络simulink仿真单级倒立摆 倒立摆simulink流程图_程序人生_05

(4),添加连接件的外观方块图,添加一个新的solid.并命名连接件。

bp神经网络simulink仿真单级倒立摆 倒立摆simulink流程图_其他_06

(5). 添加一个坐标平移的功能件,因为摆杆和连接件在中间重合了,不符合直观(这个不好描述,同志可以不加试一试就知道了)

bp神经网络simulink仿真单级倒立摆 倒立摆simulink流程图_程序人生_07

(6),用连线吧所有的模块连接起来,如图:

bp神经网络simulink仿真单级倒立摆 倒立摆simulink流程图_其他_08

(7),点开始仿真,就可以看到摆杆只有摆动了(因为没有摩擦力,这是理想模型)。

bp神经网络simulink仿真单级倒立摆 倒立摆simulink流程图_控件_09

(8),添加PID控制器和相关的组件,这部分很简单。首先,添加一个PS-Simulink Converter 和一个Simulin-PS Converter, 这两个是连接simscape 和 PID 控制器的,他们不能直连。添加一个PID控制器,添加一个常数模块。如下系列图:

bp神经网络simulink仿真单级倒立摆 倒立摆simulink流程图_配置控制_10

bp神经网络simulink仿真单级倒立摆 倒立摆simulink流程图_经验分享_11

bp神经网络simulink仿真单级倒立摆 倒立摆simulink流程图_其他_12

(9),配置控制器参数。双击即可设置。

bp神经网络simulink仿真单级倒立摆 倒立摆simulink流程图_程序人生_13

bp神经网络simulink仿真单级倒立摆 倒立摆simulink流程图_控件_14

(10)。最后得下图,至于如何让摆杆稳定,自己调PID,这里单纯的P即可(自己调,我就不告诉你了哈):

bp神经网络simulink仿真单级倒立摆 倒立摆simulink流程图_程序人生_15

注:有些截图是后面加的,忽略小细节