[Optimización del ahorro de energía del tren] - Aplicación del algoritmo de optimización del lobo gris

1. Antecedentes de investigación

  • La sociedad actual tiene una demanda cada vez mayor de recursos energéticos. Cómo mejorar la eficiencia energética de los trenes y reducir el consumo de energía y la contaminación ambiental se ha convertido en una importante dirección de investigación. La optimización del ahorro de energía de los trenes es un uso integral de disciplinas mecánicas, eléctricas, de control y otras disciplinas para optimizar el consumo de energía, la eficiencia operativa y la seguridad de los trenes mediante el uso de algoritmos avanzados y medios técnicos para lograr los objetivos de reducir el consumo de energía y reducir la contaminación ambiental.
    El objetivo principal de la optimización del ahorro de energía del tren es minimizar el consumo de energía del tren y al mismo tiempo garantizar el funcionamiento normal del tren, a fin de lograr efectos de ahorro de energía. Específicamente, la optimización del ahorro de energía del tren incluye optimizar la estrategia operativa del tren, el sistema de control y el diseño del vehículo, como optimizar la tracción del tren, la fuerza de frenado, el control de velocidad, etc., para que el tren pueda maximizar el uso de la energía cinética y reducir la energía. garantizando al mismo tiempo la seguridad, el consumo y la contaminación ambiental.

2. Introducción al algoritmo de optimización del lobo gris

  • Gray Wolf Optimizer (GWO) es un algoritmo de optimización emergente inspirado en el comportamiento depredador de los lobos. El algoritmo de optimización del lobo gris encuentra la solución óptima simulando el comportamiento de interacción entre lobos. En la optimización del ahorro de energía de los trenes, podemos aplicar el algoritmo de optimización del lobo gris para ajustar parámetros como la velocidad del tren para lograr fines de ahorro de energía.
  • Los lobos grises son cánidos y se les considera depredadores superiores, en la cima de la cadena alimentaria de la biosfera. A los lobos grises les gusta principalmente vivir en grupos, con un promedio de 5 a 12 lobos en cada grupo. De particular interés es el hecho de que tienen una jerarquía de clases sociales muy estricta, como se muestra en la Figura 1. El primer nivel de la pirámide es el líder de la población, llamado α \alphaα . entre lobosα \alphaα es un individuo con habilidades gerenciales, principalmente responsable de diversas decisiones en el grupo en cuanto a caza, hora y lugar para dormir, distribución de alimentos, etc. El segundo nivel de la pirámide esα \alphaEl equipo del think tank de α se llamaβ \betaβ .β \betaβ es el principal responsable de ayudar aα \alphaα toma decisiones. Cuandoα \alphaCuando hay una vacante en α , β \betaβ sucederáa α \alphaLa posición de α . β βEl dominio de β entre los lobos es superado sólo por α \alphaα , que seráα \alphaLas órdenes de Alpha se emiten a otros miembros y el estado de ejecución de otros miembros se retroalimenta aα \alphaα actúa como un puente. El tercer nivel de la pirámide esδ \deltaδ ,δ \ deltaδ obedecea α \alphaαβ \betaEl comando de toma de decisiones de β es principalmente responsable de la investigación, centinela, atención y otros asuntos. α \alphacon mala condición físicaαβ \betaβ también se reducirá aδ \deltaδ . La base de la pirámide esω \omegaω es el principal responsable del equilibrio de las relaciones dentro de la población.

Figura 1 La jerarquía de los lobos grises.

  • Además, la caza en grupo es otro comportamiento social fascinante de los lobos grises. La jerarquía social de los lobos grises juega un papel importante en el proceso de caza grupal. El proceso de depredación está determinado por α \alphaCompletado bajo el liderazgo de α . La caza del lobo gris consta de las siguientes tres partes principales: 1) Acechar, perseguir y acercarse a la presa; 2) Perseguir, rodear y acosar a la presa hasta que deje de moverse; 3) Atacar a la presa.

