基于PSIM及其DLL模块的单相全桥并网逆变器仿真

2023-11-15

摘要:本文简单地介绍了单相全桥并网逆变器的闭环控制原理,利用PSIM软件来进行仿真实验。

关键词:单相 闭环控制 PSIM DLL 锁相环 过零检测 进网电流反馈 SPWM

因在研究过程中参考的不少文献忘记标记了,所以无法一一列出,如有侵权,请联系本人进行删改。再者,我自个水平有限,若有错误,烦请大伙不吝指正。

一、整体介绍

图1是一个简单的单相全桥并网逆变器的电路图。主电路无需赘述,关键看控制部分。首先,对于并网逆变器而言,要使得逆变产生的交流电压的大小、频率以及相位与电网电压一致,也就是要达到并网的要求。而对电网电压的频率和相位进行跟踪并使得输出电压始终与之保持一致的结构我们称之为“锁相环”(PLL,PhaseLockLoop),具体如何实现后面再讲;接着是进行反馈控制。一般常见的做法是采集电网电流,与通过锁相环后产生的参考电流进行比较后,经过我们的控制器,最后产生驱动开关管通断的信号;最后是考虑我们的调制策略。一般是采用正弦波脉冲宽度调制(SPWM),而细分又有双极性调制,单极性调制,单极性倍频调制等等,这边简单介绍其中的两种。

图1 单相全桥并网逆变器电路及其闭环控制结构

图1 单相全桥并网逆变器电路及其闭环控制结构

综上所述,整个电路的工作流程是:实时采集电网电压,通过锁相环后,产生一个参考电流信号,与采集到的进网电流信号进行比较,误差值通过我们的控制器(常见的有PI控制器和PR控制器等等,这边采用比较简单的PI控制器)后,生成驱动信号,结合采用的调制策略,对四个开关管进行调制,从而产生与电网电压大小,频率以及相位都一致的输出电压。控制框图如图2。

图2 单相并网逆变器控制框图

图2 单相并网逆变器控制框图

二、锁相环及其利用DLL实现

锁相环的实现方式有很多,针对单相和三相系统,似乎也有不同的方法,这边只是介绍最简单的过零检测。其思想是:每检测到一个从负到正(或是从正到负)的零点时,就意味着距离上次检测到同样的过零点已经经过了一个电网电压周期的时间。通过计数这段时间,就知道了频率,再以此时为初始,就知道后面每时每刻电网电压的相位。
图3 锁相环实现原理

图3 锁相环实现原理

具体到DLL模块中的程序实现,由于PSIM是每过一个设定的时间步长进一次DLL模块,执行里面的程序,而设定的仿真时间步长一般很短,比如10e-7s,实际不需要这么频繁采集数据,更改占空比,所以一般可定义一个全局静态变量来进行计数,每经过一个开关周期的时间再来更改一次占空比,而这个开关周期就可作为时间的基准,也就相当于单片机中的一个定时器。有了时间基准后,可以计得一个电网电压周期的数值(比如为M),那么在后面第i个时刻我们就知道此时的电压电压的相位为(i/M*2Π)。

另一个问题是如何生成参考电流信号。就我目前的理解是,设定好我们需要的输出功率,采集电网电压有效值(具体做法可以查询网上关于获取电压有效值的相关资料),就知道电流有效值为多少。举例来说,在单位功率因数下,设定输出功率为Po,输出电压有效值为Uo,那么我们的参考电流iref=1.414Po/Uosin(i/M*2Π)。

最后,要知道的是,象征电网电压周期的计数值可能会每个周期变化一次(由于电网电压频率不一定是时时保持在50Hz),另外,过零检测的缺点在于如果电网电压发生畸变,比如在短时间内有若干个过零点,那么我们获得的频率,相位就不一定准确了。

三、进网电流反馈及其实现

