Red neuronal de una capa escrita a mano ----- Realice análisis de armónicos (espectro) del sistema de potencia de alta precisión (con código matlab)

Prólogo


    Este artículo es una comprensión y la implementación del código de un documento " Un nuevo algoritmo de análisis armónico del sistema de energía de alta precisión basado en la red neuronal " por Wang Xiaohua , que implica un diseño de curso para especialidades eléctricas, a través del cual una señal puede ser similar a Fu Análisis de espectro de la transformada de Fourier. Se basa principalmente en una red neuronal de una sola capa para lograr, poner la información del espectro en los pesos de la red neuronal de una sola capa y luego usar la serie recopilada de puntos de muestra para optimizar de forma iterativa estos parámetros de peso. Los parámetros de peso optimizados se pueden obtener mediante un simple cálculo. El espectro de frecuencia de la señal ha sido probado con una precisión muy alta.


Edificio modelo


    Cualquier función periódica se puede expresar como una suma ponderada de una onda fundamental y varios armónicos. Este es el conocimiento de la transformada de Fourier. La expresión se muestra en la ecuación (1). Donde está la fase inicial, An es el peso de cada componente armónico, N es el número total de fundamentales y armónicos, fn es el valor de frecuencia de cada componente y f1 es la frecuencia fundamental.

                                        

    Y el uso de esquinas sinusoidales Expandiendo la ecuación (1) se puede obtener por la fórmula (2) en la que A0 es la componente de corriente continua, la función si se conoce en este momento y (t) de la ecuación, podemos calcular fácilmente los valores de peso por la fórmula y Peso . Pero aquí no se usa ninguna fórmula, pero los dos tipos de parámetros se estiman mediante optimización iterativa.

                               

      Es fácil de saber  , y luego hacer , luego la fórmula (2) puede transformarse en la fórmula (3), para transformarse en la acumulación de términos individuales, el tercer término se deforma de manera equivalente al rango de N + 1 a 2N, y lo encontrará con cuidado. La expresión es como un modelo de neurona de una sola capa: la entrada es un vector de columna 2N + 1-dimensional C compuesto de valores 2N + 1, y los pesos también son valores 2N + 1 para formar un vector de columna 2N + 1-dimensional W.

                                   

     Tomado , cuando n = 1,2, ... 8 ,, N.

     Tomado , cuando n = N + 1, N + 2 ......... 2N. Hora

     Buscar

    Entonces la fórmula (3) puede transformarse en la fórmula (4)

                                                      

      En el proceso real, no podemos conocer el valor de la función en cada punto de tiempo T. Solo podemos conocer el valor de muestreo en el momento del muestreo. Suponiendo que el intervalo de muestreo es Ts, el tiempo correspondiente al m-ésimo muestreo es mTs. Ahora reescriba (4) con mTs en lugar de t, y obtenga la fórmula (5). Se puede ver que ahora e y son funciones de m, ym se refiere al número de muestras.

                                   

       Ahora se muestrea la señal original, y cada vez que se obtiene un valor de muestra, se realiza una iteración. Aquí, el gráfico del autor del artículo se utiliza para representar este diagrama de modelo de red neuronal de una sola capa. Suponiendo que este sea el mth muestreo, a partir del mth tiempo t = mTs, se puede calcular su C (m) correspondiente, y luego es El peso W (m) actualizado en una iteración puede multiplicarse para obtener el valor de la función de predicción de este tiempo , y el resultado de la predicción es diferente del valor de muestreo del mth muestreo de la función original para obtener el error de predicción , y luego se reduce el gradiente Actualice el parámetro W (m) para obtener W (m + 1) y complete una iteración.

                                   

        La función de pérdida del modelo viene dada por la ecuación (6)

                                                          

        Entonces la fórmula de descenso de gradiente se puede dar por la ecuación (7)

                                    

        En cuanto al   valor, el documento demuestra que debe satisfacerse mediante una gran cantidad de cálculos . El 0.1 tomado en el experimento ha logrado buenos resultados.

        Además, en teoría, la frecuencia fundamental debería ser igual a la frecuencia de potencia, que es 50Hz, pero debido a varios factores, puede ser desigual, por lo que también es una cantidad que debemos estimar.

La fórmula de descenso de gradiente es como la fórmula (8)

            

         Para el   valor, solo el rango anterior se indica en el texto, y -1 se usa en el experimento , que ha logrado buenos resultados. Es rápido y no oscila.


Extracción de parámetros


    Después de que se completa la iteración y se obtienen W y w0 apropiados, la amplitud y la fase inicial de cada armónico de la señal original se pueden extraer mediante la siguiente fórmula y, por supuesto, incluyendo w = n * w0 de cada componente armónico. En este punto, una señal en el dominio del tiempo se convierte en una superposición de múltiples armónicos, que completa el análisis del espectro.

                                                                        

                                                                  

        En la fórmula, wn es Wn, y N es el número de componentes fundamentales y armónicos. Entre ellos, dado que el rango de valores de arctan es solo entre [-0.5pi, 0.5pi], pero el ángulo real es entre [-pi, pi], debe basarse en la relación positiva y negativa entre wn y wN + n Ajuste el valor de la fase inicial.


