当前位置:文档之家› MATLAB模型预测控制工具箱函数

MATLAB模型预测控制工具箱函数

MATLAB模型预测控制工具箱函数8.2 系统模型建立与转换函数前面读者论坛了利用系统输入/输出数据进行系统模型辨识的有关函数及使用方法,为时行模型预测控制器的设计,需要对系统模型进行进一步的处理和转换。

MATLAB的模型预测控制工具箱中提供了一系列函数完成多种模型转换和复杂系统模型的建立功能。

在模型预测控制工具箱中使用了两种专用的系统模型格式,即MPC状态空间模型和MPC传递函数模型。

这两种模型格式分别是状态空间模型和传递函数模型在模型预测控制工具箱中的特殊表达形式。

这种模型格式化可以同时支持连续和离散系统模型的表达,在MPC传递函数模型中还增加了对纯时延的支持。

表8-2列出了模型预测控制工具箱的模型建立与转换函数。

表8-2 模型建立与转换函数8.2.1 模型转换在MATLAB模型预测工具箱中支持多种系统模型格式。

这些模型格式包括:①通用状态空间模型;②通用传递函数模型;③MPC阶跃响应模型;④MPC状态空间模型;⑤ MPC 传递函数模型。

在上述5种模型格式中,前两种模型格式是MATLAB 通用的模型格式,在其他控制类工具箱中,如控制系统工具箱、鲁棒控制工具等都予以支持;而后三种模型格式化则是模型预测控制工具箱特有的。

其中,MPC 状态空间模型和MPC 传递函数模型是通用的状态空间模型和传递函数模型在模型预测控制工具箱中采用的增广格式。

模型预测控制工具箱提供了若干函数,用于完成上述模型格式间的转换功能。

下面对这些函数的用法加以介绍。

1.通用状态空间模型与MPC 状态空间模型之间的转换MPC 状态空间模型在通用状态空间模型的基础上增加了对系统输入/输出扰动和采样周期的描述信息,函数ss2mod ()和mod2ss ()用于实现这两种模型格式之间的转换。

1)通用状态空间模型转换为MPC 状态空间模型函数ss2mod ()该函数的调用格式为pmod= ss2mod (A,B,C,D)pmod = ss2mod (A,B,C,D,minfo)pmod = ss2mod (A,B,C,D,minfo,x0,u0,y0,f0)式中,A, B, C, D 为通用状态空间矩阵;minfo 为构成MPC 状态空间模型的其他描述信息,为7个元素的向量,各元素分别定义为:◆ minfo(1)=dt ,系统采样周期,默认值为1;◆ minfo(2)=n ,系统阶次,默认值为系统矩阵A 的阶次;◆ minfo(3)=nu ,受控输入的个数,默认值为系统输入的维数;◆ minfo(4)=nd ,测量扰的数目,默认值为0;◆ minfo(5)=nw ,未测量扰动的数目,默认值为0;◆ minfo(6)=nym ,测量输出的数目,默认值系统输出的维数;◆ minfo(7)=nyu ,未测量输出的数目,默认值为0;注:如果在输入参数中没有指定m i n f o ,则取默认值。

x0, u0, y0, f0为线性化条件,默认值均为0;pmod 为系统的MPC 状态空间模型格式。

例8-5 将如下以传递函数表示的系统模型转换为MPC 状态空间模型。

12213)(232+++++=s s s s s s G 解:MATLAB 命令如下:其输出结果为: pmod =1 3 1 0 0 1 0NaN -2 -2 -1 1 0 00 1 0 0 0 0 00 0 1 0 0 0 00 1 3 1 0 0 02)MPC 状态空间模型转换为通用状态空间模型函数mod2ss ()该函数的调用格式为[A, B, C, D]= mod2ss(pmod)[A, B, C, D, minfo]= mod2ss(pmod)[A,B,C,D,minfo,x0,u0,y0,f0]= mod2ss(pmod)式中,pmod 为系统的MPC 状态空间模型格式;A,B,C,D 为通用状态空间矩阵;minfo 为构成MPC 状态空间模型的其他描述信息,其说明参见函数ss2mod ()。

2.通用传递函数模型转换为MPC 传递函数模型通用传递函数模型与MPC 传递函数模型的转换函数poly2tfd ()的调用格式为g=poly2tfd (num,den,delt,delay)式中,num 为通用传递函数模型的分子多项式系数向量;den 为通用传递函数模型的分母多项式系数向量;delt 为采样周期,对连续系统,该参数为0;delay 为系统纯时延,对于离散系统,纯时延为采样时间周期的整数倍; g 为被控对象的MPC 传递函数模型。

例8-6 考虑如下的纯时延二阶对象,并将其转换为MPC 传递函数模型。

