遗传算法PID
Ⅰ 怎么通过MATLAB使用遗传算法实现pid参数整定
我的毕设只用把PID和模糊PID相比较
常规PID,用Matlab里的Simulink模块仿真,建立你要做的动力学模型的传函或者状态空间。PID参数调节可用临界比度法。
模糊PID就麻烦了,打开Matlab中FIS模块,一般都用二阶模糊?输入E,EC的隶属函数,一般为高斯,和输出模糊Kp,Ki,Kd,一般为三角。还要整定模糊规则,再加载到Simulink里。调节模糊因子Gu,Ge,Gec,设置模糊PID的参数。
总之,你这个问题在白度知道里很难说清楚。
Ⅱ 用遗传算法对pid参数整定是否属于现代控制理论范畴。
不算,现代控制理论指的是上世纪60年代发展起来的以状态空间为基础的分析方法。
遗传算法对pid参数整定应该属于自适应控制的范畴
Ⅲ 遗传算法怎么与pid控制器进行结合
pid控制有3个参数,不同的参数值对应不同的控制效果,所以这三个参数是输入量。但是对于目标函数来说就比较复杂了,可以是系统响应,系统增益等,根据不同情况选用。
Ⅳ matlab遗传算法程序解读谁能逐句给我解释一下
高手解释下,这个选择、交叉、变异各是采用了什么方法?????我也很想知道这段程序呀。这个是基于实数编码的遗传算法优化PID参数。
Ⅳ 请问哪位朋友知道温控器PID自整定功能是什么意思啊
PID自整定功能检查系统接线,确定系统的反馈为负反馈。例如电机调速系统,输入信号为正,要求电机正转时,反馈信号也为正(PID算法时,误差=输入-反馈),同时电机转速越高,反馈信号越大。其余系统同此方法。
测量控制范围:温度 -50℃~150℃ 显示精度 ±0.1℃ ( <100℃ )检测精度:±0.5℃◆参数设置: 控制值:全量程0~100% 回差:温度1~30℃传感器误差修正:温度-50℃~150℃
显示方式:三位LED数码管显示,1位小数,加热控制:启动:温度≤设定温度(下限); 停止:温度≥设定温度(下限)+温度回差;
风扇控制:启动:温度≥设定温度(上限); 停止:温度≤设定温度(上限)-温度回差;
(5)遗传算法PID扩展阅读:
温度控制器自整定at意思的详细解释:
在现代工业生产中,温度是许多生产环节中非常重要的一个指标。以温度为主要参数的被控对象,如大型锅炉,往往难以得到精确的数学模型。并且控制系统往往存在着结构的不确定性、大滞后特性以及变量的耦合性。
随着控制理论和无线通信技术的发展,工业对于控制器的自适应性、智能性以及网络化管理的要求也在逐步提高。本文正是将Smith补偿器与遗传算法相结合,设计出一个具有自整定功能的PID控制器,并在此基础上。
Ⅵ 基于遗传算法的PID参数的在线整定和离线寻优区别是什么
离线整定即根据系统实际工况或已知数学模型情况下,预先进行PID参数设置。这种方法不具备自适应性。
当然可以不停改变PID参数,不过对于被控对象变化很快的系统,不论是人工整定还是自整定,工作量都太大了。
Ⅶ “基于遗传算法的PID控制参数优化”matlab程序
那本书应该是没有问题的
我按照那本书做过以及神经网络的PID控制参数优化 没有问题 你再修改下吧
Ⅷ 那个遗传算法PID的 MATLAB 我怎么也弄不出来。直接抄书上的程序就是 Error using ==> le Not enoug
%Improved algorithm for PID parameters tuning
clear all;
close all;
global rom 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)=zero(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,2);
Koid(:,3)=MinX(3)+(MaxX(3)-MinX(3))*rand(Size,3);
G=100;
Bsj=0;
%***************Start Running***************
for kg=1:1G
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=BestJi(kg);
Ji=BSJi+le-10; %Avoiding deviding zero
di=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 Eeproct 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; % Addig rest to equal Size
end
k=1;
for i=Size:-1:1 %Select the Sizeth and Reproce firstly
for j=1:1:fi_S(i)
TempE(k,:)=Kpid(Indexfi(i),;) %Select and Reproce
k=k+1; % k is used to reproce
end
end
%**********Step 3:Crossover Operation******
fiavg=fi_sum/30;
fimax=1/BJ;
for i=1:2:(Size-1);
if fi(i)>fi(i+1);
fi1(i)=fi(i);
else fi1(i)=fi(i+1);
end
end
for i=1:2:(Size-1);
if fi1(i)>fiavg
Pc(i)=0.9-0.3*(fi1(1)-fiavg)/fimax-fiavg
else Pc(i)=0.9;
end
end
for i=1:2:(Size-1);
temp=rand;
if Pc(i)>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**************
for i=1:1:Size;
if fi(i)>fiavg;
Pm(i)=0.1-0.099*(fimax-fi(i));
else Pm(i)=0.1;
end
end
%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 indivial
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('ran,yout');
Ⅸ 遗传算法在pid参数整定运用中是如何将ki,kd,kp和目标函数挂钩起来的
pid控制有3个参数,不同的参数值对应不同的控制效果,所以这三个参数是输入量。
但是对于目标函数来说就比较复杂了,可以是系统响应,系统增益等,根据不同情况选用。