Download Parte 2

Document related concepts

Impedancia wikipedia , lookup

Circuito de parámetros concentrados wikipedia , lookup

Análisis de circuitos wikipedia , lookup

Circuito RLC wikipedia , lookup

Factor de calidad wikipedia , lookup

Transcript
2 Introducción al lenguaje EL
El elemento fundamental del lenguaje EL es el Componente. Un componente reúne toda
la información sobre el comportamiento dinámico tanto continuo como discreto del
sistema a modelar. Un componente puede ser tan simple como una ecuación diferencial
o puede representar un modelo tan complejo como una planta desaladora.
EL permite la reutilización de componentes para crear nuevos componentes, siguiendo
el paradigma del modelado Orientado a Objeto:


Agregación: Se pueden crear componentes mediante la interconexión de otros
componentes previamente creados. Para ello un componente tendrá una interface
pública, que será la única información que comparta con otros componentes. La
interface pública en EL se define por los PORTS, que son un conjunto de
variables que pueden compartirse con otros componentes. El resto de elementos
del componente: variables locales, ecuaciones, etc. permanecen ocultas para los
demás componentes (encapsulamiento). La conexión de componentes se realiza
únicamente a través de los PORTS.
Herencia: En cualquier proceso de modelado nos vamos a encontrar con
componentes que comparten parte de la información: PORTS, ecuaciones, etc.
El mecanismo de herencia incorporado en EL permite no tener que volver a
modelar la parte de información que comparten. Por ejemplo, a partir de un
controlador PI podríamos definir un PID sin más que crear un componente
basado en un PI al que se le añade la acción derivativa.
En este capítulo se hace una introducción a los aspectos básicos del lenguaje EL,
definición de interfase con otros componentes, herencia, expresiones, etc. Todo ello se
irá describiendo con ejemplos y ejercicios.
Interfase de conexión: PORTS
Los PORTS permiten el intercambio de variables entre componentes. Son la interfase
pública de los componentes. Por ejemplo, en un modelo de un circuito eléctrico, se
puede definir un PORT que incluya las variables tensión e intensidad. Un componente
eléctrico, p.e. una resistencia, un condensador o una fuente de tensión, tendrían dos
ports de este tipo, que se corresponderían con los dos bornes del componente eléctrico.
De esta forma, si conectamos dos de estos componentes podemos conseguir que las
2-2
tensiones e intensidades de los extremos conectados queden relacionadas de forma
adecuada.
Al conectar dos componentes por sus PORTS, EcosimPro generará automáticamente
ecuaciones que se incorporarán al modelo (aunque éstas queden ocultas al usuario). Así,
al conectar dos componentes eléctricos, se generará una ecuación que indicará que las
tensiones de los dos ports son iguales y otra en las que indica que la suma de las dos
intensidades es cero.
La definición de un PORT se suele introducir en la librería para que pueda ser utilizado
por los componentes incluidos en ella.
La sintáxis de le definición del PORT eléctrico visto anteriormente sería:
PORT Elec “port electrico”
SUM REAL i
“Intensidad (A.)”
EQUAL REAL v
“ Tensión (V.) “
END PORT
El PORT incluye dos variables reales, tensión e intensidad. Las palabras claves EQUAL
y SUM indicarán las ecuaciones de conexión que se crearán automáticamente al
conectar los puertos de dos o más componentes y que se encargarán de relacionar las
variables (v, i en este caso) de los dos ports conectados.


