ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

三相交流调压电路仿真:触发角、波形与谐波验证全流程

三相交流调压电路仿真:触发角、波形与谐波验证全流程 简介面向电力电子与电气传动方向学习者一份三相交流调压电路仿真研究PDF系统讲解了基于MATLAB/Simulink平台的三相调压电路建模、仿真与谐波分析思路。内容从三相交流调压电路的工作原理入手介绍利用Simulink电力系统工具箱搭建仿真模型的方法并结合不同触发角下的输出电压电流波形与输入电流频率特性讨论晶闸管导通角变化对谐波成分的影响同时简述其在电炉温度控制、灯光调节、异步电机软起动与调速等场景中的应用前景。压缩包内共1个PDF文件大小约329KB轻量便于直接查阅适合作为电机控制、电力电子方向课程设计或论文写作的参考资料。目前已有1464人学习浏览适合正在学习电力电子技术、需要通过MATLAB开展仿真分析或从事相关应用研究的读者参考。1. 三相交流调压电路仿真先解决“能调”再谈“调得好”拿 MATLAB 做三相交流调压电路仿真最容易翻车的地方不是模型不跑而是跑出来的波形和你预期完全不是一回事。源侧明明是三相正弦电压触发角 α 一改输出电压有效值不是平滑变化反而出现突然跳变甚至一个周波内出现两次换相失败。原因是三相交流调压的导通条件与单相完全不同每相晶闸管能否导通、导通多久取决于另外两相的公共换相逻辑和触发脉冲宽度。本文围绕这个仿真中真正卡人的地方展开先讲清三相交流调压的数学模型与导通约束再给出 Simulink 里能直接落地的搭建方式和参数表最后用批量扫描 α 的脚本把输出的移相特性、谐波含量和理论公式对拍起来。适合正在做电力电子、电机软起动、炉温控制和交流调光相关仿真验证的工程师也适合课程设计里需要交代清楚“为什么这么设参数”的人。2. 三相调压的数学模型与触发约束三相交流调压的本质是相位控制一对反并联晶闸管在半个工频周期内按触发角 α 导通通过切掉正弦波的一部分来控制注入负载的能量。这里的关键不是“能切掉多少”而是“什么条件下才能按期待切掉”。单相电路由一个双向导通支路决定输出三相电路则存在相与相之间的电流通路约束模型必须先分清负载性质与接线拓扑。2.1 阻性负载下输出电压有效值与触发角的关系对于单相纯阻性负载输出电压有效值的解析式是电力电子教材里最常用的结论Uo(α) Us * sqrt( (π - α)/π sin(2α)/(2π) )其中 Us 为输入电压有效值α 为触发角弧度。当 α 0 时输出等于输入α 增大到 π 时输出趋近于 0。这个式子虽然从单相推出但三相星接阻性负载在“三相各自独立动作”的假设下每一相输出仍然服从同样的波形切片逻辑因此常被用作三相调压模型的初步校验基准。% 阻性负载下输出相电压有效值随触发角的变化曲线 alpha 0:pi/100:pi; % 触发角弧度制 Uo_ratio sqrt(1 - alpha/pi sin(2*alpha)/(2*pi)); % 归一化输出 Uphase 220; % 输入相电压有效值V plot(alpha*180/pi, Uo_ratio*Uphase, LineWidth, 1.5); grid on; xlabel(触发角 alpha (deg)); ylabel(输出相电压有效值 (V)); title(阻性负载理论移相特性);这段代码里alpha 必须用弧度计算因为 sin(2α) 要求输入为弧度而最后绘图时用alpha*180/pi折回角度制显示。变量Uphase是仿真模型里的输入相电压有效值做理论曲线时把它设为 220 V后续与 Simulink 仿真结果对碰时直接改成模型的实际设定值即可。还有一个易忽视的细节这个公式成立的前提是电流随电压过零立即关断只在纯阻性负载下严格成立阻感负载时导通角不再等于 α公式需要替换。2.2 阻感负载与导通角的本征移相问题阻感负载下晶闸管电流滞后于电压关断时刻由负载阻抗角 φ arctan(ωL/R) 决定。此时导通角 θ 不完全由触发角 α 控制两者之间的关系是当 α ≤ φ 时晶闸管一旦被触发电流在电压正半周后才能自然过零导通角始终接近 π改变 α 不会明显改变输出电压出现“不可调区”。当 α φ 时负载电流存在断续θ π输出有效值才开始随 α 变化。这个结论对三相阻感负载同样成立只是三相间的互感和续流通路会让波形更复杂但设计触发策略的原理不变必须先算清负载阻抗角 φ再决定 α 的最小可调起点。我见过很多仿真里 α 从 0° 开始扫结果前 30° 的曲线几乎平着不动原因就是负载的 φ 大约 50°α 在 50° 之前都在不可调区。% 计算负载阻抗角用于判断触发角可调范围 R 10; % 负载电阻Ohm L 40e-3; % 负载电感H f 50; % 工频 phi atan(2*pi*f*L / R); % 阻抗角弧度 alpha_min_deg phi * 180/pi; % 折算为角度 fprintf(负载阻抗角 %.1f deg触发角建议从 %.1f deg 开始扫描\n, ... alpha_min_deg, alpha_min_deg);阻抗角的计算直接决定仿真扫描范围和触发策略是否合理。atan的返回区间是 (-π/2, π/2)这里负载为感性φ 恒正不需要额外处理象限。如果把这个值算出来发现是 50°那么 α 扫描从 0° 开始就是浪费仿真时间扫出来前面一截还是接近正弦波最后画出的曲线反而像“前段不可调、后段陡降”容易误判为模型错误。2.3 三相接线的三种结构与触发脉冲约束三相交流调压的主电路有三种典型接法它们对触发脉冲的要求完全不同。仿真里最常踩的坑是把单相触发逻辑直接搬进三相模型结果触发脉冲宽度不够换相处出现缺相。接线方式电流通路特点触发脉冲要求移相范围星接带中线每相独立成回路类似三个单相窄脉冲即可0°~180°星接无中线三线制至少两相同时导通才能构成回路脉冲宽度需大于 60°0°~150° 附近三角形接法每相承受线电压内部形成环流通路需宽脉冲或双窄脉冲0°~150° 附近三相负载星接且无中线时每一相的导通必须以另一相形成返回通路为前提。如果触发脉冲宽度小于 60°当某一相触发时另一相已经关断电流无法构成回路负载上得到的是残缺的线间电压波形出现明显毛刺。因此三线制星接必须把脉冲宽度拉到大于 60°在这类系统中还要避开换相重叠区域实际工程里常常把移相范围限制在 0°~140° 左右留出安全裕量。3. 用 Simulink 搭出能跑的三相交流调压仿真模型搭建的选型原则是先用最少的器件跑通主回路再加测量和触发逻辑。很多人一上来就把触发板、PLL、闭环调节全部堆上去最后分不清是控制问题还是主电路问题。下面这套配置是电力电子仿真里最稳妥的起步方案。3.1 模块选型Thyristor 对管还是 Universal BridgeSimscape ElectricalR2018a 以后集成在 Simulink 里提供两种搭建晶闸管组的思路。第一种是直接放置六个 Thyristor 模块每相两个反并联好处是触发端可以单独接线做脉冲分配时逻辑清晰坏处是模型图面元件数量多误连概率高。第二种是用一台 Universal BridgePower Electronics Device 选 Thyristor桥臂数量选 3相当于内部已经生成六管结构触发端集中在 g1 到 g6。常见做法是课程设计和论文验证用 Universal Bridge 居多因为它内部自带了整流桥式的拓扑结构参数统一设置方便但研究故障工况时我更推荐单管直连因为你可以随时把某一相的触发信号断开观察缺相后的电流路径这在桥式结构里反而不直观。两种方案电气上等价问题只在调试视角。3.2 最小可跑模型的具体搭建步骤新建 Simulink 模型把下面 5 组模块从 Simscape Electrical 和 Simulink 库中拖入画布Three-Phase Source设置相电压 220 V频率 50 Hz三相初始相位分别为 0°、-120°、120°。晶闸管组按上述选型放 Thyristor 或 Universal Bridge。若用单个管A 相两个管子阴极对阳极反并联B、C 相同理。Load从 Simscape Electrical 库拖 R-L Load电阻 10 Ω电感 40 mH接线方式选 Ygrounded 或 floating 按拓扑需要选。Voltage Measurement / Current Measurement每相输出端加一个电压测量串入电流测量方便后续算 RMS 和 FFT。To Workspace把 A 相电压测量结果接入 To Workspace变量名写 simout输出格式选 Array采样时间继承仿真步长。触发信号用 Pulse Generator每相两个管子共用一个脉冲信号源但需要根据反并联位置做逻辑互补。对于反并联对管同一相上下两个晶闸管的触发信号相位相差 180°这个互补关系用另一个延迟 10 ms 的 Pulse Generator 实现。三线制星接要求脉冲宽度大于 60° 电角度对应 50 Hz 下脉宽时间约 3.34 ms我在参数里直接设成 6 ms留足裕量。3.3 关键参数表与触发角的换算方式脉冲发生器的相位参数直接决定输出波形。Pulse Generator 的 Phase delay 参数以秒为单位与触发角 α 的换算是t_delay α / (2π × 50)。对应关系如下表触发角 α (deg)Phase delay (ms)导通角近似值 (阻感)输出特征00180°接近正弦301.67约 140°轻微切相603.33约 100°波形明显缺损905.00约 70°有效值大幅下降1206.67小于 40°接近关断模型里不要直接填具体数值而用一个 Constant 模块命名为 alpha_deg再经一个 Gain 模块乘以 pi/180/314.159 换算成秒Gain 输出接 Pulse Generator 的 Phase delay。这样后续做批量扫描时只需要改 Constant 的值不用每次打开 Pulse Generator 参数面板。注意 Pulse Generator 的仿真时间类型必须设为 Time-based否则 set_param 改 Phase delay 不会生效。3.4 Solver 与步长设置交流调压是典型的大时间常数与小开关瞬态混合系统。晶闸管关断时存在纳秒级的电压突变而工频周期是 20 ms用变步长 Solver 容易在过零点附近来回缩减步长仿真很慢。我一般把求解器设为离散定步长步长取 1e-5 或 2e-5每周期可采 1000~2000 个点FFT 分析的频率分辨率足够同时把晶闸管模块里的 Snubber 电阻 Rs 设到 500 Ω、电容 Cs 设到 250e-9 F给开关瞬态一个真实的吸收回路减少数值振荡。若发现波形上有持续高频毛刺优先减小步长不要先怀疑器件参数。4. 波形、谐波和仿真发散的处理模型跑通之后的工作不是直接截图写报告而是把仿真结果拆成两张表看一张是不同 α 下的输出电压有效值一张是各次谐波含量。这两张表能验证模型是否符合数学预期也能暴露触发逻辑的隐形错误。4.1 从示波器画面上读出一套正常波形正常工作的三相交流调压波形有三个特征触发瞬间电压波形出现切口但切口处无尖刺三相波形彼此相差 120° 电角度阻感负载下电流波形在电压过零后仍持续一小段才归零。若在晶闸管触发沿看到高幅毛刺多半是步长太大或 Snubber 参数缺失若某一相波形整体缺失检查这一相反并联对管的触发脉冲是否互补。以 α 60° 为例A 相输出电压波形应是“半个正弦被切掉中间一块” U 形缺口出现在 A 相电压过零后 60° 处。用 Scope 观察时把纵轴自动缩放关掉直接看幅值避免 MatLab 自动压缩把缺口细节掩盖。4.2 谐波分析α 对 THD 的影响交流调压输出的缺角波含有丰富谐波且 THD 随 α 增大而上升。下表的 THD 数值取自同一模型在不同 α 下的 FFT 分析阻感负载 R10 Ω、L40 mH可作为报告中的参考量级触发角 α (deg)THD约主要谐波次数0接近 0%无30约 6%3、5 次60约 25%3、5、7 次90约 40%3~15 次奇次120约 65%低次奇次谐波三线制星接无中线时3 次及 3 的倍数次谐波由于三相平衡而不存在于线电流中所以 FFT 频谱上主要看到 5、7、11、13 次。若在频谱中看到偶次谐波说明波形正负半周不对称常见原因是触发脉冲相位未按工频周期对齐或者六只晶闸管的触发角存在单管偏差。% 用固定点数的 FFT 计算仿真相电压 THD Fs 1e5; % 与离散仿真步长一致 v simout.signals.values(:,1); % To Workspace 输出的 A 相电压 v v(end-10000:end); % 只取稳态段去掉启动暂态 N 2^14; % FFT 点数 w hann(N, periodic); xw (v(1:N) - mean(v(1:N))) .* w; X fft(xw) / sum(w); freq (0:N-1) / N * Fs; base abs(X(abs(freq-50) 5)); % 50Hz 基波幅值 base max(base); harm_idx zeros(size(freq)); for h 2:20 harm_idx harm_idx | (abs(freq - h*50) 5); end thd sqrt(sum(abs(X(harm_idx)).^2)) / base; fprintf(THD %.1f%%\n, thd*100);这段 FFT 代码用汉宁窗抑制频谱泄漏频率分辨率约为 Fs/N 6.1 Hz因此基波和各次谐波都取 ±5 Hz 范围内峰值。simout.signals.values的写法适用于老版本的 To Workspace 数组输出R2019b 以后 To Workspace 默认输出 timetable需要把取值方式改成simout.Values.Data或直接对表取列。注意这里的 THD 按 2 到 20 次谐波近似计算若输出波形已经接近关断高次谐波占比变大就必须把循环上限提高到 50 次。5. 批量扫描触发角一条曲线校验整个模型单点仿真的波形很容易让人产生“模型没问题”的错觉真正暴露问题是把 α 从 0 到 150° 逐度扫一遍再和理论公式比对。这一节给出一个可直接复制的批处理脚本它能在几分钟内给出全移相范围的移相特性曲线和相对误差。% 批量扫描触发角对比仿真有效值与理论公式 alphas 0:10:150; % 扫描范围度 Uo_sim zeros(size(alphas)); Uo_theory zeros(size(alphas)); for k 1:length(alphas) set_param(ac_voltage_reg_3p/alpha_deg, Value, num2str(alphas(k))); simOut sim(ac_voltage_reg_3p, StopTime, 0.2); % 10 个工频周波 v simOut.simout.signals.values(:,1); % 输出相电压序列 v v(end-4000:end); % 取最后 0.04s 稳态数据 Uo_sim(k) sqrt(mean(v.^2)); % 有效值不依赖工具箱 Uo_theory(k) 220 * sqrt(1 - deg2rad(alphas(k))/pi ... sin(2*deg2rad(alphas(k)))/(2*pi)); end figure; plot(alphas, Uo_theory, k-, LineWidth, 1.5); hold on; plot(alphas, Uo_sim, ro, MarkerSize, 5); xlabel(触发角 alpha (deg)); ylabel(输出相电压有效值 (V)); legend(theory, simulation); grid on; % 计算最大相对误差 err (Uo_sim - Uo_theory) ./ Uo_theory; fprintf(最大相对误差 %.2f%%\n, max(abs(err))*100);set_param修改的是 Constant 模块 alpha_deg 的 Value 参数这样不用重建模型就能连续改变触发角。sim的StopTime覆盖模型内配置强制每轮跑 0.2 秒保证扫 16 个点总时间可控。取最后 0.04 秒数据是为了排除启动暂态因为调压电路的 R-L 负载上电瞬间存在直流偏移这个偏移可能要两三个周波才会衰减完。有效值用sqrt(mean(v.^2))计算避免对 Signal Processing Toolbox 的依赖。理论公式只适用于阻性负载如果要匹配阻感负载下的仿真结果应改用查表方式把导通角 θ 代入积分公式或者直接以仿真数据为准。若最大相对误差大于 2%优先检查三个位置一是alpha_deg到 Pulse Generator 的 Gain 是否把角度正确换算成秒二是 To Workspace 的采样时间是否与仿真步长一致三是 Star 接法时是否选择了带中线的模型导致三相之间出现单相独立导电现象。本文还有配套的精品资源点击获取
返回列表