控制/MCU
温度控制无论在工业控制领域还是消费电子领域应用都非常广泛,如工业控制中的锅炉、加热炉的控制,消费电子领域的热水器、饮水机的控制。内部都涉及到温度控制。且目前控制算法的丰富也为温度控制提供了便利条件,应用较为普遍地有比例积分微分(PID)控制、模糊控制等。
1 系统硬件设计
本系统以SPCE061A为控制核心,包括传感器电路、键盘和显示电路、继电器控制电路和UART通信电路4大模块。利用SPCE061A自带的10位A/D转换器,结合PT100温度传感器完成对水温的采样,通过数字滤波等技术消除系统的干扰因素还原当前的温度值,通过数码管显示出来,并且对采集到的温度值进行PID运算处理.实现对水温的控制。除此之外,系统还要实现PC机与单片机的上下位机通信功能,在PC机上实时显示温度加热曲线。系统整体框图如图1所示。
1.1 SPCE061A核心控制器
SPCE061A是一款16位u'nspTM内核的微控制器,该微控制器不仅能够实现基本控制功能同时还具有一些DSP功能。该芯片内嵌32k的Flas-hROM和2 k字的SRAM,同时还集成了ADC、DAC、AGC放大电路等,是一颗功能强大的SOC芯片。该芯片拥有8路10位精度的ADC,其中一路为音频转换通道,另外7路可作为普通的AD转换通道。它可以实现简单的加减运算,为了处理复杂的算术运算还添加了硬件乘法器,能够进行n项内积运算。最高系统时钟可达到49 MHz,较高的处理速度使SPCE061A能够非常容易快速地进行复杂的算术逻辑运算。本系统所采用的是61板,而61板就是SPCE061的开发系统,61板除了具有单片机最小系统外,还有电源电路、音频电路、复位电路和按键等。
1.2 传感器电路
传感器电路包括测量电桥和放大电路两部分,如图2所示。
本系统的温度传感器采用铂热电阻温度传感器PT100,铂热电阻的物理化学性能在高温和氧化性介质中很稳定,它能用作工业测温元件,且此元件线性较好,在0~100℃时,最大非线性偏差小于0.5℃。R2、R3、R和PT100组成传感器测量电桥,为了保证电桥输出电压信号的稳定性,电桥的输入电压通过TL431稳至2.5 V。从电桥获取的差分信号通过两级运放放大后输入单片机。电桥的一个桥臂采用可调电阻R3,通过调节R3可以调整输入到运放的差分电压信号大小,通常用于调整零点。
放大电路采用LM358集成运算放大器,为了防止单级放大倍数过高带来的非线性误差,放大电路采用两级放大,如图2所示,前一级约为10倍,后一级约为3倍。温度在0~100℃变化,当温度上升时,PT100阻值变大,输入放大电路的差分信号变大,放大电路的输出电压AV对应升高。
1.3 键盘和显示电路
键盘直接使用61板自带的按键,不需要另外连接硬件即可使用。显示电路采用LED键盘模组来实现,LED键盘模组采用DC 5 V供电,集成了LED、KEY、数码管功能,作为SPCE061A外围器件的扩展模块来使用。LED模块扩展了6位8段数码管,最大显示数据为999 999;有8个发光二极管,8个按键(可以组成1x8KEY也可组成2x4KEY),1个电位器,可以提供0~5 V的模拟电压信号或者0~3.3 V的模拟电压,与模组输入的VDD有关。键盘和显示电路主要用来设定和显示实时温度。
1.4 继电器控制电路
本系统的主要功率器件为一个交流220 V/1 000 W的电加热器,采用继电器来驱动该加热器。继电器选择OMRONG6B—1174P型继电器,该继电器具有触发电压低(DC:5 V),可控功率大(AC:8 A,250 V),以及反应时间短等优点。采用NPN8050三极管驱动继电器,当控制端Ctrl加载高电平信号时三极管导通,继电器工作,当控制端Ctrl为低电平信号时三极管截止,继电器停止工作。继电器的周围有续流保护电
路和工作指示电路,功率驱动部分电路如图3所示。Ctrl为继电器控制信号输入端,通过单片机的IOA7控制。J2为控制加热器的开关接口。
2 系统软件设计
系统程序的控制思想:设置目标温度后,系统采样水温,并通过预设温度,当前温度,历史偏差等进行PID运算产生four输出参数,通过该参数控制加热时间,从而调节加热器的平均功率,实现系统的PID控制。整体功能通过主程序和中断服务程序配合实现。中断服务包括IRQ5_2Hz中断,IRQ5_4Hz中断,IRQ2_TimerB中断以及IRQ6_TMB2(1 024 Hz)中断。这里主要介绍主程序流程和主要子程序流程。系统首先初始化I/O、TimerB、UART等部件,之后进入主循环,进行温度采样和相关处理。本系统软件设计的核心思想就在于PID控制的实现,在系统运行过程中通过按KEY3键重新设置目标温度。主程序流程如图4所示。
2.1 A/D转换子程序
A/D转换:每间隔1s执行一次温度采样操作.每次采样执行18次A/D转换;在IRQ5_2Hz中断服务程序中完成,IRQ5_2Hz用以提供1 s时间以确定AD采样的时间间隔,A/D转换子程序流程图如图5所示。
2.2 温度PID控制的实现
本方案利用位置式PID算法,将温度传感器采样输入作为当前输入,然后与设定值进行相减得偏差,然后再对之进行PID运算产生输出结果four,然后让four控制定时器的时间进而控制加热器。IRQ2_TimerB提供溢出频率为64 Hz的中断信号,配合主程序的PID运算结果four确定加热时间,实现加热器功率调节,该部分子程序流程图如下图6所示。
3 系统运行性能测试
本系统的关键之处在于PID控制。对于PID系统来说,系统性能的好坏主要取决于PID控制的参数的设定。由PID控制原理知:比例(P)控制能迅速反应误差,减小稳态误差:比例作用的加大,会引起系统的不稳定。积分(I)控制的作用,只要系统有偏差存在,积分作用不断地积累,输出控制量以消除误差;积分作用太强会使系统超调加大,甚至使系统出现振荡。微分(D)控制可以减小超调量,克服振荡,使系统的稳定性提高,同时加快系统的动态响应速度,减小调整时间,从而改善系统的动态性能。
本系统能够实现的基本功能如下:
1)温度的实时采集显示:
2)对温度的变化能够做出及时的处理,能够应用PID调节;
3)通过UART实现上下位机通信。并在上位机上显示温度的变化曲线。
在系统调试过程中,通过改变关键的PID系统参数Kp、Kd,观察系统运行性能的变化,以使系统处于最佳运行状态,以下是测试过程及测试结果。
1)Kp=1.5、Kd=1.0(温升:20~40℃)对应的曲线如图7所示,由图形可以看出来,由于过大,造成超调量过大。
2)Kp=1.2、Kd=1.0(温升:40~60℃)对应的曲线如图8所示,由图形可以看出来,由于过小,系统的快速性不好,反应比较迟钝。
3)Kp=1.3、Kd=1.0(温升:30~50℃)对应的曲线如图9所示,由图形可以看出来,由于过小,系统的超调量比较大,而且预测性不好,造成温度长时间超调。
4)Kp=1.3、Kd=2.0((温升:50~70℃))对应的曲线如图10所示,由图形观察可知:选择适中,系统的超调量很小,而且超调维持时间很短就会恢复平衡点。
通过以上几次的测量曲线分析,最终选择Kp=1.3、Kd=2.0。此时温度控制指标如下:静态误差:T≤0.5℃;分辨率:0.1℃;超调量:T≤0.5℃。这样的情况下,系统运行情况可以达到最好。
4 结论
基于16位单片机SPCE061A的DSP功能以及快速的处理能力,本系统的数据采集和运算处理十分的方便简单,另外由于IDE支持标准的C语言函数库,使得复杂的数学运算变得轻而易举,大大减小了编程的难度。另外采用VC实现上下位机相互通信,在上位机直接显示温度的变化曲线,直接观察控制的性能,并根据曲线适当的修改系统的PID参数,使控制达到最优化。
全部0条评论
快来发表一下你的评论吧 !