Figura 2 El comportamiento de caza de los lobos grises.

3. Aplicación del algoritmo de optimización del lobo gris en la optimización del ahorro de energía del tren

Normalmente existen dos modos de funcionamiento para el funcionamiento de trenes: modo de ahorro de tiempo y modo de ahorro de energía. El modo de ahorro de tiempo permite que el tren complete el plan de operación en el menor tiempo (es decir, operar con máxima tracción y máxima fuerza de frenado). En este modo, se requiere que el tren circule cerca del límite de velocidad. Cuando la velocidad es mayor que el valor límite de velocidad, mantiene una velocidad constante. Cuando la velocidad es menor que el límite de velocidad, el tren debe circular a una velocidad constante. Después del valor de tracción, es decir, la velocidad técnica más alta se alcanza durante operación. El modo de ahorro de energía permite al tren seleccionar un plan de control optimizado con el menor consumo de energía, de modo que el tren pueda completar el plan de operación con un método de control relativamente ahorrador de energía y al mismo tiempo garantizar la operación segura y la puntualidad del tren. Comparamos el modo de ahorro de tiempo y el modo de ahorro de energía optimizado para demostrar los indicadores de consumo de energía optimizados del algoritmo de optimización de Gray Wolf.

1. Modelo de solución algorítmica

Hay dos ideas típicas para resolver problemas de optimización multiobjetivo: una es simplificar la idea de solución y transformarla en la resolución de problemas de optimización de un solo objetivo; la otra es aplicar el algoritmo inteligente de optimización multiobjetivo basado en la teoría de Pareto. .

1.1 Convertir problemas de optimización de objetivos múltiples en problemas de objetivo único

La idea central de convertir un problema de optimización de múltiples objetivos en un problema de optimización de un solo objetivo es ensamblar varios subobjetivos de una determinada manera para formar una expresión matemática que contenga múltiples subobjetivos. Este método de solución generalmente tiene diferentes objetivos para múltiples objetivos En segundo lugar. A continuación se describen en detalle varios métodos de conversión utilizados comúnmente:

Método de ponderación lineal . El método de ponderación lineal es un método clásico para resolver problemas de optimización multiobjetivo. Este método asigna múltiples funciones objetivo de optimización a un valor de peso fijo wi w_iwyo, combínelos en una nueva función objetivo integral mediante ponderación lineal. Aunque este método simplifica el complejo problema multiobjetivo en una única función objetivo, debido a las diferencias en los objetivos de suboptimización y sus indicadores de evaluación en el problema multiobjetivo, es imposible determinar un estándar unificado y razonable para la asignación. de coeficientes de peso. Por lo tanto, las ponderaciones asignadas deben basarse principalmente en el juicio subjetivo del solucionador, lo que hace que el método sea demasiado subjetivo y manipulador.

Método de función principal . Otro método común para convertir problemas de optimización de múltiples objetivos en problemas de optimización de un solo objetivo es el método de la función objetivo principal. Este método selecciona un objetivo de optimización principal, trata otros objetivos de optimización como objetivos secundarios y convierte los valores esperados de otros objetivos en restricciones correspondientes para limitar el rango de variables de optimización. Esto ayuda a que el proceso de optimización avance hacia la solución deseada. A través de este método, se puede simplificar la solución de problemas de optimización multiobjetivo, pero es necesario prestar atención a la selección del objetivo principal y al método de transformación de otros objetivos para garantizar que el problema de objetivo único resultante pueda reflejar con precisión la Requisitos de solución del problema de optimización multiobjetivo.

