Saltar navegación

Activa JavaScript para disfrutar de los vídeos de la Mediateca.

Control Proporcional-Integral de caudal con FactoryIO - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 18 de mayo de 2020 por Ángel G.

145 visualizaciones

Descargar la transcripción

Vamos a realizar un control de caudal. Realmente no va a ser un control proporcional, sino que va a ser un control proporcional integral. 00:00:09
Así que a la acción proporcional que hemos utilizado hasta ahora, vamos a añadirle la acción integral y se la vamos a sumar. 00:00:16
Bien, para ver cómo funciona este tipo de control, vamos a verlo en Factory. 00:00:27
Abrimos una escena, pero voy a coger una escena de las que, por ganar tiempo, voy a coger una escena de las que ya me trae incorporada Factory, la que level control. Un control de nivel. Perfecto. Una vez que la tenemos, vamos a ver qué elementos tenemos. 00:00:33
Bien, lo primero el cuadro. El cuadro que me proporciona es el que voy a utilizar. Voy a tener un pulsador de Start o Marcha, un pulsador de Stop. El pulsador de Reset no es necesario, lo dejo, pero no lo voy a utilizar. 00:00:53
el potenciómetro de setpoint 00:01:09
el potenciómetro de setpoint 00:01:11
y luego voy a tener un display, bueno, antes de nada 00:01:17
lo voy a configurar 00:01:19
entre 0 y 10 00:01:21
el setpoint, voy a tener 00:01:22
dos displays, uno para 00:01:25
visualizar el setpoint y otro para visualizar 00:01:27
la variable de proceso, repito 00:01:29
estamos haciendo un control de caudal, por tanto 00:01:31
la variable de proceso es la señal 00:01:33
de caudal, no de nivel de caudal 00:01:35
los dos 00:01:37
displays los 00:01:39
configuramos en integer perfecto una vez que ya tenemos vamos a ver cómo funciona el control de 00:01:41
caudal vamos a hacer un control de caudal en este caso manual como lo vamos a hacer bien pues para 00:01:49
ello la válvula de llenado no la vamos a regular lo único que vamos a hacer es vamos a dejarla al 00:01:56
100% así que directamente no el sensor no el actuador la válvula de llenado directamente 00:02:02
vamos a provocar el llenado del depósito al 100% esperamos a que se llene bien ya está bastante 00:02:10
lleno así que la válvula de llenado la voy a cerrar para que deje de llenarse a continuación 00:03:28
voy a visualizar la válvula de descarga aquí la tengo y vamos a girarnos ligeramente al 00:03:35
contrario sensor también voy a visualizar el medidor de caudal o medidor de flujo o el sensor 00:03:42
de flujo o el sensor de caudal llamadlo como queráis pero esta pieza de aquí realmente este 00:03:52
componente de aquí es el que me va a medir la cantidad de agua que va a salir y es el que voy 00:03:58
a regular yo voy a regular la cantidad de agua que sale por aquí de que va a depender de la 00:04:03
de la llamada presión hidrostática cuál es la presión hidrostática la altura de este depósito 00:04:09
cuanto mayor altura sea cuanto perdón cuanto mayor altura tenga más presión hidrostática existe y por 00:04:14
tanto más caudal saldrá por aquí el propio peso del agua es el que va a provocar que haya más 00:04:22
salida si el depósito está más vacío la presión hidrostática es inferior y entonces el caudal de 00:04:29
salida aquí será también inferior qué es lo que yo voy a tener que conseguir pues voy a tener que 00:04:37
conseguir un determinado nivel de salida de agua en como en tanto por ciento yo puedo hacer que sea 00:04:41
el 100% el 20% el 10% el 40% el flujo de agua que salga a través de esta tubería y cómo lo voy a 00:04:48
regular mediante la válvula de descarga vamos a hacerlo de modo manual para que se entienda 00:04:58
Imaginaos que yo quiero obtener siempre aquí un nivel del 50%, recordad que lo tenemos regulado en tanto por ciento, pues entonces un 50%, por ejemplo quiero obtener ahí, perdonad este no, la válvula de descarga, eso es, la válvula de descarga, voy a empezar a descargar suficiente, ¿para qué? 00:05:03
Para llegar aquí a un 50% de descarga. Empieza a descargar, empieza a descargar hasta que obtenga un poquito. Es difícil. Bueno, un 4,9, un 49% ahora mismo. Con esta altura, esta válvula tiene que estar al 53% para tener un 47. 00:05:31
voy a como la altura va disminuyendo yo tengo que aumentar el caudal perdón aumentar la apertura de 00:05:52
la válvula para que para provocar obtener siempre el mismo caudal constantemente aquí de un 50% 00:05:59
aproximadamente ahora tengo un 50% de salida de agua porque porque lo estoy midiendo a ya me han 00:06:05
disminuido un 48 porque porque la altura hidrostática es menor perdón con la presión 00:06:13
hidrostática es menor que tengo que hacer pues para aumentarlo tengo que abrir más la válvula 00:06:18
de descarga ahora tengo un 50% ya va disminuyendo por tanto tengo que abrir más todavía ahora tengo 00:06:24
un 52 porque ya tengo abierta al 80% la válvula porque porque la presión hidrostática es menor 00:06:32
la altura es menor 47 tengo que seguir aumentando un poquito más tengo que abrir más ya tengo el 00:06:39
50% bien veis en qué consiste entonces la regulación que tenemos que hacer la regulación 00:06:46
que tenemos que hacer entonces es modificar la apertura de la válvula de descarga para mantener 00:06:52
constante el flujo de salida esté el depósito a la altura que esté entendido perfecto bien pues 00:06:59
sabiendo ya que lo que tenemos que hacer antes de nada fijaos que se ha quedado forzada en las 00:07:08
Os aconsejo siempre que no las dejéis forzadas porque si no, cuando simuléis, van a quedar forzadas y vais a pensar que no funciona correctamente y lo que teníais era forzada las válvulas. 00:07:13
bien entonces me voy al driver lógicamente no tengo ningún driver cargado entonces como no 00:07:23
tengo la máquina física me voy al plc sin y me voy a la configuración yo lo voy a hacer con 00:07:33
1500 y tengo la versión 14 vosotros pues si tenéis la versión 15 tendréis que modificar aquí el tipo 00:07:42
de dato voy a utilizar doble word para poder utilizar reales valores reales y como aconseja 00:07:50
el fabricante las entradas digitales empiecen en el byte 10 las salidas digitales en el 0 las 00:07:58
entradas analógicas en el byte 30 y las salidas analógicas también en el byte 30 voy a poner 00:08:07
cuatro entradas digitales 00:08:13
también voy a poner 00:08:16
cuatro salidas digitales 00:08:17
cuatro 00:08:21
el efecto me pone tres, le voy a poner 00:08:21
cuatro entradas analógicas y cuatro 00:08:25
salidas analógicas 00:08:27
pues el driver ya estaría 00:08:28
configurado y ahora 00:08:31
mi señal de store en el 10.0 00:08:32
la de reset aunque no la voy a utilizar la pongo 00:08:35
en el 10.1, el stoz al 10.2 00:08:37
el medidor de nivel 00:08:39
no lo voy a utilizar en este caso 00:08:40
porque no voy a hacer un control de nivel 00:08:43
entonces y de 30 si voy a utilizar el sensor de caudal que lo pongo en el 34 y el setpoint en el 38 00:08:44
el setpoint recordáis que es el potenciómetro la luz de marcha la del pulsador de marcha la pongo en el Q0.0 00:08:53
la de reset y la de esto la pongo en el 1 y en el 2 aunque no las voy a utilizar 00:09:00
la válvula de llenado la pondré al 100% y la pongo en el Q de 30 00:09:05
la de descarga que es la que voy a regular en el 34 y luego los displays el display donde voy a visualizar el set point de 0 a 100 porque va a estar en porcentaje va a ser un doble entero en el 38 y el display donde voy a visualizar la cantidad de agua que va a salir la cantidad de flujo de agua la cantidad de caudal porque es la variable de proceso la pongo en el QD42 00:09:11
pues ya estaría totalmente configurado lo que sería mi escena de Factory I.O. 00:09:41
Lo siguiente voy a explicar aunque sea brevemente 00:09:56
el modo de funcionamiento a nivel de bloques y a nivel de integral de este circuito. 00:09:58
Bien, básicamente lo que voy a hacer es lo mismo que hacía antes. 00:10:06
Voy a tomar mi señal de caudal real, la escalaré entre 0 y 100 00:10:10
porque voy a trabajar en porcentaje 00:10:15
y lo mismo voy a hacer con mi señal de setpoint del potenciómetro la escalaré entre 0 y 100 porque 00:10:16
también trabajar en potenciómetro las compararé en definitiva la restaré y así obtendré mi señal 00:10:22
de error con ese error por un lado haré el tratamiento proporcional que es semejante a lo 00:10:27
que hacíamos antes o sea multiplicarlo por una constante de proporcionalidad por una cape y el 00:10:32
resultado lo obtendré aquí por otro lado voy a hacer la integral del error de este error que va 00:10:37
a ser un error que no va a ser constante que va a ir modificándose según va llenándose el depósito 00:10:45
o vaciándose el depósito en este caso entonces voy a realizar la integral de este error y le voy 00:10:51
a multiplicar también por una constante de proporcionalidad integral o una a una caí bien 00:10:57
esta caí me va a dar realmente la importancia que voy a dar a este componente si esta caí vale cero 00:11:05
significa que lo único que voy a hacer aquí es un control proporcional semejante a lo que había 00:11:12
hecho en prácticas anteriores pero si este caí es distinto de cero significa que le voy a dar un 00:11:17
peso si este caí es pequeño el peso que tendrá la componente integral pues va a ser pequeño pero 00:11:22
si la caí es grande si está constante de proporcionalidad integral es grande significa 00:11:29
que el peso que voy a dar a la integral a la componente integral va a ser grande y va a 00:11:34
influir bastante en la acción de control al final voy a sumar la acción integral con la acción 00:11:39
proporcional y voy a generar la variable manipulada esa variable manipulada ataca a la válvula de 00:11:44
descarga para que se abra o cierre más y así mantener y así conseguir la señal de caudal que 00:11:50
queremos bien básicamente es esto la dificultad en esta práctica cuál es pues realizar la integral 00:11:57
programando la integral al fin y al cabo que es pues la integral realmente es el es como calcular 00:12:03
un área de una función un tanto extraña porque el error es va a ser una función muy muy aleatoria 00:12:10
entonces bueno aquí como ejemplo me he puesto yo no una señal demasiado aleatoria porque es una 00:12:17
línea recta que varía entre 2 y 4 como se calcularía la integral pues la integral realmente 00:12:22
se calcularía dividiendo esta función en trocitos como en rodajas en este caso la he dividido en 00:12:28
tres rodajas cada una de ellas tiene de base 0,1 0,1 es el tiempo entonces si yo sumo las áreas de 00:12:35
estas tres rodajas obtengo la integral de tal modo que aproximadamente entonces sería la rodaja verde 00:12:45
sería 2 por 0,1 2 es la altura 0,1 es la base como es un rectángulo 2 por 0,1 sería el área de la 00:12:51
zona verde la zona azul del mismo modo sería 3 por 0,1 y la zona morada sería 4 por 0,1 0,2 más 0,3 00:12:59
más 0,4 0,9 sería la integral repito que coincide aproximadamente con el área esto sería bastante 00:13:07
sencillo si lo pudiéramos hacer así pero en nuestro caso el error está modificándose y tengo siempre 00:13:17
un error constante por eso me he creado una pila que es lo que se utiliza en programación para 00:13:22
realizar este tipo de cálculos una pila de tres posiciones cada una de esas posiciones le he puesto 00:13:27
un nombre aquí voy a obtener el error actual la siguiente posición va a ser mi error presente y 00:13:33
la tercera posición va a ser el error pasado de tal modo que cada ciclo de scan del en este caso 00:13:42
del plc voy a ir rotando estos valores lo que tenía en error pasará error presente lo que había 00:13:49
en error presente pasa error pasado en el siguiente ciclo de scan lo mismo el error actual pasa error 00:13:57
lo que había en el en el ciclo anterior en error pasa a error presente y lo que había error presente 00:14:04
pasa error pasado. Así que cada ciclo de scan va a ir rotándose. ¿Cómo calculo la integral? Pues el 00:14:10
mejor método para ver cómo calculo la integral es con un ejemplo. El ejemplo anterior, recordáis, 00:14:17
este ejemplo de aquí. ¿Cómo se haría la integral en un cálculo informático? Pues lo que tengo en el 00:14:22
error actual lo paso a error. En este caso, en el primer ciclo de scan, error igual a 2. Error 00:14:30
presente como no había nada pues cero y error pasado también cero el área del error como la 00:14:35
calculo como error presente más error pasado por 0,1 que es la base partido 2 0 más 0 por 0,1 00:14:41
partido 2 es 0 y luego voy acumulando los errores este integral del error realmente es el error 00:14:48
acumulado lo que tengo aquí que es el área del error más los errores anteriores como acabo de 00:14:55
empezar ahora mismo en los errores anteriores valen 0 0 más 0 es igual a 0 en el segundo ciclo 00:15:01
de scan que es lo que ocurre pues el error lo que tenía en error pasa al error presente lo que tenía 00:15:07
en error presente pasa error pasado y el nuevo error se me carga en la variable error en la 00:15:13
primera posición de tal modo que cuando calculo el área del error ahora tengo 2 más 0 por 0,1 partido 00:15:19
2 el área del error ahora es 0,1 este área del error se suma al error acumulado anterior cuánto 00:15:26
tenía antes 0 pues ahora lo que tengo es el área del error que sería 0,1 más 0 que es la acumulación 00:15:35
de los errores anteriores eso suma 0,1 así que acumulación del error 0,1 en el siguiente ciclo 00:15:41
de scan rotan los distintos valores entre los valores de la pila o sea el error ahora vale 4 00:15:48
el error presente 3 y el error pasado vale 2 realizo este cálculo del área del error y obtengo 00:15:55
0.25 este 0.25 le tengo que sumar la acumulación del error anterior 0.1 pues 0.1 más 0.25 0.35 00:16:00
al siguiente ciclo de scan que es el cuarto ciclo de scan lo que tengo en el error ya el error actual 00:16:09
pasa a valer 0 el error presente 4 y el error pasado vale 3 realizo este cálculo y obtengo un 00:16:16
área de error de 0.35. A 0.35 tengo que sumarle la acumulación del error anterior que también 00:16:22
era 0.35 así que ya llevo un error acumulado de 0.70. Vuelvo al siguiente ciclo de scan en el 00:16:29
quinto ciclo de scan a ir rotando los valores entre las distintas posiciones de la pila. Ahora 00:16:38
error 0, error presente 0 y error pasado 4. Realizo el cálculo del área de error y vale 0.2. Vuelvo a 00:16:44
sumar la integral del error perdón vuelvo a obtener la integral del error que es el error 00:16:51
acumulado y sería el área más la acumulación de errores anteriores y eso sería 0,2 más 0,7 0,9 00:16:56
como veis es exactamente el mismo valor que se obtenía con el cálculo de la suma de áreas por 00:17:03
tanto el resultado es idéntico esto que hemos hecho así matemáticamente es lo que vamos a hacer 00:17:09
a la hora de programar en el plc y es justamente lo que vamos a hacer a continuación entonces nos vamos a ti a portal en ti a portal lo primero la variables las variables la tabla de variables es esta de aquí para que se visualiza entera la sal suelto ahí tenemos todas las variables tengo las variables que tenía en el factory más todas las variables temporales bueno todas las variables intermedias que tengo aquí en forma de marcas 00:17:15
que iremos viendo a la hora de programar vuelvo a dejarlo y empezamos a programar para programar 00:17:47
entonces empiezo bueno he dejado los títulos de los segmentos para no tener para que no se 00:17:54
haga el vídeo eterno bien como siempre habilitación como siempre entonces habilitamos con un ser ese 00:18:02
mi señal de marcha, un normalmente abierto 00:18:08
que va a ser lo que le he llamado Start 00:18:15
mi señal de paro, que como bien sabéis en Factory es un pulsador 00:18:18
normalmente cerrado, por tanto aquí también tiene que ser normalmente cerrado 00:18:24
mi señal de Stop y mi señal de habilitación 00:18:28
es una marca, voy a visualizar también 00:18:32
mediante un pequeño piloto el cuadro 00:18:39
estoy en marcha, bien, tal como comenté anteriormente 00:18:47
vamos a hacer, no, vamos a 00:18:51
meter ahí una variable, cuando tenga habilitado el sistema 00:18:55
cuando haya habilitación voy a hacer 00:18:59
un move, lo que voy a hacer realmente es llenar a tope 00:19:03
llenar a tope el depósito 00:19:08
así que la válvula de llenado, que yo la he llamado 00:19:14
la válvula de llenado 00:19:18
que es la 30 00:19:22
le meto valor a tope 00:19:22
y si el sistema 00:19:25
no está habilitado 00:19:28
si el sistema no está habilitado 00:19:29
lo que voy a hacer es 00:19:37
no se llene el depósito 00:19:39
para no perder tiempo 00:19:49
bien 00:19:54
vamos a hacer a continuación el escalado 00:19:58
del set para hacer un escalado 00:20:01
como bien sabemos ya tenemos que hacer 00:20:02
un normalizado y un escalado 00:20:04
así que un 00:20:07
normalizado 00:20:10
y un escalado 00:20:12
y un escalado 00:20:18
el tipo de entrada va a ser 00:20:19
es el potenciómetro, va a ser un real 00:20:23
la salida 00:20:26
el normalizado será un real 00:20:28
la entrada y el escalado un real 00:20:29
y la salida también va a ser un valor real 00:20:31
porque va a ser después el que voy a utilizar 00:20:34
para restar con la señal 00:20:36
bien, ¿entre qué valores puede variar 00:20:38
la señal de entrada 00:20:42
del potenciómetro, pues entre 00:20:44
como está en valores reales 00:20:46
entre 0 y 10 00:20:48
y aquí sería mi señal 00:20:49
de potenciómetro que le hemos llamado 00:20:52
setpoint, este sería el potenciómetro 00:20:54
recordáis 00:20:59
perdón, recordáis 00:21:00
que el setpoint 00:21:02
que estaba en el 38 00:21:09
lo veis aquí 00:21:11
bien, estos son variables 00:21:13
temporales 00:21:16
así que directamente me las he creado 00:21:16
aquí para no tener problemas 00:21:20
esta es no directamente es el set point vale el normalizado del set point pues directamente me la 00:21:22
traigo bien la copio y será mi señal de entrada y la pego en el escalado entre qué valores os he 00:21:30
He dicho que lo queremos en tanto por ciento, por lo tanto, entre 0 y 100.0. 00:21:41
Perfecto. 00:21:50
Y la salida va a ser mi salida de escalado. 00:21:52
Mi salida de escalado que yo le he llamado SP escalado. 00:21:57
SP escalado, muy bien. 00:22:06
A continuación, este valor también lo tengo que visualizar. 00:22:08
El valor del setpoint entre 0 y 100 también lo tengo que visualizar en un display. 00:22:11
Podría hacerlo como lo he hecho en prácticas anteriores mediante una conversión, pero lo vamos a hacer de otro modo para que veáis otro modo de programarlo. Como casi siempre, todas las cosas se pueden hacer de distintos modos y cada uno las hace como quiere, pero para que veáis los distintos modos de trabajar, yo lo voy a hacer directamente con un, en vez de hacerlo con una conversión, lo voy a hacer con otro escalado. 00:22:15
copio las señales 00:22:36
para ganar tiempo 00:22:43
aquí lo mismo que antes 00:22:45
0.0 pero 00:22:47
ahora sí, ahora la salida va a ser un doble entero 00:22:50
¿por qué? 00:22:53
porque lo que voy a visualizar es el display 00:22:55
voy a visualizar valores 00:22:57
bueno, no, este es un valor 00:23:01
entre 0 y 100, no es necesario que sea 00:23:03
real, y aquí sería 00:23:05
la salida del display 00:23:10
que yo lo he llamado 00:23:11
y lo he llamado 00:23:13
display, como estoy haciendo el 00:23:16
setpoint, perfectamente 00:23:18
bien, ahora 00:23:20
realmente lo que voy a 00:23:22
hacer es el escalado de la 00:23:24
señal de caudal, del sensor de caudal 00:23:26
bien, es 00:23:28
exactamente igual que el anterior 00:23:30
en vez de copiar todo el segmento me voy copiando los 00:23:31
bloques, a ver si no me equivoco 00:23:34
y a continuación 00:23:36
voy a copiar, repito 00:23:40
todos los bloques por ganar un poquito de tiempo 00:23:42
Lo único que voy a cambiar son las señales, las variables. Aquí lo único que varía es que en vez de ser la señal de setPin voy a tener la señal del sensor de caudal. Esta señal, lógicamente, ya no es el normalizado del setPin, sino que tengo otro normalizado aquí que lo he llamado normalizado del PV. 00:23:44
La copio, la pego y también la pego aquí. Y, típicamente, en vez de ser inescalado esta señal, pues será V escalado. Y aquí, pues el display del PV. 00:24:16
El display del PV. Perfecto. Bien, ya tenemos entonces escalado el sensor del potenciómetro y escalado el sensor de la variable de proceso, o sea, el sensor de caudal. Para que nos situemos, estamos aquí. 00:24:43
Hemos hecho ahora mismo el escalado de esta señal y hemos hecho anteriormente el escalado de esta señal. ¿Qué tengo que hacer ahora? Pues la resta para obtener la señal de error. Pues eso es lo que vamos a hacer a continuación, el cálculo del error mediante una resta. 00:25:09
¿Qué tenemos que restar? Pues tenemos que restar, bueno, no me la sé memoria, pero la copio y la pego. ¿Tenemos que restar? No, este no es el setpoint del escalado. Ah, sí, sí, perdón, sí. Este sería copiar y v escalado. La señal que voy a obtener aquí es el error. Perfecto, muy bien. 00:25:25
Ya tenemos entonces mi señal de error. A continuación, ¿qué es lo que vamos a hacer? Calcular justamente la acción integral. O sea, lo que vamos a hacer es esto de aquí, la multiplicación de esta señal de error que ya tengo por el KP para obtener justamente esta variable. 00:26:07
Pues vamos a calcular la acción integral entonces 00:26:23
Para calcular la acción integral no es más que hacer una multiplicación 00:26:27
La multiplicación, esto es lo que hemos hecho cuando hacíamos la ganancia proporcional 00:26:32
¿De qué? Pues de mi señal de error, la KP 00:26:41
Por mi constante de proporcionalidad, constante proporcional 00:26:47
Sería KP, efectivamente 00:26:51
Y la señal que obtengo ahí es lo que yo he llamado regulador proporcional 00:26:53
este regulador proporcional me va a dar un valor muy grande 00:27:02
por tanto voy a hacer un control de saturación 00:27:06
¿cómo? mediante un limit 00:27:09
lo que voy a hacer es limitar realmente el valor 00:27:11
pues hagamos un limit 00:27:14
¿entre qué? pues entre 200 por ejemplo 00:27:16
vamos a decir primero el tipo de variable que es 00:27:20
es un tipo real y aquí le vamos a poner 200.0 00:27:24
y el valor mínimo menos 200.0 00:27:30
porque podría ser negativo también 00:27:35
entonces aquí lo que vamos a hacer es el regulador 00:27:36
o sea esta misma señal la copiamos 00:27:41
la pegamos, perfecto 00:27:44
y la volvemos a pegar aquí 00:27:47
ahora a continuación vamos a crear la pila 00:27:49
realmente la manipulación de la pila no es más que mover variables 00:27:53
como recordáis 00:27:57
Entonces, realmente vamos a hacer un move 00:27:58
¿Un move de qué? 00:28:01
Desde el error presente 00:28:05
Recordáis, el error presente 00:28:06
Lo que hay en el error presente pasará al error pasado 00:28:09
Y a continuación, con otro move 00:28:14
Lo que había en el error pasa al error presente 00:28:21
Perfecto 00:28:30
Esto es la manipulación de la pila 00:28:34
Primero el error presente pasa al error pasado y luego el error pasa al error presente. 00:28:36
Muy bien. 00:28:41
Ahora voy a calcular el área. 00:28:43
Para calcular el área realmente lo que quiero hacer es, repito, es esta expresión. 00:28:44
Calcular esta expresión matemáticamente. 00:28:50
O sea, el error presente más el error pasado por 0,1 dividido 2. 00:28:53
Eso es lo que quiero hacer. 00:28:57
En vez de hacerlo con varios bloques, lo voy a hacer con un único bloque. 00:28:58
Para ello, directamente entonces, un único bloque que se llama Calculate, o Calculate en español. 00:29:01
Voy a poner en juego cuatro variables. Aquí, por defecto, solo me aparecen dos, pues le vamos a poner cuatro. 00:29:13
En la 1, pues va a ser el error presente. Bueno, no, mejor el error pasado, da igual, pero... 00:29:19
en la 2, el error presente, el 3, 2.0, será el valor en el que lo voy a dividir, aquí, 0.1, perdón, 0.1. 00:29:27
A continuación tengo que poner la expresión que quiero utilizar, o bien le dais aquí a la calculadora, o bien aquí. 00:29:45
Doble clic y aquí hay que poner la expresión. Así que voy a ponerla, voy a poner doble paréntesis, aquí sería, 00:29:50
IN1 más IN2, cierro paréntesis, en este caso sería por IN4, cierro paréntesis, uno de los paréntesis, no, lo divido todo entre IN3, es la expresión, repito, que tenemos aquí. 00:29:57
Y la salida que voy a obtener aquí es el área del error, que yo he llamado de error. Muy bien. Tenemos hecho este cálculo. A continuación, ¿qué es lo que tengo que hacer? Pues este otro. Ir acumulando errores, ir acumulando errores. 00:30:25
Bien, para hacer una acumulación de un error realmente lo que tengo que hacer es una suma, pues hago la suma, recordáis es la función, el bloque ad, y qué tipo va a ser los valores con los que voy a trabajar, con reales, ¿qué es lo que voy a sumar? Pues voy a sumar el área del error, pero lo voy a poner aquí, da igual, el área del error más una variable nueva que va a ser donde voy a acumular el error y que yo le llame, si recordáis, error. 00:30:43
El resultado lo voy a copiar y también le voy a hacer un control de saturación. Va a ser real y va a ser esta variable de aquí, la acumulación del error. 00:31:21
¿Entre qué valores puede variar? Pues entre 200.0 y menos 200.0. 00:31:44
El cálculo de la integral del error solo lo voy a hacer realmente cuando, si os fijáis, solamente me va a interesar realizar el cálculo cuando k i sea mayor que 0. 00:32:00
O sea, solamente va a influir cuando KI sea mayor que 0. Si KI es menor que 0, aquí tiene que aparecer un 0. Aquí tiene que haber un 0. ¿Cómo se hace eso? Pues haciendo una comparación previa. ¿De qué? Pues de KI. 00:32:12
Si k y, en mi caso, es distinto en real que 0.0, entonces hago esto. Bueno, perdonad que se me ha olvidado poner aquí la variable de salida que es la misma, la acumulación del error. Así que si k y es distinto que 0, hago esto. 00:32:30
pero si cae no es distinto de 0 00:32:57
o sea, podía hacer otra comparación aquí 00:33:00
para hacer lo que voy a hacer 00:33:02
pero lo voy a hacer de otro modo 00:33:04
repito, es para que aprendáis 00:33:06
distintas estrategias de programación 00:33:07
aquí entonces lo que voy a hacer es 00:33:09
una función distinta que es el not 00:33:11
en operaciones lógicas not 00:33:14
y ahora explico 00:33:16
qué es lo que estoy haciendo 00:33:20
realmente aquí voy a hacer un move 00:33:22
¿un move de qué? 00:33:24
pues de 0.0 00:33:32
¿A qué? A la variable de integral del error, a la variable del error acumulado. ¿Cómo trabaja esto entonces? Si k es distinto de 0, o sea, esto es verdad, esto es cierto, esto es true, pues entonces me vengo por aquí. 00:33:33
Pero si no es verdad, me voy por aquí y entonces hago esto. O sea, pongo cero y entonces pongo cero aquí. Significa que no va a influir. Voy a tener solamente el control proporcional. Eso es si KI es igual a cero. Seguimos y ya nos queda poco. 00:33:53
vamos a calcular la acción integral 00:34:13
entonces a continuación 00:34:15
¿cómo calculamos la acción integral? 00:34:17
pues multiplicando por la constante 00:34:19
o sea, la acumulación del error 00:34:22
o sea, lo que he hecho realmente ha sido 00:34:25
esto, la integral 00:34:27
ahora tengo que multiplicarlo por KI 00:34:29
a ver, por ver el peso 00:34:31
pues nada, me voy y multiplico 00:34:33
multiplico 00:34:36
¿qué? pues 00:34:40
este valor de aquí, bueno, lo voy a poner en real 00:34:42
era la integral del error, multiplico por ahí 00:34:45
el peso que quiero darle, la constante integral 00:34:53
y el resultado que voy a obtener ahí 00:34:57
va a ser realmente el regulador integral 00:35:01
el regulador integral, como siempre hago un control de saturación 00:35:04
para que no se me vaya muy alto y va a variar 00:35:10
200.0 y menos 200 00:35:24
Como siempre. Bien. La salida será mi regulador integral. Bueno, en este caso, aunque se podía dejar así, yo he puesto otra variable. Reintegrar límite. Repito, se podía haber dejado perfectamente el regulador integral sin problema. 00:35:31
Y a continuación, pues, ¿qué tengo que hacer? Sumar las dos. Sumar la acción integral y sumar la acción proporcional. Por tanto, una suma de valores reales. ¿De qué? Pues, mi acción integral, que la acabo de calcular hace un momento. 00:36:02
Y la acción proporcional, que no me acuerdo dónde la tengo, aquí está. La copio y me la traigo para acá. Lo que obtengo aquí sería, ya sería mi regulador pi, al cual nuevamente voy a hacer un control, perdón, control de saturación. 00:36:27
Pero en este caso, a ver si carga, vale. En este caso lo voy a hacer entre 0.0 y 200 porque no quiero que sea negativo en ningún caso. Y aquí tengo ya mi regulador integral. 00:36:53
Por último voy a hacer ya un desescalado para atacar, o sea, lo que voy a hacer ahora es atacar a la válvula de descarga, por tanto tengo que hacer un desescalado, un desescalado de esta señal, de la suma, que es mi variable manipulada realmente. 00:37:20
Para hacer un desescalado, como bien sabéis, se hace con un normalizado y un escalado. Normalizado y escalado. Valores, pues de entrada un real, la salida también será un real, la entrada del escalado real y la salida, como voy a atacar a una válvula, también es un real. 00:37:38
mi señal es 00:38:06
la señal de entrada 00:38:09
¿entre qué valores puede variar? 00:38:12
pues entre 0.0 00:38:13
y 200.0 00:38:15
que son los valores que tengo limitados 00:38:18
aquí 00:38:20
me he creado una variable 00:38:21
la he llamado 00:38:23
respe 00:38:25
vale, vamos a bajar 00:38:26
un poco 00:38:29
para traérmela 00:38:30
perfecto 00:38:32
la copio 00:38:35
la copio 00:38:37
y subo esto para que se vea más pantalla 00:38:44
entre qué valores puede variar 00:38:50
como estoy haciendo un desescalado 00:38:52
hacia la válvula de salida, pues entre 0.0 00:38:54
10.0 00:38:58
es la válvula de 00:39:00
descarga, que es la que tengo que regular 00:39:02
la válvula de descarga 00:39:04
ya estaría totalmente hecho 00:39:08
ya estaría totalmente hecho 00:39:10
pues lo único que vamos a hacer es 00:39:12
para ver si tenemos algún error 00:39:15
compilar 00:39:16
Compilamos. Tengo un error en el segmento 8. 00:39:21
Ah, que no le he puesto salida, claro. 00:39:29
Aquí la señal que tengo que ponerle es el área del error. 00:39:32
Bien, ahora sí, vamos a intentar compilar otra vez a ver si tenemos algún error. 00:39:41
Cero errores. Bien, está todo correcto. 00:39:47
Una vez que tenemos, ya sabemos que no hay errores, pues simulamos. 00:39:50
Cargamos y arrancamos. 00:40:11
Vamos a darle a las gafitas. 00:40:17
Esta ventana la minimizo. Bien, vamos entonces al Factory. Dentro del Factory vamos a ver si quiere el driver cargar. Si os ocurre esto, yo os aconsejo que si tarda mucho en arrancar y demás, que lo guardéis, cerréis y lo volváis a abrir. 00:40:27
Bien, una vez que está abierto, vamos a ver si ahora sí carga o no carga. Me voy al driver. Perfecto, ya ha cargado. Tarda un poquito, dependiendo de la máquina que tengáis, pero al final pues termina cargando. 00:41:08
vamos entonces a simularlo 00:42:06
pero para simular 00:42:11
antes de nada, ojo 00:42:12
porque tendréis que forzar el valor de kp 00:42:14
tendréis que forzar 00:42:16
kp y ki 00:42:19
porque por defecto valen 0 00:42:20
si este vale 0 y este vale 0 pues no voy a hacer 00:42:22
ningún tipo de regulación y no va a funcionar 00:42:24
no va a dar error pero no va a 00:42:26
funcionar tampoco, por tanto 00:42:28
antes de nada forzamos un valor en kp 00:42:30
y forzamos un valor en ki 00:42:32
empiezo por kp 00:42:34
forzamos 00:42:36
un valor, pues por ejemplo voy a empezar 00:42:39
por 1.0 en KP 00:42:42
y forcemos también un valor 00:42:46
en KAI, le vamos a poner 00:42:48
también para que empiece a funcionar 00:42:57
1.0, luego ya regularemos 00:42:58
bien, ya tenemos los dos valores 00:43:00
forzados 00:43:02
y vamos a empezar entonces a 00:43:03
funcionar 00:43:06
lo primero que vamos a hacer entonces es 00:43:07
darle marcha, que se llene el depósito 00:43:10
que se vaya llenando, mientras tanto 00:43:14
me voy a acercar, veis se va llenando 00:43:18
pero ahora mismo el setpoint que tengo puesto es cero 00:43:24
el setpoint veis es cero 00:43:27
por tanto ahora mismo la válvula realmente no está funcionando 00:43:32
de hecho si me voy y le veo la válvula de descarga 00:43:35
está cero porque no hay nada que regular 00:43:41
está funcionando, está llenando 00:43:43
quiero que se llene más 00:43:50
para que veamos funcionar correctamente 00:43:51
aunque le he metido KP y KI 00:43:54
pero no está regulando nada porque no tengo nada de setpoint. El setpoint está en cero, 00:43:57
por tanto no regula nada. Empecemos. Vamos a regular. Que se llene un poco más. Yo creo 00:44:03
que así vale ya. Si quiero que deje de llenarse pulsador de paro y deja de llenarse. Vamos a 00:44:16
conseguir una regulación, pues por ejemplo giramos el setpoint para obtener una regulación por 00:44:24
ejemplo de un 29% veis empieza a regular empieza a regular un 30 un 29 28 está funcionando veis 00:44:30
bueno no se ve la válvula de descarga veis ahora mismo está al 34% al 35 para que para mantener 00:44:42
constante ahora ya está regulando y está regulando perfectamente está manteniendo fijaos el set point 00:44:52
que es este de aquí 00:44:58
el setpoint que es este de aquí, 29 00:44:59
y el pv, 29 00:45:03
y estoy obteniendo 00:45:05
la válvula de descarga está al 37% 00:45:07
al 38, ¿por qué? 00:45:10
porque la altura va disminuyendo, vamos a aumentar un poquito 00:45:11
ligeramente el setpoint 00:45:13
al 37, ¿regula? 00:45:15
sí, sí regula 00:45:22
37, ¿veis? ahora mismo lo tenemos 00:45:23
al 37, la válvula lógicamente 00:45:26
se ha abierto más, al 52 00:45:28
53, va cayendo 00:45:30
veis que va vaciando y lo conseguimos 00:45:31
vamos a modificar 00:45:35
vamos a modificar algún valor, vamos a modificar por ejemplo el valor 00:45:38
de la KP, la vamos a forzar y la vamos a poner 00:45:45
por ejemplo a 5, si lo ponemos a 5 vamos a ver como se modifica 00:45:50
vamos a llenar un poco 00:45:57
llenamos, se está llenando y vaciando al mismo tiempo 00:45:59
lógicamente, veis, se va cerrando la válvula 00:46:10
¿por qué? pues porque el nivel del agua va subiendo 00:46:16
la presión hidrostática va aumentando 00:46:20
por tanto, la válvula se va cerrando 00:46:24
y se cerrará mucho más si yo disminuyo más todavía 00:46:26
por ejemplo, a un 15% 00:46:36
se mantiene perfecto, está regulando 00:46:38
De hecho, si le doy al pulsador de paro, la descarga es muy lenta, porque es un 15%, entonces tardaría mucho en verlo. 00:46:44
Lo que voy a hacer es aumentar la descarga bastante. 00:46:57
Veis que tiene un pequeño sobreimpulso. 00:47:03
No es inmediato, tiene un pequeño sobreimpulso. 00:47:10
Veis, aumenta un poquito y luego disminuye. 00:47:14
Disminuye, ¿veis? 00:47:19
Ese sobreimpulso se lo da también la acción integral, pero al final regula y se queda perfecto. 00:47:20
Bien, pues esto es todo. Espero que hayáis entendido. Un saludo para todos. 00:47:37
Materias:
Electricidad, Electrónica
Niveles educativos:
▼ Mostrar / ocultar niveles
  • Formación Profesional
    • Ciclo formativo de grado superior
      • Primer Curso
      • Segundo Curso
Autor/es:
Ángel García
Subido por:
Ángel G.
Licencia:
Reconocimiento - No comercial - Compartir igual
Visualizaciones:
145
Fecha:
18 de mayo de 2020 - 18:03
Visibilidad:
Público
Centro:
IES ANTONIO MACHADO
Duración:
47′ 47″
Relación de aspecto:
16:9 Es el estándar usado por la televisión de alta definición y en varias pantallas, es ancho y normalmente se le suele llamar panorámico o widescreen, aunque todas las relaciones (a excepción de la 1:1) son widescreen. El ángulo de la diagonal es de 29,36°.
Resolución:
1024x578 píxeles
Tamaño:
84.73 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid