👨🎓个人主页
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
传 统 的 PID 控 制 器 参 数 整 定 方 法 包 括 经 验 凑试 法、对 数 频 率 特 性 法、临 界 比 例 度 法。经 验凑 试 法 是 工 程 人 员 在 长 期 实 践 中 总 结 的 一 套 方法,整 定 过 程 简 单 但 是 需 要 系 统 的 理 论 知 识 和 丰富 的 整 定 经 验;对 数 频 率 特 性 法 是 利 用 系 统 的 对数 频 率 特 性 来 整 定 参 数,整 定 过 程 依 赖 被 控 对 象精 确 的 数 学 模 型;临 界 比 例 度 法 整 定 过 程 简 单,但对 于 有 干 扰 的 控 制 系 统,难 以 得 到 良 好 的 控 制 器参 数。
PID 控 制 器 因 其 结 构 简 单 、控 制 高 效 等 优 点在 自 动 化 生 产 过 程 中 得 到 了 广 泛 应 用,目 前 在 工业 过 程 控 制 中 占 据 主 导 地 位。PID 的 3 个 控 制 参数(比 例 系 数 Kp、积 分 系 数 Ki、微 分 系 数 Kd)决 定了 控 制 系 统 的 动 态 性 能 及 稳 态 特 性。PID 控 制 器
的 参 数 整 定 是 一 个 复 杂 的 过 程,需 要 工 程 人 员 具 备 系 统 的 专 业 理 论 知 识 和 丰 富 的 整 定 经 验。在 非线 性 系 统 中,用 传 统 的 方 法 整 定 得 到 的 参 数 往 往不 能 获 得 良 好 的 动 态 性 能。
遗 传 算 法 通 过 模 拟 生 物 遗 传 学 中 的“优 胜 劣 汰”规 则,在 搜 索 范 围 内 寻 找 最 优 个 体。本 文将 PID 控制器参数序列作为初始化种群,建立基于多 个 性 能 指 标 的 适 应 度 函 数 ,通 过 3 个 遗 传 操作产 生 子 代,新 产 生 的 子 代 与 最 优 父 代 融 合形 成 下 一 代 种 群。遗 传 算 法 通 过 检 查 停 止 条 件 决定 是 否 终 止 迭 代,最 终 输 出 最 佳 个 体,使 得 基 于 时
域的目标函数值最优。
一、引言
PID(Proportion, Integral, Differential)控制器,即比例、积分、微分控制器,在工业过程控制中应用广泛。其结构简单、易于实现、适用范围广、鲁棒性好,但在实际的控制过程中,由于系统往往是非线性的、时变的,难以建立精确的数学模型,因此PID控制器的参数整定成为了一个关键问题。传统的PID控制器参数整定方法,如经验凑试法、对数频率特性法、临界比例度法等,存在各自的局限性。而遗传算法作为一种新型的优化算法,具有并行计算、全局收敛等特点,为PID控制器的参数整定提供了新的思路。
二、遗传算法简介
遗传算法(Genetic Algorithm, GA)是建立在自然选择原理和自然遗传机制上的迭代式自适应概率性搜索方法。它能够模拟自然界中生物进化的发展规律,对特定目标实现自动优化。遗传算法通过模拟生物遗传学中的“优胜劣汰”规则,在搜索范围内寻找最优个体,从而得到最优解。
三、基于遗传算法的PID控制器参数整定
- 问题定义:将PID控制器的三个参数(比例系数Kp、积分系数Ki、微分系数Kd)作为待优化的变量,通过遗传算法寻找使控制系统性能最优的参数组合。
- 适应度函数设计:根据控制系统的性能指标(如超调量、稳态误差、调节时间等),设计适应度函数。适应度函数值越大,表示控制系统性能越好。
- 遗传操作:包括选择、交叉、变异等遗传操作,用于产生新的个体(即新的PID参数组合)。
- 选择操作:根据适应度函数值选择优秀的个体作为父代。
- 交叉操作:将父代的基因进行交叉组合,产生子代。
- 变异操作:对子代的基因进行随机变异,以增加种群的多样性。
- 算法流程:
- 初始化种群:随机生成一组PID参数作为初始种群。
- 评估适应度:计算每个个体的适应度函数值。
- 遗传操作:根据适应度函数值进行选择、交叉、变异等操作,产生新的种群。
- 终止条件:达到预设的迭代次数或适应度函数值达到预设的阈值。
- 输出最优解:输出最优的PID参数组合。
四、实验结果与分析
通过实验验证遗传算法在PID控制器参数整定中的有效性。可以设计一系列的实验,对比遗传算法与传统PID参数整定方法的性能。实验结果应显示遗传算法在寻找最优PID参数组合方面的优势,如更小的超调量、更快的调节时间等。
五、结论与展望
总结遗传算法在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.