Está en la página 1de 43

Grado Ingienería Electrónica Robótica y

Mecatrónica (GIERM)

Trabajo
Control Por
Computador
Realizado por:
-Buftea, Alberto Gabriel
-Méndez López, Juan
Introducción
Partimos de un sistema univariable representado por un diagrama de bloques del cual trataremos de
obtener su comportamiento dinámico y diseñar un controlador PID que cumpla unas especificaciones de
funcionamiento.

El sistema es electrónico constituido por cuatro etapas basadas en amplificadores operacionales. Este
está representado en la “figura 1” y su comportamiento viene definido por la función de transferencia
G(s) dada en función de los parámetros (R11, R21, R12, R22, R13, R23, R14, R24, C1, C2 y C3) que vamos
a calcular mediante las fórmulas proporcionadas en la “figura 2” y “figura 3” donde k1, k2, k3 y k4 son
las ganancias de cada etapa y tau1, tau2 y tau3 las constantes de tiempo correspondientes.

Figure 1

Figure 2

Figure 3
Inicialmente el sistema está controlado proporcionalmente en base a una ganancia variable Kp sobre un
amplificador electrónico que actúa en base a la diferencia entre la tensión de referencia “Vr(t)” y la
tensión de la última etapa ”Vs(t)”, como podemos observar en la “figura 4”.
Figure 4

Controlaremos el sistema en tensión a través de un controlador PID analógico que remplazará al


controlador proporcional Kp, luego haremos un control digital PID para lo cual sustituiremos el
controlador PID analógico por un computador añadiendo los dispositivos de muestreo y reconstrucción
pertinentes tal y como indica la “figura 5”.
Figure 5

Por ultimo trataremos la representación en espacio de estado y el diseño del sistema de control por
realimentación del vector de estado.
Desarrollo

1. Ejecutar la aplicación parámetros.m a través del DNI del miembro de mayor edad del
grupo para calcular los parámetros del sistema electrónico
Descargamos el archivo del campus virtual, lo guardamos en un directorio que Matlab reconozca y
obtenemos los parámetros usando como DNI 5109644 el equivalente al miembro de mayor edad del
grupo.

K1 = 1.5429 ; tau1 = 1.5143

K2 = 1.0286 ; tau2 = 0.4571

K3 = 2.0571 ; tau3 = 0.0457

K4 = 1.2857 ;

En las fórmulas proporcionadas imponemos como condición que (R11, R12 R13, R14) sean iguales a 1, así
podemos despejar en las fórmulas y obtener los valores necesarios de todas las resistencias:
𝝉𝟏
𝑹𝟐𝟏 = 𝐾1 = 1,5429; 𝑹𝟏𝟏 = 1; 𝑅11 + 𝑠𝑅21 𝑅11 𝐶1 = 𝑠𝜏1 + 1 -> 𝑅11 𝑅21 𝐶1 = 𝜏1 -> 𝑪𝟏 =
𝑹𝟐𝟏𝑹𝟏𝟏

𝝉𝟐
𝑹𝟐𝟐 = 𝐾2 = 1,0286; 𝑹𝟏𝟐 = 1; 𝑅12 + 𝑠𝑅12 𝑅22 𝐶2 = 𝑠𝜏2 + 1 -> 𝑅12 𝑅22 𝐶2 = 𝜏2 -> 𝑪𝟐 =
𝑹𝟏𝟐𝑹𝟐𝟐

𝝉𝟑
𝑹𝟐𝟑 = 𝐾3 = 2,0571; 𝑹𝟏𝟑 = 1; 𝑅13 + 𝑠𝑅13 𝑅23 𝐶3 = 𝑠𝜏3 + 1 -> 𝑅13 𝑅23 𝐶3 = 𝜏3 -> 𝑪𝟑 =
𝑹𝟏𝟑𝑹𝟐𝟑

𝑹𝟐𝟒 = 𝐾4 = 1,2857; 𝑹𝟏𝟒 = 1;

Tras haber despejado las fórmulas, haciendo los cálculos para los condensadores nos sale estos valores:

𝑪𝟏 = 0.9815; 𝑪𝟐 = 0.4444; 𝑪𝟑 = 0.0222

