最近在做优化小案例,学了一点点,一个遗传算法优化pid的小列子,上传给大家参考。这个有许多需要改进的地方,可自行修改。
下面为遗传算法优化代码,相关模型和代码已放在文件下载地址
欢迎下载讨论。
`% 测试函数图像
% 改进的自适应遗传算法:
% 参考文献:[7] M. Srinivas and L. M. Patnaik, “Adaptive probabilities of crossover and mutation in genetic algorithms,”
% in IEEE Transactions on Systems, Man, and Cybernetics, vol. 24, no. 4, pp. 656-667, April 1994.
% doi: 10.1109/21.286385
clc;
clear all;
mode = ‘PID’;
%%
%%
clc;
clearvars -except mode;
r = 0.2;
b = 3;
NP=30;
% Pc=0.65; % 将Pc,Pm参数改进为自适应参数
% Pm=0.20;
G=100; % 记得改
D=3; % 变量个数
k1 = 1;
k3 = 1;
k2 = 0.5;
k4 = 0.5;
KP_min=-500;
KP_max=500;
KI_min=-500;
KI_max=500;
KD_min=-500;
KD_max=500;
optimization_trace = []; % 三维数组, 行,列,叶
for count_1=1:NP % 产生初始解
temp1 = KP_min+rand()(KP_max-KP_min);
temp2 = KI_min+rand()(KI_max-KI_min);
temp3 = KD_min+rand()*(KD_max-KD_min);
x(count_1,:) = [temp1,temp2,temp3];
end
% x=[3,8,6;4,5,7;2,1,4;5,2,1];
X_init=x;
save_pic_cnt = 1;
A = figure(3);
%%<