基于遗传算法的PID整定原理及matlab仿真程序
更新时间:2023-03-15 16:21:01 阅读量: 教育文库 文档下载
- 遗传算法整定pid参数推荐度:
- 相关推荐
主程序:chap5_2.m
%GA(Generic Algorithm) Program to optimize PID Parameters clear all; close all;
global rin yout timef
Size=30; CodeL=3;
MinX(1)=zeros(1); MaxX(1)=20*ones(1); MinX(2)=zeros(1); MaxX(2)=1.0*ones(1); MinX(3)=zeros(1); MaxX(3)=1.0*ones(1);
Kpid(:,1)=MinX(1)+(MaxX(1)-MinX(1))*rand(Size,1); Kpid(:,2)=MinX(2)+(MaxX(2)-MinX(2))*rand(Size,1); Kpid(:,3)=MinX(3)+(MaxX(3)-MinX(3))*rand(Size,1);
G=100; BsJ=0;
%*************** Start Running *************** for kg=1:1:G
time(kg)=kg;
%****** Step 1 : Evaluate BestJ ****** for i=1:1:Size Kpidi=Kpid(i,:);
[Kpidi,BsJ]=chap5_2f(Kpidi,BsJ);
BsJi(i)=BsJ; end
[OderJi,IndexJi]=sort(BsJi); BestJ(kg)=OderJi(1); BJ=BestJ(kg);
Ji=BsJi+1e-10; %Avoiding deviding zero
fi=1./Ji;
% Cm=max(Ji);
% fi=Cm-Ji;
[Oderfi,Indexfi]=sort(fi); %Arranging fi small to bigger Bestfi=Oderfi(Size); %Let Bestfi=max(fi)
BestS=Kpid(Indexfi(Size),:); %Let BestS=E(m), m is the Indexfi belong to max(fi)
kg BJ BestS
%****** Step 2 : Select and Reproduct Operation****** fi_sum=sum(fi);
fi_Size=(Oderfi/fi_sum)*Size;
fi_S=floor(fi_Size); % Selecting Bigger fi value r=Size-sum(fi_S);
Rest=fi_Size-fi_S;
[RestValue,Index]=sort(Rest);
for i=Size:-1:Size-r+1
fi_S(Index(i))=fi_S(Index(i))+1; % Adding rest to equal Size end
k=1;
for i=Size:-1:1 % Select the Sizeth and Reproduce firstly for j=1:1:fi_S(i)
TempE(k,:)=Kpid(Indexfi(i),:); % Select and Reproduce
k=k+1; % k is used to reproduce end end
%************ Step 3 : Crossover Operation ************
Pc=0.90;
for i=1:2:(Size-1) temp=rand;
if Pc>temp %Crossover Condition alfa=rand;
TempE(i,:)=alfa*Kpid(i+1,:)+(1-alfa)*Kpid(i,:); TempE(i+1,:)=alfa*Kpid(i,:)+(1-alfa)*Kpid(i+1,:); end end
TempE(Size,:)=BestS; Kpid=TempE;
%************ Step 4: Mutation Operation ************** Pm=0.10-[1:1:Size]*(0.01)/Size; %Bigger fi,smaller Pm Pm_rand=rand(Size,CodeL); Mean=(MaxX + MinX)/2; Dif=(MaxX-MinX);
for i=1:1:Size
for j=1:1:CodeL
if Pm(i)>Pm_rand(i,j) %Mutation Condition TempE(i,j)=Mean(j)+Dif(j)*(rand-0.5); end end end
%Guarantee TempE(Size,:) belong to the best individual TempE(Size,:)=BestS; Kpid=TempE; end Bestfi BestS
Best_J=BestJ(G) figure(1);
plot(time,BestJ);
xlabel(’Times’);ylabel(’Best J’); figure(2);
plot(timef,rin,’r’,timef,yout,’b’); xlabel(’Time(s)’);ylabel(’rin,yout’);
子程序:chap5_2f.m
function [Kpidi,BsJ]=pid_gaf(Kpidi,BsJ) global rin yout timef
ts=0.001;
sys=tf(400,[1,50,0]); dsys=c2d(sys,ts,’z’);
[num,den]=tfdata(dsys,’v’);
rin=1.0;
u_1=0.0;u_2=0.0;
y_1=0.0;y_2=0.0; x=[0,0,0]’; B=0;
error_1=0; tu=1; s=0; P=100;
for k=1:1:P
timef(k)=k*ts; r(k)=rin;
u(k)=Kpidi(1)*x(1)+Kpidi(2)*x(2)+Kpidi(3)*x(3);
if u(k)>=10 u(k)=10; end
if u(k)<=-10 u(k)=-10; end
yout(k)=-den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2; error(k)=r(k)-yout(k);
%------------ Return of PID parameters ------------- u_2=u_1;u_1=u(k); y_2=y_1;y_1=yout(k);
x(1)=error(k); % Calculating P x(2)=(error(k)-error_1)/ts; % Calculating D x(3)=x(3)+error(k)*ts; % Calculating I
error_2=error_1; error_1=error(k); if s==0
if yout(k)>0.95&yout(k)<1.05 tu=timef(k); s=1; end end end
for i=1:1:P
Ji(i)=0.999*abs(error(i))+0.01*u(i)^2*0.1; B=B+Ji(i); if i>1
erry(i)=yout(i)-yout(i-1); if erry(i)<0
B=B+100*abs(erry(i)); end end end
BsJ=B+0.2*tu*10;
正在阅读:
基于遗传算法的PID整定原理及matlab仿真程序03-15
2017年上半年辽宁省安全员B证考试题01-11
抽水试验原始资料以及数据计算10-20
2010年浙江省部分中考数学压轴题 - 含答案 - 图文03-22
法律知识押权继受罗马法以前的不动产担保权与普通法时期的抵05-24
死水闻一多原文02-15
华师版九年级上第二次月考数学试题及答案06-21
助就在身边作文800字07-16
35m箱梁计算书03-27
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 遗传
- 算法
- 仿真
- 原理
- 基于
- 程序
- matlab
- PID
- 2016江西教师招聘考试教育心理学第三章填空练习题
- 护理专科质量指标
- 测试课堂练习题2
- 2018年天津高考理第14题(分段函数问题)-2018年高考数学经典题分析及针对训练Word版含解析
- 节能减排知识竞赛题节电篇100题
- 工程流体力学习题及答案(李良)
- 中西方宗教文化比较 - 以雕塑作品为例
- 民勤县生态农业的发展
- 2017年普通高等学校招生全国统一考试预测密卷(一)理科综合-生物试题
- 一年级下学期数学培优辅差工作计划
- 一次函数及其应用(Word版习题)
- 酒会领导发言稿
- 物理化学分章练习题(上册)2005
- 2017年7月济南市长清区教师招聘考试真题(附答案)
- 走进文言文-六七年级-译文与题解1-10单元 - 图文
- 连加连减口算生成器(表格解锁密码1234)
- PPP项目风险分担研究综述
- 化学汽水品质查定与风险评估
- 第四章 资本主义的形成及其本质练习题
- 有机实验思考题(不包括性质实验)