Finalmente, escogiendo valores de tablas comerciales para estos componentes tenemos:

𝑅21 = 1K5; 𝑅11 = 1K; 𝐶1 = 1;

𝑅22 = 1K; 𝑅12 = 1K; 𝐶2 = 0,47;

𝑅23 = 2K2; 𝑅13 = 1K2; 𝐶3 = 0,22;

𝑅24 = 1K2; 𝑅14 = 1K;

(Resistencias en Ω, Condensadores en µF)


2. Obtener la función de transferencia en s del sistema electrónico (en bucle abierto)
seleccionando los valores de resistencias y condensadores del circuito según catálogo
para obtener las ganancias Ki y constantes de tiempo i asignadas de forma más
aproximada

Nuestras funciones de transferencia para cada amplificador quedan así:

1,5 1 2,2
𝐺1 (𝑆) = − ; 𝐺2 (𝑆) = − ; 𝐺3 (𝑆) = − ; 𝐺4 (𝑆) = −1,2;
1,5𝑠+1 0,47𝑠+1 0,5808𝑠+1,2

Las introducimos en Matlab usando el comando “G = tf(num,[den])” y obtenemos la función


definitiva G(s) usando el comando “Gs = series” para multiplicarlas entre sí.
3. Obtener la función de transferencia en z del sistema de nivel discretizado con T=0.01
(en bucle abierto) y obtener la ecuación en diferencias del sistema electrónico
correspondiente

Para obtener la función de transferencia en z, G(z), usamos el comando “c2d” partiendo de la


G(s) calculada en el apartado anterior. Si no especificamos ningún método “Matlab” utiliza por
defecto el método “zero-order-hold (zoh)”.

En este caso hemos especificado el método “zoh” para que se observe donde deberíamos de
especificar que se use otro método, en caso de necesidad.

Para expresa la ecuación en diferencias consideramos las condiciones iniciales nulas al no


haberse especificado lo contrario. Esta es la ecuación que nos queda:

x(k+3)-2.952x(k+2)+2.904x(k+1)-0.926x(k) = 1.592*10-6u(k+2)+6.293*10-6u(k+1)+1.554*10-6u(k)

En donde x(k) representa la salida y u(k) la entrada de nuestro sistema para k-ésimas
repeticiones.

4. Obtener la descripción en espacio de estado A, B, C y D del sistema electrónico y


calcular las matrices G, H, C y D del sistema por discretizacion para los casos T=0.01 y
T=0.1
Para obtener el sistema en espacio de estados en s podemos calcular las matrices A,B,C,D, usando el
comando “ssdata()” de la forma:

[A,B,C,D] = ssdata(Gs)
Para obtener las matrices G,H,C,D del sistema discretizado usamos el mismo comando “ssdata()” pero
en vez de usar como función de transferencia G(s), usamos la función de transferencia en z, G(z), cual
hemos calculado en el apartado 3. El comando quedaría de la forma.

[G,H,C,D] = ssdata(Gz)

Las matrices anteriormente calculadas son para una T de 0.01s. Si querremos calcularla para una T de
0.1s tenemos que volver a discretizar la función de transferencia Gs usando T = 0.1 usando:

Gz = c2d (Gs, 0.1, ‘zoh’)

Por ultimo volvemos a aplicar el comando anterior a través de cual obtenemos las matrices buscadas,
pero esta vez para una T de 0.1s

[G,H,C,D] = ssdata(Gz)
5. Calcular el error en régimen permanente para el caso de usar controlador
proporcional con ganancia Kp, ante entrada escalón y rampa para los casos continuo y
discreto con T=0.01

Para ello primero definimos como variable simbólica una ganancia “k” y dos variables “s” y “z”
usando el comando “zpk”, lo cual nos permitirá escribir las fórmulas.
>> syms k; >>s=zpk(‘s’); >>z=zpk(‘z’)

Tiempo Continuo

Para calcular el error ante las dos entradas, escalón y rampa, usamos las fórmulas genéricas para
sistemas en tiempo continuo, calculando el límite cuando s tiende a 0.

Error escalón: Error rampa:


Tiempo Discreto

En tiempo discreto definimos como variable simbólica “z” y establecemos el valor del tiempo de
discretización. Luego usamos las fórmulas del tema 4 para calcular los respectivos errores.

