基于Arduino Minima与MIKROE Heater Click的PID控制器实例

比例积分微分(PID)控制器是一种经典控制系统,广泛应用于各类嵌入式与工业控制流程。本文展示一个实际的热控PID应用案例,采用Arduino UNO R4 Minima作为控制器,Mikro Elektronika Heater Click作为受控系统。

MIKROE 3996 Heater Click板(下文简称" Heater ")是专为mikroBUS系统设计的小型分线板。其加热元件由长条状PCB走线构成,如图1和图2所示。图1为热成像图,图2则展示了温度传感器与PCB加热走线。

Heater 通过MOSFET控制,这为PWM信号调控系统提供了便捷方式。温度监测由德州仪器TMP235热敏传感器实现,其驱动12位Microchip MCP3221模数转换器。通过mikroBUS插座提供I2C接口。

本文从嵌入式控制工程师视角简要介绍 Heater ,重点分析阶跃响应与Arduino代码接口。最后记录控制器在双设定点间切换热力系统的性能表现。

文中包含PID控制器设计的亮点。但本文并非PID教程。如需了解PID控制器详细信息,请参阅这篇入门文章。本PID控制器设计立足于教学视角。比例、积分、微分环节均采用百分比形式实现。该方法有助于学生理解各参数对整体系统的贡献度。

项目代码详见:Heater.zip (2.9 KB)

1 :MIKROE Heater Click板工作状态热成像图电路板中心温度约175°F(80°C)。

技术提示 :由图1可见PCB中心存在热点。这对功率耗散与电路布局具有重要影响。可将 Heater 视为多个物理并联的独立电阻。每个电阻产生的热量都会影响相邻元件。因此中心电阻温度最高,边缘区域呈梯度降温。设计PCB时,务必为中心电阻器预留额外间距以避免过热。

同理,该特性也适用于电缆。与单独绝缘的导线相比,线束的散热能力较弱。当导线穿过导管时,这对消防安全具有重大影响。请确保遵循所有适用规范并适当降低系统额定值。

2 :显示PCB走线与TMP235温度传感器的特写图像。

mikroBUS Arduino 的物理连接

Heater 通过MIKROE-5739 Click扩展板连接至Arduino Minima,如图3所示。

注意:此处采用默认的MIKROE-3996配置。零欧姆跳线将逻辑电路连接至3.3V直流电源,而加热元件由Arduino通过mikroBUS接口提供的5V直流电源供电。

3 :通过MIKROE-5739扩展板安装在Arduino Minima上的 Heater 图像。

MikroElektronika Heater Click 板的编程接口

Heater 的核心编程接口通过七行代码实现。前三行代码从Microchip MCP3221获取数据。图4展示了使用Digilent Analog Discovery捕获的对应数据传输过程。

随后两行代码展示了12位ADC的缩放比例。个人偏好采用两步转换法:先将数值转换为电压值,再转换为目标单位。这种方法便于故障排查,可将数值发送至串口后与ADC实际输入电压进行比对。注:

  • MCP3221采用3.3V直流电源作为工作电压和参考电压。

  • Heater TMP235为10mV/℃传感器,0℃对应0.5V直流电压

  • 采用最近16个样本的滑动平均滤波器来降低噪声。

Heater 通过MOSFET控制加热元件启停。使用PWM信号通过analogWrite()函数驱动MOSFET。

  Wire.requestFrom(0b1001101, 2);
  uint8_t upper_byte = Wire.read();
  uint8_t lower_byte = Wire.read();
  uint16_t ADC_12_bit_binary = (upper_byte << 8) | lower_byte;

  float ADC_voltage = f_map((float)ADC_12_bit_binary, 0, 4095, 0, 3.3);
  float averagADCVoltage = runningAverageOf16(ADC_voltage);
  float temp_in_F = f_map(averagADCVoltage, 0.5, 1.5, 32.0, 212.0);

  // Placeholder for PID code

  analogWrite(PWM_PIN, duty_cycle_8_bit);

4 :Arduino与MCP3221之间I2C信号的逻辑分析仪截图。

系统特性分析作为首要步骤

确定阶跃响应是控制系统重要的第一步。掌握这些信息后,我们可以对系统特性做出总体判断。我们还能据此确定合适的采样时间。

这对 Heater 而言是个简单过程,只需开启设备并记录结果。该系统具有与电阻电容串联充电极为相似的一阶响应特性。图5展示了假设时间常数为75秒时的观测值与计算值。

计算值 = T_{final} – (T_{终值} – T_{初值})\exp^{-t/\tau} = 163 - (163 - 86.33) \exp^{-t/75}

