动态矩阵控制算法DMC
动态矩阵算法在水箱液位控制中的应用

动态矩阵算法在水箱液位控制中的应用引言:在工业生产和日常生活中,对于水箱液位控制的控制精度和稳定性要求越来越高。
水箱液位的控制算法起着至关重要的作用。
动态矩阵控制(Dynamic Matrix Control,DMC)算法是一种常用于过程控制的先进控制方法。
本文将探讨动态矩阵算法在水箱液位控制中的应用,包括算法原理、控制系统建模、控制器设计和实验验证等方面。
一、算法原理动态矩阵控制算法是一种模型预测控制(Model Predictive Control,MPC)方法,它基于离散时间多步骤预测模型。
其核心思想是通过对系统动态行为进行建模和预测,计算出最优控制方案,并根据实际反馈信息进行修正,以实现对系统的良好控制效果。
动态矩阵控制算法的基本步骤如下:1.系统建模:根据水箱液位控制过程的特点,建立系统的动态模型。
通常使用一阶惯性模型或一阶延迟模型来描述水箱液位的动态响应。
2.输入输出数据采集:通过传感器采集水箱液位和控制输入的数据,并对其进行离散化处理,使其适用于动态矩阵控制算法。
3.控制器设计:根据系统模型和控制目标,设计最优控制律。
动态矩阵算法主要包括预测模型、目标函数、约束条件等。
4.控制信号计算:基于当前的状态和控制输入的历史记录,使用动态矩阵算法计算出最优的控制信号。
5.控制执行:将计算得到的控制信号应用于实际控制系统中,调节水箱液位,并实时监控液位变化。
6.实时修正:根据实际反馈信息,对控制器中的参数进行修正,以提高控制效果和稳定性。
以上过程循环迭代,以不断调整控制信号,最终实现对水箱液位的精确控制。
二、控制系统建模在水箱液位控制中,我们需要对系统进行建模,以便进行后续的控制器设计和仿真。
通常采用一阶惯性模型或一阶延迟模型来描述水箱液位的动态响应。
一阶惯性模型:首先,假设水箱的液位变化满足一阶惯性动态方程:T * dH(t)/dt = k * (u(t) - H(t))其中,H(t)表示液位,u(t)表示输入控制信号,k表示液位变化的比例系数,T表示液位响应的时间常数。
DMC算法MATLAB编程及仿真

DMC算法MATLAB编程及仿真一、前言工业生产的过程是复杂的,建立起来的模型也是不完善的。
即使是理论非常复杂的现代控制理论,其效果也往往不尽人意,甚至在一些方面还不及传统的PID控制。
20世纪70年代,人们除了加强对生产过程的建模、系统辨识、自适应控制等方面的研究外,开始打破传统的控制思想,试图面向工业开发出一种对各种模型要求低、在线计算方便、控制综合效果好的新型算法。
在这样的背景下,预测控制的一种,也就是动态矩阵控制(DMC)首先在法国的工业控制中得到应用。
因此预测控制不是某种统一理论的产物,而是在工业实践中逐渐发展起来的。
预测控制中比较常见的三种算法是模型算法控制(MAC),动态矩阵控制(DMC)以及广义预测控制。
本篇所采用的是动态矩阵控制,其采用增量算法,因此在消除稳态余差方面非常有效。
二、控制系统设计方案2.1 控制系统方案设计图动态矩阵控制是基于系统阶跃响应模型的算法,隶属于预测控制的范畴。
它的原理结构图如下图(1)所示:图(1) 预测控制原理结构图上图就是预测控制原理结构图,从图中我们可以看到,预测控制的主要特点。
即建立预测模型;采用滚动优化策略,采用模型误差反馈矫正。
这也是预测控制的本质所在。
下面将对这三个特点一一说明。
2.2 预测控制基本原理1、预测模型:预测模型的功能是根据对象历史信息和未来输入对对象输出进行预测,它是被控对象的准确模型。
这里只强调模型的功能而不强调其结构形式。
因此,预测模型可以是状态方程、传递函数等传统的参数模型,对于线性稳定对象,阶跃响应、脉冲响应这类非参数模型也可以作为预测模型使用。
预测模型具有展示系统未来动态行为的功能,这样,就可以利用预测模型来预测未来时刻被控对象的输出变化及被控变量与其给定值的偏差,作为控制作用的依据,使之适应动态系统所具有的因果性的特点,得到比常规控制更好的控制效果。
2、滚动优化:预测控制是一种优化控制算法,它是通过某一性能指标的最优来确定未来的控制作用。
动态矩阵控制算法(DMC)资料

