主要内容

prescale

状态空间模型的最优缩放

语法

scaledsys = prescale(sys)
scaledsys = prescale(sys,focus)
[scaledsys,info] = prescale(...)
prescale(sys)

说明

scaledsys = prescale(sys) 对状态空间模型 sys 的状态向量的条目进行缩放,以最大化后续频域分析的精度。缩放后的模型 scaledsyssys 等效。

scaledsys = prescale(sys,focus) 指定频率区间 focus = {fmin,fmax}(以 rad/TimeUnit 为单位),其中 TimeUnitsysTimeUnit 属性中指定的系统时间单位,在该区间内最大化精度。当 sys 同时包含慢动态和快动态,且无法在整个动态范围内通过缩放实现高精度时,此功能尤为实用。默认情况下,prescale 尝试在主要动态特性对应的频带内最大化精度。

[scaledsys,info] = prescale(...) 还会返回结构体 info,包含下表所示的字段。

SL左侧缩放因子
SR右侧缩放因子
Freqs用于测试精度的频率
RelAcc这些频率下的保证相对精度

测试频率位于指定的频率区间 focus 内。缩放后的状态空间矩阵为:

As=TLATRBs=TLBCs=CTREs=TLETR

其中 TL = diag(SL) 且 TR = diag(SR)。对于显式模型 (E = [ ]),TLTR 互为逆矩阵。

prescale(sys) 打开一个交互式 GUI,用于:

  • 可视化 sys 的精度权衡。

  • 调整 sys 精度最大化的频率区间。

有关缩放及缩放工具 GUI 的使用方法的详细信息,请参阅Scaling State-Space Models

提示

大多数频域分析命令会执行与 scaledsys = prescale(sys) 等效的自动缩放。

时域仿真无需缩放,且缩放可能导致 initiallsim 仿真中使用的初始条件 x0 失效。

版本历史记录

在 R2008b 中推出

另请参阅