单相可控整流电路的MATLAB仿真设计(2)

说明:拓扑是"单向半控桥",波形属"单相双半波"

电路拓扑(T1、T2 两个晶闸管 + D1、D2 两个二极管,四个器件组成桥)是典型的:

✅ 单相桥式半控整流(也叫 单相半控桥 / 单相半控桥式整流 / 单相半控全波整流)

它的输出只能为正(单象限/单向),并且利用了正负两个半周(全波、也有人口头叫"双半波")。


那"单向半控桥"和"单相双半波"到底啥关系?

  • "单向半控桥":强调"桥式 + 半控(2SCR+2D)+ 输出单向"。

  • "单相双半波":很多教材是强调"用两个半周都整流(全波)",但具体实现可以是桥式,也可以是中点式。

所以你现在这个电路:

👉 按结构叫:单相半控桥

👉 按波形性质也属于:单向全波/双半波整流(因为两个半周都用上了)

文件:

通过网盘分享的文件:电力电子 (2).zip

链接: https://pan.baidu.com/s/1B88BTr4bU4WqXuOQT9bIEg?pwd=1234 提取码: 1234

--来自百度网盘超级会员v5的分享

红色框就是可以直接matlab打开,博主修改过的matlab Simulink 仿真

说明,刚打开时候,需要在命令行区域定义变量,运行一下,变量参数定义的电路元件就不会红,改下面脚本即可修改电路参数:

5.1介绍:

5.1.1 介绍

MathWorks File Exchange 上就有 Single phase half controlled bridge rectifier 的现成模型(就是"半控桥/双半波等效"那类)。然后下面进行修改电路。

https://login.mathworks.com/embedded-login/v2/status/redirect?origin=https%3A%2F%2Fww2.mathworks.cn&forward=https%3A%2F%2Fww2.mathworks.cn%2Fmatlabcentral%2Ffileexchange%2F91880-single-phase-semi-converter

且Simulink(尤其电力电子/电力系统库)在网页版经常会卡,建议安装,安装可参考:https://www.cnblogs.com/quantwiz14/articles/19083528

你打开后要改的通常就三处:

  1. 交流源:Vrms、50Hz

  2. 触发角:alpha(30°~150°)

  3. 负载 :把负载改成 R 串联一个 DC 电压源 E (反电势)。

    (如果原模型负载不是这样,直接删掉原负载,换成"电阻 + DC Voltage Source"即可)

5.1.2 电路分析

5.2 改参数

如果参考刚刚链接安装的matlab,最好把杀毒软件,防火墙关上,因为证书/代理/安全软件 有点问题,导致 Simulink 的"起始页(浏览器界面)"打不开。要不然不能正常打开Simulink 如下:

1)第一步:先"另存为",避免你改的是示例库文件跑不起来

很多 File Exchange/示例模型打开后是库/模板状态,改着改着容易乱。

  • 菜单:File → Save As...

  • 保存成:比如 my_semi_converter.slx

以后只改你这个副本。


2)第二步:改交流源(AC Voltage Source)

在图左边找到 AC Voltage Source,双击:

如果它显示的是 Vrms 字样,那就填 Vrms;但你现在图像峰值像 141,所以它大概率吃的是峰值。

改 AC Voltage Source(让它真的是 Vrms=100)

  • 双击 AC Voltage Source

  • 把参数设成变量:

    • Amplitude = Vm (直接填 Vm)

    • Frequency = f


3)第三步:改触发信号(两路 Pulse Generator)

你图右上有两个 Pulse Generator ,分别给 T1T2 gate(通过 Goto8/From8、Goto9/From9)。

3.1 先把"关键参数改成变量"

你要先在工作区定义变量,再在块参数里直接写变量名。

定义变量的最简单方法(新手推荐):直接在 MATLAB 命令行输入:

主页·-命令行窗口,复制下面的粘贴:

复制代码
% ===== 题目参数 =====
Vrms = 100;     % 改成你的题目:100 或 220
f    = 50;
T    = 1/f;

E = 70;         % 反电势:70 或 100(按题目)
R = 4;          % 先给一个值,后面可以再调到目标功率

alpha_deg = 60;                 % 你想看的触发角
t_alpha   = alpha_deg/360*T;    % 对应你 Pulse Generator 的相位延时(秒)
Vm = sqrt(2)*Vrms;              % 电源峰值

以后你只改 alpha_deg=... 就行,别的自动变。

3.2 Pulse Generator 参数怎么填

