Simulink晶闸管触发电路仿真实战:同步信号与脉冲生成全解析
2026/9/19 1:30:19 网站建设 项目流程

简介:基于MATLAB仿真的触发电路资料,面向电气工程及其自动化专业学生、电力电子方向学习者及工程师,系统讲解晶闸管相控电路触发电路的设计原理与Simulink仿真实现。资料从触发信号功率、同步触发、脉冲宽度与前沿陡度、触发区域及移相范围等核心要求入手,并结合单相全控触发电路模型,说明利用Mux合并信号、Hit Crossing检测过零点、积分器生成同步信号、RS触发器与逻辑运算产生触发脉冲的建模过程,可帮助读者理解触发角α如何控制输出电压,并掌握在Simulink中调节参数、分析波形的方法。压缩包共1个文件,为docx格式,约1.07MB,正文包含原理讲解、仿真模块说明及不同触发角与脉宽下的输出波形结果,适合课程设计、实验报告撰写及自主仿真练习使用。目前已有158人学习浏览,可作为电力电子技术相关课题的参考素材。

1. 触发电路仿真的起点:同步信号与触发角α的相位映射

很多人第一次搭晶闸管整流仿真时,直接用Pulse Generator往门极送信号,结果负载电压波形和教材公式对不上。问题往往不在整流桥,而在触发脉冲的相位基准没有和电网电压对齐。触发电路的功能可以概括为:在晶闸管自然换相点之后延迟α角度,送出宽度和前沿都满足要求的门极脉冲。也就是说,控制角α不是直接发给晶闸管的角度值,而是要转换成相对同步信号的延时时间。

MATLAB/Simulink里常见的做法是用Hit Crossing检测同步信号过零点,用积分器把时间映射成电角度,再通过比较器和RS触发器生成脉冲。这个方案不需要复杂的模拟电路,全部由模块组合完成,适合做相控整流预验证。下面从触发脉冲的硬性指标、Simulink模块拆解、桥式整流联动三个层面展开,最后落在几个容易让人卡住的仿真坑上,包括脉冲丢失和仿真发散。

2. 触发脉冲设计的三道门槛:同步、功率、脉宽与移相

触发电路不是一个简单的信号发生器。在晶闸管相控电路中,它必须同时满足同步、功率、脉宽和移相范围这四个约束。忽视任何一个,仿真波形都会偏离理论。

2.1 同步信号:触发脉冲的相位“锚点”

为保证每个工频周期都在同一个相位触发,晶闸管触发脉冲必须与主回路电源电压保持固定相位关系。常见的做法是从同步变压器取同步信号,经过阻容移相后送给触发电路。在Simulink仿真里没有实际电网,同步信号通常就是主电路电源电压本身,或者一个同频同相的正弦源。

检测自然换相点一般用Hit Crossing模块,方向设置为rising,也就是在同步电压由负变正的时刻产生一个脉冲。自然换相点就是这个上升沿,它是触发角α的起点。这里容易忽略一个问题:同步信号相移是否和主电路电压匹配。如果同步源设置了非零初相,比如30°,那么触发脉冲也会跟着平移30°,导致输出电压平均值异常。我一般会在搭建模型前先给同步源相位设成0,并在Scope里同时观察同步电压和过零脉冲,确认起点对齐。

2.2 触发功率和脉冲宽度:从理论值到Simulink参数

真实晶闸管要求触发电压和触发电流大于门极触发阈值,并且脉冲功率不能超过允许的瞬时最大功率。这些在Simulink的晶闸管模型里通常弱化,因为Simscape/SimPowerSystems中的晶闸管门极只要收到逻辑高电平就会导通。但脉宽和前沿陡峭度不能省。

单相桥式全控整流电路使用单脉冲触发时,脉宽应取60°~120°;如果使用双脉冲触发,每路脉冲只要10°左右即可。原因是如果脉冲太窄,晶闸管阳极电流还没来得及升到擎住电流,脉冲就掉了,元件会重新关断。在纯阻性负载下,擎住电流的建立非常快,窄脉冲还能用;但电感性负载下电流不能突变,必须把脉宽加宽。这里给出角度与时间的换算:

freq = 50; % 电网频率,50Hz sec_per_deg = 1 / (freq * 360); % 每度电角度对应时间,单位秒 alpha = 30; % 触发角30度 delay = alpha * sec_per_deg; % 触发延迟时间 pulse_width = 20 * sec_per_deg; % 20度脉宽对应时间 fprintf('触发角 %d° 延时 %.6f 秒, 脉宽 %.6f 秒\n', alpha, delay, pulse_width);

这段代码把触发角和脉宽都转换为仿真里的时间物理量。在连续积分器方案中,积分器斜率等于电源频率Freq,那么一个周期(1/50秒)积分值正好是1,对应360°。每度对应积分值1/360。因此,想让Relational Operator在α度时跳变,给定阈值可以直接用α/360。这样设定的好处是,仿真波形中看到的触发角可以直接和理论计算的延时对应,不需要手动调传递函数。

2.3 移相范围:由主电路类型决定的行为边界

触发脉冲的移相范围不是越大越好。单相全控整流在纯阻性负载下,理论移相范围是0°~180°,但实际要考虑最小触发角限制和器件关断时间。α太小时,触发脉冲可能落在自然换相点前,和同步信号冲突;α太大时,脉冲落在下一个换相点之后,无法维持正常整流。在Simulink里,如果设置α=150°,纯阻性负载时输出电压平均值已经很低,波形会明显出现断续。

对于触发电路设计,建议范围如下表:

参数推荐范围说明
触发角α0°~120°(阻性)超过后进入逆变区或波形断续
脉冲宽度20°~120°(单脉冲)感性负载取下限60°以上
同步源相位偏移会导致触发角偏差
触发脉冲类型布尔型/double必须转换后驱动晶闸管门极

移相范围这个约束在仿真中容易被忽略,很多新手直接把α设为180°想看波形,结果Scope里看不到导通段。正常做法是先确认负载性质,再决定α可调范围。比如电阻负载可以调到接近180°,但输出波形会和α=150°时几乎重叠。

3. Simulink单相触发电路建模:从Hit Crossing到RS触发器

这一章进入模型内部。单相触发电路的两路输入分别是给定触发角和控制使能,一路同步信号在模块内部被反相扩展为互差180°的两路同步基准。这里把每个模块的作用和参数讲清楚,方便对照自建。

3.1 信号流拆解:两路输入如何变成触发脉冲

先看整体路径。同步电压进入后,先复制一路并乘以-1,作为下桥臂的同步基准。Mux把这两路信号合并成一路向量,后续的Hit Crossing对每一路分别检测过零点。上升沿脉冲一方面送到积分器的外部复位端,把积分值归零并重新开始积分;另一方面转成布尔量送到RS触发器的复位端。

积分器斜率为电网频率,所以当同步脉冲到来时,积分器从0开始按每秒钟50的斜率累加。在触发角α到达之前,Relational Operator1的两个输入中,积分输出一直小于给定阈值,输出为0。当积分值越过阈值,Relational Operator1翻转为1。这个信号再和同步脉冲产生的使能信号做逻辑与,得到一个精确的启动沿,触发第二个积分器Integrator1开始积分。Integrator1同样以50的斜率积分,当它的输出超过脉宽阈值时,逻辑输出回到0,形成一个宽度可调的方波。最后把布尔型信号转换为double,连接到晶闸管门极。

3.2 积分器斜率与触发角阈值的数值设定

这段是整个触发电路能按角度触发的基础。积分器采用连续时间积分模块,假设电源频率是50Hz,一个工频周期是0.02s。积分器以斜率50积分,0.02s后积分值等于1。而一个周期对应360°电角度,所以积分输出1表示360°,0.5表示180°,α/360就表示α度。

Relational Operator1的阈值常数块直接填写α/360。例如α=30°时填0.08333,α=90°时填0.25。脉宽阈值同理,20°脉宽对应0.05556。这样,不需要额外计算时间常数,所有角度设定都统一在“归一化角度”体系里。下面这段脚本可以快速生成建模块需要的常数:

