Diseño de controlador PI adaptativo basado en el ajuste en línea en tiempo real basado en FPGA de los parámetros de control, incluido el programa de prueba del banco de pruebas

Tabla de contenido

1. Efecto de simulación de algoritmo

2. Los algoritmos implican una visión general del conocimiento teórico

3. Programa central de Verilog

4. Archivo de código de algoritmo completo


1. Efecto de simulación de algoritmo

Este es un controlador PI, no un controlador PID.

Los resultados de la simulación de vivado2019.2 son los siguientes:

2. Los algoritmos implican una visión general del conocimiento teórico

        El controlador PID (controlador proporcional-integral-derivativo) consta de la unidad proporcional P, la unidad integral I y la unidad diferencial D. A través de la configuración de Kp, Ki y Kd tres parámetros. Los controladores PID son principalmente adecuados para sistemas cuyas características lineales y dinámicas básicas no cambian con el tiempo.

        Diagrama de bloques de un controlador PID Un controlador PID es un componente de circuito de retroalimentación común en aplicaciones de control industrial. El controlador compara los datos recopilados con un valor de referencia y usa la diferencia para calcular un nuevo valor de entrada que pretende llevar los datos del sistema al valor de referencia o permanecer en él. A diferencia de otras operaciones de control simples, el controlador PID puede ajustar el valor de entrada de acuerdo con los datos históricos y la tasa de ocurrencia de la diferencia, lo que puede hacer que el sistema sea más preciso y estable. Se puede demostrar matemáticamente que un circuito de retroalimentación PID puede mantener estable el sistema mientras que otros métodos de control conducen a errores de estabilidad del sistema o repeticiones del proceso. 

       Un controlador con una ley de control proporcional-integral-derivada se llama controlador PID. Esta combinación tiene las características respectivas de las tres leyes básicas, y su ecuación de movimiento es:

        Se puede ver que cuando se utiliza el controlador PID para la corrección en serie, además de mejorar el tipo de sistema en un nivel, también proporcionará dos puntos cero reales negativos. En comparación con el controlador PI, el controlador PID no solo tiene la ventaja de mejorar el rendimiento de estado estable del sistema, sino que también proporciona un punto cero real negativo, por lo que tiene mayores ventajas para mejorar el rendimiento dinámico del sistema. Por lo tanto, en los sistemas de control de procesos industriales, los controladores PID se utilizan ampliamente. La selección de los parámetros de cada parte del controlador PID se determina finalmente en la depuración in situ del sistema. Por lo general, la parte integral debe ocurrir en la banda de baja frecuencia de la característica de frecuencia del sistema para mejorar el rendimiento de estado estable del sistema, y ​​la parte diferencial debe ocurrir en la banda de frecuencia media de la característica de frecuencia del sistema para mejorar el rendimiento dinámico del sistema. el sistema. 

       El control PID adaptativo se refiere al control PID adaptativo o la tecnología de control PID de autocorrección formada por la combinación de ideas de control adaptativo y controladores PID convencionales, denominados colectivamente control PID adaptativo.

       Los algoritmos de control adaptativo más utilizados son: control PID adaptativo de varianza mínima, control PID adaptativo de configuración de polos y control PID adaptativo de cancelación de polo cero.
       La idea básica del control PID adaptativo de varianza mínima es: en cada período de muestreo, la varianza mínima de la desviación del sistema se minimiza como índice de rendimiento para la evaluación de la calidad del sistema, y ​​los parámetros de proceso desconocidos se estiman mediante la introducción del algoritmo de mínimos cuadrados. para la identificación en línea Para calcular la cantidad de control PID adaptativo u(t) en cada momento de muestreo.
      La idea básica del control PID adaptativo de configuración de polos es: seleccionar la distribución de polos de lazo cerrado deseada de acuerdo con una cierta estrategia de optimización, y en cada período de muestreo, estimar explícitamente los parámetros del proceso a través del método de mínimos cuadrados recursivos ponderados, y combinar el Ley de control PID para obtener Las ecuaciones de circuito cerrado del sistema que contienen parámetros desconocidos q0, q1 y q2, y luego usar la relación de identidad entre el polinomio característico del sistema y el polinomio característico esperado para obtener los parámetros de control PID en línea, y luego obtener la salida del controlador u(t) en cada momento.
       La idea básica del control PID adaptativo de cancelación de polo cero es: cuando los parámetros del proceso controlado son desconocidos, en cada período de muestreo, se utiliza el algoritmo de mínimos cuadrados recursivos ponderados para identificar explícitamente el modelo de proceso, y en la función de transferencia del controlador PID Los polos y ceros del proceso controlado cancelan parte de los polos y ceros en la función de transferencia del proceso controlado, y así calculan la cantidad de control PID en cada momento, para que el sistema de lazo cerrado opere en un buen proceso de trabajo.

3. Programa central de Verilog

.............................................................				
input              i_clk;
input              i_rst;
input  signed[11:0]i_din;
output signed[23:0]o_pd;
output signed[11:0]Kp_adptive;				
output signed[11:0]Ki_adptive;

reg signed[11:0]o_error;

.............................................................
always @(posedge i_clk or posedge i_rst)
begin
     if(i_rst)
	  begin
	  o_error <= 12'd0; 
	  end
else begin
     o_error <= i_din-o_pd[23:12]; 
     end
end
 
 
//KP
reg signed[23:0]dat1;
reg signed[23:0]dat1d;
always @(posedge i_clk or posedge i_rst)
begin
     if(i_rst)
	  begin
	  dat1 <= 24'd0;
	  dat1d<= 24'd0;
	  end
else begin
     dat1 <= o_error*Kp;
     dat1d<= dat1;
     end
end

//KI
//KI 
reg signed[23:0]dat3;
reg signed[23:0]dat3d;
always @(posedge i_clk or posedge i_rst)
begin
     if(i_rst)
	  begin
	  dat3  <= 24'd0;
	  dat3d <= 24'd0;
	  end
else begin
     dat3d <= o_error*Ki + dat3; 
	  
	  if(dat3d[23:22] == 2'b01 | dat3d[23:22] == 2'b11)
	  dat3d <= dat3d;
	  
     dat3  <= dat3d;
     end
end 
assign o_pd = dat1d  + dat3d;
endmodule
A981

4. Archivo de código de algoritmo completo

V

Supongo que te gusta

Origin blog.csdn.net/hlayumi1234567/article/details/130049816
Recomendado
Clasificación