基于MATLAB/Simulink的三相并网逆变器dq阻抗建模及扫频仿真

news2024/12/27 12:50:11

目录

  • 整体系统介绍
  • 理论模型
    • MATLAB实现
  • 基于Simulink的阻抗扫频仿真
    • 整体思路
    • 注意事项
    • 流程框图
  • 其他

本文主要介绍三相并网逆变器dq阻抗建模的相关知识,和大家分享一下怎么使用MATLAB/Simulink来进行理论模型的搭建以及如何通过扫频获取阻抗模型,一方面是给自己留点学习资料,也希望对大家能有所帮助。如果有什么问题或者错误,欢迎留言。

本文涉及的代码和模型就不提供啦,不过后面会给出一组参数和对应阻抗的Bode图,有兴趣的可以自己做一下然后对照看看有没有问题。

整体系统介绍

图1是本文所使用的系统:三相并网逆变器;输入认为是恒定的直流电压源;滤波采用单电感,同时考虑寄生电阻;控制在dq坐标系下实现,为简单起见,使用单电流环。

在这里插入图片描述

图1 三相并网变换器系统框图

理论模型

理论模型不是本文叙述的重点,大家可以去找相关的论文,有比较详细的介绍(特别是一些学位论文),这里只简单提一下。

并网变换器的dq阻抗模型实际上就是一个2*2的传递函数矩阵,输入和输出分别为并网点的电压和电流

在这里插入图片描述

(1)

建模中,个人认为最重要的就是锁相环。由于锁相环(PLL)的存在,在有小信号扰动时,控制系统的dq坐标系和实际系统的dq坐标系之间存在着相位差ΔθΔθ的存在引起了dq轴的耦合,使得系统产生了复杂的稳定性问题。

为此,我们需要找出主电路(上标为 s)和控制系统(上标为 c )两个dq坐标系之间的关系。也就是两个坐标系下的电气量之间的转换关系式。根据相关的文献,有

在这里插入图片描述

(2)

其中 x 表示电压/电流/占空比等。

MATLAB实现

获取dq阻抗模型的控制框图或表达式后,我们可以考虑在MATLAB中用代码实现,并画出对应的Bode图。

要注意的几个点是:

  1. 不需要写出各个阻抗的具体表达式,直接以矩阵的形式来进行运算;
  2. 求逆矩阵时,MATLAB里面不推荐使用 inv() 函数,而是用 / 或 \ 予以替代。具体来说

在这里插入图片描述

(3)
  1. 似乎没办法直接作出一个2*2传递函数矩阵的Bode图(也可能是我不会),所以需要分别运用 bode() 函数。另外,推荐大伙使用这么几行命令,让每次画出的图的范围都是固定的。
tt = bodeoptions;
tt.XLim={[1 10e3]}; % 横坐标范围
tt.FreqUnits='Hz'; % 设置值模式
tt.PhaseWrapping='on'; % 相频特性 限制范围
tt.PhaseWrappingBranch=-180; % ±180之间

bode(Zdd,tt);

基于Simulink的阻抗扫频仿真

整体思路

这里 阻抗扫频仿真 的意思是,我们先在Simulink中搭建电路模型,然后往PCC点注入一定的扰动信号(这里为串联电压扰动信号源),并采集对应的PCC电流,而后对电压电流信号进行处理运算,求解出系统的阻抗模型。

由于待求的阻抗有四个,但是一组扰动信号只有d轴和q轴两组方程,所以需要设计两组线性无关的扰动信号,才能建立起四个方程。

在这里插入图片描述

(4)

而这只是一个频率下的阻抗,还需要根据情况设计多个扰动频率点,以勾勒出一段频率范围内的阻抗特性。

整体的思路是:

  1. 搭建电路模型,并且保证其可以正常工作(具有稳态工作点);
  2. 设计电压扰动信号1和电压扰动信号2;
  3. 把某一频率下的信号1注入系统,采集PCC处的电压和电流,并进行dq变换;
  4. 注入扰动信号2,并且采集PCC处的电压和电流;
  5. 利用FFT,求出相应扰动频率下的两组信号的电压分量和电流分量的幅值和相位;
  6. 根据前面的公式,得到阻抗矩阵的具体数值;
  7. 注入另一频率下的扰动信号,并重复上述步骤,直至获得所有频率下的阻抗解;
  8. 画图。

注意事项

这里针对上面的各个步骤介绍一些可能要加以注意的事项

  1. 搭建电路模型,这一点没啥好说的,你首先需要确保自己的系统有稳态工作点,再考虑注入小信号扰动的事情;
  2. 设计扰动信号,对于逆变器,一般采用串联电压源的方式,而两组线性无关的信号可以这样设计:

在这里插入图片描述

(5)

其中 wg 是电网电压角频率。

  1. 注入信号,采集信号,为了确保准确性,可以每次注入一个频率的一组扰动信号。采集的时候因为是dq阻抗,所以要进行dq变换。这里要注意θ的选取,需要变换到实际系统dq坐标系下(上标为 s );
  2. 利用FFT求出幅值和相位,MATLAB中有对应的函数 fft() ,不过还需要自己补充一些内容才能符合需求;
  3. 求解阻抗方程,如果需要导纳模型,同样也可以求解;
  4. 注入其他频率的扰动信号,一般要避开工频(50Hz)以及其他谐波频率,免得计算结果有误。

