MPC——理论知识(1)

    模型预测控制重构了追踪轨迹作为优化问题的任务。优化问题的解决方案是最佳的轨迹。模型预测控制涉及模拟不同的执行器输入,预测最终的轨迹并以最小的成本选择该轨迹。当前状态和参考轨迹是已知的。在每个时间步骤中,制动器输入被优化以便最小化预测轨迹的成本。一旦找到最低成本的轨迹,执行第一组致动器命令,其余部分被丢弃,并且在计算新的最佳轨迹时在每个时间步重复。

  模型预测控制的3个关键步骤:

(1)预测模型:预测模型是模型预测控制的基础。主要功能是根据对象的历史信息和未来输入,预测系统未来的输出。对于模型预测的形式没有严格的限定,状态方程、传递函数这类传统的模型都可以作为预测模型。对于线性稳定系统,阶跃响应、脉冲响应这类非参数模型,也可以直接作为预测模型使用。

(2)滚动优化:预测模型控制通过某一性能指标的最优来确定控制作用,但优化不是一次离线进行,而是反复在线进行的。这就是滚动优化的含义,也是模型预测控制区别于传统最优控制的根本点。

(3)反馈校正:在新的采样时刻,首先检测对象的实际输出,并利用这一实时信息对基于模型的预测结果进行修正,然后进行新的优化。

控制过程中始终存在一条期望轨迹。以时刻k作为当前时刻(坐标系纵轴所在的位置),控制器结合当前的测量值和预测模型,预测系统未来一段时域内[k,k+N_{p} ](也被称为预测时域)系统的输出,如曲线2所示。通过求解满足目标函数的以及各种约束的优化问题,得到控制时域内一系列的控制序列,如图中矩形波4所示(从坐标系纵轴开始),并将该控制序列的第一个元素作为受控对象的实际控制量。当下一个时刻k+1时,重复上述过程,如此滚动地完成一个个带约束的优化问题,以实现对被控对象的持续控制。

线性时变模型预测控制算法

  根据所采用模型的不同,模型预测控制主要包括动态矩阵控制(DMC)、模型算法控制(MAC)、广义预测控制(GPC)等。同时,在现代控制理论中广泛使用的状态空间模型,同样可以应用于模型预测控制中。

(1)预测方程

首先考虑以下的离散线性化模型:

x(k+1)=A_{k,t} x(k)+B_{k,t}u(k)

设定

\xi (k\vert t)= \begin {bmatrix}        x(k|t)  \\      u(k-1|t)       \end{bmatrix}

可以得到一个新的状态空间表达式:

\xi (k+1\vert t)=\tilde{A}_{k,t} \xi (k\vert t)+\tilde{B}_{k,t} \Delta u (k\vert t)                   

\eta (k\vert t)=\tilde{C}_{k,t} \xi (k\vert t)

其中

\Delta u(k|t)=u(k|t)-u(k-1|t)

所以

x(k+1|t)=A_{k,t} x(k|t)+B_{k,t}u(k-1|t) +B_{k,t}\Delta u(k|t)

可得:

\tilde{A}_{k,t}=\begin {bmatrix}        A(k|t) &  B(k|t) \\      0_{m\times n}  & I_{m}      \end{bmatrix}

\tilde{B}_{k,t}=\begin {bmatrix}       B(k|t) \\      I_{m}      \end{bmatrix}

\tilde{C}_{k,t}=\begin {bmatrix}       C_{k,t}  & 0\\     \end{bmatrix}

为了进一步简化计算,做出如下假设:

\tilde{A}_{k,t}=\tilde{A}_{t},     k=t,...,t+N-1

\tilde{B}_{k,t}=\tilde{B}_{t},     k=t,...,t+N-1

如果系统预测时域为N_{p} ,控制时域为N_{c} ,那么预测时域内的状态量和系统输出量可以用以下算式计算:

\xi (t+Np\vert t)=\tilde{A}^{N_{p}}  _{t} \xi (t\vert t)+\tilde{A}^{N_{p}-1}  _{t} \tilde{B}_{t}  \Delta u (t\vert t)+...+\tilde{A}^{N_{p}-N_{C}-1}  _{t} \tilde{B}_{t}  \Delta u (t+N_{c} \vert t)

