DMC算法MATLAB编程及仿真

上传人:汽*** 文档编号:498071481 上传时间:2022-11-26 格式:DOCX 页数:17 大小:147.98KB
返回 下载 相关 举报
DMC算法MATLAB编程及仿真_第1页
第1页 / 共17页
DMC算法MATLAB编程及仿真_第2页
第2页 / 共17页
DMC算法MATLAB编程及仿真_第3页
第3页 / 共17页
DMC算法MATLAB编程及仿真_第4页
第4页 / 共17页
DMC算法MATLAB编程及仿真_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《DMC算法MATLAB编程及仿真》由会员分享,可在线阅读,更多相关《DMC算法MATLAB编程及仿真(17页珍藏版)》请在金锄头文库上搜索。

1、一、前言工业生产的过程是复杂的,建立起来的模型也是不完善的。即使是理论非常 复杂的现代控制理论,其效果也往往不尽人意,甚至在一些方面还不及传统的 PID控制。20世纪70年代,人们除了加强对生产过程的建模、系统辨识、自适 应控制等方面的研究外,开始打破传统的控制思想,试图面向工业开发出一种对 各种模型要求低、在线计算方便、控制综合效果好的新型算法。在这样的背景下, 预测控制的一种,也就是动态矩阵控制(DMC)首先在法国的工业控制中得到 应用。因此预测控制不是某种统一理论的产物,而是在工业实践中逐渐发展起来 的。预测控制中比较常见的三种算法是模型算法控制(MAC),动态矩阵控制 (DMC)以及广

2、义预测控制。本篇所采用的是动态矩阵控制,其采用增量算法, 因此在消除稳态余差方面非常有效。二、控制系统设计方案2.1控制系统方案设计图动态矩阵控制是基于系统阶跃响应模型的算法,隶属于预测控制的范畴。它的原理结构图如下图(1)所示:图(1)预测控制原理结构图上图就是预测控制原理结构图,从图中我们可以看到,预测控制的主要特点。 即建立预测模型;采用滚动优化策略,采用模型误差反馈矫正。这也是预测控制 的本质所在。下面将对这三个特点一一说明。2.2预测控制基本原理1、预测模型:预测模型的功能是根据对象历史信息和未来输入对对象输出 进行预测,它是被控对象的准确模型。这里只强调模型的功能而不强调其结构形

3、式。因此,预测模型可以是状态方程、传递函数等传统的参数模型,对于线性稳 定对象,阶跃响应、脉冲响应这类非参数模型也可以作为预测模型使用。预测模 型具有展示系统未来动态行为的功能,这样,就可以利用预测模型来预测未来时 刻被控对象的输出变化及被控变量与其给定值的偏差,作为控制作用的依据,使 之适应动态系统所具有的因果性的特点,得到比常规控制更好的控制效果。2、滚动优化:预测控制是一种优化控制算法,它是通过某一性能指标的最 优来确定未来的控制作用。这一性能指标涉及到系统未来的行为。如,通常可取 被控对象输出在未来的采样点上跟踪某一期望轨迹的方差最小,性能指标中涉及 到的系统未来的行为,是根据预测模型

4、由未来的控制策略决定的。但是,预测控 制中的优化与传统意义下的离散最优控制有很大的区别,这主要表现在预测控制 中的优化是一种有限时段的滚动优化。每一采样时刻,优化性能指标只涉及到从 该时刻起未来的有限时段,到下一采样时刻,这一优化时段同时向前推移。因此, 预测控制不是用一个对全局相同的优化性能指标,而是在每一采样时刻有一个相 对于该时刻的优化性能标。不同时刻优化性能指标的相对形式是相同的,但其绝 对形式,即,所包含的时间区域是不同的。在预测控制中,优化不是一次离线进 行,而是反复在线进行,这就是滚动优化的含义。虽然各个不同时刻的优化指标 的相对形式是相同的,每一步实现的是静态参数的优化,但因为

5、其包含的时间区 域不同,从控制的全过程看,实现的是动态的优化。因而预测控制被称为是“滚 动优化”的算法。与一般最优控制中的全局优化相比,预测控制中的滚动优化只 能得到全局的次优解,但由于它的优化始终建立在实际过程的基础上,使控制结 果达到实际意义上的最优控制,能够有效地克服工业过程控制中的模型不精确、 非线性、时变等不确定性的影响。3、反馈校正:预测控制是一种闭环控制算法,预测算法在进行滚动优化时, 优化的基点应与系统实际一致。但作为基础的预测模型,只是对象动态特性的粗 描述,由于实际系统中存在的非线性、模型失配、干扰等因素,基于不变模型的 预测不可能和实际情况完全相符,这就需要用附加的预测手

6、段补充模型预测的不 足,或者对基础模型进行在线修正。滚动优化只有建立在反馈校正的基础上,才 能体现出其优越性。因此,预测控制算法在通过优化确定了一系列未来的控制作 用后,为了防止模型失配或环境干扰引起控制对理想状态的偏离,并不是把这些 控制作用逐一全部实施,而只是实现本时刻的控制作用。到下一采样时刻,则首 先检测对象的实际输出,并利用这一实时信息、对基于模型的预测进行修正,然 后再进行新的优化。反馈校正的形式是多样的,可以在保持预测模型不变的基础 上,对未来的误差作出预测并加以补偿,也可以根据在线辨识的原理直接修改预 测模型。不论取何种校正形式,预测控制都把优化建立在系统实际的基础上,并 力图