Error escalón:

Error rampa:
6. Diseñar un PID analógico utilizando alguno de los métodos experimentales
(Rivera, Rovira) y obtener su discretización aplicando el método Euler.

Estos métodos experimentales asumen un sistema de primer orden, nuestro sistema es de


orden 3, por lo tanto lo primero que debemos hacer es convertir la panta a una de primer
orden.

Para ello asumimos una respuesta con retardo, tal como muestra la ecuación

Para determinar el valor de las constantes d y tau usamos los apuntes del tema 6 diapositiva 37

Entonces, para sacar “d” debemos calcular cuanto tarda nuestro sistema en alcanzar el 0.632 y
el 0,283 de la amplitud total. Luego tan solo usamos la fórmula.
Primero representamos con el comando “ltiview” la salida de nuestro en tiempo continuo G(s).
Esto podemos observarlo en las capturas inferiores.
Sabemos que el valor de la amplitud para el cual se estabiliza es de 3.3, calculamos que 0.632*3.3 = 2.08
y 0.283*3.3 = 0.93

Tenemos los valores de amplitud, en las gráficas podemos ver el tiempo que tarda el sistema en
alcanzarlos, siendo t0.632=2.58s y t0.283=1.38s

Por lo tanto, ya podemos calcular d y tau.


3∗1.38−2.58
d= = 0.78 ; tau = 2.58 – 0.78 = 1.8
2

𝑑
Comprobamos que < 1 así que podemos obtener un PID según los métodos de Lopez o Rovira al ser
𝑡𝑎𝑢
válidas las fórmulas de sintonía. En este caso vamos a hacerlo por el método de Lopez.

Este está basado en la minimización de la integral de una función del error para el caso de cambio en
perturbaciones. Podemos hacerlo según varios criterios cuales penalizan distintos errores, en este caso
lo haremos siguiendo el criterio IAE pues penaliza en un valor intermedio ambos errores, grandes y
prolongados.

El criterio IAE está basado en la definición de la integral del valor absoluto del error y lo implementamos
escogiendo los valores de las constantes de la tabla inferior y sustituyendo en las ecuaciones de sintonía.

Las fórmulas de sintonía están proporcionadas en los apuntes del tema 6, y en ellas despejamos
las ganancias Kp, Ki e Kd.

𝑡𝑎𝑢 𝑑 𝒕𝒂𝒖
= 𝑎∗( )𝑏 -> 𝑻𝒊 = 𝒅 𝒃
𝑇𝑖 𝑡𝑎𝑢 𝒂∗( )
𝒕𝒂𝒖

𝑇𝑑 𝑑 𝑏 𝒅 𝒃
=𝑎∗( ) -> 𝑻𝒅 = 𝒂 ∗ ( ) ∗ 𝒕𝒂𝒖
𝑡𝑎𝑢 𝑡𝑎𝑢 𝒕𝒂𝒖

De las fórmulas sacamos que:


𝑑 𝑏
𝑎∗( )
𝐾𝑝 = 𝑡𝑎𝑢
𝐾

𝑑 𝑏
𝐾𝑝 ∗ 𝑎 ∗ ( )
𝐾𝑖 = 𝑡𝑎𝑢
𝑡𝑎𝑢

𝑑 𝑏
𝐾𝑑 = 𝐾𝑝 ∗ 𝑡𝑎𝑢 ∗ 𝑎 ∗ ( )
𝑡𝑎𝑢

Así:

Kp = 0.783
Ki = 1.348
Kd = 4.369

La expresión de un PID viene definida por la fórmula:

𝐾𝑖
PID = 𝐾𝑝 + + 𝐾𝑑 ∗ 𝑠
𝑠

Así que nuestro PID proporcional desarollado por el método de Lopez es:

𝟏. 𝟑𝟒𝟖
𝑷𝑰𝑫 = 𝟎. 𝟕𝟖𝟑 + + 𝟒. 𝟑𝟔𝟗 ∗ 𝒔
𝒔

Ahora vamos a discretizar nuestro PID mediante el método de Euler. Este método aproxima la
integral bajo f(t) por la suma de rectángulos, lo cual se puede hacer en dos sentidos, hacía atrás
o hacía adelante. En este caso usaremos el método de Euler hacía atrás:

