MATLAB遗传算法PID大作业

更新时间:2023-10-12 19:40:02 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

遗传算法在调节控制系统参数中的应用

【摘要】自动化控制系统多采用PID控制器来调节系统稳定性和动态性,PID的

Kp,Ki,Kd参数需要合理选择方能达到目标。遗传算法是一种模拟生物进化寻求最优解的有效算法,本文通过利用GAbx工具箱实现对控制电机的PID进行参数优化,利用matlab的仿真功能可以观察控制效果。 1. 直流伺服电机模型 1.1物理模型

图1 直流伺服电机的物理模型

u?---电枢输入电压(V) Ra---电枢电阻(?) LS---电枢电感(H)

uq---感应电动势(V) Tg---电机电磁转矩(N?m) J---转动惯量(kg?m2)

B---粘性阻尼系数(N?m?s) ig---流过电枢的电流(A) ?---电机输出的转角(rad)

1.2传递函数

利用基尔霍夫定律和牛顿第二定律得出电机基本方程并进行拉布拉斯变换

Ua(s)?Uq(s)?Ia(s)?Ra?Las?Ia(s)Tg(s)?Js2??(s)?Bs??(s)Tg(s)?Ia(s)?KtUq(s)?Kes??(s)式中:Kt为电机的转动常数(N?m)A;Ke为感应电动势常数(V?s)rad

Ua(s) Ia(s) 1 Las?RaTg(s) Ki 1 Js?B?(s) 1 S?(s) Uq(s) KC

图2 直流伺服电机模型方框图

消去中间变量得系统的开环传递函数:

G(s)??(s)Ua(s)?Kt

[(Lds?Ra)(Js?B)?KtKC]s系统参数如下:J?3.23mg?m2,B?3.51uN?m?s

Ra?4?,La?2.75uH,Kt?Ke?0.03(N?m)A

2. PID校正

R Ua(s) Gc(s) G(s) ?(s)

图3 PID校正

Gc(s)?Kp?Ki?Kds Kp,Ki,Kd为比例,积分,微分系数 s令Kp=15、Ki=0.8 、Kd=0.6

M文件:J=3.23E-6;

B=3.51E-6; Ra=4;

La=2.75E-6; 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=[Kd Kp Ki]; dencf=[1 0];

numf=conv(numcf,num); denf=conv(dencf,den);

[numc,denc]=cloop(numf,denf); t=0:0.001: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) 遗传算法 解的编码(算法的操作对象) 解中每一分量 特性值 二进制串中位置 结构 参数集、候选解 解 在算法停止时,最优目标值的解有最大可能被留住 适应度函数值 选定的一组解 根据适应度函数值选取的一组解 通过交配产生一组新解的过程 编码的某一个分量发生变化的过程 英国谢菲尔德大学开发的遗传算法工具箱把参数,选择,交叉,变异等过程封装成函数进行操作,其基本搜索过程不变。

本文来源:https://www.bwwdw.com/article/p6qf.html

Top