9

我需要在延迟很大的系统中调整 PI(D) 增益。它是一种普通的温度控制器,但温度探头离加热器较远。一些进一步的信息:

  • 探头的响应在加热器发生任何变化后延迟约 10 秒

  • 温度以 1 Hz 采样,分辨率为 0.01 °C

  • 加热器是 PWM 控制器,周期为 1 Hz,具有 10 位 PWM

  • 目标是将振荡保持在 ±0.05 °C 以下

目前我正在使用控制器作为 PI。我无法避免振荡。增益越高,振荡越小越快。仍然太高(约 ±0.15 °C)。降低 P 和 I 增益会导致非常长且深度的振荡。

我认为这是由于延迟。稳定时间不是问题,它可能需要它需要的所有时间。

我对如何让系统工作感到困惑。假设只使用 I。当探头达到目标值并且 I 输出开始下降时,温度会再升高一段时间。我不能使用导数项,因为变化太慢并且 dError 非常接近于零(如果我将 dGain 设置为一个很大的值,则会有太多的噪音)。

任何的想法?

4

2 回答 2

6

通常对于较大的延迟,您有两种选择:降低系统的增益,或者,如果您有正在控制的工厂模型,则使用Smith Predictior

我将首先对您的系统进行建模(在输入中使用开环步骤)以量化您工厂的延迟和时间常数,然后检查温度和 PWM 速率的采样是否正常。

请注意,如果您的 PWM 频率与设备动力学相比太小,您因为缓慢的 PWM而产生持续振荡。您可以仅使用 PWM 的恒定输入来检查它(没有控制器,开环)。

编辑:没有看到问题已经解决,但我将把它留在这里以供参考。

于 2015-07-01T17:43:16.550 回答
5

尝试仅 P。仅比例振荡有多快?如果您不能将 Kp 调到足够小以防止振荡,那么您的加热器对于您的系统来说是过度供电的。

如果系统的死区时间约为 10 秒,则积分项的时间常数 (T_i) 应为死区时间的 3.3 倍,使用 Ziegler Nichols 开环 PI 规则 ( https://controls. engin.umich.edu/wiki/index.php/PIDTuningClassical#Ziegler-Nichols_Open-Loop_Tuning_Method_or_Process_Reaction_Method :),然后积分项应该是 Ki = Kp/T_i。因此,死区时间 = 10 秒,那么 Ki 应该是 Kp/33 或更慢。

如果您得到仅积分的振荡,那么积分的上升和下降速度比过程响应的速度更快,并且应该更小。

另外——想想不同术语的单位。引起您问题的可能不是延迟,而是测量和控制系统的分辨率。如果您正在驱动(例如)具有 1/1024 分辨率 PWM 的 100W 加热器,则每个 PWM 计数的分辨率为 0.1W,您尝试根据 0.01C 的温差进行调整。在小于 Kp = 100 PWMcount/degree(或 10W/degree)时,您在 PWM 中没有足够的分辨率来响应 0.01C 错误进行更改。在 Kp=10PWM/C 时,您可能需要 0.10C 变化才能导致 PWM 功率发生实际变化。您可以使用更高分辨率的 PWM 吗?

换个角度想,如果您想在 0.01C 的温度下在 30C 的范围内运行系统,我认为您至少需要一个 15 位 PWM 在受控系统中具有 10 倍的分辨率。仅使用 10 位 PWM,您只能获得大约 1C 的总范围,并以 10 倍的测量分辨率进行控制。

于 2015-05-15T18:58:59.727 回答