implementación del código matlab 

    Usando las señales probadas en la tesis para la prueba, obtenemos mejores resultados que la tesis. Los parámetros de la señal de prueba se muestran a continuación.

                                                 

        La frecuencia fundamental es de 50,2 Hz, la frecuencia de muestreo es de 1000 Hz ym = 80.

        Use 80 puntos solo para hacer un ciclo grande. Bajo la condición de que se conozca w0 = 50.2Hz, se pueden obtener buenos resultados, pero después de establecer el valor inicial de w0 en la frecuencia de potencia de 50Hz, aumenta la dificultad de optimización y el aprendizaje. La tasa no puede ser demasiado alta, y es necesario realizar 1000 ciclos tan grandes para estimar el error cero básico de la señal original. Además, bajo la condición de este parámetro, si el valor inicial de w0 es menor que aproximadamente 48.3, entonces la brecha entre el espectro finalmente analizado y el espectro real es muy grande, pero el espectro estimado básicamente puede ajustarse a la señal original, lo que indica que se trata de un local La solución óptima, probada de muchas maneras, no puede salirse de este punto de error mínimo local.

clear all
An = [1.00,0.02,0.10,0.01,0.05,0.00,0.02,0.00,0.01];       %实际的基波与谐波的幅值
Bn = [-23.10,115.60,59.30,52.40,123.8,0.0,-31.80,0.0,-63.70];  %谐波幅值
F1 = 50.2;

Ts = 1/1000;
y = zeros(1,80);
W = 2*rand(1, 19) - 1;   %随机 W
w = 2*pi*50;
Cn = zeros(1,19);
a = 0.1;
E2 = 0;
I = zeros(1,9);
Wa = zeros(1,9);
Wb = zeros(1,9);
P = zeros(1,9);
Q = zeros(1,9);
for q = 1:1000   %做epoch
y = zeros(1,80);
y1 = zeros(1,80);
y2 = zeros(1,80);
    for k = 1:80
        Cn(1) = 1;
        for n = 1:9
            y(k)=y(k)+An(1,n)*sin(2*pi*n*F1*k*Ts+Bn(1,n)*pi/180);   %实际的信号值,在t = k*Ts时
            Cn(n+1) = cos(n*w*k*Ts);
            Cn(n+10) = sin(n*w*k*Ts);
            I(n) = n;
            Wa(n) = W(n+1);
            Wb(n) = W(n+10);
            P(n) = Cn(n+1);
            Q(n) = Cn(n+10);
        end
        y1(k) = W*Cn';                                      %预测的信号值,在t = k*Ts时
        E(k) = y(k)-y1(k);
        w = w + 0.4*E(k)*k*Ts*sum(I'.*Wb'.*P'-I'.*Wa'.*Q');
        W = W + 0.1*E(k)*Cn;
    end
end
F2 = w/2/pi;
for i = 1:9
    An1(i) = sqrt(W(i+1)*W(i+1)+W(i+10)*W(i+10));
    if (W(i+10)>0)
        Bn1(i) = atan(W(i+1)/W(i+10))*180/pi;
        elseif (W(i+10)<0)&(W(i+1)>0)
                  Bn1(i) = atan(W(i+1)/W(i+10))*180/pi+180;  
        elseif (W(i+10)<0)&(W(i+1)<0)
               Bn1(i) = atan(W(i+1)/W(i+10))*180/pi-180;  
    end
    E2 = E2+(An(i)-An1(i))^2;
end
for k = 1:80
    for n = 1:9
        y2(k)=y2(k)+An1(1,n)*sin(2*pi*n*F1*k*Ts+Bn1(1,n)*pi/180);   %实际的信号值,在t = k*Ts时
    end
end

E2 = sqrt(E2)

figure(1);
plot(E.^2)
figure(2)
plot(y1)
hold on;
plot(y)

El resultado 


1. La situación de error y ajuste cuando solo se realiza un ciclo grande. Se puede ver que el error de predicción básico al principio, después de 30 puntos de entrenamiento, el error de predicción se reduce significativamente, es decir, la función de la función de restauración del espectro estimada actual y la función original son cada vez más pequeñas, y el descenso del gradiente juega un papel importante.

              

2. Errores y ajustes durante 1000 ciclos grandes. Por enésima vez, el error se ha acercado a cero, y la función restaurada por el espectro de frecuencia estimado se ve casi exactamente igual a la función original, completamente ajustada.

                

3. Los parámetros espectrales estimados en el momento de un ciclo grande son los siguientes

        La amplitud armónica de la señal y la fase inicial de cada armónico.

       

       

      La amplitud de los armónicos analizados por el algoritmo y la fase inicial de cada armónico.

       

       

        

      En este momento el error sigue siendo grande.

4. Los parámetros espectrales estimados a 1000 ciclos del ciclo grande son los siguientes

       La asignación armónica real de la señal y la fase inicial de cada armónico.

       

       

        La amplitud de los armónicos analizados por el algoritmo y la fase inicial de cada armónico. 

       

       

       

      A través de los resultados experimentales, se puede encontrar que la red neuronal se utiliza para realizar análisis de espectro en una señal con puntos de muestreo limitados, pero cuando el número de iteraciones es lo suficientemente alto, el error se puede controlar por debajo de una milésima.


 Referencia:


    Wang Xiaohua, He Yigang. Un nuevo algoritmo de análisis armónico de alta precisión basado en la red neuronal para el sistema de energía [J]. Tecnología de red. 2005.

  

28 artículos originales publicados · Me gustaron 34 · Visitantes más de 20,000

Supongo que te gusta

Origin blog.csdn.net/sinat_35907936/article/details/102806452
Recomendado
Clasificación