观测值与计算值的紧密吻合表明加热元件具有良好热隔离性。实际上,这种有序系统说明其他结构的热量积累可忽略不计(无需考虑二阶及以上模态)。这印证了图1所示优异的隔热性能。

5 :显示 Heater 一阶阶跃响应的曲线图,表明系统具有75秒时间常数。

PID 控制器

核心PID例程已在前文阐述。图6展示了该控制器的核心设计特征:

  • 并行PID结构。

  • 每个P、I、D计算模块都包含限幅块,限幅值设为+/-100.0。这使得系统运行可通过百分比进行分析,更易理解PID控制器。

  • 包含积分抗饱和功能(锁定),在P项饱和时冻结累加器。

  • 微分项直接取自反馈信号,防止设定值变化时的脉冲冲击。

  • 采用滑动平均低通滤波器来降低D项噪声。

6 :实用的改进PID控制器包含针对P、I和D分量的饱和限制模块。

如何确定 PID 控制器的采样时间?

图6中的时钟图标表明这是采样系统。初步估算可设PID采样时间为系统时间常数(图5计算出75秒)的1/10或1/20。

理想情况下,PID例程可每7.5秒(10倍采样)或每3.75秒(20倍采样)执行一次。实际应用中,该系统存在噪声干扰。虽然图5中可能看不出来,但当试图将温度控制在1度范围内时,情况并不那么清晰。

一种解决方案是对反馈信号进行低通滤波。这具有挑战性,因为滤波器会引入延迟。PID不再作用于"当前"状态,而是作用于过去发生的平均事件。已知时间常数为75秒,可以进行一定程度的滤波。本示例中,采样时钟设置为250毫秒,并实现了16级低通滤波器。这4秒的延迟似乎没有造成问题。

PID 控制器性能

作为演示,系统设置为每1.5分钟在120°F和130°F之间切换。结果如图 7 所示。系统启动时表现出轻微振荡,但在400秒后趋于稳定。在达到稳态温度前可见些许超调。

7 :系统在两种温度间切换时的响应。

技术提示 :让热力系统在两个设定点间切换是项挑战性操作,因为系统具有不对称性。我们可以主动加热,但冷却却是被动的。为提高性能,系统在较高温度下运行以促进冷却。若系统在较低温度下运行,则需要不同的调谐参数。

图8展示了控制器相应的内部工作状态。此处P、I、D分量以百分比形式单独显示:

  • 当指令温度发生大幅变化时,P项会达到饱和。

  • D项会抵抗任何温度变化。这在温度快速切换两种状态时最为明显。

  • I项显示误差的逐步累积。注意当P项饱和时,积分项会保持冻结状态。这种做法有效解决了系统在温度设定点间跳跃时可能出现的积分饱和问题。

8 :P、I、D各分量的百分比贡献。

技术提示 :用百分比表示PID分量,可以直观地观察PID控制器的工作状态。

图9展示了最终设备驱动力,即P、I、D项的总和。该系统将小于0的值视为零驱动力。与可反转的电机不同,这个简单系统无法实现热传递的"反向"。

9 :设备驱动力百分比。注意负值会被视为零驱动力。

下一步

这个项目远未完成。仍有大量实验机会可供探索:

  • 对于学生和控制系统新手,建议先尝试构建"开关式"控制器,使用通断控制加热元件。探索这个基础控制器很有价值。毕竟,我们应努力设计尽可能简单的控制器——但也不能简单到无法满足任务需求。

  • 分别仅启用P控制和PI控制来运行控制器,以更好地理解温控系统的特性。

  • 找出并解决这个PID控制器与教材中介绍的控制器之间的差异。

  • 优化采样时间。

  • 分析噪声特性并确定滤波器的性能极限。

  • 改造click板,为ADC添加精密电压基准。

  • 优化PID算法。

  • 研究如何为这个非线性系统自动整定PID参数。

  • 将 Heater 置于隔热腔体(烘箱)中。

  • 加入增益调度以提升性能。例如,中长期的稳态稳定性可以采用与系统启动时不同的增益和滤波器设置。

  • 将 Heater 集成到更大的系统中。

  • 添加冷却风扇以排出系统热量。

  • 使用TMP235/MCP3221设计自己的PCB板,或改用其他元件。

最后的思考

现实世界的控制系统提供了最佳的学习机会。MIKROE-3996 Heater Click模块就是一个典型范例。如演示所示,该开发板易于连接微控制器,同时能传授大量控制系统相关知识。

建议您先复现本实验,再根据需求进行调整。请在评论区分享您的观察和建议。

相关信息

请点击以下链接获取相关和有用的信息:

DigiKey的产品选择指南