常见的PI控制器,由于跟踪的是交流信号,所以效果不会特别好~~(我自个还不太懂原因是啥,嘻嘻)~~ ,后面学者们又提出了新的PR控制器。但是PR控制器比较复杂,而且PI控制器加上电网电压前馈控制后,进网电流的质量已经足够(前馈控制请自行百度了解),所以这里采用PI控制器。

而这里需要介绍的就是如何将其利用程序实现。在matlab中可以直接添加传递函数模块,而在DLL模块中,我们需要编写c代码,就要将其离散化。据徐德鸿教授的《电力电子系统建模及控制》一书介绍,将模拟控制器离散化主要有三种方法:冲激响应不变法,阶跃响应不变法,双线性变换法。而通过冲激响应不变法得到的PI方程如下:

图4 PI控制器离散化

图4 PI控制器离散化

四、开关管的调制策略及其实现

学习“电力电子技术”课程的时候我们已经知道,SPWM的调制方法主要有双极性调制和单极性调制。
图5

图5

具体的原理想必大家都已经清楚了,那么我们要了解的就是,在使用规则采样法确定开关管的通断时长时,每个开关周期中,占空比D=ur/Utri(其中ur为信号波的实时值,Utri为三角波的峰值)

图6

图6

图7

图7

具体到代码实现时,前文提到的电流反馈输出的值就相当于调制波,而如果设定三角波峰值为1,那么占空比就等于调制波。

接下来介绍两种不同的单极性调制方式,文字繁琐,代码如下:

//这边四个管子都是高频管
	if(D>0)
	{
		out[0]=1;
		out[1]=0;
		if(T1<=D*b)
		{
			out[2]=0;
			out[3]=1;
		}
		else
		{
			out[2]=1;
			out[3]=0;
		}
	}
	if(D<=0)
	{
		out[2]=1;
		out[3]=0;
		if(T1<=(fabs(D))*b)
		{
			out[0]=0;
			out[1]=1;
		}
	    else
		{
			out[0]=1;
			out[1]=0;
		}
	}
//这边将1,2作为低频管,3,4作为高频管使用
	if(D>0)
	{
		out[0]=1;
		out[1]=0;
		if(T1<=D*b)
		{
			out[2]=0;
			out[3]=1;
		}
		else
		{
			out[2]=1;
			out[3]=0;
		}
	}
	if(D<=0)
	{
		out[0]=0;
		out[1]=1;
		if(T1<=(fabs(D))*b)
		{
			out[2]=1;
			out[3]=0;
		}
	    else
		{
			out[2]=0;
			out[3]=1;
		}
	}
	//place your code here......end
}

解释:out[0]-out[3]分别对应开关管1-4的栅极;D为占空比;T1为当前计数值,每一个开关周期清零一次;b为一个开关周期所花费的计数值。

主要参考资料:
1,王兆安等,《电力电子技术》;
2,屈艾文,陈道炼,PSIM仿真软件及其在电力电子变换器仿真中的应用;
3,鲍陈磊,阮新波,王学华,潘冬华,李巍巍,翁凯雷,基于PI调节器和电容电流反馈有源阻尼的LCL型并网逆变器闭环参数设计;
4,赵清林,郭小强,邬伟扬,单相逆变器并网控制技术研究;
5,徐德鸿,《电力电子系统建模及控制》;
6,起个名字老重复,锁相环你知多少?30分钟带你玩转锁相环(单相三相锁相环)

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

