👨🎓个人主页:研学社的博客
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
PID 控 制 器 因 其 结 构 简 单 、控 制 高 效 等 优 点在 自 动 化 生 产 过 程 中 得 到 了 广 泛 应 用,目 前 在 工业 过 程 控 制 中 占 据 主 导 地 位。PID 的 3 个 控 制 参数(比 例 系 数 Kp、积 分 系 数 Ki、微 分 系 数 Kd)决 定了 控 制 系 统 的 动 态 性 能 及 稳 态 特 性。PID 控 制 器
📚2 运行结果
部分代码:
global time
den1=[1 6 5 0];
num1=[1];
sysrl=tf(num1,den1);
%____________________________________________________________________
%Initialising the genetic algorithm
populationSize=30;
variableBounds=[-100 100;-100 100;-100 100];
evalFN='PID_objfun_MSE';
%Change this to relevant object function
evalOps=[];
options=[1e-6 1];
initPop=initializeoga(populationSize,variableBounds,evalFN,evalOps,options);
%____________________________________________________________________
%Setting the parameters for the genetic algorithm
bounds=[-100 100;-100 100;-100 100];
evalFN='PID_objfun_MSE';%change this to relevant object function
evalOps=[];
startPop=initPop;
opts=[1e-6 1 0];
termFN='maxGenTerm';
termOps=100;
selectFN='roulette';
selectOps=0.08;
xOverFNs='arithXover';
xOverOps=4;
mutFNs='unifMutation';
mutOps=8;
%____________________________________________________________________
%Iterating the genetic algorithm
[x,endPop,bPop,traceInfo]=ga(bounds,evalFN,evalOps,startPop,termFN,...
[50],[],[],[],[],mutFNs,mutOps);
%[x,endPop,bPop,traceInfo]=ga(bounds,'GAeval',evalOps,startPop,'optMaxGenTerm',...
% [maxGen 0.0 1e-6],[],[],[],[],mutFNs,mutOps);
%____________________________________________________________________
%Plotting Genetic algorithm controller
den1=[1 6 5 0];
num1=[1];
sysrl=tf(num1,den1);
%Creating the optimal PID controller from GA results
ga_pid=tf([x(1) x(2) x(3)],[1 0]);
ga_sys=feedback(series(ga_pid,sysrl),1);
figure(1)
hold on;
step(ga_sys,time,'g');%Green-genetic algorithm
%Plotting best population progress
figure(2)
subplot(3,1,1),plot(bPop(:,1),bPop(:,3)),...
title('Kp Value'),, ylabel('Gain');
subplot(3,1,2),plot(bPop(:,1),bPop(:,4)),...
title('Ki Value'),, ylabel('Gain');
subplot(3,1,3),plot(bPop(:,1),bPop(:,2)),...
title('Kd Value'),xlabel('Generations'), ylabel('Gain');
🎉3 参考文献
部分理论来源于网络,如有侵权请联系删除。
[1]符占元,专祥涛.基于神经网络和遗传算法的PID参数自整定算法[J].武汉大学学报(工学版),2023,56(03):379-386.DOI:10.14188/j.1671-8844.2023-03-015.
[2]杨琛,蒋鑫,白波,宋秋红.遗传算法优化PID控制器参数的路径跟踪控制[J].制造业自动化,2022,44(05):78-81.