Simulink搭建三相PWM整流器过程

2023-11-02

三相PWM整流器的基本构成

  过年期间闲来无事,对PWM整流器进行了一点了解,然后用Simulink搭建了一个PWM整流器的模型。现在对这个过程进行归纳,希望对大家有帮助。
  首先贴出三相PWM整流器的电路简图如下图。其中V1、V2、V3是三相电源,对应实际的三相电;L1、L2、L3是整流器前端的三相电抗器;R1、R2、R3其实可以看作是三路线路上总的电阻(电缆的电阻、电抗器的电阻等等);Q1-6、D1-6则构成了三相IGBT桥,它也是我们需要控制的核心;最后的C1是直流母线的滤波电容。
在这里插入图片描述

三相PWM整流器的电压控制逻辑分析

  PWM整流的原理在网上已经有太多的解释了。但是往往都比较复杂,我们不妨以最简单的逻辑去解释(结合下图,为了简便分析,我们只看其中的一相电路,其中假设U1>0)。
  现在我们列出下图电压的等式,显然有U1=UL1+UR1+Ua。
在这里插入图片描述
  一般的,UL1是比较小的,假设电感为1mH,I1为10A,这时UL1=2pifL10=23.14500.00110=3.14V。相较直流母线几百伏的电压,相较电网几百伏的电压来说,UL1是很小的,如果在设计模型时忽略它只会造成很小的误差,并且控制模型中的所以在此我们忽略UL1的存在。这样一来电压的等式就变成了U1=UR1+Ua。
  而在实际控制时,我们并非按照每相进行解算,而是像控制PMSM一样把电压和电流都分解到DQ轴再进行解算。此时,电压等式就变成了Ed=URd+Ud、Eq=URq+Uq。其中E是电网电压,UR是电阻电压,U是IGBT桥逆变出的电压。
  当直流母线电压降低低于设定的母线电压时,我们希望电网对我们的母线进行充电,也就是希望Id>0,并且母线电压低的越多Id就应该越大。而要Id增大,显然就需要R两端的电压URd增大。而根据公式Ed=URd+Ud,我们想让URd增大可以通过控制IGBT桥的逆变,使Ud减小。
  上述的逻辑可以归纳为:(直流母线电压设定值-Udc)减小→Id增大→URd增大→Ud=Ed-URd减小。根据这个逻辑,我们可以搭建出一个控制流如下图。
在这里插入图片描述
  同理也可以将Uq的控制逻辑做出下图。
在这里插入图片描述
  这就是PWM整流的核心逻辑,有了核心逻辑,我们只需要将Id、Iq、Ed、Eq、实际母线电压测量出来输入到控制逻辑,然后使用计算出的Ud、Uq对IGBT桥进行对应的开关控制就可以了。

三相PWM整流器的模型及运行效果

  将整个模型搭建完备后的SImulink模型如下图。
在这里插入图片描述
  我们试着运行模型,可以看到母线电压在0.1秒的时间内就已经和设定的母线电压非常接近了。
在这里插入图片描述
  我们继续尝试不断更改设定的母线电压,可以发现,每次更改母线电压的设定值后,模型都可以调整直流母线电压变为新设定的电压值。可见我们的模型达到了设计目的。
在这里插入图片描述

三相PWM整流器与伺服三环控制相结合

  然后我们将PWM整流与之前文章中的伺服三环控制模型相结合,并实际运行测试。可以发现在伺服驱动电机进行运行的时候母线电压基本保持稳定。
在这里插入图片描述
  而对整流器的三相输入电流进行监控我们可以看出,在电机进行加速的过程中三相输入电流变大了。而当电机速度稳定后输入电流又变小了,完全符合预期。
在这里插入图片描述

三相PWM整流器模型下载

