【问题标题】:PID temperature control , Python - eliminating noise values, STM32PID温度控制,Python-消除噪声值,STM32
【发布时间】:2019-04-03 15:40:39
【问题描述】:

我正在通过 12 位分辨率的 ADC 读取 NTC 热敏电阻值。在环境(不加热或冷却)下,在 100 m/s 的跨度内读取 10 个样本,如下所示

ADC(PA0)= 1 -> 3919
ADC(PA0)= 2 -> 3934
ADC(PA0)= 3 -> 3932
ADC(PA0)= 4 -> 3922
ADC(PA0)= 5 -> 3907
ADC(PA0)= 6 -> 3925
ADC(PA0)= 7 -> 3930
ADC(PA0)= 8 -> 3919
ADC(PA0)= 9 -> 3915
ADC(PA0)= 10 -> 3928
ADC(PA0)= 11 -> 3915
ADC(PA0)= 12 -> 3922
ADC(PA0)= 13 -> 3918
ADC(PA0)= 14 -> 3918

从该集合中提取最相关值的适当统计函数(众数、平均值、平均值等)是什么。事后看来,还要考虑在加热器元件打开和冷却(风扇打开)期间可以读取这些值。

【问题讨论】:

  • NTC 是什么意思? ADC 是什么意思? “米/秒”是什么意思?您对“最相关价值”的定义是什么?
  • NTC= 负温度系数。 ADC=模数转换。,m/s=毫秒
  • 我认为您对“统计函数”不感兴趣。您对使用您的设置调节温度的最佳方式感兴趣。对?这组没有“最相关的值”,这些只是测量值,都是相关的。我不明白你的问题。

标签: python stm32 micropython


【解决方案1】:

您的值看起来像 ADC 转换器的“正常”偏差。根据您的温度调节元件(TEC、PT、风扇、...)和您的负载,我建议每 100m 运行一次 PID 算法(作为第一次尝试)。如果你的系统真的很慢,你可以使用更长的 Kt 事件。

由于温度(或温度变化)大多是线性的,您可以使用移动平均值来消除输入中的一些噪音。

在设计良好的硬件中,加热器或风扇不应对您的测量产生任何影响。在糟糕的设计中,平均会消除信号中的大部分噪声(如果不是很大)

【讨论】:

    猜你喜欢
    • 2016-06-13
    • 2016-12-20
    • 2017-04-14
    • 1970-01-01
    • 1970-01-01
    • 2020-02-16
    • 1970-01-01
    • 2017-06-23
    • 2020-06-06
    相关资源
    最近更新 更多