线性二次型最优控制

本文涉及的李雅普诺夫方法的内容可参见另一篇博文:李雅普诺夫(第二方法)稳定性分析

一、连续时间系统线性二次型最优控制

1.1 问题的提出

控制器设计的目的:
(1)使得闭环系统稳定
(2)使得闭环系统具有给定的动态和稳态性能
控制器设计的方法:极点配置到左半平面;对高阶系统用配置主导极点来实现
问题:根据闭环系统的性能来决定极点配置的位置,但这个性能依赖于模型,不够直接
从阶跃响应来看,系统的动态和稳态性能好坏可以用阴影部分面积大小来衡量:
在这里插入图片描述
用积分来表示:
在这里插入图片描述
其中r0是阶跃输入的幅值。但是积分存在正负抵消问题,不可用。
可以取绝对值,但是绝对值不好处理,一般取平方项来处理:
在这里插入图片描述
如果有多个变量,把所有的平方项加起来之后再积分:
在这里插入图片描述
也可以对不同变量做加权平方和:
在这里插入图片描述
其中
在这里插入图片描述
称为加权矩阵。一般的形式为:
在这里插入图片描述
要求Q是半正定的,为了方便也可以要求Q是正定的。
这个J就是二次型积分性能指标,它衡量了:系统稳定性、上升时间、超调、调节时间、振荡这些指标。
问题:没有考虑控制能量的消耗,即
在这里插入图片描述
多个控制信号,则为:
在这里插入图片描述
也可以加权,并用二次型积分性能指标来表示为:
在这里插入图片描述
综上,同时考虑系统性能和控制能量要求,得到一般的积分性能指标:
在这里插入图片描述
关于系统的其他信息:
连续时间系统状态空间模型:
在这里插入图片描述
控制器u的设计目标:使J尽可能小。其实是优化问题,这就是线性二次型最优控制问题(linear quadratic optimal control)。

1.2 问题的分析

什么情况下这个问题可解?如果可解,怎么设计最优控制器u?如果设计好了u,闭环系统的性能怎么样,能不能保证它是渐近稳定的?
先缩小问题分析的范围:确定控制器的类型(输出反馈/状态反馈/静态反馈/动态反馈)作为前提:选用最简单的静态状态反馈控制器:
在这里插入图片描述
对于上面的系统,在状态反馈控制器作用下,导出的闭环系统是:
在这里插入图片描述
对应的性能指标是:
在这里插入图片描述
最优控制问题整理成:
在这里插入图片描述
如何求解这个优化问题是关键。

1.3 问题求解

正面分析:求解闭环系统方程,然后代入J,再求最小值。但是这种方法太过复杂了。
从目标角度分析:如果J有最小值,那么函数是有限可积的,那么在t趋于无穷的时候,x必然是趋于0,否则积分结果一定是无穷大。因此,闭环系统是渐近稳定的。进一步地,因为渐近稳定,所以存在李雅普诺夫函数:
在这里插入图片描述
其中P是待定的对称正定矩阵。这个V沿闭环系统关于时间的导数应为:
在这里插入图片描述
它必须是负定的。
怎么用这个条件呢?我们在原来的目标函数上做一点改变:
在这里插入图片描述
主要是原来的目标函数里面只有一项含有K,不好处理,现在V的导数里也有K,可以一起处理。进一步:
在这里插入图片描述
因为系统渐近稳定,x趋于0,所以V也趋于0,因此把最后一项写出来:
在这里插入图片描述
因为P在后面会取一个常值,所以要优化的变量依然是K,把所有与K有关的项放在一起:
在这里插入图片描述
这里K的函数结构类似于二次函数,类比二次函数配方法求极值:
在这里插入图片描述
观察上面的式子,R相当于a,K应该减去一个项,作为平方项的一项,比如设:
在这里插入图片描述
和上面的比较,得到:
在这里插入图片描述
取最简单的情况:R、K为可逆阵,则
在这里插入图片描述
代入得:
在这里插入图片描述
在这里插入图片描述
因此,取
在这里插入图片描述
的时候,带K的部分取最小值为0:
在这里插入图片描述
由于P还没确定,所以K不能说是求出来了,根据现在的目标函数,可以选择合适的P,满足下面的式子,使得当前的目标也最小:
在这里插入图片描述
这个方程是riccati方程。对比李雅普诺夫函数对应的李雅普诺夫方程:
A T P + P A = − Q A^TP+PA=-Q ATP+PA=Q
可以看到,现在的式子相当于是让Q减小了。而Q反应了能量衰减的速度,说明在要求控制器最优的时候,能量衰减的速度更慢了。为了节约输入的能量,而牺牲了衰减速度,这也体现了二者的平衡。
现在的性能指标最小值为:
在这里插入图片描述
综上,整体的求解步骤为:
(1)求解riccati方程,如果有一个对称正定的解P,那么
(2)得到最优解
在这里插入图片描述
(3)最优闭环控制系统
在这里插入图片描述
(4)性能指标最小值为
在这里插入图片描述
问题:riccati方程未必有对称正定解P。就算有解,得到的P是否能成为闭环系统的李雅普诺夫矩阵,即最优闭环控制系统是否渐近稳定?
解决方案:
定理:如果(A,B)能控,则riccati方程存在对称正定解P。因此状态反馈二次型最优控制问题可解。
利用这个P,可以构造李雅普诺夫函数:
在这里插入图片描述
沿闭环系统轨迹线求导:
在这里插入图片描述
因此,闭环系统是稳定的。
补充:稳定化控制器的设计方法:
(1)基于李雅普诺夫稳定性理论的设计方法
适用于:时变、非线性系统
可推广到模糊控制、鲁棒控制、非线性控制
(2)极点配置方法
适用于:线性定常系统
(3)线性二次型最优控制方法