44)1()(25.0+++=-s s s e s G s 解:MATLAB 命令如下:>> num=[1 1];den=[1 4 4];>> g=poly2tfd(num,den,0,0.5)结果显示:g =0 1.0000 1.00001.0000 4.0000 4.00000 0.5000 03.MPC传递函数模型转换为MPC状态空间模型函数tfd2mod()该函数的调用格式为pmod=tfd2mod(delt,ny,g1,g2,……,g25)式中,delt为采样时间;ny为输出个数;g1,g2,……为SISO传递函数,对应多变量系统传递函数矩阵的各个元素按行向量顺序排序构成的向量,其最大个数限制为25;pmod为系统的MPC状态空间模型。

4.MPC阶跃响应模型与其他模型格式之间的转换函数mod2step()、tfd2step()和ss2step()分别用于将MPC状态空间模型、MPC 传递函数模型和通用状态空间模型转换为MPC阶跃响应模型。

下面对这个三函数的用法进行说明。

1)MPC状态空间模型转换为MPC阶跃响应模型函数mod2step()plant=mod2step(pmod,tfinal)[plant, dplant]=mod2step(pmod,tfinal,delt,nout)式中,pmod为系统的MPC状态空间模型;tfinal为阶跃响应模型的截断时间;delt为采样周期,默认值由MPC状态空间模型的参数minfo(1)决定;nout为输出稳定性向量,用于指定输出的稳定性。

对于稳定的系统,nout等于输出的个数;对于具有一个或多个积怨分输出的系统,nout为一个长度等于输出个数的向量,该向量对应积分输出的分量为0,其余分量为1;plant为对象在受控变量作用下的阶跃响应系数矩阵;dplant为对象在扰动作用下阶跃响应矩阵。

2)MPC传递函数模型转换为MPC阶跃响应模型函数tfd2step()该函数的调用格式为plant=tfd2step(tfinal,delt,nout,g1)plant=tfd2step(tfinal,delt,nout,g1,……,g25)式中,tfinal为阶跃响应的截断时间;delt为采样周期;nout为输出稳定性向量,参见函数mod2step()的有关说明;g1,……,g25为SISO传递函数,对应多变量系统传递函数矩阵的各个元素按行向量顺序排列构成的向量,其最大个数限制为25;plant为对象的阶跃响应系统矩阵。

例8-8设系统传递函数为132)(2+++=s s s s G 将其转换为阶跃响应模型。

解:MATLAB 命令如下:>> num=[1 2];den=[1 3 1]; >> tf1=poly2tfd(num,den,0,0);>> plant=tfd2step(5,0.1,1,tf1);>> plotstep(plant)由阶跃响应模型绘制的系统阶跃响应曲线如图8-5所示。

图8-5 系统阶跃响应曲线8.4 基于阶跃响应模型的控制器设计与仿真函数基于系统的阶跃响应模型进行模型预测控制器设计的方法称为动态矩阵控制方法。

该方法是采用工程上易于获取的对象阶跃响应模型,算法较为简单,计算量较少,鲁棒性较强,适用于纯时迟、开环渐近稳定的非最小相位系统,在工业过程控制中得到成功应用。

MATLAB 的模型预测控制工具箱提供了对动态矩阵控制方法的支持,有关的函数能够基于阶跃响应模型的模型预测控制器设计与仿真,见表8-3。

表8-3 动态矩阵控制设计与仿真函数例8-12 考虑如下的双输入输出纯时延对象,其传递函数矩阵为⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡+-+-++=----14.144.1910.219.1819.106.617.168.12)(3371s e s e s e s e s G s ss s解:MATLAB 程序如下:闭环系统的输出和控制量变化曲线如图1所示。

图1 闭环系统的输出和控制量变化曲线8.4 基于状态空间模型的预测控制器设计函数在MATLAB模型预测控制工具箱中,除了提供基于阶跃响应模型的预测控制器设计功能外,还提供了MPC状态空间模型的预测控制器设计功能。

有关的函数参见表8-4。

表8-4 基于MPC状态空间模型的预测控制器设计函数函数名功能scmpc() smpccon() smpccl() smpcsim() smpcest() 输入/输出有约束的状态空间模型预测控制器设计输入/输出无约束的状态空间模型预测控制器设计计算输入/输出无约束的模型预测闭环控制系统模型输入有约束的模型预测闭环控制系统仿真状态估计器设计8.4.1 输入/输出有约束的状态空间模型预测控制器设计函数scmpc()用于进行输入/输出有约束条件下的状态空间模型预测控制器设计,该函数的调用格式为[y, u, ym]=scmpc(pmod, imod, ywt, uwt, M, P, tend, r, ulim, ylim, kest, z, v, w, wu)式中,pmod为MPC状态空间模型格式的对象状态空间模型,用于仿真;imod为MPC状态空间模型格式的对象部模型,用于预测控制器设计;ywt为二次型性能指标的输出误差加权矩阵;uwt为二次型性能指标的控制量加权矩阵;M为控制时域长度;P为预测时域长度;tend为仿真的结束时间;r为输入设定值或参考轨迹;ulim=[ulow uhigh delu],式中,ulow为控制变量的下界,uhigh为控制变量的上界,delu为控制变量的变化率约束;ylim=[ylow yhigh],式中,ylow为输出的下界,yhigh为输出的上界;kest为估计器的增益矩阵;z为测量噪声;v为测量扰动;w为输出未测量扰动;wu为施加到控制输入的未测量扰动;y为系统响应;u为控制变量;ym为模型预测输出。

例8-15 考虑如下的双输入输出纯时延对象,其传递函数矩阵为⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡+-+-++=----14.144.1910.219.1819.106.617.168.12)(3371s e s e s e s e s G s ss s解:MATLAB 程序如下:图2 闭环系统的输出和控制量变化曲线[1] 国勇. 智能控制及其MATLAB实现[M]. :电子工业, 2005.。

相关主题