三相PWM整流器Simulink模型
伺服三环控制和三相PWM整流结合模型

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Simulink搭建三相PWM整流器过程 的相关文章

  • 将单元格转换为双精度

    gt gt C 1 2 CF 2 C 1 2 CF 2 gt gt whos C Name Size Bytes Class Attributes C 2x2 478 cell 我怎样才能转换C into double以便 gt gt C
  • 如何以编程方式指定 MATLAB 编辑器键绑定

    我想将键盘键绑定设置为Windows 默认设置我想在启动时使用startup m因为我希望在大量系统上设置此设置 首选项对话框中的等效设置是 MATLAB gt Keyboard gt Shortcuts gt Active Setting
  • 类方法的自定义代码完成?

    在 MATLAB 中 可以定义代码建议和完成 如标题为 的文档页面中所述 自定义代码建议和完成 https www mathworks com help matlab matlab prog customize code suggestio
  • 估算缺失数据,同时强制相关系数保持不变

    考虑以下 excel 数据集 m r 2 0 3 3 0 8 4 0 1 3 2 1 5 2 2 3 1 9 2 5 1 2 3 0 2 0 2 6 我的目标是使用以下条件填充缺失值 将上述两列之间的成对相关性表示为 R 大约 0 68 将
  • 同时重新排序和旋转图像的高效方法

    为了快速加载 jpeg 我为turbojpeg 实现了一个 mex wrapper 以有效地将 大 jpeg 读入 MATLAB 对于 4000x3000px 的图像 实际解码只需要大约 120 毫秒 而不是 5 毫秒 然而 像素顺序是 R
  • 为什么matlab的mldivide比dgels好这么多?

    Solve Ax b 真正的双 A是超定的 Mx2 其中 M gt gt 2 b是MX1 我运行了大量的数据mldivide 并且结果非常好 我用 MKL 写了一个 mex 例程LAPACKE dgels但它远没有那么好 结果有大量噪音 并
  • 非模态 questdlg.m 提示

    我的代码绘制了一个图 然后提示用户是否想使用不同的参数绘制另一个图 问题是 当 questdlg m 打开时 用户无法查看绘图的详细信息 这是代码 while strcmp Cont Yes 1 Some code modifying da
  • 为什么 mex 文件中的 OpenMP 仅产生 1 个线程?

    我是 OpenMP 新手 我有以下代码 使用配置了 MSVS2010 的 Matlab mex 可以正常编译 计算机有 8 个可用处理器 我也使用 matlabpool 检查过 include mex h include
  • 垂直子图的单一颜色条

    我想让下面的 MATLAB 图有一个沿着两个子图延伸的颜色条 像这样的事情 使用图形编辑器手动完成 Note 这与提出的问题不同here https stackoverflow com questions 39950229 matlab t
  • MATLAB 可执行文件太慢

    我使用以下命令将 MATLAB 程序转换为基于控制台的应用程序deploytool在 MATLAB 中 MATLAB m文件执行大约需要 2 秒 但在我将其转换为可执行文件并调用 exe 执行需要45秒 太长了 我想将 MATLAB 程序与
  • 在Matlab中对字符进行分组并形成矩阵

    我有 26 个字符 A 到 Z 我将 4 个字符组合在一起 并用空格分隔以下 4 个字符 如下所示 abcd efgh ijkl mnop qrst uvwx yz 我的Matlab编码如下 str abcdefghijklmnopqrst
  • Python 或 C 语言中的 Matlab / Octave bwdist()

    有谁知道 Matlab Octave bwdist 函数的 Python 替代品 此函数返回给定矩阵的每个单元格到最近的非零单元格的欧几里得距离 我看到了一个 Octave C 实现 一个纯 Matlab 实现 我想知道是否有人必须用 AN
  • 如何在Matlab中绘制网络?

    我有一个矩阵AMatlab中的维数mx2每行包含两个节点的标签 显示网络中的直接链接 例如 如果网络有4矩阵的节点A可能A 1 2 1 3 2 1 2 4 3 2 4 1 4 2 其中第一行表示有一个链接来自1 to 2 第二行表示有一个链
  • 我如何编写一个名为 dedbi 的 MATLAB 函数,它将输入 xtx 作为字符串并返回另一个字符串 xtxx 作为输出。

    dedbi 反转单词 即 a 将被 z 替换 b 将被 y 替换 c 将被 x 替换 依此类推 dedbi 将对大写字母执行相同的操作 即将字符串 A 替换为 Z 将 B 替换为 Y 将 C 替换为 X 依此类推 如果我给函数这个字符串 a
  • 命令 A(~A) 在 matlab 中的真正作用是什么

    我一直在寻找找到矩阵非零最小值的最有效方法 并在论坛上找到了这个 设数据为矩阵A A A nan minNonZero min A 这是非常短且高效的 至少在代码行数方面 但我不明白当我们这样做时会发生什么 我找不到任何关于此的文档 因为它
  • MATLAB 编译器与 MATLAB 编码器

    两者有什么区别 据我了解 MATLAB Compiler将MATLAB代码包装成 exe文件 这样就可以在不安装MATLAB的情况下使用它 并且只需要MCR 除此之外 MATLAB Builder NE 还可以用于生成与 Net 框架一起使
  • Matlab:条形图中缺少标签

    使用 Matlab 2012 和 2013 我发现设置XTickLabel on a bar图表最多只能使用 15 个柱 如果条形较多 则标签会丢失 如下所示 绘制 15 个条形图 N 15 x 1 N labels num2str x d
  • Numpy 相当于 MATLAB 的 hist [重复]

    这个问题在这里已经有答案了 由于某种原因 Numpy 的 hist 总是返回比 MATLAB 的 hist 少 1 个 bin 例如在 MATLAB 中 x 1 2 2 2 1 4 4 2 3 3 3 3 Rep Val hist x un
  • 在matlab中不使用for循环检查数组中的成员资格

    我想简化这段代码 使其无需 for 循环即可工作 for i 1 N for j 1 N if ismember j A PID i i TFP i j PID i i end end end 其中A是一个包含一些标签的矩阵 我之前存储的T
  • FMINCON 的替代方案

    除了 fmincon 之外还有其他更快 更高效的求解器吗 我正在使用 fmincon 来解决特定问题 但对于中等大小的向量变量来说 我的内存不足 我也没有任何超级计算机或云计算选项可供使用 我知道任何替代解决方案仍然会耗尽内存 但我只是想看

随机推荐