7、在优化时对系统未来的动态行为作出较准确的预测。因此,预测控制中的优化不仅基于模型,而且利用了反馈信息,因而构成了闭环优化。2.3 DMC控制策略DMC算法的基本原理DMC(Dynamic Matrix Control)算法是基于被控对象 单位阶跃响应非参数模型的预测控制算法。通过反馈校正和滚动优化当前和未来 时刻的控制量,使得输出响应符合预先设定的轨迹。DMC动态矩阵控制是一种 用被控对象的阶跃响应特性来描述系统动态模型的预测控制算法。三、模型建立3.1模型和辨识算法的选择已知加热炉温度被控系统的模型可以表达为如下形式,_且已知参数范围: 1K5,100T2500, 50T1200, 8.5D

8、11.5现从生产现场采集到的输入输出运行数据存放在文件u和yi中(采样间隔是5秒)。G(s)= -e办T s 2 +Ts +1辨识算法分别用一次最小二乘算法和递推最小二乘算法对被控对象进行辨 识。最小二乘法是一种数学优化技术。它通过最小化误差的平方和寻找数据的最 佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数 据与实际数据之间误差的平方和为最小。3.2辨识算法介绍1、一次最小二乘算法数学原理:观测矩阵H和LL=l (3), l (4),., l (n)T二/可-1u (2) u口 -1 -1 u (3)u (2)H=-.1 (n 1) 1 (n 2) u (n 1) u

9、 (n 2)被辨识参数矩阵C=1,a2,b1,b2t公式 1: C = ( HtH )-1 HtL用MATLAB程序编程如下:%load y22;load u;u=u;y=y22;D=1;%导入输入输出序列%给u,y赋值%设置纯迟延为1N=length(u);for i=D+3:N%设置步长H1(i-D-1,:)=-y(i-D),-y(i-D-1),u(i-D-1),u(i-D-2);end%此循环为求观测矩阵HH3=H1*H1;H4=pinv(H3);%矩阵求逆C1=H4*H1*y(D+2:N);%由公式1求得被辨识参数矩阵Ca11=C1(1),a21=C1(2),b11=C1(3),b21

10、=C1(4), %分离参数z=tf(z,5);%设置算子Gz1=(b11*z+b21)/(zA2+a11*z+a21)%系统的离散时间域模型Gc1=d2c(Gz1)%系统的连续时间域模型%其程序的流程框图如图(2)所示:辨识结果如下:a11 =-1.1505a21 =0.1779b11 =0.0365b21 =0.0208Transfer function:0.03651 z + 0.02077zA2 - 1.151 z + 0.1779Sampling time: 5Transfer function:1.375e-013 s + 0.004834sA2 + 0.3453 s + 0.002

11、314图(2) 一次最小二乘辨识程序流程框图2、递推最小二乘算法数学原理:公式(2): K(i) = P(i -1)h(i)hT (i)P(i - 1)h(i) + -1 A (i)公式(3): C(i) = C(i -1) + K(i)l(k) - hT(i)C(i -1)公式(4): P(i) = P(i -1) - K(i)Kt (i)hT (i)P(i - 1)h(i) + 二 A (i)注:其中的H阵和L阵形式见一次辨识算法部分。利用MATLAB程序编程如下:%load y22;load u;%导入输入输出数据u=u;y=y22;D=1;N=length(u); %数据赋值,设置步长

12、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);%设置相对误差矩阵并赋初值for i=D+3:N% 由公式 2,3,4 求 K,C,P 阵H1=-y(i-D-1),-y(i-D-2),u(i-D-1),u(i-D-2);x1=H1*P1*H1+1;x2=pinv(x1);%加权矩阵是单位阵。t1=y (i)-H1*C1;C2=C1+(K1*t1);E1=C2-C1;E2=E

13、1./C1;K1=P1*H1*x2;%由公式2求出K值%由公式3求出被辨识参数%求参数当前值与上一次值的误差%求参数的相对变化E3=0;%给收敛判定判定误差赋初值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;%给下次用if E3

14、=e break; %如果参数收敛满足要求,终止计算endenda1x=Cx(:,1);a2x=Cx(:,2);b1x=Cx(:,3);b2x=Cx(:,4);%分离辨识参数矩的列向量for i=4:Nif a1x(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;endend%此处循环选择语句是从参数列向量中分离出最终所需要的辨识参数a12,a22,b12,b22%显示辨识参数z=tf(z,5);%设置算子Gz2=(b12*z+b22)/(z人2+a12*z+a22)%系统的离散时间域模型Gc2=d2c(Gz2)%系统的连续时间域模型%程序设计的流程图如图(3)所示:辨识结果如下所示:a12 =-1.5294a22 =0.5759b12 =0.0371b22 =0.0600Transfer function:0.03715 z + 0.06001 zA2 - 1.529 z + 0.5759Sampling time: 5Transfer function:-0.004176 s + 0.005082 sA2 + 0.1104 s + 0.002436赋输入输出信冷初值”给辨识

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号