G(s)J
T2S+Ts+1
辨识算法分别用一次最小二乘算法和递推最小二乘算法对被控对象进行辨识。
最小二乘法是一种数学优化技术。
它通过最小化误差的平方和寻找数据的最佳函数匹配。
利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。
3.2辨识算法介绍
1、一次最小二乘算法数学原理:
观测矩阵H和L
L=[l(3),l⑷,.•…,l(n)]T
「一匚l(2厂-l
(1)u
(2)u
(1)I
u_-l(3)T
(2)u(3)u
(2)
-l(n-1)一l(n-2)u(n-1)u(n-2)被辨识参数矩阵C=[a1,a2,b1,b2]T公式1:
C=(HtH)'HtL
用MATLAB程序编程如下:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
loady22;loadu;u=u;y=y22;
D=1;
%导入输入输出序列
%给u,y赋值
%设置纯迟延为1
H1(i-D-1,:
)=[-y(i-D),-y(i-D-1),u(i-D-1),u(i-D-2)];
end%此循环为求观测矩阵H
H3=H1'*H1;
H4=pinv(H3);%矩阵求逆
C仁H4*H1'*y(D+2:
N)';%由公式1求得被辨识参数矩阵C
a11=C1
(1),a21=C1
(2),b11=C1(3),b2仁C1(4),%分离参数
z=tf('z',5);%设置算子
Gz1=(b11*z+b21)/(zA2+a11*z+a21)%系统的离散时间域模型
Gc1=d2c(Gz1)%系统的连续时间域模型
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%其程序的流程框图如图
(2)所示:
辨识结果如下:
图
(2)一次最小二乘辨识程序流程框图
Transferfunction:
0.03651z+0.02077
Samplingtime:
5
Transferfunction:
1.375e-013s+0.004834sA2+0.3453s+0.002314
2、递推最小二乘算法
数学原理:
1公式
(2):
K(i^P(i-1)h(i)[hT(i)P(i-1)h(i)广A(i)
公式(3):
C(i)二C(i-1)K(i)[l(k)—hT(i)C(i-1)]
1
公式(4):
P(i)二P(i_1)—K(i)KT(i)[hT(i)P(i—1)h(i)]
A(i)
注:
其中的H阵和L阵形式见一次辨识算法部分。
利用MATLAB程序编程如下:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
loady22;loadu;%导入输入输出数据
u=u;y=y22;D=1;N=length(u);%数据赋值,设置步长
C1=[0.001,0.001,0.001,0.001];%给被辨识参数赋初值P1=10A6*eye(4,4);%给初始状态赋值
e=10A(-6);%给收敛判定校对的误差赋值
Cx=[C1;zeros(N-4,4)];%设置辨识参数矩阵并赋初值E=zeros(N-3,4);%设置相对误差矩阵并赋初值
fori=D+3:
N%由公式2,3,4求K,C,P阵
x1=H1*P1*H1'+1;x2=pinv(x1);K1=P1*H1'*x2;t1=y(i)-H1*C1';C2=C1+(K1*t1)';
E1=C2-C1;
E2=E1./C1;
E3=0;
H1=[-y(i-D-1),-y(i-D-2),u(i-D-1),u(i-D-2)];
%加权矩阵是单位阵。
%由公式2求出K值
%由公式3求出被辨识参数
%求参数当前值与上一次值的误差
%求参数的相对变化
%给收敛判定判定误差赋初值
E3=abs(E2(1,1))+abs(E2(1,2))+abs(E(1,3))+abs(E(1,4));
%求收敛判定误差
E(i-D-1,:
)=E2;%把当前相对变化的行向量加入误差矩阵的最后一行
C1=C2;%把新获得的参数作为下一次递推的旧参数
Cx(i-D-1,:
)=C2;%把辨识参数C的行向量加入辨识参数矩阵的最后一行
P2=P1-K1*K1'*(H1*P1*H1'+1);%由公式4求出P(i)的值
P1=P2;%给下次用
ifE3<=ebreak;%如果参数收敛满足要求,终止计算
endend
a1x=Cx(:
1)';a2x=Cx(:
2)';b1x=Cx(:
3)';b2x=Cx(:
4)';
%分离辨识参数矩的列向量
fori=4:
N
ifa1x(i)==0&&b1x(i)==0&&a2x(i)==0&&b2x(i)==0
a12=a1x(i-1);a22=a2x(i-1);b12=b1x(i-1);b22=b2x(i-1);
break;
end
end%此处循环选择语句是从参数列向量中分离出最终所需要
的辨识参数
z=tf('z',5);%设置算子
Gz2=(b12*z+b22)/(zT+a12*z+a22)%系统的离散时间域模型
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
程序设计的流程图如图(3)所示:
辨识结果如下所示:
a12=-1.5294a22=0.5759b12=0.0371b22=0.0600
Transferfunction:
0.03715z+0.06001zA2-1.529z+0.5759
Samplingtime:
5
Transferfunction:
-0.004176s+0.005082
四、动态矩阵控制算法(DMC)
预测模型:
Ym(k1)=AU(k)A°U(k-1)
Ym(k1)珂ym(k1)/k),ym(k2)/k,….…,ym(kp/k)]T
:
U(k)二[u(k),u(k1),,:
u(kM-1)]T
U(k-1)=[u(k-N1),u(k-N2),.……,u(k-1)]T其中A,是由阶跃响应系数组成的矩阵。
并且以递推辨识参数作为预测模型参数,而且递推辨识参数作为被控对象参数。
基于MATLAB程序M文件编程如下所示:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
D=1;%纯迟延
CD=1;%采样时间
g=poly2tfd([b12,b22],[1,a12,a22],CD,D);%将预测模型转换为阶跃响应模型p=poly2tfd([b12,b22],[1,a12,a22],CD,D);%将控制对象转换为阶跃响应模型Ts=[5];%采样时间
ny=[1];%输出稳定性指标
tfinal=[10];%对阶跃响应模型的截断时间
model=tfd2step(tfinal,Ts,ny,g);%预测模型的阶跃响应系数矩阵plant=tfd2step(tfinal,Ts,ny,p);%对象的阶跃响应系数矩阵P=[80];%多步输出预测时域长度(优化时域长度)
M=[10];%控制时域长度
ywt=[1];%输出量约束Q
uwt=[1];%控制量约束Lamda
kmpc=mpccon(model,ywt,uwt,M,P);%控制器增益矩阵即反馈控制率r=[20];%系统给定值
tend=500;%仿真时间dplant=[];%被控对象扰动取默认值dmodel=[];%模型扰动取默认值
dfilter=[];%取默认值
[y,u,ym]=mpcsim(plant,model,kmpc,tend,r,dfilter,dplant);%无约束模型模拟预测控制器
figure
(1);%画第一个图即输出y的曲线
plot(y,'b');title('系统响应y');xlabel('t');ylabel('y');legend('y');axis([0,50,0,26]);gridon;box;
figure
(2);%画第二个图即控制器输出u的曲线
plot(u);title('控制器输出');
xlabel('t');ylabel('u');legend('u');axis([0,10,10,20]);gridon;box;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%系统仿真曲线见第6部分的仿真结果分析。
五、电加热炉温度系统辨识结果与分析首先我以递推最小二乘辨识算法在历史数据下的辨识结果作为参考数据,数据如下:
a1=-1.5294a2=0.5759b1=0.0371b2=0.0600
5.1弱噪声下的辨识结果
由于历史数据本身是在很弱的白噪声下采集的,所以两种辨识数据如下所
示:
1、一次最小二乘辨识数据:
a11=-1.1505a21=0.1779b11=0.0365b21=0.0208
2、递推最小二乘变数数据:
a12=-1.5294a22=0.5759b12=0.0371b22=0.0600这是两种算法在弱噪声下的辨识结果,两组数据之中最大的相对误差达到了
70%,所以不能将一次辨识结果直接作为模型数据来用。
通过此次对比,我们可以看到,最小二乘一次性完成算法是离线算法,需要采集大量数据,一次完成计算;最小二乘递推算法可以实现在线辨识,而且运算量小,只要满足误差要求,不必把计算完成所有数据,在计算出一定量的数据后,参数趋于稳定。
5.2强噪声下的辨识结果
首先对历史数据加入强噪声,加入的噪声程序如下:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%y=y22;
fori=1:
1000
y(i)=y(i)+(y(i)*rand
(1)*0.02);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%辨识结果如下:
1、一次最小二乘辨识
a11=-0.6553a21=-0.3055b11=0.0417b21=0.0412
2、递推最小二乘辨识
a12=-1.4967a22=0.5442b12=0.0381b22=0.0612通过仿真,我们可以很明显的发现一次最小二乘辨识的结果可以说是无法使用,而递推最小二乘辨识的结果出入不是很大,可以作为模型数据。
我们可以发现,在强噪声下,一次辨识不能对模型做出精确地辨识,但是,递推辨识的可以很接近的辨识出模型参数。
5.3噪声水平对辨识结果的影响分析
通过上述仿真即得到的数据,我们可以很明显的下结论,在弱噪声下,两种辨识算法都可以采用,但是如果采用递推辨识,不仅运算量可以大大减少(运算
次数当i=273时就得到辨识结果了),而且精度可以自己选择,效果也比一次辨识的高。
在强噪声下,一次辨识的结果跟本无法采用,而递推辨识虽然有点误差,
但是精度还是很咼的,这就是递推辨识可以在线辨识的优点所在。
如果采用一次辨识,那么误差还是很大,如果直接作为模型数据采用,其仿真曲线见第6部分仿真结果分析。
六、电加热炉温度系统动态矩阵控制仿真结果分析
6.1标称系统仿真结果
采用弱噪声下的递推辨识结果作为模型数据,采用弱噪声下的递推辨识结果作为被控对象数据,带入DMC程序。
(注:
在以下仿真过程中,得到的合理的曲线需要修改DMC程序里画图程序的横纵坐标值。
)
系统仿真曲线如下:
动态矩阵控制是一种用被控对象的阶跃响应特性来描述系统动态模型的预
测控制算法。
采用的也是内模控制的理念,根据第一部分内模控制器的结构图,在模型精确时,有对偶稳定原则,控制器为完全控制器,输出无静差三条特性。
经过仿真,可以验证输出无静差这个特性。
而且如果模型计算精确的话,系统平滑上升,没有超调,调节时间也很快。
当给对象加入扰动,得到的曲线基本没有变化。
6.2鲁棒性验证仿真结果
模型失配时的稳定性即所谓的鲁棒性。
1、如果将弱噪声下一次辨识数据当做模型数据,把递推辨识数据当做被控对象
数据
实际对象与我们设计的DMC系统的模型不相吻合的情况即模型失配。
它是由于在辨识对象阶跃响应时不够精确,或者对象参数发生时变,或者因存在非线性因素等原因引起的。
对象的实际阶跃响应往往是未知的。
这部分仿真所用的模型参数与被控对象的参数最大相对误差达到了40%左右,可以说模型严重失配,而响应曲线的时域性能指标衰减率在80%左右,上升时间和调节时间和模型匹配时基本一致。
由于DMC算法基于反馈矫正的闭环机制,从而即使在模型失配时也有无静差的特性。
DMC算法采用滚动优化的策略,当系统出现超调,控制器也能及时的进行调节,使系统的响应曲线迅速衰减。
2、将强噪声下递推辨识参数作为模型参数,把弱噪声下递推辨识结果作为对象参数
其仿真曲线如下形式:
系统响应y
这两组数据的最大相对误差在5%左右,模型失配较轻,从仿真曲线上来看,系统没有出现超调,系统的时域性能指标良好,具有良好的动态性能和稳态性能。
从仿真曲线上看,模型失配较轻,系统响应曲线没有出现超调,上升时间和调节时间很快,和模型匹配时的控制效果接近。
3、鲁棒性分析
从这两部分来看,当模型失配程度较轻时,系统响应没有出现激烈的动作,各项性能指标良好,基本等同于模型匹配时的状态;当模型失配严重时,虽然系统出现了震荡,但衰减率达到80%以上,系统调节时间和上升时间较快。
由于DMC控制策略采用滚动优化策略,它是通过某一性能指标的最优来确定未来的控制作用。
这一性能指标涉及到系统未来的行为。
女口,通常可取被控对象输出在未来的采样点上跟踪某一期望轨迹的方差最小,性能指标中涉及到的系统未来的行为,是根据预测模型由未来的控制策略决定的。
从而预测控制中的滚动优化得到了全局的次优解,但由于它的优化始终建立在实际过程的基础上,使控制结果达到实际意义上的最优控制,能够有效地克服工业过程控制中的模型不精确、非线性、时变等不确定性的影响。
故而使系统具有较好的鲁棒性。
6.3现场噪声水平对预测控制应用的影响分析
在6.1和6.2部分,模型参数分别采用的是在强噪声下的辨识参数,和白噪声下的辨识参数。
当现场噪声均为白噪声时,模型能够准确的辨识出来,在6.1部分通过仿真曲线可以看出,系统的稳态性能良好,无稳态残差;动态性能的上升时间,调节时间等性能指标均能满足要求。
较之6.2部分中的强噪声下的仿真曲线,
在DMC算法中预测模型的功能是根据对象历史信息和未来输入对对象输出进行预测,它是被控对象的准确模型。
预测模型具有展示系统未来动态行为的功能,这样,就可以利用预测模型来预测未来时刻被控对象的输出变化及被控变量与其给定值的偏差,作为控制作用的依据,使之适应动态系统所具有因果关系。
故而当系统的模型辨识准确时,也就是在模型采用白噪声下的辨识结果时,系统的各项性能指标均达到满意效果。
现场噪声污染严重,如果辨识算法选取的不恰当,则直接导致模型辨识不准确,所辨识出来的结果与实际的被控对象有很大出入,如6.2的第一部分部分所示,导致系统的仿真曲线出现超调量,调节过程出现震荡,调节时间也变长,原因是模型和对象严重失配导致的。
但是由于DMC控制策略采用滚动优化策略,能够有效地克服工业过程控制中的模型不精确、非线性、时变等不确定性的影响使系统的鲁棒性增强,一些程度上可以减少现场噪声水平的影响。
无论是白噪声还是强噪声,系统响应曲线始终稳态无差,这是由于预测控制是一种闭环控制算法,预测算法在进行滚动优化时,基于不变模型的预测不可能和实际情况完全相符,这就需要用附加的预测手段补充模型预测的不足,或者对基础模型进行在线修正。
滚动优化是建立在反馈校正的基础上,体现出其优越性。
因此,预测控制中的优化不仅基于模型,而且利用了反馈信息,因而构成了闭环优化。
这样,基于模型预测、滚动优化、反馈矫正三大环节,将传统的自校正技术的单步预测扩展为多步预测,在实际反馈信息基础上反复优化,从而有效地抑制了算法对于模型参数变化的灵敏性,减少了现场噪声对控制效果的影响。
七、结论
首先简介了预测控制的基本理念和方法,再经过辨识算法部分和DMC控制部分的程序分析,以及最后的控制系统仿真曲线分析,我们可以得到如下结论。
辨识部分:
采用递推最小二乘辨识不仅能大大的减少计算量,辨识的精度很高,而且能够在线辨识。
在强噪声下,一次最小二乘辨识的数据根本无法采用,而递推最小二乘辨识却能取得满意的效果,精度较白噪声下有所降低。
控制部分:
本文主要对动态矩阵控制进行了模型建立与仿真。
动态矩阵控制算法作为预测控制算法中一种典型的代表算法,基于模型预测、滚动优化、反馈矫正三大环节,不仅增强了系统的动态性能,还增强了鲁棒性能。
这三个环节互相配合互相配合,减少的单独使用一个环节的缺点,对建模误差和环境干扰等不确定因素具有很强的适应能力,在分析了动态矩阵控制的动态性能和鲁棒性后,分析了环境噪声对控制效果的影响。
预测模型的功能是根据对象历史信息和未来输入对对象输出进行预测,这样,就可以利用预测模型来预测未来时刻被控对象的输出变化及被控变量与其给定值的偏差,作为控制作用的依据,使之适应动态系统所具有的因果性的特点,得到比常规控制更好的控制效果。
预测控制采用的滚动优化控制算法,它是通过某一性能指标的最优来确定未来的控制作用。
这一性能指标涉及到系统未来的行为。
在预测控制中,优化不是一次离线进行,而是反复在线进行,这就是滚动优化的含义。
从控制的全过程看,实现的是动态的优化。
与一般最优控制中的全局优化相比,预测控制中的滚动优化只能