MATLAB遗传算法PID大作业文档格式.docx

上传人:b****5 文档编号:16478403 上传时间:2022-11-24 格式:DOCX 页数:16 大小:210.45KB
下载 相关 举报
MATLAB遗传算法PID大作业文档格式.docx_第1页
第1页 / 共16页
MATLAB遗传算法PID大作业文档格式.docx_第2页
第2页 / 共16页
MATLAB遗传算法PID大作业文档格式.docx_第3页
第3页 / 共16页
MATLAB遗传算法PID大作业文档格式.docx_第4页
第4页 / 共16页
MATLAB遗传算法PID大作业文档格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

MATLAB遗传算法PID大作业文档格式.docx

《MATLAB遗传算法PID大作业文档格式.docx》由会员分享,可在线阅读,更多相关《MATLAB遗传算法PID大作业文档格式.docx(16页珍藏版)》请在冰豆网上搜索。

MATLAB遗传算法PID大作业文档格式.docx

Kt=0.03;

num=Kt;

den=[(J*La)((J*Ra)+(La*B))((B*Ra)+Kt*Kt)0];

t=0:

0.001:

0.2;

step(num,den,t);

Kp=15;

Ki=0.8;

Kd=0.6;

numcf=[KdKpKi];

dencf=[10];

numf=conv(numcf,num);

denf=conv(dencf,den);

[numc,denc]=cloop(numf,denf);

0.04;

step(numc,denc,t);

matlab进行仿真,我们可以看出不恰当的PID参数并不能使系统达到控制系统的要求,因此需要对PID参数进行优化。

图4系统阶跃响应(Kp=15,Ki=0.8,Kd=0.6)

3.遗传算法

3.1遗传算法和工具箱简介

遗传算法(GA)是基于自然选择和基因遗传学原理的优化搜索方法。

它借鉴了达尔文的进化论和孟德尔的遗传学说。

其本质上是一种高效、并行、全局搜索的方法,它能在搜索过程中自动获取和积累有关搜索空间的知识,并自适应地控制搜索过程以求得最优解。

遗传算法操作使用适者生存的原则,在潜在的解决方案种群中逐次产生一个近似最优的方案。

在遗传算法的每一代中,根据个体在问题域中的适应度值和从自然遗传学中借鉴来的再造方法进行个体选择,产生一个新的近似解。

在这个过程导致种群中个体的进化,得到的新个体比原个体更能适应环境,就像自然界中的改造一样。

表3.1遗传学和遗传算法中基本用语对照表

遗传学

遗传算法

染色体(Chromosome)

解的编码(算法的操作对象)

基因(Gene)

解中每一分量

等位基因(Allele)

特性值

基因座(Locus)

二进制串中位置

基因型(Genptype)

结构

表现型(Phenotype)

参数集、候选解

个体(Individual)

适者生存

在算法停止时,最优目标值的解有最大可能被留住

适应性(Fitness)

适应度函数值

群体(Population)

选定的一组解

复制(Reproduction)

根据适应度函数值选取的一组解

交配(Crossover)

通过交配产生一组新解的过程

变异(Mutation)

编码的某一个分量发生变化的过程

英国谢菲尔德大学开发的遗传算法工具箱把参数,选择,交叉,变异等过程封装成函数进行操作,其基本搜索过程不变。

表3.2遗传算法工具箱常用函数

创建种群

crtbase

创建基向量

crtbp

创建任意离散随即种群

crtrp

创建实值初始种群(bs2rv)

适应度计算

ranking

常用的基于秩的适应度计算

scaling

比率适应度计算

选择函数

reins

一致随机和基于适应度的

重插入

rws

轮盘选择

select

高级选择例程

sus

随机遍历采样

变异算子

mut

离散变异

mutate

高级变异函数

mutbga

实值变异

交叉算子

recdis

离散重组

recint

中间重组

reclin

线性重组

recmut

具有变异特征的线性重组

recombine

高级重组算子

xovdp

两点交叉算子

xovdprs

减少代理的两点交叉

xovmp

通常多点交叉

xovsh

洗牌交叉

