Skip to content

Instantly share code, notes, and snippets.

@Javi
Created October 30, 2019 20:53
Show Gist options
  • Save Javi/b71ea730d5372f7d5a13b4af15664382 to your computer and use it in GitHub Desktop.
Save Javi/b71ea730d5372f7d5a13b4af15664382 to your computer and use it in GitHub Desktop.
TC

controlador: control + corrector

en sistemas: output = modificador * input

Funcion de transferencia G global de un sistema de control LINEAL ABIERTO

  • Gg = salida (en estado estable) / entrada (en estado estable)

osea que es despues de un rato, no inmediato todo

tienen unidades dobles porque se transfieren (rewards por plata, calor por voltaje, etc), que representan el primero y el ultimo al reves (por si hay muchas transfers)

Transferencia GLOBAL en un LINEAL CERRADO

G = salida / error

H = salida / medicion

  • f. de transferencia global Gg = salida/entrada = G / (1+GH)

solo valido para retroalimentacion negativa porque ahi e = entrada - medicion

en positiva es

  • f. de transferencia = salida/entrada = G / (1-GH)

glosario: GH = transferencia de Lazo cerrado G = transferencia de trayectoria directa (en lazo cerrado)

Error en estado estable

  • E = salida - entrada
  • G = salida / entrada
  • E = entrada * (Gg - 1)
  • E (lazo cerrado) = entrada * { (G/(1+GH)) -1 }

datazo: si el 1 no vale nada en montos grandes, simplificas G y queda

  • E (lazo cerrado) = entrada * { 1/H - 1 }

y eso es alta ventaja porque es menos sensible a los cambios en las funciones de trasnferencia de arriba (G), tipo 10% es bocha en abierto y poco en cerrado

  • Gg = G / (1+GH) pasa a ser
  • Gg = 1/H

Perturbaciones

Se agregan al sistema en cierto punto y dan una formula

  • salida = Gg * entrada + errorPorPerturbacion

Ej: en un lazo cerrado justo perturbando donde es la medicion queda

  • salida = entrada * Gg + perturbacion * {1/[1+G1*G2*H]}

En lazo abierto no hay ese coeficiente final loco modificante, asi que cerrada tiene rechazo a perturbaciones (en la medicion, si no, capaz una G modifica la perturbacion pero cerrado resiste mas)

  • en lazo cerrado resiste especificamente un factor 1/(1+Gd*H) agregado al modificador que tenga, a lazo abierto le falta eso

Modificaciones

en lazo abierto modificar algun G cambia todo, en lazo cerrado como con numeros grandes se simplifican los G en la funcion de transferencia (queda 1/H), cambiar G no cambia nada

Estabilidad

Un sistema es estable si ante entrada o perturbacion acotada, la salida es acotada (ejemplo de pelota en plato). Solo pasa en lazo cerrado.

Reglas para transformar Laplace

