Vous êtes sur la page 1sur 14

Memoria practica 6: Control nivel mediante servo motor

Alvaro del cojo, Rafael Lara —– y Tomas —– ——

4 de abril de 2019

1
Índice
1. Introduccion 3
1.1. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2. Procedimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2. Procedimiento experimental 5
2.1. Programacion automata Siemens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2. Respuesta planta en lazo abierto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3. Identificacion del modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.4. Calculo de los parametros de los controladores . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.5. Implementacion del controlador en el sistema y obtencion de los datos de la salida de la
planta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.6. Codigo matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3. Conclusiones,observaciones y dificultades 14

2
1. Introduccion
En este informe se va a explicar el trabajo realizado el dia 1/1/1 en la laboratorio de control
de procesos del aula da vinci.
Aquel dia el grupo realizo la practica numero 6 que consta del control del nivel de un taque me-
diante una servo valvula con un control PID diseñado en la herramienta SISO y identificacion
del modelo real.

El agua de un depósito se hace recircular a través de una bomba autoaspirante. El líquido


pasa a través de un caudalímetro, así como de una válvula proporcional y vuelve al depósito
inicial. Esta válvula será la variable manipulada con la que se regulará el caudal que circula por
el circuito, siendo ésta la variable controlada. Para evitar que la bomba trabaje con la válvula
cerrada, se ha añadido un circuito de bypass que permite una salida de baja presión al líquido
que sale de la misma. Control de Caudal con Servoválvula 6. 7 Área de Ingeniería de Sistemas y
Automática.

El sensor de caudal es un caudalímetro electromagnético FXL5000 (Miniflow) de ABB. Su


funcionamiento está basado en la Ley de inducción de Faraday, la cual establece que en un
conductor que se mueve a través de un campo magnético se genera una tensión proporcional
a la media de la velocidad del caudal. Esta tensión es captada por dos electrodos que están en
contacto con el fluido. A la salida del convertidor se encuentran disponibles distintas señales
eléctricas para su tratamiento (por ejemplo, impulsos proporcionales al caudal, señal de co-
rriente de 4-20 mA, etc.).

3
1.1. Objetivos
Mas halla del objetivo dicho anteriormente para ello hemos tenido que hacer (y aprender)
varias cosas, como por ejemplo:

Comunicacion PC-PLC-SCADA

Impleentacion de un PID en un automata de siemens

Conexionado de la planta y su funcionamiento

1.2. Procedimiento
Introduccion del hardware en el PLC y comunicacion mediante la tarjeta PROFIBUS con
el pc, para que lo que programemos en el Simatic manager se transfieraa un plc real que
a su vez actuara sobre los elementos de nuestra planta (sensores de caudal, de nivel y
actuadores).

Comunicacion SCADA-PC.

Programacion PID en Simatic Manager.

Obtenemos los datos de la respuesta en lazo abierto de la planta.

Identificacion proceso

Diseño de 3 controladores PID cada uno con unas especificaciones de MF=40,60 y 80 me-
diante la herramienta SISO proporcionada en la practica

Implementacion de los parametros del controlador en el Scada y obtener los datos de la


respuesta de la planta en lazo cerrado con los 3 PIDs.

Analisis datos obtenidos en Matlab.

4
2. Procedimiento experimental
2.1. Programacion automata Siemens
Una vez hechas todas las comunicaciones

vamos a programar el controlador PID en el automata, para ellos crearemos un nuevo pro-
yecto, insertaremos un bloque de arranque OB100 y un FB45 que es un bloque que se ejecuta
cada cierto tiempo (que ajustemos en la cpu en el apartado de hardware) y en ella llamamos a
la SFB–. Se nos desplegaran una serie de parametros que rellenamos de la siguiente forma.

Por ultimo dentro del OB1 ponemos el siguiente codigo. Guardamos y compilamos en el plc
y ya esta listo.

5
2.2. Respuesta planta en lazo abierto
Abrimos el Scada, encendemos el automata , abrimos la valvula V–,configuramos la obte-
cion de datos del scada, le damos a RUN y ponemos la servo-valvula en punto de trabajo (50) y
observamos a donde se va el nivel. Pasado un tiempo ponemos el Scada en stop y ya tenemos
nuestros datos para poder identificarlos y poder trabajar con un modelo en formato Funcion
de transferencia.

Inicialmente la valvula estaba al 40, la llevamos al 20 y dejamos que se estabilize el nivel,


posteriormente le dimos un salto de un 20 de apertura.
Como vemos los datos no estan en las mismas referencias por lo que hay que arreglarlos elimi-
nando los 60 primeros valores a valvula, caudal y tiempo para tener un ciclo y quitarles el offset.

