最优控制作业

单级倒立摆的LQR 控制

一、问题描述

倒立摆是一种典型的快速、多变量、非线性、绝对不稳定、非最小相位系统。由于它的行为与两足机器人行走有极大的相似性,因而对其进行研究具有重要的理论和实践意义。

线性二次型最优控制设计是在状态空间技术的基础上设计一个最优的动态控制器——即LQR控制器。线性二次型最优控制问题其目标函数是属于二次型形式的最优控制。这种控制问题在现代控制理论中占有非常重要的地位,越来越受到控制界的高度重视,这是因为它的最优解具有标准的解析式,它不局限于某种特定物理系统,而且经过人们的多次实验,证明这样可以很容易获得解析解,且可以形成简单的线性状态反馈控制规律,容易构成最优反馈控制,在工程中便于实现,所以广泛应用于实际的工程问题中[1,2]。

本文对单级倒立摆进行LQR控制,建立其单级倒立摆数学模型,设计LQR控制器。

二、解决方案

1 单级倒立摆系统数学模型的建立

单级倒立摆系统的物理模型可以描述为:在光滑水平平面上摆放着滑轨,在滑轨上放置着以左右自由移动的小车,一根视为刚体的摆杆通过其底端的一个不计摩擦的固定端点与小车相连构成一个倒立摆。单级倒立摆可以在平行于滑轨的范围内随意摆动。倒立摆控制系统的目的是在系统的初始状态不为零时,由设计的控制器对小车作用一个力(控制量),使小车停在给定位置且倒立摆的摆杆仍然保持竖直向上状态。当小车静止的情况下,由于受到重力的作用,导致倒立摆的稳定性发生不可逆转的破坏而使倒立摆无法复位,所以小车在平行于滑轨的方向上产生加速度。根据牛顿力学原理,这里的作用力(控制量)与小车位移对时间的二阶导数存在线性关系,所以说单级倒立摆系统是一个非线性系统[2,4]。在各种摩擦忽略不计之后,可将单级倒立摆系统抽象成小车和均匀质量摆杆组成的系统,单级倒立摆的结构简图如图1所示。

图1 单级倒立摆的结构简化模型

设小车质量为M,摆杆质量为m,摆杆长为l,F为作用于小车上的外力,μ为小车摩擦数,I为摆杆转动惯量,x为小车的位移,摆杆角度为?,重力加速度为g。在建立数学模型之前,先进行几点假设:(1)将倒立摆的摆杆视为质量分布均匀的刚体;(2)除小车与滑轨之间的摩擦外其它摩擦力可以忽略。通过对倒立摆分析,可得如下系统动力学方程组

??cos??F ??0.5ml?2sin??0.5ml??M?m??x12???cos??0.5mglsin??0 ml??0.5ml?x3显然,这是一个非线性方程组。为了便于对控制器的设计需要将该方程组进行线性化。考虑倒立摆动态过程中摆角在平衡点??0处附近的微小变化。则有

?2?0,sin???,cos??1,即方程组可简化为:

???F ??0.5ml??M?m??x12????0.5mgl??0 ml??0.5ml?x3令作用力、位移与角度参数为时间的函数有

???t??2?F?t???M?m???? ?xml2lml?????g???0 ???F?t???M?m??xx32

于是最终得到方程组为

43gm???t??xF?t????t?

m?4Mm?4M???t????66g?m?M?F?t????t? l?m?4M?l?m?4M??xx?,u?F?t?,则系统状态空间表达式为即系统的状态变量为????????Ax?Bu?x,代入仿真数据取M = 1.00kg, m=0.10kg, l= 0.5 m,g?9.8ms2后??y?Cx得到系统的状态空间数学模型为

???0??100?????0????????????????31.550000??????2.927???u ?????0????001x0?x??????????????????0.717000x0.976?x????????以小车位移x和摆角?为输出变量的系统的输出方程式为

????????0?????1000???y???x?????0010???x????0??u

?????????x?????0??31.550其中得到A??0??-0.717?100000000??0????0?-2.927?1000????,B??,C??,u?F?t? ????10?0010?????0.976?0????2 线性二次型最优控制器设计

控制器设计的前提主要看系统是否能控,所以在设计控制器之前要进行能控性分析。可以由能控性矩阵M??BABA2BA3B? 的秩来判断是否能控,或利用Matlab中可控性矩阵的ctrb命令来计算,可以得出Rank( M ) = 4,可知单级倒立摆系统是可控的,因此可以对倒立摆系统进行LQR控制器的设计,使该系统稳定。线性二次型最优控制是一种应用较多的最优控制系统设计方法,其对象是现代控制理论中以状态空间形式给出的线性系统,线性二次型最优设计指旨在寻求最优控制u?t?,使二次型目标函数 J 取最小值[5,6]。根据单级倒立摆系统的状态方程,由于终端时间tf=∞,系统的二次型性能指标为

J?1tf2?t0?e?t?Qe?t??u?t?Ru?t??dt

TT式中:e?t??yr?y?t?, yr为系统期望输出;Q,R分别为输出误差变量和输入变量的加权矩阵,决定了系统误差与控制能量消耗之间的相对重要性(Q为半正定对称矩阵; R 为正定对称矩阵)。找一状态反馈控制律: u (t) = -Kx(t),使得二次型性能指标最小化。

为使 J 最小,由最小值原理得到最优控制为

u*?t???R?1BP?t?x?t?

T式中:矩阵P?t?为微分Riccatti方程:P?t???P?t?A?ATP?t??P?t?BR?1BTP?t??Q的解。

如果令终止时间tf=∞,P?t?为一个常数矩阵,且P?t?= 0,即 Riccatti 方程简化为

?P?t?A?ATP?t??P?t?BR?1BTP?t??Q?0

对于最优反馈系数矩阵K?R?1BTP?t?

Matlab仿真软件控制系统工具箱中提供了解决线性二次型最优控制问题的函数,可使用 lqr (A, B , Q , R)命令来求取K 。由于输入变量 u 为一维向量,所以 R 为1 × 1维矩阵,可取 R = 1;这里关键是选择加权矩阵Q , 一般 Q 越大, 系统达到稳态所需时间越短,反之亦然,这里经过多次仿真,选择下面的 Q 值比较理想。

该系统线性

?500000????0000? Q??001000????0000???二次型最优状

态反馈矩阵

K???54.916?9.101?10.000?9.489?,其中n?t?为外界作用在小车上的力,

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4