EQUAL: Las variables con este identificador de todos los ports conectados
tendrán el mismo valor.
SUM: La suma de todas las variables de este tipo de los ports conectados
sumarán cero (se usará para variables de flujo)
Por ejemplo, si conectamos dos ports de tipo Elec llamados P1 y P2 las ecuaciones que
generará EcosimPro serán:
P1.v=P2.v
P1.i+P2.i=0
que se corresponden con el comportamiento físico de las variables tensión e intensidad.
Nótese la denominación de las variables, similar a las estructuras en lenguaje C.
Otro ejemplo sería un port de tipo hidráulico:
PORT hidraulico “port hidraulico”
SUM REAL caudal
EQUAL REAL presión
END PORT
También es posible incorporar en la definición del port un bloque CONTINUOUS que
permite dar valor a alguna variable en función de otras. Por ejemplo, sea el caso del
PORT correspondiente a un eje mecánico en el que definimos velocidad angular, par y
potencia:
PORT eje_mecanico
2-3
SUM REAL T
EQUAL REAL w
SUM REAL P
“Par”
“Velocidad angular”
“Potencia”
CONTINUOUS
P=T*w
END PORT
Componentes
Como se indicó anteriormente, el componente es el elemento fundamental en EL. En el
componente se define el comportamiento continuo y discreto de un modelo. Puede
formar parte de otro componente más complejo mediante interconexión a través de los
ports.
Pueden tener hasta nueve bloques opcionales dependiendo de su comportamiento:
ABSTRACT? COMPONENT ID (IS_A ID (,ID)* )?
(‘(‘ parameter_s ‘)’)?
( PORTS port_decl_s )?
( DATA var_decl_s ) ?
( DECLS comp_decl_s )?
( TOPOLOGY topology_stm_s )?
( INIT seq_stm_s )?
( DISCRETE discrete_stm_s )?
( CONTINUOUS labelled_stm_s )?
END COMPONENT









IS_A: permite definir la herencia.
Parámetros: Se pueden pasar parámetros al componente
PORTS: Define las variables accesibles desde el exterior del componente
DATA: Constantes y parámetros del componente
DECLS: Variables locales que se usan principalmente en la zona de
comportamiento discreto o continuo
TOPOLOGY: Se usa cuando un componente se forma por conexión de otros
para indicar la forma en que se conectan.
INIT: Secuencia de instrucciones que se ejecutan en el momento de crear el
componente
DISCRETE: Comportamiento discreto
CONTINUOUS: Comportamiento continuo
Herencia
Permite una estructura jerárquica en que toda la información componente padre la puede
heredar el hijo, al que sólo habrá que añadir la información específica.
Supongamos que queremos hacer una librería eléctrica. Hay muchos componentes,
como resistencias, condensadores, bobinas,.. que presentan dos pines, en los que nos
2-4
interesa las tensiones e intensidades, cuya relación es distinta dependiendo del tipo de
componente.
Podemos definir un componente base que englobe los datos comunes a todos ellos:
ABSTRACT COMPONENT DosPines
PORTS
IN Elec p_pos
“Pin positive”
OUT Elec p_neg
“Pin negativo”
DECLS
REAL v
CONTINUOUS
p_pos.i=p_neg.i
v=p_pos.v-p_neg.v
i=p_pos.i
END COMPONENT
Un componente ABSTRACT es aquel que solo se usa como base para otros
componentes, pero que se pueden simular. En el ejemplo, hemos definido dos pines del
tipo PORT eléctrico definido anteriormente, hemos definido la variable v para la caída
de tensión en el componente (cuya ecuación aparece en la parte continua) y hemos
definido la relación de igualdad entre las intensidades de los pines. También hemos
definido una variable i que define la intensidad que circula por el componente.
Los identificadores IN y OUT en la definición de los PORTS nos van a servir para
definir el sentido en las variables de flujo.
Basado en este componente podemos definir una resistencia basada en el componente
que acabamos de definir.
COMPONENT Resistencia IS_A DosPines
DATA
REAL R = 10
CONTINUOUS
v=R*i
END COMPONENT
Nótese que aunque no está definida de forma explícita, el componente Resistencia tiene
dos pines p_pos y p_neg que podemos usar dentro del componente, así como las
variables locales v e i ya declaradas.
Del mismo modo se podía definir un condensador:
COMPONENT Condensador IS_A DosPines
DATA
REAL C = 0.1
CONTINUOUS
v’= i /C
END COMPONENT
Nótese la manera en que se define la derivada de v con respecto al tiempo. Es
importante resaltar que tando en la ecuación de Ohms en la resistencia como en la del
condensador no se define la causalidad y por tanto hubiera sido equivalente escribirlas
como i=v/R o C=v’/i
2-5
Ejemplo
Definición mediante herencia de un controlador:
PORT SenalAnalogica
EQUAL REAL valor
END PORT
ABSTRACT COMPONENT Controlador
PORTS
IN SenalAnalogica y
"variable controlada"
IN SenalAnalogica ref
"set point"
OUT SenalAnalogica u "salida controlador"
DECLS
REAL
e
“Error”
REAL
salida
“Variable de salida calculada”
CONTINUOUS
e = ref.valor – y.valor
u.valor = salida
END COMPONENT
COMPONENT COontrolador_P IS_A Controlador
DATA
REAL K = 1
CONTINUOUS
salida=K*e
END COMPONENT
COMPONENT Controlador_PI IS_A Controlador
DATA
REAL K = 1
REAL TI= 0.1
DECLS
REAL ai
“acción integral”
CONTINUOUS
ai’= e
“ai es la integral del error”
salida=K*e+ai/TI
END COMPONENT
Ejercicio 2.1




