把很久以前的草稿整理一下搬到博客上


1.动力学模型

如图1所示,单级倒立摆由系统由水平导轨,平移支座和摆杆构成。平移支座与摆杆无阻尼铰接(摆杆可自由摆动)。平移支座可以在导轨上受控平移。摆杆的质量是,质心到铰链轴心的距离是,过质心的轴方向的转动惯量是

图1 单级倒立摆结构简图

根据拉格朗日力学对系统进行动力学建模。首先,根据系统的自由度确定描述系统运动的广义坐标。系统的自由度是2。因此,广义坐标可以取平移支座的水平位移和摆杆的摆角θ。 系统拉格朗日方程(以下不再带角标)为

                                                      (1)

其中,是拉格朗日函数。是平移支座的驱动力。

动能:

                                                  (2)

                                                          (3)

重力势能:

                                                            (4)

这里研究位移控制,即输入量是位移,而不是驱动力矩。因此,只对方程组(1)中的第二个展开。得到动力学方程

                                     (5)

动力学模型(被控系统)Simulink框图见图2,初始摆角是。控制系统框图如图3所示,支座的初始位移是0.1m 。

图2 动力学模型

图3 控制系统

2.控制器设计

2.1 摆杆倒立控制

倒立摆控制的首要任务是摆杆的稳定倒立。方程(5)是个非线性微分方程,为了能用线性系统理论对它进行分析,需要先进行线性化。从方程(5)的形式可以看出,使用反馈线性化方法比较合适。令

                                                        (6)

于是得到线性的动力学方程

                                                          (7)

摆杆的相对竖直位置的偏差, 于是有状态方程

                                     (8)

引入状态反馈

                                                       (9)

得到

                                   (10)

当方程(10)中都大于零时状态向量即可收敛,例如k1=2,k2=3,仿真结果见4。

图4 摆杆倾角反馈下的输出曲线

2.2 支撑点位置控制

从图4可见,当摆杆倒立稳定后,平移支座的水平位移一直在以恒定速率朝一个方向变化。这显然没有达到控制要求。因此,在系统的状态变量中再添加上平移支座的位移和速率。将摆杆角度偏差 代入方程(5),再在处线性化

                                       (11)

于是有状态方程

                    (12)

系统完全可控,可以任意配置极点,取状态反馈

                                             (13)

将极点配置在[-3 -2 -9 -6]处,解得K=[212 68 50 47 ]。MATLAB求解代码见附录,输出结果见图5。

图5 极点配置状态反馈输出曲线

4.串级PD控制

PD参数整定的基本思路是先确定控制的首要任务,优先确定与之相关的参数。在这里首要任务是摆杆的稳定倒立,因此先对把杆角度偏差的PD响应参数Kp和Kd进行整定。在整定这两个参数时,在摆杆稳定的前提下,应尽可能取较大的Kp和Kd。摆杆倒立的PD参数整定好后,再进行平移支座的位移稳定PD参数整定。在这里根据控制任务的重要性,摆杆倒立稳定控制优先于平移支座的位移稳定控制。虽然支座位移是控制输入,但是根据任务优先顺序,支座平移稳定只属于间接的控制任务。由于支座位移稳定属于间接任务,于是在位移控制中:欲使支座往右移,得先使摆杆向右倾,支座就得先向左加速。这就是位移控制的参数正负号的确定思路。由于在摆杆角度偏差较大时,角度偏差PD反馈主导控制器输出;角度偏差较小时,支座水平位移PD反馈起才起作用。因此其增益参数Kp和Kd的值应比角度偏差反馈的PD参数小得多。位移PD反馈的增益参数整定顺序是先Kd后Kp,且Kd要大于Kp。这与偏角反馈的正好相反,例如[120 70 30 40],输出结果见图6。

图6 串级PD控制输出曲线

5.总结

在以上的分析中,状态反馈的和串级PD控制的本质是等效的,都是根据四个被测变量做反馈控制。状态反馈的极点配置需要提前知道动力学模型的参数,而串级PD反馈是通过实验来整定增益参数的。根据图5和图6的曲线来看,使用极点配置状态反馈的曲线比串级PD控制的更加光滑。这有利于防止电机损坏,所以在实践中可以将两种方法结合起来使用,各取所长。

附录:

syms theta a g
a=1;g=9.8;    %a=ml^2+Iz
A=[0 1 0 0;0 0 0 0;0 0 0 1;0 0 g/a 0];  %状态矩阵
b=[0;1;0;-1/a];       %输出矩阵
Q=[b A*b A*A*b A*A*A*b];     %能控性判别矩阵
s=[-3-0i -2+0i -9-0i -6+0i]; %期望极点
S=diag(s);
Ke=poly(S);                  %期望特征多项式
Ka=poly(double(subs(A)));    %被控对象特征多项式
K_=[Ka(5)-Ke(5) Ka(4)-Ke(4) Ka(3)-Ke(3) Ka(2)-Ke(2)];
Tc=[A*A*A*b A*A*b A*b b]*[Ka(1) 0 0 0;Ka(2) Ka(1) 0 0;Ka(3) Ka(2) Ka(1) 0;Ka(4) Ka(3) Ka(2) Ka(1)];
K=double(subs(K_/Tc))