基于PSIM及其DLL模块的单相全桥并网逆变器仿真 的相关文章

  • 量化选股策略搭建(四)(短期策略搭建)

    量化选股策略搭建 四 短期策略搭建 首先我们需要把选股这个问题转化为一个机器学习问题 那么如何转化成机器学习问题呢 机器学习也分两类问题 1 回归问题 2 分类问题 常规的一些方法是预测股价增长来进行选股 回顾问题 这里我们将其转化为一个分
  • ZooKeeper 分布式协调工具

    目录 一 ZooKeeper 概述 二 ZooKeeper Windows 单机版安装 三 ZooKeeper 集群环境下选举过程 四 ZooKeeper 存储数据的过程 五 ZooKeeper 监听 六 java 操作 ZooKeeper
  • 为什么说python简单_为什么很多人都说 Python 简单?

    Python是一门入门简单 精通困难的编程语言 Python是一门比较高阶的语言 在基本语法和使用方面没有C Java那么复杂 因此 对于入门者来说 很接近于自然语言的表述方式 经过短暂的的学习就可以完成一些简单的工作 但是 我认为如果仅用
  • 面试官:有一个 List 对象集合,如何优雅地返回给前端?我懵了。。

    1 业务背景 业务场景中 一个会话中存在多个场景 即一个session id对应多个scene id和scene name 如果你写成如下的聚合模型类 public class SceneVO private String sessionI
  • [leetcode]Python实现-389. 找不同

    389 找不同 描述 给定两个字符串 s 和 t 它们只包含小写字母 字符串 t 由字符串 s 随机重排 然后在随机位置添加一个字母 请找出在 t 中被添加的字母 示例 输入 s abcd t abcde 输出 e 解释 e 是那个被添加的
  • oracle 数据库基础知识复习

    1 单表的数据查询 1 1指定字段的数据记录查询 select field1 field2 FROM 表名 WHERE CONDITION 例 select t stuname t age t sex from STUINFO t wher
  • curl命令介绍与使用

    curl 全称CommandLine URL 或 CommandLine Uniform Resource Locator 顾名思义 curl命令是在命令行方式下工作 利用URL的语法进行数据的传输或者文件的传输 这个命令行工具现在多用于U

