【问题标题】:Why do simulink transfer functions have direct feedthrough when the lengths of the numerator and denominator are equal?当分子和分母的长度相等时,为什么 simulink 传递函数具有直接馈通?
【发布时间】:2011-11-15 10:46:38
【问题描述】:

我正在尝试了解 Simulink(连续)传递函数。在documentation for the transfer function block中,表示分子和分母长度相同时具有直接馈通特性。

根据documentation,直接馈通特性表明输出由输入直接控制(而不是由状态变量控制)。

我不明白如何在不使用状态变量或先前输入/输出值来计算相关导数的情况下实现分子和分母具有相同度数(大于零)的传递函数。


背景

这是导致我提出这个问题的思路:

我想实现一个表示具有传递函数的线性系统的 C++ 代码。对于这个实现,我将使用输入 x(t) 并计算输出 y(t)。假设这个系统的传递函数是G(s)。我可以写成Y(s) = G(s) * X(s)

此外,我会说G(s) = numerator(s) / denominator(s),其中numerator(s) 是M 次拉普拉斯域变量s 的多项式,其系数为c_{M}, c_{M-1}, ..., c_{1}, ..., c_{0}。分母是另一个多项式,但度数为N,系数为d_{N}, ..., d_{0}

为了解决这个系统,我将其重写为denominator(s) * Y(s) = numerator(s) * X(s)。使用拉普拉斯变换属性并假设所有导数的初始条件为零,我得到

d_{N}*y^{N} + d_{N-1}*y^{N-1} + ... + d_{0}*y = c_{M}*x^{M} + c_{M-1}*x^{M-1} + ... + c_{0}*x

其中y^{k}y(t) 的k-导数,x 也是如此。

我使用数值积分器(为简单起见,假设为欧拉)求解这个方程,它让我可以使用 N-1 状态变量计算 y 及其导数。对于x 的k-导数,我使用输入的最后一个k+1 值大致近似它(例如x^{1} = (x(t2) - x(t1)) / (t2-t1)

简而言之,我需要跟踪 YM+1 之前的 x 值的 N-1 状态变量。然后我记得当M==N 时,simulink 在没有任何先前值的情况下执行此操作。这怎么可能?

【问题讨论】:

    标签: simulink


    【解决方案1】:

    在分母和分子大小相同的情况下,输出将取决于输入值,但也取决于状态值。因此该块将具有直接馈通,但它也需要 N - 1 个状态,其中 N 是分母的长度。

    请参阅此wiki article,了解输出直接取决于输入(以及状态)的传递函数示例。

    我查看了您指出的文档,我同意它令人困惑。这似乎表明输出要么仅取决于状态,要么仅取决于输入。实际上,输出可能取决于输入、状态和参数的组合。直接馈通只询问输出是否依赖于输入值,它不关心输出是否也依赖于状态。

    我希望这会有所帮助。

    【讨论】:

    • 您的链接包含对我有很大帮助的信息。几天之内有 15 次观看,我以为我根本不会得到答案。非常感谢!
    • 没问题,我知道回答 Simulink 问题的人不多,所以我尽量提供帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-11
    • 2023-02-06
    • 1970-01-01
    • 1970-01-01
    • 2016-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多