主要内容

本页采用了机器翻译。点击此处可查看英文原文。

balred

(不建议)模型阶数缩减

    不推荐使用 balredbalredOptions请改用 reducespec (Control System Toolbox) (自 R2023b 起)。有关更新代码的信息,请参阅版本历史记录

    说明

    [rsys,info] = balred(sys,order) 计算了线性时不变 (LTI) 模型 sys 的降阶逼近 rsys。所需阶数(状态数)由 order 指定。您可以通过将 order 设置为一个整数向量来同时尝试多种阶数,此时 rsys 是一个包含简化模型的数组。balred 还会返回一个结构体 info,其中包含额外信息,例如汉克尔奇异值 (HSV)、误差界、正则化级别以及格拉米安矩阵的乔利斯基因子。

    [~,info] = balred(sys) 返回结构体 info,而无需计算降阶模型。您可以根据所需的精度,利用这些信息选择降阶模型 order

    注意

    如果关注性能,请利用上述语法获得的信息选择所需的模型阶数,然后使用 rsys = balred(sys,order,info) 计算降阶模型,从而避免重复计算汉克尔奇异值。

    [___] = balred(___,opts) 使用您通过 balredOptions 指定的 opts 选项来计算简化模型。您可以指定其他选项,用于消除状态、使用绝对误差控制或相对误差控制、侧重特定时间或频率带,以及区分稳定模式和不稳定模式。请参阅 balredOptions 以创建和配置选项集 opts

    示例

    balred(sys) 在绘图上显示汉克尔奇异值和逼近误差。使用 hsvplot (Control System Toolbox) 自定义此图。

    示例

    全部折叠

    计算由以下方程给出的系统的降阶逼近:

    G ( s ) = ( s + 0 . 5 ) ( s + 1 . 1 ) ( s + 2 . 9 ) ( s + 1 0 - 6 ) ( s + 1 ) ( s + 2 ) ( s + 3 ) .

    创建模型。

    sys = zpk([-0.5 -1.1 -2.9],[-1e-6 -2 -1 -3],1);

    在稳定/不稳定分解中,将位于 s = 1 0 - 6 的极点从稳定项中剔除。要实现这一点,请将 balredOptionsOffset 选项设置为一个大于您要排除的极点的值。

    opts = balredOptions('Offset',0.001,'StateProjection','Truncate');

    可视化汉克尔奇异值 (HSV) 和逼近误差。

    balred(sys,opts)

    红色的 HSV 表示其与不稳定模式相关。

    现在,使用指定的选项计算二阶逼近。

    [rsys,info] = balred(sys,2,opts);
    rsys
    rsys =
     
      0.99113 (s+0.5235)
      -------------------
      (s+1e-06) (s+1.952)
     
    Continuous-time zero/pole/gain model.
    

    请注意,在简化模型 rsys 中,-1e-6 处的极点似乎没有变化。

    比较原始模型与降阶模型的响应。

    bodeplot(sys,rsys,'r--')

    可以观察到,原始模型和降阶模型的波德响应几乎完全一致。

    输入参数

    全部折叠

    动态系统,指定为 SISO 或 MIMO 动态系统模型 (Control System Toolbox)。可用的动态系统可以是连续时间或离散时间的数值线性时不变 (LTI) 模型,例如 tfzpk (Control System Toolbox)ss (Control System Toolbox) 模型。

    sys 具有不稳定极点时,balredsys 分解为稳定部分和不稳定部分,并仅对稳定部分进行逼近。使用 balredOptions (Control System Toolbox) 来指定稳定/不稳定分解的附加选项。

    balred 不支持频率响应数据模型、不确定状态空间模型和广义状态空间模型、PID 模型或稀疏模型对象。

    所需的状态数,指定为一个整数或一个整数向量。您可以通过将 order 设置为一个整数向量来同时尝试多个排序,此时 rys 将返回一个包含简化模型的数组。

    您还可以利用汉克尔奇异值和误差界信息,根据所需的模型保真度来选择简化模型的阶数。

    模型降维的其他选项,以选项集的形式指定。您可以指定其他选项,用于消除状态、使用绝对误差控制或相对误差控制、侧重特定时间或频率带,以及区分稳定模式和不稳定模式。

    请参阅 balredOptions (Control System Toolbox) 以创建和配置选项集 opts

    输出参量

    全部折叠

    降阶模型,以动态系统模型或动态系统模型数组的形式返回。

    有关 LTI 模型的附加信息,以包含以下字段的结构形式返回:

    • HSV - 汉克尔奇异值(状态对输入/输出行为的贡献)。在使输入到状态与状态到输出的能量传递相等的状态坐标系中,汉克尔奇异值衡量了每个状态对输入/输出行为的贡献。汉克尔奇异值之于模型阶,正如奇异值之于矩阵秩。特别是,较小的汉克尔奇异值表明存在可忽略的状态,从而可以简化模型。

    • ErrorBound - 对绝对或相对逼近误差的限制。info.ErrorBound(J+1) 对第 J 阶的误差进行限制。

    • Regularization - 正则化级别 ⍴(仅适用于相对误差)。在此,sys 被替换为 [sys,⍴*I][sys;⍴*I],以确保在所有频率下相对误差均明确界定。

    • RrRo - 格拉米安矩阵的霍尔斯基分解。

    算法

    1. balred 首先将 G 分解为稳定部分和不稳定部分:

      G=Gs+Gu

    2. 当您将 ErrorBound 指定为 absolute 时,balred 会采用 [1] 的平衡截断法来缩减 Gs。该公式基于可控性与可观测性的格拉米安矩阵,计算汉克尔奇异值 (HSV) σj。对于阶数为 r 的序列,其绝对误差 GsGr 上界为 2j=r+1nσj。这里,nGs 中的状态数。

    3. 当您将 ErrorBound 指定为 relative 时,balred 会采用 [2] 的平衡随机截断法来缩减 Gs。对于方阵 Gs,这计算了相位矩阵 F=(W')1G 的 HSV σj,其中 W(s)GG’ 的一个稳定的、最小相位的谱因子:

      W'(s)W(s)=G(s)G'(s)

      对于阶数 r,当 2j=r+1nσj1 时,相对误差 Gs1(GsGr) 上界为:

      j=r+1H(1+σj1σj)12j=r+1nσj

    替代功能

    App

    模型降阶器 (Control System Toolbox)

    实时编辑器任务

    Reduce Model Order (Control System Toolbox)

    参考

    [1] Varga, A., "Balancing-Free Square-Root Algorithm for Computing Singular Perturbation Approximations," Proc. of 30th IEEE CDC, Brighton, UK (1991), pp. 1062-1065.

    [2] Green, M., "A Relative Error Bound for Balanced Stochastic Truncation", IEEE Transactions on Automatic Control, Vol. 33, No. 10, 1988

    版本历史记录

    在 R2006a 之前推出

    全部展开

    另请参阅

    函数

    App

    实时编辑器任务

    主题