Método de la función de penalización . El método de la función de penalización es un método común para resolver problemas de optimización con restricciones. En el método de la función de penalización, se selecciona una función objetivo como objetivo de optimización principal, otras funciones objetivo se construyen como funciones de penalización y se agregan a la función objetivo principal como restricciones. De esta forma, un problema con restricciones se puede transformar en un problema de optimización sin restricciones. Dado que los problemas de control de optimización de la operación del tren generalmente contienen muchas restricciones, el método de la función de penalización puede convertir efectivamente la función objetivo en un problema de optimización sin restricciones, reduciendo así la incertidumbre y la complejidad causadas por la ponderación subjetiva, y puede resolverse convenientemente. Por tanto, el método de la función de penalización tiene amplias perspectivas de aplicación en problemas de control de optimización de la operación de trenes.

1.2 Resolver según el principio de Pareto

El principio de Pareto es un principio básico en el campo de la optimización multiobjetivo, también conocido como principio de optimización de Pareto o principio de solución óptima de Pareto. La idea básica es: cuando hay múltiples objetivos de optimización, hay un conjunto de soluciones, en las que la mejora de cualquier valor de la función objetivo conducirá al deterioro del otro valor de la función objetivo, es decir, no hay una solución que pueda simultáneamente lograr todos los objetivos. La función alcanza su valor óptimo, y sólo algunas soluciones tienen propiedades "óptimas", estas soluciones se denominan soluciones óptimas de Pareto.
En problemas de optimización multiobjetivo, la solución óptima de Pareto tiene las dos características siguientes:
no inferioridad: es decir, la solución óptima de Pareto no es inferior entre todas las soluciones factibles y no puede ser dominada por otras soluciones.
Diversidad: es decir, cada solución en el conjunto de soluciones óptimas de Pareto es independiente en términos de valores de la función objetivo, y ningún grupo de soluciones es mejor que otras soluciones en todas las funciones objetivo.
El método de solución basado en el principio de Pareto se denomina método de solución óptima de Pareto y su objetivo principal es encontrar un conjunto de soluciones no inferiores, que forman el conjunto de soluciones óptimas de Pareto. A través del método de solución óptima de Pareto, podemos obtener información importante en problemas de optimización multiobjetivo, como comprender las compensaciones entre objetivos, las condiciones de contorno y la diversidad de soluciones óptimas. Esto tiene un importante significado orientador para la toma de decisiones y la resolución de problemas.

