实验笔记之——基于卡尔曼滤波的MPPT

本博客介绍一下本人最近实现的基于卡尔曼滤波的maximum power point tracking(最大功率点跟踪)。simulink模型如下:

卡尔曼滤波部分的代码

function D = KalmanFilter(V, I, Vout)

% PARAMETERS DEFINATION
A = 1; %Matrix A
step = 5; %step size
B = step; %Matrix B
C = 1; %Matrix C
Vmpp = 273.5; %Maximum power point voltage (in volts)
Impp = 368.28; %Maximum power point current (in Amp)
Q = 50; 
R = 50;

% KF PARAMETERS INTIALISATION
%STEP-I
persistent v_k
if isempty(v_k)
    v_k = Vmpp;
end
persistent power_k
if isempty(power_k)
    power_k = Vmpp*Impp;
end
persistent v_k_prev
if isempty(v_k_prev)
    v_k_prev = 0;
end
persistent power_k_prev
if isempty(power_k_prev)
    power_k_prev = 0;
end
persistent h_k
if isempty(h_k)
    h_k = 1;
end

pv_slope = (power_k - power_k_prev)/(v_k - v_k_prev);

%KF IMPLEMENTATION
% STAGE - PREDICTION
%STEP-II: Project the state ahead
v_neg = v_k + step*pv_slope;

%STEP-III: Project the error covariance ahead
h_neg = h_k + Q;

% STAGE - UPDATION
% STEP-IV: Compute the kalman gain
K_ = (h_neg)/(h_neg + R);

% STEP-V: Update estimate with measurement Vout
v = v_neg + K_*(V - v_neg);

% STEP-VI: Update the error covariance
h = (1-K_)*h_neg;

% STEP-VII: Saving for next stage
h_k = h;
v_k_prev = v_k;
power_k_prev = power_k;
v_k = V;
power_k = V*I;

% OUTPUT DUTY CYCLE
D = 1 - (v/Vout);
end

实验效果如下:

实验一:恒定照度与温度

pv曲线

实验二:变化的照度与温度

代码下载链接:卡尔曼滤波MPPT代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值