线性化多速率模型
你可以线性化Simulink®模型中包含使用不同采样次数的块Simulink控制设计™软件默认情况下,线性化工具:
使用零阶保持器转换方法转换采样时间。
创建线性化模型,其采样时间等于线性化路径上块的最大采样时间。
您可以通过指定线性化选项更改这些行为中的任何一种,这会影响线性化结果。
改变线性模型的采样时间
默认情况下,软件将采样时间设置为模型中非零采样时间的最小公倍数。在这个速率下,下采样对模型中的所有速率都是准确的。如果默认采样时间不适合您的应用程序,则可以指定不同的采样时间。
中指定线性模型的采样时间模型线性化电路:
在线性分析选项卡上,单击更多的选择.
在“精确线性化的选项”对话框中,在线性化选项卡,在输入采样时间(秒)字段,指定采样时间。您可以指定下列值中的任何一个。
-1
—将采样时间设置为模型中非零采样次数的最小公倍数。0
-创建一个连续时间模型。正标量-使用指定的值作为采样时间。
要在命令行中指定线性模型的采样时间,请创建linearizeOptions
选项设置,并设置SampleTime
选择。
opt =线性化选项;opt.SampleTime = 0.01;
然后,您可以使用此选项集线性化
或slLinearizer
.
改变线性化率转换方法
当您使用多个采样时间线性化模型时,例如连续工厂的离散控制器,该软件使用速率转换算法来创建单速率线性模型。默认的速率转换方法是零阶保持器。
方法中指定速率转换方法模型线性化电路:
在线性分析选项卡上,单击更多的选择.
在“精确线性化的选项”对话框中,在线性化选项卡,在选择汇率转换方法下拉列表中,选择以下两种汇率转换方式。
汇率换算法 何时使用 零级举行
对于阶梯输入,需要在时域中对连续动态进行精确的离散化。 Tustin
连续时间系统与相应离散化系统之间,或原始系统与重采样系统之间,需要良好的频域匹配。 带预整经的塔斯丁
在连续时间系统和相应离散化系统之间,或者原始系统和重采样系统之间,需要在特定频率上有良好的频域匹配。 在可能的情况下向上采样,否则零级保持
如果可能的话,向上取样,否则,塔斯汀
如果可能,上样,否则用预整
上采样离散状态时,尽可能确保增益和相位匹配的上采样动态。只有当新的采样时间是原系统采样时间的整数倍时,才能进行上采样。否则,软件使用交替率转换方法。 如果您选择以下两种汇率转换方式:
带预整经的塔斯丁
如果可能,上样,否则用预整
然后,在进入经前频率字段,指定曲前频率。
若要在命令行中指定速率转换方法,请创建linearizeOptions
对象,并设置RateConversionMethod
而且PreWarpFreq
选项。
opt =线性化选项;opt.RateConversionMethod = 'prewarp';opt.PreWarpFreq = 100;
然后,您可以使用此选项对象线性化
或slLinearizer
.
请注意
如果使用零阶保持器以外的速率转换方法,转换后的状态不再具有与原始状态相同的物理意义。因此,生成的LTI系统中的状态名为“?”
.
多速率线性化算法
本示例演示了Simulink®Control Design™软件用于线性化多速率非线性Simulink模型的算法。
为了说明这些概念,示例展示了使用Control System Toolbox™函数的线性化过程。然后,使用线性化
函数。
的scdmrate
Simulink模型包含五个不同采样次数的块。该模型中的所有线性系统都采用零极增益格式。
sysC
连续时间线性时不变(LTI)系统积分器
-连续时间积分器sysTs1
-离散时间LTI系统,采样时间为0.01秒sysTs2
-离散时间LTI系统,采样时间为0.025秒零级举行
-在0.01秒采样传入信号的阻塞
sysC = zpk(-2,-10,0.1);积分器= zpk([],0,1);sys1 = zpk(-0.7463,[0.4251 0.9735],0.2212,0.01);sysTs2 = zpk([],0.7788,0.2212,0.025);
查看scdmrate
模型。
open_system (“scdmrate”)
的输出之间的线性化模型sysTs2
块。
线性化单个块
线性化过程的第一步是线性化模型中的每个块。饱和和零阶保持块的线性化是一个增益1
.因为LIT块已经是线性的,所以它们是不变的。
使用线性化块查看更新后的模型。
open_system (“scdmratestep1”)
执行汇率转换
由于模型中的块使用不同的采样时间,为了为系统创建一个单速率线性化模型,您必须首先将各种采样率转换为具有代表性的单速率。
的线性化
函数使用迭代速率转换方法。迭代从模型中采样次数的最小公倍数开始。在本例中,采样时间为0、0.01和0.025秒,其最小公倍数为0.05。
第一次速率转换迭代以下一个最快的速率对具有最快采样率的块的组合进行重新采样。在这个例子中,第一次迭代转换线性化连续时间块的组合,sysC
而且积分器
,到0.01的采样时间使用零阶保持器连续到离散转换。
sysC_Ts1 = c2d(sysC*Integrator,0.01);
数据块sysC
而且积分器
现在被sysC_Ts1
.
open_system (“scdmratestep2”)
下一次迭代将采样时间为0.01的所有块转换为0.025的采样时间。在本例中,采样率为0.01的所有块构成一个闭环系统。因此,在转换它们的采样率之前,线性化算法先计算闭环系统的响应。
sysCL =反馈(sysc1 *sysC_Ts1,1);
接下来,零阶保持方法将闭环系统从0.01秒的采样时间转换为0.025秒。
sysCL_Ts2 = d2d(sysCL,0.025);
该系统sysCL_Ts2
然后替换模型中的反馈循环。
open_system (“scdmratestep3”)
最后迭代对闭环系统与模型的组合进行重新采样sysTs2
从0.025秒到0.05秒的采样时间块。
sys1 = d2d(sysCL_Ts2* syss2,0.05)
sys1 = 0.0001057 (z + 22.76) (z + 0.912) (z - 0.9048) (z + 0.06495 ) ------------------------------------------------------- ( z - 0.01373) (z - 0.6065) (z - 0.6386) (z - 0.8588) (z - 0.9754)样品时间:0.05秒离散时间零/钢管/增益模型。
使用Simulink控制设计函数线性化模型
的线性化
函数实现了线性化多速率模型的迭代过程。
要线性化模型,首先指定线性化输入和输出点。
Io (1) = linio(“scdmrate /常数”, 1“输入”);Io (2) = linio(“scdmrate / sysTs2”, 1“openoutput”);
线性化模型并将得到的状态空间模型转换为零极增益格式。
Sys2 = zpk(线性化(“scdmrate”, io))
从输入“常数”输出sys2 =“sysTs2”:0.0001057 (z + 22.76) (z + 0.912) (z - 0.9048) (z + 0.06495 ) ------------------------------------------------------- ( z - 0.6065) (z - 0.6386) (z - 0.8588) (z - 0.9754) (z - 0.01373)样品时间:0.05秒离散时间零/钢管/增益模型。
该模型与人工计算的模型相匹配。
波德(sys1 sys2)