- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于粒子群算法的PID控制器优化设计
基于粒子群算法的PID控制器优化设计
1、案例背景PID控制器的性能取决于Kp、Ki、Kd这3个参数是否合理,因此,优化PID控制器参数具有重要意义。目前,PID控制器参数主要是人工调整,这种方法不仅费时,而且不能保证获得最佳的性能。PSO已经广泛应用于函数优化、神经网络训练、模式分类、模糊系统控制以及其它应用领域,本案例将使用PSO进行PID控制器参数的优化设计。2、案例目录:第14章??基于粒子群算法的PID控制器优化设计14.1案例背景??14.1.1 粒子群算法原理??14.1.2 PID控制器优化设计14.2 模型建立??14.2.1 PID控制器模型??14.2.2 算法流程? ? 14.2.2.1 优化过程? ? 14.2.2.2 粒子群算法实现14.3 编程实现??14.3.1?Simulink部分的程序实现??14.3.2 PSO部分的程序实现??14.3.3 结果分析14.4 案例扩展14.5 参考文献3、案例实例及结果:PID 控制器的系统结构图如图14-1所示。?选取的被控对象为以下不稳定系统:?运行代码,得到优化过程如图14-4和图14-5所示,前者为PID控制器3个参数Kp、Ki、Kd的变化曲线,后者为性能指标ITAE的变化曲线。得到的最优控制器参数及性能指标为Kp= 33.6469,Ki= 0.1662,Kd= 38.8063,ITAE= 1.0580,将以上参数代回如图14-2所示的模型,得到的单位阶跃响应曲线如图14-6所示。???本案例使用粒子群算法优化PID控制器参数,事实上,其它的优化算法,比如遗传算法、模拟退火算法等,也可以用于PID控制器的参数优化,这里将使用遗传算法(Genetic Algorithm, GA)对PID控制器进行参数优化。得到的进化过程曲线、最优参数对应的单位阶跃响应曲线分别如图14-7、图14-8所示。??4、主程序:?
%% 清空环境
clear
clc
%% 参数设置
w = 0.6; % 惯性因子
c1 = 2; % 加速常数
c2 = 2; % 加速常数
Dim = 3; % 维数
SwarmSize = 100; % 粒子群规模
ObjFun = @PSO_PID; % 待优化函数句柄
MaxIter = 100; % 最大迭代次数
MinFit = 0.1; % 最小适应值
Vmax = 1;
Vmin = -1;
Ub = [300 300 300];
Lb = [0 0 0];
%% 粒子群初始化
Range = ones(SwarmSize,1)*(Ub-Lb);
Swarm = rand(SwarmSize,Dim).*Range + ones(SwarmSize,1)*Lb % 初始化粒子群
VStep = rand(SwarmSize,Dim)*(Vmax-Vmin) + Vmin % 初始化速度
fSwarm = zeros(SwarmSize,1);
for i=1:SwarmSize
fSwarm(i,:) = feval(ObjFun,Swarm(i,:)); % 粒子群的适应值
end
%% 个体极值和群体极值
[bestf bestindex]=min(fSwarm);
zbest=Swarm(bestindex,:); % 全局最佳
gbest=Swarm; % 个体最佳
fgbest=fSwarm; % 个体最佳适应值
fzbest=bestf; % 全局最佳适应值
%% 迭代寻优
iter = 0;
y_fitness = zeros(1,MaxIter); % 预先产生4个空矩阵
K_p = zeros(1,MaxIter);
K_i = zeros(1,MaxIter);
K_d = zeros(1,MaxIter);
while( (iter MaxIter) (fzbest MinFit) )
for j=1:SwarmSize
% 速度更新
VStep(j,:) = w*VStep(j,:) + c1*rand*(gbest(j,:) - Swarm(j,:)) + c2*rand*(zbest - Swarm(j,:));
if VStep(j,:)Vma
您可能关注的文档
- 基于Boost_Buck电路的锂离子电池组均衡充电方法.docx
- 基于B╱S模式选课系统.doc
- 基于DSP的SVPWM实现方法的研究.doc
- 基于DSP数据采集的设计.doc
- 基于BP神经网络语音识别方法研究.doc
- 基于EDA的交通灯控制器课程设计.doc
- 基于DSP的数据采集系统——理工类毕业设计.doc
- 基于Excel的企业财务分析信息化实现.docx
- 基于FPGA的嵌入式系统设计_外文翻译.doc
- 基于FPGA的函数信号发生器的设计初稿.doc
- 《简爱》读后感与人生启迪范文1.docx
- 人教版英语七年级下册第二学期期中测试卷(含答案+听力原文).pdf
- 上海餐饮行业协会分析.pdf
- 职场能力高效能人士的七个习惯培训课件.pptx
- 交警队委托办理全球研讨会.docx
- 《谈话实录》警示材料党性分析.docx
- (2024年)小学党建工作计划3篇.docx
- 小说阅读综合测试(教师版)-2024年高考语文二轮复习讲练测(新教材新高考).docx
- 小说阅读综合测试(学生版)-2024年高考语文二轮复习讲练测(新教材新高考).docx
- 专题05 小说内容理解和分析客观题(练习) (学生版)-2024年高考语文二轮复习讲练测(新教材新高考).docx
文档评论(0)