【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/.

相关文章
|
29天前
|
算法
基于仿射区间的分布式三相不对称配电网潮流算法matlab仿真
```markdown # 摘要 本课题聚焦于基于仿射区间的分布式三相配电网潮流算法在MATLAB2022a中的仿真。算法利用仿射运算处理三相不平衡情况及分布式电源注入,旨在提供比区间算法更精确的不确定区域。仿真结果展示了算法优势。核心程序设计考虑了PQ、PV及PI节点,将不同类型的节点转换统一处理,以适应含分布式电源的配电网潮流计算需求。 ``` 这个摘要以Markdown格式呈现,总字符数为233,满足了240字符以内的要求。
|
2月前
|
数据可视化 算法
MATLAB Simulink 交交变流电路性能研究
MATLAB Simulink 交交变流电路性能研究
43 2
|
2月前
|
数据可视化 算法
MATLAB Simulink 单相桥式整流电路性能研究
MATLAB Simulink 单相桥式整流电路性能研究
36 2
|
2月前
|
数据可视化 算法
MATLAB Simulink 单相半波可控整流电路性能研究
MATLAB Simulink 单相半波可控整流电路性能研究
26 2
|
2月前
|
数据可视化 算法
MATLAB Simulink 直流斩波电路性能研究
MATLAB Simulink 直流斩波电路性能研究
42 1
|
2月前
|
数据可视化 算法
MATLAB Simulink 逆变电路性能研究
MATLAB Simulink 逆变电路性能研究
28 1
|
2月前
|
数据可视化 算法
MATLAB Simulink 三相整流电路性能研究
MATLAB Simulink 三相整流电路性能研究
35 1
|
2月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
2月前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)

热门文章

最新文章