Vemos como la apertura de un 15 de la valvula implica la llenada del tanque de un 10 y


aunque haya ruido se ve perfectamente el comportamiento.

6
2.3. Identificacion del modelo
Ahora con los datos de la planta en lazo cerrado nos vamos a Matlab y utilizando la funcion
proporcionada en la practica ’leedatos’ de la forma -con parametros de salida: tiempo (t), aper-
tura de la valvula (val), nivel del tanque (nivel) y los set-points (sp).
Posteriormente abriremos la herramienta de Matlab Ident escribiendo ident en la ventana de
comandos. Una vez ahi como vemos en la figura elegimos dominio del tiempo y en la ventana
que se despliega como entrada elegimos el vector de valvula y como salida el vector nivel (los
datos quedan representados en la primera grafica empezando por la izquierda) luego elegimos
estimar funcion de tranferencia y ponemos en la ventana que se despliega 1 polo y ningun zero
y retardo que busque el adecuado, quedando un sistema de primer orden (segunda figura). Lo
llamamos G y arrasramos la funcion de transferencia al recuadro de to workspace.

Finalmente nuestra resouesta queda de la siguiente forma con una exactitud del 80:

7
2.4. Calculo de los parametros de los controladores
Ahora una vez obtenida nuestra funcion de transferencia vamos a ejecutar la herramienta
SISO proporcionada en la practica. Una vez ahi elegimos las especificaciones de MF deseadas
y el tipo de controlador y nos da los parametros que calcula mediante un metodo analitico.
Los parametros finalmente calculados son:

MF=40º Kp= 11.0; Ti=5.11; Td=0;


MF=60º Kp=11.55; Ti=6.70; Td=0;
MF=80º Kp=12.50; Ti=12.2; Td=0;

Que nos da las siguientes respuestas:



Como vemos la respuesta del modelo identificado controlado el mejor controlador es el de


MF=80º ya que es el que presenta las oscilaciones mas pequeñas pero como vemos los tiempos
de asentamiento arriba o abajo son de mas de 60 segundos, lo cual nos traera problemas con la
toma de datos en el scada como veremos a continuacion.

8
2.5. Implementacion del controlador en el sistema y obtencion de los datos de la salida de
la planta
Una vez calculados los 3 controladores nos dirigimos al Scada y configuramos la obtencion
de los datos. Posteiormente en la pestaña del controlador introducimos los parametros del pri-
mer controlador, le damos a run y hacemos un salto en la valvula a ver como varia ahora el
nivel. Una vez hecho esto introducimos los parametros del segundo controlador y vemos la res-
puesta, igual con el tercer controlador.
Una vez hecho eso vamos a Matlab y tal como hicimos antes haciendo uso de la funcion leeda-
tos pasamos los datos al workpace de Matlab, los arreglamos y esta es la respuesta obtenida.

Como se puede ver el caudal no llega a la referencia por que no le da tiempo, el tiempo de
asentamiento del caudal con cualquier controlador es mayor de 60 pero nuestras referencias
apenas llegan a los 40 segundos por lo que parece que el sistema tiene mucho ruido y no se
pueden comparar las respuestas, habria de haber utilizado un tiempo de 400 segundos minimo
para poder dejar al caudal estabilizarse. Por otro lado vemos como la señal de control tampoco
puede extraerse nada debido al ruido que tiene y que no llega a estabilizarse, en la respuesta del
modelo identificado veremos que podemos sacar alguna conclusion mas que de esta grafica.

9
Esta grafica que nos muestra la respues de nuestro modelo identificado, el porcentaje de aper-
tura de la valvula (señal de control) y el error, que lo que entra en el controlador.
Para la salida se puede ver como sucede mas o menos lo de antes, el caudal no llega a estabili-
zarse en la referencia ya que no le hemos dado tiempo suficiente pero se puede ver la compara-
cion de los 3 ontroladores, vemos como el controlaodr de MF=80º presenta la mejor respuesta
ya que aunque el ts sea similar a los demas presenta menos oscilaciones. que las demas. Para
la señal de control vemos como los minimos de las 3 señales son iguales, pero a la hora de los
maximos vemos como el de MF=80º va entre 4 a 10 y el de MF=45º va dede 7.5 a 12.5.

10
2.6. Codigo matlab
Aqui podmeos ver el codigo utilizado en Matlab que realiza lo siguiente:

