这个例子展示了如何指定Simulink块或子系统的线性化。金宝app
命令线性化
在Si金宝appmulink控制设计中使用精确的线性化方法给出Simulink模型的线性近似。这种线性化在给定工作点周围的小区域内是有效的。这种方法在大多数Simulink模型中都能很好地工作,但在某些情况下金宝app,您需要修改精确的线性化方法,以考虑不连续的影响或近似微分或延迟动作的动力学。许多内置的Simulink模金宝app块,如饱和或死区非线性,提供线性化时将其视为增益参数来控制此行为。在这个例子中,你为一个子系统指定一个自定义的线性化来近似PWM信号的线性化。
下面的示例模型有一个子系统scdpwm /电压PWM
,它对进入植物模型的PWM信号进行建模。
mdl =“scdpwm”;open_system (mdl)
当您使用标准配置将这个模型线性化时,得到的线性模型增益为零。
io = getlinio (mdl);io系统=线性化(mdl)
sys = D = Step Plant Model 0静态增益。
块scdpwm/电压到PWM/比较到零
使线性化为零。
pwmblk =“scdpwm /电压PWM”;open_system (pwmblk)
线性化是零,因为块表示一个纯粹的不连续非线性。
u = [1:0.1:0 0:0.1:1];(y = 0(11,1); 1(11日1)];情节(u, y)包含('块输入- u') ylabel ('Block Output - y') ylim ([-0.1 - 1.1]);
使用Sim金宝appulink控制设计,您可以控制Simulink模型中的块的线性化。你可以使用以下方法指定块的线性化:
矩阵
线性时不变模型,如传递函数或状态空间
鲁棒控制不确定参数/状态空间模型
在这个例子中,PWM子系统包含一个时间延迟
这个时间延迟占空比频率的PWM信号是在100hz。指定子系统上的延迟scdpwm /电压PWM
右键单击块并选择线性分析- >指定线性化.将打开下面指定延迟动态的块对话框。
下面的代码相当于在规范对话框中输入延迟。
set_param (pwmblk“SCDEnableBlockLinearizationSpecification”,“上”);代表=结构(“规范”,“党卫军(1“OutputDelay”1/100)',...“类型”,“表情”,...“ParameterNames”,'',...“ParameterValues”,'');set_param (pwmblk“SCDBlockLinearizationSpecification”,代表);
用指定的子系统对模型进行线性化,现在可以得到预期的结果。
选择= linearizeOptions (“SampleTime”, 0);sys = zpk(线性化(mdl, io、选择))
sys =从输入“Step”到输出“Plant Model”:1 exp(-0.01*s) * ------------- (s²+ s + 1)连续时间零/极/增益模型。
你可以比较模型的线性化和实际的线性化使用frest.createStep
信号。重要的是要注意,为了使用原始模型配置进行模拟,不需要删除线性化的规范。线性化规范对仿真没有影响,只有线性化。目测结果表明,线性化能准确地反映系统的动力学特性。
class instep = frest.createStep(“t”, 1/10000,“StepTime”,1,...“StepSize”1 e 1,“FinalTime”15);[sysf, simoutstep] = frestimate (mdl io,脚背);frest.simCompare (simoutstep sys,脚背)传说(“PWM子系统规范的线性化”,...模拟的阶跃响应的,“位置”,“东”)
块线性化规范并不局限于线性时不变模型。如果您有鲁棒控制工具箱™软件,您可以为模型中的块指定不确定参数和不确定状态空间(USS)模型。由此产生的线性化是一个不确定模型。这个例子具有不确定性的Simulink模型金宝app的线性化(鲁棒控制工具箱)演示如何计算不确定线性化。
你也可以在连续域内用离散控制器和连续对象动态来进行模型分析。有关详细信息,请参见建模计算延迟和采样效应.
关闭Simulink金宝app模型。
bdclose (mdl)