空调室内机风机转速控制算法研究
2023-07-04吴学伟
吴学伟
(1.珠海格力电器股份有限公司 珠海 519070;2.空调设备及系统运行节能国家重点实验室 珠海 519070)
引言
随着生活水平的提升,空调系统已经逐渐成为现代家居和办公场所必不可少的设备,,而且用户人民群众对空调的舒适性要求越来越高,反馈在指标上主要就是温度波动和噪音。而这两个关键指标都与电机的转速控制稳定性有非常大的关系。目前最常用的电机有直流电机和PG 电机两种。这两种电机都是基于电机内置的霍尔转速反馈进行控制,即霍尔元件被安装在电机的内部,正常时电机每转动一周,霍尔元件输出一个或几个脉冲信号。当风扇电机转速高时,其输出脉冲信号频率高;当风扇电机转速低时,其输出脉冲信号频率低。输出的脉冲信号被单片机采集,经过计算转换成反馈转速,然后通过调整VSP 电压(直流电压)或可控硅的导通角从而调整PG 电机的工作电压(PG 电机)从而对电机进行调节。
目前常用的转速控制算法主要包括比例调节、PID控制、神经网络控制等[1]。神经网络控制相比于PID 控制,具有更好的自适应性和鲁棒性,但是需要消耗较大的计算机硬件和软件资源,应用范围较窄。空调普遍采用8 位单片机或32 位的cottex-M0 芯片,主频通常在60 MHZ 以内,Flash 小于256 K,无法运行大型的神经网络算法。PID 算法占用的硬件和软件资源较少比较适合应用在空调上,但是在应对空调室内机风机复杂多变的动态变化负载(扫风关和开)方面容易出现控制不稳转速波动大的问题,有必要针对性进行研究,下面以PG电机为例进行说明。
1 电机调速当前的控制算法及存在问题
采用比例控制的算法,PG 电机每转一圈反馈3 个脉冲,通过检测每3 个脉冲的周期来计算电机转速。在反馈脉冲中断中对反馈脉冲个数计数和计时,当累计到3个脉冲时根据当前3 个反馈脉冲的周期计算电机当前转速并调整电机斩波时间。
1.1 当前使用的的PG 电机控制算法及存在问题
项目最开始采用的是最基本的比例控制,即:
1)当电机实测转速小于目标转速差值大于某一设定时时,PG 电机斩波时间将增大或减小,每次增大或减少的值根据差值确定,差值越大调节数值越多;
2)当实测转速与目标转速小于某一设定值时,PG电机PG 电机斩波时间保持不变。
按照此算法实测的转速控制稳定性如表1、表2,对实测数据进行分析,在非扫风状态下控制精度能达到±15 r/min,但是在扫风状态下偏差接近±30 r/min,相应的风量变化达到6 %,噪音变化达1.5 分贝。
表1 扫风停状态转速
表2 扫风开状态转速
分析波动的原因,当扫风叶片以4 w/s 的速度来回转动,直接引起风机系统的静压在快速变化,也就是电机的负载在变化,从数据上看即该调速方式在外界干扰较小的时候能够很好的稳定在目标转速,然而在外界干扰频繁或者干扰较大时并不能够做到快速的响应。需要研究新算法加以改进。
2 新算法研究及单片机程序实现
新算法要解决的关键问题是扫风状态下转速波动幅度较大,目标是非扫风状态下和扫风状态下转速波动范围控制在设定转速±10 r/min 以内。
2.1 新算法描述
PID 控制器是一种经典的控制算法,其中比例、积分和微分作用分别是:
1)比例作用:以误差(偏差)做为输入,输出为控制量的线性关系。比例的作用是使控制量与误差成正比,比例的作用是快速响应和减小稳态误差。
2)积分作用:以误差(偏差)的积分做为输入,输出为控制量的线性关系。积分的作用是消除静态误差,即消除稳态误差。
3)微分作用:以误差(偏差)的微分做为输入,输出为控制量的线性关系。微分的作用是消除瞬时误差,即消除过冲和振荡。
PID 控制分为位置型PID 和增量型PID,PG 电机是通过改变电机控制端导通角(强电电压过零点延后开启时间点)来实现转速控制。通过定时器计算导通时间可以精确到微秒,为了减小计算量,采用增量式PID 算法。每次检测到实际转速只需要计算本次控制量的增量,然后通过控制输出本次增量及前一次输出量之累加值即可[2-5],见图1。
图1 PID 控制系统原理框图
增量式PID 控制计算公式为:
式中:
Δu(k)—本次输出延后过零时间的增量;
u(k)—本次电机控制端在电压过零后延迟开启对应时间点;
u(k-1)—前一次电机控制端电压过零时间延后时间点;
e(k)—本次设定转速与实际转速差值;
e(k-1)—前一次设定转速与实际转速差值;
Kp—比例放大系数;
Ki—积分放大系数;
Kd—微分放大系数;
Ti—积分时间;
Td—微分时间。
2.2 单片机程序实现方法
为提高程序的通用性,我们将算法封装成一个函数,PID 控制的算法函数为void CountPID (void),该函数在主循环中调用,调用该函数计算出的新斩波时间AfterZEROtime 在定时器TCA1 中断中更新。
TempVar1 = EnPID * (KpPID +KiPID*KtPID+(KdPID/KtPID)) ;
TempVar2 = En1PID* (KpPID+(KdPID/KtPID ));
TempVar3 = En2PID * (KdPID/KtPID);
TempVar = TempVar1 - TempVar2 + TempVar3;
EnPID 为本次设定转速与实际转速差值e(k),即设定转速减实际转速,Set_PGSpeedtime - TempSpeed1;该值大于零说明需要加速,小于零则需要减速。
En1PID 为上一次设定转速与实际转速差值e(k-1);
En2PID 为上上次设定转速与实际转速差值e(k-2);
EnPID 等于 En1PID 且二者均小于2 则认为达到设定转速,不进行斩波时间调整。
TempVar1 对应公式(2)中的第一项Ae(k);
TempVar2 对应公式(2)中的第二项Be(k-1);
TempVar3 对应公式(2)中的第三项Ce(k-2);
TempVar 对应公式(2)中的Δu(k)为本次输出斩波时间增量,该值大于零说明需要加速,小于零则需要减速。
由于单片机运算浮点数速度很慢,参数Kp、Ki、Kt、Kd 均采用放大16 倍的整数进行计算(此时中间计算结果不会产生溢出),最终TempVar 的赋值再右移4位进行还原。为了防止数值过大溢出,当设定转速差值|EnPID| > 500 时将值限定在500。当设定本次实测转速与前一次实测转速均等于目标转速则认为电机转速已达到目标转速,PG 电机控制端导通时间保持不变。PG 电机控制当中,采用定时器产生500 us 的中断。
3 PID 参数整定及算法进一步优化果
在完成算法和软件设计之后,开始通过实验确定PID调节的参数整定,实验过程中根据转速波动幅度及响应速度整定Kp,Ki,Kt,Kd。
1)扫风打开:取参数组1 时电机转速稳定,基本能够控制在设定转速±10 r/min,但打开扫风之后转速波动就很大,超过±20 r/min;
2)扫风叶片固定不动时,取参数组2 时不扫风状态下电机转速比较稳定,但是在扫风状态时转速不是很稳定,基本在±17 r/min 左右。
通过反复的调节参数都无法找到一组可以同时适配扫风打开和停止的参数,需要对算法做进一步的优化,为此在控制算法上引入了扫风的状态,根据不同的扫风状态动态调用不同的参数组,进一步优化后的实验测试数据如表3、4。
表3 新算法扫风停状态转速
表4 新算法扫风开状态转速
采用新的算法后,在非扫风状态,电机转速稳定性基本控制在±8 r/min 以内;扫风状态下,转速也能够控制在目标转速±10 r/min 以内,精度控制提升67 %。扫风状态下超调量很小且能够快速平稳的达到设定转速。
4 结论
本文针对空调室内机直流电机转速控制波动大的问题进行了研究。通过分析转速控制波动大的主要原因,并提出了一种新的基于扫风状态的增量型PID 控制算法,通过实验验证,提出的方法能够有效地改善电机转速控制的精度,使得空调系统运行更加稳定,新的算法能将适用扫风和不扫风两种状态下转速精度控制在±10 r/min 以内。所述控制算法同样适用于带转速反馈的直流电机控制。