Reduciendo el orden de la función de transferencia manteniendo la misma respuesta

Guión:

He estado leyendo el libro de ingeniería de control moderno de Ogata y trabajando en varios ejercicios para mejorar mi comprensión de los principios básicos de control. Encontré el siguiente ejemplo que estoy luchando por resolver.

Estoy atascado con la reducción del orden de mi función de transferencia mientras mantengo la misma (o muy similar) respuesta.

Estoy modelando un sistema que incluye una parte mecánica y una eléctrica. La función de transferencia general para mi sistema es de quinto orden.

La constante de tiempo para la parte eléctrica es muy pequeña en comparación con las constantes de tiempo mecánicas y debido a esto podemos reemplazar el sistema eléctrico con una ganancia y obtener un sistema de cuarto orden equivalente.

Como ejemplo, mi sistema es similar a este (tomado del libro de control de Ogata ):

ingrese la descripción de la imagen aquí

Esta es mi función de transferencia e incluye tanto las partes mecánicas como eléctricas de mi sistema:

ingrese la descripción de la imagen aquí

Quiero reducir el sistema de 5º orden, a un sistema de 4º orden, manteniendo la misma respuesta.

Lo que he probado:

Para saber si he reducido el sistema correctamente, diseñé el diagrama de bloques de mi modelo en Simulink.

ingrese la descripción de la imagen aquí

Esta es la respuesta a una señal de chirrido :

ingrese la descripción de la imagen aquí

Mi idea era usar la respuesta anterior para ver si he reducido la función de transferencia correctamente.

A continuación, procedí a encontrar los polos, ceros y ganancia de mi sistema. Para hacerlo, utilicé este fragmento de código disponible en MathWorks , con el TF de quinto orden anterior:

b = [0.0001 10];
a = [0.005 5.00010060 0.661600001 61.01102010 2.1101 10];
fvtool(b,a,'polezero')
[b,a] = eqtflength(b,a);
[z,p,k] = tf2zp(b,a) 

El resultado fue el siguiente, que es exactamente lo que esperaba:

ingrese la descripción de la imagen aquí

y el mapa PZ equivalente:

ingrese la descripción de la imagen aquí

Los resultados anteriores muestran el polo asociado con el circuito eléctrico, que está muy a la izquierda. Esto se puede eliminar, reduciendo así el orden de la función de transferencia de orden 5 a orden 4.

Luego, procedí usando zp2tf para eliminar el polo en el extremo izquierdo de la siguiente manera, sin embargo, la salida no parece tener sentido.

z = [-100000]';
p = [
  -0.04 + 0.0347i  % *100
  -0.04 - 0.0347i
  -0.02 + 0.0041i
  -0.02 - 0.0041i
];
k = 0.0200;
[b,a] = zp2tf(z,p,k);
[bnew,anew] = zp2tf(z,p,k);
bnew/200
anew/200

ans =

         0         0         0         0    0.0001   10.0000


ans =

    0.0050    0.0500    0.0001    0.0001    0.0000    0.0000

Esperaba que lo anterior diera como resultado un sistema de cuarto orden, pero claramente estoy haciendo algo mal con mi enfoque.

Estoy atascado reemplazando la parte eléctrica del diagrama de bloques con un bloque de ganancia simple, mientras mantengo la misma (o muy similar) respuesta de salida.

¿Cómo puedo obtener el modelo de diagrama de bloques equivalente para el sistema de cuarto orden?

Se agradecería cualquier sugerencia, sugerencia y / o consejo sobre lo que debo hacer.

Respuestas (1)

El sistema tiene dos polos complejos y uno regular:

     Pole              Damping       Frequency      Time Constant  
                                   (rad/seconds)      (seconds)    

-1.68e-02 + 4.07e-01i     4.13e-02       4.07e-01         5.94e+01    
-1.68e-02 - 4.07e-01i     4.13e-02       4.07e-01         5.94e+01    
-4.32e-02 + 3.47e+00i     1.25e-02       3.47e+00         2.31e+01    
-4.32e-02 - 3.47e+00i     1.25e-02       3.47e+00         2.31e+01    
-1.00e+03                 1.00e+00       1.00e+03         1.00e-03  

El más alto está en 1 krad y podría eliminarse, también podrías deshacerte de los dos más bajos:ingrese la descripción de la imagen aquí

%I see three time constants
tfmotor = tf([0.0001 10],[0.005 5 0.6616 61.1 2.11 10])
damp(tfmotor)

%find all basic transfer functions
[r,p,k] = residue([0.0001 10]*2000,2000*[0.005 5 0.6616 61.1 2.11 10]);

