基于遗传算法的PID控制器调谐研究(Matlab代码实现)

文章介绍了PID控制器在自动化控制中的重要性以及传统参数整定方法的局限性。提出使用遗传算法进行PID参数优化,通过建立适应度函数和遗传操作寻找最佳控制器参数,以实现控制系统性能的提升。实验结果展示了遗传算法的优化过程和效果。
摘要由CSDN通过智能技术生成

👨‍🎓个人主页:研学社的博客   

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

传 统 的 PID 控 制 器 参 数 整 定 方 法 包 括 经 验 凑试 法、对 数 频 率 特 性 法、临 界 比 例 度 法 。经 验凑 试 法 是 工 程 人 员 在 长 期 实 践 中 总 结 的 一 套 方法,整 定 过 程 简 单 但 是 需 要 系 统 的 理 论 知 识 和 丰富 的 整 定 经 验;对 数 频 率 特 性 法 是 利 用 系 统 的 对数 频 率 特 性 来 整 定 参 数,整 定 过 程 依 赖 被 控 对 象精 确 的 数 学 模 型;临 界 比 例 度 法 整 定 过 程 简 单,但对 于 有 干 扰 的 控 制 系 统,难 以 得 到 良 好 的 控 制 器参 数。

PID 控 制 器 因 其 结 构 简 单 、控 制 高 效 等 优 点在 自 动 化 生 产 过 程 中 得 到 了 广 泛 应 用,目 前 在 工业 过 程 控 制 中 占 据 主 导 地 位。PID 3 个 控 制 参数(比 例 系 数 Kp、积 分 系 数 Ki、微 分 系 数 Kd)决 定了 控 制 系 统 的 动 态 性 能 及 稳 态 特 性。PID 控 制 器

的 参 数 整 定 是 一 个 复 杂 的 过 程,需 要 工 程 人 员 具 备 系 统 的 专 业 理 论 知 识 和 丰 富 的 整 定 经 验。在 非线 性 系 统 中,用 传 统 的 方 法 整 定 得 到 的 参 数 往 往不 能 获 得 良 好 的 动 态 性 能。

遗 传 算 法 通 过 模 拟 生 物 遗 传 学 中 的“优 胜 劣 汰”规 则,在 搜 索 范 围 内 寻 找 最 优 个 体 。本 文将 PID 控制器参数序列作为初始化种群,建立基于多 个 性 能 指 标 的 适 应 度 函 数 ,通 过 3 个 遗 传 操作 产 生 子 代,新 产 生 的 子 代 与 最 优 父 代 融 合形 成 下 一 代 种 群。遗 传 算 法 通 过 检 查 停 止 条 件 决定 是 否 终 止 迭 代,最 终 输 出 最 佳 个 体,使 得 基 于 时
域的目标函数值最优。

📚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.

🌈4 Matlab代码实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荔枝科研社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值