Hello World by 阿水

思久欲知 知繁渴思 朝乾夕惕 焚膏继晷 日拱一卒 功不唐捐

0%

数字控制开关电源

开关电源数字控制

相关参考链接

B战杨帅哥的开关电源数字控制

知乎开关频率与闭环带宽

1 数字控制开关电源的重要内容

1 采样时间点对滞后的影响(零阶保持器),ADC采样点与相位优化的关系
2 控制带宽频率与开关频率的关系(为什么是五倍的关系)
3 s平面与z平面的映射关系
4 使用梯形积分法将s域传递函数变为z域传递函数,之后差分化变为代码。在Z域下直接设计补偿控制器。
5 Z变换到代码中的具体操作
6 MATLAB的sisotool工具、c2d工具等使用

2 采样时间点对滞后的影响(零阶保持器),ADC采样点与相位优化的关系

1

计算fx频率下的相位余量公式为:

ϕ=360×fxFx×Kd
Fx为采样频率 Kd为延迟周期比例

Fs=100KHzfx=20kHz的情况下计算。

在PWM周期开始采样,Kd=1,计算相位在20KHz滞后72o

在PWM周期一般开始采样,Kd=0.5,计算相位在20KHz滞后36o

应该尽可能的在PWM周期中后段触发ADC采样,可以有利于系统稳定性,提高相位余量。

数字控制的延时问题

就是如果采样频率等于开关频率,在环路中会引入540o的相位滞后,也就是说,在开关频率处会引入540度的相位滞后!即使截止频率是开关频率的110,光是数字控制在截止频率处也会引入54度的相位滞后,其实也很难补偿回来了。所以说,在数字控制下,为了保持控制系统有足够的相角裕度,其截止频率会更低一些,从而减小数字控制引入的相角滞后的影响。当然还有一种办法是提高采样频率,现在我们做逆变器一般采样频率是开关频率的两倍。这也是为了减小数字控制造成的延迟。

3 控制带宽频率与开关频率的关系(为什么是五倍的关系)

2

​ 假设一个电力电子变换器开关频率为100k,调制波频率为10k,那么经过PWM环节得到占空比,状态空间平均法认为得到的占空比也是一个10k的交流信号(如图2所示的红线),即PWM环节等效为一个比例环节。但实际上不完全是这样的,对占空比做傅里叶分析,可以知道占空比中除了10k的分量外,还有90K,110K,190K……的分量,那么状态空间平均法的准确度就依赖于这些非基波分量的抑制程度,显然,带宽越低,对这些非基波频率的分量抑制能力越强,状态空间平均法得到的模型就越准确。这是电力电子变换器环路截止频率为开关频率的1/5~1/10的重要原因之一,当环路截止频率超过开关频率的1/5以后,用状态空间平均法得出的模型就和实际模型差距比较大了。

4 s域和z域的映射关系

基础知识部分

首先对于是一个负反馈来说。极点必须位于s平面的左半平面的原因是:对于负反馈系统的话,假设分母为(s+p1)(s+p2)可知极点为p1p2的,经过拉式反变换。

最后变换出的输出量中有含有乘法ept,此时只有p满足在S左半平面,当t时有ept0,此时系统误差可趋向于0,因此系统稳定。

首先B站视频图像化展示s域z域的关系

1SZ
3

5 z变换实操案例

基础知识1 z变换

序列x(n)的z变换为X(z),序列y(n)=x(n1)的z变换为Y(z)

Y(z)=n=y(n)zn=n=x(n1)zn

K=n1代入变为

Y(z)=n=x(k)z(k+1)=n=x(k)zkz1

经整理得

Y(z)=z1n=x(k)zk=z1[X(z)]

可以如下图进行展示

4

基础知识2 梯形积分法的Z变换相关公式

s=2T(z1)z+1=2T1z11+z1T

计算实例

步骤1获取目标同步函数

Hc(s)=wP0s(swZ1+1)(swZ2+1)(swP1+1)(swP2+1)s=2Ts(z1)z+1=2Ts1z11+z1

将s代入

H(2(11z)T(1z+1))=TwP0(2(11z)TwZ1(1z+1)+1)(2(11z)TwZ2(1z+1)+1)(1z+1)(2(11z)TwP1(1z+1)+1)(2(11z)TwP2(1z+1)+1)(11z)

进行因式分解

(3)HC[z]=(1)wP0wP1wp2((T3wZ1+2T2)wZ2+2T2wZ1+4T)z3+wP0wP1wp2((3T3wZ1+2T2)wZ2+2T2wZ14T)z2+wP0wP1wp2((3T3wZ12T2)wZ22T2wZ14T)z1+wP0wP1wp2((T3wZ12T2)wZ22T2wZ1+4T)z0(2)wZ1wZ2((2T2wP1+4T)wP2+2TwP1+8)z3+wZ1wZ2((2T2wP14T)wP22TwP124)z2+wZ1wZ2((2T2wP14T)wP22TwP1+24)z1+wZ1wZ2((2T2wP1+4T)wP22TwP124)z0=B3z3+B2z2+B1z1+B0A3z3A2z2A1z1+1

上下同时乘z3即为时间向前移动3个延时