alpha = 30; % 触发角 pulse_deg = 20; % 脉宽 threshold_alpha = alpha / 360; threshold_width = pulse_deg / 360; fprintf('alpha/360 = %.4f\n', threshold_alpha); fprintf('pulse_width/360 = %.4f\n', threshold_width);

逻辑很直接,积分器输出从0增长到1,比较器在越过阈值时翻转。需要留意的是,积分器初始条件必须为0,否则第一个周期的触发角会偏离设定值。另外,外部复位触发方式可选“rising”,这样只有同步信号的上升沿才会让积分器归零,下降沿不会产生影响。

3.3 RS触发器与Memory:避免同步脉冲和触发脉冲的相位竞争

在Simulink里,如果不加Memory模块,同步脉冲和触发脉冲可能在同一仿真步长内到达RS触发器,导致逻辑状态不确定。具体现象是:触发角较小时,触发脉冲紧跟着同步脉冲出现,RS触发器尚处在复位状态,触发沿被复位吃掉,脉冲直接丢失。原文中Memory模块的作用就是把触发信号向后延迟极小的一段时间,避开同步脉冲。

我一般会在Logical Operator输出后串联一个Memory模块,并设置初始值为0。Memory模块在离散仿真中相当于一个单位延迟,输出比输入慢一个采样步长。这个细微的错位让RS触发器先完成复位,再接受置位信号。如果用的是变步长连续求解器,Memory仍然会引入一个步长延迟,足以打破代数环。不过要注意,Memory模块不能乱用,它会让触发脉冲整体延迟一个步长,这个步长通常只有微秒级或更小,对触发角影响可以忽略。

下表是核心模块的参数推荐值,照着搭成功率较高:

模块参数名推荐值
Hit CrossingHit crossing directionrising
IntegratorInitial condition0
Integrator1Initial condition0
Relational Operator1Operator>=
Constant(触发角阈值)Valuealpha/360
Constant(脉宽阈值)Valuepulse_deg/360
MemoryInitial condition0

RS触发器如果使用Simulink标准库里的SR Flip-Flop,需要设置初始状态Q为0。如果没有这个模块,也可以直接用两个与非门自己搭,但不如标准模块稳定。整条信号链中,布尔型和double型转换要特别小心。晶闸管门极通常希望接受double信号,而Hit Crossing输出的是double,逻辑运算后可能会变成boolean,需要用Data Type Conversion把boolean转成double。

4. 单相桥式全控整流联动:从触发脉冲到负载电压波形

触发电路不能孤立运行,必须放到整流电路中验证。单相桥式全控整流是触发电路最直接的试验台,工程上常用来验证触发脉冲的相位和宽度。

4.1 整流桥导通区间与负载电压波形

单相桥式全控整流电路有四个晶闸管,VT1、VT4组成共阴极,VT2、VT3组成共阳极。在u2正半波,VT1、VT4承受正向电压;负半波是VT2、VT3。正常工作情况下,任意时刻两个晶闸管同时导通,把电源电压加到负载电阻上。触发角α从自然换相点开始计,所以:

相位区间导通晶闸管负载电压ud晶闸管端电压
0~α0VT1,4=VT2,3=(1/2)u2
α~πVT1,VT4u2VT1,4=0, VT2,3=u2
π~π+α0VT1,4=VT2,3=(1/2)u2
π+α~2πVT2,VT3-u2VT1,4=u2, VT2,3=0

注意,u2在负半周是负值,所以-u2实际上符号为正。从整体看负载电压是脉动的直流,每个电源周期脉动两次。α=30°时,导通区间宽,平均电压高;α=90°时,两个半波都只有一半时间导通,平均电压降低;α=120°时,波形更窄,平均值很小。

4.2 Simulink模型搭建步骤与参数设置

