【Simulink】基于FCS-MPC的三相并网逆变器电流控制(Matlab Function)

简介: 【Simulink】基于FCS-MPC的三相并网逆变器电流控制(Matlab Function)

最近在学 MPC(模型预测控制) ,看到b站一个视频讲解得挺好的:

MPC专题(一)_基于模型预测的并网变流器控制策略

本篇博客将参考视频给出Simulink仿真过程。


1.模型预测控制

Model Predictive Control (MPC)

概念:通过模型来预测系统在未来几个周期内的全部状态(有限个)来进行优化控制

分类:按照是否需要调制单元可分为连续状态的模型预测控制(Continuous ControlSet-MPC, CCS-MPC)离散状态的有限控制集模型预测控制(Finite Control Set-MPC, FCS-MPC) 两类。

2.有限控制集模型预测控制

Finite Control Set-MPC(FCS-MPC)

FCS-MPC 相比于 CCS-MPC 无需调制器、运算量小,而且无需综合考虑预测时域、控制时域、各时域目标函数权值系数的配合设计等,关键是直接利用了变换器的离散特性和开关状态有限的特性,将目标优化和开关状态决策过程优化成一步,这些显著的优点让其成为电力电子系统模型预测控制研究的热点。

步骤:

  1. 建立离散控制模型(欧拉前向离散化)
  2. 枚举并预测所有必需的变量(开关变量)
  3. 最小化成本函数

3.三相两电平并网逆变器

拓扑结构:直流电压源经三相电压型逆变器和L型滤波器并网。

开关器件:同相桥臂的开关器件不能同时导通。设开关信号1表示上桥臂导通,下桥臂关断,信号0表示上桥臂关断,下桥臂导通。

两电平逆变器具有八个开关状态,包括六个有源电压矢量和两个零电压矢量。

4.三相两电平并网逆变器模型预测电流控制

控制对象是并网电流(电感电流)

对于三相并网逆变器,代价函数为:

g i = ∣ i α ∗ ( k + 1 ) − i α ( k + 1 ) ∣ + ∣ i β ∗ ( k + 1 ) − i β ( k + 1 ) ∣ g_i = |i_\alpha^*(k+1)-i_\alpha(k+1)|+|i_\beta^*(k+1)-i_\beta(k+1)|gi=iα(k+1)iα(k+1)+iβ(k+1)iβ(k+1)

即预测电流和参考电流的误差。

g i g_igi 的下标 i 代表开关状态顺序(1-8),i α ∗ i_\alpha^*iαi β ∗ i_\beta^*iβ 的下标 α , β \alpha,\betaαβ 为三相负载电流的 α , β \alpha,\betaαβ 分量(经过Clarke变换),上标 * 表示参考值。

(本篇博客实际仿真的时候没有考虑延时补偿)

⭐️步骤1:根据系统结构建立合适的系统模型。

⭐️步骤2:采集系统三相电流、电网电压值。

⭐️步骤3:根据系统模型建立离散化预测函数,预测变换器输出电流或并网功率。

⭐️步骤4:建立合适的代价函数,将8种开关状态依次带入代价函数。

⭐️步骤5:通过枚举的方式选择使代价函数最小的矢量所对应的开关状态进行下一控制周期的控制。

5.Simulink仿真

版本:matlab2019b

整体电路图:

仿真细节:

主电路:

坐标变换:

最优状态量生成:

Matlab Function:

function y = fcn(udc, ea, eb, ia, ib, iar, ibr)
m = inf;
L = 0.02;
R = 0.05;
T = 1/1e4;
ua = 0;
ub = 0;
n = 1;
for i = 1: 8
    % 电压矢量
    switch i
        % 0 0 0
         case 1
            ua = 0;
            ub = 0;      
        % 0 0 1
         case 2
            ua = -udc/3;
            ub = -udc/sqrt(3);
        % 0 1 0
         case 3
            ua = -udc/3;
            ub = udc/sqrt(3);
        % 0 1 1
         case 4
            ua = -2*udc/3;
            ub = 0;
        % 1 0 0
        case 5
            ua = 2*udc/3;
            ub = 0;
        % 1 0 1
        case 6
            ua = udc/3;
            ub = -udc/sqrt(3);
        % 1 1 0
        case 7
            ua = udc/3;
            ub = udc/sqrt(3);   
        % 1 1 1
        case 8
            ua =0;
            ub = 0;        
    end
    % 负载电流预测
    ia1 = (1-T*R/L)*ia+(ua-ea)*T/L;
    ib1 = (1-T*R/L)*ib+(ub-eb)*T/L;
    % 代价函数
    g = abs(iar - ia1) + abs(ibr - ib1);
    if g < m
        m = g;
        n = i;
    end