2. Modelo de dinámica de trenes

  • Entre los diversos tipos de modelos cinemáticos de trenes, los más comunes incluyen modelos de una sola partícula, de múltiples partículas y de banda de masa. En lo que respecta al modelo de partícula única, el tren se considera una partícula y no se tienen en cuenta la longitud del vagón ni la fuerza de acoplamiento generada por los vagones. En el estudio de los cálculos de tracción de trenes, muchos estudiosos han utilizado este tipo de modelo porque no es complicado. En lo que respecta al modelo de múltiples partículas, el modelo de múltiples partículas trata cada vagón del tren como una partícula. En el cálculo de la tracción se considera la relación de fuerzas de cada vagón y los parámetros de movimiento del tren se obtienen sumando. Este tipo de modelo debe tener en cuenta la longitud del tren y la fuerza generada por el vagón, por lo que es más consistente con el estado real de operación del tren que el modelo de punto de masa única. Sin embargo, la ruta del tren es compleja y larga, y el uso de un modelo multipartícula puede provocar una gran cantidad de cálculos, e incluso puede no llevar a ninguna solución a la hora de obtener la curva de velocidad multiobjetivo del tren.

    Modelo de un solo punto
    . El llamado modelo de punto de masa único trata a todo el tren como un punto de masa, que debe soportar todas las fuerzas que actúan sobre el tren, y no considera las fuerzas ejercidas entre sí por los vagones.

    Modelo multipartícula
    . En lo que respecta al modelo de partículas múltiples, el modelo de partículas múltiples trata a todos los vagones como puntos de masa. El modelo de cálculo de tracción diseñado de esta manera puede tener en cuenta el impacto de la longitud del tren y reflejar verdaderamente la fuerza resultante experimentada por todos los trenes. operaciones. Dicho modelo todavía se calcula mediante análisis de fuerza, pero al mismo tiempo se puede obtener la fuerza de tracción y la fuerza de empuje generadas entre los vehículos, y cuando el tren alcanza el punto de cambio de pendiente o el punto de cambio de curvatura, puede generar un proceso de gradiente. . Dado que el modelo de partículas múltiples debe considerar las condiciones específicas de todos los vehículos, los cálculos específicos de este modelo son más complicados que los del modelo de partículas únicas.

    Modelo de cinturón de calidad
    . El concepto del modelo de banda de masa es considerar el tren como un palo de madera con un espesor distribuido uniformemente, y la masa del tren se distribuye uniformemente según su longitud. En comparación con el modelo de punto de masa único, el modelo de banda de masa tiene más en cuenta la influencia de la longitud del vagón del tren en el cálculo de la tracción. Cuando el tren entra en una rampa o curva, puede utilizar con precisión los puntos de pendiente variable o la curvatura variable. puntos para calcular los parámetros en secciones, lo que reduce el número de factores en comparación con el modelo de punto de masa único. En comparación con el modelo de partículas múltiples, el modelo de banda de masa no considera la relación de fuerza, como el empuje o la tensión entre los carros, lo que reduce la cantidad de cálculo.
  • El tren está sujeto a la fuerza de tracción FF durante su funcionamiento.F. Fuerza de frenadoBBB. Resistencia básica del trenWWW y línea de resistencia adicionalRREl efecto conjunto de R , suponiendo que la masa del tren esMMM , tiempo de recorrido del trenttt , velocidad de carreravvv , distancia recorridaxxx , de acuerdo con la segunda ley de Newton, la ecuación diferencial del movimiento del tren se puede derivar:
    dxdt = vdvdt = F ( v ) − B ( v ) − W ( v ) − R ( x ) M (1) \begin{aligned} \frac {dx}{dt} \quad &=v \\ \frac{dv}{dt} \quad &=\frac{F(v)-B(v)-W(v)-R(x)} {M } \quad \end{aligned}\tag{1}d tdx _d tdv _=v=METROF ( v )segundo ( v )W ( v )R ( x )( 1 )

3. Establecer la función objetivo

  • Antes de aplicar el algoritmo de optimización del lobo gris para optimizar el ahorro de energía del tren, debemos establecer una función objetivo. La función objetivo es una función utilizada para evaluar el consumo de energía durante el viaje en tren.
    min Q = w 1 ∗ ∣ E − E 0 E 0 ∣ + w 2 ∗ ∣ T − T 0 T 0 ∣ \begin{align} min Q =& w_1*\lvert\frac{E-E_0}{E_0}\ rvert+w_2*\lvert\frac{T-T_0}{T_0}\rvert \tag{2}\\ \end{align}mín Q=w1mi0mimi0+w2t0tt0( 2 )En la fórmula (2), QQQ es el valor de la función objetivo,w 1 w_1w1w 2 w_2w2son el peso del consumo de energía en funcionamiento y el peso del tiempo de funcionamiento respectivamente, EEE es el consumo real de energía en funcionamiento del tren,E 0 E_0mi0es el consumo mínimo de energía operativa esperado del tren, que está relacionado con las condiciones de la línea y los parámetros del tren, TTT es el tiempo de funcionamiento real del tren,T 0 T_0t0Especifica el tiempo de ejecución planificado para el intervalo.
  • Al mismo tiempo, es necesario cumplir ciertas limitaciones a la hora de optimizar el ahorro energético de los trenes. Existen principalmente restricciones de límite de velocidad, restricciones de precisión de estacionamiento y restricciones de comodidad.

4. Selección de variables de decisión

