MPC为什么好
1。处理多入多出
2处理约束
3.知道弯道,会提前减速,而不是边转弯边制动
2.模型预测控制的工作原理
车道保持
delta U
了解卡尔曼滤波
3.模型预测控制器的参数
20-30个采样时间
通常只有最前几个控制时域有显著影响
输入和输出都有硬约束不是一个好的做法
权重
第四部分 自适应、增益调度和非线性MPC
随时间更新模型
状态的个数和约束是不变的,Adaptive MPC
但如果变化了,则需要使用增益调度MPC
还需要设计一种切换算法
第五部分 如何加速运行MPC
模型降阶
选择次优解
第六部分如何使用Simulink和模型预测控制工具箱设计MPC控制器
当在模型预测控制工具箱中点击定义和线性化的时候,会自动调用simulink中的被控对象
比例差异不大
image("Car.jpg")
From Workspace的用法,可以加上时间向量,导入列向量
有时间看帮助
第七部分 使用Simulink和模型预测控制工具箱
随着速度的改变,状态矩阵A也回改变
mpc1 可以看到控制器的状态
Adaptive MPC需要离散的平台
使用技巧,全选,然后创建bus
这种scope
使用这种scope
精确线性化的方法
m = 1575;
Iz = 2875;
lf = 1.2;
lr = 1.6;
Cf = 19000;
Cr = 33000;
Vx=15
Ts=0.1
% Continuous-time model
Ac = [-(2*Cf+2*Cr)/m/Vx, 0, -Vx-(2*Cf*lf-2*Cr*lr)/m/Vx, 0;
0, 0, 1, 0;
-(2*Cf*lf-2*Cr*lr)/Iz/Vx, 0, -(2*Cf*lf^2+2*Cr*lr^2)/Iz/Vx, 0;
1, Vx, 0, 0];
Bc = [2*Cf/m 0 2*Cf*lf/Iz 0]';
Cc = [0 0 0 1; 0 1 0 0];
Dc = zeros(2,1);
% Generate discrete-time model
nx = size(Ac,1);
nu = size(Bc,2);
M = expm([[Ac Bc]*Ts; zeros(nu,nx+nu)]);
A = M(1:nx,1:nx);
B = M(1:nx,nx+1:nx+nu);
C = Cc;
D = Dc;