01 · Punto de partida
Entre la orden y el valor final
En el tema 40 comparamos el valor que el sistema alcanza al final. Pero un motor que llega a 100 rpm en 0,2 s y otro que lo hace en 8 s son sistemas distintos, aunque ambos terminen en 100. Y uno que llega a 160 antes de volver a 100 puede ser inaceptable si lleva una bandeja de vasos. El comportamiento dinámico importa tanto como el valor final.
Este tema da el vocabulario y los números para describirlo, usando dos sistemas que ya conocemos: un modelo genérico de segundo orden y el motor con control proporcional de posición del tema anterior.
Es el tema que prepara el diseño de controladores: el todo o nada y el proporcional (tema 42), el PID (43) y su ajuste (44) se evalúan con estos mismos números.
02 · La prueba estándar
La respuesta al escalón
La forma estándar de caracterizar un sistema es cambiar la referencia de golpe, de 0 a 1, y registrar la salida. Es la prueba más exigente posible (un salto instantáneo) y la más fácil de interpretar. La curva típica de un sistema que oscila un poco antes de asentarse se mide así:
Cuatro medidas resumen la curva, y una quinta la completa:
- Tiempo de subida
tr: lo que tarda en pasar del 10 % al 90 % del valor final. Mide qué tan rápido reacciona. - Sobreimpulso
Mp: cuánto pasa del valor final en el pico, como porcentaje. Mide qué tanto se pasa. - Tiempo de pico
tp: cuándo ocurre ese máximo. - Tiempo de asentamiento
ts: desde cuándo la salida queda para siempre dentro de una banda (aquí, 2 %) alrededor del valor final. Mide cuánto hay que esperar para que el sistema «esté listo». - Error en régimen permanente
e_ss: la diferencia entre la referencia y el valor al que se asienta, si existe.
Al medir, es habitual tomar la banda del 2 % o del 5 %; lo importante es nombrar la que se usó. El 10 % y el 90 % del tiempo de subida evitan el comienzo y el final de la curva, donde el valor es difícil de ubicar.
03 · Qué tan rápido
Tiempo de subida
Para un sistema de primer orden con constante de tiempo τ (como el motor del tema 40), la salida es 1 − e^(−t/τ) y el tiempo de subida vale aproximadamente 2,2 · τ. En el motor, con τ = 0,5 s, son 1,1 s; con un lazo cerrado que reduce la constante de tiempo a 0,119 s (Kp = 2), serían unos 0,26 s. Realimentar acelera, como vimos.
Para uno de segundo orden, el tiempo de subida depende de la frecuencia natural ωn y del amortiguamiento. Con ωn = 4 rad/s, la simulación da estos tiempos de subida:
0,30 s con ζ = 0,2; 0,37 s con 0,4; 0,53 s con 0,7; 0,84 s con 1,0; y 2,06 s con 2,0. Hay dos lecciones. Primero, a mayor ωn, el sistema es más rápido (tr es del orden de 1/ωn). Segundo, un amortiguamiento bajo da una subida más rápida, y esa velocidad se paga con oscilación. Lo veremos enseguida.
En la práctica, el tiempo de subida está limitado por la física del actuador y no solo por el controlador: ningún motor responde más rápido de lo que su par y su inercia permiten. Un controlador que pide más velocidad de la posible se encuentra con la saturación del tema 40.
04 · Cuánto se pasa
Sobreimpulso y amortiguamiento
El modelo de segundo orden más usado es y'' + 2 · ζ · ωn · y' + ωn² · y = ωn² · r. Tiene dos parámetros:
- La frecuencia natural
ωn(en rad/s): a qué velocidad oscilaría el sistema si no hubiera rozamiento. Fija la escala de tiempos. - El factor de amortiguamiento
ζ(zeta, sin unidades): cuánto rozamiento tiene el sistema respecto de lo que haría falta para que no oscile. Fija la forma de la curva.
Con ζ < 1 el sistema es subamortiguado y sobrepasa. Con ζ = 1 es de amortiguamiento crítico: el más rápido que no sobrepasa. Con ζ > 1 es sobreamortiguado: no sobrepasa, pero es más lento. Para ζ < 1 hay fórmulas cerradas:
Mp = 100 · e^(−π·ζ / √(1−ζ²)) % · tp = π / (ωn · √(1−ζ²)) · ts ≈ 4 / (ζ · ωn)
La primera dice que el sobreimpulso depende solo de ζ, no de ωn. Un ζ = 0,7 sobrepasa un 4,6 % tanto con ωn = 1 como con ωn = 100; lo que cambia es la escala de tiempo. Por eso 0,7 es un valor «clásico»: buena velocidad con poca sobreoscilación.
| ζ | tr | Mp (simulado) | Mp (fórmula) | tp | ts (2 %) | 4 / (ζ · ωn) |
|---|---|---|---|---|---|---|
| 0,2 | 0,30 s | 52,65 % | 52,66 % | 0,80 s | 4,90 s | 5,00 s |
| 0,4 | 0,37 s | 25,35 % | 25,38 % | 0,85 s | 2,10 s | 2,50 s |
| 0,7 | 0,53 s | 4,56 % | 4,60 % | 1,10 s | 1,49 s | 1,43 s |
| 1,0 | 0,84 s | 0 % | 0 % | — | 1,46 s | (no aplica) |
| 2,0 | 2,06 s | 0 % | 0 % | — | 3,72 s | (no aplica) |
La fórmula de ts es una regla práctica, buena para sistemas subamortiguados. Con ζ ≥ 1 no hay oscilación y el asentamiento lo manda el polo lento, por lo que la regla no sirve. Observá algo contraintuitivo: el sistema con ζ = 0,7 se asienta casi igual de rápido que el crítico (1,49 s contra 1,46 s), con una subida mucho más veloz (0,53 s contra 0,84 s), a cambio de un 4,6 % de sobreimpulso; y ambos están muy por delante del sobreamortiguado (3,72 s). Un poco de oscilación puede ser un precio razonable.
¿Y cómo se relaciona con nuestro motor? En el control proporcional de posición del tema 40 (τ · θ'' + θ' = K · u, con u = Kp · (r − θ)) se obtiene un sistema de segundo orden con ωn = √(K · Kp / τ) y ζ = 1 / (2 · √(τ · K · Kp)). Cuanto más ganancia, menos amortiguamiento:
| Kp | ζ | ωn | Mp simulado | Mp fórmula |
|---|---|---|---|---|
| 0,2 | 1,118 | 0,89 | 0,00 % | 0,00 % |
| 0,5 | 0,707 | 1,41 | 4,31 % | 4,32 % |
| 1,0 | 0,500 | 2,00 | 16,28 % | 16,30 % |
| 2,0 | 0,354 | 2,83 | 30,48 % | 30,50 % |
| 5,0 | 0,224 | 4,47 | 48,62 % | 48,64 % |
| 10,0 | 0,158 | 6,32 | 60,45 % | 60,47 % |
Esta tabla es el centro del tema: subir la ganancia hace al sistema más rápido y más oscilante a la vez. En el tema 40 vimos que subir Kp reduce el error y aumenta el ruido; ahora aparece un tercer precio, el sobreimpulso.
05 · Dónde termina
Asentamiento y error en régimen
El error en régimen permanente es lo que queda cuando todo se calmó. Depende de la planta, del controlador y de la entrada. Tres casos que ya viste:
- Planta de primer orden con control proporcional (el motor de velocidad del tema 40). Para un escalón queda un error: con la planta envejecida y Kp = 2, 4,76 rpm antes de la carga y 9,52 con ella.
- Posición con un motor (el motor integra la velocidad: es un integrador). Ante un escalón de posición el error en régimen es cero: la simulación llega a r con un error del orden de 10⁻⁵. El integrador del propio motor garantiza que no se detiene mientras quede error.
- Esa misma posición ante una rampa (la referencia crece a velocidad constante). El motor sigue con un retraso fijo
e_ss = rampa / (K · Kp). Con una rampa de 0,5 unidades/s, la simulación da 0,2495, 0,1245 y 0,0495 para Kp = 1, 2 y 5, frente a los 0,25, 0,125 y 0,05 de la fórmula (la diferencia es el último resto del transitorio).
La lección es doble. Un integrador en el lazo elimina el error ante una referencia constante; un doble integrador, ante una rampa. Y en un lazo real la perturbación entra en algún punto: un integrador dentro del controlador es lo que elimina el error producido por la carga, que es la acción integral del PID (tema 43).
El tiempo de asentamiento y el error en régimen se miden juntos: no tiene sentido hablar de «asentado» sin decir dónde. Hay que fijar la banda y el instante en que se aplica la perturbación; en el tema 40, el error con carga se medía a los 10 s, mucho después del asentamiento.
06 · Cuando todo se descontrola
Estabilidad
Un sistema es estable si, ante una entrada acotada, la salida permanece acotada, y en particular si vuelve al equilibrio cuando se lo perturba. Un lazo cerrado puede volverse inestable aunque la planta sea estable por sí sola: al realimentar, una corrección que llega tarde se suma a la oscilación en lugar de restarla, y cada vuelta es mayor que la anterior.
En el modelo de segundo orden sin retardo, el control proporcional del motor no se vuelve inestable con ninguna ganancia: ζ se acerca a cero pero nunca lo alcanza (Kp = 10 da ζ = 0,158). Las causas reales de la inestabilidad son los retardos y las dinámicas no modeladas: el tiempo de cálculo, la comunicación, el muestreo, el filtro del sensor, la elasticidad de una transmisión, la demora de un calentador. Agreguemos al motor un retardo entre el cálculo y la acción:
| Retardo | Kp = 1 | Kp = 2 | Kp = 5 | Kp = 10 |
|---|---|---|---|---|
| 0 ms | estable (16,3 %) | estable (30,5 %) | estable (48,6 %) | estable (60,5 %) |
| 50 ms | estable (20,6 %) | estable (39,7 %) | estable (70,3 %) | oscila y se amortigua (99,3 %) |
| 100 ms | estable (25,7 %) | estable (51,0 %) | oscila y se amortigua (98,1 %) | inestable |
| 200 ms | estable (38,2 %) | oscila y se amortigua (78,5 %) | inestable | inestable |
La tabla enseña dos cosas. El retardo destruye el amortiguamiento: con Kp = 2 el sobreimpulso pasa de 30,5 % sin retardo a 78,5 % con 200 ms. Y hay un límite: cada retardo admite una ganancia máxima. Con 100 ms, Kp = 10 es inestable y Kp = 5 apenas sobrevive; con 200 ms ya lo es Kp = 5. Un sistema con retardo se «ajusta» bajando la ganancia, o se acerca a un diseño más sofisticado, y nunca se resuelve solo con empeñarse en subirla.
La estabilidad se juzga por el margen. Un sistema «estable» que oscila 20 veces antes de asentarse está en el borde: cualquier cambio de la carga, la temperatura o la batería lo empuja del otro lado. Se diseña con margen: ζ de 0,5 a 0,8, y ganancias bien por debajo de la crítica. Para la clasificación del laboratorio se mira la amplitud del error en los últimos 2 s y se la compara con la de los 2 s anteriores: si crece, inestable; si decrece pero queda, oscila y se amortigua; si es menor que 0,01, estable.
07 · Qué pedirle al sistema
Los compromisos del diseño
Las especificaciones de una respuesta suelen ser números concretos: «sobreimpulso menor al 10 %», «asentamiento en menos de 2 s», «error en régimen menor a 1 rpm». Tienen compromisos entre sí:
| Medida | Al subir la ganancia |
|---|---|
| Tiempo de subida | mejora (menor) |
| Error en régimen | mejora (menor), si hay |
| Sobreimpulso | empeora (mayor): baja ζ |
| Ruido en el actuador | empeora (tema 40) |
| Margen de estabilidad con retardo | empeora |
No existe una ganancia que gane en todo. El diseño consiste en encontrar el mejor equilibrio para la aplicación: un brazo que sostiene vasos tolera poco sobreimpulso; un robot de carreras acepta más. Los temas siguientes agregan herramientas (la acción derivativa que amortigua, la integral que elimina el error, el filtrado) para mejorar el equilibrio, pero no lo eliminan.
Una práctica sensata: antes de ajustar nada, escribir las especificaciones en la forma de la tabla anterior y medirlas siempre con la misma prueba, el mismo escalón y la misma banda. Si no, es imposible saber si un cambio mejoró algo.
08 · Código para la placa
Medir la respuesta en Arduino
El sketch simula el sistema de segundo orden con integración de Euler (con un paso fijo de 1 ms) y mide en línea los tiempos de 10 % y 90 %, el pico y el último instante fuera de la banda del 2 %. Con un sistema real, y vendría del sensor y el escalón sería un cambio de la referencia, registrado en una tabla o enviado por el puerto serie.
// Mide la respuesta al escalón de un sistema de segundo orden: tiempo de subida, sobreimpulso, tiempo de pico, asentamiento.
// y'' + 2*z*wn*y' + wn^2*y = wn^2 * r (r = 1). Integración de Euler semi-implícita con paso fijo.
const float DT = 0.001, T_FIN = 10.0, FINAL = 1.0;
void medir(float wn, float z) {
float y = 0, v = 0, pico = 0, tPico = 0, t10 = -1, t90 = -1, tUlt = 0;
for (long k = 0; k < (long)(T_FIN / DT + 0.5); k++) {
float t = k * DT;
v += DT * (wn * wn * (FINAL - y) - 2.0 * z * wn * v);
y += DT * v;
if (t10 < 0 && y >= 0.1 * FINAL) t10 = t;
if (t90 < 0 && y >= 0.9 * FINAL) t90 = t;
if (y > pico) { pico = y; tPico = t; }
if (fabs(y - FINAL) > 0.02 * FINAL) tUlt = t; // último instante fuera de la banda del 2 %
}
float mp = max(0.0f, (pico - FINAL) / FINAL * 100.0f);
Serial.print("z="); Serial.print(z, 2);
Serial.print(" tr="); Serial.print(t90 - t10, 2); Serial.print(" s");
Serial.print(" Mp="); Serial.print(mp, 2); Serial.print(" %");
if (mp > 0.01) { Serial.print(" tp="); Serial.print(tPico, 2); Serial.print(" s"); }
Serial.print(" ts="); Serial.print(tUlt + DT, 2); Serial.println(" s");
}
void setup() {
Serial.begin(115200);
Serial.println("wn = 4 rad/s");
const float zs[] = {0.2, 0.4, 0.7, 1.0, 2.0};
for (byte i = 0; i < 5; i++) medir(4.0, zs[i]);
}
void loop() {}
La salida repite la tabla del texto: para ζ = 0,2, tr de 0,30 s, Mp de 52,6 % y ts de 4,90 s; para ζ = 0,4, 0,37 s, 25,3 % y 2,10 s; y para ζ = 0,7, 0,53 s, 4,6 % y 1,49 s. Con ζ = 1 y 2 no se muestra tp porque no hay pico. Las diferencias de centésimas con Python, si aparecen, vienen de la aritmética de punto flotante de 32 bits de la placa.
Para medir un sistema real, la técnica es la misma: aplicar el escalón, muestrear la salida a intervalos regulares (tema 37) y recorrer los datos con las mismas definiciones. Medir a mano sobre un gráfico del puerto serie también funciona para una primera estimación.
09 · Exploración interactiva
Laboratorios de respuesta
1. El sistema de segundo orden
Elegí la frecuencia natural y el amortiguamiento. Las líneas punteadas marcan el pico (naranja) y el asentamiento (lima). Los puntos grises delimitan la banda del 2 %.
Mové los controles.
Probá: con ζ = 0,1 la curva oscila durante todo el gráfico; con 0,7 casi no se pasa; con 1 llega sin pasarse; con 2,5 es lenta. Mantené ζ y cambiá ωn: la forma no cambia, solo la escala de tiempo, y el sobreimpulso permanece igual. Con ωn = 4 y ζ = 0,4 se obtienen los valores de la tabla.
2. Posición de un motor con retardo
El motor del tema 40 controlado en posición: una ganancia Kp y un retardo entre el cálculo y la acción. Probá los casos de la tabla de estabilidad y buscá el límite para cada retardo.
Elegí Kp y retardo.
Con retardo cero, ninguna ganancia vuelve inestable al motor; con 100 ms, Kp = 10 sí. Con Kp = 1 se necesita más de 200 ms para que se acerque al borde. Cuanta más ganancia tenga el lazo, menos retardo tolera.
10 · Código ejecutable
Medir la respuesta en Python
El mismo cálculo, con las funciones de medida, la comparación con las fórmulas, el motor con retardo y el error ante una rampa.
Probalo en el navegador. Python se descarga con Pyodide la primera vez y requiere conexión. El código es editable y no controla ningún equipo real.
from math import exp, pi, sqrt
DT = 0.001
def escalon(wn, z, t_fin=10.0):
"""Respuesta al escalón unitario de y'' + 2*z*wn*y' + wn^2*y = wn^2*u (ganancia 1)."""
y, v, serie = 0.0, 0.0, []
for _ in range(round(t_fin / DT)):
v += DT * (wn * wn * (1.0 - y) - 2.0 * z * wn * v)
y += DT * v
serie.append(y)
return serie
def metricas(serie, final=1.0):
n = len(serie)
t10 = next((k for k, y in enumerate(serie) if y >= 0.1 * final), None)
t90 = next((k for k, y in enumerate(serie) if y >= 0.9 * final), None)
pico = max(serie)
k_pico = serie.index(pico)
ult = max((k for k, y in enumerate(serie) if abs(y - final) > 0.02 * final), default=-1)
return {"tr": None if t90 is None else (t90 - t10) * DT,
"mp": max(0.0, (pico - final) / final * 100.0), "tp": k_pico * DT if pico > final * 1.0001 else None,
"ts": None if ult >= n - 1 else (ult + 1) * DT, "ess": final - serie[-1]}
def teoria(wn, z):
if z >= 1.0:
return {"mp": 0.0, "tp": None, "ts": None} # sin sobreimpulso: no hay pico ni regla de 4/(z*wn)
return {"mp": 100.0 * exp(-pi * z / sqrt(1 - z * z)), "tp": pi / (wn * sqrt(1 - z * z)), "ts": 4.0 / (z * wn)}
def servo(kp, retardo=0.0, tau=0.5, k=2.0, t_fin=12.0, rampa=None):
"""Posición de un motor: tau*th'' + th' = k*u; control proporcional u = kp*(r - th), con retardo en la acción."""
th, w, cola = 0.0, 0.0, [0.0] * round(retardo / DT)
serie, errores = [], []
for i in range(round(t_fin / DT)):
r = 1.0 if rampa is None else rampa * i * DT
u = kp * (r - th)
cola.append(u)
u_apl = cola.pop(0)
w += DT * (k * u_apl - w) / tau
th += DT * w
serie.append(th); errores.append(r - th)
return serie, errores
if __name__ == "__main__":
print("Respuesta al escalón de un sistema de segundo orden (wn = 4 rad/s):")
print(" z tr(10-90%) Mp sim Mp teoría tp sim tp teoría ts(2%) ts≈4/(z·wn)")
for z in (0.2, 0.4, 0.7, 1.0, 2.0):
m, t = metricas(escalon(4.0, z)), teoria(4.0, z)
f = lambda v, d=2: " — " if v is None else f"{v:.{d}f}"
print(f"{z:5.2f} {f(m['tr'])} s {m['mp']:6.2f}% {f(t['mp'])}% {f(m['tp'])} {f(t['tp'])} {f(m['ts'])} {f(t['ts'])}")
print("\nMotor con control proporcional de posición (tau = 0,5 s, K = 2): z = 1/(2*raiz(tau*K*Kp))")
print(" Kp z wn Mp sim Mp teoría ts(2%)")
for kp in (0.2, 0.5, 1.0, 2.0, 5.0, 10.0):
wn = sqrt(2.0 * kp / 0.5); z = 1 / (2 * sqrt(0.5 * 2.0 * kp))
s, _ = servo(kp)
m = metricas(s)
print(f"{kp:5.1f} {z:5.3f} {wn:5.2f} {m['mp']:6.2f}% {teoria(wn, z)['mp']:6.2f}% {'—' if m['ts'] is None else format(m['ts'], '.2f') + ' s'}")
print("\nEstabilidad con retardo en el actuador (Kp -> Mp, amplitud del error en los últimos 2 s):")
for retardo in (0.0, 0.05, 0.1, 0.2):
fila = []
for kp in (1.0, 2.0, 5.0, 10.0):
s, e = servo(kp, retardo)
amp = max(abs(x) for x in e[-2000:])
fila.append(f"Kp={kp:4.1f}: Mp {metricas(s)['mp']:6.1f}% amp {amp:8.3f}")
print(f"retardo {retardo:4.2f} s | " + " | ".join(fila))
print("\nError ante una rampa de 0,5 unidades/s (error esperado = rampa / (K*Kp)):")
for kp in (1.0, 2.0, 5.0):
_, e = servo(kp, rampa=0.5)
print(f" Kp={kp:4.1f}: error final {e[-1]:.4f} esperado {0.5 / (2.0 * kp):.4f}")La salida repite las tablas del texto: cinco amortiguamientos con ωn = 4 (sobreimpulso simulado y teórico), seis ganancias del motor, la tabla de retardos y el error ante rampa.
Probá cambiar wn a 8 y comprobar que Mp no cambia y los tiempos se reducen a la mitad. También podés buscar a mano el retardo crítico para Kp = 3.
11 · Método y diagnóstico
Pruebas y diagnóstico
- Definí la prueba: tamaño del escalón, condiciones iniciales, duración y banda de asentamiento.
- Registrá referencia y salida a un período regular (tema 37) y guardá los datos: no se mide bien «a ojo».
- Calculá tr, Mp, tp, ts y e_ss siempre con las mismas definiciones.
- Si hay sobreimpulso, estimá ζ con la relación Mp ↔ ζ y compará con lo esperado.
- Repetí con escalones de distinto tamaño: si las medidas cambian mucho, el sistema no es lineal (saturación, fricción).
- Probá con retardos o filtros agregados a propósito para conocer el margen antes de que aparezcan solos.
- Subí la ganancia de a poco y detenete ante el primer signo de oscilación sostenida.
«El sobreimpulso es siempre malo»
Depende de la aplicación. Si una pieza no puede pasarse de su posición, es inaceptable; si importa llegar rápido, un 5 % o 10 % es un precio razonable. Se especifica, no se prohíbe.
«Si el sistema es estable ya está bien ajustado»
Estable es lo mínimo. Un sistema que oscila durante 20 vueltas es «estable» y no sirve. Se pide además amortiguamiento y margen.
«Más ganancia da siempre una respuesta más rápida»
Hasta cierto punto: baja el tiempo de subida, pero baja ζ, sube el sobreimpulso, y el asentamiento puede empeorar. Con retardo, hay un máximo.
«El retardo es un detalle»
Es una de las causas principales de inestabilidad. Cada milisegundo de cálculo, comunicación o filtrado resta margen.
«El tiempo de asentamiento es cuando llega al valor final»
No: es cuando entra en la banda y no vuelve a salir. Puede llegar al valor, pasarse y volver, y el asentamiento ocurre después.
«El error en régimen es cero si el sistema se ve bien en el gráfico»
Un error del 2 % es difícil de ver en un gráfico. Se calcula con los datos, no con la vista.
12 · Práctica guiada
Predecí antes de comprobar
1. Estimar el amortiguamiento
Una respuesta al escalón sobrepasa un 25 %. ¿Qué ζ tiene aproximadamente y cuánto sobrepasaría con un ωn el triple?
Ver solución
Corresponde a ζ ≈ 0,4 (25,38 % en la tabla). Con ωn el triple sobrepasaría lo mismo, porque Mp depende solo de ζ; solo se reducen los tiempos a un tercio.
2. Tiempo de pico
Para ωn = 4 y ζ = 0,4, ¿cuánto vale tp según la fórmula?
Ver solución
tp = π / (4 · √(1 − 0,16)) = π / (4 · 0,9165) = 0,857 s. La simulación da 0,85 s.
3. El motor con Kp = 1
Calculá ζ y ωn del motor de posición con Kp = 1 (τ = 0,5; K = 2) y estimá el sobreimpulso.
Ver solución
ωn = √(2 · 1 / 0,5) = 2 rad/s; ζ = 1 / (2 · √(0,5 · 2 · 1)) = 0,5. El sobreimpulso es 100 · e^(−π · 0,5 / 0,866) = 16,3 %, que coincide con la tabla.
4. Cuánta ganancia para no pasarse
Con ese motor se quiere que no sobrepase. ¿Cuál es el mayor Kp posible?
Ver solución
Se necesita ζ ≥ 1, es decir, 2 · √(τ · K · Kp) ≤ 1, o Kp ≤ 1 / (4 · τ · K) = 1 / 4 = 0,25. Con ese valor el motor es muy lento (ωn = 1 rad/s). Si se pide también rapidez, hace falta otra estructura (por ejemplo, la acción derivativa del tema 43).
5. Error ante rampa
El mismo motor debe seguir una rampa de 2 unidades/s con un error no mayor a 0,2. ¿Qué Kp hace falta?
Ver solución
El error vale rampa / (K · Kp) = 2 / (2 · Kp) = 1 / Kp ≤ 0,2, entonces Kp ≥ 5. Con Kp = 5 el sobreimpulso ante un escalón es del 48,6 %: el requisito de seguimiento choca con el de amortiguamiento.
6. Retardo
Se usa Kp = 5 y se mide una demora total de 100 ms entre el cálculo y la acción. ¿Qué esperás, y qué harías?
Ver solución
Según la tabla, el sistema oscila y se amortigua con un sobreimpulso del 98 %: está cerca del límite. Se baja la ganancia (Kp = 2 da 51 %, estable), se reduce el retardo (período de control más corto, menos filtrado) o se agrega amortiguamiento con acción derivativa.
7. Asentamiento
Un sistema subamortiguado con ζ = 0,5 y ωn = 2 rad/s. ¿Cuánto tarda aproximadamente en asentarse en la banda del 2 %?
Ver solución
ts ≈ 4 / (ζ · ωn) = 4 / (0,5 · 2) = 4 s. La simulación del motor con Kp = 1 (que tiene esos mismos valores) da 4,03 s.
13 · Síntesis
Ideas para recordar
- La respuesta al escalón se resume con tiempo de subida, sobreimpulso, tiempo de pico, tiempo de asentamiento y error en régimen.
- El modelo de segundo orden queda definido por ωn (la escala de tiempo) y ζ (la forma de la curva).
- El sobreimpulso depende solo de ζ:
Mp = 100 · e^(−π·ζ/√(1−ζ²)) %; el asentamiento es del orden de 4 / (ζ · ωn). - ζ = 1 es el amortiguamiento crítico; ζ ≈ 0,7 es un buen compromiso entre rapidez y sobreoscilación.
- En el motor de posición con control proporcional, subir Kp aumenta ωn y disminuye ζ: más rápido y más oscilante.
- El error en régimen depende de la planta y de la entrada: un integrador anula el error ante escalón; una rampa deja un error rampa / (K · Kp).
- Los retardos reducen el amortiguamiento y fijan una ganancia máxima; pasada esa ganancia el lazo es inestable.
- No hay ganancia que mejore todo: se eligen especificaciones y se mide siempre con la misma prueba.
¿Listo para el tema 42?
Antes de avanzar, tomá el motor de posición del laboratorio y anotá, para Kp = 2 y Kp = 5, el sobreimpulso, el asentamiento y el comportamiento con 100 ms de retardo. Escribí cuál elegirías para un brazo que lleva una taza.
En el próximo tema aplicamos todo esto a los primeros controladores: el control todo o nada y el proporcional, con sus histéresis, sus oscilaciones y sus errores.