(6)HC[z]=(4)B0wP0wP1wp2((T3wZ1+2T2)wZ2+2T2wZ1+4T)z0+B1wP0wP1wp2((3T3wZ1+2T2)wZ2+2T2wZ14T)z1+B2wP0wP1wp2((3T3wZ12T2)wZ22T2wZ14T)z2+B3wP0wP1wp2((T3wZ12T2)wZ22T2wZ1+4T)z3(5)A0wZ1wZ2((2T2wP1+4T)wP2+2TwP1+8)z0+A1wZ1wZ2((2T2wP14T)wP22TwP124)z1+A2wZ1wZ2((2T2wP14T)wP22TwP1+24)z2+A3wZ1wZ2((2T2wP1+4T)wP22TwP124)z3

步骤2归一化

归一化的目的为使得A0=1,将HZ[z]上线同乘1wZ1wZ2((2T2wP1+4T)wP2+2TwP1+8)然后就可以得到下式:

(9)HC[z]=(7)B0wP0wP1wp2((T3wZ1+2T2)wZ2+2T2wZ1+4T)z0wZ1wZ2((2T2wP1+4T)wP2+2TwP1+8)+B1wP0wP1wp2((3T3wZ1+2T2)wZ2+2T2wZ14T)z1wZ1wZ2((2T2wP1+4T)wP2+2TwP1+8)+B2wP0wP1wp2((3T3wZ12T2)wZ22T2wZ14T)z2wZ1wZ2((2T2wP1+4T)wP2+2TwP1+8)+B3wP0wP1wp2((T3wZ12T2)wZ22T2wZ1+4T)z3wZ1wZ2((2T2wP1+4T)wP2+2TwP1+8)(8)A01+A1wZ1wZ2((2T2wP14T)wP22TwP124)z1wZ1wZ2((2T2wP1+4T)wP2+2TwP1+8)+A2wZ1wZ2((2T2wP14T)wP22TwP1+24)z2wZ1wZ2((2T2wP1+4T)wP2+2TwP1+8)+A3wZ1wZ2((2T2wP1+4T)wP22TwP124)z3wZ1wZ2((2T2wP1+4T)wP2+2TwP1+8)

步骤3 最终结果

HC[z]=B3z3+B2z2+B1z1+B0A3z3A2z2A1z1+1(10)B0=wP0wP1wp2((T3wZ1+2T2)wZ2+2T2wZ1+4T)z0wZ1wZ2((2T2wP1+4T)wP2+2TwP1+8)B1=wP0wP1wp2((3T3wZ1+2T2)wZ2+2T2wZ14T)z1wZ1wZ2((2T2wP1+4T)wP2+2TwP1+8)B2=wP0wP1wp2((3T3wZ12T2)wZ22T2wZ14T)z2wZ1wZ2((2T2wP1+4T)wP2+2TwP1+8)B3=wP0wP1wp2((T3wZ12T2)wZ22T2wZ1+4T)z3wZ1wZ2((2T2wP1+4T)wP2+2TwP1+8)A1=wZ1wZ2((2T2wP14T)wP22TwP124)z1wZ1wZ2((2T2wP1+4T)wP2+2TwP1+8)A2=wZ1wZ2((2T2wP14T)wP22TwP1+24)z2wZ1wZ2((2T2wP1+4T)wP2+2TwP1+8)A3=wZ1wZ2((2T2wP1+4T)wP22TwP124)z3wZ1wZ2((2T2wP1+4T)wP2+2TwP1+8)

由上面可知手动离散化的过程是痛苦漫长的,但是可以用MATLAB中的

matlab为连续系统提供了离散化模型。利用c2d()函数可实现连续函数的快速离散化。c2d()函数的调研格式为:

(11)sysd=c2d(sys,Ts)sysd=c2d(sys,Ts,method)

式中,sysd为采样时间Ts的离散时间模型;输入参量sys为连续时间模型对象;Ts为采样周期。Method用来指定离散化采用的方法:

zoh 采用零阶保持器法,零阶保持器的作用是在信号传递过程中,把第nT时刻的采样信号值一直保持到第(n+1)T时刻的前一瞬时,把第(n+1)T时刻的采样值一直保持到(n+2)T时刻,依次类推,从而把一个脉冲序列变成一个连续的阶梯信号。因为在每一个采样区间内连续的阶梯信号的值均为常值,亦即其一阶导数为零,故称为零阶保持器;
foh 采用一阶保持器法,与上面不同的是,在信号传递过程中,两个相邻采样点之间的信号是一阶函数,起点和终点的值分别等于前后两个采样点的值则
tustin 采用双线性变换法
prewarp 采用改进的双线性变换法
matched 采用零极点匹配法

默认为zoh

MATLAB的的例子:求下式的Z变换:

G(s)=10(s+1)(s+3)(s+5)(s+7)

步骤4 差分化

已知

y[z]x[z]=B3z3+B2z2+B1z1+B0A3z3A2z2A1z1+1

经化解可得

(12)x[z]×(B3z3+B2z2+B1z1+B0)=y[z]×(A3z3A2z2A1z1+1)B3xn3+B2xn2+B1xn1+B0xn=A3yn3A2yn2A1yn1+yn

可得最终差分化所得的差分方程:运行在处理器中

y是控制量 x是误差 下标为多少周期前

yn=B3xn3+B2xn2+B1xn1+B0xn+A3yn3+A2yn2+A1yn1