min J (k ) qi w(k i) yM (k i | k ) rj u 2 (k j 1)
2 i 1 j 1
P
M
其中 qi , rj 为权系数,分别表示对跟踪误差及控制量变化的抑制。
25
优化问题 (1)
无约束优化问题:
min J (k ) qi w(k i) yM (k i | k ) rj u 2 (k j 1)
Lecture 2 动态矩阵控制算法 (DMC)
回顾- 预测控制基本原理
• 三个基本原理 预测模型 滚动优化 反馈校正
2
回顾- 预测控制基本原理
• 预测模型
输入
预测模型
输出
- 模型表达:输入(包括操作变量和可测扰动)输出之间 的定量关系 - 模型结构:无限制、阶跃/脉冲响应、传递函数、状态方 程等 - 模型功能:根据当前已知信息和假设未来输入预测系统 未来输出 - 模型作用:作为不同控制策略下比较控制效果的基础
i 0 i 0
系统可由 a(k)唯一确定.
13
预备知识
y (0) h0u (0) y (1) h0u (1) h1u (0) y (2) h0u (2) h1u (1) h2u (0) y (k ) h0u (k ) h1u (k 1) hk u (0) hiu (k i)
min( M ,i )
ai j 1 u (k j 1)
求优化变量:U M (k ) u (k ), , u (k M 1) T
27
无约束优化问题求解 (1)
思路:代入预测方程,对控制向量求导
min J (k ) qi w(k i) yM (k i | k ) rj u 2 (k j 1)
第4章 动态矩阵控制_2010

∑ a Δu (k + j − i)
i
+ aN Δu (k + j − N ), ( j = 1, 2,
y0 (k + j k ) =
, n)
(4-4)
上式右端的后二项即为过去输入对输出n步预测值,记为
i = j +1
∑ a Δu (k + j − i) + a
i
N −1
N
2010-2-17
第4章 动态矩阵控制
10
南京信息工程大学信息与控制学院 南京信息工程大学信息与控制学院
2010-2-17
第4章 动态矩阵控制
11
南京信息工程大学信息与控制学院 南京信息工程大学信息与控制学院
2010-2-17
第4章 动态矩阵控制
12
南京信息工程大学信息与控制学院 南京信息工程大学信息与控制学院
14
南京信息工程大学信息与控制学院 南京信息工程大学信息与控制学院
2010-2-17
第4章 动态矩阵控制
四、DMC的主要特征和优点
(一)DMC的主要特征
(1)预测模型采用阶跃响应特性建模; (2)设计过程中固定格式是:用二次型目标函数决定最优 值增量序列,考虑到各种约束条件时,求最优解相当费时; (3)参数调整:用改变二次型目标函数中的权系数阵Q, R来实现。
2
南京信息工程大学信息与控制学院 南京信息工程大学信息与控制学院
2010-2-17
第4章 动态矩阵控制 一、 预测模型
从被控对象的阶跃响应出发,对象动态特性用一 系列动态系数 a1 , a2 , , aN 即单位阶跃响应在采样时刻的 值来描述,p称为模型时域长度,aN是足够接近稳态 值的系数。
模型预测控制(全面讲解)

1
2
N
t/T
系统的离散脉冲响应示意图
第三节 模型算法控制(MAC) 一. 预测模型
MAC算法中的模型参数
有限脉冲响应(Finite Impulse Response,FIR) hT={h1,h2,…,hN} 可完全描述系统的动态特性 N称为建模时域 保证了模型可用有限的脉冲响应描述 保证了可用线性系统的迭加性
T
第三节 模型算法控制(MAC) 一. 预测模型
u (k ) u (k 1) u (k 2) ym (k 1) y (k 2) u (k 1) u (k ) u (k 1) m Ym (k ) ym (k M ) u (k M 1) u (k M 2) u (k M 3) ym (k M 1) u (k M 1) u (k M 1) u (k M 2) y (k P) u (k M 1) u (k M 1) u (k M 1) m
第一节 预测控制的发展
预测控制的特点
建模方便,对模型要求不高 滚动的优化策略,具有较好的动态控制效果
简单实用的反馈校正,有利于提高控制系统的 鲁棒性
不增加理论困难,可推广到有约束条件、大纯 滞后、非最小相位及非线性等过程 是一种计算机优化控制算法
第二节 预测控制的基本原理
模型预测控制与PID控制
PID控制:根据过程当前的和过去的输出测量 值和给定值的偏差来确定当前的控制输入
预测控制:不仅利用当前的和过去的偏差值, 而且还利用预测模型来预测过程未来的偏差值。 以滚动优化确定当前的最优控制策略,使未来 一段时间内被控变量与期望值偏差最小
dmc控制算法

dmc控制算法DMC控制算法是一种常用的控制方法,它在工业自动化领域中广泛应用。
DMC即Dynamic Matrix Control,它是一种基于模型的预测控制算法。
本文将介绍DMC控制算法的原理和应用。
DMC控制算法的基本原理是通过建立系统的数学模型,预测未来一段时间内的系统输出,并根据预测结果调整控制器的输出,使系统的实际输出与期望输出尽可能接近。
DMC算法的关键在于建立准确的系统模型和优化权重矩阵。
在DMC算法中,首先需要建立系统的数学模型。
这可以通过系统的输入和输出数据进行辨识来实现。
根据辨识得到的模型,可以预测未来一段时间内的系统输出。
预测的准确性直接影响控制的效果。
在预测的基础上,DMC算法通过优化权重矩阵来调整控制器的输出。
权重矩阵中的权重值反映了控制器对于不同因素的重视程度。
通过调整权重矩阵,可以使控制器更加关注系统输出与期望输出之间的偏差,从而实现更好的控制效果。
DMC算法的优点是可以有效地处理系统的时变性和非线性。
通过建立系统模型和预测未来输出,可以对系统的变化做出及时的响应。
此外,DMC算法还可以根据不同的控制要求进行灵活调整,使控制器更加适应不同的工况。
DMC控制算法在许多领域都得到了广泛应用。
例如,在化工工艺中,DMC算法可以用于控制反应器的温度、压力等参数,实现反应过程的精确控制。
在电力系统中,DMC算法可以用于控制发电机的输出,使电网的电压和频率保持稳定。
在机械制造中,DMC算法可以用于控制机床的位置和速度,实现精密加工。
DMC控制算法是一种基于模型的预测控制算法,通过建立系统模型和预测未来输出来调整控制器的输出,实现系统的精确控制。
DMC 算法具有灵活性和适应性强的特点,并在工业自动化领域中得到了广泛应用。
未来,随着控制技术的不断发展和完善,DMC算法将进一步提升自身的性能和应用范围,为工业自动化带来更大的价值。
动态矩阵控制(DMC)的简单理解及其示例

动态矩阵控制(DMC )的简单理解及其⽰例⽂章结构前⾔在模型预测控制的课程当中接触到了动态矩阵控制(DMC)算法,虽然不会在以后继续深⼊,但它控制、预测和校正的思想还是可圈可点的。
本⽂将简要概述DMC的基本原理和控制流程,尽量做到省去复杂的数学公式⽽理解DMC。
但由于接触不深且实⼒有限,本⽂的表述可能会有⼀些不准确或者错误,因此仅供参考,同时欢迎⼤家指正。
DMC 的基本思想动态矩阵控制(DMC)是在上世纪80年代提出的⼀种典型的模型预测控制(MPC)⽅法。
虽然在今天它已经不再是MPC的研究关注点,但其思想却⾮常值得借鉴,因此⼏乎所有的模型预测控制教材都把DMC作为⼀部分来讲解。
概括来说,DMC的特点主要有:1. 控制与系统的数学模型⽆关,仅需获取系统的阶跃响应序列,⽅法适⽤于稳定的系统;2. 系统的动态特性中具有纯滞后或⾮最⼩相位特性都不影响算法的直接应⽤。
也就是说,使⽤DMC⽆需知道被控对象的数学模型,只需要获取被控对象的阶跃响应序列即可实现控制效果,但需要被控对象是渐进稳定的。
同时,即使被控对象有⼀定的纯滞后特性,或者是⾮最⼩相位的(对象传递函数的零点存在于S域右半平⾯)都不影响DMC的使⽤。
从上⾯的特性可以,DMC的应⽤范围是⽐较⼴泛的。
接下来就简单地谈⼀谈DMC的三要素,既预测模型、滚动优化和反馈校正。
预测模型DMC的使⽤需要建⽴在预测模型的基础上。
简单来说就是,DMC控制器希望通过已有信息构造未来若⼲时刻的系统输⼊并预测系统的输出。
那么要如何实现呢?可⾏的⽅案之⼀是使⽤系统的阶跃响应序列。
由线性时不变(LTI)系统具备的⽐例叠加性质可知,在已知从0开始的系统N个采样点上的阶跃响应序列的情况下,系统在k时刻对未来P个时刻的输出预测可由系统在k时刻的输出预测初值与M个连续的输⼊增量序列及由阶跃响应序列组成的动态矩阵A计算得到,其计算表达式如下:其中N称为截断步长,P称为预测步长,M称为控制步长,它们三者之间的⼤⼩关系⼀般为N > P > M > 0。
动态矩阵控制算法

MATLAB 环境下动态矩阵控制实验一 算法实现设某工业对象的传递函数为:G P (s)=e -80s /(60s+1),采用DMC 后的动态特性如图1所示。
在仿真时采样周期T=20s ,优化时域P=10,控制时域M=2,建模时域N=20。
MATLAB 程序1:g=poly2tfd(1,[60 1],0,80);%通用传递函数模型转换为MPC 传递函数模型delt=20; %采样周期nt=1; %输出稳定性向量tfinal=1000; %截断时间model=tfd2step(tfinal,delt,nt,g);%传递函数模型转换为阶跃响应模型plant=model; %进行模型预测控制器设计p=10; %优化时域m=2; %控制时域ywt=[];uwt=1; %设置输入约束和参考轨迹等控制器参数kmpc=mpccon(plant,ywt,uwt,m,p);%模型预测控制器增益矩阵计算tend=1000;r=1; %仿真时间[y,u,yrn]=mpcsim(plant,model,kmpc,tend,r);%模型预测控制仿真t=0:20:1000;plot(t,y)xlabel('图1 DMC 控制系统的动态阶跃响应曲线(time/s)');ylabel('响应曲线');00.20.40.60.811.21.4图1 DMC 控制系统的动态阶跃响应曲线(time/s)响应曲线图中曲线为用DMC 控制后系统的阶跃响应曲线。
从图中可以看出:采用DMC 控制后系统的调整时间小,响应的快速性好,而且系统的响应无超调。
该结果是令人满意的。
二P和M对系统动态性能的影响1.P对系统性能的影响优化时域P表示我们对k时刻起未来多少步的输出逼近期望值感兴趣。
当采样周期T=20s,控制时域M=2,建模时域N=20,优化时域P分别为6,10和20时的阶跃响应曲线如图2所示。
MATLAB程序2:g=poly2tfd(1,[60 1],0,80);%通用传递函数模型转换为MPC传递函数模型delt=20; %采样周期nt=1; %输出稳定性向量tfinal=1000; %截断时间model=tfd2step(tfinal,delt,nt,g);%传递函数模型转换为阶跃响应模型plant=model; %进行模型预测控制器设计p1=6;p2=10;p3=20; %优化时域m=2; %控制时域ywt=[];uwt=1;kmpc1=mpccon(plant,ywt,uwt,m,p1);kmpc2=mpccon(plant,ywt,uwt,m,p2);kmpc3=mpccon(plant,ywt,uwt,m,p3);tend=1000;r=1;[y1,u,yrn]=mpcsim(plant,model,kmpc1,tend,r);[y2,u,yrn]=mpcsim(plant,model,kmpc2,tend,r);[y3,u,yrn]=mpcsim(plant,model,kmpc3,tend,r);t=0:20:1000;plot(t,y1,t,y2,t,y3)legend('1-p=6','2-p=10','3-p=20');xlabel('图2 P不同对系统性能的影响(time/s)');ylabel('响应曲线');0100200300400500600700800900100000.20.40.60.811.21.4图2 P 不同对系统性能的影响(time/s)响应曲线图中曲线1为P=6时的阶跃响应曲线;曲线2为P=10时的阶跃响应曲线;曲线3为P=20时的阶跃响应曲线。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Δu (k ) = cT ΔU M (k ) = c1T (4A4T Q4A2+ 4R )4−1 A4T3Q [wP (k ) − y% P0 (k )] (3) dT
其中,M 维行向量 cT = [1 0 L 0] 表示取首元素的运算 P 维行向量 dT = cT (ATQA + R)−1 ATQ [d1,L, dP ] 为控制向量
27
无约束优化问题求解 (1)
思路:代入预测方程,对控制向量求导
P
M
∑ ∑ min J (k) = qi [w(k + i) − y%M (k + i | k)]2 + rjΔu2 (k + j −1)
i =1
j =1
∑ s.t. y%M (k + i | k) = y%0 (k + i | k) +
• 向量 a = [a1,L, aN ]T称为模型向量,N为建模时域
19
输出预测 (1) - 零输入响应
• 在 k 时刻,假设控制作用保持不变时,对未来N 个时刻的输出有初始预测值 y%0 (k + i | k) i = 1, 2,L, N
注意:
k k
y%0 (k + N | k) = y%0 (k + N +1| k) = L = y%0 (∞ | k)
Lecture 2 动态矩阵控制算法 (DMC)
回顾- 预测控制基本原理
• 三个基本原理 ¾ 预测模型 ¾ 滚动优化 ¾ 反馈校正
2
回顾- 预测控制基本原理
• 预测模型
输入
预测模型
输出
- 模型表达:输入(包括操作变量和可测扰动)输出之间 的定量关系
- 模型结构:无限制、阶跃/脉冲响应、传递函数、状态方 程等
- 模型功能:根据当前已知信息和假设未来输入预测系统 未来输出
- 模型作用:作为不同控制策略下比较控制效果的基础
3
预备知识
信号 ¾ 连续信号 x(t) ¾ 离散信号 x(k)
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
-0.05
-0.1
-0.15
0
0.5
1
1.5
2
2.5
3
3.5
4
0.35
k+N
20
输出预测 (2) – 零状态响应
k时刻:控制有一增量△v(k),计算未来时刻的输出值
y%i (k + i | k) = y%0 (k + i | k) + ai Δu (k )
i = 1,L, N
线性叠加原理
21
输出预测 (3) – 输出预测值
在 M 个连续的控制增量作用 Δu(k),L, Δu(k + M −1) 下, 未来各时刻的输出值为:
u = {0 L 0 u(k) 0 L} y = {L 0 h0u(k) h1u(k) h2u(k) L}
u = {u(0) u(1) L u(k) L L} y := {y(k )} = ?
9
预备知识
u={u(0) 0 0 L} y ={h0u(0) h1u(0) h2u(0) L}
u={0 u(1) 0 L} y ={0 h0u(1) h1u(1) h2u(1) L}
u(k)
y(k)
u = δ (k) := {1 0 0 L} y = {h(k)} = {h0 h1 h2 L}
u = {u(0) 0 0 L} y = {h0u(0) h1u(0) h2u(0) L}
u = {0 1 0 L}
y = {0 h0 h1 h2 L}
u = {0 u(1) 0 L} y = {0 h0u(1) h1u(1) h2u(1) L}
min( M i =1
,i
)
ai
−
j
+1
×
Δu
(k
+
j
−1)
∑ ∑ ∑ P
J (k) = qi ⎡⎣w(k + i) − ( y%0 (k + i | k) +
min( M ,i) i =1
ai−
j +1
×
Δu(k
+
j −1))⎤⎦2 +
M
rjΔu2 (k +
j −1)
i =1
j =1
dJ (k) dΔu j (k) = 0
(1)
s.t. y% PM ( k ) = y% P0 ( k ) + AΔ u M ( k )
(2)
将式(2)代入式(1)可得:
min J (k) =
wP (k )
−
y% P0
(k)
−
ቤተ መጻሕፍቲ ባይዱ
AΔU M
(k)
2 Q
+
ΔU M
2 R
由极值必要条件 dJ (k) dΔUM (k) = 0 可得:
ΔU M (k ) = ( AT QA + R)−1 AT Q ⎡⎣wP (k ) − y%P0 (k )⎤⎦ 获得 Δu(k ),L , Δu(k + M − 1) 的最优值。
∑ ∑ = hiΔu(0) + hiΔu(1) +L + h0Δu(k)
i=0
i=0
k
k
∑ ∑ = ak−iΔu(i) = aiΔu(k − i)
i=0
i=0
14
主要内容
• DMC算法
– 预测模型 – 滚动优化 – 反馈校正
• 单变量DMC算法设计 • DMC参数设计
15
动态矩阵控制
• 预测模型
min( i =1
M
,i
)
ai
−
j
+1
×
Δu
(k
+
j −1)
求优化变量:ΔUM (k) = [Δu(k),L, Δu(k + M −1)]T
26
优化问题 (2)
约束优化问题:
P
M
∑ ∑ min J (k) = qi [w(k + i) − y%M (k + i | k)]2 + rjΔu2 (k + j −1)
30
无约束优化问题求解 (4)
J (k) =
wP (k)
−
y% P0
(k)
−
AΔU M
(k)
2 Q
+
ΔU M
2 R
( ) ( ) J(k) = wP(k) − y%P0 (k) − AΔUM (k) T Q wP(k) − y%P0 (k) − AΔUM (k) + ΔUMT RΔUM
dJ (k) d Δu j (k) = 0
0.3
0.25
0.2
0.15
0.1
0.05
0
-0.05
-0.1
-0.15
0
0.5
1
1.5
2
2.5
3
3.5
4
4
预备知识
系统 ¾ 输入 x(t) 或 x(k) ¾ 输出 y(t) 或 y(k)
System
x(t)
y(t)
5
预备知识
动态系统描述 常微分方程 传递函数 脉冲响应 阶跃响应 频率响应 状态方程 等
u={0 L 0 u(k) 0 L} y={L 0 h0u(k) h1u(k) h2u(k) L}
u={u(0) u(1) L u(k) L L}
y := {y(k)} = ?
y(0) =h0u(0)
y(1) =h0u(1)+h1u(0)
k
y(2) =h0u(2)+h1u(1)+h2u(0)
k
y(k) =∑hiu(k −i)
i =1
j =1
其中 qi , rj 为权系数,分别表示对跟踪误差及控制量变化的抑 制。
25
优化问题 (1)
无约束优化问题:
P
M
∑ ∑ min J (k) = qi [w(k + i) − y%M (k + i | k)]2 + rjΔu2 (k + j −1)
i =1
j =1
∑ s.t. y%M (k + i | k) = y%0 (k + i | k) +
i=0
i=0
k
∑ y(k) =h0u(k)+h1u(k−1)+L+hku(0) = hiu(k−i) i=0
hi = a(i) − a(i −1) = ai − ai−1 系统可由 a(k)唯一确定.
k
k
i
∑ ∑ ∑ y(k) = hk−iu(i) = hk−i Δu( j)
i=0
i=0
j=0
k
k −1
– 输入输出模型 – 假设未来输入预测未来输出
• 滚动时域优化 • 反馈校正
16
DMC - 预测模型
输入
预测模型
输出
如何根据当前已知信息和假设未来输入预测系统未来输出?
阶跃响应 + 比例叠加原理
输出预测
17
DMC - 预测模型
阶跃响应 + 比例叠加原理
输出预测
模型预测值:自由项(零输入响应) + 强迫项(零状态响 应)
18
阶跃响应采样
{1,1,1,L}
=
{0, a1, a2, a3,L}
• 测量对象单位阶跃响应的采样值 ai = a(iT ) i = 1, 2,L, T为采样周期