Durante la operación del tren, el control del conductor significa simplemente ajustar las condiciones de control en la posición correspondiente. Las estrategias típicas de control de trenes incluyen principalmente estrategias de control que ahorran tiempo, estrategias de control que ahorran energía y estrategias de control híbridas. Según los diferentes requisitos operativos de los trenes, se deben adoptar diferentes estrategias de control. No importa qué estrategia de control se adopte, el tren utiliza la fuerza de tracción máxima para la aceleración de tracción durante la etapa de aceleración de arranque. Después de alcanzar el límite de velocidad, se adopta una estrategia de control adecuada de acuerdo con los requisitos de operación en la etapa intermedia. Si se conocen la secuencia de conversión del modo de control durante la operación del tren y la posición correspondiente del punto de conversión del modo de operación, la curva de operación del tren se puede determinar de manera única.
La secuencia de transformación de las condiciones de trabajo se puede describir mediante la siguiente fórmula:
P = ( p 0 , p 1 , p 2 , . . . , pi , . . . , pm ) \begin{align} P =& (p_0,p_1, p_2,... .,p_i,...,p_m) \tag{3}\\ \end{align}PAG=( pag.0,pag1,pag2,... ,pagyo,... ,pagm)( 3 )En la fórmula (3), PPP es la secuencia de conversión del modo de trabajo que consta de condiciones de tracción, crucero, inercia y frenado, que debe satisfacer las restricciones de conversión del modo de trabajo.
El control de ahorro de energía de los trenes basado en la lista de secuencia de condiciones de trabajo se puede describir como: dada la secuencia de control de las condiciones de trabajo durante la operación del tren por adelantado, la solución al problema de optimización del ahorro de energía se expresa como encontrar las posiciones de estas conversiones. puntos, es decir, resolviendo la ecuación (4)XXX
X = ( x 0 , x 1 , x 2 , . . . , xi , . . . , xm ) \begin{align} X=& (x_0,x_1,x_2,...,x_i,... ,x_m) \tag{4}\\ \end{align}X=( x0,X1,X2,... ,Xyo,... ,Xm)( 4 )En la fórmula (4), xi x_iXyoes la posición del punto de conmutación de condiciones de trabajo y satisface 0 = x 0 < x 1 < x 2 . . . < xi < . . . < xm < S 0=x_0<x_1<x_2...<x_i<...< x_m<S0=X0<X1<X2...<Xyo<...<Xm<S.SS __S es el punto final del intervalo.
Cuando el tren está realmente en marcha, el número de conversiones de modo de trabajo es incierto y se pueden adoptar varias secuencias de conversión de modo de trabajo para el control. Para mejorar la diversidad de soluciones a los problemas de optimización del control de ahorro de energía, se pueden proporcionar con anticipación múltiples secuencias de condiciones de trabajo de control y se pueden comparar los efectos de ahorro de energía bajo cada secuencia de condiciones de trabajo. Supongamos que el problema de optimización del control ahora tiene dos secuencias razonables de conversión de condiciones de trabajo:
Secuencia uno de condiciones de trabajo: P 1 = ( p 0 , p 1 , p 2 , p 3 , p 4 , p 5 , p 6 , p 7 ) = ( Remolque, crucero, inercia, tracción, crucero, inercia, frenado) P_1=(p_0,p_1,p_2,p_3,p_4,p_5,p_6,p_7)=(tracción, crucero, inercia, tracción, crucero, inercia, frenado)PAG1=( pag.0,pag1,pag2,pag3,pag4,pag5,pag6,pag7)=( tracción ,crucero ,perezoso ,tracción ,crucero ,perezoso ,Frenado ) secuencia de condiciones de trabajo dos:P 2 = ( p 0 , p 1 , p 2 , p 3 , p 4 , p 5 , p 6 , p 7 ) = (tracción, inercia, tracción, inercia, tracción, inercia, frenado ) P_2=(p_0,p_1,p_2,p_3,p_4,p_5,p_6,p_7)=(tracción, inercia, tracción, inercia, tracción, inercia, frenado)PAG2=( pag.0,pag1,pag2,pag3,pag4,pag5,pag6,pag7)=( tracción ,perezoso ,tracción ,perezoso ,tracción ,perezoso ,Frenado ) Por lo tanto, durante los experimentos de simulación, es necesario resolver sus correspondientes puntos de conversión de condiciones de trabajo por separado y compararlos para obtener la solución óptima al problema de optimización del control de ahorro de energía. En la aplicación real, la secuencia de las condiciones de trabajo se puede predeterminar en función de las condiciones específicas de la línea y la experiencia operativa.