1 clc
2 close a l l
3 G= t f 1 ;
4 % % Funcion que l e e l o s datos de l a planta en lazo abierto
5 % % del f i c h e r o t x t generado por e l scada
6 [ t , caudal , valvula , sp ]= lee_datos ( ’ alvaro . t x t ’ ) ;
7 % % Grafica datos en LA
8 figure (1)
9 subplot ( 2 , 1 , 1 )
10 plot ( t , caudal , ’ linewidth ’ , 1 )
11 t i t l e ( ’ Variacion n i v e l LA ’ )
12 gr i d on
13 subplot ( 2 , 1 , 2 )
14 plot ( t , valvula , ’ linewidth ’ , 1 )
15 t i t l e ( ’ Apertura v alvu la ’ )
16 gr i d on
17 % % Eliminamos l o s 60 primeros valores
18 caudal=caudal ( 6 0 : end ) ;
19 v a l v u l a = v a l v u l a ( 6 0 : end ) ;
20 t = t ( 6 0 : end ) ;
21 % % Centramos en 0
22 caudal2=caudal−mean( caudal ( 1 : 2 0 ) ) ;
23 valvula2=valvula −20;
24 % % Evolucion del caudal de l a planta i d e n t i f i c a d a
25 caudal_mod=lsim (G, valvula2 , t ) ;
26 % % DATOS PLANTA EN LC CON PID CON MF=40 ,60 ,80.
27 [ t3 , caudal3 , valvula3 , sp3 ]= lee_datos ( ’ a l v a r o l c . t x t ’ ) ;
28 % % Centramos l o s datos
29 caudal4=caudal3−caudal3 ( 1 ) ;
30 valvula4=valvula3−mean( valvula3 ( 1 : 3 0 ) ) ;
31 % % Controladores calculados en SISO
32 kp1=11;
33 ti1 =5.11;
34 pid_45= t f ( kp1 * [ t i 1 1 ] , [ t i 1 0 ] ) ;
35 kp2 =11.5542;
36 t i 2 =6 . 7 07 ;
37 pid_60= t f ( kp2 * [ t i 2 1 ] , [ t i 2 0 ] ) ;
38 kp3 =12.508;
39 t i 3 =10.2184;
40 pid_80= t f ( kp3 * [ t i 3 1 ] , [ t i 3 0 ] ) ;
41 pid =[ pid_45 pid_60 pid_80 ] ;
42 % % Controlaodor en s e r i e con l a planta i d e n t i f i c a d a
43 pid_G=pid *G;
44 % % Cerramos e l lazo con daca controlador
45 G_45=feedback ( pid_G ( 1 ) , 1 ) ;
46 G_60=feedback ( pid_G ( 2 ) , 1 ) ;
47 G_80=feedback ( pid_G ( 3 ) , 1 ) ;
48 % % Evolucion del caudal de l a planta controlada
49 [ caudal_45 , t2 ]= step ( G_45 , 1 5 0 ) ;
50 [ caudal_60 , t2 ]= step ( G_60 , 1 5 0 ) ;
51 [ caudal_80 , t2 ]= step ( G_80 , 1 5 0 ) ;
52 [ caudal_G , t4 ]= step (G, 1 5 0 ) ;
53 % % Respuesta f i n a l
54 caudal_fin1=lsim ( G_45 , sp3 −3, t3 ) ;
55 caudal_fin2=lsim ( G_60 , sp3 −3, t3 ) ;
56 caudal_fin3=lsim ( G_80 , sp3 −3, t3 ) ;
57 % % Error
58 error1 =( sp3−3)−caudal_fin1 ;
59 error2 =( sp3−3)−caudal_fin2 ;
60 error3 =( sp3−3)−caudal_fin3 ;
61 % % S e al de control