1−𝑧 −1
Este equivale al mapeo 𝑆 = , por lo que tan solo tenemos que sustituir en la expresión del
𝑇
PID que nos ha quedado arriba. Así la expresión del PID queda:

𝑇 ∗ 𝐾𝑖 𝐾𝑑
𝑃𝐼𝐷 = 𝐾𝑝 + −1
+ (1 − 𝑧 −1 )
1−𝑧 𝑇

Con los valores obtenidos según el método de Lopez:

𝑻 ∗ 𝟏. 𝟑𝟒𝟖 𝟒. 𝟑𝟔𝟗
𝑷𝑰𝑫 = 𝟎. 𝟕𝟖𝟑 + + (𝟏 − 𝒛−𝟏 )
𝟏 − 𝒛−𝟏 𝑻

En donde T es el periodo de muestreo en segundos que queramos tomar para realizar la


discretización.
7. Diseñar un controlador vector de ganancias en espacio de estado continuo para que el
sistema deseado presente un par de polos deseados con comportamiento
críticamente amortiguado y exhiba una frecuencia natural de n de 10 ante referencia
de tensión nula, especificando el resto de polos deseados a suficiente distancia de los
anteriores, asumiendo que el estado es observable

Como especificaciones tenemos que Wn = 10 y la ξ = 1 (Para que el sistema sea críticamente


amortiguado). Usamos la ecuación genérica de sistemas de segundo orden para calcular con que
polos se cumplen estas especificaciones.

Tenemos que: 𝑺𝟏 , 𝑺𝟐 = −1 ∗ 10 ± 𝑗 ∗ 10√(1 − 1)^2 = -10

Por lo tanto dos polos deben ir colocados en -10 y el polo que falta lo colocamos del orden de 4
o 5 veces más lejos para que no afecte al comportamiento de nuestro sistema, por lo que
elegimos ponerlo en -50.

Deseamos obtener el vector de ganancias K que representará a nuestro controlador. Lo haremos


por la fórmula de Ackermann por lo que debemos seguir los siguientes pasos.

Primero desarollamos la ecuación característica cual es “det [sI-A+BK] = det[s*I-A] = 0” De allí


obtenemos el siguiente resultado.
(s-10)2 * (s-50) = 0
(s2+100-20s)*(s-50) = 0

S3-70s2+1100s-5000 = 0

Usando el resultado anterior y en virtud del teorema de Cayley-Hamilton ф(A) tiene por
ecuación:
ф(A) = A3-70A2+1100A-5000*I

En el apartado 4 hemos sacado las matrices A y B del espacio de estados de nuestra planta,
cuales necesitamos para calcular ф(A)
Y también necesitamos para obtener la matriz de controlabilidad (M) definida por:

M= [B AB …. An-1B]

Así, introduciéndolo en Matlab resulta:

Para aplicar la fórmula de Akermann debemos calcular la inversa de esta matriz, así, usando el
comando “inv()” de Matlab:

Para finalizar con este apartado, sustituimos las matrices obtenidas en la fórmula de Akkerman
que dice:

Así, en Matlab resulta:

Donde E es un vector de la forma [0 0 1], por lo tanto, nuestro vector de ganancias es:

K = [-37.43 136.60 -625.37]


8. Repetir el diseño en formato digital asumiendo un T=0.01, partiendo de la función de
transferencia discretizada obtenida en 3) y polos deseados obtenidos a partir de la
relación 𝑧=𝑒^s𝑇, asumiendo que el estado es observable

Si nos fijamos en los apuntes del tema 8, en formato digital (tiempo discreto) es el mismo
procedimiento que en formato analógico (tiempo contínuo), solo que usamos la función de
transferencia G(z), y trabajamos con las matrices G y H (cuales hemos obtenido en el apartado
4), quedando la fórmula de Ackermann de la forma:

Sin embargo, Matlab tiene una función predefinida denominada “acker(A,B,P)” que
automáticamente calcula el vector de ganancias K por el método de Ackermann. A y B serían las
respectivas matrices en espacio de estados (G y H en discreta) y P es un vector con los polos
calculados.

Así que procedemos a calcular los polos necesarios. Usando la conversión z=e^st, y sabiendo del
apartado anterior que S1,S2 = -10, calculamos que Z1, Z2 = 0.905. De nuevo, el tercer polo lo
colocamos del orden de 4 o 5 veces más alejado de los otros, para que no afecte al
comportamiento del sistema. Así elegimos Z3=0.181.

Para finalizar este apartado definimos el vector con los polos deseados:

Y por último calculamos el vector de ganancias K, que representa al controlador de nuestro


sistema:

Por lo tanto el vector K para el sistema discretizado es:

P = [ 491.96 -449.99 205.90 ]


9. Programar el sistema de nivel en SIMULINK utilizando el modelo original en continua,
obteniendo la respuesta escalón y la respuesta rampa del sistema en bucle cerrado
con ganancia proporcional del controlador PID con Kp =1 , y repetir esta programación
con el sistema discretizado para valores de T=0.01 y T=0.1, comparando las respuestas

Simulink es muy simple e intutivo de usar. Tan solo debemos montar el esquema de la planta
añadiendo bloques y modificando los valores de cada uno según las especificaciones. Empezemos:

Tiempo Contínuo

Montamos el esquema del circuito en tiempo contínuo añadiendo un controlador PID que solo lleva una
ganancia Kp = 1, tal como especifica el enunciado. A la entrada variamos entre rampa y escalón.

Entrada escalón:
Entrada rampa

Tiempo discreto

En este caso el procedimiento es el mismo, solo que debemos añadirle un bloque “zero-holder” entre el
controlador PID y la Gs que muestre según el periodo que le especifiquemos.
Para T=0.01

Entrada escalón:

Entrada rampa
Para T=0.1

Entrada escalón:

Entrada rampa:

Se observa que para el sistema discretizado dependiendo del periodo de muestro la salida de nuestro
sistema tarda más en estabilizarse, pues lo que estamos haciendo es muestrear la entrada. Esto se
aprecia menos con la entrada rampa, pues esta no varía, así que todas las sucesivas muestras serán
iguales.
10. Aplicar ltiview al sistema continuo en bucle cerrado con ganancia Kp = 1 y calcular las
especificaciones de respuesta transitoria (t_subida, t_pico, t_establecimiento,
Sobreoscilación) ante entrada escalón unitario y repetir el ejercicio con el sistema
discretizado con T=0.01 y T=0.1 y comparar los resultados obtenidos

Contínuo

Definimos la ganancia Kp = 1. La colocamos en serie con nuestra Gs mediante el comando “series” y


graficamos la salida a distintas entradas con el comando “ltview” de la forma:

“>> ltiview(sys)”

Con el click derecho, en la gráfica, escogemos que información deseamos ver:

Discreta

En tiempo discreto el procedimiento es exactamente el mismo solo que en este caso usamos como
función de transferencia G(z) discretizada usando con dos periodos diferentes.

T = 0.01
T = 0.1

Entre la respuesta en tiempo continuo y discretizado con 0.01s no hay ninguna diferencia, la
información que cogemos de la entrada es tal que tenemos la información completa de la señal de
entrada para que nuestro sistema responda igual que si no muestreáramos.

Al discretizar con 0.1s, la diferencia no es mucha pero si notable. Aunque el tiempo de subida y
establecimiento sean iguales, la señal tarda unos 2s más en estabilizarse, en comparación con los otros
dos casos. Además, en la forma de la señal de salida se observan escalones.

11. Trazar el lugar de las raices continuo con rltool y situar los polos en bucle cerrado para
Kp = 0.5 Trazar asimismo el lugar de las raíces discreto para valores de T = 0.01 y T =
0.1 y comentar los resultados

En este apartado la ganancia Kp tiene un valor de 0.5. El procedimiento de actuación es igual al


del apartado anterior, pero en vez de observar la salida con “ltiview” usamos el comando
“rltool” para ubicar el lugar de las raíces, de la forma:
“rltool (Gs,Kp)”
Tiempo continuo

Tiempo discreto

El procedimiento es el mismo que para tiempo contínuo solo que esta vez usamos la función de
transferencia Gz discretizada con dos periodos distintos.
T = 0.01
T = 0.1
Como se esperaba el lugar de las raíces discreto es totalmente distinto al contínuo. Lo interesante es
observar como la colocación de los polos varía levemente conforme cambiamos el periodo de muestreo.
Para una T mayor, los polos se encuentran algo más alejados entre ellos.

12. Calcular los valores de la ganancia critica para el caso de que el controlador PID
continuo sea una ganancia pura Kp y hallar la frecuencia crítica de oscilación

Pintamos el lugar de las raíces de nuestro sistema Gs con el comando “rlocus()”. Escogeremos un punto del lugar
de las raíces del cual nos devolverá como información la ganancia y valor de los polos con esa ganancia.

Sabemos que la ganancia crítica es aquella que provoca una oscilación mantenida en nuestro sistema,
también sabemos que esa ganancia es la que provoca que los polos de nuestro sistema se coloquen
justo encima del eje imainario. Usamos el comando “rlocfind” para que Matlab nos devuelva
información sobre un punto que escogemos del lugar de las raíces. Haciendo zoom en la gráfica,
pinchamos justo en el lugar en cual el LDR cruza el eje imaginario.

Matlab nos devuelve el valor de la ganancia que coloca uno de los polos en esa posición, y también nos
devuelve la posición de todos los polos.

La ganancia que nos devuelve matlab sería la ganancia crítica, marcada como Kc en la imagen superior.
Por lo tanto Kp crítica en un controlador sería de 3.3118

La frecuencia crítica la sacamos con Matlab sabiendo que sería la imagen del polo que hemos calculado
anteriormente.

Así que frecuencia crítica es de 2.6819 rad/s


13. Diseñar un controlador analógico por el método de Ziegler-Nichols y realizar su
discretizacion con T=0.01 y T=0.1 aplicando los métodos Euler, trapezoidal y
emparejamiento polos-ceros, graficando la respuesta escalón para cada caso
Para calcular un controlador por el método especificado, al igual que en el apartado 6 debemos
convertir nuestro sistema de tercer orden en uno de primer orden. Como ya hemos visto, sacamos los
valores de ambas constantes d y tau de la misma forma, siendo estas:
3∗1.38−2.58
d= = 0.78 ; tau = 2.58 – 0.78 = 1.8
2

Como d/tau =

Calculamos los valores para un PID por método Ziegler-Nichols sabiendo que:
𝑡𝑎𝑢
𝐾𝑝 = 1.2 ∗ ; Kp = 0.699
𝐾∗𝑑

Kd = 0.5 ∗ d ∗ Kp ; Kd =0.273
𝐾𝑝
Ki = ; Ki = 0.448
2∗𝑑

Sabemos que la función de transferencia de un PID es de la forma

Así que:
𝟎.𝟐𝟕𝟑𝒔𝟐 +𝟎.𝟔𝟗𝟗𝒔+𝟎.𝟒𝟒𝟖
PID =
𝒔
Para discretizar el controlador usando los métodos especificados:

 Método de Euler
Usaremos el método de Euler hacía atrás, que aproxima la integral bajo f(t) por la suma de rectángulos
hacía atrás.

𝐾𝑑
𝑇∗𝐾𝑖 𝑇
PID = 𝐾𝑝 + +
1−𝑍 −1 1−𝑍 −1

Para T = 0.1

3.4738 ∗ (𝑧 − 1) ∗ (𝑧 − 0.2012)
𝑃𝐼𝐷 =
(𝑧 − 1)2

Para T = 0.01

28.003 ∗ (𝑧 − 1) ∗ (𝑧 − 0.02496)
𝑃𝐼𝐷 =
(𝑧 − 1)2
 Método Trapeizodal
Se hace la aproximación de la integral por el área del trapecio.

Pero en Matlab tenemos una forma más simple de implementarlo que sería discretizar el PID
analógico que hemos obtenido con el comando c2d usando el método “tustin” y obviamente,
cambiando el periodo de muestreo según especificado.

Para T = 0.1

6.81𝑧 2 − 10.88𝑧 + 4.783


𝑃𝐼𝐷 =
𝑧2 − 1

Para T = 0.01

55.3𝑧 2 − 109.2𝑧 + 53.5


𝑃𝐼𝐷 =
𝑧2 − 1
 Método de emparejamiento de ceros y polos
