Dr_can模型预测控制笔记与代码实现

最近在准备毕业设计,通过看Dr_can的视频来学习一些控制方法,视频链接https://www.bilibili.com/video/BV1cL411n7KV/?spm_id_from=333.788.recommend_more_video.0[这里是图片001]https://www.bilibili.com/video/BV1cL411n7KV/?spm_id_from=333.788.recommend_more_video.0

由于实际需要,后续应该会更新模型预测控制在非线性领域的应用(自适应MPC,增益预定MPC,非线性MPC)

1.最优控制与代价函数

最优控制(optimal control)指的是在一定的约束情况下达到最优状态的系统表现,其中约束情况通常是实际环境所带来的限制,比如说如果你去控制方向盘的转向,方向盘的转动自身是有一个极限位置的,再比如说,对于一个卫星控制系统,三轴输出的力,力矩都有自己的极大值。

而如何去定义一个最优状态呢?首先引入一个比较直观的例子,汽车的转向变道问题:

正常来说,汽车转向变道应当追求乘客舒适度情况,如下图;

但如果考虑到紧急避障的问题,那么答案就完全不同了,如下图,当汽车前方遭遇到一辆校车急刹车时,为了躲开它,汽车必须尽快地向一侧变道,而不考虑舒适度问题。

因此,最优是需要结合系统面临的实际情况得出的概念,对于不同的应用背景,应当设定不同的指标去衡量优劣,因此我们引入代价函数(Cost Function)的概念:

首先,对于单输入单输出系统(SISO)而言,衡量系统性能优劣可以用误差的积累值int_{0}^{t} e^2 dt(越小,代表误差越小,收敛越快)和输入的积累值int_{0}^{t} u^2 dt(越小,代表控制耗能越少,越节约)来衡量。

由此,我们可以定义代价函数:

J=int_{0}^{infty} qe2+ru2 dt

函数中的q,r分别表示一个增益系数,如果q大,表示希望误差变得更小,收敛更快;r大,表示更注重输入累积,更注重节能。

接下来,我们把其推广到多输入多输出系统(MIMO),使用状态空间描述为:(这里我们假设前馈矩阵为0)

dot{X}=AX+BU

Y=CX

此时,衡量系统表现优劣就要引入二次型的知识,我们定义:

J=int_{0}{infty}ETQE+U^TRUdt

这里的Q和R矩阵一般是我们设定的对角矩阵,我们来举一个简单的例子:

egin{pmatrix} dot{x_1} \ dot{x_2} end{pmatrix} =Aegin{pmatrix}x_1 \ x_2 end{pmatrix} +Begin{pmatrix} u_1 \ u_2 end{pmatrix}

egin{pmatrix} y_1 \y_2 end{pmatrix} =egin{pmatrix}x_1 \ x_2 end{pmatrix}

我们假定期望输入是0,那么:

E =egin{pmatrix}y_1-r_1 \ y_2-r_2 end{pmatrix}=egin{pmatrix}x_1 \ x_2 end{pmatrix}<

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值