设定目标的操纵变量
操纵变量多于输出时,假设静态增益矩阵是满秩,控制器可以达到任意稳态点的输出空间使用许多不同的可能的组合被操纵的变量值。
经济或操作的原因,在这种情况下,你可以选择设定目标值,和一些相应的非零成本函数的权重,对于一些操纵变量(多余数量的操纵变量对输出的数量)。剩下的操纵变量可以达到所需要的值跟踪的稳态输出空间中任意一点。
这个例子展示了如何设计一个模型预测控制器的工厂和两个输入和一个输出目标定位点的两个操纵变量。
定义植物模型
线性模型具有两个输入和一个输出。定义植物作为一个传递函数,将其转化为状态空间,指定初始状态,并提取植物矩阵仿真软件模型中以备后用。金宝app
工厂= ss (tf ({[3 1], [2 1]}, {[1 2 *。3 1],[1 2 *。5 1]}));x0 = [0 0 0 0) ';一个= plant.A;B = plant.B;C = plant.C;D = plant.D;
MPC控制器设计
创建一个MPC控制器采样时间0.4
年代,预测和控制的视野20.
和5
步骤,分别。
mpcobj = mpc(5)植物,0.4,20日;
- - >“权重。ManipulatedVariables”是空的。假设默认的0.00000。- - >“权重。ManipulatedVariablesRate”是空的。假设默认的0.10000。- - >“权重。OutputVariables”是空的。假设默认的1.00000。
为操纵变量和输出指定权重。
mpcobj.weights。操纵= 0.3 [0];%重量差异MV # 1 # 1 -目标mpcobj.weights。manipulatedrate = [0 0];mpcobj.weights。输出= 1;
为被控变量定义的约束。
mpcobj。MV =结构(“杀鼠灵”{-0.5,-0.5},“RateMax”{0.5,0.5});
为一个操纵变量设置一个目标
指定目标定位点u = 2
第一操纵变量。
mpcobj.MV (1) .Target = 2;
模拟与仿真软件金宝app
定义模型名称和打开仿真软件模型。金宝app注意,引用一个方波的输出。然后模拟模型,使用sim卡
命令。
mdl =“mpc_utarget”;open_system (mdl) sim (mdl);
- - >将模型转换为离散时间。- - >输出假设干扰# 1添加到测量输出集成的白噪声。- - >”模型。噪音”是空的。假设白噪声在每个测量输出。
第一个情节显示第一个操纵变量达到设定值后大约6秒,而植物输出达到参考。
bdclose (mdl)%关闭仿真软件模型金宝app