\eta  (t+N_{p} \vert t)=\tilde{C} _{t} \tilde{A}^{N_{p}} \xi (t\vert t)+ \tilde{C} _{t} \tilde{A}^{N_{p}-1}\tilde{B}_{t}  \Delta u (t\vert t)+...+\tilde{C} _{t} \tilde{A}^{N_{p}-N_{c} -1}\tilde{B}_{t}  \Delta u (t+N_{c} \vert t)

为了使整个关系更加明确,将系统未来时刻的输出以矩阵的形式表达:

Y_{(t)}=\Psi  _{t}  \xi (t|t)+\Theta _{t}\Delta U(t)

式中:

Y (t)= \begin {bmatrix}        \eta ({t+1|t})   \\       \eta ({t+2|t})   \\ ...\\       \eta ({t+N_{c} |t})   \\...\\       \eta ({t+N_{p} |t})   \\\end{bmatrix}

\Psi (t)= \begin {bmatrix}        \tilde{C}_{t}\tilde{A}_{t}   \\       \tilde{C}_{t}\tilde{A}_{t}^2    \\ ...\\       \tilde{C}_{t}\tilde{A}_{t}^{N_{c}}     \\...\\       \tilde{C}_{t}\tilde{A}_{t}^{N_{p}}     \\\end{bmatrix}

\Delta U (t)= \begin {bmatrix}       \Delta u(t|t)   \\      \Delta u(t+1|t)   \\ ...\\      \Delta u(t+N_{c} |t)   \\\end{bmatrix}

\Theta (t)= \begin {bmatrix}        \tilde{C}_{t}\tilde{B}_{t}  & 0 & 0 & 0 \\       \tilde{C}_{t}\tilde{A}_{t}\tilde{B}_{t} & \tilde{C}_{t}\tilde{B}_{t} &0 &0   \\ \cdots & \cdots & \ddots & \cdots\\       \tilde{C}_{t}\tilde{A}_{t}^{N_{c}-1}\tilde{B}_{t}  &        \tilde{C}_{t}\tilde{A}_{t}^{N_{c}-2 }\tilde{B}_{t}  & \cdots & \tilde{C}_{t}\tilde{B}_{t} \\       \tilde{C}_{t}\tilde{A}_{t}^{N_{c}}\tilde{B}_{t}  &        \tilde{C}_{t}\tilde{A}_{t}^{N_{c}-1 }\tilde{B}_{t}  & \cdots &  \tilde{C}_{t}\tilde{A}_{t}\tilde{B}_{t} \\ \cdots & \cdots & \ddots & \cdots\\       \tilde{C}_{t}\tilde{A}_{t}^{N_{p}-1}\tilde{B}_{t}   &        \tilde{C}_{t}\tilde{A}_{t}^{N_{p}-2}\tilde{B}_{t}  & \dots        &\tilde{C}_{t}\tilde{A}_{t}^{N_{p}-N_{c}-1}\tilde{B}_{t}    \\\end{bmatrix}

通过上式可以清楚看到,在预测时域内的状态量和输出量都可以通过系统当前的状态量\xi (t|t)和控制时域内的控制增量\Delta U(t)计算得到。这也就是模型预测控制算法中“预测”功能的实现。

(2)优化求解

    实际上,系统的控制增量是未知的,只有通过设定合适的优化目标,并对其进行求解,才能得到控制时域内的控制序列。

可以把控制增量作为目标函数的状态量,优化目标函数如下形式:

J(\xi (t),u(t-1),\Delta U(t))=\sum_{i=1}^{N_{p}}||\eta (t+i|t)-\eta_{ref}(t+i|t)||^2_{Q} +\sum_{i=1}^{N_{c}-1}||\Delta u(t+i|t)||^2 _{R}

其中,第一项反映了系统对参考轨线的跟随能力,第二项反映了对控制量平稳变化的要求。Q和R为权重矩阵,整个表达式的功能是使系统能够尽快且平稳地跟踪上期望的轨迹。同时,在实际控制系统中,往往需要满足系统状态量以及控制量的一些约束,一般如下:

