Articulo de referencia

SIMCOS

SIMCOS ( acrónimo de SIMulation of CONtinuous Systems ) es un lenguaje de programación y un entorno de desarrollo para la simulación por ordenador . Fue desarrollado en 1989 por...

SIMCOS ( acrónimo de SIMulation of CONtinuous Systems ) es un lenguaje de programación y un entorno de desarrollo para la simulación por ordenador . Fue desarrollado en 1989 por expertos eslovenos liderados por Borut Zupančič .

Propiedades

El propósito de este lenguaje es simular modelos matemáticos dinámicos de sistemas, expresados ​​como un conjunto de ecuaciones diferenciales ordinarias . Se trata de un lenguaje orientado a ecuaciones y de tipo compilador . A pesar de su nombre, también puede utilizarse para simulación discreta . El lenguaje se ajusta bien al estándar CSSL'67 de lenguajes de simulación, por lo que su portabilidad entre otros lenguajes que cumplen con el mismo estándar (por ejemplo, Tutsim , ACSL , etc.) es bastante sencilla. Es un software basado en DOS , aunque ocasionalmente se modifica ligeramente para que pueda ejecutarse en versiones actuales de Microsoft Windows . Además de la simulación propiamente dicha, también puede realizar parametrización (una serie de simulaciones con diferentes valores de parámetros ), linealización de modelos y optimización (encontrar los valores de parámetros que minimicen una función de criterio).

Proceso de simulación

Cuando se debe preparar un esquema de simulación, este debe describirse en el lenguaje SIMCOS. Puede "dibujarse" (de forma similar a como se hace con un ordenador analógico ) utilizando una biblioteca de bloques gráfica integrada (que contiene elementos básicos como integradores , amplificadores , sumadores , algunas señales de entrada básicas , etc.), pero lo más frecuente es introducirlo como un programa mediante un editor de texto, por ejemplo, Edit incluido en DOS. Independientemente del método de introducción del modelo, la primera fase de la simulación lo reprocesa en un espacio de estados , reescribe el programa en Fortran y prepara archivos con parámetros de entrada. Este programa Fortran se compila en un archivo ejecutable (.EXE) y se ejecuta. El programa ejecutable lee los valores de los parámetros de los archivos de entrada, realiza la simulación y escribe los valores calculados solicitados en otro archivo. Al finalizar, SIMCOS retoma el control y puede mostrar los resultados en una gráfica.

El núcleo del ejecutable es la función INTEG, que resuelve ecuaciones diferenciales mediante diversos métodos numéricos . Primero, lee los valores necesarios (por ejemplo, parámetros y condiciones iniciales) de archivos; luego, llama a la función DERIV, donde el modelo se describe como una serie de funciones de sus derivadas . Los valores devueltos se utilizan en el método numérico seleccionado. Los resultados calculados se guardan en un archivo y el procedimiento se repite hasta que se cumple la condición de terminación.

Ejemplo

Simulación continua del tiempo muerto (su transformada de Laplace esmisT{\displaystyle e^{-sT}}) no es una tarea trivial y normalmente usamos una de las aproximaciones de Padé . Simularemos la aproximación de Padé de segundo orden.

misT=˙(sT)26sT+12(sT)2+6sT+12{\displaystyle e^{-sT}{\dot {=}}{\frac {(sT)^{2}-6sT+12}{(sT)^{2}+6sT+12}}}

y de cuarto orden:

misT=˙(sT)420(sT)3+180(sT)2840sT+1680(sT)4+20(sT)3+180(sT)2+840sT+1680.{\displaystyle e^{-sT}{\dot {=}}{\frac {(sT)^{4}-20(sT)^{3}+180(sT)^{2}-840sT+1680}{(sT)^{4}+20(sT)^{3}+180(sT)^{2}+840sT+1680}}.}

La señal de entrada es un paso unitario, el intervalo de comunicación es de 0,01 s, la duración de la simulación es de 5 s y los resultados se compararán con la salida de la función discreta de retardo incorporada (que requiere una matriz adicional ( del en nuestro caso) del tamaño adecuado).

y1 es el resultado de la simulación de la aproximación de Padé de segundo orden, y2 es el resultado de la simulación de la aproximación de Padé de cuarto orden y y3 es el resultado del retardo de la función discreta .

Cuando se desarrollan las funciones de transferencia de ambas aproximaciones de Padé utilizando uno de los esquemas de simulación, el modelo se puede describir con el siguiente programa:

programa pade constante tm=1.0 constante tfin=5 matriz del(101) variable t=0.0 u=paso(t,0.) u11d=12/(tm*tm)*u-12/(tm*tm)*y1 u11=integ(u11d,0.) u21d=u11-u*6/tm-y1*6/tm u21=integ(u21d,0.) y1=u21+u u12d=u*1680/(tm*tm*tm*tm)-y2*1680/(tm*tm*tm*tm) u12=integ(u12d,0.) u22d=u12-u*840/(tm*tm*tm)-y2*840/(tm*tm*tm) u22=integ(u22d,0.) u32d=u22+u*180/(tm*tm)-y2*180/(tm*tm) u32=integ(u32d,0.) u42d=u32-u*20/tm-y2*20*tm u42=integ(u42d,0.) y2=u42+u y3=retraso(u,tm,#del,ci) intervalo de ci=0,01 Aproximación de Padé de tiempo muerto preparar y1,y2,y3 Salida 10,y1,y2,y3 términot(t.ge.tfin) fin 

Una vez finalizada la simulación, los resultados se pueden visualizar en forma de gráficos. Es posible seguir los valores de los gráficos, seleccionar cuáles mostrar, activar una cuadrícula, hacer zoom, etc.

Referencias

En esloveno :

  • Borut Zupančič (con contribuciones de Rihard Karba y Drago Matko ), Simulacija dinamičnih sistemov , Založba FER, Liubliana, 1995, ISBN 86-7739-078-2
  • Borut Zupančič, SIMCOS – jezik za simulacijo zveznih in diskretnih dinamičnih sistemov , Založba FER, Liubliana, 1992, ISBN 86-7739-016-2
  • Página principal de Borut Zupančič
  • Página de descarga de LMSC (el enlace a SIMCOS se encuentra al final).