流程框图

如果每次注入信号都手动操作的话,未免过于繁琐和费时(简直非人哉),所以强烈建议大家把这一个过程自动化。

得益于强大的MATLAB,我们最终可以实现这样的效果:在设计好系统和扰动频率点后,待程序运行结束后便可以自动生成理论模型和扫频仿真的Bode图。

个人的思路如下,供大家参考。

在Simulink中搭建模型,扰动信号的频率、幅值等将从MATLAB中获得(同理,也可以设置其他的模块参数从MATLAB中获得);这一功能利用如下函数实现

% 载入仿真模型文件
load_system('xxx.slx');

% 设定参数
set_param('xxx/Constant','Value','3');

% 运行仿真
sim('xxx', [t_start, t_end]);

具体可以参考这篇文章:MATLAB脚本调用simulink仿真文件及simulink模块参数修改-load_system函数-sim函数-set_param函数

另一方面,采集到的电压电流信号也要传到MATLAB中,以便于进一步的处理。这里可以使用 To WorkspaceTo File 模块;

点击 运行 后,首先启动Simulink模型,并选择注入扰动信号1(这里要设置好合适的仿真时间)。仿真结束后,把数据先存放到一个数组里,然后再注入扰动信号2,并且也给它存起来。获得两组数据后,利用FFT求得幅值和相位,利用阻抗表达式求得这一扰动频率下的阻抗解。为了获得其他频率下的阻抗,可以设计一个扰动频率数组,利用循环语句每次注入不同的信号。最后,把得到的阻抗解利用 plot() 给它画出来,并利用 hold on , 对比理论模型和扫频模型。

图2 流程框图

图2 流程框图

其他

这里提供了一组参数和阻抗Bode图,具体系统框图如前面的图1所示,供大家参考。

描述参数数值
直流电压Udc1000V
电网电压有效值Ug220V
有功功率P100kW
无功功率Q20kVar
滤波电感L1mH
滤波电感寄生电阻R1mΩ
锁相环比例系数Kp_PLL1
锁相环积分系数Ki_PLL100
电流环比例系数Kp_i0.01
电流环积分系数Ki_i0.1

在这里插入图片描述

图3 dq阻抗模型Bode图

其中 蓝色线 表示理论模型,红色线 表示扫频仿真模型。

2023.08.23

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/916606.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】unordered_map和unordered_set的使用 及 OJ练习

文章目录 前言1. unordered系列关联式容器2. map、set系列容器和unordered_map、unordered_set系列容器的区别3. unordered_map和unordered_set的使用4. set与unordered_set性能对比5. OJ练习5.1 在长度 2N 的数组中找出重复 N 次的元素思路分析AC代码 5.2 两个数组的交集思路分…

matlab实现输出的几种方式(disp函数、fprintf函数、print函数)

matlab实现输出的几种方式(disp函数、fprintf函数、print函数) 输出为文本、文件、打印 1、disp函数 显示变量的值,如果变量包含空数组,则会返回 disp,但不显示任何内容。 矩阵 A [1 0]; disp(A)结果 字符串 S …

腾讯云-对象存储服务(COS)的使用总结

简介 对象存储(Cloud Object Storage,COS)是腾讯云提供的一种存储海量文件的分布式存储服务,具有高扩展性、低成本、可靠安全等优点。通过控制台、API、SDK 和工具等多样化方式,用户可简单、快速地接入 COS&#xff0…

多肽合成15266-88-3产品特点介绍,Cyclo(glycyl-L-histidyl)

中文名:环(甘氨酰-L-组氨酰) 英文名:cyclo(Gly-His) CYCLO(-GLY-HIS) Cyclo(glycyl-L-histidyl) (S)-3-(1H-Imidazol-4-ylmethyl)-2,5-piperazinedione CAS:15266-88-3 分子式:C8H10N4O2 分子量:194.191 密度 …

【点击新增一个下拉框 与前一个内容一样 但不能选同一个值】

点击新增一个下拉框 与前一个内容一样 但不能选同一个值 主要是看下拉选择el-option的disabled,注意不要混淆 <el-form label-width"120px" :model"form" ref"form" style"color: #fff"><template v-for"(trapolicy, i…

JAVA基础知识四——重载、可变参数

1、方法重载 注意事项&#xff0c;构成重载的必要 1.1、课堂练习——选择题 1.2、课堂练习——程序代码 public class Overload {//编写一个main方法。public static void main(String[] args){Methods method new Methods();/*method.m(10);method.m(10,11);method.m(&quo…

Blazor:Razor组件防止点击穿透

文章目录 微软官方文档如何防止点击传统 微软官方文档 如何防止点击传统 我们就算封装成立Blazor组件&#xff0c;我们还是对原生的DOM元素进行操作 在子组件最外层包一个div。在DIV里面阻止组件事件的传播 <div style"margin-left:10px;" onclick:stopPropaga…