双击第一个 Pulse Generator(T1那路):

  • Amplitude:1(不变)

  • Period (secs) :写 T

  • Pulse width (% of period) :写 510(给门极一个窄脉冲就够了,别50%那么宽)

  • Phase delay (secs) :写 t_alpha

双击第二个 Pulse Generator(T2那路):

  • Period:T

  • Pulse width:同上 510

  • Phase delay:写 t_alpha + T/2 (保证两路相差180°)

✅ 这样你就实现了"移相触发",范围 30°~150° 就是改 alpha_deg

4)第四步:改负载成"电阻R 串联反电势E"(重点:别再用红端口器件)

你现在中间是一个 RL (可能是电阻电感支路)。你要做的是:把负载改为:R 串联 DC Voltage Source(E)

4.1 用 SPS 的元件在哪里找

打开库浏览器:

  • 顶部菜单:Home → Simulink Library Browser

  • 或快捷:在画布空白处双击,直接搜索块名

然后搜索这些关键词(重要):

A)电阻用(SPS)

搜索:Series RLC Branch

B)反电势用(SPS)

搜索:DC Voltage Source

快捷键网页https://ww2.mathworks.cn/help/releases/R2024b/simulink/ug/summary-of-mouse-and-keyboard-actions.html#mw_d7e20e0e-d8d1-4262-a3e1-76bfb7217c86

说明:注意元件库

而你拖进来的"反电势/电阻"如果是 Simscape(物理建模) 的元件,它的端口会是红色/棕色物理端口 (conserving ports),这种不能和SPS黑色电力端口直接连接,所以你才会"全红、连不上"。

✅ 结论:负载也必须用 SPS 里的元件(同一套库),不要用 Simscape 那套红端口元件。

4.2 改负载:Series RLC Branch 只保留"电阻 R"

你现在负载用的是 Series RLC Branch,但你课设是"电阻负载(串反电势等效)"。

  1. 双击 Series RLC Branch

  2. 把 Branch type 选成 R

  3. R 填:R

  4. L、C 不用(或设为 0)

调试错误:你现在电流几乎为 0,也有可能是里面 L 很大导致电流被"憋死",所以这一步一定做。

4.3 改反电势:DC Voltage Source = E(这个决定导不导通)

  1. 双击 DC Voltage Source

  2. DC 电压填:E

⚠️ 极性怎么放?

  • 先不纠结,只要你把 E 改对,跑一次就知道了。

  • 正常情况下你希望:不导通时输出电压 ≈ E(比如 70V),导通时输出电压跟随整流电压。

如果跑出来 Output Voltage 变成 -70V (负的),那就把 DC 源 翻转(Flip Block) 或把正负端对调。

5)第五步:运行仿真

5.1 先设置仿真时间

上方工具条有 Stop Time,改成:

  • 0.08(50Hz 下 4个周期,波形很清楚)

5.2 点击运行

  • 顶部 绿色三角 Run

  • 或 Simulation → Run

✅ 点了以后,如果左下角状态条在跑、最后停住不报错,就是运行成功。

调试,

出错了加了两个scope,在两个 Pulse Generator 输出线上各接一个 Scope(或者接到现有 Scope 再加两个通道)

5.3 仿真结果分析

查看波形:双击scope1/2(触发脉冲),scope

相关推荐
AC赳赳老秦3 小时前
政务数据处理:DeepSeek 适配国产化环境的统计分析与报告生成
开发语言·hadoop·spring boot·postgresql·测试用例·政务·deepseek
xlxxy_3 小时前
abap 批量创建供应商
运维·开发语言·sap·abap·pp·mm
独自破碎E3 小时前
Java是怎么实现跨平台的?
java·开发语言
墨有6664 小时前
C++ string 部分功能详解:迭代器、初始化与常用函数
开发语言·c++
Evand J4 小时前
【MATLAB例程】三维环境下,EKF融合INS与DVL的核心程序,用于惯导和速度传感器的数据融合滤波。附下载链接
开发语言·matlab
枫叶丹44 小时前
【Qt开发】Qt系统(二)-> 事件分发器
c语言·开发语言·数据库·c++·qt·系统架构
独自破碎E4 小时前
Leetcode1438绝对值不超过限制的最长连续子数组
java·开发语言·算法
澜莲花4 小时前
python图色之opencv基础---验证码实战
开发语言·python·opencv
沐知全栈开发4 小时前
Numpy 数组操作
开发语言