Crear una librería denominada CYS_ELEC donde se incluyan los PORTS
Electricos y SenalAnalogica.
Incluir los componentes Resistencia y Condensador tal como se han visto.
Añadir los compontes Inducción, FuenteTensión y Tierra
Añadir los controladores vistos arriba y definir el Controlador_PID.
Ejercicio 2.2
Un motor de corriente continua consta básicamente de dos bobinas, una llamada de
campo (estator) y la otra llamada de armadura (rotor), de forma que ésta última puede
2-6
girar libremente. El circuito de armadura se puede considerar como una resistencia Ra
en serie con una inductancia La y una tensión contraelectromotriz Ve, como se muestra
en la figura. De esta manera si Vt es la tensión aplicada al circuito de armadura:
Vt  Ve  Ra I a  La
dI a
dt
Para el circuito de campo tenemos la siguiente ecuación:
Vf  Rf I f  Lf
dI f
dt
El par que genera el motor deberá vencer los pares de inercia y fricción del motor y la
carga, de acuerdo a la expresión:
Te  Td  J d
d
 Bd 
dt
Por otro lado, Ve depende de la velocidad angular, de la intensidad de campo y de la
inductancia mutua entre bobina de campo y armadura, de acuerdo a la expresión:
Ve  Laf I f 
Finalmente, el par generado por el motor viene dado por la expresión:
Te  Laf I f I a
Para modelar dicho componente seguiremos los siguientes pasos:
a) Todo el código se escribirá en un fichero que se llamará motor.el.
b) Definiremos un tipo de PORT que denominaremos Eje con dos variables el par
(T) de tipo SUM y la velocidad angular de tipo EQUAL.
c) En el mismo fichero se escribirá el componente Maquina_CC que incluirá las
ecuaciones que aparecen arriba. El componente tendrá 5 ports: Dos de tipo Elec.
correspondientes a los dos pines del circuito de armadura (e_a_p y e_a_n), otros
dos de tipo Elec. correspondientes a los dos pines del cicuito de campo (e_f_p y
e_f_n). El último será de tipo Eje, donde conectaremos la carga que definiremos
posteriormente. Nótese que a parte de las ecuaciones anteriores, será necesario
añadir dos más en que se igualen las intensidades en los dos pines de armadura y
lo mismo con los dos pines de campo.
d) Utilice los siguientes valores por defecto para los parámetros:
REAL Ra=0.6 "Resistencia de la Armadura en ohms"
REAL La=0.0012 "Inductancia de la Armadura en H"
REAL Lf=12 "Inductancia del campo en H"
2-7
REAL
REAL
REAL
REAL
Rf=240 "Resistencia del campo en ohms"
Laf=1.8 "Inductancia mutua campo armadura en H"
Jd=0.03 "Inercia Total en Kg.m2"
Bd=0.015 "amortiguamiento en Kg.m2/seg"
e) Escribir un componente de tipo carga de acuerdo a la siguiente código:
COMPONENT Carga
PORTS
IN Eje eje_in
DATA
REAL J = 1
REAL B = 0.23
CONTINUOUS
J * eje_in.w' +
END COMPONENT
B * eje_in.w= eje_in.T
Related documents