En este método se considera por separado el numerador y el denominador de la función de
transferencia que representa nuestro PID, y realizamos los siguientes procedimintos.

Pero de nuevo Matlab nos ofrece la posibilidad de implementarlo fácilmente discretizando el PID
analógico obtenido usando el método “matched”

Para T=0.1

3.097𝑧 2 − 5.45𝑧 + 2.397


𝑃𝐼𝐷 =
𝑧−1

Para T=0.01

27.64𝑧 2 − 54.57𝑧 + 26.94


𝑃𝐼𝐷 =
𝑧−1
14. Verificar si es posible compensar el sistema de nivel con un controlador proporcional
analógico para que el sistema en bucle cerrado y realimentación negativa unitaria
cumpla las especificaciones de Sobreoscilación < 5 % y tiempo de establecimiento
test< 1 s, tpico < 0.8 s y error escalón nulo, graficando la respuesta escalón
Dibujamos el lugar de las raíces (LDR) con “rltool” y le añadimos las dos “design requirements”
disponibles, sobreoscilasción y tiempo de establecimiento.

Tras intentar realizar el control manual fijando una ganancia realizamos que no es posible cumplir con
todas las especificaciones a la vez. El tiempo de establecimiento no podemos reducirlo de 3.4s, y aunque
seamos capaces de cumplir con la sobreoscilasción menor a 5% no cumplimos con el tiempo de pico
menor a 0.8s.
Lo máximo que podemos reducir el tiempo de pico es a 1.38s, pero eso a una ganancia que está cerca de
la crítica, por lo que se nos dispara la sobreoscilasción al 85% y el tiempo de establecimiento a 183s.

Así que definitivamente, no se pueden cumplir las especificaciones requeridas con un controlador
proporcional.
15. En caso contrario diseñar un controlador PID analógico en el lugar de las raíces en s y
ver si es posible cumplir las especificaciones requeridas, expresando el controlador
obtenido, graficando el nuevo lugar de las raíces en s, y comprobando a través de
ltiview que se cumplen ciertamente las especificaciones requeridas (introducirle el
termino de filtro (N) adecuado
Sabemos que un controlador del tipo PID tiene como característica dos ceros y dos polos, de los cuales,
un polo está en el origen (se denomina integrador).

Dibujamos el lugar de las raíces con “rltool” y en la pestaña de “control and estimation tools” añadimos
estos tres componentes. Un integrador (polo en el origen), un polo y dos ceros. A continuación, abrimos
“response to step comand” y jugamos con la colocación de los 3 elementos añadidos. Colocamos el polo
alejado del origen, de manera que estabilice la respuesta del sistema pero que no afecte a los tiempos
de respuesta. Luego, vamos variando los ceros hasta que conseguimos el mejor comportamiento que se
adapte a las especificaciones requeridas.

En este caso, no se consiguieron cumplir las especificaciones requeridas. El comportamiento más


apropiado conseguido para que no afecte a la sobreoscilación nos da un tiempo de establecimiento de
1.9 s y un tiempo de pico de 1.47s, con el controlador quedando como se observa a continuación:

Respuestas:
Si lo que deseamos es cumplir con el tiempo de pico, debemos sacrificar sobreoscilasción, que se dispara
a un 21%, para que se cumpla el otro criterio, quedando de la forma:

Finalmente concluir que cumplir con el tiempo de establecimiento no es posible, de ninguna manera.
16. Repetir el apartado 15) realizando un diseño de controlador PID digital directamente
en el lugar de las raíces en z con T=0.01, y ver si es posible cumplir las especificaciones
requeridas en 14) trasladadas al plano z, expresando el controlador digital obtenido,
graficando el nuevo lugar de las raíces en z, y comprobando a través de ltiview que se
cumplen ciertamente las especificaciones requeridas

En tiempo discreto el procedimiento es igual que en el apartado anterior pero esta vez
representamos el lugar de las raíces de la función Gz discretizada con T=0.01

El controlador PID sigue el mismo principio, peo esta vez el integrador no se encuentra en el
origen sino en la posición real 1. El otro polo debemos colocarlo cerca del origen para que no
afecte al funcionamiento del sistema.