4. Configuración de parámetros de simulación

Como línea de simulación se utiliza una línea real y como objeto de simulación una locomotora eléctrica HXD1 que arrastra 50 vagones de mercancías C80. Los atributos básicos de los trenes de mercancías se muestran en la Tabla 1.
Tabla 1 Parámetros básicos de los trenes de mercancías.

parámetro valor
formación de trenes 1 locomotora + 50 vagones
Calidad de locomotora 200 (t) 200(t)200 ( toneladas )
Longitud de la locomotora 35,22 (metros) 35,22(metros)35,22 ( metros )
Resistencia básica de la unidad locomotora 1,2 + 0,0065v + 0,000279v2 (N/t) 1,2+0,0065v+0,000279v^2(N/t)1.2+0,0065v _+0,000279v _2 (norte/t)
Calidad del camión 80 (t) 80(t)80 ( toneladas )
Longitud de la locomotora 12 (metros) 12(metros)12 ( metros )
Resistencia básica de la unidad de camión 0,92 + 0,0048v + 0,000125v2 (N/t) 0,92+0,0048v+0,000125v^2(N/t)0,92+0,0048v _+0,000125v _2 (norte/t)

5. Parte del código fuente del programa Matlab.

  • Curva característica de tracción de la locomotora eléctrica HXD1
function f= TractionForce(vel)
%  根据牵引曲线计算列车牵引力大小
%  输入速度单位为m/s
f=0;
u=vel*3.6; %单位换算
    if u<5
        f=760;
    elseif u<65
        f=779-3.8*u;
    elseif u<100
        f=34560/u;
    end
end
  • Curva característica de frenado de la locomotora eléctrica HXD1
function f= BrakingForce(vel)
%  根据制动曲线计算列车制动力大小
%  输入速度单位为m/s
f=0;
u=vel*3.6; %单位换算
    if u<3
        f=153.3*u ;
    elseif u<=75
        f=461;
    elseif u<=100
        f=34560/u;
    end
end
  • La resistencia total que experimenta el tren al circular.
function f = TotalResistance(vel,pos)
% 计算列车运行时所受到的总阻力
global RampArray;
global CurveArray;
global TrainLength;
global LocomotiveWeight TruckWeight TrainWeight;

%%
% tailStock=pos-TrainLength;
% bodyStock=pos-TRAINWGH/2;
% L=TrainLength;
u=vel*3.6;
%%
w0=1.2+0.0065*u+0.000279*u*u;  %机车
w1=0.92+0.0048*u+0.000125*u*u;  %C80货车
f1=w0*LocomotiveWeight*9.8/1000; %机车基本阻力
f2=w1*TruckWeight*9.8/1000;%货车基本阻力
f=0;
RampResistance=0;
CurveResistance=0;
n = size(RampArray, 2);
m = size(CurveArray, 2);
i=1;
j=1;
%%  列车坡道附加阻力计算公式,采用单质点模型
while (i<n)
    if((pos>=RampArray(1,i)) && (pos<RampArray(1,i+1)))
        wi = RampArray(2, i);
        RampResistance =wi*TrainWeight*9.8/1000;
        break;
    end
    i = i + 1;
end
%%   列车曲线附加阻力计算公式
while (j<m) 
       if pos>=CurveArray(1,j) && pos<CurveArray(1,j+1)
           if 0==CurveArray(2,j)
              wr=0;
              CurveResistance =wr*TrainWeight*9.8/1000;
              break;
           else 
             wr=600/CurveArray(2,j);
             CurveResistance =wr*TrainWeight*9.8/1000;
             break;
           end
       end
        j = j + 1;
 end
