模型降阶
模型降阶命令
您可以使用下表中显示的命令得出降阶的 SISO 和 MIMO 模型。
模型降阶方法
要降低模型的阶数,可以执行以下任一操作:
使用
sminreal消除在结构上与输入或输出断开连接的状态。要进行模型降阶,最好一开始就消除在结构上断开连接的状态,因为此过程成本极低,不涉及任何数值计算。
使用
balred计算模型的低阶逼近。使用
minreal消除零极点对组相消。
示例:气化器模型
此示例说明气化器的模型,气化器是将固体材料转换为气体的设备。原始模型是非线性模型。
加载模型
要加载模型的线性化版本,请在 MATLAB® 提示符下键入
load ltiexamples
气化器示例存储在名为 gasf 的变量中。如果您键入
size(gasf)
您将得到
具有 4 个输出、6 个输入和 25 个状态的状态空间模型。
SISO 模型降阶
如 MIMO 模型降阶中所述,在尝试对完整的 MIMO 模型降阶之前,您可以降低单个 I/O 对组的阶数,以了解模型降阶工具的工作原理。
此示例重点说明气化器的一个输入/输出对组,即输入 5 到输出 3。
sys35 = gasf(3,5);
在尝试执行模型降阶之前,通过键入以下命令检查零极点位置
pzmap(sys35)
使用缩放功能或通过键入以下内容,在生成的图上放大原点附近区域
axis([-0.2 0.05 -0.2 0.2])
下图显示了结果。
气化器模型的零极点图(放大)

由于该模型显示零点接近极点能够相消,因此它适合模型降阶。
要找到此 SISO 模型的低阶简化,请执行以下步骤:
通过使用汉克尔奇异值 (HSV) 图检查每个状态的相对能量,为简化的系统选择适当的阶数。键入命令
以创建 HSV 图。hsvd(sys35)
使用右键点击菜单更改为对数刻度会生成下图。

汉克尔奇异值较小表明关联状态对 I/O 行为的影响微乎其微。此图显示,丢弃最后 10 个状态(与 10 个最小的汉克尔奇异值相关联)对逼近误差几乎没有影响。
要删除最后 10 个状态并创建一个 15 阶逼近,请键入
键入rsys35 = balred(sys35,15);
size(rsys35)可以看到您的简化系统仅包含 15 个状态。使用 bode 命令比较全阶和降阶模型的波特响应:
下图显示了命令结果。bode(sys35,'b',rsys35,'r--')

如图中曲线的重叠所示,简化的模型可以良好地逼近原始系统。
您可以通过重复此过程并删除更多状态来尝试进一步降低模型阶数。通过键入以下命令,一次性将 gasf 模型降低到 5 阶、10 阶和 15 阶:
rsys35 = balred(sys35,[5 10 15]);
bode(sys35,'b',rsys35,'r--')

观察误差如何随着阶数的降低而增加。
MIMO 模型降阶
您可以使用与 SISO 模型相同的步骤逼近 MIMO 模型,如下所示:
通过使用汉克尔奇异值 (HSV) 图检查每个状态的相对能量,为简化的系统选择适当的阶数。
键入
以创建 HSV 图。hsvd(gasf)

丢弃最后 8 个状态(与 8 个最小的汉克尔奇异值相关联)应该对生成的 17 阶系统中的误差几乎没有影响。
要删除最后 8 个状态并创建一个 17 阶 MIMO 系统,请键入
键入rsys=balred(gasf,17);
size(gasf)可以看到您的简化系统仅包含 17 个状态。为了便于直观地检查逼近误差,请使用奇异值图而不是 MIMO 波特图。键入
以创建奇异值图,将原始系统与降阶系统的误差进行比较。sigma(gasf,'b',gasf-rsys,'r')

与原始系统相比,降阶系统的误差很小,因此降阶模型可良好逼近原始模型。
致谢
MathWorks® 感谢 ALSTOM® Power UK 允许在此示例中使用其气化器模型。此模型已在 ALSTOM Benchmark Challenge on Gasifier Control 中发布。有关更多详细信息,请参阅:Dixon, R., (1999), "Advanced Gasifier Control," Computing & Control Engineering Journal, IEE, Vol. 10, No. 3, pp. 92–96。