资源简介
基于ATO系统的列车速度曲线优化的MATLAB代码,应用了遗传算法进行优化
代码片段和文件信息
clear
close all
clc
%算法参数
N=200; %初始种群个体数
age=100; %最大遗传代数
pk=0.4; %每次截杀比例期望,如100个父本希望截杀50个,pk=0.5
pm=0.01; %变异概率
%决定参数
kpc=10; %关键点个数,也就是变档位个数
%控表参数
L=1000; %路程总长
m=2e5; %车体质量
vm=80/3.6; %中途限速
vh=60/3.6; %车站限速
T0=90; %运行时间
a=[0 0.2 0.4 0.6 0.8 -0.25 -0.45 -0.65]; %加速度设置
l_f=-5e-3; %坡道0~500m
l_l=1e-2; %坡道500~1000m
%权重系数,从左往右依次为速度防护、准时性、精准停车、舒适度、能耗
k=[0.4857 0.2728 0.1980 0.0303 0.0132];
KPC=13*kpc;
%遗传算法主程序
sample=zeros(20010‘single‘); %种群总基因库,每一行为一个个体的基因代码
%默认第一个关键点在坐标0
best_len=zeros(age+11); %记录每代最优个体适应度值
best_gene=zeros(age+1KPC‘single‘); %记录每代最优个体基因
%对于初代的记录
sample(:11:KPC)=logical(round(rand(NKPC-10))); %随机生成初始种群
[Saasample]=adjust(sampleavhvm); %调整初始种群
len_new=fitness(aaSakvmvhT0Lml_fl_l); %计算个体适应度
index=find(len_new); %剔除0
len_new=len_new(index);
sample=sample(index:);
best=find(len_new==min(len_new));
best_len(1)=len_new(best(1)); %记录最优个体对应适应度值
best_gene(1:)=sample(best(1):); %记录最优个体基因编码
g=1; %记录指针
while g<=age
samples=sample;
len_old=len_new; %储存每代个体父代对应适应度值
%杀死不良个体
%len_old=exp(len_old-sum(len_old)/length(find(len_old)));%为了扩大总长短的优势,故采用指数幂的方式加大差距
sum_len=sum(len_old); %每个个体旅行总长之和
index=find(len_old);
for i=1:length(index)
if rand(1) len_old(index(i))=0;
end
end
index=find(len_old); %寻找存活的个体
sample_new=sample(index(randperm(length(index
- 上一篇:三相交流异步电机矢量控制系统仿真建模
- 下一篇:GA遗传算法matlab程序
相关资源
- 读取txt文件内容matlab代码实现
- 细胞图像分割matlab代码
- 基于MP的时频分析MATLAB代码
- WCDMA matlab代码
- MATLAB 实现各类常见算法
- matlab编写的量子遗传算法
- 图像降噪Matlab代码
- 圣诞树(matlab代码)
- 心音信号处理分析(附matlab代码)
- Pattern Recognition and Machine Learning(高清
- 均值滤波和FFT频谱分析Matlab代码
- 欧拉放大论文及matlab代码
- GPS信号的码捕获matlab代码.7z
- 协同进化遗传算法求解函数优化问题
- matlab读取SP3文件
- 图像的饱和度,亮度,色调的matlab代
- 肤色检测matlab代码
- sutton强化学习随书MATLAB代码
- 压缩鬼成像matlab代码
- 基于遗传算法的旅游全国的路径最优
- 压缩感知(Compressed Sensing CS)matlab代
- 基于OFDMA系统的多用户资源分配算法,
- 基于遗传算法的机器人路径规划matl
- Allan方差分析MATLAB代码,含MPU6050八小
- 多种群遗传算法的函数优化算法(源
- 均匀球体剖面重力异常正演模拟Matl
- 印章识别matlab代码
- 连续潮流matlab代码
- 线性拟合仿真-最小二乘法、正交回归
- 矩阵填充MATLAB代码
评论
共有 条评论