十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

三相PWM整流器Simulink仿真:从双闭环控制到SVPWM调制建模指南

三相PWM整流器Simulink仿真:从双闭环控制到SVPWM调制建模指南 三相 PWM 整流器的 Simulink 仿真是电力电子和电机控制方向经常要面对的一道门槛。许多人已经知道三相 PWM 整流器由整流桥、交流侧电感和直流侧电容组成也大概知道要采用双闭环控制但真正在 Simulink 里把模型搭起来以后问题往往出在 PLL 角度、PI 符号、SVPWM 占空比和直流电压建立这几处。本文从双闭环控制链路开始逐步搭建一个基于 SVPWM 调制的三相 PWM 整流器仿真模型并给出参数、验证方法、常见排错路径和工程化建议。这篇内容既适合准备做毕业设计或课程作业的初学者也适合需要快速验证控制算法的工程师。读完以后你至少能完成三件事搭出一个能运行的三相 SVPWM 整流器 Simulink 模型理解电压外环、电流内环和调制模块之间的信号关系在仿真发散、直流电压建立不起来、电流波形畸变时知道从哪个模块开始查。1. 三相PWM整流器和双闭环控制的基本逻辑1.1 为什么需要 PWM 整流器传统三相不控整流桥只能让能量从交流侧流向直流侧。直流电压由电网电压决定不能主动调节而且网侧电流会出现大量低频谐波功率因数也比较低。要解决这个问题通常把不控整流桥换成由 IGBT 或 MOSFET 构成的三相全桥让开关管按一定规律导通从而使交流侧电流接近正弦并与电网电压保持同相或反相。这种结构就是 PWM 整流器。它本质上是一个升压型变换器通过控制交流侧电感上的电压使输入电流跟踪给定值。直流侧电压通常要高于交流侧线电压峰值这样系统才具备足够的调制空间。1.2 PWM 整流器如何工作三相 PWM 整流器的主电路可以理解为三组半桥每组半桥输出一个幅值在正负极母线电压之间变化的高频脉冲电压。交流侧串联电感后电感两端电压等于电网电压和整流桥输入电压之差这个压差决定电流的变化速度。稳态时整流桥可以根据需要输出幅值和相位都可控的交流电压。通过调整桥臂输出电压与电网电压之间的幅值和相位差就能控制电流的大小和方向。这个控制过程必须足够快所以不能只靠一个电压环还需要电流内环。1.3 双闭环和 SVPWM 在系统中的位置双闭环控制是电压环和电流环的级联结构。电压外环控制直流母线电压它的输出作为有功电流给定电流内环控制交流侧电流它的输出最终变成整流桥的期望交流电压。SVPWM 的作用就是把这个期望电压转换成六个开关管的导通信号。简单说控制链路是直流电压给定值经过电压 PI 得到有功电流给定再经过电流 PI 得到电压分量再经坐标反变换和解耦后交给 SVPWM最终变成 IGBT 驱动脉冲。2. 先看懂控制链路电压外环、电流内环与 dq 变换2.1 整个闭环的输入输出关系在常见电压定向控制中外环输入是直流电压误差输出是 d 轴电流参考值。q 轴电流参考值一般给零表示系统只传输有功功率无功电流为 0。电流内环在旋转坐标系下工作d 轴代表有功分量q 轴代表无功分量。控制器的输出经过反 Park 变换后得到 αβ 坐标系下的期望电压。这个信号送入 SVPWM 模块输出对应三相桥臂的通断信号。整个系统看起来是直流电压信号驱动着开关脉冲但中间其实隔了两级 PI、一次坐标变换和一次调制计算。2.2 电压外环为什么不能直接驱动 SVPWM电压外环的动态响应比电流环慢。直流母线电容本身会缓冲功率波动电压变化相对缓慢而交流电流必须在一个开关周期内快速跟踪给定。如果把电压误差直接交给调制器电流会失去约束最容易出现的现象是启动瞬间电流过大、电感饱和、直流电压过冲。因此采用级联结构电流内环先保证电流快速跟踪电压外环再根据功率平衡缓慢调节电流给定。这样的带宽分配更容易稳定也更容易单独调试。2.3 电流内环为什么要放在 dq 坐标系三相交流电流在静止坐标系里是正弦量直接用 PI 控制器很难做到无静差跟踪。如果通过 Park 变换把三相交流量放到与电网电压同步旋转的 dq 坐标系中稳态电流就变成直流量PI 控制器可以消除稳态误差。这就是双闭环仿真中必须加入 PLL 和坐标变换的原因。PLL 提供电网电压角度abc 电流变换到 dq控制器输出再变换回 αβ最后才能送进 SVPWM。2.4 PLL、Park 和反 Park 的作用PLL 的输出角度就是 dq 坐标系的旋转角度。d 轴通常与电网电压矢量对齐稳态时 q 轴电压接近 0。Park 变换把三相电流变成 id、iq反 Park 变换把期望电压从 dq 变回 αβ。角度错误是仿真中最隐蔽的问题。如果 PLL 角度差 90 度电流环输出仍然能生成脉冲但电流可能完全不受控直流电压建立不起来波形会迅速发散。3. 仿真环境与主电路参数准备3.1 软件和工具箱搭建这个模型需要以下环境工具作用MATLAB参数初始化、数据分析Simulink图形化建模Simscape Electrical提供电源、整流桥、电容等电力电子元件Control System Toolbox可选用于 PI 整定辅助分析不同版本库中模块名称会有差异。Simscape Electrical 在旧版本中叫 SimPowerSystems后来并入 Simscape。如果找不到某个模块优先在当前版本模块库中搜索关键字而不是照搬旧教材的完整路径。3.2 主电路参数设计学习验证用的参数没有唯一标准。下面这组参数适合做一个 380V、50Hz 的验证模型它能跑出比较清楚的直流电压和电流波形。参数数值说明交流线电压有效值380 V常用三相工业电网电网频率50 Hz常见工频网侧电感5 mH影响电流纹波和动态响应电感等效电阻0.1 Ω模拟线路损耗直流电压给定800 V需要高于交流侧线电压峰值直流母线电容4700 μF影响电压动态和纹波负载电阻50 Ω构成有功负载开关频率10 kHz常见电力电子频率直流电压不能太低。三相桥采用 SVPWM 时交流侧能输出的最大相电压幅值约为 Vdc/sqrt(3)因此 Vdc 必须大于 sqrt(3) 倍的相电压峰值。220V 相电压峰值约 311V取 700V 到 800V 比较安全。3.3 参数初始化脚本建议把参数写成一个 MATLAB 脚本模型启动前自动执行。这样修改负载或电容时不需要打开几十个模块改对话框。%% 三相PWM整流器双闭环仿真参数初始化 % 电网 Uline 380; freq 50; Uph_peak sqrt(2/3) * Uline; % 相电压峰值 % 直流侧 Udc_ref 800; Cdc 4700e-6; Rload 50; % 交流侧 Lg 5e-3; Rg 0.1; % 开关和控制 fsw 10000; Ts_control 1/fsw; % PI初始估计 Kp_voltage 1; Ki_voltage 30; Kp_current 10; Ki_current 200;这个脚本里的参数要保存为pwm_rectifier_init.m并在 Simulink 模型的 PreLoadFcn 回调中调用。这样每次打开模型工作区会自动出现所有变量模型内部模块可以直接引用这些变量名。4. Simulink 主电路搭建从电源到整流桥4.1 推荐模型结构和模块建议把模型按主电路、控制电路、调制电路三部分分开便于查找问题。pwm_rectifier.slx ├── 主电路 │ ├── 三相交流电源 │ ├── 线路阻抗 RL │ ├── 三桥臂 IGBT 整流桥 │ ├── 直流母线电容 │ └── 负载电阻 ├── 控制电路 │ ├── PLL │ ├── abc_dq 变换 │ ├── 电压外环 PI │ ├── 电流内环 PI │ └── dq_ab 反变换 └── 调制电路 ├── SVPWM 占空比计算 └── IGBT 驱动脉冲生成4.2 电源、线路阻抗和整流桥三相交流电源可以使用 Simscape Electrical 中的 Three-Phase Source。线路阻抗用一个三相互感器或三个 RL 支路表示。对学习模型来说把三相电源、电感、电阻串联接入整流桥即可。整流桥推荐使用 Universal Bridge 模块设置桥臂数为 3功率开关类型选择 IGBT/Diode。这样驱动信号可以来自外部 SVPWM而不是使用桥内自带的 PWM 脉冲。这里有一个常见问题如果 Universal Bridge 的桥臂导通信号来自外部必须保证上下桥臂不能同时导通。Simulink 中可以通过驱动信号互补和死区实现这一点。4.3 直流侧电容与负载直流母线电容可以并联一个负载电阻。电容的正极接整流桥上桥臂输出点负极接下桥臂输出点。电容初始电压建议设置为 Udc_ref 附近否则启动瞬间电流会非常大仿真容易发散。如果要做负载突变实验可以把固定电阻换成可变电阻并用 Simulink 的 Step 信号控制切换时间。这样做可以验证电压外环的动态响应。4.4 测量信号仿真中需要观察交流电压、交流电流、直流电压、dq 电流和 SVPWM 输出。建议使用 Voltage Measurement 和 Current Measurement 模块把所有关键信号通过 To Workspace 送到 MATLAB 工作区。不要只盯着 Scope 看波形。把数据存到工作区后可以用 MATLAB 脚本计算 THD、平均功率、功率因数这些指标才是判断整流器性能的依据。5. 双闭环控制器和 SVPWM 调制实现5.1 电压外环 PI 设计电压外环输入是 Udc_ref 与 Udc 的差值输出是 id_ref。由于母线电容较大电压环响应不能太快否则电流给定会出现大幅波动。在 Simulink 中可以直接使用 PID Controller 模块设置 P、I 参数并打开输出饱和限制。饱和下限给 0表示整流器在电动模式下只从电网吸收有功功率上限按负载能力设置一般取额定电流峰值。初始参数可以从 Kp1、Ki30 开始。如果直流电压持续振荡先降低 Kp如果稳态误差收敛太慢再增大 Ki。5.2 电流内环 dq 轴 PI 与解耦电流内环在 dq 坐标系下工作控制器输出加上解耦项得到整流桥期望电压。常见控制律如下具体正负号取决于电流方向和 Park 变换定义v_d_ref PI_d(i_d_ref - i_d) omega * L * i_q e_d v_q_ref PI_q(i_q_ref - i_q) - omega * L * i_d e_q其中 omega 是电网角频率L 是交流侧电感e_d 和 e_q 是电网电压在 dq 坐标系下的分量。把解耦项加进去以后d 轴和 q 轴电流更容易独立控制。如果模型中的电流方向定义与公式相反电流环会出现正反馈仿真很快发散。这个问题在调试时非常常见建议把电流测量方向、PLL 角度和 Park 变换定义一次性确认。5.3 SVPWM 的两种落地方式第一种方式使用 Simscape Electrical 自带的 PWM 生成模块。不同版本中模块名称不同搜索 SVPWM 或 PWM Generator然后把电流环输出的期望电压接进去。这种方式最快但新手很难看到调制过程内部发生了什么。第二种方式自己写 SVPWM 占空比计算函数。虽然代码量多一些但能直接观察扇区、作用时间和零矢量的作用排错更有底。5.4 用零序注入实现 SVPWM 占空比SVPWM 的一种等效实现是正弦调制加零序分量注入。三个相电压参考值经过 min-max 零序补偿后再转成占空比。下面这个 MATLAB Function 可以直接放到 Simulink 中。function [d_a, d_b, d_c] svpwm_duty(v_aref, v_bref, v_cref, Vdc) v_max max([v_aref, v_bref, v_cref]); v_min min([v_aref, v_bref, v_cref]); % 零序电压注入使三相参考值对称分布在调制范围内 v_zero -0.5 * (v_max v_min); va v_aref v_zero; vb v_bref v_zero; vc v_cref v_zero; % 占空比换算桥臂输出相对直流母线中点电压 d_a 0.5 va / Vdc; d_b 0.5 vb / Vdc; d_c 0.5 vc / Vdc; % 限幅避免占空比越界 d_a min(max(d_a, 0), 1); d_b min(max(d_b, 0), 1); d_c min(max(d_c, 0), 1); end这段代码的关键点有两处。第一零序电压注入让相电压中心点不再固定在 0而是跟随三相参考值的最大值和最小值变化。第二占空比公式中 Vdc 是直流母线电压输出占空比在 0 到 1 之间。注意这里输出的是每个桥臂上管的占空比不是 PWM 脉冲本身。要让 IGBT 导通还需要把占空比与三角载波比较并生成互补的下管脉冲。5.5 如何生成 IGBT 驱动脉冲在 Simulink 中可以生成周期为 1/fsw 的三角载波然后把占空比与载波比较。当占空比大于载波时上管导通下管信号取反并加入死区时间。死区时间一般设置在 1us 到 3us具体取决于 IGBT 开关速度。死区太大会引起电流畸变死区太小则有直通风险。在仿真模型中死区可以从 PWM 模块参数中设置。如果追求快速验证可以先用理想驱动信号等基本波形正确后再加入死区。6. 设置求解器并验证仿真波形6.1 仿真参数设置如果使用 Simscape Electrical需要先放置 powergui 模块。学习阶段推荐把 powergui 设为离散模式采样时间取 1us 到 5us仿真停止时间设为 0.2s 左右。离散模式比连续模式更接近实际数字控制也更容易复现。Simulink 求解器可以选固定步长步长和 PWM 载波周期需要对齐否则调制波形会出现拍频。比如开关频率 10kHz载波周期 100us控制周期也设为 100us仿真步长 1us。6.2 检查的关键波形启动后优先看五个信号直流电压 Udc、三相交流电流 ia/ib/ic、d 轴电流 id、q 轴电流 iq、SVPWM 输出脉冲。直流电压应快速上升到 800V 并稳定启动超调不要超过设计值太多。三相电流应接近正弦且与电网电压相位一致。q 轴电流稳态应接近 0d 轴电流随负载功率变化。SVPWM 脉冲应能看到明显的 60 度扇区对称关系。6.3 从波形定位问题波形现象常见原因优先检查位置直流电压建立不起来PLL 角度不对或 PI 符号反了PLL 输出、坐标系定义、电流环输出直流电压振荡电压环 Kp 太大或电容太小电压环 PI 参数、母线电容电流波形畸变大电感太小、死区过大、占空比饱和Lg、死区时间、svpwm_duty 限幅q 轴电流不为 0无功给定不为 0 或 PLL 相位偏差iq_ref、PLL 闭环输出启动瞬间电流过大电容初始电压为 0电容 initial voltage 设置6.4 波形记录和指标把数据存到工作区后可以计算三相电流的 THD 和系统功率因数。理想电网下网侧电流 THD 可以控制在较低水平但实际模型还要考虑死区、电感误差和采样噪声。注意不要只验证程序能启动还要验证输入、输出、异常分支和日志是否符合预期。对仿真器来说直流电压稳定、电流正弦、SVPWM 占空比没有长期饱和才算基本合格。7. 常见仿真问题和排查链路7.1 仿真直接发散现象仿真一开始就报错或数值变成 NaN。检查顺序确认 powergui 存在并且离散/连续模式设置正确。确认所有 PI 模块输出都加了限幅尤其电流环输出不能超过 SVPWM 调制上限。确认电流测量方向和 dq 变换定义一致。确认电容初始电压不为 0。最常见的根源是电流环出现正反馈。处理办法是先把电流环 PI 增益调小只保留很小 P 值确认电流能收敛后再逐步增大。7.2 直流电压建立不起来现象Udc 没有上升到给定值甚至反向跌落。原因可能是 PLL 角度错误、调制信号过调制、电流环符号错误。先看 PLL 输出的角度是否与电网 A 相电压过零点对齐再看 dq 变换后的 e_d 和 e_q 是否正常。如果 e_q 在稳态不为 0说明角度对齐有问题。7.3 SVPWM 占空比长期饱和现象svpwm_duty 输出长期等于 0 或 1电流波形出现明显平顶。这说明电流环期望电压已经超出调制范围。可以先降低直流电压给定或者提高直流母线电压也可以减小交流侧电感。占空比偶尔接近 1 是可以接受的但长期饱和会造成电流失控。7.4 电流畸变或 THD 偏高原因包括死区时间偏大、电感太小、控制周期太长、采样信号噪声大。可以在 Simulink 中对比任意两相桥臂 PWM 波形确认上下管之间存在死区。再把载波频率提高到一定范围观察谐波是否下降。7.5 PI 参数引起的振荡参数影响Kp_current 增大电流响应更快但噪声和振荡风险增加Ki_current 增大稳态误差消除更快但容易超调Kp_voltage 增大电压响应加快但电流给定振荡更明显Ki_voltage 增大电压稳态更准但动态可能过冲整定顺序应该先调电流环再调电压环。电流环稳定后电压环才有意义。8. 从学习仿真到工程化模型的差异8.1 学习模型和工程模型的区别项目学习仿真工程化模型电网理想三相电压源含阻抗、谐波、不平衡开关器件理想模型考虑导通压降、死区、损耗控制器连续或简单离散固定采样周期、
返回列表