MATLAB模型预测控制工具箱函数
8.2系统模型建立与转换函数
前面读者论坛了利用系统输入/输出数据进行系统模型辨识的有关函数及使用方
法,为时行模型预测控制器的设计,需要对系统模型进行进一步的处理和转换。MATLAB的模型预测控制工具箱中提供了一系列函数完成多种模型转换和复杂系统模型的建立功能。
在模型预测控制工具箱中使用了两种专用的系统模型格式,即MPC状态空间模型和MPC传递函数模型。这两种模型格式分别是状态空间模型和传递函数模型在模型预测控制工具箱中的特殊表达形式。这种模型格式化可以同时支持连续和离散系统模型的表达,在MPC传递函数模型中还增加了对纯时延的支持。表8-2列出了模型预测控制工具箱的模型建立与转换函数。
表8-2模型建立与转换函数
函数名 ss2mod() mod2ss() poly2tfd() tfd2mod() mod2step() tfd2step() ss2step() mod2mod() th2mod() addmod() addmd() addumd() paramod() sermod() appmod() 功能 将通用状态空间模型转换为MPC状态空间模型 将MPC状态空间模型转换为通用状态空间模型 将通用传递函数模型转换为MPC传递函数模型 将MPC传递函数模型转换为MPC状态空间模型 将MPC状态空间模型转换为MPC阶跃响应模型 将MPC传递函数模型转换为MPC附跃响应模型 将通用状态空间模型转换为MPC附跃响应模型 改变MPC状态空间模型的采样周期 将Theta格式模型转换为MPC状态空间模型 将两个开环MPC模型连接构成闭环模型,使其中一个模型输出叠加到另一个模型输入 向MPC对象添加一个或多个测量扰动 向MPC对象添加一个或多未测量扰动 将两个MPC系统模型并型 将两个MPC系统模型串联 用两个MPC系统模型构成增广系统模型 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; 注:如果在输入参数中没有指定minfo,则取默认值。 x0,u0,y0,f0为线性化条件,默认值均为0; pmod为系统的MPC状态空间模型格式。
例8-5将如下以传递函数表示的系统模型转换为MPC状态空间模型。 解:MATLAB命令如下: num=[131]; den=[1221]; 其输出结果为:[A,B,C,D]=tf2ss(num,den); pmod= pmod=ss2mod(A,B,C,D) 1310010 NaN-2-2-1100 0100000 0010000 0131000
2)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传递函数模型。 解:MATLAB命令如下: >>num=[11];den=[144]; >>g=poly2tfd(num,den,0,0.5) 结果显示: g=
01.00001.0000 1.00004.00004.0000 00.50000
3.MPC传递函数模型转换为MPC状态空间模型函数tfd2mod() 该函数的调用格式为
pmod=tfd2mod(delt,ny,g1,g2,……,g25)
式中,delt为采样时间;
ny为输出个数;
g1,g2,……为SISO传递函数,对应多变量系统传递函数矩阵的各个元素按行向量顺序排序构成的向量,其最大个数限制为25;
pmod为系统的MPC状态空间模型。