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 一级倒立摆控制系统仿真】建模和分析(一)
前言 倒立摆是比较典型的系统,可以看出火箭发射的简化模型,国内外学者常常通过在倒立摆上开发和测试控制算法. 对倒立摆的控制分为两大任务: 起摆 稳摆 所以本文想通过此项目对自动控制原理进行一个复习与学 ...
最新文章
- NIPS改名为NeurIPS的原因
- ⑨①-成功者的路永远都是相通的
- python 判断字母大小写
- ASP.NET 3.5技术专题发布
- .NET Remoting程序开发入门篇(五)
- 找规律 百度之星资格赛 1001 大搬家
- 原好未来CFO罗戎加盟百度 出任百度集团CFO
- Spring中的ApplicationContextAware使用
- 使用ImageView引起Missing contentDescription attribute on image的问题
- Delphi 重启应用程序
- 系统查看PSD缩略图
- 佳博GP2120TU标签打印机 安装和使用教程(PC)
- 中台战略=微服务+服务治理+组织架构
- amcharts属性
- 海格里斯智能自动化立体库仓储管理系统 物流生鲜电商冷链立库应用
- 在VSCode终端中安装Gulp包出现 * package is looking for funding run `npm fund..和无法加载文件,在此系统上禁止运行脚本的错误提示一步到位解决
- html css工资条样式,JS+CSS3交互式拖动滑块选择工资条代码
- FreeRTOS原理剖析:空闲任务分析
- 输入框输入手机号并匹配历史记录
- 目标检测—RCNN系列
热门文章
- 达达开放平台php,达达开放平台对接的使用教程
- java 反射 set方法_java 反射调用set方法
- HTML+CSS大作业:使用html设计一个简单好看的公司官网首页 浮动布局
- 高通量测序与杂交优势
- cnpm : 无法加载文件 C:\Users\azhao\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本 问题解决
- 游戏开发中为什么要控制模型的面数
- C# winform中打开网页的方法
- 暖火柴打一数字_火柴里的天堂
- rd 删除 长目录_长时间的反馈循环如何伤害您的rd
- 这个公式,让你的学习更高效 (L先生说-微信公众号)