当前位置:首页 期刊杂志

一种基于单片机的洁净室PID控制器设计

时间:2024-07-28

李华伟

(上海浦东张桥医用设备有限公司,上海 200129)

0 引 言

PID控制原理作为经典控制理论,其应用十分广泛,在工、农业生产中主要表现在实现对温度、湿度、压力、流量、位移、速度以及加速度等控制对象的调节[1]。本文以典型的温、湿度控制为对象进行应用分析,阐述比例积分微分(Proportion Integral Differential,PID)控制在医用净化空调机组控制系统上的设计实现[2]。医用洁净室作为重要的医疗救护场所对环境参数要求较高,为了达到设计的洁净指标并为医疗救护提供良好的工作环境,设计更加智能化与高可靠性的PID控制器来实现较高的温、湿度控制水平具有重要意义[3]。

单片机作为一种体积小、功耗低、可靠性高、适用性强以及造价经济的芯片级计算机,以充当智能控制的核心角色被广泛应用到人们生活的各个方面。随着大规模集成电路和系统级芯片(System On Chip,SOC)技术的发展,使得单片机的外设更加丰富,性能更加强大,通用性更强,高效的语言指令和优异的再编程能力能满足大多数工业自动化仪表及其他人工智能设备的开发需求,为智能控制设备的设计开发奠定了基础[4,5]。

笔者以洁净室温、湿度控制为应用背景,研究了PID控制在单片机系统上的可靠性控制实现原理,并对采样处理方法和PID算法的改进实现方法进行了重点研究,给出了关键算法的C语言程序设计。

1 洁净室温、湿度控制原理

医用洁净室温、湿度控制属于典型的闭环负反馈控制系统,其基本原理为PID控制器通过传感器采样洁净室回风管道内的回风温、湿度值作为室内反馈值B(S),将采样的温、湿度值与设定的给定值R(S)进行比较,取其偏差E(S),执行PID算法程序,输出模拟调节信号。其中通过温度调节信号控制阀门开度来控制流经净化空调热交换器的媒介流量,以此来实现控制环境温度的目的;通过湿度调节信号控制净化空调电极加湿器加湿比例,以此来实现控制环境湿度的目的。系统原理如图1所示。

图1 洁净室温、湿度控制原理

图2是医用洁净室温、湿度自动控制原理的简化模型,该模型便于PID控制算法在单片机系统上实现软件编程。控制模型图中的PID控制器是控制系统的核心,作用是对温、湿度反馈信号进行模拟/数字(Analog/Digital,A/D)采样、执行PID控制运算和控制调节输出。PID控制器把设定的温、湿度值作为系统给定信号R(S),传感器输入信号作为温、湿度反馈信号B(S),二者之间的差值即为控制偏差E(S),控制调节信号U(S)由PID控制器通过计算得到,调节信号经过D/A转换输出控制作用对象,以此来实现温、湿度控制。

图2 简化控制模型

2 PID控制器系统设计

2.1 PID控制器系统组成

图3是PID控制器的硬件组成,主要由单片机系统、模拟输入(Analog Input,AI)电路、模拟输出(Analog Output,AO)电路、数字输入(Digital Input,DI)电路、数字输出(Digital Output,DO)电路以及RS485通信接口电路等构成。

图3 PID控制器的硬件组成

2.2 PID控制器接口电路设计

由于模拟输入电路是控制反馈采样的前置处理电路,其安全性与可靠性直接影响反馈采样的可靠性,进而影响PID控制的可靠性,因此模拟输入接口电路设计非常重要。

图4为设计的模拟信号输入电路原理,主要作用是实现PID反馈信号输入,用于完成温、湿度反馈及其他辅助功能的模拟信号(直流0~10 V/4~20 mA)输入。此电路可以实现3类信号输入,JP1跳线短接时用于实现开关量信号输入,JP2跳线短接时用于实现直流4~20 mA电流信号输入,JP1和JP2均开路用于实现直流0~10 V电压信号输入,其中运算放大器为电压跟随器用法,起到阻抗隔离的作用[6]。

图4 模拟信号输入原理

图5为模拟输出接口电路原理,实现数字/模拟信号(直流0~10 V)输出功能,主要作用是实现PID控制调节输出,其输出安全性与可靠性直接影响PID控制作用,进而影响PID控制性能。

图5 模拟信号输出电路

设计使用TI公司的DAC104S085型10 bit四通道数模转换器,该芯片采用SPI接口标准,具有转换精度高、输出动态特性好、工作电压宽以及低功耗等特点,能够满足PID控制模拟调节输出的需要。

图6为数字信号输入电路,用来实现无源开关量信号输入,主要作用是采集净化空调机组的状态信号,为提高信号抗干扰能力采用光耦合隔离方法。

图6 数字信号输入电路

图7为数字信号输出电路,主要作用是实现开关信号输出,实现净化空调机组的设备启停等。

图7 数字量输出电路原理

图8为通信电路接口原理。PID控制器设计3路RS485通信接口,分别用于实现人机界面(Human Machine Interface,HMI)通信、输入输出(Input Output,IO)模块扩展和远程通信监控,其中IO模块扩展的目的是提高控制器的柔性能力,用以扩展PID控制回路数。

图8 通信电路接口原理

3 关键程序设计

3.1 PID算法改进原理

PID控制的基本原理是对控制目标的偏差E(S)进行比例P(S)、积分I(S)和微分D(S)运算,并将3者进行叠加的一种控制算法。在模拟系统中,PID控制传递函数为:

式中:KP为控制比例系数;Ti为积分时间常数;τ为微分时间常数。

在数字系统中,单片机无法实现对模拟信号的不间断采样控制,只能根据采样时刻的控制偏差值来计算控制量,因此模拟传递函数中的积分项和微分项都无法直接使用,需要进行离散化处理,以适应单片机系统。

离散化的过程即将描述模拟系统的连续时间t的积分用一系列时刻点的采样求和代替积分,以差分代替微分,从而简化得到便于单片机编程实现的离散式PID传递函数为:

式中:n为信号采样序列,n=0,1,2,……;u(n)为第n次采样时刻的PID控制输出量;e(n)为第n次采样时刻的控制偏差量;n(n-1)为第n-1次采样时刻的控制偏差量;Ti为积分时间常数;Td为微分时间常数;T为采样周期(两次采样的时间间隔)。

从离散PID控制函数可知,两个连续采样时刻的控制偏差值E(S)的可靠性决定了控制的可靠性,PID控制函数中KP、Ti以及Td这3个参数的取值决定了PID算法的控制性能。

3.2 控制偏差可靠性采样

由于单片机系统受A/D采样精度和其他抗扰度因素的影响,会因控制反馈采样误差而造成控制偏差产生误差,从而使控制输出产生误差。以控制达到稳态时为参考,假设给定参数R(S)不变,采样参数为B(n),则比例控制环节如下。

第n-1次控制偏差值为:

第n-1次控制比例值为:

第n次控制偏差值为:

第n次控制比例值为:

通过第n次与第n-1次的控制比例计算可知,P(n)的比例系数KP是定值,给定参数R(S)也是定值,比例控制P(n)的输出大小直接正比于控制偏差E(n)。

则第n次与第n-1次的控制偏差计算变化量为:

比例控制输出变化量为:

在单片机系统中,即便给定目标参数与反馈输入信号不变的情况下,由于受单片机A/D采样精度的影响,因此仍可能会出现对反馈信号B(n)误差性采样,这样就会造成前后两次比例控制ΔP(n)不为零的情况,越是控制接近稳态时或者精密控制时则E(n)数据越小,也就可能出现控制偏差的误差占比ΔE(n)/E(n)较大。根据比例控制中比例系数与控制偏差之间的关系可知,比例系数KP越大则控制输出误差越大,可能产生的前后两次控制输出幅度波动,此种误差的影响会作用到积分和微分环节,造成控制输出不稳定,影响控制精度。

另外,控制系统受其他抗扰度的影响,可能会造成单片机在某一时刻采样时E(n)出现异常偏离变化,从而导致前后两次计算偏差的误差ΔE(n)扰动偏大,使PID控制产生扰动性控制动作,轻则产生控制振荡,重则失控。

