I want to calculate some function using PSO algoritm. but it doesn't work please help me.
Info
This question is closed. Reopen it to edit or answer.
Show older comments
Hello I want to calculate some function using PSO algoritm. In 'myfunc' file -----> When x(optimal size) = 0 , 2 , 5, 7 , 8 , 9 , 10, I want to know answer P.
---- myfunc m-file saved.
function [Tc, P] = myfunc()
Ppv_rated = 250 ;
G = [5.75, 6, 6.365, 6.5, 6.185, 5.75, 5, 4.8, 5.5, 6.18, 6.15, 5.8 ];
Gref = 1000 ;
Kt = -0.485 ;
Tref = 25 ;
Tamb = [25.63, 26.7, 26.610, 25.46, 24.9, 24.01, 23.16, 23.01, 23.54, 23.78, 24.45, 25.3 ];
x = [0,2,5,7,8,9,10 ] ;
Tc = Tamb + (0.0256 * G ) ;
P = ((Ppv_rated * x) .* ((G/Gref).*(1 + Kt*(Tc - Tref )))')'
end
Then, I called myfunc file in PSO code.

BUT it doesn't work. ANOTHER 'M-FILE' S WORKS.
this below figure is myfunc result ----

Please tell me why myfunc doesn't work.
Answers (1)
Alan Stevens
on 10 Sep 2020
Yu are trying to do element by element multiplication of a vector that has 7 elements (x) by a vector that has 12 elements (G/Gref ... etc), in
P = ((Ppv_rated * x) .* ((G/Gref).*(1 + Kt*(Tc - Tref )))')'
6 Comments
MUNKHBOLOR BAIGALI
on 10 Sep 2020
MUNKHBOLOR BAIGALI
on 10 Sep 2020
Alan Stevens
on 10 Sep 2020
Do you mean something like this:
Ppv_rated = 250 ;
G = [5.75, 6, 6.365, 6.5, 6.185, 5.75, 5, 4.8, 5.5, 6.18, 6.15, 5.8 ];
Gref = 1000 ;
Kt = -0.485 ;
Tref = 25 ;
Tamb = [25.63, 26.7, 26.610, 25.46, 24.9, 24.01, 23.16, 23.01, 23.54, 23.78, 24.45, 25.3 ];
x = [0,2,5,7,8,9,10 ] ;
Tc = Tamb + (0.0256 * G ) ;
for i = 1:numel(x)
P(i,:) = ((Ppv_rated * x(i)) * ((G/Gref).*(1 + Kt*(Tc - Tref )))')';
end
which results in P being a 7 by 12 matrix.
MUNKHBOLOR BAIGALI
on 10 Sep 2020
Alan Stevens
on 10 Sep 2020
Search Matlab's File Exchange for PSO. There are several PSO routines there.
MUNKHBOLOR BAIGALI
on 10 Sep 2020
This question is closed.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!