MATLAB模型预测控制工具箱函数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 状态空间模型。
1
2213)(232+++++=s s s s s s G 解:MATLAB 命令如下:
其输出结果为: pmod =
1 3 1 0 0 1 0
NaN -2 -2 -1 1 0 0
0 1 0 0 0 0 0
0 0 1 0 0 0 0
0 1 3 1 0 0 0
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 传递函数模型。
4
4)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.0000
1.0000 4.0000 4.0000
0 0.5000 0
3.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设系统传递函数为