drools8尝试(加单元测试)

drools8的maven模板项目里没有单元测试, 相比而言drools7有个非常好的test senorios 那就自己弄一个 文件是.http后缀的,写了个简单的例子如下 //测试交通违章 POST http://localhost:8080/Traffic Violation accept: application/json Content-Type: application/json{&q…

人工智能AI绘画接入使用文档

人工智能AI绘画接入使用 一、人工智能AI绘画二、使用步骤1、接口2、请求参数3、请求参数示例4、接口 返回示例 三、 AI绘画优秀描述例子四、 如何获取appKey和uid1、申请appKey:2、获取appKey和uid 五、重要说明六、AI绘画成果展示 一、人工智能AI绘画 AI作画,用户可以在平台上…

Python爬虫逆向实战案例(五)——YRX竞赛题第五题

题目&#xff1a;抓取全部5页直播间热度&#xff0c;计算前5名直播间热度的加和 地址&#xff1a;https://match.yuanrenxue.cn/match/5 cookie中m值分析 首先打开开发者工具进行抓包分析&#xff0c;从抓到的包来看&#xff0c;参数传递了查询参数m与f&#xff0c;同时页面中…

【实操干货】如何开始用Qt Widgets编程?(三)

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写&#xff0c;所有平台无差别运行&#xff0c;更提供了几乎所有开发过程中需要用到的工具。如今&#xff0c;Qt已被运用于超过70个行业、数千家企业&#xff0c;支持数百万设备及应用。 在本文中&#xff0…

Anaconda Conda实现Python多环境管理

Anaconda Conda实现Python多环境管理 Python多环境AnacondaConda环境管理下载安装镜像配置环境管理常用命令创建Python3.10环境 Python多环境 Python多环境指的是在同一台计算机上同时安装并管理多个不同的Python版本。可以在不同版本的Python之间切换&#xff0c;并确保每个项…

WPS office 最新未公开 0Day漏洞警示

一、事件描述 近日&#xff0c;网传监测发现WPS Office for Windows版本 存在0day漏洞&#xff0c;攻击者可以利用该0day漏洞在受害者主机上执行任意恶意文件&#xff0c;高危级别&#xff0c;官方尚未对此发布修复漏洞&#xff0c;目前建议只能临时弃用wps或者不要点开未知文件…

8月21-22日上课内容 第一章 MySQL数据库初始

本章结构 数据库的基本概念 概述&#xff08;总览&#xff09; 结构&#xff1a; 数据 表 数据库 数据库管理系统 数据库系统原理 数据 (Data) 描述事物的符号记录 包括数字&#xff0c;文字、图形、图像、声音、档案记录等以“记录”形式按统一的格式进行存储表 将不同…

ClickHouse安装及部署

文章目录 Docker快速安装Ubuntu预编译安装包安装检查是否支持SSE4.2使用预编译安装包 Tgz安装包配置文件修改修改密码配置远程访问 其他主机访问文章参考 Docker快速安装 本地pull镜像 docker run -d --name ch-server --ulimit nofile262144:262144 -p 9000:9000 -p 8123:81…

【数据结构与算法】1. 绪论

1. 绪论 1.1 数据结构 1.1.1 数据结构的基本概念 1.1.2 数据结构的三要素 数据结构三要素&#xff1a; 逻辑结构 划分方法一&#xff1a; 线性结构&#xff1a;线性表、栈、队列、串非线性结构&#xff1a;树、图 划分方法二&#xff1a; 集合结构线性结构树形结构网状&…

学Python静不下来,看了一堆资料还是很迷茫是为什么

一、前言 最近发现&#xff0c;身边很多的小伙伴学Python都会遇到一个问题&#xff0c;就是资料也看了很多&#xff0c;也花了很多时间去学习但还是很迷茫&#xff0c;时间长了又发现之前学的知识点很多都忘了&#xff0c;都萌生出了想半路放弃的想法。 让我们看看蚂蚁金服的大…

按钮权限控制

搜索关键字&#xff1a; 自定义指令传参| "自定义指令""dataset"|自定义指令dataset| "Vue""directives"|vue按钮权限实现 1、完整代码&#xff1a; <template> <div> <el-breadcrumb separator-class"el-icon…

CheckBox全选,半选,不选三种样式原生实现

效果图 代码 <!DOCTYPE html> <html> <head><title>复选框样式示例</title><style>input[type"checkbox"] {display: none; /* 隐藏原生复选框 */}label.checkbox {position: relative;display: inline-block;width: 20px;heig…

初出茅庐的小李博客之USB设备开发快速上手

1.USB基础知识介绍 这里有一篇文章写的非常好不再重复造轮子 USB基础知识介绍&#xff1a;https://blog.csdn.net/Richard_Brown/article/details/106602288 2.USB设备介绍 常见的USB设备&#xff1a;U盘、鼠标、MP3、移动硬盘、数码相机、键盘、游戏杆、USB摄像头、USB打印…