绘制电力电子变换器伯德图的三种方法(with MATLAB 工具)

2023-12-31 15:10

本文主要是介绍绘制电力电子变换器伯德图的三种方法(with MATLAB 工具),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用bode命令绘制伯德图

首先对电力电子变换器进行建模,求出其控制环路的开环传递函数。然后在命令窗口(或者m文件)中使用tf命令构造传递函数,再使用bode命令绘制传递函数的伯德图即可。比如这里要绘制LCL逆变器电流环的伯德图。首先手动推得LCL逆变器(模块)电流环的开环传递函数为下式。

然后就在MATLAB中用下面的命令构造传递函数并绘制伯德图。

​采用本方法绘制出的伯德图如下图所示。

LCL逆变器开环伯德图

采用本方法的好处在于可以方便地使用bodeoptions等命令控制伯德图的显示范围、横纵坐标刻度等等。还可以使用MATLAB自带的工具读出幅值裕度GM、相位裕度(PM)等。在保证传递函数准确的情况下,使用本方法绘制伯德图是最快,也是最准确的方法。

simulink模型线性化的方法得到伯德图

假如simulink仿真模型中所有的元件都是从simulink库中拖出来的,那么simulink实际上是知道所有元件的传递函数的,那么对于多个元件拼凑成的系统,理论上simulink也是知道其传递函数(或者微分方程)的。

首先搭建仿真模型如下图所示(也是一个模块电流控制的LCL逆变器)。

LCL逆变器仿真模型

手动在电流环的给定端和反馈端放一个“In”、一个“Out”模块。然后再打开“Model Linearizer”工具箱(MATLAB 2019b在“APPS”页面中),在Linear Analysis Tool页面选择扰动注入的位置和输出测量的位置,见下图中的描述。

模型线性化步骤

再点击右上角的bode即可得到伯德图。下面是该方法得到的伯德图和手动使用bode命令得到的伯德图的对比,可以看出simulink线性化绘制出的(闭环)伯德图和bode命令绘制出的伯德图十分相近。它们只是陷波频率fr2上有一点偏移,特征频率点偏移是Tustin变换的显著特征。

LCL逆变器闭环伯德图

假如是用电路元件搭起来的仿真模型,实测采用模型线性化方法可能得不到伯德图或者得到的伯德图不准确。这个可能跟实际的电路模型太复杂有关系(模拟信号与数字信号混合,存在大量非线性元器件等)。个人建议还是搭建纯传递函数构成的仿真模型,然后再使用simulink模型线性化方法获取伯德图。

simulink扫频法

这是一种通过实测的方法得到伯德图。具体做法为在Linear Analysis Tool的Estimate页面,设置好小信号的注入频率和注入位置,simulink自动跑一组仿真,得到不同频率点下的响应。下图中的伯德图就是前面LCL逆变器的电流环闭环伯德图,可以看到和前面理论方法得到的闭环伯德图基本形状相近。

扫频法得到的LCL逆变器闭环伯德图

和模型线性化方法类似,扫频法也只适合用纯传递函数搭起来的仿真模型,用电路搭出来的电力电子变换器,使用扫频法测出来的精确度不高(至少LCL逆变器不高)。

总结

最准确的画伯德图的方式还是使用bode命令,但是需要先确定推导的传递函数是否准确。因此,可以先用推导的传递函数绘制一个伯德图,然后再用模型线性化方法或者扫频法实测得到一个伯德图,对比两个伯德图即可知道推导的传递函数是否准确。

这篇关于绘制电力电子变换器伯德图的三种方法(with MATLAB 工具)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/556407

相关文章

Python清空Word段落样式的三种方法

《Python清空Word段落样式的三种方法》:本文主要介绍如何用python-docx库清空Word段落样式,提供三种方法:设置为Normal样式、清除直接格式、创建新Normal样式,注意需重... 目录方法一:直接设置段落样式为"Normal"方法二:清除所有直接格式设置方法三:创建新的Normal样

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

把Python列表中的元素移动到开头的三种方法

《把Python列表中的元素移动到开头的三种方法》在Python编程中,我们经常需要对列表(list)进行操作,有时,我们希望将列表中的某个元素移动到最前面,使其成为第一项,本文给大家介绍了把Pyth... 目录一、查找删除插入法1. 找到元素的索引2. 移除元素3. 插入到列表开头二、使用列表切片(Lis

Python按照24个实用大方向精选的上千种工具库汇总整理

《Python按照24个实用大方向精选的上千种工具库汇总整理》本文整理了Python生态中近千个库,涵盖数据处理、图像处理、网络开发、Web框架、人工智能、科学计算、GUI工具、测试框架、环境管理等多... 目录1、数据处理文本处理特殊文本处理html/XML 解析文件处理配置文件处理文档相关日志管理日期和

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

Python安装Pandas库的两种方法

《Python安装Pandas库的两种方法》本文介绍了三种安装PythonPandas库的方法,通过cmd命令行安装并解决版本冲突,手动下载whl文件安装,更换国内镜像源加速下载,最后建议用pipli... 目录方法一:cmd命令行执行pip install pandas方法二:找到pandas下载库,然后

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

Java Thread中join方法使用举例详解

《JavaThread中join方法使用举例详解》JavaThread中join()方法主要是让调用改方法的thread完成run方法里面的东西后,在执行join()方法后面的代码,这篇文章主要介绍... 目录前言1.join()方法的定义和作用2.join()方法的三个重载版本3.join()方法的工作原

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分