11
62 v a l v u l a _ f i n 1 =lsim ( pid_45 , error1 , t3 ) ;
63 v a l v u l a _ f i n 2 =lsim ( pid_60 , error1 , t3 ) ;
64 v a l v u l a _ f i n 3 =lsim ( pid_80 , error1 , t3 ) ;
65 % % % % % VISUALIZACIONES % % % % %
66 % % Evolucion del caudal en funcion apertura de l a valvula en lazo cerrado
67 figure (2)
68 subplot ( 2 , 1 , 1 )
69 plot ( t , caudal2 , ’ linewidth ’ , 1 )
70 t i t l e ( ’ Variacion n i v e l LA ’ )
71 gr i d on
72 subplot ( 2 , 1 , 2 )
73 plot ( t , valvula2 , ’ linewidth ’ , 1 )
74 t i t l e ( ’ Apertura v alvu la ’ )
75 gr i d on
76 % % Comparacion modelo r e a l vs modelo t e o r i c o en LA
77 figure (3)
78 plot ( t , caudal_mod , t , caudal2 , ’ linewidth ’ , 1 )
79 t i t l e ( ’Modelo r e a l vs Modelo t e o r i c o ’ )
80 y l a b e l ( ’ Caudal ( l / s ) ’ )
81 % % Variacion caudal en LC ( experimental ) pids
82 figure (4)
83 subplot ( 2 , 1 , 1 )
84 plot ( t3 , caudal4 , t3 , sp3 −3, ’ linewidth ’ , 1 )
85 t i t l e ( ’ Evolucion planta + controlador experimental ’ )
86 y l a b e l ( ’ Caudal ( l / s ) ’ )
87 gr i d on
88 subplot ( 2 , 1 , 2 )
89 plot ( t3 , valvula4 , ’ linewidth ’ , 1 )
90 y l a b e l ( ’ Apertura valvula ( %) ’ )
91 gr i d on
92 % % Caudal controlado
93 figure (5)
94 plot ( t2 , caudal_45 ( 1 : end−1) , t2 , caudal_60 ( 1 : end−5) , t2 , caudal_80 , ’ linewidth ’ , 1 )
95 t i t l e ( ’ Respuesta t e o r i c a controlada ’ )
96 x l a b e l ( ’ tiempo ( s ) ’ )
97 y l a b e l ( ’ caudal ( l / s ) ’ )
98 legend ( ’MF=45 ’ , ’MF=60 ’ , ’MF=80 ’ )
99 gr i d on
100 % % Respuesta f i n a l , S e al de control y Error
101 figure (6)
102 subplot ( 3 , 1 , 1 )
103 plot ( t3 , caudal_fin1 , t3 , caudal_fin2 , t3 , caudal_fin3 , t3 , sp3 −3, ’ linewidth ’ , 1 )
104 t i t l e ( ’ Evolucion planta + controlador t e o r i c a ’ )
105 x l a b e l ( ’Tiempo ( s ) ’ )
106 y l a b e l ( ’ Caudal ( l / s ) ’ )
107 legend ( ’MF=45 ’ , ’MF=60 ’ , ’MF=80 ’ )
108 gr i d on
109 subplot ( 3 , 1 , 2 )
110 plot ( t3 , v a l v u l a _ fi n1 , t3 , v al v u l a_ fi n2 , t3 , v al v u l a _fi n3 , ’ linewidth ’ , 1 )
111 t i t l e ( ’ S e al de control PIDs ’ )
112 x l a b e l ( ’Tiempo ( s ) ’ )
113 y l a b e l ( ’ Apertura de l a valvu la ’ )
114 legend ( ’MF=45 ’ , ’MF=60 ’ , ’MF=80 ’ )
115 gr i d on
116 subplot ( 3 , 1 , 3 )
117 plot ( t3 , error1 , t3 , error2 , t3 , error3 , ’ linewidth ’ , 1 )
118 t i t l e ( ’ Error ’ )
119 x l a b e l ( ’Tiempo ( s ) ’ )
120 y l a b e l ( ’ Caudal ( l / s ) ’ )
121 legend ( ’MF=45 ’ , ’MF=60 ’ , ’MF=80 ’ )
122 gr i d on

12
A continuacion se va explicar el codigo realiza en matlab donde hemos hecho los calculos
necesarios y las braficas utilizadas en este documento.
En primer lugar de la linea 1 a la 5 limpiamos las venatanas y el editor de comandos, asignamos
el nombre de G al modelo identificado con la herramienta de matlab ident.

De la 6 a la 8 utilizamos la funcion proporcionada en la practica que nos lee los datos de un


fichero .txt, nos deuelve el tiempo, los valores de caudal y la de apertura de la valvula y los sp’s
que le hemos puesto al proceso.

De la 8 a la 16 graficamos los datos obtenidos de la planta en LA.

De la 18 a 19 arreglamos los datos para que podamos identificarlo (bajamos a cero y nos
quedamos con un ciclo solo).

Linea 25 estimulamos nuestro modelo de la planta con los datos de la valvula2 y lo llama-
mos caudalm od .

De la 27 a la 30 leemos los datos de la pkanta en LC con los controladores calculados y lo


llamamos caudal3 valvula3 posteriormente igual que antes, los arreglamos y llaamos valvula4
y caudal4.

De la 32 a la 41 creamos los pid’s teoricos con los parametros de SISO y el comando tf.

De la 43 a la 56 ponemos ens erie cada controlador con la planta y cerramos el lazo, poste-
riormente damos un salto escalon y escitamos el sistema con el sp3 centardo en cero es decir
sp3-3.

13
3. Conclusiones,observaciones y dificultades

14

Vous aimerez peut-être aussi