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

Post on 20-Jul-2015

175 views 2 download

Transcript of 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 yCentraleslpizarro@cnea.gov.ar

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()