function [sys,x0,str,ts] =mppt(t,x,u,flag)
global Dout;
global Ik;
global Vk;
global Pk;
switch flag,
case 0,
[sys,x0,str,ts]=mdlInitializeSizes;
case {1,9},
sys=[];
case 2,
sys=mdlUpdate(t,x,u);
case 3,
sys=mdlOutputs(t,x,u);
case 4,
sys=mdlGetTimeOfNextVarHit(t,x,u);
otherwise
error(['Unhandled flag = ',num2str(flag)]);
end
function [sys,x0,str,ts]=mdlInitializeSizes()
sizes = simsizes;
sizes.NumContStates = 0;
sizes.NumDiscStates = 4;
sizes.NumOutputs = 1;
sizes.NumInputs = 2;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
x0 = [0;0;30;0];
str = [];
ts = [-1,0];
function sys=mdlUpdate(t,x,u)
sys =[x(1);x(2);x(3);x(4)];
function sys=mdlOutputs(t,x,u)
Ik=x(1);
Vk=x(2);
Dout=x(3);
Pk=x(4);
I=u(1);
V=u(2);
P=u(3);
d=5;
dp=P-Pk;
dv=V-Vk;
if dv==0|dp==0
dd=0.01;
end
if dv>0
if dp>0
dd=-d;
elseif dp<0
dd=d;
end
elseif dv<0
if dp>0
dd=d;
elseif dp<0
dd=-d;
end
end
Dout=Dout+dd;
if Dout<10
Dout=10;
end
x(1)=I;
x(2)=V;
x(3)=Dout;
x(4)=P;
%fid=fopen('dout.txt','a');
%fprintf(fid,'%d \n',Dout);
%fclose(fid);
sys =Dout;
function sys=mdlGetTimeOfNextVarHit(t,x,u)
sampleTime = 1;
% 将计算得到的下一采样时刻赋给sys
% 切勿改动
sys = t + sampleTime;
mppt.rar_MPPT爬山法编程_光伏 DCDC_光伏最大功率_爬山 MPPT_爬山法MPPT
版权申诉
102 浏览量
2022-09-23
00:11:11
上传
评论 1
收藏 768B RAR 举报
weixin_42653672
- 粉丝: 93
- 资源: 1万+
最新资源
- 基于pytorch+Unet进行MRI肝脏图像分割源码+数据集+模型.zip
- 在Android Studio中开发一个Android App项目步骤
- 基于yolov8实现进行物体跟踪源码.zip
- Java多线程学习Java多线程学习Java多线程学习Java多线程学习.txt
- 算法数据结构-动态规划算法(Dynamic Programming)超详细总结加应用案例讲解.txt
- 2024最强秋招八股文(精简、纯手打)2024最强秋招八股文(精简、纯手打).txt
- 基于tensorflow多特征融合的微表情识别python源码.zip
- 基于yolov8实现人脸检测的python源码+运行说明.zip
- Micron Memory DDR3 SDRAM 全系列AD集成库(原理图库+PCB封装库).IntLib
- 基于tensorflow多特征融合的微表情识别python源码+详细使用说明.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0