【发布时间】:2017-05-11 14:28:23
【问题描述】:
我有一个离散传递函数,其分子和分母来自输入端口。在每个采样时间,这些分子和分母向量都会发生变化。
例如
@t == 0
den == [1 0 -1]
@t == 1
den == [1 0 0 -1]
我必须做什么才能让传输函数使用它?
我试过了:
- 具有可变长度信号。
SIMULINK 不喜欢这样并拒绝运行,抱怨离散传递函数块无法处理可变大小的输入。
- 用许多前导零填充向量
这会导致信号出现周期性尖峰。此外,如果您手动输入值而不是作为输入,Simulink 不允许您这样做,所以我认为这也不是这样做的方法。
非常感谢任何帮助。
【问题讨论】:
-
分母(或任何其他过滤器参数)多久更改一次?它们会随着
t的每次变化而变化,还是会交替变化、周期性变化或非周期性变化?它不能开箱即用也就不足为奇了,因为许多内置的 MATLAB/SIMULINK 函数都假定时间不变性。 -
@fiveclubs。他们不会在每一步都改变。它们每隔几秒(约 5-15 秒)就会改变一次,频率不是恒定的,因为它是由事件驱动的。
-
使用单个积分器和增益块构建您的传递函数,并在其间包含事件驱动开关。
-
@thewaywewalk。我不完全确定我明白你的意思。你能扩大一点吗?
-
每个传递函数都由积分器和微分器组成,每个都有一个增益。因此,请尝试将您的传递函数分解为尽可能多的单个块。优选使用积分器。这样你就可以控制每一个增益。