CDIO项目:一级倒立摆建模与仿真
第一章 控制系统状态空间表达式的建立
1.1建立物理模型
在忽略摩擦等阻力之后,可将一级倒立摆系统抽象成小车和匀质杆组成的系统,假设 M为小车质量;m为摆杆质量;b为小车摩擦系数;l为摆杆转动轴心到杆质心的长度;I为摆杆惯量;F为加在小车上的力;为小车位置;为摆杆与垂直向上方向的夹角;为摆杆与垂直向下方向的夹角。
图2是系统中小车和摆杆的受力分析图。其中,N和P为小车与摆杆相互作用力的水平和垂直方向的分量。值得注意的是: 在实际倒立摆系统中检测和执行装置的正负方向已确定, 因而矢量方向定义如图2所示, 图示方向为矢量正向。
(a) (b)
图2 小车和摆杆的受力分析图
分析小车水平方向所受的合力,可以得到以下方程:
(1)
由摆杆水平方向的受力进行分析可以得到下面等式:
(2)
把这个等式代入上式中,就得到系统的第一个运动方程:
(3)
为了推出系统的第二个运动方程,我们对摆杆垂直方向上的合力进行分析,可以得到下面方程:
(4)
力矩平衡方程如下:
(5)
合并这(4)、(5)两个方程,约去P和N,得到第二个运动方程:
(6)
假设与1(单位是弧度)相比很小,即<<1,则可以进行近似处理:
(7)
用u来代表被控对象的输入力F,线性化后两个运动方程如下:
(8)
1.2 状态空间方程
选择小车的位移、小车的速度、小车的角度、小车的角速度作为状态变量,方程组(8)对解代数方程,整理后的系统状态空间方程为:
对于质量均匀分布的摆杆有:,于是可得:
化简得:
设 ,则有:
1.3 实际系统模型
查找相关资料得,实际系统模型参数: M=1.096 Kg;m=0.109 Kg;b=0.1 N/m/s;l=0.25 m;I=0.0034 kg·m·m;采样频率 T =5 ms。
以小车加速度作为输入的系统状态方程:
第二章 控制系统状态空间表达式的解
对于状态空间方程后,我们若单考虑这部分(没有输入,此时系统为自治系统,即齐次系统),是可以求出解的,求出的解称为状态转移矩阵,有了状态转移矩阵,任给一个初始状态向量,这个向量与状态转移矩阵相乘,便可以得到任意时刻的状态。值得注意的是对于定常线性系统,这个解就是矩阵指数函数。当然若是非齐次的,即有输入矩阵B(t),还是可以解出通解的,通解的表达式为:
系统在t1时刻的状态解为:
当然也有输出解为:
A=[ 0 1 0 0;0 0 0 0;0 0 0 1;0 0 29.4 0 ];
%B=[ 0 ;1; 0;3 ] ;
%C=[ 1 0 0 0;0 0 1 0];
%D=[ 0; 0 ];
syms t s ;
G=inv(s*eye(size(A))-A)
eat=ilaplace(G)
求出状态转移矩阵:
G =
[ 1/s, 1/s^2, 0, 0]
[ 0, 1/s, 0, 0]
[ 0, 0, (5*s)/(5*s^2 - 147), 5/(5*s^2 - 147)]
[ 0, 0, 147/(5*s^2 - 147), (5*s)/(5*s^2 - 147)]
eat =
[ 1, t, 0, 0]
[ 0, 1, 0, 0]
[ 0, 0, cosh((7*3^(1/2)*5^(1/2)*t)/5), (3^(1/2)*5^(1/2)*sinh((7*3^(1/2)*5^(1/2)*t)/5))/21]
[ 0, 0, (7*3^(1/2)*5^(1/2)*sinh((7*3^(1/2)*5^(1/2)*t)/5))/5,cosh((7*3^(1/2)*5^(1/2)*t)/5)]
第三章 控制系统的能控性和能观性
对于连续时间系统:
系统状态完全可控的条件为:当且仅当向量组B,AB,B…B是线性无关的,或n×n维矩阵:
的秩为n。
当rankUc=n时,系统状态完全能控,否则系统不能控。在Matlab中,可利用ctrb()函数直接求出能控性矩阵,从而确定系统的状态能控性,它的调用格式为:Uc=ctrb(A,B)。
应用以上原理对系统进行可控性分析。
MATLAB计算过程如下:
clear all;
A=[ 0 1 0 0;0 0 0 0;0 0 0 1;0 0 29.4 0 ];
B=[ 0 ;1; 0;3 ] ;
C=[ 1 0 0 0;0 0 1 0];
D=[ 0; 0 ];
Uc=ctrb(A,B);n=4;
if(n==rank(Uc))
disp('系统能控')
end
其结果为:系统能控。可以看出,系统的状态完全可控性矩阵的秩等于系统的状态变量维数,系统的输出完全可控性矩阵的秩等于系统输出向量y 的维数,所以系统可控。
同理可以通过Uo=obsv(A,C); r=rank(Uo);可判断系统能观。
因此可以对系统进行状态反馈控制器的设计,使系统稳定。
第四章 控制系统的稳定性
4.1 根据阶跃响应分析系统稳定性
上面已经得到系统的状态方程式,对其进行阶跃响应分析,在MATLAB 指令区中键入以下命令:
clear all;
A=[ 0 1 0 0;0 0 0 0;0 0 0 1;0 0 29.4 0 ];
B=[ 0 ;1; 0;3 ] ;
C=[ 1 0 0 0;0 0 1 0];
D=[ 0; 0 ];
step(A,B,C,D)
曲线如下图所示。
可以看出,在单位阶跃响应作用下,小车位置和摆杆角度都是发散的。即系统是不稳定的。
4.2 根据传递函数极点法分析系统稳定性
根据零极点在复平面的分布情况可以判断系统的稳定性,若系统的零极点在右办平面存在,则系统是不稳定的。
在MATLAB 指令区中键入以下命令:
clear all;
A=[ 0 1 0 0;0 0 0 0;0 0 0 1;0 0 29.4 0 ];
B=[ 0 ;1; 0;3 ] ;
C=[ 1 0 0 0;0 0 1 0];
D=[ 0; 0 ];
[z,p,k]=ss2zp(A,B,C,D);
sys=ss(A,B,C,D);
tfun=tf(sys);
zpm=zpk(sys);
p =
5.4222
-5.4222
0
0
>> z
z =
-5.4222 0
5.4222 0
可以看出,有一个极点位于右半平面,系统不稳定。
第五章 状态空间的极点配置
针对直线型一级倒立摆系统应用极点配置法设计控制器。
极点位置的确定,要充分考虑它们对于系统性能的主导影响及其与系统零点分布状况的关系。前面我们已经得到了直线一级倒立摆的状态空间模型,以小车加速度作为输入的系统状态方程为:
通过查阅有关资料,得到了系统极点方程:
这次,我们设定令系统的最大超调量,调节时间,
算出阻尼比为0.707,无阻尼振荡角频率大于9.46所以由公式得解为-7.07+7.07j, -7.07-7.07j,另外去两个极点-10,-10。设极点J=[ -7.07+7.07j, -7.07-7.07j,-10,-10]。求出状态反馈增益阵,使用MATLAB进行极点配置,编写如下代码:
clear all;
A=[ 0 1 0 0;0 0 0 0;0 0 0 1;0 0 29.4 0 ];
B=[ 0 ;1; 0;3 ] ;
C=[ 1 0 0 0;0 0 1 0];
D=[ 0; 0 ];
[num,den]=ss2tf(A,B,C,D,1);
G=ss(A,B,C,D);
Co=ctrb(G);
r=rank(Co);
p=[ -7.07+7.07j, -7.07-7.07j,-10,-10];
K=place(A,B,p);
>> Co
Co =
0 1.0000 0 0
1.0000 0 0 0
0 3.0000 0 88.2000
3.0000 0 88.2000 0
>> r
r =
4
>> K
K =
-340.0333 -116.1019 284.0677 50.0806
由以上结果可以看出该系统是完全能控的,且其状态反馈阵为K=[-340.0333 -116.1019 284.0677 50.0806]。
第六章 Simulink仿真
在MATLAB Simulink 下对系统进行仿真,模型如下图所示:
图5 直线一级倒立摆极点配置控制仿真模型
仿真结果:
从结果可以看出在存在干扰的情况下,系统在1秒内基本上可以恢复到新的平衡位置,结果表明,如此进行了极点配置可以有效的使输出快速的收敛,使得系统稳定。
参考文献
[1] 刘豹,唐万生.《现代控制理论基础》[M] 机械工业出版社,2006
[2] 张德丰.《MATLAB控制系统设计与仿真》[M].清华大学出版社,2014
[3] 王晶,翁国庆,张有兵.《电力系统的MATLAB/SIMULINK仿真与应用》[M] 西安电子科技大学出版社,2017
CDIO项目:一级倒立摆建模与仿真相关推荐
- 直线一级倒立摆数学建模与控制仿真
学习目标: 1.推导直线型一级倒立摆的数学建模公式,得到状态空间表达式和传递函数,并分析系统的稳定性 2.采用控制算法将系统从不稳定调整到稳定状态,并用matlab和simulink仿真实现 学习内容 ...
- MATLAB中SSQJ,基于lqr的一级倒立摆仿真研究
基于lqr的一级倒立摆仿真研究 综合性实验设计题目:直线一级倒立摆班级:0802姓名:郭长春指导老师:张白莉学号:200807211065摘要倒立摆是一个复杂的多变量强祸合不稳定非线性的系统,借助于这 ...
- matlab分析能控条件,一级倒立摆MATLAB仿真、能控能观性分析、数学模型、极点配置.doc...
一级倒立摆MATLAB仿真.能控能观性分析.数学模型.极点配置 题目一: 考虑如图所示的倒立摆系统.图中,倒立摆安装在一个小车上.这里仅考虑倒立摆在图面内运动的二维问题.倒立摆系统的参数包括:摆杆的质 ...
- 极点配置的matlab仿真,一级倒立摆MATLAB仿真能控能观性分析数学模型极点配置
题目一: 考虑如图所示的倒立摆系统.图中,倒立摆安装在一个小车上.这里仅考虑倒立摆在图面内运动的二维问题.倒立摆系统的参数包括:摆杆的质量(摆杆的质量在摆杆中心).摆杆的长度.小车的质量.摆杆惯量等. ...
- [LQR简要快速入门]+[一级倒立摆的LQR控制]
[LQR简要快速入门]+[一级倒立摆的LQR控制] 1. 什么是LQR 2. 公式含义 3. 倒立摆的建模 3.1 线性化 3.2 状态空间建立 4. LQR算法实现 5. MATLAB代码仿真 6. ...
- 倒立摆的数学模型,matlab程序,simulink,c语言控制,一级倒立摆的控制设计
本论文主要研究内容 倒立摆装置被公认为自动控制理论中的典型试验设备,也是控制理论教学和科研中不可多得的典型物理模型.本论文的研究旨在完成这样一系列工作: 介绍倒立摆系统控制的研究发展过程和现状:研究单 ...
- 线性系统大作业——2.二阶倒立摆建模与控制系统设计(上)
文章目录 0.简介 1.建立数学模型 1.1.牛顿运动定律分析 欧拉-拉格朗日方程分析 2.Simulink仿真 3.使用SimMechancis仿真 4.在平衡点附近模型线性化 5.系统能控性.能观 ...
- Matlab直线一级倒立摆控制方法研究
1 研究背景 倒立摆是一个开环不稳定的强非线性系统,其控制策略与杂技运动员顶杆平衡表演的技巧有异曲同工之处,目的在于使得摆杆处于临界稳定状态,是进行控制理论研究的典型实验平台.20世纪50年代,麻省理 ...
- 【基于Simulink+UG NX MCD 一级倒立摆控制系统仿真】建模和分析(一)
前言 倒立摆是比较典型的系统,可以看出火箭发射的简化模型,国内外学者常常通过在倒立摆上开发和测试控制算法. 对倒立摆的控制分为两大任务: 起摆 稳摆 所以本文想通过此项目对自动控制原理进行一个复习与学 ...
最新文章
- 中国电子学会青少年编程能力等级测试图形化一级编程题:无奈的Jaime
- 她取代马斯克成特斯拉新董事长 究竟什么来头?
- 基于ESP32模块利用检测线圈检测车模停止时间,室内视觉AI裁判系统
- java获取正则表达式_JAVA 正则表达式(获取)
- 数据结构-简单选择排序(C语言)
- 探秘小程序(9):父页面与自定义组件交互
- python修改类的属性值_python 四种方法修改类变量,实例对象调用类方法改变类属性的值,类对象调用类方法改变类属性的值,调用实例方法改变类属性的值,直接修改类属性的值...
- Feature Tools:可自动构造机器学习特征的Python库
- MongoDB 去重(distinct)查询后求总数(count)
- 前端学习(659):小结
- [Cypress] Find and Test Focused Input with Chrome’s DevTools in Cypress
- 电大本科c及语言设计形考答案,2020国家开放大学电大《C语言程序设计》网络课形考任务4作业及答案(15页)-原创力文档...
- SPOJ QTREE
- WEB测试到移动测试的转换
- Unity中脚本的生命周期
- 1450F The Struggling Contestant(贪心+思维)
- (ICLR2019)论文阅读-使用深度增强学习框架的基于场景先验知识的视觉语义导航
- 秒会pygame:究极无敌闪烁小球与碰壁反弹程序(完整代码)
- 通讯中断 pc_《幽灵行动:断点》PC配置需求公布 4K画质需RTX2080
- 谁才是真正五道杠?空气净化器滤网分析