Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Por:
Medellín-Antioquia
2021
Speed motor
PID
A partir del problema principal, las ecuaciones dinámicas en el dominio de Laplace y la función de
transferencia de bucle abierto del motor de CC son las siguientes.
La estructura del sistema de control tiene la forma que se muestra en la figura siguiente.
Para una referencia de paso de 1 rad / seg, los criterios de diseño son los siguientes.
Primero intentemos emplear un controlador proporcional con una ganancia de 100, es decir
C (s) = 100. Para determinar la función de transferencia de lazo cerrado, usamos el comando de
retroalimentación. Agregue el siguiente código al final de su archivo-m.
Ahora examinemos la respuesta al escalón de circuito cerrado. Agregue los siguientes comandos al
final de su archivo-m y ejecútelo en la ventana de comandos. Debe generar el gráfico. Puede ver
algunas de las características del sistema haciendo clic con el botón derecho en la figura y
seleccionando Características en el menú resultante. En la siguiente figura, se han agregado
anotaciones específicamente para el tiempo de establecimiento, la respuesta máxima y el estado
estable.
En el gráfico anterior, vemos que tanto el error de estado estable como el sobreimpulso son
demasiado grandes.
Recuerde de la página Introducción: Diseño del controlador PID que el aumento de la ganancia
proporcional K_p reducirá el error de estado estable. Sin embargo, recuerde también que
aumentar K_p a menudo da como resultado un mayor sobre impulsó, por lo tanto, parece que no
todos los requisitos de diseño se pueden cumplir con un controlador proporcional simple.
Este hecho se puede verificar experimentando con diferentes valores de K_p. Específicamente,
puede emplear Control System Designer ingresando el comando controlSystemDesigner (P_motor)
o yendo a la pestaña APPS y haciendo clic en el ícono de la aplicación en Control System Design
and Analysis y luego abriendo un gráfico de respuesta de paso de ciclo cerrado desde el New Plot
pestaña de la ventana del Diseñador del sistema de control como se muestra a continuación.
Después de eso, puede hacer clic con el botón derecho en el gráfico y seleccionar Editar
compensador. A continuación, puede variar la ganancia de control en la ventana del editor del
compensador y ver el efecto resultante en la respuesta al paso de bucle cerrado como se muestra
a continuación.
Un poco de experimentación verifica lo que anticipamos, un controlador proporcional es
insuficiente para cumplir con los requisitos de diseño dados; Se deben agregar términos derivados
y / o integrales al controlador.
agregar un término integral eliminará el error de estado estable a una referencia de paso y un
término derivado a menudo reducirá el sobreimpulso. Probemos con un controlador PID con K_i
y K_d pequeños. Modifique su archivo-m para que las líneas que definen su control sean las
siguientes. La ejecución de este nuevo archivo-m le proporciona el gráfico que se muestra a
continuación.
La inspección de lo anterior indica que el error de estado estable va de hecho a cero para una
entrada escalonada. Sin embargo, el tiempo que se tarda en alcanzar el estado estable es mucho
mayor que el tiempo de estabilización requerido de 2 segundos.
Para la configuración del problema original y la derivación de las ecuaciones anteriores, consulte la
página Velocidad del motor de CC: Modelado del sistema. Estas ecuaciones de espacio de estado
tienen la forma estándar que se muestra a continuación, donde el vector de estado
Para una referencia de paso de 1 rad / seg, los criterios de diseño son los siguientes.
J = 0.01;
b = 0.1;
K = 0.01;
R = 1;
L = 0.5;
A = [-b/J K/J
-K/L -R/L];
B = [0
1/L];
C = [1 0];
D = 0;
sys = ss(A,B,C,D);
Dado que ambas variables de estado en nuestro problema son fáciles de medir (simplemente
agregue un amperímetro para la corriente y un tacómetro para la velocidad), podemos diseñar un
controlador de retroalimentación de estado completo para el sistema sin preocuparnos por tener
que agregar un observador. La ley de control para un sistema de retroalimentación de estado
completo tiene la forma u = r - Kc x y el esquema asociado se muestra a continuación.
sys_order = order(sys)
sys_rank = rank(ctrb(A,B))
Por lo anterior, sabemos que nuestro sistema es controlable ya que la matriz de controlabilidad es
de rango completo. Primero colocaremos los polos en -5 + i y -5-i (tenga en cuenta que esto
corresponde a un C = 0.98 que da cerca del 0% de sobreimpulso y un sigma = 5 que proporciona
un asentamiento de 0.8 segundos tiempo). Una vez que hemos determinado las ubicaciones de los
polos que deseamos, podemos usar los comandos de MATLAB place o acker para determinar la
matriz de ganancia del controlador, Kc , para lograr estos polos. Usaremos el comando place ya
que numéricamente está mejor condicionado que acker. Sin embargo, si quisiéramos colocar un
poste con multiplicidad mayor que el rango de la matriz B, entonces tendríamos que usar el
comando acker. Agregue el siguiente código al final de su archivo-m. La ejecución en la ventana de
comandos generará la salida de matriz de ganancia de retroalimentación a continuación.
p1 = -5 + 1i;
p2 = -5 - 1i;
Kc = place(A,B,[p1 p2])
Kc =
12.9900 -1.0000
Volviendo a las ecuaciones del espacio de estados en la parte superior de la página, vemos que al
sustituir la ley de retroalimentación de estados u = r - Kcx por u se obtiene la siguiente expresión.
Luego podemos ver la respuesta de ciclo cerrado simplemente agregando las siguientes líneas al
final de su archivo-m. Ejecutar su archivo-m en la ventana de comandos le dará el gráfico que se
muestra a continuación.
t = 0:0.01:3;
sys_cl = ss(A-B*Kc,B,C,D);
step(sys_cl,t)
grid
Podemos encontrar este factor N empleando la función definida por el usuario rscale.m como se
muestra a continuación.
Nbar = rscale(sys,Kc)
Nbar =
13.0000
Ahora puede trazar la respuesta al paso agregando las líneas de código anteriores y siguientes a su
archivo-m y volviendo a ejecutarlo en la línea de comando.
t = 0:0.01:10;
step(sys_cl*Nbar,t)
grid
Haga doble clic en el bloque Motor de CC, asegúrese de que la parametrización del
modelo esté configurada en "Por parámetros de circuito equivalentes"
Establezca la resistencia del inducido en "1 ohmio"
Establezca la inductancia de la armadura en "0.5 H"
Establezca Definir back-emf o torque constante en "Specify back-emf constant"
Establezca la constante Back-emf en "0.01 V / (rad / s)"
En la pestaña Mecánica, establezca la inercia del rotor en "0,01 kg * m ^ 2" y la
amortiguación del rotor en "0,1 N * m / (rad / s)".
Tenga en cuenta que dado que la constante de par del motor y la constante de fem
inversa son iguales si las unidades son consistentes, solo necesitamos definir una de las
dos.
Conecte el puerto R del sensor de movimiento rotacional ideal al puerto R del motor de CC
Conecte el puerto C del motor de CC a la referencia de rotación mecánica
Conecte el puerto C del sensor de movimiento de rotación ideal a la referencia de rotación
mecánica
Conecte el puerto - del sensor de corriente al puerto + del motor de CC
Conecte el puerto + del sensor de corriente al puerto + de la fuente de voltaje controlado
Conecte el puerto - de la fuente de voltaje controlado a la referencia eléctrica
Conecte el puerto - del motor de CC a la referencia eléctrica
A continuación, tenemos que conectar las señales de entrada y las medidas a los bloques
de entrada y salida. Esto nos permitirá controlar el motor usando Simulink.
Haga clic una vez en el diagrama (pero no en un bloque) y presione CTRL-A para
seleccionar todos los bloques
Mantenga presionada la tecla Shift y haga clic en el bloque de paso y el alcance de la señal
de velocidad para deseleccionar esos bloques
Presione CTRL-G para crear un subsistema
Cambiar el nombre del subsistema "Subsistema de modelo de motor"