How to implement structured data from workspace to matlab function block?

9 visualizaciones (últimos 30 días)
Hello guys, i have written a PV model using Particle Swarm Optimization (PSO) in matlab script, and want to implement it in simulink, the model uses 4 structures to manipulate data, first initiate the 4 structures (each structure contains some scalars and even matrixe and/or arrays), i my own script i initiate them before looping through them until the model converges to a solution (which is the output current). I used initfct callback to initiate all the structured data. which i find in the base workspace and not in the model workspace. which gives an error about structures not defined. any thoughts ?
example of a structure i initiate:
T=struct2array(load('Data1000.mat'));
D.A(1).G=1000;
D.A(1).V=T(:,1);
D.A(1).Ie=T(:,2);
[D.A(1).Pmpp,tmp.mppnindex]=max(T(:,1).*T(:,2));
D.A(1).Vmpp=T(tmp.mppnindex,1);
D.A(1).Impp=T(tmp.mppnindex,2);
D.A(1).Voc=max(T(:,1));
D.A(1).Isc=max(T(:,2));
another more complex
for counter=1:PSO.npop
PSO.pop(counter,1).Rs=zeros(3,1);
PSO.pop(counter,1).Rs(1)=rand*PSO.RsGbest;
PSO.pop(counter,1).Rs(2)=PSO.w*PSO.pop(counter,1).Rs(2)+PSO.C1*rand*(PSO.pop(counter,1).Rs(3)-PSO.pop(counter,1).Rs(1))+PSO.C2*rand*(PSO.RsGbest-PSO.pop(counter,1).Rs(1));
PSO.pop(counter,1).Rp=zeros(3,1);
PSO.pop(counter,1).Rp(1)=rand*PSO.RpGbest;
PSO.pop(counter,1).Rp(2)=PSO.w*PSO.pop(counter,1).Rp(2)+PSO.C1*rand*(PSO.pop(counter,1).Rp(3)-PSO.pop(counter,1).Rp(1))+PSO.C2*rand*(PSO.RpGbest-PSO.pop(counter,1).Rp(1));
PSO.pop(counter,1).A=zeros(3,1);
PSO.pop(counter,1).A(1)=rand*PSO.AGbest;
PSO.pop(counter,1).A(2)=PSO.w*PSO.pop(counter,1).A(2)+PSO.C1*rand*(PSO.pop(counter,1).A(3)-PSO.pop(counter,1).A(1))+PSO.C2*rand*(PSO.AGbest-PSO.pop(counter,1).A(1));
PSO.pop(counter,1).f=zeros(2,1);
PSO.pop(counter,1).f(3)=1;
end
Thank you

Respuestas (0)

Categorías

Más información sobre Modeling en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by