自适应PI调节方法
技术领域
本发明涉及低压电器领域,特别涉及一种自适应PI调节方法。
背景技术
电力电子学科主要研究新型电力电子器件、电能的变换与控制、功率源、电力传动及其自动化等理论技术和应用,其依托晶闸管等功率半导体器件实现高性能的功率转换。
现阶段电力电子变换器的应用中,一般都会遇到供电电源、负载特性、系统干扰等因素带来的系统调节波动;对于一个特定系统,当其输出特性满足小负载的场合时,其调节大负载时容易出现刚性不足、输出滞后、调整过慢等情况。
发明内容
本发明的目的在于克服现有技术的缺陷,提供一种响应迅速,调节效果良好的自适应PI调节方法。
为实现上述目的,本发明采用了如下技术方案:
一种自适应PI调节方法,包括以下步骤:
步骤一,通过对输出电流进行实时采样获得反馈电流I′,将其与设定的目标电流I
*进行比较得到两者之间的实时电流瞬时值误差
将实时电流瞬时值误差Err′与设定误差Err
*比较判断是否达到目标电流;
步骤二,通过当前中断周期的积分步长KiStep′,计算下一个中断周期的积分步长KiStep*;
步骤三,将本次已经更新的积分步长KiStep*累加到实际的积分增益Ki,将积分增益Ki输出至PI调节器中进行电流闭环控制;
步骤四,多次循环PI调节后,当实时电流瞬时值误差Err′≤设定误差Err*时,目标电流调节完毕。
进一步,所述中断周期的积分步长KiStep*的计算方法包括以下步骤,
步骤一,对输出电流和输出电压进行实时采样,计算得到前N次采样值的电流有效值Irms和电压有效值Urms;
步骤二,根据公式ZL=Urms/Irms,计算得到实时负载ZL;
步骤三,根据公式U=I*ZL和公式U=D*Udc,计算达到最终目标电压时的最终PWM输出占空比D*,其中I为参数设定的目标电流,U为目标电压,Udc为母线电压,D为输出占空比;
步骤四,采用平面直角坐标系,公共原点O为坐标原点,A点坐标(T′,D′),B点坐标(T
*,D
*),当前中断周期的积分步长KiStep′与线段OA的斜率K′对应,下一刻的积分步长与线段AB的斜率K
*对应,利用公式
计算出下一个中断周期的积分步长,
其中,T′为当前系统实施爬升时间,D′为当前系统实时输出占空比,T*为预期稳定时间,D*为最终目标电压时的最终PWM输出占空比。
进一步,其中积分步长KiStep*的累加方式为,
累加项Ki_acc=前一次累加项Ki_acc+当前积分步长KiStep*,
积分增益Ki=初始积分增益Ki_0+累加项Ki_acc,
其中,累加项Ki_acc的初值为0,初始积分增益Ki_0为参数人为设定,当前积分步长KiStep*就是步骤二中计算得到的积分步长。
进一步,所述电流有效值Irms和电压有效值Urms通过基于堆栈的方式实时计算。
进一步,通过堆栈计算电流有效值Irms或者电压有效值Urms包括以下步骤,
步骤一,对输出电流i或者电压u进行一个完整周期的信号采样,并放入数组堆栈I[N]或者u[N]中;
步骤二,在之后的每次电流信号采样时,从零开始记录当前采样点的相对次数,并按位置放入数组堆栈I[N]或者u[N]中;
步骤三,在每次更新数组堆栈I[N]或者u[N]中的任一元素后,即可通过均方根公式
来计算本周期内的电流有效值或者电压有效值。
进一步,电流有效值I
rms和电压有效值U
rms所用采样点数为波形周期长度一半的整数倍,即:
T为波形周期离散点数,k为非零自然数。
进一步,预期稳定时间T*和系统实施爬升时间T′采用相同的计数量纲。
进一步,电压有效值Urms采用母线电压Udc和当前系统实时输出占空比D′重构得到,公式如下:
Vout=Vin*D,
其中:Vin为输入电压即为母线电压Udc,Vout为输出电压即为电压有效值Urms,Fsw为开关频率,L为电压原件的电感值,D为开关导通占空比即为输出占空比D′。
进一步,实时输出占空比D′通过CPU内部PI调节器的输出量得到。
进一步,母线电压Udc和当前系统实时输出占空比D′重构电压有效值Urms的公式为:
Vout=Vin*D,
其中:Vin为输入电压即为母线电压Udc,Vout为输出电压即为电压有效值Urms,Fsw为开关频率,L为电压原件的电感值,D为开关导通占空比即为输出占空比D′。
本发明自适应PI调节方法,通过实时采样获得反馈电流,与目标电流进行比较得到实时电流瞬间值误差,通过参数设定需要进行自适应PI调节的设定误差,实时电流瞬时值误差与设定误差比较判断是否达到目标电流;通过当前中断周期的积分步长,计算下一个中断周期的积分步长,通过积分增益予以实时调增,此自适应PI调节方法,响应快,效果良好。
附图说明
图1是本发明Rms瞬时计算更新示意图;
图2是本发明负载阻抗实时辨识采样示意图;
图3是本发明曲线调整积分步长示意图;
图4是本发明自适应PI算法投入前的性能示意图;
图5是本发明自适应PI算法投入后的性能示意图。
具体实施方式
以下结合附图1至5给出的实施例,进一步说明本发明的自适应PI调节方法的具体实施方式。本发明的自适应PI调节方法不限于以下实施例的描述。
本发明自适应PI调节方法,包括以下步骤:
步骤一,通过对输出电流进行实时采样获得反馈电流I′,将其与设定的目标电流I
*进行比较得到两者之间的实时电流瞬时值误差
通过参数设定需要进行自适应PI调节的设定误差Err
*,实时电流瞬时值误差Err′与设定误差Err
*比较判断是否达到目标电流;
步骤二,通过当前中断周期的积分步长KiStep′,计算下一个中断周期的积分步长KiStep*;
步骤三,将本次已经更新的积分步长KiStep*累加到实际的积分增益Ki,将积分增益Ki输出至PI调节器中进行电流闭环控制;
步骤四,多次循环PI调节后,当实时电流瞬时值误差Err′≤设定误差Err*时,达到目标电流调节完毕。
本发明自适应PI调节方法,通过实时采样获得反馈电流,与目标电流进行比较得到实时电流瞬间值误差,通过参数设定需要进行自适应PI调节的设定误差,实时电流瞬时值误差与设定误差比较判断是否达到目标电流;通过当前中断周期的积分步长,计算下一个中断周期的积分步长,通过积分增益予以实时调增,此自适应PI调节方法,响应快,效果良好。
如图3所示,一种中断周期的积分步长KiStep*的计算方法包括以下步骤,
步骤一,对输出电流和输出电压进行实时采样,计算得到前N次采样值的电流有效值Irms和电压有效值Urms;
步骤二,根据公式ZL=Urms/Irms,计算得到实时负载ZL;
步骤三,根据公式U=I*ZL和公式U=D*Udc,计算达到最终目标电压时的最终PWM输出占空比D*,其中I为参数设定的目标电流,U为目标电压,Udc为母线电压,D为输出占空比;
步骤四,采用平面直角坐标系,公共原点O为坐标原点,A点坐标(T′,D′),B点坐标(T
*,D
*),当前中断周期的积分步长KiStep′与线段OA的斜率K′对应,下一刻的积分步长与线段AB的斜率K
*对应,利用公式
计算出下一个中断周期的积分步长,
其中,T′为当前系统实施爬升时间,D′为当前系统实时输出占空比,T*为预期稳定时间,D*为最终目标电压时的最终PWM输出占空比。
其中一种积分步长KiStep*累加到实际的积分增益Ki的方式为:
累加项Ki_acc=前一次累加项Ki_acc+当前积分步长KiStep*,
积分增益Ki=初始积分增益Ki_0+累加项Ki_acc,
其中,累加项Ki_acc的初值为0,初始积分增益Ki_0为参数人为设定,当前积分步长KiStep*就是步骤二中计算得到的积分步长。
当然,积分步长KiStep*累加到实际的积分增益Ki还可以采用其他现有方式实现。
具体地,如图1-5所示,自适应PI调节方法包括以下详细过程。
(1)输出电压、电流的瞬时有效值调节:
如图1所示,根据数学定理:周期函数无论在波形何处开始计算均方根
只要保证采样点数N一定,在函数信号为周期可重复的前提下其计算出的有效值Rms一定是一样的,即:X
rms 1Rms1=Rms2X
rms 2=Rms3X
rms 3。
通常来说系统对于一个周期为T信号的有效值控制,因其有效值Rms需要每T时间间隔完成更新,故系统的调节时间间隔为T,这样的处理方式往往调节太慢(比如工频信号50Hz调节时间为20ms),对于负载扰动等外部干扰信号的引入抑制效果很弱,
现对其进行算法改进,根据上述周期函数的有效值一致特性,在每次采样时刻到来时对输出电流进行采样,基于堆栈的方式实时计算前N次采样值的有效值Rms(本次采样值、前N-1次采样值的Rms),即可完成有效值的实时更新,在控制上实现有效值的瞬时调节;
以系统中断周期8KHz为例,其中计算T周期信号有效值Rms的传统方法和改进方法对比如下:
1.传统方法为对输出电流i进行间隔125us的信号采样,若目标输出电流周期为50Hz,则在20ms内可以采样电流i共计160个点,即可通过均方根公式
来计算本周期内的电流有效值(此时N=160、X
i就是输出电流i的采样点i
0~i
159);
传统方法在采集满160个点(一个目标电流信号周期)后计算有效值Rms,然后重新从点i0开始采样到i159并以此循环,可以看出其有效值的更新周期就是目标电流信号周期(50Hz时Rms更新周期为20ms)。
2.改进方法通过堆栈计算电流有效值Irms或者电压有效值Urms包括以下步骤,
步骤一,对输出电流i或者电压u进行一个完整周期的信号采样,并放入数组堆栈I[N]或者u[N]中;
步骤二,在之后的每次电流信号采样时,从零开始记录当前采样点的相对次数,并按位置放入数组堆栈I[N]或者u[N]中;
步骤三,在每次更新数组堆栈I[N]或者u[N]中的任一元素后,即可通过均方根公式
来计算本周期内的电流有效值或者电压有效值。
具体地,改进方法为对输出电流i进行间隔125us的信号采样,并形成数组堆栈I[160],若目标输出电流周期为50Hz,则在20ms内可以采样电流i共计160个点i0~i159,将这160个电流点分别放入数组堆栈I[160]中(I[0]中存放i0、I[159]中存放i159),这样数组堆栈I[160]中便存放了一个完整周期的电流信号;
在之后的每次间隔125us电流信号采样时,从零开始记录当前采样点的相对次数,并按位置放入数组堆栈I[160]中,比如:第50次信号采样的相对位置为49,则将i49放入I[49]中;
在每一次更新数组堆栈I[160]的任一元素后,即可通过均方根公式
来计算本周期内的电流有效值(此时N=160、X
i就是数组堆栈I[0]~I[159]);
利用周期函数在计算均方根时的数学特性,以此方法便可以实现有效值Rms的快速更新,可以看出其有效值的更新周期就是系统采样信号周期(更新周期为125us)。电压有效值Urms的计算方法和上述方法步骤一致。
负反馈闭环控制系统的性能很大程度上依赖于反馈信号的实时性,根据上述改进方法实现有效值的瞬时更新,极大的提高系统的快速响应能力、抗干扰能力等指标。
而对于输出电压也是同样的处理方式,若没有电压采样信号则基于母线电压Udc和输出占空比Duty进行重构即可得到输出电压Uout,再经上述方式运算即可:
系统基于H桥单极性SPWM方式进行正弦波电流输出,其本质上是一个降压变换器(又名Buck电路),系统每一次根据目标指令进行瞬时调节时,根据电感原件在一个开关周期内的伏秒特性,可以写成Buck电路的传递函数:
Vout=Vin*D
其中:Vin为输入电压(母线电压Udc)、Vout为输出电压(电压有效值Urms)、Fsw为开关频率、L为电压原件的电感值、D为开关导通占空比(输出占空比D′Duty);
通过上述计算公式便可重构输出电压的瞬时值Vout,又因系统的SPWM调制波为正弦波,在输出不失真、不饱和的情况下输出电压波形由调制波决定,故而可以按照计算电流有效值Irms的方法得到电压有效值Vrms。
(2)负载等效阻抗辨识:
如图2所示,根据负载阻抗的定义Z=U
rms/I
rms,考虑到实际阻抗中感性负载、容性负载的存在造成负载电压、电流的相位不完全一致,在计算有效值时所用采样点数为波形周期长度一半的整数倍,即:
(T为波形周期离散点数,k为非零自然数)。
(3)变步长自适应PI算法计算比例、积分增益:
1.计算调节当前误差:通过采样计算得到反馈电流I′,将其与设定的目标电流I
*进行比较得到两者之间的误差百分比
通过参数设定需要进行自适应PI调节的误差范围Err
*,当实时电流瞬时误差Err′>设定误差Err
*时,则认为目标电流还未稳定且瞬时值处于爬升过程中;
2.计算实时负载:有均方根计算公式
故采集
(k∈非零自然数,即半个波形周期的整数倍)时间段内的I、U瞬时值(其中U的瞬时值可以通过U
dc、占空比Duty进行重构)按照均方根公式进行计算,得到该时间段内的U
rms、I
rms,根据公式
计算实时负载;
3.根据目标电流和实时负载计算出目标电压:根据公式U=I*ZL。ZL即为第2步中已经辨识得到的实时负载大小、I为参数设定的目标电流,得到最终输出的目标电压;又有公式U=D*Udc(Udc即为母线电压、D为输出占空比、U为上面计算的目标电压),得到达到最终目标电压时的最终PWM输出占空比,令其为D*;
4.通过参数设定预期的稳定时间:通过参数设定想要的系统稳定时间T:该稳定时间指的是系统从启动至系统最终Irms稳定的爬升过程总时间,令其为T*;
5.检测当前的实时输出参数:检测当前的系统实时输出占空比D′和实时爬升时间T′:实时占空比D′通过CPU内部PI调节器的输出量即可得到,实时爬升时间T′则需要CPU内部在系统启动后开始不断的进行计数,计数的量纲需与预期稳定时间T*一致;
6.明确计算量纲:目标占空比D*以CPU内部PWM外设周期寄存器为基准;实时占空比D′以CPU内部PWM外设周期寄存器为基准;预期稳定时间T*以瞬时电流点数N为基准(比如信号周期50Hz、中断周期8KHz,则一个电流周期瞬时点数N=160点);实时爬升时间T′以瞬时电流点数N为基准;
7.实时调整下一刻中断周期的积分步长:以本次中断周期的积分步长KiStep′为基准,通过曲线的比例计算来调整下一个中断周期的积分步长KiStep*,调整方法示意图如图3所示:A点对应当前中断周期的实际情况(T′,D′),B点对应系统稳定的预期情况(T*,D*),O为坐标原点;
当前中断周期的积分步长KiStep′为线段OA的斜率K′,下一刻的积分步长KiStep
*为线段AB的斜率K
*,则利用公式
即可计算出下一个中断周期的积分步长;
值得注意的是当前实际情况若发生电流超调(位于图中的C点),则极计算得到的当前积分步长KiStep′为负值(BC段斜率为负),则后续的积分总值将发生减小,还是在原先既定的设计原理执行范围之内,并没有发生溢出现象;
8.累加积分步长到实际的PI调节器:每次在PI调节器调用之前,将本次已经更新的积分步长KiStep*KiStep*累加到实际的积分增益Ki,并将此Ki投入到PI调节器中进行电流闭环控制;
其中一种积分步长KiStep*累加到实际的积分增益Ki的方式为:
累加项Ki_acc=前一次累加项Ki_acc+当前积分步长KiStep*,
积分增益Ki=初始积分增益Ki_0+累加项Ki_acc,
其中,累加项Ki_acc的初值为0,初始积分增益Ki_0为参数人为设定,当前积分步长KiStep*就是步骤二中计算得到的积分步长;
9.判断输出是否已经达到目标值:经过了几个循环的PI调节以后输出电流势必会到达给定目标值,在CPU的每个中断周期内都按第1步中的误差判断方法进行判断,当检测到实时电流瞬时值误差Err′≤设定误差Err*时,认为电流上升时间结束;
10.系统稳态运行PI参数保持:在系统输出至目标值稳定后,保持由上述自适应PI算法得到的比例、积分增益不变,由于此时闭环系统已经稳定又采用了第1)步中的有效值瞬时调节方式,系统对于负载扰动等外部干扰信号的引入抑制效果依然很强。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。