很多做电机控制的朋友,在入门无刷电机驱动时,第一个想看到的波形,往往就是三相逆变器输出的 U、V、W 波形。之前我在学习 BLDC 驱动原理时,也花了不少时间折腾 PSIM 仿真,网上资料虽然不少,但要么只讲一个结论,要么电路搭建过程一笔带过,对新手并不友好。本文就围绕“用 PSIM 仿真无刷电机三相逆变 U、V、W 波形”这条主线,把从模型选型、电路搭建、参数设置到波形分析的全流程拆开来讲,并且会附上常见坑点和排查思路。无论你是刚接触电机控制的在校学生,还是准备做电机驱动开发、电源逆变方向的项目工程师,这篇文章都能帮你少走弯路。
1. 无刷电机与三相逆变器的基础概念
1.1 无刷电机到底在驱动什么
无刷电机(Brushless DC Motor,简称 BLDC)和永磁同步电机(PMSM)在硬件驱动电路上有很多相似之处,都需要三相逆变桥来供电。传统的直流有刷电机靠换向器机械换向,而无刷电机把换向任务交给了电子电路——也就是逆变器。
逆变器的作用可以这样理解:直流母线电压是固定的,比如 12V、24V 或者 310V,但电机需要的是三相交变的电流,并且三相信号之间的相位差是 120°。逆变器通过功率开关管的通断,把直流电“斩”成三相交流电。这个“斩”的过程在波形上体现为 PWM 脉冲波,经过电机绕组电感滤波之后,就形成了平滑的相电流。
仿真 U、V、W 波形,本质上是想观察逆变器六个开关管在不同控制逻辑下的输出状态,确认三相电压是否对称、换相时序是否正确、PWM 死区是否影响波形等。
1.2 三相全桥逆变拓扑
无刷电机驱动最常用的主电路是三相两电平全桥逆变器(Two-Level Three-Phase Inverter),结构如下:
- 母线正极 P,母线负极 N;
- 三个桥臂分别对应 U、V、W 三相;
- 每个桥臂有上下两个开关管,通常用 MOSFET 或 IGBT;
- 每个开关管反并联一个二极管,用于续流。
直流母线电压标记为 Vdc,电容 C 起母线稳压作用。PSIM 仿真中,我们可以用理想开关模型代替功率管,也可以用带导通压降的 MOSFET 模型,取决于你是否关注损耗细节。
下面是一个典型三相逆变桥的 ASCII 示意:
Vdc+ | [C] +------------------+------------------+ | | | S1(U+) S3(V+) S5(W+) | | | +---- U相 ---------+---- V相 ---------+---- W相 ---- | | | S2(U-) S4(V-) S6(W-) | | | Vdc- ------------- N ------------------ N上管 S1、S3、S5 轮流导通,下管 S2、S4、S6 互补导通,但要留出死区时间,防止上下桥臂直通。
1.3 UVW 波形指什么
这里的 U、V、W 通常指电机三相绕组的端电压或相电压。
- 端电压:电机三根引线对直流母线负极(或对地)的电压;
- 相电压:三相绕组中每一相的电压,也就是端电压减去电机中性点电压;
- 线电压:U-V、V-W、W-U 之间的电压差。
在实际仿真中,最常观察的是:
- 端电压波形,它是 PWM 方波叠加的阶梯状电压;
- 线电压波形,它更能反映逆变器的实际输出能力;
- BLDC 六步换相时的相反电动势(Back EMF)波形,用于分析无感控制方案。
本文重点演示端电压波形与线电压波形的观察方法。
1.4 为什么选择 PSIM 做电机控制仿真
PSIM 是电力电子与控制仿真工具,特点是:
- 仿真速度快,尤其适合开关电路;
- 与 Simulink 协作方便,可以联合仿真;
- 内置电机模型丰富,包括 BLDC、PMSM、感应电机;
- 控制模块丰富,PWM 发生器、PI 控制器、比较器、逻辑门等都很容易搭建;
- 波形数据可以导出到 MATLAB 或 Excel 分析。
相比 Multisim 偏重电路原理验证,PSIM 更贴近“电力电子 + 控制算法”的工程场景。对无刷电机驱动入门来说,PSIM 是性价比很高的选择。
2. 环境准备与版本说明
2.1 软件安装与版本
PSIM 官方版本迭代较快,不同版本界面差异不大,但菜单名称可能略有不同。本文以常见的 PSIM 9.x/10.x 界面为例进行说明,核心操作思路在所有版本中一致。如果你用的是更新版本,注意以下位置:
- 元件库路径:Elements -> Power -> Switches;
- 电机模型路径:Elements -> Power -> Machines;
- 控制模块路径:Elements -> Control;
- 仿真设置:Simulate -> Simulation Control。
PSIM 支持 Windows 平台为主,Linux 和 macOS 通常需要虚拟机。安装完成后,建议先运行自带示例,确认软件环境正常。
2.2 仿真电路的基本组成
为了完成无刷电机三相逆变仿真,需要准备以下模块:
| 模块 | 作用 | PSIM 中位置 |
|---|---|---|
| 直流电压源 Vdc | 提供母线电压 | Elements -> Sources -> DC |
| 母线电容 C | 稳压与吸收纹波 | Elements -> Power -> Passive |
| 三相全桥逆变器 | 将直流变为三相交流 | 可用开关管自行搭建 |
| 无刷电机模型 | 模拟三相绕组与反电动势 | Elements -> Power -> Machines |
| 转子角度/转速检测 | 提供换相信息 | 电机模型自带信号输出 |
| PWM 发生器 | 生成六路驱动脉冲 | Elements -> Control -> PWM |
| 逻辑处理 | 实现六步换相表 | Elements -> Control -> Logic |
| 测量模块 | 观察三相电压电流 | Elements -> Sensors / Probes |
2.3 本文使用的仿真思路
在仿真起步阶段,有两种常见思路:
- 手动加 PWM 驱动信号,模块搭建换相逻辑,观察电机三相电压电流;
- 用 PSIM 自带的 BLDC 电机驱动示例,修改参数后直接观察。
刚开始学习时,我建议从第二种思路入手,先确认软件能跑通,再逐步改成自己的换相逻辑。本文会以“基本六步换相 + PWM 调制”为主线来实现。
3. 核心原理:六步换相与 PWM 调制
3.1 六步换相基本逻辑
BLDC 电机的三相绕组在电角度 360° 内分为 6 个换相区间,每个区间有 60° 电角度。六个扇区对应的导通组合如下:
| 区间 | 导通管 | 电流流入相 | 电流流出相 |
|---|---|---|---|
| 0°~60° | Q1 Q4 | U | V |
| 60°~120° | Q1 Q6 | U | W |
| 120°~180° | Q3 Q6 | V | W |
| 180°~240° | Q3 Q2 | V | U |
| 240°~300° | Q5 Q2 | W | U |
| 300°~360° | Q5 Q4 | W | V |
注意,这里的 Q 编号对应三相桥臂:
- Q1 = U 相上管;
- Q2 = U 相下管;
- Q3 = V 相上管;
- Q4 = V 相下管;
- Q5 = W 相上管;
- Q6 = W 相下管。
每个区间只导通两相,另一相悬空,悬空相的端电压取决于反电动势大小,这正好可以在波形上观察到梯形波反电动势。
3.2 PWM 调制方式
如果六个开关管在 60° 区间内一直导通,电机端电压就是方波,这种叫“满占空比运行”。实际控制中通常需要调速,因此某一相上管用 PWM 斩波,下管恒通,这就是常见的“PWM_ON”调制方式。
举例,0°~60° 区间内:
- Q1 以 PWM 高频开关;
- Q4 保持导通;
- Q2、Q3、Q5、Q6 关闭。
此时 U 相端电压在 Vdc 和 GND 之间脉动,V 相端电压为 GND,W 相悬空。
PWM 频率一般选择 10kHz~20kHz。频率太低,电流纹波大、噪声明显;频率太高,开关损耗增加。仿真时可以用 10kHz 起步。
3.3 反电动势与换相的关系
BLDC 无感控制的核心难点在于检测悬空相反电动势的过零点,并将过零点延迟 30° 电角度作为换相点。在带霍尔传感器的方波控制中,霍尔信号直接指示转子位置,控制器直接根据霍尔状态切换导通管。PSIM 电机模型会提供霍尔信号和反电动势信号,仿真时可以直接用这些信号驱动换相逻辑。
4. 完整实战案例:PSIM 搭建无刷电机三相逆变仿真
下面进入核心实操部分。我们将搭建一个带霍尔位置反馈的 BLDC 三相逆变仿真电路,观察 U、V、W 端电压和线电压波形。
4.1 创建新工程
打开 PSIM,点击 File -> New,新建空白原理图。建议另存为BLDC_inverter_sim.psimsch或类似文件名,养成随时保存的好习惯。
4.2 放置直流电源与母线电容
从元件库找到 DC Source,放置在原理图左侧。双击设置电压,例如:
Vdc = 24V母线电容选择 C 模块,设为:
C = 470uF电容并联在正负母线之间,用于吸收开关管高频通断引起的电压纹波。如果不加电容,仿真中经常看到母线电压尖峰,波形不够真实。
4.3 搭建三相全桥逆变器
在 PSIM 中,三相全桥可以用六个开关管模型搭建。放置 Six-Pack Inverter 模块(部分版本直接提供三相桥模块)会更方便。如果没有现成模块,就放置六个 Switch 或 MOSFET 模块,分别编号并按下图连接:
正母线 P ---- Q1(Q3 Q5) 上管集电极/漏极 上管发射极/源极 ---- 下管集电极/漏极 ---- 输出相线 U(V/W) 下管发射极/源极 ---- 负母线 N每个开关管需要设置驱动信号。
- 上管驱动信号:来自 PWM 或换相逻辑;
- 下管驱动信号:来自互补 PWM 或逻辑信号;
- 注意设置死区时间。
PSIM 开关模型属性常见参数:
| 参数 | 含义 | 示例值 |
|---|---|---|
| Ron | 导通电阻 | 0.01 Ω |
| Roff | 关断电阻 | 1e6 Ω |
| Vfwd | 正向压降 | 0.7 V |
| Ton | 开通延迟 | 1e-7 s |
| Toff | 关断延迟 | 2e-7 s |
如果是理想开关模型,可以保留默认值,先跑通功能。
4.4 放置无刷电机模型
在 PSIM 元件库中,找到 Machines 下的 Brushless DC Motor 模型,放置到三相输出端。电机模型通常有:
- A/B/C 三相输入端;
- 转子位置输出端(Theta);
- 转速输出端;
- 霍尔传感器输出端(Hall A/B/C 或 H1/H2/H3);
- 反电动势输出端。
双击电机模型,设置电机参数。示例参数如下:
| 参数 | 值 |
|---|---|
| 极对数 Pole Pairs | 4 |
| 定子电阻 Stator Resistance | 0.5 Ω |
| 定子电感 Stator Inductance | 1 mH |
| 反电动势系数 Ke | 0.05 V/(rad/s) |
| 转动惯量 J | 0.0001 kg·m² |
| 阻尼系数 B | 0.0001 N·m·s/rad |
如果没有实际电机数据,先用上述参数仿真,后续再根据目标电机标定参数。
连接电机中性点 N 与直流母线负极?这里要注意:
- PSIM BLDC 电机的三相绕组中性点不一定直接接到直流母线负极;
- 端电压测量时,电压表应测量电机端子对直流母线负极;
- 如果要测量相电压,需要使用 Y 连接的中性点电压。
4.5 生成霍尔信号与换相逻辑
PSIM 电机模型会输出霍尔信号,我们可以直接把这些信号送到逻辑电路,生成六路开关管驱动信号。这一步是核心,也是新手最容易出错的地方。
以常见的 120° 霍尔安装方式为例,霍尔信号 HA、HB、HC 对应转子角度区间,与开关管导通组合的关系如下:
| HA HB HC | 导通管 |
|---|---|
| 101 | Q1 Q4 |
| 100 | Q1 Q6 |
| 110 | Q3 Q6 |
| 010 | Q3 Q2 |
| 011 | Q5 Q2 |
| 001 | Q5 Q4 |
在 PSIM 中,你可以用逻辑门实现这个映射,也可以使用 Lookup Table 或 Function Block。最简单的方案是用 PSIM 的 Sawtooth PWM + 比较器,把每一相的 PWM 信号与换相逻辑“与”起来。
示例换相逻辑规则:
- U 上管 Q1 = (HA AND HC) 或者通过真值表处理;
- 实际项目中更稳健的方式是用逻辑表达式或编程块实现。
注意,这里霍尔电平与具体电机绕组的安装方向有关,如果你改变了电机模型,可能需要调整换相表。
4.6 PWM 信号生成
为了让电机能调速,我们需要在高频 PWM 中调制上管。在 PSIM 中,使用 PWM 模块:
- 放置三角载波模块,频率设为 10kHz;
- 放置占空比给定信号,比如 0.7;
- 比较器输出 PWM 方波。
更简单的做法:使用 PSIM 控制库中的 Switch 调制模块,它可以直接生成带死区的互补 PWM。如果只做功能验证,可以在换相逻辑输出的基础上加入 PWM 门控信号。
推荐结构如下:
占空比信号 D = 0.7 三角载波 fsw = 10kHz PWM_P = (D > Carrier) ? 1 : 0 PWM_N = NOT PWM_P(并延迟死区时间)将 PWM_P 与换相逻辑中每一相的“上管使能信号”相与,得到最终上管驱动; 将 PWM_N 与下管使能信号相与,得到最终下管驱动;
这里常见误区:上下管直接互补而不加使能信号,会导致换相瞬间逻辑混乱。
4.7 添加测量环节
在 U、V、W 三相对直流母线负极之间各放一个电压表,命名:
- V_UN:U 相端电压;
- V_VN:V 相端电压;
- V_WN:W 相端电压。
在 U-V、V-W、W-U 之间各放一个电压表,命名:
- V_UV:线电压;
- V_VW:线电压;
- V_WU:线电压。
同时可以在直流母线上加电流表,观察母线电流波形。PSIM 的 Probe 模块可以方便地把多个测量点放到同一个波形窗口。
4.8 设置仿真参数
点击 Simulate -> Simulation Control,设置仿真参数:
- Time Step:建议设为 1e-6 s,也就是 1 微秒;
- Total Time:建议设为 0.05 s~0.1 s;
- Print Step:1e-6 或 1e-5;
- 启用 Save Initial Values 选项,方便稳态分析。
如果时间步长太大,PWM 波形会失真;如果太小,仿真速度明显下降。这里 1e-6 s 在 10kHz PWM 下,一个开关周期有 100 个点,足够观察波形细节。
4.9 运行仿真并保存波形
点击 Run 按钮运行仿真。第一次运行如果报错,优先检查:
- 开关管是否都有驱动信号;
- 直流源是否接反;
- 电机模型参数是否存在极端值;
- 仿真时间步长是否合理。
运行顺利后,打开 SimView 窗口,把电压表、电流表拖入波形显示区域。保存波形为 PSIM 默认格式,也可以导出为 CSV,方便后续在 Excel 或者 MATLAB 里画图。
5. 波形分析与结果解读
5.1 端电压波形特征
理想情况下,U 相端电压 V_UN 波形应该是:
- 在 60° 区间内,当该相上管 PWM 导通时,V_UN = Vdc;
- 当该相上管断开、下管导通时,V_UN = 0;
- 当该相不导通时,V_UN 由反电动势决定,呈现梯形波状。
由于 PWM 频率较高,波形上会看到密集的脉冲。把时间轴拉长,可以看到每个电周期内三相端电压按 120° 相位差依次出现梯形波。
如果你的波形中看不到梯形波特征,而全是杂乱脉冲,很可能换相逻辑不正确,电机没有正常同步旋转。
5.2 线电压波形特征
线电压 V_UV = V_UN - V_VN。观察线电压:
- 幅值可能达到 Vdc 或 -Vdc;
- 正负电平宽度与换相区间对应;
- BLDC 方波控制下,线电压波形是阶梯波,而不是正弦波,这是正常现象;
- 三相线电压相位差也是 120°。
线电压波形比端电压更稳定,因为它抵消了悬空相的反电动势波动。如果你用示波器实际测量无刷电机驱动板,通常也建议先看线电压。
5.3 转速与电流波形
在仿真中同时观察:
- 电机转速信号;
- 三相电流波形;
- 母线电流波形。
正常运行时:
- 电机转速最终稳定在某一值附近,有波动但不应持续发散;
- 三相电流幅值大致均衡,相位差 120°;
- 母线电流在换相时刻会出现尖峰。
若三相电流严重不对称,请检查三相电机模型参数是否一致,以及换相时刻是否正确。
5.4 死区对波形的影响
PSIM 中可以设置开关管的导通/关断延迟,模拟死区时间。死区过大时会看到:
- 电压波形出现缺口;
- 电流波形在过零点附近产生畸变;
- 相电流谐波增加。
在仿真中可以先设死区为 0,确认功能正确后再加入死区观察影响。真实硬件中死区是必须的,否则同一桥臂上下管会直通。
6. 常见问题与排查思路
6.1 电机不转或转速始终为 0
可能原因:
- 霍尔信号引脚连接错误;
- 换相逻辑真值表与电机模型不匹配;
- PWM 占空比太小,启动转矩不足;
- 负载转矩设置为 0 但仍卡死,检查电机模型转子初期角度。
排查步骤:
- 断开 PWM 调制,让六个开关管直接按换相表导通,看电机是否转动;
- 观察霍尔信号,确认它们随着角度变化;
- 检查驱动信号与开关管编号是否一一对应。
6.2 波形中有很多毛刺尖峰
可能原因:
- 母线电容太小或不存在;
- 开关管开关速度太快,数值振荡;
- 时间步长过大,无法分辨开关沿;
- 测量探头放置位置引入噪声。
处理建议:
- 加入足够大的母线电容;
- 设置合理的开关管 Ton/Toff;
- 减小仿真步长到 1e-7 s 验证;
- 在电压表两端并联一个很小的 RC 滤波,只做后处理观察,不加入主电路。
6.3 换相瞬间电流过大
可能原因:
- 死区时间设置不合理,上下管直通;
- 母线电压过高,电机反电动势不匹配;
- 电感太小,电流上升过快;
- 外部负载转动惯量与电机不匹配,换相冲击大。
处理建议:
- 检查互补 PWM 是否带死区;
- 加入母线限流电阻或软启动逻辑;
- 提高 PWM 频率并增大电机相电感。
6.4 仿真速度很慢
可能原因:
- 仿真总时间设太长,比如 1s;
- 时间步长设太短,比如 1e-9 s;
- 控制高频振荡,模块过多。
处理建议:
- 先用 0.02s 左右的总时间验证功能;
- 时间步长 1e-6 s 起步;
- 关闭不必要的 Probe 波形记录;
- 使用定步长求解器,不要用变步长在开关电路上反复迭代。
6.5 控制信号比开关管多一路
PSIM 中单个开关管需要一路驱动信号。六个开关管就需要六路信号,缺一路就会导致某相无法正常导通。检查最终连接到每个开关管 Gate 的信号是否都有波形。
7. 最佳实践与工程建议
7.1 模块化设计分层
在 PSIM 中搭建仿真时,不要把所有模块都堆在一张图里。建议分层:
- 主功率电路一层:直流源、电容、三相桥、电机;
- 控制逻辑一层:霍尔信号处理、换相表、PWM 调制;
- 测量与显示一层:电压、电流、转速探头。
PSIM 支持 Using Subcircuit,可以把功率电路封装成子电路,控制逻辑单独封装。这样换算法时不用动主电路,对比波形也方便。
7.2 控制参数不要盲目照搬
每个电机模型的内阻、电感、反电动势系数不同,同一套 PI 参数或占空比在不同电机上的表现差异很大。仿真时先用电机铭牌参数或厂家数据手册代入,再根据转速和电流响应调整。
7.3 注意单位与时基
PSIM 默认单位是国际单位制:
- 电压:V;
- 电流:A;
- 电感:H;
- 电容:F;
- 转速:rpm。
但不同版本显示可能不同,双击模块确认单位。看波形时,要先把横轴时间范围调到合适的窗口,比如 0.04s 到 0.06s,观察 2~3 个 PWM 周期和换相周期。
7.4 仿真验证与硬件实验相结合
仿真能帮助理解原理、验证算法,但不能完全替代硬件测试。以下几个方面需要结合硬件实验确认:
- 开关管栅极驱动能力;
- 死区时间的实际设定;
- 采样电路的延时;
- 电磁兼容问题;
- 母线电容的温升与纹波电流。
7.5 保存不同版本,方便对比
在调整换相表、死区、PWM 频率时,建议每次修改前另存一个版本,命名包含日期和修改点,例如:
BLDC_inv_v01_hall_ok.psimsch BLDC_inv_v02_add_deadtime.psimsch这样遇到波形异常时,可以快速回退到正常版本对比差异。
8. 总结与下一步学习建议
通过本文的实操,你应该已经掌握了在 PSIM 中从零搭建无刷电机三相逆变仿真电路的基本流程,包括三相全桥拓扑搭建、电机模型参数设置、霍尔信号与换相逻辑处理、PWM 调制以及 U、V、W 端电压和线电压波形的观察方法。
这套仿真方法不仅适用于 BLDC 方波控制,也适用于 PMSM 的 SVPWM 控制。下一步你可以试试:
- 把换相逻辑从方波控制改成 SVPWM,观察三相波形变化;
- 在控制环中加入转速 PI 闭环,波形如何响应;
- 加入负载转矩突变,观察电流和转速的动态过程;
- 将 PSIM 与 Simulink 联合仿真,用 Simulink 实现更复杂的控制算法。
写这篇教程的起因,也是自己在做 BLDC 驱动时被波形问题卡了很久,后来把仿真电路理顺后,很多硬件问题都能提前暴露出来。如果你在搭建过程中遇到波形异常或者参数设置疑问,欢迎在评论区贴出你的波形截图和电路截图一起讨论。创作不易,如果本文对你有帮助,点赞收藏一下,后续我会继续整理无刷电机霍尔换相、SVPWM、无感反电动势检测等实战内容。