Laplace es cambiar una funcion de un dominio a otro para facilitar diferenciales haciendo F(s) = int 0 a inf ( f(t) * e ^(-st) dt )

  • Suma directo f1(t)+f2(t) => F1(s)+F2(s)
  • Resta directo
  • multiplicacion directo => a * f(t) = a * F(s)
  • Retraso: f(t-T) => e^(-Ts) * F(s) para T >= 0
  • PIOLA derivadas: f'(t) => sF(s) - f(0)
  • y asi derivada tipo serie, hasta llegar a s^0: f'''(t) => s^3 * F(s) - s^2 * f(0) - s * f'(0) - 1 * f''(0)
  • Integral: int(0 a inf de f(t)) => (1/s) * F(s)

Datazo: Limite infinito en laplace es el 0 para t y al reves. En esos casos capaz convenga inventar una s en ambos miembros para simplificar y calcular.

Fracciones parciales

Tenes que factorizar el denominador, buscar suma de numeradores separables donde puedas simplificar uno de los factores del denominador (Ad1+ Bd2), y luego ir igualando la variable a distintos numeros que cancelen A o B la otra.

Algebra de bloques

  • Gd (o G a secas) en SERIE = G1 * G2 * G3
  • Prealimentacion (paralelo mismo sentido) = G1 + G2
  • Lazo cerrado = G / (1 + GH)

Ojo los signos de (X) si son + o -

  • Cuando hay multiples entradas, el resultado es la suma de la funcion Gg de cada variacion del sistema anulando todas menos una

Error en estado estable (redux)

Aca el error es (entrada - salida) (calculo que porque maneja tiempo) asi que si transformas el sistema a retroalimentacion unitaria (con linea limpia por abajo) queda siempre:

  • (abierto) E(s) = entrada(s) * ( 1 - Go(s) )
  • (cerrado) E(s) = entrada(s) * {1 / (1 + Go(s) ) }

Y esa Go es la de la funcion blargh que dice abajo.

Por teorema de valor inicial y final (lo de los limites al reves para t) sale que el erorr al t infinito (y estable) es

  • ess = lim(s a 0)(s * E(s))

Función de transferencia en lazo abierto del sistema en lazo cerrado (Go)

Es cuando pasas un lazo cerrado con H a uno con H=1 envolviéndolo en un lazo cerrado pero poniendole (por algun motivo) -1 a la transferencia H. De ahi queda que el Gg de esto es:

  • Go = G(s) / { 1 + [G(s) * (H(s) - 1)] }

Tiene la forma blargh

K * (s^n... + a0) /

s^q * (s^m... + b0)

con m y n constantes y distintas y K constante y q constante y lleno de a's y b's en cada término que se anulan cuando s tiende a 0 menos el último.

Clasificación del sistema

La clase o tipo del sistema viene de la funcion Go (cuando H es 1). Tiene una forma de mierda y el exponente q de la s suelta como factor en el denominador es la que le da el tipo o clase.

Error ss en entrada escalón (1/s)

  • chocloGo = 1 / (1+Go)
  • sE(s) donde E(s) es chocloGo * 1/s cancela las s (esto para el limite de ess)

Da que por la forma de Go, cuando no es de clase 0 el error que es un limite tiende a 0 en el infinito. Cuando si es de clase 0 se simplifica Go a la forma

  • Go = Kp = Ka0/b0 = Constante del error de posición.
  • ess = 1 / (1+Kp) Esto tiene un gráfico en la pag 180.

Error ss en entrada rampa (1/s^2)

Aca aparece Kv que es la constante del error de velocidad. Al simplificar el limite de ess queda

  • ess = 1 / Kv

  • Kv = lim(s a 0)(s * Go)

  • Para clase 0 -> Kv = 0 => ess = inf

  • Para clase 1 -> Kv = K = Ka0/b0 => ess = 1/Kv

  • Para clase 2+ -> Kv = K/s+ = inf => ess = 0

Hay gráfico en la 182 donde se ve la rampa salida y la rampa entrada paralelas con el error cuando es tipo 1

Tip: si la rampa tiene coeficiente A el error es A/Kv

Error ss en la entrada parabólica (1/s^3)

Aparece Ka, constante de error de aceleración.

  • ess = 1/Ka

  • Ka = lim(s a 0)(s^2 * Go)

  • Para clase 0 -> Ka = 0 => ess = inf

  • Para clase 1 -> Ka = 0 => ess = inf

  • Para clase 2 -> Ka = K = Ka0/b0 => ess = 1/Ka

  • Para clase 3+ -> Ka = K/s+ = inf => ess = 0

Gráfico en 184 y si hay coeficiente ess = A/Ka en tipo 2

Errores en ss para entradas unitarias

Esto continúa así en gral. Por principio de superposición los errores se suman si hay varias entradas.

Estabilidad por raices

Un sistema lineal es estable si todos los polos (raices del denominador) tienen componente real negativa (caen en el semiplano izquierdo de los numeros complejos) PARA DOMINIO S. Los polos son las raices del denominador de la funcion de transferencia. Es criticamente estable si tiene 0 real.

En dominio z, la parte real y el coeficiente imaginario deben ser menor a 1 para estable, o 1 para criticamente estable (dentro del circulo unitario o en el borde) en TODAS las raices.

Routh-Hurwitz para raices jodidas

  • Si algun coeficiente del polinomio jodido es negativo, el sistema es inestable.
  • Si alguno es 0, de ultima es criticamente estable pero hasta ahi.

Luego de eso, haces el quilombo jodido de la pagina 200 y queda el cuadro. Si la primea columna es toda positiva, el sistema es estable. La cantidad de cambios de signo es la cantidad de polos con parte real positiva.

PLC

Hay botones de dejar pasar, botones de prohibir pasar, sets y resets de booleanos, timers y contadores.

Transformada Z

Se usa para sistemas discretos muestreados, donde tenes elementos medidos cada T quantums.

  • F(z) = sumatoriaInf( f(k) * z^(-k) )

Donde k es la cantidad de retardos acumulados.

  • Es lineal como la transformada de Laplace, para suma, resta y extraccion de factores constantes

Asi multiplicar (n veces) por z es un adelanto enel tiempo, y dividir por z es un retraso en el tiempo.

  • Z{f(k+n)} = z^nF(z) - (z^n * f(0) + z^n-1 * f(1) ... hasta n-1 )

Transferencia de pulso

  • G(z) = Y(z) / X(z)

Si no hay valores distintos de 0 antes del pulso inicial queda facil

  • Z{f(k+n)} = z^nF(z)

Se puede simplificar la G con fracciones simples o división larga.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment