第7章模型预测控制2SISOExample.ppt_图文
第七章 模型预测控制算法 之一~5
杨根科 上海交通大学自动化系
2013年3月
专业课件
1
内容提要
? 概述 ? 动态矩阵控制 ——例子与参数选择 ? 动态矩阵控制的进一步讨论 ? 模型算法控制 ? 应用
专业课件
2
模型预测控制, idea
Basic concept for Model Predictive Control
专业课件
3
1 动态矩阵控制
Receding Horizon Control concept(Model predictive controlGorinevsky, ) 2005
? At each time step, compute control by solving an openloop optimization problem for the prediction horizon
? Apply the first value of the computed control sequence ? At the next time step, get the system state and re-compute
专业课件
4
1 动态矩阵控制——一个例子
算法
(1) 离线计算
N;
阶跃响应系数 a1,a2,…,aN 优化校正参数 h1,h2,…,hP 优化控制参数 d1,d2,…,dP (2) 初始化
初始值
(3) 在线计算
Y(k)更新规律;优化控制量Δu (k),Δu M(k)
专业课件
5
1 动态矩阵控制——一个例子
算法 (1)建模过程
方法1:仿真 y(k) = –0.5y(k – 1) + u(k – 3)
初始化 y(k)=0, u(k) =0, k <0;
阶跃响应模型
u(k) =1, k>=0; y(k) = –0.5y(k – 1) + u(k – 3), k>=0;
专业课件
6
1 动态矩阵控制——一个例子
算法 (1)建模过程
方法2:数据测量
专业课件
7
1 动态矩阵控制
? 采样周期=0.1000
? plant =[a1;a2;…;a16] ?=
?
0
?
0
?
1.0000
?
0.5000
?
0.7500
?
0.6250
?
0.6875
?
0.6563
?
0.6719
?
0.6641
?
0.6680
?
0.6660
?
0.6670
?
0.6665
?
0.6667
?
0.6666
专业课件
8
1 动态矩阵控制
(2) 优化控制
P
M
? ? min J (k) ? qi (W (k ? i) ? yM (k ? i | k))2 ? ri ? ?u(k ? i ?1)2
i ?1
i ?1
? 没有约束时(控制量,受控量),得到
?uM (k) ? ( AT QA ? R)?1 AT Q ?[WP (k) ? ~yPo (k)]
专业课件
9
1 动态矩阵控制
?uM (k) ? ( AT QA ? R)?1 AT Q ?[WP (k) ? ~yPo (k)]
?0
0
0
0
0?
? 这里
? ?
0
0
? 1.0000 0
0
0
0
0
0
? ?
0?
P,N=16?, M=5; ? ?
0.5000
1.0000
0
0
? 0.7500 0.5000 1.0000 0
0
? ?
0?
?
?
Q=I ; R=I 16*16
? 0.6250 0.7500 0.5000 1.0000 0 ?
5*5
? ?
0.6875
0.6250
0.7500
0.5000
1.0000 ??
A
?
? ?
?
0.6563 0.6719
0.6875 0.6563
0.6250 0.6875
0.7500 0.6250
0.5000 ? 0.7500 ??
? 0.6641 0.6719 0.6563 0.6875 0.6250?
? ?
0.6680
0.6641
0.6719
0.6563
0.6875 ??
? 0.6660 0.6680 0.6641 0.6719 0.6563?
?
?
? 0.6670 0.6660 0.6680 0.6641 0.6719?
? 0.6665 0.6670 0.6660 0.6680 0.6641?
?
?
? ??
0.6667 0.6665 0.6670 专业课件
0.6666 0.6667 0.6665
0.6660 0.6670
0.6680 ? 0.6660??
10
1 动态矩阵控制
? A=[a,[0;a(1:15)],[0;0;a(1:14)],[0;0;0;a(1:13)],[0;0;0;0;a(1:12)]]
?0
0
0
0
0?
? ?
0
0
0
0
0
? ?
? 1.0000 0
0
0
0?
? ?
0.5000
1.0000
0
0
0
? ?
? 0.7500 0.5000 1.0000 0
0?
?
?
? 0.6250 0.7500 0.5000 1.0000 0 ?
? ?
0.6875
0.6250
0.7500
0.5000
1.0000 ??
A
?
? ?
?
0.6563 0.6719
0.6875 0.6563
0.6250 0.6875
0.7500 0.6250
0.5000 ? 0.7500 ??
? 0.6641 0.6719 0.6563 0.6875 0.6250?
? ?
0.6680
0.6641
0.6719
0.6563
0.6875 ??
? 0.6660 0.6680 0.6641 0.6719 0.6563?
?
?
? 0.6670 0.6660 0.6680 0.6641 0.6719?
? 0.6665 0.6670 0.6660 0.6680 0.6641?
?
?
? ??
0.6667 0.6666
0.6665 0.6670 专业课件 0.6667 0.6665
0.6660 0.6670
0.6680 ? 0.6660??
11
1 动态矩阵控制
( AT QA ? R)?1 AT Q ?
?0 0 0.42 0.05 0.09 0.01 0 0 0 0 0 0 0 0 0 0 ?
??0
0
-0.16 0.39 0.01 0.06 -0.02 0.02 0
0.01 0
0.01 0.01 0.01 0.01 0.01??
?0 0 -0.15 -0.19 0.35 -0.02 0.03 0 0.02 0.01 0.01 0.01 0.01 0.01 0.01 0.01?
??0
0
-0.07 -0.17 -0.22 0.29 -0.1 0.1 0
0.05 0.02 0.04 0.03 0.03 0.03 0.03??
??0
0
-0.05 -0.08 -0.21 -0.28 0.22 -0.03 0.09 0.03 0.06 0.05 0.05 0.05 0.05 0.05??
d ? (1, 0, 0, 0, 0)( ATQA ? R)?1 ATQ ?
?0
0
0.42 0.05 0.09 0.01 0
0
0
0
0
0
0
0
0
0?
专业课件
12
1 动态矩阵控制
?uM (k) ? ( AT QA ? R)?1 AT Q ?[WP (k) ? ~yPo (k)]
d ? (1, 0, 0, 0, 0)( ATQA ? R)?1 ATQ ?u(k) ? d ?[WP (k) ? yPo (k)]
专业课件
13
1 动态矩阵控制
? 备注:初始化时计算
WP (k) ? ?! yPo (k) ? ??
专业课件
14
1 动态矩阵控制
? ?
备注:初始化时计算
k=k0
yPo (k )
?
? y(k
? ?
y(k
?
?1| k) ?2| k)
? ? ? ?
? ?
y(k
?
P
|
k
)??
N
? y( j) ? ai?u( j ? i) ? aNu( j ? N ?1)
i?1 N
? y( j | k0 ) ? ai?u( j ? i) ? aNu( j ? N ?1)
i ?1
专业课件
15
1 动态矩阵控制
? k=k0 yPM (k ) ? yP0 (k ) ? A ? ?uM (k )
? 特别
yP1 (k ) ? yP0 (k ) ? a ? ?u(k )
专业课件
16
1 动态矩阵控制
(3) 反馈校正
? 预测误差(一步控制?u(k)后的预测与实际值之差)
y(k ?1)
e(k ?1) ? y(k ?1) ? y1(k ?1| k)]
? 校正权系数
ycor (k ? i | k ?1) ? y1(k ? i | k) ? e(k ?1) i ? 1, 2,..., P(N )
or
ycor (k ?1) ? y1(k) ? e(k ?1)
专业课件
17
1 动态矩阵控制
3 反馈校正 (校正哪个量? 预测模型!)
? t=(k+1)T时刻误差校正后的输出预测
? y(k ?1?1| k ?1) ?
? ycor (k ?1 | k ?1)
ycor
(k
? 1)
?
? ?
?
?
? ?
yN 0 (k
? 1)
?
? ?
y(k
?
N
|
k
? 1)
? ? ?
?? ycor (k ? N | k ?1)??
? ?
y(k
?
1
?
N
|
k
?
1)??
? t=(k+1)T误差校正后系统在后续N时刻输出预测
?0 1 0 ? 0 0?
? ?
0
0
1?0
0
? ?
~yN 0 (k ? 1) ? S~ycor (k ? 1);
?? ? ? ? ? ??
S
?
? ?
0
0
0?1
0
?; ?
?0 0 0 ? 0 1?
?
?
?? 0 0 专0业课?件 0 1 ??
18
1 动态矩阵控制
(3) 反馈校正
? 预测误差(一步控制?u(k)后的预测与实际值之差)
y(k ?1)
e(k ?1) ? y(k ?1) ? y1(k ?1| k)]
? 校正权系数
~ycor (k ? i | k ? 1) ? ~y1(k ? i | k ) ? hi e(k ? 1) i ? 1,2,..., P(N )
or ~ycor (k ? 1) ? ~y1(k ) ? he(k ? 1)
专业课件
19
1 动态矩阵控制 (19/22)
3 反馈校正 ? t=(k+1)T时刻误差校正后的系统的输出预测
?~ycor (k ?1 | k ?1) ?
~ycor (k ?1) ? ???
??;
??~ycor (k ? N | k ?1)??
?h1 ? h ? ??? ??;
??hN ??
h1 ? 1
? 误差校正后的系统,在t=(k+1+i)T的输出预测
?0 1 0 ? 0 0?
? ?
0
0
1?0
0
? ?
~yN 0 (k ? 1) ? S~ycor (k ? 1);
?? ?
S
?
? ?
0
0
? 0
?? ?1
??
0
?; ?
?0 0 0 ? 0 1?
?
?
?? 0 专0业课0件 ? 0 1 ??
20
内容提要
? 概述 ? 动态矩阵控制 ——例子与参数选择 ? 动态矩阵控制的进一步讨论 ? 模型算法控制 ? 应用
专业课件
21
1 动态矩阵控制 -参数选择
? 动态矩阵控制原理与算法
? 控制结构组成 ? 优化策略 ? 反馈校正 ? 算法
? 设计参数选择
? 采样周期
? 优化时域长度
? 控制时域长度
? 权矩阵
? 误差校正向量
专业课件
22
1 动态矩阵控制-参数选择
? 动态矩阵控制算法
? 模型参数ai: 阶跃响应(关键模型) ? 控制系数di : 反馈校正(便利) (d1, d2, , dP ) ? (1,0, ,0)(ATQA ? R)?1 ATQ ? 校正参数hi : (人为确定?)
? 原始设计参数选择
? 采样周期:T ? 优化时域长度: P ? 控制时域程度: M ? 权矩阵: Q, R ? 误差校正向量, h
专业课件
23
1 动态矩阵控制 -参数选择
? 采样周期:T
? 大的采样周期有利于控制稳定,
? 不利于克服扰动
(1) 香农采样定理 Th<=pi/wmax; wmax---信号最大震荡频率
(2) 模型时域N=20~50, Th>=T>=Tl (下限,运算速 度)(系统固有的)
? 优化时域长度: P=30~120
? 控制时域长度M较短: 控制量不受压制;大的P得到 一个稳定的控制
P
? 对于任意控制时域长度M, 通过加大权矩阵 R控制达
? a s
ai qi
i ?1
? 0到稳定,但是P满足
专(业as课是件 a(t)的稳态值)
24
1 动态矩阵控制 -参数选择
? 控制时域程度: M,
? 加大M快速性强,动态性,预见性好 ? 加大M稳定性差; ? 增大P与减少M一致,固定M, 只对P整定 ? M是 AT QA ? R 的维数,求逆!
? 权矩阵: Q
? q1=…=qP=q; or q1=…=qP1=0 and qP1+1=…=qP=q
? 权矩阵: R
? r1=…=rM=r; or r1<r<r2
? 权矩阵: h
? h1=1, h2=…=hN=h; or hi=1+h+h2+…+hi-1
专业课件
25
1 动态矩阵控制 -参数选择
1. N and T These parameters should be selected so that N T > open-loop settling time. Typical values of N:
2. Prediction Horizon, P ? Increasing P results in less aggressive control action Set P = N + M , 30 < P < 120
3. Control Horizon, M ? Increasing M makes the controller more aggressive and increases computational effort, typically 5 < M < 20
4. Weighting matrices Q and R ? Diagonal matrices with largest elements corresponding to most important variables
专业课件
26
1 动态矩阵控制 –Matlab仿真
mpcdoubleint.m
仿真模型实现方法; 方法1:Simulink 方法2:
专业课件
27
1 动态矩阵控制 –Matlab仿真
专业课件
28
1 动态矩阵控制 –Matlab仿真
mpcdoubleint.m
仿真模型实现方法; mpc_doubleinta mpc_doubleintb mpc_doubleintc mpc_doubleintd mpc_doubleintE
专业课件
29