標(biāo)題: matlab太陽(yáng)能光伏并網(wǎng)逆變仿真 [打印本頁(yè)]

作者: wee770    時(shí)間: 2019-10-28 11:46
標(biāo)題: matlab太陽(yáng)能光伏并網(wǎng)逆變仿真
matlab(2016a版本)-太陽(yáng)能光伏并網(wǎng)逆變仿真

單片機(jī)源程序如下:
  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);
復(fù)制代碼

所有資料51hei提供下載:
太陽(yáng)能光伏并網(wǎng)逆變仿真.rar (14.22 KB, 下載次數(shù): 62)



作者: 時(shí)光之誠(chéng)    時(shí)間: 2020-4-9 23:09
謝謝樓主分享




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1