【问题标题】:Initialisation in SimulinkSimulink 中的初始化
【发布时间】:2016-01-05 13:33:01
【问题描述】:

我正在研究发动机温度模型。我被困在一个点上。有一个名为tred 的信号需要使用低通滤波器进行过滤,以得到最终的输出信号为tredf。问题是tred 从 90°C 开始,但过滤后tredf 从0. 我正在将我的 simulink 模型与另一个实时模型进行比较。除了这个初始化,一切似乎都很好。我希望我的过滤信号tredf 也从 90°C 开始。我正在使用的过滤器是一个 PT1(比例传输一阶)过滤器(低通),它是从一个自行创建的库中派生的。
过滤器有以下 6 个输入:

  1. u(k) 即输入即tred
  2. T 即过滤时间常数,即 500。
  3. y(0) 即初始值,也就是tred
  4. reset - 连接到一个位(当位为假时复位)。
  5. 计算 - 连接到同一个位(当位为真时计算输出)。
  6. dT - 采样/增量时间 - 我已将其设置为 0.1。

这是 PT1 块的描述以便更好地理解:

  • PT1 模块是具有时间常数 T 的离散时间低通,积分算法由欧拉前向工作。时间常数自动限制在它们的取值范围内(T > = dT)。 y(0)-输入是数字低通指定的一个起始值,因为这个初始值可以在任何时候通过一个脉冲在复位-返回接收。 PT1 - 块必须显式使用启用计算的输入

过滤器的前5个输入是固定的,我只能设置dT。有没有人知道我做错了什么以及输出 i.e.tredf 也从 90°C 开始?

【问题讨论】:

  • 好像y(0)输入需要设置为90,你用的是什么?
  • 不,它不能设置为 90,因为给定了 y(0) 的输入。我已经尝试并理解了这个问题。 y(0) 不是初始值,而是复位时的起始值。因此,无论何时重置,它都以初始值开始。但是过滤器尚未初始化,因此 simulink 始终从 0 开始。我需要以某种方式为第一个输入重置它,以便它自动获取初始值。但我还没有弄清楚怎么做?任何想法@PhilGoddard

标签: matlab filter signals simulink lowpass-filter


【解决方案1】:

你可能想看看这个:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-19
    • 1970-01-01
    相关资源
    最近更新 更多