%%  列车所受的总阻力
f=f1+f2+RampResistance+CurveResistance;
end
  • Diseño de funciones de fitness.
function  fitness = CalculateFitness(Energy,Time)
%  计算适应度函数
%  定义全局变量
global Tmin;  
% global Emax;
global Emin;
%%  适应度计算应该归一化
%  设置线性权重,包括能耗权重w1和时间权重w2
w1=0.5;
w2=0.5;
%% 分目标适应度值
f1=(abs(Energy-Emin))/Emin;
f2=(abs(Time-Tmin))/Tmin;
%% 适应度函数
fitness=w1*f1+w2*f2;
end
  • La función principal del algoritmo de optimización del lobo gris.
function [bestFitnessPos,bestFitness,newPop,IterCurve]=GWO_main(option)
%灰狼化算法的主函数
global switchNumber;
global popSize iterNumber;
global upLimit lowLimit;

%灰狼优化算法参数
popSize=option.PopulationSize;   %种群数量
iterNumber=option.MaxGenerations; %迭代次数
%%   产生初始种群
Population= InitializePopulation(popSize,switchNumber);  %生成种群

%%   计算适应度值
for  i=1:popSize
    [~,Energy,Time,~]=ModelConstraint(Population(i,:),2);
    fitness(i)=CalculateFitness(Energy,Time);
end

%%  对适应度排序,找到Alpha,Beta,Delta狼
%寻找适应度最小的位置
[SortFitness,indexSort] = sort(fitness);
%记录适应度值和位置
Alpha_pos = Population(indexSort(1),:);
Alpha_score = SortFitness(1);
Beta_pos = Population(indexSort(2),:);
Beta_score = SortFitness(2);
Delta_pos = Population(indexSort(3),:);
Delta_score = SortFitness(3);
gBest = Alpha_pos;
gBestFitness = Alpha_score;

%%   开始迭代
for iter=1:iterNumber
    
    %%   把种群赋给旧种群
    oldPopulation=Population;
    a=2-iter*((2)/iterNumber);
    %%  对个体进行评估
    for i=1:popSize
        for j=1:switchNumber
            %% 根据Alpha狼更新位置
            r1=rand(); % [0,1]随机数
            r2=rand(); % [0,1]随机数
            A1=2*a*r1-a; % 计算A1
            C1=2*r2; % 计算C1
            D_alpha=abs(C1*Alpha_pos(j)-Population(i,j)); % 计算距离Alpha的距离
            X1=Alpha_pos(j)-A1*D_alpha; %位置更新
            %% 根据Beta狼更新位置
            r1=rand();%[0,1]随机数
            r2=rand();%[0,1]随机数
            A2=2*a*r1-a;% 计算A2
            C2=2*r2; % 计算C2
            D_beta=abs(C2*Beta_pos(j)-Population(i,j));  % 计算距离Beta的距离
            X2=Beta_pos(j)-A2*D_beta; %位置更新
            %% 根据Delta狼更新位置
            r1=rand();%[0,1]随机数
            r2=rand();%[0,1]随机数
            A3=2*a*r1-a; % 计算A3
            C3=2*r2; % 计算C3
            D_delta=abs(C3*Delta_pos(j)-Population(i,j)); % 计算距离Delta的距离
            X3=Delta_pos(j)-A3*D_delta; %位置更新
            %更新位置
            Population(i,j)=(X1+X2+X3)/3;
        end
        %%  边界检查
        Population(i,:) = BoundaryCheck(Population(i,:),upLimit,lowLimit,switchNumber);
    end
    
    
    %%  判断个体是否符合约束条件
    for i=1:popSize
        [flag,Energy,Time,~]=ModelConstraint(Population(i,:),2);
        if flag~= 0
            Population(i,:)=lowLimit + (upLimit -lowLimit).*rand(1,switchNumber);
            %再次测试
            [flag,Energy,Time,~]=ModelConstraint(Population(i,:),2);
            while flag~= 0
                Population(i,:)=lowLimit + (upLimit -lowLimit).*rand(1,switchNumber);
                [flag,Energy,Time,~]=ModelConstraint(Population(i,:),2);
            end
        end
        fitness(i)=CalculateFitness(Energy,Time);
    end
    
    %%  合并新旧种群,取种群数量大小
    newPopulation = [oldPopulation; Population];
    % 计算适应度值
    newfitness = zeros(size(newPopulation, 1), 1);
    for i = 1:size(newPopulation, 1)
        [~,Energy,Time,~] = ModelConstraint(newPopulation(i,:), 2);
        newfitness(i) = CalculateFitness(Energy, Time);
    end
    % 排序并选择前setNum个个体
    [~, sortIndex] = sort(newfitness, 'ascend');
    newPopulation = newPopulation(sortIndex(1:popSize), :);
    % 更新种群和适应度值
    Population = newPopulation;
    fitness = newfitness(sortIndex(1:popSize));
    %%  更新适应度值
    for i=1:size(Population,1)
        % 更新 Alpha, Beta,  Delta狼
        if  fitness(i)<Alpha_score
            Alpha_score= fitness(i); % 更新alpha狼
            Alpha_pos=Population(i,:);
        end
        if  fitness(i)>Alpha_score &&  fitness(i)<Beta_score
            Beta_score= fitness(i); % 更新beta狼
            Beta_pos=Population(i,:);
        end
        if  fitness(i)>Alpha_score &&  fitness(i)>Beta_score &&  fitness(i)<Delta_score
            Delta_score= fitness(i); %更新delta狼
            Delta_pos=Population(i,:);
        end
    end
    %%
    gBest = Alpha_pos;
    gBestFitness = Alpha_score;
    IterCurve(iter) = gBestFitness;
    %%  显示迭代次数
    disp(['第',num2str(iter),'次迭代']);   
