找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2422|回复: 1
打印 上一主题 下一主题
收起左侧

matlab太阳能光伏并网逆变仿真

[复制链接]
跳转到指定楼层
楼主
matlab(2016a版本)-太阳能光伏并网逆变仿真

单片机源程序如下:
  1. function [sys,x0,str,ts] = sfun_PV_array_MPPT(t,x,u,flag)
  2. switch flag,
  3.   case 0,
  4.     [sys,x0,str,ts] = mdlInitializeSizes;
  5.   case 2,                                                
  6.     sys = mdlUpdate(t,x,u);
  7.   case 3,                                                
  8.     sys = mdlOutputs(t,x,u);
  9.   case {1,4,9},                                                
  10.     sys =[];
  11.   otherwise
  12.     error(['unhandled flag = ',num2str(flag)]);
  13. end

  14. function [sys,x0,str,ts] = mdlInitializeSizes
  15. sizes = simsizes;
  16. sizes.NumContStates  = 0;
  17. sizes.NumDiscStates  = 3;
  18. sizes.NumOutputs     = 1;
  19. sizes.NumInputs      = 2;
  20. sizes.DirFeedthrough = 1;
  21. sizes.NumSampleTimes = 1;
  22. sys = simsizes(sizes);
  23. x0  =[0,0,0];
  24. str =[];
  25. ts  =[1e-6 0];

  26. function sys = mdlUpdate(t,x,u)
  27. k1=0.01;
  28. dV=u(1)-x(1);
  29. dI=u(2)-x(2);
  30. if dV==0
  31.     if dI==0
  32.     Vref = x(3);
  33.     elseif dI > 0
  34.     Vref = x(3)+k1;            
  35.     elseif  dI < 0
  36.     Vref = x(3)-k1;  
  37.     end
  38. else
  39.     if  (dI/dV) ==(-u(2)/u(1))
  40.         Vref = x(3);   
  41.     elseif (dI/dV) >(-u(2)/u(1))
  42.         Vref = x(3)+k1;   
  43.     elseif  (dI/dV) <(-u(2)/u(1))
  44.         Vref = x(3)-k1;
  45.     end
  46. end
  47. x(1)=u(1);
  48. x(2)=u(2);
  49. x(3)=Vref;
  50. sys=[x(1),x(2),x(3)];

  51. function sys = mdlOutputs(t,x,u)

  52. sys=x(3);
复制代码

所有资料51hei提供下载:
太阳能光伏并网逆变仿真.rar (14.22 KB, 下载次数: 57)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:371061 发表于 2020-4-9 23:09 来自手机 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表