控制量约束:

u_{min}(t+k)\leq  u(t+k)\leq u_{max}(t+k),k=0,1,\cdots,N_{c}-1

控制量约束:

\Delta u_{min}(t+k)\leq \Delta u(t+k)\leq \Delta u_{max}(t+k) k=0,1,\cdots,N_{c}-1

输出约束:

y_{min}(t+k) \leq y(t+k) \leq y_{max}(t+k),k=0,1,\cdots,N_{c}-1

上面三个公式,形成了一个完整的优化目标表达式。通过求解这个带约束条件的优化目标,就能得到未来一段时间的控制序列。然而,由于系统的模型是实时改变的,并不能保证每个时刻该优化目标都能得到可行解。因此,有必要对优化目标进行相应的处理。比普遍并且证明有效的方式是在优化目标中加入松弛因子,如下所示:

J(\xi (t),u(t-1),\Delta U(t))=\sum_{i=1}^{N_{p}}||\eta (t+i|t)-\eta_{ref}(t+i|t)||^2_{Q} +\sum_{i=1}^{N_{c}-1}||\Delta u(t+i|t)||^2 _{R} +\rho \varepsilon ^2

式中,\rho 为权重系数,\varepsilon 为松弛因子。

将系统输出的状态空间表达式代入优化目标式,并且将预测时域内的输出量偏差表示为:

E(t)=\Psi (t)\tilde{\xi (t|t)}-Y_{ref}(t),Y_{ref}=[\eta _{ref}(t+1|t),\cdots,\eta _{ref}(t+N_{p}|t)] ^T

经过相应的矩阵计算,s.t.  \Delta U_{min} \leq \Delta U_{k} \leq \Delta Umax,=t,\cdots,t+H_{e-1}可以将优化目标调整为:

J(\xi (t),u(t-1),\Delta U(t))=[\Delta U(t)^T,\varepsilon  ]^T H_{t} [\Delta U(t),\varepsilon ]+G_{t}[\Delta U(t)^T ,\varepsilon ] +P_{t}

式中:

H_{t} = \begin {bmatrix}         \tilde{\Theta} _{t}Q_{e}\Theta_{t}+R_{e}   & 0  \\ 0 & \rho     \\\end{bmatrix}

G_{t}=\begin {bmatrix} 2E(t)^TQ_{e}\Theta_{t} & 0 \\\end {bmatrix}

P_{t}=E(t)^TQ_{e}E(t)

在式中,P_{t}为常量,因此模型预测控制在每一步的带约束优化求解问题都等价于求解如下的二次规划问题:

min[\Delta U(t)^T,\varepsilon  ]^T H_{t} [\Delta U(t),\varepsilon ]+G_{t}[\Delta U(t)^T ,\varepsilon ]

s.t. \Delta U_{min} \leq \Delta(k) \leq \Delta U_{max},k=t,\cdots,t+H_{e}-1

Y_{min}-\varepsilon  \leq \Psi _{t}\xi (t|t)+\Theta _{t}\Delta U(t)\leq Y_{max}+\varepsilon

\varepsilon \geq 0

(3)反馈机制

    在每个控制周期内完成对上式的求解后,得到了控制时域内的一系列控制输入增量:

\Delta U_{t}^* =[\Delta u_{t}^*,\Delta u_{t+1}^*,\cdots,\Delta u_{t+N_{c}-1}^*]

    根据模型预测控制的基本原理,将该控制序列中的第一个元素作为实际的控制输入增量作用于系统,即:

u(t)=u(t-1)+\Delta u_{t}^*

    系统执行这一控制量直到下一时刻。在新的时刻,系统根据状态信息重新预测下一段时域的输出,通过优化过程得到一个新的控制增量序列。如此循环,直到系统完成控制过程。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,794评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,050评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,587评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,861评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,901评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,898评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,832评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,617评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,077评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,349评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,483评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,199评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,824评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,442评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,632评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,474评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,393评论 2 352

推荐阅读更多精彩内容