En este caso tampoco se ha logrado cumplir con las especificaciones requeridas, lo que sí hemos
conseguido es tener unos tiempos de pico y de establecimiento menores a la vez que una
sobreoscilasción menor, comparado con el PID analógico, por lo tanto el sistema discretizado se
puede controlar mejor.

El controlador que mejor funcionamiento proporciona comparando con las especificaciones


requeridas sin superar la sobreoscilación es el siguiente:

Con este conseguimos una sobreoscilación bastante menor que la requerida, pero los tiempos
de pico y de establecimiento siguen estando bastante por encima, aunque sean menores que en
el controlador analógico. Esto se puede observar en la captura inferior.
Una cosa interesante del sistema discretizado es que podemos conseguir cumplir la
especificación de sobreoscilación y tiempo de pico menores a los requeridos, pero debemos
sacrificar mucho el tiempo de establecimiento.
17. Simular en SIMULINK los sistemas de control PID continuo y discreto de los apartados
15) y 16) anteriores usando los parámetros correspondientes, y añadiendo asimismo
una limitación de salida del controlador a (-10,+10) añadiendo en su caso el sistema
corrector antiwindup y ver la respuesta

Empecemos con el PID continuo. El circuito a montar en Simulink es el siguiente

Y la salida que proporciona ante una entrada escalón es la siguiente:


Pasando al PID discreto tomamos el circuito siguiente cual debemos montar en Simulink:

Y la salida que nos proporciona es la siguiente:

Observamos que ambas salidas son muy parecidas, lo que es normal pues hemos discretizado con
un periodo muy pequeño, así que la salida con un controlador que sea una ganancia pura debería de
ser exactamente igual, en este caso el controlador diseñado en discreto es diferente al diseñado en
tiempo continuo, siendo ese el motivo de la pequeña variación a la salida.
18. Resintonizar de nuevo los PID analógico y digital respectivamente en SIMULINK a
través de las herramientas de diseño automatico, obteniendo una mejor respuesta
posible ante el seguimiento escalón unitario (mejorar alguna de las especificaciones y
manteniendo el resto).
Con los mismos esquemas montados en Simulink que en el apartado 17, entramos en la opción “tune”
del PID para ver si podemos mejorarlo.

Comencemos con el PID contínuo:

Siendo la línea azul la correspondiente al PID “nuevo”, se observa que ha sido disminuido bastante el
tiempo de establecimiento de nuestro sistema además de una gran disminución de la sobreoscilación.
Resultado que fue imposible de conseguir con el diseño en “rltool”.
Vayamos con el PID discreto

Esta vez hemos conseguido disminuir el tiempo de establecimiento mayor cantidad que en el apartado anterior
además de la sobreoscilasció
19. Implementar en SIMULINK los esquemas de control en espacio de estado de los
apartados 7) y 8) y comentar los resultados obtenidos partiendo de condiciones
iniciales no nulas.

Empecemos con el apartado 7. El esquema de control en espacios de estados en simulink es muy


simple de introducir. Tenemos el bloque “State-Space” al cual le introducimos las matrices A,B,C,D y
D que hemos obtenido en el “workspace”. La configuración de este bloque podemos observarla a
continuación:

Y el esquema a montar en simulink queda de la forma:


Donde la ganancia la hemos definido como un vector correspondiente al vector de ganancias K obtenido
en el apartado 7. Multiplexamos 3 entradas escalón exactamente iguales para que no nos dé error por
incompatibilidad de tamaños.

La salida del sistema es:

Por último, vayamos con el apartado 8, el procedimiento es el mismo, solo que usando las matrices
(G,H,C,D) corespondientes al sistema discretizado con T= 0.01 y usando como ganancia el vector K
calculado en este apartado. Aparte, cambiamos el bloque “state-space” por el mismo pero en discreta
“discrete-state-space”

Veamos el esquema:
Y la salida de este es:

Comparando ambas respuestas ante una entrada escalón se observa como la respuesta del controlador
vector de ganancias diseñado manualmente produce un gran “overshoot” en la respuesta de nuestra
sistema, mientras que el controlador diseñado mediante el comando “acker” de Matlab para el sistema
discreto no produce sobreoscilasción alguna pero retrasa el tiempo de establecimiento.

También podría gustarte