How to evaluate a simulation with saved_state by PSO program
1 回表示 (過去 30 日間)
古いコメントを表示
Good afternoon, I have a trouble of simulating a model of power system. Because my model takes a long time(30sec of simulation, 25 mins real time) to stable, so i need to save the stable state and run it for next time. I am using PSO program to execute simulink, but i can not load the saved_state for my model from PSO program. I've tried to use sim command but still can't load the saved_state. My PSO shown below. Please tell me how to solve my problem. Thank you. tic;
%%PSO Parameters
N = 2; % Number of Swarm size/Population Size
M = 2; % Number of Moves/Interations
Var = 10; % Number of Var
c1 = 1.5; % Self confedence, range: 1.5 to 2
if true
% code
end
c2 = 2; % Swarm confidence, range: 2 to 2.5
w = 0.92; % Inertial factor, range: 0.4 to 1.4
A=1;B=1;C=1;D=1;E=1;F=1;G=1;H=1;I=1;J=1;K=1;L=1;
x=[A B C D E F G H I J K L];
%p=fitness_Frequency(x(1,:));
sim('No_peak_KinMen_simulation1',[0 60]);
error=abs(simout.signals.values);
if error < (60-57.5)
x=[A B C D E F G H I J K L];
else
for i=1:N
for j=1:V
x(i,j)=rand;
v(i,j)=rand;
end
end
for i=1:N
p(i)=fitness_Fuzzy_pid(x(i,:));
y(i,:)=x(i,:);
end
pg = x(N,:);
for i=1:(N-1)
if fitness_Fuzzy_pid(x(i,:))<fitness_Fuzzy_pid(pg)
pg=x(i,:);
end
end
for t=1:M
for i=1:N
v(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:))+c2*rand*(pg-x(i,:));
x(i,:)=x(i,:)+v(i,:);
if (~isempty(find(x(i,:)<=0, 1)) || ~isempty(find(x(i,:)>=10, 1)))
p(i)=1e06;
end
if fitness_Fuzzy_pid(x(i,:))<p(i)
p(i)=fitness_Fuzzy_pid(x(i,:));
y(i,:)=x(i,:);
end
if p(i)<fitness_Fuzzy_pid(pg)
pg=y(i,:);
end
end
Pbest(t)=fitness_Fuzzy_pid(pg);
end
end
plot(Pbest)
toc;
xm = pg'
fv = fitness_Fuzzy_pid(pg)
%FitnessFunction
function F = fitness_Fuzzy_pid(x)
A=x(1);
B=x(2);
C=x(3);
D=x(4);
E=x(5);
F=x(6);
G=x(7);
H=x(8);
I=x(9);
J=x(10);
K=x(11);
L=x(12);
simopt = simset('solver','ode45','DstWorkspace','current','SrcWorkspace','current');
sim('No_peak_KinMen_simulation1',[0 60],simopt);
F = sum(abs(simout.signals.values));
end
0 件のコメント
回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Particle Swarm についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!