Simulación Y cálculo de Sistemas de Control Realimentado en Python

1
Python - Control - Numpy Simulación y Cálculo de Sistemas Luis María Pizarro - CNEA Ingeniería de Reactores y Centrales [email protected] C P e u y REDIS EXPRESS RED redis to hmi hmi to redis Cliente html5 Cliente html5 redis to mongo MongoDB Histórico socket.IO Estáticos RESTFul Flask NGINX Python P e u y C A N A L E S P R O X Y HMI REDIS: DB en memoria de pares clave-valor, publish-subscribe EXPRESS: framework de desarrollo de aplicaciones web en node.js socket.IO: comunicaciones bidi- reccionales, "tiempo-real", orienta- da a eventos. mongoDB: DB no relacional db.state.insert( { values: [v1,v2,v3] } ) REST: Representational State Transfer, una arquitectura web. nginx: es un servidor HTTP proxy inverso d3.js: Visualización gráca cliente html5: browser con soporte para websocket Integración C P e u y r Solución numérica a ecuaciones diferenciales ordinarias método predictor corrector DIFF Python Orientado a Objetos eulerModied.py .class EulerModied (): def __init__ (self, A,B,C,D,x,y,h): .... def iteration (self): ... .... Controller = EulerModied (Ac, Bc, Cc, Dc, x0c, u0c, h) Plant = EulerModied (Ap, Bp, Cp, Dp, x0p, u0p, h) El lazo se cierra en la interfáz hombre máquina Ap Bp Cp Dp Ac Bc Cc Dc Ap Bp Cp Dp Ac Bc Cc Dc def limiter (self, num): limite = num if (limite[0,0] >= self.lim): limite [0,0] = self.lim elif (limite[0,0] <= -1*self.lim): limite[0,0] = -1*self.lim return limite Saturación en |2| C HIL Arduino Controller MIL Repo: https://github.com/lmpizarro/SciPyConArg2014 Serial Comm Comparación resultados: control vs euler modicado Error Absoluto Error porcentual de Control Realimentado con Python Cálculo de la respuesta del sistema CON saturación en la actuación Cálculo de la respuesta del sistema SIN saturación en la actuación Python 62,2%, Javascript 28,6 %, Arduino 8,7 %, CSS 0,5 % 1 - Feedback Control of Dynamic Systems. Franklin - Powell - Emami-Naeini 2 - EULER’S METHODS FOR SOLVING DIFFERENTIAL EQUATIONS; RC CIRCUITS Robert Ehrlich 3 - Controls Tutorial - Matlab Simulink http://ctms.engin.umich.edu/CTMS/index.php?aux=Home 4 - Control_Systems_Library_for_Python http://www.cds.caltech.edu/~murray/wiki/index.php/Control_Systems_Library_for_Python 5 - Numpy for Matlab Users - http://mathesaurus.sourceforge.net/matlab-numpy.html 6 - Python for Control Purposes - Roberto Bucher - http://robertobucher.dti.supsi.ch/python/ "Tiempo Real" Histórico Referencias El trabajo muestra algunas de las capacidades del lenguaje python en el problemas de cáculo y simulación de sistemas de control realimentado. Además con el uso de herramientas de código abierto se muestra la integración de las soluciones anteriores a sistemas con otras características. Conclusiones mpl.plot(t,y, label='salida') mpl.legend(loc='upper right') mpl.show()

Transcript of Simulación Y cálculo de Sistemas de Control Realimentado en Python

Page 1: Simulación Y cálculo de Sistemas de Control Realimentado en Python

Python - Control - Numpy

Simulación y Cálculo de Sistemas Luis María Pizarro - CNEAIngeniería de Reactores [email protected]

C P

eu

y

REDIS EXPRESS RED

redisto hmi

hmi toredis

Clientehtml5

Clientehtml5

redisto mongo

MongoDBHistórico

socket.IO

Estáticos

RESTFulFlask

NGINXPython

P

eu

y

C A

N A

L E

S

P R

O X

Y

HMI REDIS: DB en memoria de pares clave-valor, publish-subscribeEXPRESS: framework de desarrollode aplicaciones web en node.js

socket.IO: comunicaciones bidi-reccionales, "tiempo-real", orienta-da a eventos. mongoDB: DB no relacionaldb.state.insert( { values: [v1,v2,v3] } )

REST: Representational State Transfer, una arquitectura web.nginx: es un servidor HTTP proxy inverso

d3.js: Visualización gráfica

cliente html5: browser con soporte parawebsocket

Integración

C Pe u yr

Solución numérica a ecuaciones diferenciales ordinarias

método predictor corrector

DIFF Python Orientado a Objetos eulerModified.py

.class EulerModified (): def __init__ (self, A,B,C,D,x,y,h): .... def iteration (self): ... ....Controller = EulerModified (Ac, Bc, Cc, Dc, x0c, u0c, h)Plant = EulerModified (Ap, Bp, Cp, Dp, x0p, u0p, h)

El lazo se cierra en la interfázhombre máquina

Ap Bp

Cp Dp

Ac Bc

Cc Dc

Ap Bp

Cp Dp

Ac Bc

Cc Dc

def limiter (self, num): limite = num if (limite[0,0] >= self.lim): limite [0,0] = self.lim elif (limite[0,0] <= -1*self.lim): limite[0,0] = -1*self.lim return limite

Saturación en |2|

C

HILArduinoController

MIL

Repo: https://github.com/lmpizarro/SciPyConArg2014

SerialComm

Comparación resultados: control vs euler modificado

Error Absoluto

Error porcentual

de Control Realimentado con Python

Cálculo de la respuesta del sistema CON saturaciónen la actuación

Cálculo de la respuesta del sistema SIN saturaciónen la actuación

Python 62,2%, Javascript 28,6 %, Arduino 8,7 %, CSS 0,5 %

1 - Feedback Control of Dynamic Systems. Franklin - Powell - Emami-Naeini2 - EULER’S METHODS FOR SOLVING DIFFERENTIAL EQUATIONS; RC CIRCUITS Robert Ehrlich3 - Controls Tutorial - Matlab Simulink http://ctms.engin.umich.edu/CTMS/index.php?aux=Home4 - Control_Systems_Library_for_Python http://www.cds.caltech.edu/~murray/wiki/index.php/Control_Systems_Library_for_Python5 - Numpy for Matlab Users - http://mathesaurus.sourceforge.net/matlab-numpy.html6 - Python for Control Purposes - Roberto Bucher - http://robertobucher.dti.supsi.ch/python/

"Tiempo Real"

Histórico

ReferenciasEl trabajo muestra algunas de las capacidades del lenguaje python en el problemas de cáculo ysimulación de sistemas de control realimentado.Además con el uso de herramientas de código abierto se muestra la integración de las solucionesanteriores a sistemas con otras características.

Conclusiones

mpl.plot(t,y, label='salida')mpl.legend(loc='upper right')mpl.show()