7.1 模型预测控制MPC


7.1 模型预测控制MPC

本节摘要:MPC 每个采样拍都用模型预测未来有限时域的行为,在线解一个带约束的优化问题,只执行最优控制序列的第一步,下一拍滚动重来。三要素是预测模型、滚动优化、反馈校正。本节拆解三要素、用预测工具箱搭一个带硬约束的 MPC,并讲三个整定参数的语义。

承接第六章离散域:MPC 是离散世界原住民;承接第四章 LQR:无约束、时域无穷时 MPC 退化为 LQR——它是"带约束、有限时域的 LQR 滚动版"。

一、为什么 MPC 能吃下约束

第四章 LQR 的最优解是一次性算出的线性律,控制量要多少给多少——执行器说"给不出"时,最优性当场作废。MPC 换了个问法:每一拍重新解一个有限时域的优化——预测未来 P 步输出,找未来 M 步控制量使性能指标最小,约束(控制量上限、变化率上限、输出禁区)直接写进优化问题的不等式里。解出的是序列,但只执行第一步,下一拍带着新的测量重新来过。这套"预测-优化-执行一步-滚动"看似浪费(解 N 步只用 1 步),换来三样好处:约束天然处理、多变量耦合统一进一个优化、模型可以是阶跃响应这类非参数形式(工业友好)。

三要素各自的职责:预测模型回答"按这个控制序列未来会怎样";滚动优化回答"哪个序列最划算";反馈校正回答"模型说错了怎么办"——用当前测量的预测误差修正下一轮初值,闭环由此建立。没有校正的 MPC 是开环的重演。

二、搭一个带约束的 MPC

对象:双容水箱液位,二阶加延迟的离散模型。执行器约束:阀门增量每拍不超过 10%,阀门绝对开度 0 到 100。控制目标:液位跟踪设定且不碰上限(防溢出的输出软约束)。MATLAB 预测工具箱流程:

Ts = 2; % 采样周期2秒 Gz = c2d(tf(1.2, conv([20 1],[30 1]))*tf(1,'InputDelay',4), Ts); Plant = ss(Gz); mpcobj = mpc(Plant, Ts); % 默认预测时域10步 控制时域3步 mpcobj.Weights.Output = 1; % 输出跟踪权重 mpcobj.Weights.InputRate = 0.1; % 阀门动作惩罚(省着动) mpcobj.MV = struct('Min',0,'Max',100,'RateMin',-10,'RateMax',10); yref = 5; % 目标液位 [y,t,u] = sim(mpcobj, 120, [], [yref]); subplot(2,1,1); plot(t,y); subplot(2,1,2); stairs(t,u); % 输出:液位约100秒爬到5并稳住;阀门前期顶在增速上限10%每拍, % 后期平滑回开度稳态值约62——约束在优化里被显式遵守, % 而不是像PID那样饱和了再说

整定三参数的语义要吃透:预测时域 P 至少覆盖对象主要动态(含延迟),太短则短视、约束看到时已来不及;控制时域 M 常取 P 的十分之一到三分之一,M 越大跟踪越激进、计算越贵;权重是 LQR 的 Q、R 翻版——输出权重对控制权重(及变化率权重)的比值决定软硬程度。做个权重敏感性扫描:

for wr = [0.01 0.1 1] m = mpcobj; m.Weights.InputRate = wr; [yy,~,uu] = sim(m, 120, [], [5]); fprintf('Rate权重%.2f: 稳态开度=%.1f 超调=%.1f%%\n', wr, ... uu(end), 100*max(yy)/5-100); end % 输出(近似): % Rate权重0.01: 动作猛,超调约15% % Rate权重0.10: 适中,超调约5% % Rate权重1.00: 动作懒,超调≈0 但爬升明显变慢 % 权重即定价:动阀门多贵,自己声明

三、无约束 MPC 与 LQR 的血缘

把约束拿掉、时域拉到无穷、代价取二次型,MPC 的解趋于稳态 LQR 增益。这层血缘有工程价值:先用 LQR 思路定权重量级(Bryson 法则),再放进 MPC 框架跑约束,比盲调三个参数快得多。反过来,MPC 相对 LQR 的增量价值全部来自"有限时域加约束":前馈进优化(可测扰动的未来也一起预测)、约束处理、多变量协调——这三样是它在炼化、空分、水泥行业统治级普及的原因。代价也明确:每拍解一次优化的算力与时间,快回路(毫秒级伺服)传统上不用它,但嵌入式求解器与显式 MPC(把优化离线解成分段仿射律)正在把边界往外推。

四、失稳与退化:MPC 的翻车模式

三种高发事故。模型失配:预测模型与实物差太远,校正项补不回来,输出振荡——投运前先做闭环辨识,投运后定期用飞升数据复检模型。约束不可行:设定值给到物理可达域之外,优化问题无解,商用求解器会进应急模式。对策是输出约束设软约束并加大松驰罚金,控制量硬约束永远保留。终端稳定缺失:预测时域太短时滚动闭环可能不稳定(有限时域最优不保证闭环稳定),商用实现内置终端代价与收缩约束兜底,自研时必须补这一课。

图 MPC 滚动优化循环

图 MPC 滚动优化循环

五、显式 MPC 与算力边界

每拍解优化的算力需求把传统 MPC 挡在快回路之外。显式 MPC 提供旁路:约束优化在状态空间的多面体分区内可以离线解成一组线性增益——在线只需查分区、做一次矩阵乘。代价是分区数随问题规模指数膨胀,两三个状态、少量约束的问题最合适。另一条路线是嵌入式二次规划求解器的迭代加速,近年在电机伺服、无人机姿态这类毫秒级回路里已有落地。两条路线的共同前提仍是:模型够准、约束建模诚实——算力解决了快,解决不了错。

本节要点回顾

  • 三要素:预测模型答未来、滚动优化答最优、反馈校正答失配,缺一即跛脚;
  • 约束处理:控制量硬约束、输出量软约束加罚金,是 MPC 相对固定控制律的本质增量;
  • 血缘关系:无约束无穷时域即 LQR,可用 LQR 思路定权重再套 MPC 框架;
  • 整定语义:P 防短视、M 定自由度、权重即定价,与 Q、R 一脉相承;
  • 三大翻车源:模型失配、不可行设定、终端稳定缺失,各有标准预防动作。

下一节处理"模型会变"的现实:让控制器自己追参数。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U