为解决以上问题,本文采用滑动滤波法对反馈采样值处理,起到对采样数据滤波的作用,间接提高了采样精度,提高反馈采样的可靠性,同时使偏差取值得到平滑滤波,使偏差采样可靠,以此提升PID控制的可靠性和控制精度[7]。

设计深度为10的先进先出队列(First Input First Output,FIFO),滑动存储最近连续10次反馈信号A/D采样数据,用其10次累加值作为当前控制反馈采样值,每次的A/D采样值仅占控制采样数据的10%,使A/D采样误差的影响降低,提高了采样精度和抗信号扰动性,以此确保控制偏差取样的可靠性,为PID控制可靠性奠定采样基础。

3.3 PID控制算法优化

PID控制中,比例控制的优点是作用速度快,缺点是取值偏大容易造成控制震荡,取值偏小会造成稳态误差大。在控制中根据控制偏差值动态调整比例系数可以达到快速降低控制偏差又不引起控制震荡的目的,其中积分控制主要用于消除稳态误差。作用系数固定时,如果控制偏差大,则控制具有阶跃性特点,不利于系统稳定;而如果控制偏差小,则控制具有作用强度不够的可能。在运行中根据控制偏差值反向动态调整积分系数可以快速平稳地消除稳态误差。微分作用具有预判的特点,降低控制超调量,在控制过程中动态调整系数可以取得良好的微分效果。

由于离散PID控制函数中KP、Ti以及Td的取值决定了PID算法的控制性能,且比例P(S)、积分I(S)和微分D(S)受同一参数KP的作用,各项的调节作用强度具有关联性,缺乏灵活性,难以充分发挥每项的控制优点[8]。结合以上分析,对此PID函数再次改进,算法为:

式中:u0为控制基准值,是偏差为0时的控制作用。

原来3项共同作用比例系数被3个独立且运行中可调的参数替代,在运行过程中程序可根据控制偏差大小自动调整3个独立参数以及各自的作用强度,充分发挥PID控制的每项优点,以此提高PID控制的整体作用性能。

3.4 PID算法编程实现

优化后的PID算法占用单片机资源少,易于编程实现。程序设计主要分两部分:一是A/D采样处理部分,实现10次A/D采样滑动滤波累加值作为PID反馈过程数据(Process Value,PV);二是改进PID算法的函数实现设计,采用宏定义的方式定义最大PID回路数,可根据控制需要和SCM随机存取存储器(Random Access Memory,RAM)大小定义所需PID回路数,以提高程序利用率,便于应用程序在不同单片机系统间移植。

另外,给定数据(Set Point,SP)的取值范围需与PV匹配,为了不放大控制偏差值,降低误差性控制动作并满足控制计算输出,运行中3项系数的范围取0~1。依据改进的PID算法原理设计基于C语言的PID控制程序如下:

4 系统测试与运行

实际工程采用STM32单片机系统,按照设计的接口电路系统一起构成PID控制器硬件,在Keil MDK-ARM环境下移植上述改进PID算法编写的C语言控制程序,依据温、湿度控制偏差值来调整PID控制的各项控制参数,以此来实现较好的PID控制性能[9,10]。制热状态下的温度控制PID参数差异化赋值管理如下:

实际应用中,在设备负载能力满足负荷的条件下,工程实际运行能够实现温度在17~30 ℃的控制误差小于0.5 ℃,相对湿度在40%~60%的控制误差小于3%,具有较好的抗扰动能力,动态调节速度快,控制误差小。图9为某医院控制现场运行时的人机接口(Human Machine Interface,HMI)数据,通过对控制进行动态观察以及温、湿度给定值与反馈值的比较可知,控制运行符合设计预期。

图9 某医院控制现场运行时的HMI数据

5 结 论

实践应用表明,以单片机为核心的控制器经过滑动滤波法获取采样数据后计算的控制偏差可靠性好,改进的3项系数独立且运行可调的PID算法能够提高PID控制的灵活性,利于发挥各项控制的优点。同时此种方案实现了洁净室温、湿度控制的目的,为实现净化功能并提供舒适的医疗救护环境奠定了基础,对新型智能化PID控制设备的开发具有一定的参考价值。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!