单级倒立摆从建模到仿真
把很久以前的草稿整理一下搬到博客上
1.动力学模型
如图1所示,单级倒立摆由系统由水平导轨,平移支座和摆杆构成。平移支座与摆杆无阻尼铰接(摆杆可自由摆动)。平移支座可以在导轨上受控平移。摆杆的质量是,质心到铰链轴心的距离是,过质心的轴方向的转动惯量是
根据拉格朗日力学对系统进行动力学建模。首先,根据系统的自由度确定描述系统运动的广义坐标。系统的自由度是2。因此,广义坐标可以取平移支座的水平位移和摆杆的摆角θ。 系统拉格朗日方程(以下不再带角标)为
(1)
其中,是拉格朗日函数。是平移支座的驱动力。
动能:
(2)
(3)
重力势能:
(4)
这里研究位移控制,即输入量是位移,而不是驱动力矩。因此,只对方程组(1)中的第二个展开。得到动力学方程
(5)
动力学模型(被控系统)Simulink框图见图2,初始摆角是。控制系统框图如图3所示,支座的初始位移是0.1m 。
2.控制器设计
2.1 摆杆倒立控制
倒立摆控制的首要任务是摆杆的稳定倒立。方程(5)是个非线性微分方程,为了能用线性系统理论对它进行分析,需要先进行线性化。从方程(5)的形式可以看出,使用反馈线性化方法比较合适。令
(6)
于是得到线性的动力学方程
(7)
摆杆的相对竖直位置的偏差, 于是有状态方程
(8)
引入状态反馈
(9)
得到
(10)
当方程(10)中和都大于零时状态向量即可收敛,例如k1=2,k2=3,仿真结果见4。
2.2 支撑点位置控制
从图4可见,当摆杆倒立稳定后,平移支座的水平位移一直在以恒定速率朝一个方向变化。这显然没有达到控制要求。因此,在系统的状态变量中再添加上平移支座的位移和速率。将摆杆角度偏差 代入方程(5),再在处线性化
(11)
于是有状态方程
(12)
系统完全可控,可以任意配置极点,取状态反馈
(13)
将极点配置在[-3 -2 -9 -6]处,解得K=[212 68 50 47 ]。MATLAB求解代码见附录,输出结果见图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。
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))
单级倒立摆从建模到仿真相关推荐
- 单级倒立摆matlab仿真程序,单级倒立摆控制系统设计及MATLAB中的仿真..doc
单级倒立摆控制系统设计及MATLAB中的仿真. 单级倒立摆控制及仿真单级倒立摆系统是一种广泛应用的物理模型.控制单级倒立摆载体的运动是保证倒立摆稳定 完成了对倒立摆载体的角度制导运动微分方程 Matl ...
- 二阶倒立摆matlab建模与仿真,二级倒立摆的建模与MATLAB仿真.pdf
二级倒立摆的建模与MATLAB仿真 MATLAB 二级倒立摆的建模与 仿真 刘文斌,等 二级倒立摆的建模与MATLAB仿真 刘文斌,千树川 3000) (四川理工学院电子与信息工程系 四川自贡,64 ...
- 直线一级倒立摆数学建模与控制仿真
学习目标: 1.推导直线型一级倒立摆的数学建模公式,得到状态空间表达式和传递函数,并分析系统的稳定性 2.采用控制算法将系统从不稳定调整到稳定状态,并用matlab和simulink仿真实现 学习内容 ...
- Matlab 仿真——单自由度倒立摆(4)根轨迹法控制器设计
文章目录 0. 受控对象与设计要求 0.1 受控对象 0.2 设计要求 0.3 系统结构 1. 根轨迹设计 2. PID控制 3. 那小车呢? 4. 几个问题 5. 引用 0. 受控对象与设计要求 这 ...
- Matlab 仿真——单自由度倒立摆(3)PID控制器设计
文章目录 0. 受控对象与设计要求 0.1 受控对象 0.2 设计要求 1. 控制系统结构 2. PID控制器设计 3. 那小车呢? 4. 几个问题 5. 参考 0. 受控对象与设计要求 这里列出上一 ...
- matlab能控型模型,级倒立摆MATLAB仿真、能控能观性分析、数学模型、极点配置
题目一: 考虑如图所示的倒立摆系统.图中,倒立摆安装在一个小车上.这里仅考虑倒立摆在图面内运动的二维问题.倒立摆系统的参数包括:摆杆的质量(摆杆的质量在摆杆中心).摆杆的长度.小车的质量.摆杆惯量等. ...
- Matlab 仿真——单自由度倒立摆(1)系统建模
文章目录 1. 受控对象与设计要求 2. 力分析与系统方程 2.1 转换方程 2.2 状态空间 3. Matlab表达 3.1 转换方程 3.2 状态空间 4. 引用 1. 受控对象与设计要求 该例的 ...
- Matlab 仿真——单自由度倒立摆(2)系统分析
文章目录 0. 受控对象与设计要求 0.1 受控对象 0.2 设计要求 1. 开环冲激响应 2. 开环阶跃响应 3. 引用 0. 受控对象与设计要求 这里列出上一篇文章的结果 0.1 受控对象 Ppe ...
- 基于matlab的小车在行驶过程中倒立摆的动态平衡控制器仿真
目录 一.理论基础 二.部分simulink模型 三.仿真结论分析 一.理论基础 首先,整个系统的基本结构如下所示:
最新文章
- mysql定位前后端问题_Web 前后端分离的意义大吗?
- C++ 标准库类型 map
- Intent Bundle页面跳转信息的传递
- poj2115C Looooops
- [vue] 说说你对v-clock和v-pre指令的理解
- Python与机器视觉(x) 颜色直方图
- CS 客户端不引用AE
- Linux中fork函数详解(附图解与代码实现)
- matlab实现S域到Z域变换
- springboot获取视频时长以及截取视频第一帧
- [计算机视觉多视图几何] -- Homography
- win7 局域网服务器 文件共享,Win7系统电脑设置局域网共享文件的操作方法-电脑自学网...
- ota升级 rk3399_Android7.1.2系统OTA升级
- 白箱测试、黑箱测试、回归测试?
- 红米开发版刷机教程_红米Note3开发版怎么刷机 红米Note3开发版刷机教程
- CSMA/CD与CSMA/CA的区别
- linux安全(1)
- python 需求分析
- 2022小红书搜索词布局实战手册
- 5000词学英语——DAY4