Sei sulla pagina 1di 9

SSDC- SIMULADOR DE SISTEMAS DlNAMlCOS CONTINUOS

E. ARCE M.
ESIQUIE-IPN

Se presenta un Simulador de Sistemas Diniimicos Continuos, SSDC. Este Simulador estii orientado a la resolucibn de problemas representados por ecuaciones diferenciales. El lenguaje de programacion es simple, similar a1 usado en computadoras analdgicas. Para el uso efectivo de este Simulador no es necesario tener conocimientos profundos de anhlisis nzlmirico ni experiencia en lenguajes de cbmputo.
problemas se emplea en esencia, 10s mismos principios que en la simulaci6n con computadoras anal6gicas, por lo que no se requieren conocimientos profundos de programaci6n y mktodos numkricos, ni es necesaria la experiencia con computadoras anal6gicas. Este lenguaje permite combinar la alta precisi6n de las computadoras digitales con la flexibilidad de las anal6gicas. Los lenguajes de computadora que pueden simular las caracteristicas de una computadora ana16gica en una digital, son llamados simuladores anal6gico-digital o bajo otras nominaciones, tal como: analizadores diferenciales, simuladores de modelaci6n continua2, etc. Ya en 1965 Linebarger y Brennan3 contaban sblo en U.S.A. 27 diferentes lenguajes c o n estas caracteristicas, y desde entonces su nfimer0.a crecido. Los:hay muy versitiles y que pueden resolver casi cualquier problema, per0 requieren mucha capacidad de memoria a d e m b de un largo entrenarniento en gruesos ma1es. nu a El lenguaje SSDC puede simular una gran cantidad de problemas sin tener que pagar por ello con espacio de memoria y tiempo de computaci6n. Por otro lado, el manual de operaci6n es tan breve que se incluye junto con el programa en este articulo. El programa, incluyendo subrutinas es relativamente corto (alrededor cle 500 tarjetas), lo que lo hace manualmente atractivo, esti escrito en
REVISTA OEL INSTITUTO MEXICANO DEL PETROLEO

El anilisis de sistemas de ingenieria permite el rompimiento conceptual de un sistema en 10s elementos que lo constituyen, considerindolos como blcques funcionales que pueden ser apartados (virtualmente) del sistema, y ser estudiados para un mejor anilisis y diseiio del sistema. La mayoria de 10s problemas que se encuentran en ingenieria pueden analizarse a travks de un modelo matemitico, como una ecuacibn diferencial, per0 la solucibn a estas ecuaciones no siempre se puede encontrar analiticamente, por lo que deben resolverse con la ayuda de una computadora. La simulacihn en computadoras que, implica el procesar un programa que trata con el desarrollo de un modelo, se usa cada vez con mayor aceptaci6n. "Las computadoras y en particular la simulaci6n han cambiado la forma en que, en la actualidad se desarrolla y progresa la ingenieria. La raz6n es simple, 10s experimentos en computadoras son mis baratos, &s ficil de realizar y mucho mis ripidos que 10s experimentos convencionales"1. El programa SSDC (Simulador de Sistemas Dinimicos Continuos), esti orientado a la soluci6n de problemas de simulaci6n en que 10s modelos matemiticos empleados se representan por ecuaciones diferenciales. El lenguaje de programaci6n es fhcil de entender, ya que para la descripci6n de 10s

'

TABLA 1 BLOQUES DEL SIMULADOR SSDC

B p o de Bloque

&dig0 Shbolico
0

Representaci6n Grafica el& eo

Funcibn

Ganancf a

e o = e1 P 1

Integrador

2 5 .
e3 & e

eo =

fiel+e2~2+e3~3)dt

Constante

eo = P ,

Valor absoluto
-

e0

eo =

el

hle

"j=ky?o
e0 =

e2 f d

el
el

0 0

eg d

Sumad or

1-lulti~licador

3 k

"Po e2me
eO =

+ el

-e2

fe3 +

"1

eo = e1e2

Retenci6n de orden cero

el

ez-JTp-e

si e2> 0 eo mantiene su 6ltirno valor, si e26 0

eo = el

Di- iso or

/
0

e o = el/e2