xovshrs

减少代理的洗牌交叉

xovsp

单点交叉

xovsprs

减少代理的单点交叉

子种群的支持

migrate

在子种群间交换个体

实用函数

bs2rv

二进制串到实值的转换

rep

矩阵的复制

3.2利用遗传算法优化过程

1)根据遗传算法优缺点这里选择遗传代数为100,种群大小为30,变量维数为3其中10≤Kp≤20,0≤Ki≤1,0≤Kd≤1,要求精度0.0001所以二进制串编码长度为17故Kp精度为(20-10)/(

-1)Ki,Kd精度为(1-0)/(

-1),代沟为0.9,交叉概率为0.6,变异概率为0.01。

2)适应度函数的设计

PID优化设计的目的是使系统某些性能指标最优,然而,单纯的误差性能指标很难同时满足系统对快速性、稳定性和鲁棒性的要求,因此在适应度函数中引入超调量、上升时间和累计绝对误差指标项。

设σ=(|yp-yref|/yref)×

100%为系统的超调量,yp和yref分别为输出峰值和输入参考值;

t*r为上升时间,将其定义为输出从0第1次达到0.95yref的时间;

ek=yk-yref为采样时刻k的输出误差;

wj(j=1,2,3)为权重系数。

则多目标适应度函数为:

(5)

通过对权重系数的调整,可以改变系统对快速性和稳定性的要求。

如系统要求较小的超调,可以适当增大w1;

若系统要求快速的动态响应,则可以适当增大w2。

计算机控制是一种采样控制,它只能根据采样时刻的偏差值计算控制量。

因此连续PID控制算法不能直接使用,需要采用离散化方法。

在计算机PID控制中,使用的是数字PID控制器。

图3.2增量式PID控制系统

增量式PID控制是数字控制器的输出只是控制器的增量△u(k)。

当执行机构需要的是控制量的增量时,应采用增量式PID控制,采样时刻点kT(T为采样周期)代表连续时间t。

做如下近似变换来离散化:

可得离散的PID表达式:

增量式PID控制算法:

增量式PID控制算法不需多次累加,控制增量△u(k)仅与最近3次得采样有关,所以误动作时的影响相对较小

图3.3基于GA算法参数调整的PID控制系统

采样时间取1ms,为获取满意的过渡过程动态特性,采用误差绝对值时间积分性能指标作为参数选择的目标函数。

为防止控制量过大,在目标函数中加入控制输入的平方项。

选用下式作为参数选取的最优指标

为系统偏差,

为PID控制器输出,

为上升时间。

为避免超调了,采用惩罚功能,一旦产生超调,将超调量作为最优指标的一项,此时最优指标为

J值越小,对应的PID参数越优良。

但是,由于GA算法用于求解最大值问题,所以需要对J做一个简单变形,从而得到算法的适应度函数:

3)依据遗传算法的步骤编写程序并仿真

图3.4BestKpKiKd优化值时的阶跃响应

图3.5J随进化代数的变化曲线

图3.6优化得到BestKpKiKd及此时的LeastJ

 

4.程序代码

1.GA.m文件

%GA(GenericAlgorithm)ProgramtooptimizeParametersofPID

clc

clearall;

closeall;

 

%清除命令,变量,关闭窗口

globalrinyouttimef 

%输入,输出,离散时间

%******Initialization******%

MAXGEN=100;

%遗传代数

NIND=30;

%种群大小

NVAR=3;

%变量维数

PRECI=17;

%变量精度

GGAP=0.9;

%代沟(Generationgap)

Pc=0.6;

%交叉概率

Pm=0.01;

%变异概率

FieldD=[PRECI,PRECI,PRECI;

10,0,0;

20,1,1;

1,1,1;

0,0,0;

1,1,1;

1,1,1];

%区域描述器 

Chrom=crtbp(NIND,NVAR*PRECI);

%初始种群

fori=1:

1:

MAXGEN

gen(i)=i;

%遗传代数 

%******Step1:

EvaluateLeastJ****** 

KpKiKdlsj=bs2rv(Chrom,FieldD);

%各代种群由二进制串转化为实值

forj=1:

NIND

J=0;

KpKiKd=KpKiKdlsj(j,:

);

[KpKiKd,J]=pidf(KpKiKd,J);

%计算本代种群中各个个体的目标函数值

Lsj(j,1)=J;

end

[OderLsj,IndexLsj]=sort(Lsj);

%本代种群中各个个体的目标函数值升序排列

genlstj(i)=OderLsj

(1);

%升序排列中第一个最小,为本代最优

BestKpKiKd=KpKiKdlsj(IndexLsj

(1),:

%BestKpKiKd

Lsj=Lsj+1e-10;

%Avoidingdevidingzero1*10^(-10) 

Msj=1./Lsj;

%设置适应度函数

[OderMsj,IndexMsj]=sort(Msj);

%Arrangingfismalltobigger适应度值升序排列

genmost=OderMsj(NIND) 

;

%LetBestfi=max(fi)升序中最后一个最大,为本代最优

moststring=Chrom(IndexMsj(NIND),:

%本代中对应最优的PID参数

%******Step2:

SelectandReproductOperation******

FitnV=ranking(Lsj);

%分配适应度值(Assignfitnessvalues) 

SelCh=select('

sus'

Chrom,FitnV,GGAP);

%选择

%************Step3:

CrossoverOperation************

SelCh=recombin('

xovsp'

SelCh,Pc);

%交叉

%************Step4:

MutationOperation**************

SelCh=mut(SelCh,Pm);

%变异

SelCh(NIND,:

)=moststring;

%保证交叉后的新种群Temp2包含原种群中的最优个体

%*************Step5:

ReinsertOperation***************

ObjV=FitnV;

KpKiKdlsj=bs2rv(SelCh,FieldD);

%计算ObjVSel

ObjVSel=Msj;

[ChromObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);

%重插入

end

LeastJ=genlstj(MAXGEN) 

%最优目标函数值(性能指标)

BestKpKiKd 

%最优PID参数(实值)

figure

(1);

plot(gen,genlstj);

xlabel('

gen(s)'

ylabel('

genlstj'

figure

(2);

plot(timef,rin,'

r'

timef,yout,'

b'

Time(s)'

rin,yout'

2.pidf.m函数文件

function[KpKiKd,J]=pidf(KpKiKd,J)

globalrinyouttimef

tz=0.001;

sys=tf(0.03,[8.8825e-12,1.2920e-05,9.1404e-04,0]);

zsys=c2d(sys,tz,'

z'

[num,den]=tfdata(zsys,'

v'

rin=1.0;

u_1=0.0;

u_2=0.0;

u_3=0.0;

y_1=0.0;

y_2=0.0;

y_3=0.0;

K=[0,0,0]'

;

error_1=0;

Tup=1;

m=0;

final=100;

fort=1:

final

timef(t)=t*tz;

r(t)=rin;

u(t)=KpKiKd

(1)*K

(1)+KpKiKd

(2)*K

(2)+KpKiKd(3)*K(3);

ifu(t)>

=10

u(t)=10;

ifu(t)<

=-10

u(t)=-10;

end

yout(t)=-den

(2)*y_1-den(3)*y_2-den(4)*y_3+num

(2)*u_1+num(3)*u_2+num(4)*u_3;

error(t)=r(t)-yout(t);

%------------ReturnofPIDparameters-------------

u_3=u_2;

u_2=u_1;

u_1=u(t);

y_3=y_2;

y_2=y_1;

y_1=yout(t);

K

(1)=error(t);

%CalculatingP

K

(2)=(error(t)-error_1)/tz;

%CalculatingD

K(3)=K(3)+error(t)*tz;

%CalculatingI

error_1=error(t);

ifm==0

ifyout(t)>

0.95&

yout(t)<

1.05

Tup=timef(t);

m=1;

J=J+0.999*abs(error(t))+0.001*u(t)^2;

ift>

1

erry(t)=yout(t)-yout(t-1);

iferry(t)<

J=J+100*abs(erry(t));

J=J+2*Tup;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小升初

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1