end   
y = n;

仿真结果:

电网侧电流(参考电流为6A):

FFT分析:

THD:4.07%

将电流参考值6A换成6A→3A,依旧能够实现跟踪参考值:

6.资源下载

下载地址

7.后续

有小伙伴问在dq坐标系下该怎么做,其实这些都是类似的

原理图:

代码:

function [S1,S2,S3] = fcn(Vdc, theta, w, Eabc, Iabc, Iabcr, R, L, Ts)
trans =2/3 * [cos(theta) cos(theta-2*pi/3) cos(theta+2*pi/3); -sin(theta) -sin(theta-2*pi/3) -sin(theta+2*pi/3)]; 
states = [0 0 0; 1 0 0; 1 1 0; 0 1 0; 0 1 1; 0 0 1; 1 0 1; 1 1 1]; 
g = zeros(1,8); 
for i=1:8 
    Vabc = states(i,:)'*Vdc - Vdc/2; 
    Vdq = trans*Vabc; 
    Vd = Vdq(1); 
    Vq = Vdq(2); 
    Edq = trans*Eabc; 
    ed = Edq(1); 
    eq = Edq(2); 
    Idq = trans*Iabc; 
    id = Idq(1); 
    iq = Idq(2); 
    Idqr = trans*Iabcr; 
    idr = Idqr(1); 
    iqr = Idqr(2); 
    id1 = (1-R*Ts/L)*id + Ts/L*(Vd-ed+w*L*iq); 
    iq1 = (1-R*Ts/L)*iq + Ts/L*(Vq-eq-w*L*id); 
    g(i) = abs(id1-idr) + abs(iq1-iqr); 
end 
[~,x_opt1] = min(g); 
S1 = logical(states(x_opt1,1)); 
S2 = logical(states(x_opt1,2)); 
S3 = logical(states(x_opt1,3));

参考

[1] DONG Q, WANG B, XIA L, et al. A Virtual Voltage Field-Weakening Scheme of Trajectory Correction for PMSM Model Predictive Control[J]. IEEE transactions on power electronics, 2023,38(3): 3044-3056.

[2] MPC专题(一)_基于模型预测的并网变流器控制策略_哔哩哔哩_bilibili[EB/OL]. [2022-8-11]. https://www.bilibili.com/video/BV1Fv4y1c7Ky/.

相关文章
|
5月前
|
算法
基于仿射区间的分布式三相不对称配电网潮流算法matlab仿真
```markdown # 摘要 本课题聚焦于基于仿射区间的分布式三相配电网潮流算法在MATLAB2022a中的仿真。算法利用仿射运算处理三相不平衡情况及分布式电源注入,旨在提供比区间算法更精确的不确定区域。仿真结果展示了算法优势。核心程序设计考虑了PQ、PV及PI节点,将不同类型的节点转换统一处理,以适应含分布式电源的配电网潮流计算需求。 ``` 这个摘要以Markdown格式呈现,总字符数为233,满足了240字符以内的要求。
|
6月前
|
数据可视化 算法
MATLAB Simulink 交交变流电路性能研究
MATLAB Simulink 交交变流电路性能研究
76 2
|
6月前
|
数据可视化 算法
MATLAB Simulink 单相桥式整流电路性能研究
MATLAB Simulink 单相桥式整流电路性能研究
61 2
|
6月前
|
数据可视化 算法
MATLAB Simulink 单相半波可控整流电路性能研究
MATLAB Simulink 单相半波可控整流电路性能研究
73 2
|
6月前
|
数据可视化 算法
MATLAB Simulink 直流斩波电路性能研究
MATLAB Simulink 直流斩波电路性能研究
80 1
|
6月前
|
数据可视化 算法
MATLAB Simulink 逆变电路性能研究
MATLAB Simulink 逆变电路性能研究
48 1
|
6月前
|
数据可视化 算法
MATLAB Simulink 三相整流电路性能研究
MATLAB Simulink 三相整流电路性能研究
72 1
|
3月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
191 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
3月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
122 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
3月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
88 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码