随机推荐

  • 基于Python Django Mysql 开发的宠物用品商城

    最近做的一个程序设计 核心是基于django做一个商城 功能包含登录 注册 商品浏览 购物车 支付模块 支付宝沙箱支付 评价 轮播图 开发环境 Python版本 3 8 7 Django版本 3 1 5 数据库版本 mysql8 数据库管理
  • Hive(二):获取HiveConnection,及重现获取过程中的某些问题。

    为什么80 的码农都做不了架构师 gt gt gt 一 未创建Maven工程 所需jar包都是自己一一找的 结果碰到许多缺包问题 最后我的lib下包为 二 尝试获取HiveConnection 先附上成功获取HiveConnection的代
  • nexus3 Unauthorized问题解决

    环境 Nexus3 version 3 20 1 01 问题 nexus3 在安装完后通过mvn deploy命令 出行 Return code is 401 ReasonPhrase Unauthorized 异常 分析解决 1 mave
  • Hadoop集群启动后,在web:50070端口只有两个datanode节点

    spark集群部署规划 hadoop1 master worker datanode namenode secondarynamenode hadoop resourcemanager nodemanager yarn hadoop2 wo
  • 使用AD14制作PCB的全部流程以及PCB打样流程介绍

    文章目录 1 各PCB打样公司 1 1 深圳嘉立创 1 2 捷配 1 3 华秋 1 4 猎板 2 嘉立创PCB打样流程 2 1 在线下单 2 2 上传PCB文件 2 3 选择板子数量 2 4 工艺参数设置 3 AD元器件库 4 AD14创建
  • 上手Web自动化测试(Python+selenium+unittest)

    从安装库 包和文件配置上手Web自动化测试 Python主要用selenium和unittest库 此外还有用于远程测试的Selenium Server包 浏览器需要配置chromedriver 1 安装selenium库 可以在Pycha
  • Robot Framework (分层实现UI自动化)

    更多资源请前往博主个人网站 http www qabujiaban com Robot Framework介绍与安装 目录 Robot Framework介绍与安装 Robot Framework是什么 什么是自动化测试框架 Robot F
  • linux Ubuntu 引导,重建ubuntu的grub开机引导

    这里将告诉您重建ubuntu的grub开机引导 具体实现方法 pc开机时 在进入系统之前 要先进入的磁盘里安装了grub开机引导的区域 如果是单系统一般不会有问题 但若是多系统像win ubuntu或者ubuntu ubuntu等 有时会出
  • VS2019+Qt Release模式下显示打印信息

    使用VS作为Qt的开发工具 在Debug模式下开发 软件的运行效率不如Release模式下高 所以经常会出现在Release模式下 查看程序的打印输出 只需要在项目属性配置一下即可 点击项目右键 属性 生成事件 生成后事件 在命令行里添加下
  • HJ212-Pack HJ212协议组包实现

    HJ212 Pack HJ212协议组包实现 仓库地址 https gitee com ll0 0ll HJ212 Pack HJ212协议认识 https blog csdn net lblmlms article details 108
  • STM32定时器----TIMx->SR寄存器

    在研究stm32定时器时发现 当进入定时器的中断时 定时器计数器以及中断接收时正常运行的 并没有因为进入中断而停止 具体看以下分析 定时器初始化代码 TIM捕获通道开启宏定义 1 开启 0 关闭 define TIM ICCH1 1 def
  • Vite热更新不起作用

    错误示例 path show component gt import views Show index vue show 目录名 注意路由中是大写开头 这里是小写的 这就是问题所在 Index vue 文件名 这样写目录名或文件名与路由中写
  • Windows10 搭建vs2017OpenGL ES 3.0 开发环境

    前言 更新于2021 06 29 1 首先下载 OpenGL ES 3 0 Programming Guide 随书源码 直接使用CMake工具生成vs2017代码工程 然后使用vs2017打开工程 ES3 Book sln 然而 vs报错
  • mysql多对一、多对多查询实践

    最近做的功能涉及这方面 算是练了一下 首先多对一部分较简单 多的那一方表 多设置一个字段是少的那一方的id 主键 具体查询时候关联查询即可 可设置外键进行级联操作 具体以后做到这个功能再更新 多对多 设备和用户多对多 一个用户可有多台设备
  • 用java编写赛马_java applet 赛马小程序

    昨天写看java书的时候 觉得闷 就写了个小程序自我娱乐一下 技术含量不高 只是自我娱乐而已 下面的代码只要编译出class文件 再写一个HTML格式的文件 调用Arc2Demo2 class 就能看了 该程序实现一个跑马比赛程序 各个选手
  • Translucent System Bar 的最佳实践

    Translucent System Bar 的最佳实践 http mp weixin qq com s biz MzA3MDMyMjkzNg mid 2652262235 idx 1 sn f7ebd354b2ad04064d27e0df
  • 【Docker】基于docker构建深度学习开发环境

    文章目录 1 选择基础镜像 1 1 不同深度学习框架对CUDA和cuDNN的要求 1 2 显卡驱动对CUDA的要求 1 3 深度学习框架对CUDA不同版本要求冲突的解决 2 创建容器并进行基础配置 2 1 创建容器并查看CUDA和cuDNN
  • 某网站面试算法题,今天碰到了,两个大数字相加(足够大)取和

    两个大数相加 1 是整数 2 两个数无限大 long都装不下 3 不能用BigInteger 4 不能用任何包装类提供的运算方法 5 两个数都是以字符串的方式提供 面试答卷直接写下 此处空白位置太小 写不下 请求机试 果然给我一台应该是 爬
  • Spring 循环依赖的三级缓存

    在Spring Bean 的生命周期中 里面有一步就是填充属性 而填充属性之前会判 属性对象是否被当前对象循环依赖 当发现属性对象被循环依赖的时候会进行aop 被命中 并且生成属性对象的代理对象 未命中目标对象 循环依赖是如何形成的 当 对
  • 基于PSIM及其DLL模块的单相全桥并网逆变器仿真

    摘要 本文简单地介绍了单相全桥并网逆变器的闭环控制原理 利用PSIM软件来进行仿真实验 关键词 单相 闭环控制 PSIM DLL 锁相环 过零检测 进网电流反馈 SPWM 因在研究过程中参考的不少文献忘记标记了 所以无法一一列出 如有侵权