%eliminate highest frequency time constants
[b,a] = residue(r(2:5),p(2:5),k);
tfmotorReduced = tf(b,a)
damp(tfmotorReduced)



[b,a] = residue(r(4:5),p(4:5),k);
tfmotorReduced2 = tf(b,a)
damp(tfmotorReduced2)


%use impulse to show all frequencies (hit it with a dirac delta function, to make all frequencies ring.
figure;impulse(tfmotor,'b'),hold on,impulse(tfmotorReduced,'r'),impulse(tfmotorReduced2,'g')
legend('5-pole system','High frequency pole gone','Only lowest freq pole')

%better way to simulate, you can use chrip, step or any function for input
t = 0:0.001:10;
y =lsim(tfmotor,chirp(t,100,10,1),t); 
figure;bode(tfmotor,'b'),hold on,bode(tfmotorReduced,'r'),bode(tfmotorReduced2,'g')
 legend('5-pole system','High frequency pole gone','Only lowest freq pole')

ingrese la descripción de la imagen aquí

Editar

El primer polo está a 0,4 rad (se muestra en negro) El segundo polo está a 3,4 rad (se muestra en amarillo) El tercer polo está a 1 krad (se muestra en rojo)

Si solo le preocupa construir un controlador (un controlador de segundo orden), el polo principal a 0,4 rad podría controlar las amplitudes más grandes, pero tendría algo de vibración a 3,4 krad porque el controlador no podría responder . Un controlador de cuarto orden podría eliminar las frecuencias a 3,4 rad. En este momento, el polo en 1 krad es insignificante (muy baja amplitud) y no tendría que preocuparse por eso para un controlador

Recuerde que para un ADC de 24 bits y 5 V, -130 dB estaría cerca del nivel de nV, por lo que, a menos que necesite ese tipo de precisión, después de -100 dB probablemente no importe porque ni siquiera podrá construir un controlador para controlar ese nivel. de precisión en presencia de ruido. (también necesitaría un DAC de precisión) La otra advertencia es que si construyó esto con electrónica analógica para el controlador, aún tendrá ruido después de -100dB. Construir controladores en presencia de ruido es un tema para otro día.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Muchas gracias por la respuesta clara y útil. Comparé la respuesta del TF de cuarto orden con el diagrama de bloques de Simulink anterior que presento, y son casi idénticos. He estado tratando de eliminar la parte eléctrica del diagrama de bloques como se indica en la pregunta original. Simplemente reemplazando todo en el cuadro azul con una ganancia de 1 parece conservar la misma respuesta, sin embargo, no hice ningún cálculo para obtener esta ganancia. ¿Hay algún cálculo significativo que se pueda realizar también en el lado del diagrama de bloques para reducir su complejidad?
Serán idénticos si no fuerza la función con más de 1kHz, si ve el gráfico anterior, el único cambio es si se deshace de las 3 constantes de tiempo principales (parte superior para transferir los componentes de la función). Lo más probable es que la electricidad contribuya al polo de 1 kHz, y eso no hace la diferencia. En la mayoría de las aplicaciones, solo necesitaría el polo de 4,07 rad/seg para un modelo de planta y construir un controlador, ya que contribuye a la mayor parte de la 'amplitud' y la mayor parte del contenido de frecuencia del modelo para el motor. Si necesitaba controlar el motor en escalas de tiempo más cortas, use todos los polos
Para reducir la complejidad, deberá encontrar las partes del motor mecánico que contribuyen a los polos de frecuencia más alta. Puede hacer esto intuitivamente, las constantes de tiempo con frecuencias más altas tienen una masa más baja, las frecuencias más bajas tienen una masa más alta (los objetos más grandes se mueven más lento). Lo mismo ocurre con los componentes eléctricos, cuanto más grande es el inductor, más lenta es la constante de tiempo, cuanto más grande es el condensador, más lenta es la constante de tiempo.
Gracias por la explicación, desafortunadamente todavía no estoy seguro de cómo la reducción del integrador 5 del diagrama anterior da como resultado la misma respuesta. No puedo encontrar ninguna información relevante y no puedo explicarla intuitivamente.
Un truco para eliminar una constante de tiempo es suministrar energía al motor a través de una fuente de corriente en lugar de una fuente de voltaje. Por supuesto, esta fuente de corriente tendrá capacidades de voltaje infinitas, pero eso es solo teórico. Significa que cuanto más rápido desee que responda el motor, mayor debe ser el rango de voltaje de salida de su fuente de corriente.
Supongo que ha escrito el TF simbólico, ¿le importaría incluirlo en su pregunta?
Oh, espera, veo que ya obtuviste tu respuesta. :)