单级倒立摆从建模到仿真相关推荐

  1. 单级倒立摆matlab仿真程序,单级倒立摆控制系统设计及MATLAB中的仿真..doc

    单级倒立摆控制系统设计及MATLAB中的仿真. 单级倒立摆控制及仿真单级倒立摆系统是一种广泛应用的物理模型.控制单级倒立摆载体的运动是保证倒立摆稳定 完成了对倒立摆载体的角度制导运动微分方程 Matl ...

  2. 二阶倒立摆matlab建模与仿真,二级倒立摆的建模与MATLAB仿真.pdf

    二级倒立摆的建模与MATLAB仿真 MATLAB 二级倒立摆的建模与 仿真 刘文斌,等 二级倒立摆的建模与MATLAB仿真 刘文斌,千树川 3000) (四川理工学院电子与信息工程系 四川自贡,64 ...

  3. 直线一级倒立摆数学建模与控制仿真

    学习目标: 1.推导直线型一级倒立摆的数学建模公式,得到状态空间表达式和传递函数,并分析系统的稳定性 2.采用控制算法将系统从不稳定调整到稳定状态,并用matlab和simulink仿真实现 学习内容 ...

  4. Matlab 仿真——单自由度倒立摆(4)根轨迹法控制器设计

    文章目录 0. 受控对象与设计要求 0.1 受控对象 0.2 设计要求 0.3 系统结构 1. 根轨迹设计 2. PID控制 3. 那小车呢? 4. 几个问题 5. 引用 0. 受控对象与设计要求 这 ...

  5. Matlab 仿真——单自由度倒立摆(3)PID控制器设计

    文章目录 0. 受控对象与设计要求 0.1 受控对象 0.2 设计要求 1. 控制系统结构 2. PID控制器设计 3. 那小车呢? 4. 几个问题 5. 参考 0. 受控对象与设计要求 这里列出上一 ...

  6. matlab能控型模型,级倒立摆MATLAB仿真、能控能观性分析、数学模型、极点配置

    题目一: 考虑如图所示的倒立摆系统.图中,倒立摆安装在一个小车上.这里仅考虑倒立摆在图面内运动的二维问题.倒立摆系统的参数包括:摆杆的质量(摆杆的质量在摆杆中心).摆杆的长度.小车的质量.摆杆惯量等. ...

  7. Matlab 仿真——单自由度倒立摆(1)系统建模

    文章目录 1. 受控对象与设计要求 2. 力分析与系统方程 2.1 转换方程 2.2 状态空间 3. Matlab表达 3.1 转换方程 3.2 状态空间 4. 引用 1. 受控对象与设计要求 该例的 ...

  8. Matlab 仿真——单自由度倒立摆(2)系统分析

    文章目录 0. 受控对象与设计要求 0.1 受控对象 0.2 设计要求 1. 开环冲激响应 2. 开环阶跃响应 3. 引用 0. 受控对象与设计要求 这里列出上一篇文章的结果 0.1 受控对象 Ppe ...

  9. 基于matlab的小车在行驶过程中倒立摆的动态平衡控制器仿真

    目录 一.理论基础 二.部分simulink模型 三.仿真结论分析 一.理论基础 首先,整个系统的基本结构如下所示:

最新文章

  1. mysql定位前后端问题_Web 前后端分离的意义大吗?
  2. C++ 标准库类型 map
  3. Intent Bundle页面跳转信息的传递
  4. poj2115C Looooops
  5. [vue] 说说你对v-clock和v-pre指令的理解
  6. Python与机器视觉(x) 颜色直方图
  7. CS 客户端不引用AE
  8. Linux中fork函数详解(附图解与代码实现)
  9. matlab实现S域到Z域变换
  10. springboot获取视频时长以及截取视频第一帧
  11. [计算机视觉多视图几何] -- Homography
  12. win7 局域网服务器 文件共享,Win7系统电脑设置局域网共享文件的操作方法-电脑自学网...
  13. ota升级 rk3399_Android7.1.2系统OTA升级
  14. 白箱测试、黑箱测试、回归测试?
  15. 红米开发版刷机教程_红米Note3开发版怎么刷机 红米Note3开发版刷机教程
  16. CSMA/CD与CSMA/CA的区别
  17. linux安全(1)
  18. python 需求分析
  19. 2022小红书搜索词布局实战手册
  20. 5000词学英语——DAY4

热门文章

  1. 如何订阅netflix会员_如何取消您的Netflix订阅
  2. Python基础之day04-函数
  3. ATTCK实战系列 (一)
  4. 面试总结day7:工厂模式以及如何设计一个优惠卷兑换码
  5. 用ssh隧道建立加密代理
  6. JS判断变量是数组还是对象
  7. Dragonboard410c服务器系列六之用户交互系统
  8. Mysql8.0 添加用户和权限
  9. 2023年IC行业薪资有多高?(内含各岗位薪资对比)
  10. java时间代码_java获取当前时间的四种方法代码实例