MATLAB模型预测控制工具箱函数..
- 格式:doc
- 大小:160.50 KB
- 文档页数:10
以下是一个简单的MPC(模型预测控制)的MATLAB代码示例:matlab% MPC参数N = 20; % 预测步长nx = 2; % 状态变量数nu = 1; % 控制变量数Q = eye(nx); % 状态权重矩阵R = 1; % 控制权重x0 = [0; 0]; % 初始状态% 系统模型A = [1 1; 0 1];B = [0.5; 1];% MPC优化问题opts = optimoptions('quadprog','Algorithm','interior-point-convex');for k = 1:N% 构建预测模型Xk = A*x0 + B*u;% 构建目标函数和约束条件H = blkdiag(Q,R);f = [Xk'*Q*Xk; R*u^2];Aeq = [A B-1];beq = Xk;lb = [-inf; -1];ub = [inf; 1];% 求解优化问题U = quadprog(H,f,[],[],Aeq,beq,lb,ub,opts);% 应用控制量u = U(2);x0 = A*x0 + B*u;end在这个示例中,我们使用了一个简单的线性系统模型,其中状态变量为位置和速度,控制变量为加速度。
我们使用了一个预测步长为20的MPC控制器,其中状态权重矩阵Q和控制权重R都设置为单位矩阵。
在每个时间步中,我们构建了一个预测模型,并使用quadprog 函数求解了一个二次规划问题,以获得最优控制量。
最后,我们将控制量应用于系统,并更新状态变量以进行下一个时间步的预测。
模型预测控制matlab工具箱实例模型预测控制(MPC)是一种广泛应用于工业过程控制的高级控制策略。
Matlab提供了用于设计和实施MPC的工具箱。
本实例演示了如何使用Matlab MPC工具箱执行MPC控制。
1. 创建一个MPC对象首先,我们需要创建一个MPC对象。
使用mpc对象构造函数可以创建MPC对象。
例如:```mpcobj = mpc(object func, sample time, prediction horizon, control horizon);```其中,object func是被控制系统的离散时间状态空间模型的函数句柄;sample time是采样时间,prediction horizon是预测时域长度,control horizon是控制时域长度。
2. 配置MPC对象接下来,我们需要配置MPC对象。
可以使用MPC对象的属性来进行配置。
例如:```mpcobj.Model.Plant = ss(A,B,C,D);mpcobj.Model.Noise = 'Custom';mpcobj.Model.Disturbance = 'Custom';mpcobj.PredictionHorizon = 10;mpcobj.ControlHorizon = 2;mpcobj.Weights.OV = 1;mpcobj.Weights.MV = 0.1;mpcobj.Weights.ECR = [0.1 0.2];mpcobj.MV = struct('Min',-10,'Max',10);```上述代码中,我们设置了被控制系统的动态模型,噪声模型和干扰模型的类型。
我们还设置了预测时域长度,控制时域长度和权重。
3. 模拟仿真现在,我们可以使用MPC对象进行控制。
首先,我们需要对系统进行模拟仿真以生成实验数据。
可以使用sim函数进行仿真。
MATLAB 主要工具箱简介1.控制系统工具箱控制领域的计算机辅助设计自产生以来就一直受到控制界的重视。
而MATLAB 正是控制领域进行计算及辅助设计的一种非常好的工具语言。
MATLAB 的控制系统工具箱(Control System Toolbox)为用户提供了许多控制领域的专用函数,实际上,这个工具箱就是一个关于控制系统的算法的集合。
通过使用这些专用函数,月户可以方便地实现控制系统的部分应用。
此外,使用MATLAB 的控制系统工具箱还可以方便地进行模型间的转换。
下面列出了该工具箱在控制领域的主要应用:(1)连续系统设计和离散系统设计;(2)传递函数和状态空间;(3)模型转换;(4)频域响应;(5)时域响应;(6)根轨迹和极点配置。
2.小波工具箱小波工具箱(Wavelet Toolbox)在信号处理领域的主要应用包括:(1)基于小波的分析和综合;(2)图形界面和命令行接口;(3)连续和离散小波变换及小波包;(4)一维、二维小波;(5)自适应去噪和压缩。
3.模糊逻辑工具箱模糊逻辑工具箱(FuzzyLogicToolbox)是MATLAB 用于解决模糊逻辑问题的工具箱。
其主要应用包括:(1)友好的交互设计界面;(2)自适应神经——模糊学习、聚类以及Sugeno 推理;(3)支持SIMULINK 动态仿真;(4)可生成C 语言源代码用于实时应用。
4.神经网络工具箱神经网络工具箱(NeuralNetworkToolbox)的主要应用包括:(1)BP 网络;(2)Hopfield,Kohonen 网络:(3)径向基函数网络:(4)竞争、线性、Sigmoidal 等传递函数;(5)前馈、递归等网络结构;(6)性能分析及应用;(7)感知器:(8)自组织网络。
5.通信工具箱通信工具箱(Communication Toolbox)提供了100 多个函数和150 多个SIMULINK 模块用于通信系统的仿真和分析,其主要应用包括:(1)信号编码;(2)调制解调;(3)滤波器和均衡器设计;(4)通道模型;(5)同步:(6)多路访问;(7)错误控制编码。
matlab预测控制工具箱一、设计示例注:示例均为matlab自带1、伺服系统控制器的设计图4-1 位置伺服系统原理图(1)伺服系统数学模型位置伺服系统由直流电机、变速箱、弹性轴、负载等组成(见图4-1)。
可用如下微分方程来描述:上式中的变量定义及取值见表4-1。
将上述微分方程写成状态方程形式,有其中,。
(2)控制目标及约束控制目标:在电压V的控制下,使过载角位置跟踪指定值。
输出量仅有可观测。
弹性轴承受的强度有一定的限制,因此对输出力矩T的赋值作一定约束:对输入电压的约束:该系统有一个输入V,两个输出:(可测量)和T(不可测量)。
(3)在matlab中定义该系统的状态空间模型首先需要在matlab中对系统的数学模型进行定义。
可以直接在命令行输入mpcmotormodel(建议做法),也可以在命令行中输入下列命令:% DC-motor with elastic shaft%%Parameters (MKS)%-----------------------------------------------------------Lshaft=1.0; %Shaft lengthdshaft=0.02; %Shaft diametershaftrho=7850; %Shaft specific weight (Carbon steel)G=81500*1e6; %Modulus of rigiditytauam=50*1e6; %Shear strengthMmotor=100; %Rotor massRmotor=.1; %Rotor radiusJmotor=.5*Mmotor*Rmotor^2; %Rotor axial moment of inertia Bmotor=0.1; %Rotor viscous friction coefficient (A CASO)R=20; %Resistance of armatureKt=10; %Motor constantgear=20; %Gear ratioJload=50*Jmotor; %Load inertiaBload=25; %Load viscous friction coefficientIp=pi/32*dshaft^4; %Polar momentum of shaft(circular) sectionKth=G*Ip/Lshaft; %Torsional rigidity(Torque/angle)Vshaft=pi*(dshaft^2)/4*Lshaft; %Shaft volumeMshaft=shaftrho*Vshaft; %Shaft massJshaft=Mshaft*.5*(dshaft^2/4); %Shaft moment of inertiaJM=Jmotor;JL=Jload+Jshaft;Vmax=tauam*pi*dshaft^3/16; %Maximum admissible torqueVmin=-Vmax;%Input/State/Output continuous time form%----------------------------------------------------------AA=[0 1 0 0;-Kth/JL -Bload/JL Kth/(gear*JL) 0;0 0 0 1;Kth/(JM*gear) 0 -Kth/(JM*gear^2)-(Bmotor+Kt^2/R)/JM];BB=[0;0;0;Kt/(R*JM)];Hyd=[1 0 0 0];Hvd=[Kth 0 -Kth/gear 0];Dyd=0;Dvd=0;% Define the LTI state-space modelsys=ss(AA,BB,[Hyd;Hvd],[Dyd;Dvd]);(4)利用MPCTOOL界面设计控制器第一步:导入模型在命令行窗口中输入mpctool,工具箱界面出来后点击Imort Plant…,此时界面如4-2所示。
在MATLAB中,MPC(模型预测控制)函数可用于实现模型预测控制(MPC)算法。
MPC是一种先进的控制策略,用于处理具有预测模型的连续或离散时间线性系统。
它通过优化性能指标并限制未来的行为,实现对系统的控制。
要使用MATLAB的MPC函数,您需要遵循以下步骤:
1. 定义模型:首先,您需要定义系统的模型。
这可以是一个线性时不变(LTI)系统,也可以是一个非线性系统。
您可以使用MATLAB 的控制系统工具箱中的函数(如`tf`,`ss`等)来定义模型。
2. 定义优化问题:接下来,您需要定义优化问题。
优化问题应包括预测模型、性能指标和约束条件。
在MPC中,预测模型通常是一个预测矩阵,用于预测未来的系统状态。
性能指标可以是控制变量的权重或状态变量的权重。
约束条件可以是控制变量的限制或状态变量的限制。
3. 调用MPC函数:一旦您定义了模型和优化问题,您可以使用MATLAB的MPC函数来求解优化问题并生成控制序列。
常用的MPC函数包括`mpcmin`和`mpcmove`。
4. 应用控制序列:最后,您需要将生成的control sequence应用于系统。
这可以通过使用一个数字或模拟控制器来实现。
这些步骤是使用MATLAB的MPC函数进行模型预测控制的一般流程。
但是,请注意,具体的实现方法可能会因应用而异。
建议查阅MATLAB的官方文档以获取更详细的信息和使用示例。
MATLAB中的模型预测控制算法实现方法1. 引言模型预测控制(Model Predictive Control,MPC)是一种广泛应用于工业过程控制的先进控制策略。
它基于数学模型对系统未来行为进行预测,并通过优化算法计算出最优控制输入,以实现对系统的稳定控制和性能优化。
在MATLAB中,实现MPC算法可以借助一些工具箱和函数,本文将介绍其中一种典型方法。
2. MPC算法的基本原理MPC算法通过建立系统的数学模型,预测系统未来的行为。
在每个控制时刻,MPC算法根据已知的系统状态和控制目标,计算出最优的控制输入,并将其应用于系统中。
这个优化问题可以通过求解一个多目标优化问题来完成。
3. MATLAB中的MPC工具箱MATLAB的Control System Toolbox提供了一个用于设计和实现MPC控制器的工具箱。
首先,我们需要使用命令"mpc"创建一个空白的MPC对象。
然后,我们可以通过指定MPC对象的属性来定义系统模型、控制目标、约束条件等。
4. 构建系统模型在MPC算法中,必须先构建系统的数学模型。
在MATLAB中,可以使用State Space工具箱中的ss或tf函数构建系统模型。
我们可以根据实际系统的特点选择不同的模型结构。
例如,对于连续时间系统,可以使用连续时间状态空间模型或传递函数模型;对于离散时间系统,可以使用离散时间状态空间模型或传递函数模型。
5. 设置MPC对象属性创建MPC对象后,我们需要设置一些重要的属性。
其中,PredictionHorizon属性定义了预测时间窗口的长度,即MPC算法根据模型预测未来的时长;ControlHorizon属性定义了控制时间窗口的长度,即MPC算法计算最优控制输入的时间长度。
一般来说,预测时间窗口应大于控制时间窗口。
6. 设定控制目标与约束条件MPC算法的目标是使系统的输出尽可能地接近控制目标,并同时满足一定的约束条件。
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 ,则取默认值。
模型预测控制及其MATLAB实现模型预测控制(Model Predictive Control, MPC)是一种先进的控制算法,用于处理动态系统的控制问题。
MPC通过在未来的时间范围内优化控制动作序列,以使系统的性能指标最小化,从而实现对系统的优化控制。
MPC的核心思想是建立一个系统模型,然后使用该模型来预测系统的行为,并根据预测结果进行优化控制决策。
具体而言,MPC首先使用系统模型对未来的状态和输出进行预测,然后根据预测结果计算出最优的控制动作序列。
接下来,仅施加最优的第一个控制动作,并在下一个采样时刻重复该过程。
这种迭代优化的过程可以使系统在每个采样时刻都能够进行最优的控制。
MPC的优势在于它可以处理多变量、非线性和时变系统,并且可以轻松地加入约束条件。
此外,MPC还能够在面对不确定性和扰动时提供鲁棒性,以确保控制系统的稳定性和性能。
因此,MPC在多个领域中都得到了广泛的应用,例如化工、能源、机械等。
在MATLAB中,有多种方法可以实现MPC控制算法。
最简单的方法是使用MPC工具箱,该工具箱提供了一套全面的函数和工具,用于建立系统模型、设定控制参数、优化控制决策等。
使用MPC工具箱,可以通过以下几个步骤来实现MPC控制:1.建立系统模型:使用MATLAB的系统建模工具箱,建立系统的状态空间模型或传递函数模型。
2.设定控制参数:根据系统的性能指标和控制目标,设定MPC控制的参数,例如控制时域、控制权重和约束条件等。
3.优化控制决策:使用MPC工具箱提供的优化函数,根据系统模型和控制参数,计算最优的控制动作序列。
4.实施控制动作:根据最优的控制动作序列,施加最优的第一个控制动作,并等待下一个采样时刻。
5.重复步骤3和4:在每个采样时刻,重复步骤3和4,以实现迭代优化控制。
请注意,MPC控制算法的实现还可能涉及其他细节,例如状态估计、鲁棒性设计和性能评估等。
因此,在具体应用中,可能需要根据系统的特点和需求进行相应的调整和扩展。
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状态空间模型的预测控制器设计函数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 程序如下:[1] 李国勇. 智能控制及其MATLAB实现[M]. 北京:电子工业出版社, 2005.。