1.4 MATLAB函数

在这里插入图片描述

1.5 例题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、离散时间系统线性二次型最优控制

2.1 自治系统

自治系统的离散时间模型:
在这里插入图片描述
假设系统渐近稳定,即A的特征值都在单位圆内。系统初态x(0)已知。性能指标:
在这里插入图片描述
问题:如何计算系统的性能指标值?直接计算:求无穷级数和,有点烦,只适合计算机。
解决方案:
既然系统是渐近稳定的,就有对任意正定矩阵Q,李方程
在这里插入图片描述
有对称正定解P,可以构造李函数:
在这里插入图片描述
和它的导数:
在这里插入图片描述
把李方程
在这里插入图片描述
代入指标函数得到:
在这里插入图片描述
好处:通过求解李方程,就可以求出无穷级数的和。

2.2 闭环控制系统

系统模型:
在这里插入图片描述
二次型性能指标:
在这里插入图片描述
定理:如果(A,B)能控,那么离散系统线性二次型最优控制问题有解,最优控制器是
在这里插入图片描述
P矩阵满足
在这里插入图片描述
这是离散系统的riccati方程。

三、参考文献

[1] 田玉平,蒋珉,李世华.自动控制原理[M].北京:科学出版社,2006
[2] 俞立.现代控制理论 浙江工业大学 https://www.bilibili.com/video/BV1a4411j7GF

  • 25
    点赞
  • 130
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
下面是一个简单的线性二次型最优控制的MATLAB代码示例: 首先,我们需要定义系统的动态方程和控制输入方程。在这个例子中,我们使用一个简单的二阶系统: ``` % 系统参数 m = 1; k = 1; % 系统动态方程 A = [0 1; -k/m 0]; B = [0; 1/m]; ``` 接下来,我们需要定义成本函数。在这个例子中,我们使用一个标准的二次型成本函数: ``` % 成本函数参数 Q = [1 0; 0 1]; R = 1; % 成本函数 cost = @(x, u) x'*Q*x + u'*R*u; ``` 接着,我们需要定义时间离散化的步长和仿真的时间长度: ``` % 时间离散化步长 dt = 0.1; % 仿真时间长度 T = 10; ``` 然后,我们可以使用线性二次型最优控制器来计算最优控制输入: ``` % 求解最优控制输入 [t, x, u] = lqr_sim(A, B, cost, dt, T); ``` 最后,我们可以绘制系统状态和控制输入随时间的变化曲线: ``` % 绘图 figure; subplot(2, 1, 1); plot(t, x(1, :)); hold on; plot(t, x(2, :)); ylabel('States'); legend('x', 'v'); subplot(2, 1, 2); plot(t, u); ylabel('Control input'); xlabel('Time'); ``` 完整的代码如下所示: ``` % 系统参数 m = 1; k = 1; % 系统动态方程 A = [0 1; -k/m 0]; B = [0; 1/m]; % 成本函数参数 Q = [1 0; 0 1]; R = 1; % 成本函数 cost = @(x, u) x'*Q*x + u'*R*u; % 时间离散化步长 dt = 0.1; % 仿真时间长度 T = 10; % 求解最优控制输入 [t, x, u] = lqr_sim(A, B, cost, dt, T); % 绘图 figure; subplot(2, 1, 1); plot(t, x(1, :)); hold on; plot(t, x(2, :)); ylabel('States'); legend('x', 'v'); subplot(2, 1, 2); plot(t, u); ylabel('Control input'); xlabel('Time'); ``` 需要注意的是,这个示例只是一个简单的例子,实际应用中需要根据具体的系统和成本函数进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

故人西迁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值