VOL. XII, No. 2,ABRIL 1980

65

TABLA 1 BLOQUES DEL SIMULADOR SSDC


(Continuaci6n)

4.

mpo de Bloque
Inversor

C6di go Shbolico

Repre sentaci6n Graf ica

fincibn

=I

eo

b
0

= -el

bcibn
Exponential

Rail; cuadrada
L

eqT= ej'-q)-eo =fi


e0

eo = -(el

e0

Seno

el{yb-

eo eO = Seno(el 1

cos en0

el{Tp.et]ypj+

e~ eo = cos(el )

Generador de h l s o s cuadrados

eo

" h
O

Logaritmo

'1-fq-p' 0

eo = b ( e 1 )

Retraso simple

e0 = el (t-pl 3 e = O
0

t )/ p 1

<

P I

(e9x~ivaI.ente a e'q

Func&66 de transferencia de primer F

e-[7p-e0

eo

--- =
1

p2

or den
Gemerrador de n h e ros aleatorLos

-7-T-3iz

0Le0~1

t
I

REVISTA DEL INSTITUTU MEXICAN0 DEL PETROLEO

FORTRAN-IV y emplea el mttodo de RUNGEKUTTA de cuarto orden para la simulaci6n de modelos a partir de ecuaciones diferenciaIes o diagramas de bloques. El Proceso de Modelacidn El usuario describe su problema modelindolo en diagrama de bloques a la manera que se realiza la modelacibn en las computadoras analbgicas, usando 10s conceptos de bloques de construccibn. Estos bloques de construccibn o mbdulos operacionales, pueden ser: Sumadores, Integradores, Multiplicadores, etc., la conexi6n de 10s m6dulos a travks de lineas forma la configuraci6n del modelo del sistema a simular. El simulador dispone de 19 bloques de diferentes tipos, con 10s cuales implementa cualquier modelo para simulacibn continua. Cada bloque es identificado por un cbdigo, y la salida de cada bloque es una cantidad escalar definida por una relacibn funcional, pudiendo tener en algunos casos hasta tres entradas. Asociados a cada bloque se definen unos parimetros que particularizan la operaci6n funcional deseada. En la tabla 1 se encuentran 10s bloques funcionales de que dispone el' simulador, usando 10s simbolos recomendados por Shegley4 para representar 10s diferentes tipos de bloques para la construccibn de redes analbgicas para simulacibn. En la construccibn del diagrama a bloques del modelo matemitico se indica con flechas la direccibn del flujo para el caso de bloques que no indiquen por su misma forma dicha direccibn, y en todos 10s C~SOS, "n" representa el niimero de referencia del bloque. Para la simulacibn de sistemas dinimicos con el simulador SSDC se deben seguir 10s siguientes pasos :
1.
2.

simbblico y colocarlas como datos del prograrna.

. Ejemplo 1
Considirese la siguienre ecuacibn:

El primer paso es despejar la derivada de orden mis alto. En el caso de la Ec. (I),se tiene:

,*

= - h

1
a

(bB + cx)

(2)

Se puede obtener la variable x integrando x y se puede obtener x integrando x, en la Fig. 1 se . muestra esta secuencia.

Fig. 1.

Puesto que la suma de las entradas a1 primer integrador es el t6rmino x de la Ec. (2), se alimentan estos valores retroalimentando las salidas, tal como se muestra en el diagrama de la Fig. 2.

Fig. 2.- Diagrarna anal6gico de la cc. 1

3.

4.

Establecer con precisibn el modelo matemitico. Transformar el modelo matemitico a un diagrama de bloques. Pasar el diagrama de bloques a1 modelo simbblico, de acuerdo a1 cbdigo del lenguaje SSDC. Perforar las instrucciones del modelo

Nbtese que 10s parimetros se ipdican dentro de 10s bloques y las condiciones iniciales en 10s circulos. El diagrama anal6gico forma la configuracibn del modelo grifico a simular, para identificar a 10s bloques se enumeran arbitrariamente (de 1 a 99), estos nGmeros son 10s nhmeros de referencia para el modelo simbblico. El modelo simb6lico de acuerdo a1 cbdigo del lenguaje SSDC se forma con 10s siguientes datos:

VOL. XII, No. 2, ABRlL 1980

1. 2.
3.

Especificaciones de la configuracibn del modelo grafico. Especificaciones de 10s tiempos de integracion. Especificaciones de sdida.

Las especificaciones de la configuracibn se definen con tres diferentes instrucciones, Cstas son: Una instruccibn en que se indique el nGmero de bloques del modelo grifico, a continuacibn van las instrucciones correspondientes a 10s bloques que simulan el modelo grifico, el niimero de estas instrucciones debe ser igual a1 nGmero definido por la primer instruccibn. Y por iiltimo, las instrucciones en que se indican las condiciones iniciales y park metros ligados a 10s blpques del modelo.
1.

Fomnato de las instmcciones para especificaciones de la configuracibn.

Como ya se mencionb, estas instrucciones son de tres tipos, en 10s que se definen el nGmero de bloques, datos de la configuracibn y 10s parimetros de 10s bloques, observando siempre esta secuencia. Los datos de cada instrucci6n deben perforarse en una tarjeta, no importando su posici6n dentro de las primeras 72 columnas. Por ejemplo, para el modelo de la Fig. 2, el nGmero de bloques es 2 por lo que Cste nGmero debe ser el primer dato para formar el modelo simb6lico. Este nGmero se perfora en una tarjeta dentro de las primeras 72 columnas, sin importar su posicibn. Esta es una de las caracteristicas del lenguaje que permite la lectura de datos en formato libre, lo cual se logra con las subrutinas ENTRA y NUL del (ver el listado del programa en el apkndice).

de bloque 100 es el tiempo, que tambibn puede usarse en cualquier modelo. La configuracibn del modelo se especificari por medio de 10s nGmeros de referencia de 10s bloques que estkn a la entrada'de aqutl a que corresponde la instruccibn. Asi, la instruccibn 1 I 0 1 2 significa que en el modelo existe un integrador, cuyo niimero de referencia es 1, cuyas entradas son las salidas de 10s bloques, cuyos nGmeros de referecia son 1 y 2. Esta instruccibn corresponde a1 primer integrador del diagrama de la Fig. 2. Para establecer por completo la configuracibn del modelo de la Fig. 2, se requiere una instruccih m6s, ksta es: 2 I 1 0 0. Por lo que se deben tener 2 tarjetas, una por cada instrucci6n, o en otras palabras, cada bloque debe especificarse en una tarjeta. Estos datos se especifican con formato libre, pudikndose perforar en cualquier parte de la tarjeta dentro de las primeras 72 columnas, teniendo como minimo un espacio en blanco para separar cada dato. En general, pueden usarse indistintamente 1 6 3 entradas, cuando se usen menos de tres entradas las restantes se especifican con ceros. Los bloques de tipo K (constante) y P (generador de pulsos cuadrados), no tienen entradas, por lo tanto las entradas se indican con 3 ceros, mientras que en el bloque de tipo (divisor), las 2 primeras entradas tienen que corresponderse con las salidas de otros tantos bloques5. En el caso particular de 10s integradores, como puede verse en la tabla 1, kste se usa de la siguiente forma:

programs

Los datos de las instrucciones correspondientes a 10s bloques de la configuraci6n, se cornponen de:
1.1. El numero de referencia del bloque. 1.2. Cbdigo alfabitico del bloque y, 1.3. NGmeros que definen las entradas a1 bloque .

Fig. 3.- Simbolo diagramiitico del integrador.

Estos datos deben especificarse de acuerdo a este orden y en una sola tarjeta por cada bloque. Los nGmeros de referencia deben estar comprendidos entre 1 y 99, y no deben repetirse, el numero

Teniendo la relacibn entrada-salida dada por la ecuacibn:

REVISTA DEL INSTITUTO MEXICAN0 DEL PETROLEO

Por lo que la primer entrada a cualquier integrador no tiene ninghn parimetro asociado, ya que el parimetro 1 del bloque define las condiciones iniciales. Por este motivo, en el caso del ejemplo del modelo de la fig. 2 10s datos de configuraci6n de 10s bloques quedan en la siguiente forma: 11012 Para especificar 10s datos de condiciones iniciales y parimetros se requiere una instrucci6n por cada bloque, perforando estos datos en una tarjeta en formato libre. Debe aclararse que no todos 10s bloques requieren instrucciones para especificaci6n de parimetros, ya que no tienen ningbn parimetro asociado a la funci6n que realizan, por ejempio, el bloque tip0 S (seno trigonomktrico) y otros. Para el modelo de la Fig. 2, 10s parimetros y condiciones iniciales se especifican de la siguiente manera:

El primer signo de dblar debe perforarse en la segunda columna y entre cada signo de igualdad y la coma debe indicarse el valor correspondiente a cada variable. Los tiempos de simulacibn para el caso del ejemplo 1, son: $TIEMPO DELTAT = TMAX TPRINT $END 0.01, 25.0, 0.5,

Por Gltimo se d e f i n ~ nlas especificaciones de salida.

3.

Fownato de las instrucciones para las especificacioraes de salida.

Las especificaciones de salida incluyen tres tipos diferentes de instrucciones:


3.1. Para obtener 10s resultados en forma de un listado de las variables que representen las salidas de 10s bloques indicados. 3.2. Para poner encabezados alfabkticos a las variables listadas. 3.3. Para obtener 10s resultados en forma grifica.

El primer nbmero identifica a1 bloque, cuyos parimetros se especifican, 10s valores numiricos pueden perforarse como cantidades enteras o reales con o sin exponente, en formato libre, teniendo un espacio en blanco cuando menos de separacibn. Y como en el caso de las entradas a 10s bloques en la configuraci6n, en la especificacibn de parimetros, 10s parimetros no definidos se indican con ceros.
2.

Para obtener 10s resultados en forma de un listado se emplea una instruccibn que usa el formato NAMELIST de lectura, indichdose en la siguiente forma:
$SALIDA BLOCKS
=

Formato de las instrucciones para la especificacibn de 10s tiempos de integfacibn.

, ,

,$END

En una sola instruccibn, usando el formato de lectura NAMELIST se indican 10s tiempos que controlan la simulacibn, dstos son: DELTAT=Intervalo de integracibn. TMAX =Tiempo miximo de integracibn. TPRINT =Frecuencia de impresibn. Despuks de las instrucciones de 10s parimetros debe haber una tarjeta con 10s siguientes datos: $TIEMPO DELTAT TMAX TPRINT $END
VOL. Xll, No. 2, ABRlL 1980
=
-

Indicindose entre las comas 10s nbmeros de 10s bloques, cuya salida se desea listar, pudiindose obtener la impresibn de la salida hasta de 5 bloques. Por ejemplo, en el caso del modelo de la Fig. 4, debe perforarse en una tarjeta la siguiente instruccibn. , ,
SSALIDA BLOCKS = 1 , 2 , 3
0 , $END

Las salidas que no se usen se indican con ceros, de acuerdo a1 formato de NAMELIST. Los letreros que deben ir como encabezados del mencionado listado, se especifican en una tarjeta en formato libre, el ,nbmero miximo de

caracteres es de diez. En el caso del ejemplo se tiene:


VELOCIDAD LONGITUD

TI EMPO

VELOCIDAD

LONG ITUD

Para obtener una grifica hasta de 5 salidas de 10s bloques del modelo, contra el tiempo, se usa una instrucci6n de entrada NAMELIST, bajo las siguientes caracteristicas:

Indicindose entre las comas 10s ncmeros de 10s bloques, cuya salida se desea graficar. Para el ejemplo 1, si se desea solo graficar la salida del bloque nGmero 2, se tendria:
SGRAFICA MODULO
=

2 , 4 * 0, $END

Aqui de nueva cuenta, las salidas que no se usan se indican con ceros. Las instrucciones para la simulacibn del ejemplo 1, se resumen a continuaci6n:

$TIEMPO DELTAT = 0.01, TMAX =25.0, TPRINT= 0.5, $END $SALlDA BLOCKS = 1 , 2 , 3 $END VELOCIDAD LONGITUD SGRAFICA MODULO $END
=2,4

* 0,

* 0,

Los resultados de la simulaci6n se muestran en las Fig. 4 y 5. El tiempo de ejecucibn y compilacibn, fue de 4.6 segundos en una computadora CDC-6400.

0.0000 ,5000 1.oooo 1.5000 2.0000 25000 3.0000 3.5000 4.0000 4.5000 5.0000 5.5000 6.0000 6.5000 7.0000 7.5000 8.0000 8.5000 9,0000 9.5000 10.0000 10.5000 11.oooo 11.5000 12.0000 125000 13.0000 13.5000 14.0000 14.5000 15.0000 15.5000 16.0000 16.5000 17.0000 17.5000 18.0000 18.5000 19.0000 19.5000 20.0000 20.5000 21.oooo 21.5000 22.0000 22.5000 23.0000 23.5000 24.0000 24.5000 25.0000

0.

-. 11874 -.20513 -.25852 -.28100 -.27675 -.25124 -.21061 -. 16101 -. 10813 -. 56809E-0 1 -.10845E-01 .27128E-01 .55623E-01 .74191E-01 .83266E-01 .83952E-01 .77810E-01 .66647E-01 .52318E-01 .36578E-01 .20953E-01 .66670E-02 -.53984E-02 -.14709E-01 -.21053E-01 -.24495E-01 -.25321 E-01 -.23968E-01 -.20965E-01 -.I 6868E-01 -.I221 5E-01 -.74845E-02 --.30684E-02 .74175E-03 .37587E-02 .58946E-02 .71490E-02 .75915E-02 .73434E-02 .65574E-02 .53999E-02 .40347E-02 .26108E-02 12530E-02 -56797E-04 -.91346E-03 -.16239E-02 -.20680E-02 -.22617E-02 -. 22376E-02

.75000 .71902 .63667 .51941

33332
.24287 .I101 1 -.58503E-02 -.99007E-01 -. 16632 -.20740 - .22403 - .21959 -.I9849 -. 16562 -. 12588 - .83756E-01 - .43068E-01 - .67833E-02 .23052E-01 .45301E-01 .59651E-01 .66479E-01 .66690E-01 .61542E-0 1 .52477E-01 .40974E-01 .28419E-01 .16016E-01 .47257E-02 -.47666E-02 - .12050E-01 -. 16969E-01 -. 19588E-01 -.20139E-01 -.18979E-01 -. 16528E-01 -.13231E-01 - .95145E-02 -.57550E-02 -.22608E-02 .74055E-03 .31046E-02 .47656E-02 .57266E-02 .60457E-02 .ti8212E-02 .51757E-02 .42418E-02 .31495E-02 .20165E-02

Fig. 4.- Resultdos del ejemplo 1.

REVISTA DEL INSTITUTO MEXICAN0 DEL PETROLEO

Fig. 6.- Sistema de control autornGtitico.

Fig. 5.- Resultados del ejemplo 1.

Ejemplo 2 En este ejemplo, se trata de encontrar el mejor ajuste del control para el sistema de la Fig. 6. En donde: K1, K, y son las ganancias y constantes de tiempo de la planta, respectivamente, KT es la ganancia de retroalimentacibn, K, es la ganancia del actuador, Kc es la ganancia del controlador, es la constante del reajuste automitico y R es el valor de referencia. Hay varias formas de determinar un buen ajuste de control manipulando 10s parimetros del ;), 10s m6todos mis comunes controlador (Kc y

son 10s que emplean la respuesta a perturbaciones uansitorias, midiendo el desarrollo del sistema. El desarrollo deseado se puede establecer en tCrminos de un indice de desarrollo, que puede ser por ejemplo, El m h i m o sobrepaso o la cuarta declinacibn. El ajuste con estos indices aunque puede ser bueno, no es el bptimo, para un mejor ajuste se puede usar como indice de desarrollo la integral del error a1 cuadrado (IEC), y cuando se alcanza el minimo de este indice se logra un control bptimo. Para determinar 10s valores de Kc y que definen un control bptimo para el sistema bajo estudio, se consrruye un diagrama analbgico como el de la Fig. 7. En el que se usan dos bloques F (funciones de transferencia de primer orden) para la simulacibn de la planta. Se efecthan varias corridas del modelo cuando R 1, cambiando el valor de hasta obtener el 6ptimo. La siguiente tabla resume 10s resultados de 6 corridas, puesto que el minimo valor del indice de desarrollo se logra cuando Kc= 66.666 y r i = 0.5, Cstos son 10s parsmetros buscados.

RESULTADOS DEL EJEMPLO 2 CUANDO Kc = 66.666


)(I
T.

X2
15 min. 10 rnin. 15 rnin. 10 rnin.

S e 2 d t = IEC
15 rnin.

10 rnin.

0.0 0.25 0.50 0.75 2.00 5.00

1.3340 1.9550 2.01 50 20700 0.1 126 32060

1.3334 1.9819 1.9993 2.0005 0.5272 -75.087

0.6671 1 0.96997 1.0020 1.0250 0.5862 10.121

0.66666 0.98863 0.99936 0.99544 0.861 77 11.248

1.9161 1.0605 0.9999 1.0822 2.9682 85.1 49

2.481 5 1.0622 1.0000 1.0833

3.8682 12.671

VOL. Xll, No. 2,ABRlL 1980

71

CONCLUSIONES El contar con un programa que simule gran variedad de sistemas dinimicos, es de gran utilidad en el imbito acadtmico para el mejor desarrollo y aprovechamiento de cursos, tales como: MatemC ticas, Control de Procesos, Dingmica y Simulacibn, entre otras. Considerando esto, se presenta el programa SSDC que es muy versitil y ficil de usar, ademis de que no se requiere conocimiento previo de computaci6n y cuenta con gran variedad de bloques para construir cualquier sistema dinimico.
1

2 3
4 5 6

F F

K
G
'

7 8 10 11 12

G I I G

7 1 0 3 12 4 5 6 4 10 11

0 0 0 2 0 4 0 0 0
0

0 0 0 0 0 4 0 0 0 0 0

Cuando se presente el caso (aunque es remoto), en que 10s problemas a simular Sean de tal rnagnitud que pueda resolver el simulador, kste puede redimensionarse ficilmente o se pueden aumentar el tip0 de bloques, a traves de pocas modificaciones. Por otro lado, el beneficio que se obtenga del uso del simulador depende de la habilidad del usuario para familiarizarse con el lenguaje de simulaci6n.

PARAMETROS
1 .

2. 3.

4.
5.

Instrucciones de tiempo y salida $TIEMPO DELTAT = 0.01, TMAX = 1 5.O, TPRINT = 0.3, $END $SALIDA BLOCKS = 1,2, 5 , 8 , 0 , $END X1 X2 CONTROL INTEGERROR $GRAFICA MODULO = 1, 2, 3,0, $END
Fig. 7.- Modelo analhim e instrucciones del ejemplo 2.

Andree, R.V.; Andree, J.P. and Andree, D.D. "Computer P~ogmmm ing Techniques, Analysis and Mathematics", Prentice Hall, USA, (1973). 1130. Continuos System Modeling Program. Form No. H20-0282,IBM Corp. Linebarget, R.N. and Breman, R.D., "Digital Simulation for Control System Design", Insmrment and Control System, Vol. 38, No. 10. Oct. 1965. Shegley, J.E., "Simulation of Mechanical Systems and Introduction ", McGraw-Hill, (1967). Trejo, V.O.; Padron, P.R. y F e r n h d a , C.M.. "Lenguaje para la simulaci6n digital d e sistemas d i i h i c o s continuos", 20. Encuentro Nocional Sobm Automatizacibn, Universidad de la Habana, Cuba

En las siguientes piginas se encuentran: la tabla 1, que contiene 10s simbolos del lenguaje del simulador y a continuacibn el programa y las subrutinas.
NOTA: Un listado de este sirnulador puede: ser obtenido a travCs del Dr. Gustavo Garza Tobias, Investigacibn Bkica de Procesos del IMP o con el autor, M. en C. Enrique Arce Medina, ESIQIE, UPIPN, actudmente en el Depto. de Ing. Quimica de la Universidad de Carolina del Norte USA.

REVISTA DEL INSTITUTO MEXICAN0 DEL PETROLEO

Potrebbero piacerti anche