单相PWM整流器 PR 比例谐振控制 spwm matlab simulink 仿真 模型 仿真算法: 1)采用电压、电流双闭环控制,直接电流控制策略,电压前馈控制。 2)电压外环采用PI控制。 3)电流内环采用PR(比例谐振)控制。 PR控制可以几乎无差跟踪正弦电流波形,稳态误差极小。 4)调制策略采用双极性SPWM。 5)具有PFC补偿功能,功率因数>0.999。 6)畸变小,稳态时THD谐波含量约为0.44%(均值),<1%。 7)仿真模型主要涉及AC单相交流电源、整流桥、L电感、R电阻、C电容、示波器、电压采集模块、电流采集模块、PLL锁相环模块、PI模块、PR模块、双极性spwm模块等。 8)各个模块功能分类明确,容易理解。 运行条件:输入交流电压 AC220V,输出直流电压 DC400V,负载 16kW。

单相PWM整流器的控制玩起来其实挺有意思的。这次咱们搞的模型用上了PR控制这个黑科技,直接让电流跟踪准到飞起。整个系统架构分成电压外环和电流内环两兄弟,外环负责稳住直流母线电压,内环专治各种电流波形不服。

先看电压外环部分。这里用的是经典的PI控制器,参数调得比较暴力。在Simulink里直接拖个PID模块出来,把积分时间设成0.001秒,比例系数给到0.5。不过要注意前馈补偿得加到位,毕竟220V交流转400V直流的压力不小。代码层面其实就是个简单的离散化处理:

Kp = 0.5;
Ki = 500;
Vdc_ref = 400;  //目标直流电压
Vdc_actual = feedback_value;
error = Vdc_ref - Vdc_actual;
integral += error * Ts;
output = Kp*error + Ki*integral;

电流内环才是重头戏。PR控制器在这里大显身手,专门对付50Hz基波分量。仿真模型里直接搭了个谐振调节器,关键参数谐振频率设置为314rad/s(对应50Hz),带宽控制在10Hz左右。实测发现带宽太大会引入噪声,太小又响应慢,这个度得拿捏准了。具体传递函数长这样:

s = tf('s');
Kp = 15;  //比例系数
Kr = 200; //谐振系数
ω0 = 314; //谐振频率
PR_controller = Kp + (2*Kr*ω0*s)/(s^2 + 2*ω0*s + ω0^2);

双极性SPWM生成模块是个技术活。我们用了载波频率5kHz的三角波,和调制波比较生成驱动信号。这里有个小技巧,在Simulink里用Relational Operator模块做比较器,后面接个NOT门实现互补输出。实测占空比变化率得控制在0.5以下,不然电感会叫得很难听。

功率因数校正效果相当给力,模型里嵌入了基于瞬时功率理论的补偿算法。核心代码就几行但效果拔群:

P = v_alpha*i_alpha + v_beta*i_beta;  //瞬时有功功率
Q = v_alpha*i_beta - v_beta*i_alpha;  //瞬时无功功率
iref_q = Q / (v_alpha^2 + v_beta^2); //补偿量计算

实测数据亮瞎眼:稳态时THD直接干到0.44%,功率因数稳在0.999以上。不过要注意电感参数的选择,这次用了3mH的滤波电感,电阻选了0.1Ω。电容方面470μF的电解电容阵列效果最佳,纹波电压能压在5V以内。

锁相环模块千万别省,用二阶广义积分器实现的PLL相位跟踪准到没朋友。核心算法部分其实是个正交信号生成器:

αβ_frame = Clarke_Transform(grid_voltage);
q = αβ_frame.α * sinθ - αβ_frame.β * cosθ;  //正交分量
phase_error = atan2(q, αβ_frame.α);  //相位差

调参时积分时间常数建议设在0.02秒左右,既保证动态响应又不会震荡。

整个模型跑下来最爽的是看示波器里的波形——输入电流和电压几乎完全同相位,正弦波干净得能当参考信号用。输出直流母线电压稳如老狗,负载突变时波动不超过2%。不过要提醒新手注意:散热仿真得单独做,实际搞这么大功率(16kW)的话,IGBT的结温分分钟教你做人。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