end
bestFitnessPos=gBest;
bestFitness=gBestFitness;
newPop=Population;
end

6. Diagrama de simulación de algunos resultados experimentales.

  • Curva velocidad-distancia en modo de ahorro de tiempo

Figura 3 Curva velocidad-distancia en modo de ahorro de tiempo

  • Curva velocidad-distancia del tren optimizada

Figura 4 Curva velocidad-distancia optimizada

  • Secuencia de trabajo optimizada

Figura 5 Secuencia de condiciones de trabajo optimizadas

7. Algunas referencias

[1] Mirjalili, Seyedali, Seyed Mohammad Mirjalili y Andrew Lewis. “Grey wolf optimizador”. Avances en software de ingeniería 69 (2014): 46-61. [2] Yang Yanqiang, Liu Haidong, Ma Cunrui, Xu Liang. Tren Ahorro de energía
Investigación sobre la optimización del control de velocidad objetivo operativo [J]. Ingeniería e información del sistema de transporte, 2019, 19 (01): 138-144. [3]
Zhang Huiru, Jia Limin, Wang Li. Energía del tren ferroviario de alta velocidad. curva de conducción de ahorro basada en la optimización multiobjetivo de Pareto Generación de conjuntos [J]. Journal of Railways, 2021, 43(03):85-91. [4]
Chu Xintong. Investigación sobre la optimización de la operación de ahorro de energía de trenes múltiples urbanos basado en un algoritmo de colonia de hormigas [D]. Universidad Jiaotong del Suroeste, 2021. [
5] Yang Jie. Optimización de operaciones de ahorro de energía y método de control inteligente de trenes de carga [D]. Universidad Jiaotong de Beijing, 2017. [
6] Lin Xuan. Investigación sobre estrategias de control optimizadas para el ahorro de energía de locomotoras eléctricas de carga [D] Universidad Southwest Jiaotong, 2018.

Supongo que te gusta

Origin blog.csdn.net/qidian630/article/details/130262628
Recomendado
Clasificación