草庐IT

独立逆变器系统MATLAB-simulink建模及仿真

jacklood 2023-04-09 原文

         独立逆变器不同于并网逆变器,是一种将直流电转换为特定频率与幅值交流电的电力电子装置,一般作为EPS、UPS以及孤岛微电网系统的雏形装置。由于其负载的多样性导致独立逆变器必须具备快速适应负载变化的特性。本设计通过对独立逆变器系统传递函数分析并由分析结果设计PID控制器,实现了电压电流三闭环的控制系统仿真,其仿真结果在不同比例系数下做了比较,同开环系统相比更具备快速响应能力和更高的系统稳定性,对不同的负载变化也更加满足响应要求。

一、系统框架图

      本设计逆变器主电路如图所示,经过LCL滤波器,滤除高频成分在负载处获得光滑的正弦波,控制技术采用正弦脉宽调制法(SPWM),图中L1、L2为滤波电感,其各自线路有等效阻抗RL。

假设负载为电阻R时,输出电压与输入电压之间的传递函数为:

 

     当负载为R无穷大时,得到逆变空载时的传递函数:

        由于逆变器在空载时的阻尼最小,振荡性最为强烈,控制难度也大,因此控制器的设计也必须基于空载来进行,逆变器空载时的传递函数可表示为: 

其中, 

        设计中,滤波电感L=2mH,RL=1Ω,滤波电容C=20uF,功率管开关频率为10KHz,代入式可得: 

阻尼系数 转折频率为

       由自控原理知识,系统在转折频率处出现较大的谐振峰值,且随着负载R得不断增大谐振峰值也增加,在R无穷大空载时,谐振峰值达到最大, 为了保证系统在任何负载条件下都能够稳定,设计时以空载状态下谐振频率点处的稳定性作为设计指标。

二、PID算法及控制器设计

       模拟式PID算法表达式为

      其中, 为控制器的输出信号,为误差信号,是比例系数,是积分时间常数,是微分时间常数,写成传递函数形式: 

以和式代替积分,以增量代替微分,离散化后,为

其中,T为采样周期,令积分系数,微分系数,则有 

增量式PID算法为:

        当逆变器采用PID控制方式时,由于被控对象本身为相位滞后系统,逆变桥在系统中的作用也等效为一阶保持器,具有一个开关周期的滞后效应,再加上数控系统本身的计算延迟,使整个系统滞后效应非常明显,宜采用P调节器或微分作用很小的PD调节器,不宜采用具有滞后作用的积分运算。

        PID控制器参数的整定一般采用试凑法,先采用比例控制器,KP有小到大逐渐改变直到系统变得不稳定,如果此时可以得到满意的系统特性,表明只采用比例调节器即可。如果系统的动态特性和 稳定精度不能满足要求,可采用PI调节器。开始时,把参数TI设大一些,然后反复调整KP和TI。如果系统的动态特性不能满足要求,可以再加入微分调节器。TD由小到大逐次改变,并相应改变KP值,反复试凑,直到得到满意的性能为止。

        在控制过程中,不希望输出值出现极限状态,为安全起见,设置了上限限位和下限限位。

 三、仿真建模及结果分析

1、独立逆变器建模

        独立逆变器不同于并网逆变器,这是一种将直流电转换为特定频率与幅值交流电的电力电子装置,一般作为EPS、UPS以及孤岛微电网系统的雏形装置。直流侧接蓄电池,由大电容稳压,经逆变桥转换为交流电,再经滤波器输出至负载端,由于负载的多样性导致独立逆变器必须具备快速适应负载变化的特性。
       利用matlab建立了基于电压电流内环的单相独立逆变器的仿真模型,如图2所示。

 

         电压外环的输出量Uref*(311V)与输出端电压Uac的误差值送入PID调节器,PID调节器输出信号Iref*,Iref*作为电流内环的给定信号,电流互感器采集的负载电流信号与Iref*的误差值送入PID调节器,产生用于产生PWM脉冲的调制波信号,从而保证独立逆变器输出端电压与负载电流的稳定性。PID调节器的输出可用于限制负载电流幅值以防止系统过流从而起到保护独立逆变器的作用。

        SPWM产生模块如下图:

         IGBT全桥逆变双脉冲输入模块如下图:

 

 2、仿真结果

 独立逆变器输出电压与电流波形

独立逆变器输出电压波形

独立逆变器输出电压反馈处误差波形

四、1KW储能逆变器功能说明

1、储能逆变器两种工作模式

(1)并网模式(并网充电、并网放电);(2)独立逆变模式。

2、运行状态描述

        当逆变器器开机进入初始状态时,控制系统将完成自检,以验证控制和传感器系统的完整性。监控和保护功能正常启动,变流器进入停机状态。停机状态时,储能变流器封锁IGBT脉冲,断开交直流继电器。待机状态时,储能变流器封锁IGBT脉冲,但闭合交直流继电器,变流器处于热备份状态。

        储能逆变器可以在不同模式中转换,需要满足的条件如图7所示。

 3、功能描述

①运行信息,即运行指示灯和实时数据显示功能。实时数据显示包括:“直流电压”,“直流电流”,“电网电压”,“电网电流”,“电网频率”,“机内温度”,“充电功率”,“放电功率”,“有功功率”,“无功功率”,“功率因数”以及当前工作状态,各模块温度等等。

②三种模式功能:

充电模式---包括恒压充电、恒流充电、恒功率充电;

放电模式---包括限压放电、恒流放电、恒功率放电;

控制模式---包括待机、停机、计时充放电、独立逆变功能。

