- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
目录
TOC \o 1-5 \h \z 0. 前言 1
\o Current Document 1. 线性二次最优控制 LQR 基本理论 1
\o Current Document 2. 方案设计 2
\o Current Document 3. 软件编程 3
\o Current Document 4. 系统调试和结果分析 4
\o Current Document 6. 结论及进一步设想 6
\o Current Document 参考文献 6
\o Current Document 课设体会 8
直线一级倒立摆LQR控制器的设计
姬晓龙 沈阳航空航天大学自动化学院
摘要:在控制理论上倒立摆使许多抽象的概念可以直观的表达出来。无论是在实践还是 理论上都具有深刻的意义。可以用拉格朗日方法建模,设计倒立摆二次型最优控制器, 通过MATLAB仿真和实际系统实验,实现对倒立摆的稳定控制。建立模型,确定参数, 进行控制算法设计、系统调试和分析等步骤实现。
关键词:二次型;倒立摆;稳定控制
0.刖言
倒立摆的最初研究开始于20世纪50年代,由美国麻省理工学院的控制论专家根据火 箭发射助推器原理设计;而后人们有参照双足机器人控制问题研究出二级倒立摆设备, 从
而提高了检验控制论和方法的能力,也拓宽了检验范围。
在控制理论上倒立摆使许多抽象概念如系统稳定性、可控性、系统收敛速度和系统抗 干扰能力等,都可以直观的表现出来。同时由于倒立摆系统的高阶次、不稳定、多变量、 非线性和强耦合特性,许多现代控制理论的研究人员一直将它视为研究对象, 并不断从中
发掘出新的控制理论和控制方法。
课程设计要求:熟悉倒立摆实际控制系统;对倒立摆系统建模;进行控制算法设计; 进行系统调试和分析;利用 matlab高级语言编程,实现倒立摆稳定控制;实时输出波形, 得出结论。
线性二次最优控制LQR基本理论
LQR控制器是应用线性二次型最优控制原理设计的控制器。它的任务在于,当系统 状态由于任何原因偏离了平衡状态时,能在不消耗过多能量的情况下,保持系统状态各分 量仍接近于平衡状态。线性二次型最优控制研究的系统是线性的或可线性化的, 并且性能
指标是状态变量和控制变量的二次型函数的积分。
线性二次最优控制LQR基本原理为,由系统方程:
X AX Bu
确定下列最佳控制向量的矩阵 K:
K*x t
使得性能指标达到最小值:
J ° X*QX u*Rudt
式中 Q 正定(或正半定)厄米特或实对称阵
R ■为正定厄米特或实对称阵
下面是最优控制LQR控制原理图:
Q和R确定了误差和能图1最优控制LQR控制原理图
Q和R确定了误差和能
对线性系统:
X AX Bu
Y CX
根据期望性能指标选取Q和R,利用MATLAB命令lqr就可以得到反馈矩阵K的值
K=lqr(A,B,Q,R)
改变矩阵Q的值,可以得到不同的响应效果,Q值越大(在一定范围之内),系统 抵抗干扰的的能力越强,调整时间越短。但是 Q不能过大。
方案设计
直线一级倒立摆系统的系统状态方程:
TOC \o 1-5 \h \z 0 0 29.4 0
1 0 0 0 X
0 0 10
四个状态量X, X,, 分别代表小车位移、小车速度、摆杆角度和摆杆角速度, 输出y x,包括小车位置和摆杆角度。设计控制器使得当给系统施加一个阶跃输入时, 摆杆会摆动,然后仍然回到垂直位置,小车可以到达新的指定位置。
假定全状态反馈可以实现(4个状态量都可测),找出确定反馈控制规律的向量 K,用 MATLAB中的lqr函数,可以得到最优控制器对应的 K。Lqr函数允许选择两个参数 R和 Q,这两个参数用来平衡输入量和状态量的权重。假定 R=1,Q=C*C.其中Q“代表小车位
置权重,而Q3,3是摆杆角度的权重,输入R是1。
软件编程
程序如下:clear;
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 ];
Q11=1000; Q33=200;
Q=[Q11 0 0 0;
0 0 0 0;
0 0 Q33 0;
0 0 0 0];
R = 1;
K = lqr(A,B,Q,R)
Ac = [(A-B*K)]; Bc = [B]; Cc = [C]; De = [D];
T=0:0.005:5;
U=0.2*o nes(size(T));
[Y,X]=lsim(Ac,Bc,Cc,Dc,U,T);
plot(T,X(:,1),-);hold on;
plot(T,X(:,2),-.);hold on;
plot(T,X(:,3),.);hol
原创力文档


文档评论(0)