在Simulink中,我一般这样搭:

  1. 从Simscape/Electrical/Specialized Power Systems里放入AC Voltage Source,设置Peak amplitude为220*sqrt(2),Frequency为50。
  2. 用四个晶闸管搭成单相桥,晶闸管参数保持默认,但要注意把Snubber电阻和电容设为合适的值,比如Rs=1000Ω,Cs=1e-6F,避免仿真发散。
  3. 负载用纯电阻R=10Ω,加一个Current Measurement和Voltage Measurement。
  4. 把触发电路输出的两路脉冲分别接到VT1、VT4和VT2、VT3的门极。注意脉冲信号必须是每周期两个脉冲,其中一个反相180°。
  5. 用Powergui模块选择离散仿真,固定步长设为1e-5秒,停止时间设为0.04秒,也就是两个工频周期。

在运行前,可以先算一下理论输出平均值,方便和仿真对比:

U2 = 220; % 变压器二次侧有效值 alpha = 30 * pi/180; % 触发角转弧度 Ud = 0.9 * U2 * (1 + cos(alpha)) / 2; fprintf('理论平均电压: %.2f V\n', Ud);

如果仿真结果和这个计算值差太多,优先检查触发脉冲是否在正确的相位出现。最简单的方法是把同步电压、触发脉冲和负载电压放到同一个Scope里,缩放一个周期,观察触发脉冲的下降沿是否落在α位置。注意Scope里可能看到触发脉冲非常窄,需要勾选“Display full port”或者把采样步长调小。

4.3 波形异常与仿真发散的处理

纯阻性负载下,α=30°、60°、90°的仿真结果应该是一个周期脉动两次的波形,且随着α增大,导通角减小,波形缺口变宽。如果出现波形突然变成一条直线,多半是触发脉冲没接到对应晶闸管门极;如果波形出现高频震荡,多半是求解器步长太大。

仿真发散是触发电路模型最常见的问题之一。原因通常是晶闸管在开关瞬间电流变化率极高,默认变步长求解器为了追上这个变化率而不断缩小步长,最终数值溢出。我的做法是先把powergui设为离散仿真,固定步长1e-5秒;如果仍然发散,就把晶闸管的Snubber电阻调小,比如100Ω,或添加一个小电感串联在交流侧。另外,触发电路中的积分器在连续和离散求解器下行为略有差异,离散仿真时积分器必须用Discrete-Time Integrator,避免“仿真发散”或者输出NaN。

5. 触发电路仿真的隐藏坑:从仿真发散到脉冲丢失

触发电路模型不大,但坑不少。这里说几个我实际踩过的点,都是容易卡很久的问题。

5.1 怎么快速验证同步信号相位

很多脉冲丢失都是同步信号与主电路电压不同步导致的。建议在模型里加一个“Scope”,把同步电压、Hit Crossing脉冲和触发脉冲一起显示。正常情况下,触发脉冲前沿应该出现在同步电压过零后α°的位置。如果发现触发脉冲出现在过零前,说明积分器复位信号方向选错或者同步源有相移。

5.2 解决触发脉冲“一闪而过”

Scope看到的脉冲只是一个点,不代表脉冲宽度没设对。这是Scope采样时间设置导致的。打开Scope配置,把采样时间改成连续,或者取消“Limit data points”,再放大查看。另外,布尔型信号的显示方式也可能让脉冲看起来只有薄薄一条线,可以在Data Type Conversion里把布尔型转成double,并在Scope里用“Color”区分两路波形。

5.3 为什么Memory模块不能随便删

前文提到,Memory模块是为了错开同步和触发脉冲。实际操作中,有人发现删掉Memory后模型能跑,波形看起来也正常,那是因为步长比较大,竞争被掩盖了。一旦把步长降到1e-5秒以下,丢脉冲问题就会暴露。所以建议保留Memory,初始值设为0,不要图省事。

5.4 用脚本检查触发脉冲周期

最后给一个验证脚本,可以自动检查两路触发脉冲的上升沿间隔是否为20ms:

% 假设t为时间向量,y为第一路触发脉冲信号 y_rising = diff(y > 0.5) > 0; t_rising = t([false y_rising]); % 上升沿时间 period = diff(t_rising); % 相邻周期性 disp(['脉冲周期: ', num2str(period(1)*1000, '%.3f ms')]);

如果输出不是约20ms,说明触发脉冲相位或频率有问题。这个脚本特别适合从Scope导出波形数据后快速验证,比肉眼判断可靠性高得多。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询