③参数设置功能:

系统参数设置---包括密码设置、时钟、电量校正、恢复出厂;

保护参数设置---直流过压点、直流欠压点、电网过频值、电网欠频值、电网过压值、电网欠压值;

通讯参数设置---设置设备地址、波特率、通讯方式。

④历史信息查询功能:

历史事件---机器最近的100条运行信息(非故障);

故障信息---机器最近的100条故障信息,包括发生时间和故障类型。

有关独立逆变器系统MATLAB-simulink建模及仿真的更多相关文章

  1. ruby-on-rails - 建模收藏夹 - 2

    我希望将Favorite模型添加到我的User和Link模型。业务逻辑用户可以有多个链接(即可以添加多个链接)用户可以收藏多个链接(他们自己的或其他用户的)一个链接可以被多个用户收藏,但只有一个所有者我对如何为这种关联建模以及在模型就位后如何创建用户收藏夹感到困惑?classUser 最佳答案 下面的数据模型怎么样:classUser:destroyhas_many:favorite_links,:through=>:favorites,:source=>:linkendclassLink:destroyhas_many:favor

  2. ruby-on-rails - 独立 ruby​​ 脚本的配置文件 - 2

    我有一个在Linux服务器上运行的ruby​​脚本。它不使用rails或任何东西。它基本上是一个命令行ruby​​脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg

  3. 电脑0x0000001A蓝屏错误怎么U盘重装系统教学 - 2

      电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。  准备工作:  1、U盘一个(尽量使用8G以上的U盘)。  2、一台正常联网可使用的电脑。  3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。  4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。  U盘启动盘制作步骤:  注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注

  4. Matlab imread()读到了什么 (浅显 当复习文档了) - 2

    matlab打开matlab,用最简单的imread方法读取一个图像clcclearimg_h=imread('hua.jpg');返回一个数组(矩阵),往往是a*b*cunit8类型解释一下这个三维数组的意思,行数、数和层数,unit8:指数据类型,无符号八位整形,可理解为0~2^8的数三个层数分别代表RGB三个通道图像rgb最常用的是24-位实现方法,即RGB每个通道有256色阶(2^8)。基于这样的24-位RGB模型的色彩空间可以表现256×256×256≈1670万色当imshow传入了一个二维数组,它将以灰度方式绘制;可以把图像拆分为rgb三层,可以以灰度的方式观察它figure(1

  5. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  6. C51单片机——实现用独立按键控制LED亮灭(调用函数篇) - 2

    说在前面这部分我本来是合为一篇来写的,因为目的是一样的,都是通过独立按键来控制LED闪灭本质上是起到开关的作用,即调用函数和中断函数。但是写一篇太累了,我还是决定分为两篇写,这篇是调用函数篇。在本篇中你主要看到这些东西!!!1.调用函数的方法(主要讲语法和格式)2.独立按键如何控制LED亮灭3.程序中的一些细节(软件消抖等)1.调用函数的方法思路还是比较清晰地,就是通过按下按键来控制LED闪灭,即每按下一次,LED取反一次。重要的是,把按键与LED联系在一起。我打算用K1来作为开关,看了一下开发板原理图,K1连接的是单片机的P31口,当按下K1时,P31是与GND相连的,也就是说,当我按下去时

  7. MIMO-OFDM无线通信技术及MATLAB实现(1)无线信道:传播和衰落 - 2

     MIMO技术的优缺点优点通过下面三个增益来总体概括:阵列增益。阵列增益是指由于接收机通过对接收信号的相干合并而活得的平均SNR的提高。在发射机不知道信道信息的情况下,MIMO系统可以获得的阵列增益与接收天线数成正比复用增益。在采用空间复用方案的MIMO系统中,可以获得复用增益,即信道容量成倍增加。信道容量的增加与min(Nt,Nr)成正比分集增益。在采用空间分集方案的MIMO系统中,可以获得分集增益,即可靠性性能的改善。分集增益用独立衰落支路数来描述,即分集指数。在使用了空时编码的MIMO系统中,由于接收天线或发射天线之间的间距较远,可认为它们各自的大尺度衰落是相互独立的,因此分布式MIMO

  8. kvm虚拟机安装centos7基于ubuntu20.04系统 - 2

    需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc

  9. ruby - 在没有基准或时间的情况下用 Ruby 测量用户时间或系统时间 - 2

    因为我现在正在做一些时间测量,我想知道是否可以在不使用Benchmark类或命令行实用程序time的情况下测量用户时间或系统时间。使用Time类只显示挂钟时间,而不显示系统和用户时间,但是我正在寻找具有相同灵active的解决方案,例如time=TimeUtility.now#somecodeuser,system,real=TimeUtility.now-time原因是我有点不喜欢Benchmark,因为它不能只返回数字(编辑:我错了-它可以。请参阅下面的答案。)。当然,我可以解析输出,但感觉不对。*NIX系统的time实用程序也应该可以解决我的问题,但我想知道是否已经在Ruby中实

  10. ruby - 以毫秒为单位获取当前系统时间 - 2

    在Ruby中,以毫秒为单位获取自纪元(1970)以来的当前系统时间的正确方法是什么?我试过了Time.now.to_i,好像不是我想要的结果。我需要结果显示毫秒并且使用long类型,而不是float或double。 最佳答案 (Time.now.to_f*1000).to_iTime.now.to_f显示包含十进制数字的时间。要获得毫秒数,只需将时间乘以1000。 关于ruby-以毫秒为单位获取当前系统时间,我们在StackOverflow上找到一个类似的问题:

随机推荐