Documentos de Académico
Documentos de Profesional
Documentos de Cultura
RESUMEN: Una de las herramientas computacionales para la simulación de sistemas dinámicos y el análisis de sistemas
de control es el Xcos, parte de la aplicación Scilab. Muy viable como opción libre, no tan desarrollado como el Simulink de
Matlab, pero muy funcional como para realizar análisis con suficiente exactitud en los sistemas de control actuales. A
continuación se detalla una apreciación superficial de funcionamiento básico para iniciarse en el uso de este sistema.
1. XCOS
Xcos es un programa considerado dentro de la ingeniería asistida por computadora (CAE), que forma parte de Scilab,
cuyo entorno es similar al Simulink de Matlab para la simulación de sistemas dinámicos y la resolución de sistemas de
ecuaciones diferenciales. Es de código abierto, libre, su uso es gratuito, al igual que el Scilab y aunque no este al mismo
nivel de desarrollo del Simulink, es lo suficientemente funcional para el análisis de sistemas de control complejos en áreas
como la industria aeroespacial, la industria automotriz, energía, meteorología, minería, metalurgia, farmacia, medicina, etc;
destacándose en el análisis de datos, sistemas de control, mecánica, procesamiento de señales y de imágenes, dinámica de
fluidos, dinámica térmica. Se ha estado desarrollando continuamente desde 1994 y esta orientado a científicos e ingenieros.
Tiene paquetes de herramientas para la simulación de circuitos eléctricos y termohidráulica que trabaja con el motor
“modelica”. Se necesita para la simulación un compilador en C o Fortran. Si se desea trabajar en estos entornos de
simulación se recomienda utilizar el compilador de C contenido en la suite de Microsoft Visual Studio Express Edition, de la
que solo se necesita la IDE de Visual C++. Aunque hay otras opciones, es la mas cómoda. Dichos paquetes de
herramientas se pueden adquirir de manera gratuita desde la página de Scilab o integrarlas al sistema mediante la
plataforma ATOMS.
1.1. INTERFAZ
Para su ejecución desde Scilab, para este caso la versión 5.5.2, simplemente ir al menú Aplicaciones y seleccionar
Xcos. También puede llamar la aplicación escribiendo xcos desde la ventana de consola.
Xcos abre dos ventanas separadas; un explorador de librerías como el que se muestra en la Fig. 2 y la ventana de
modelos que se puede apreciar en la Fig. 3:
En el explorador de libreirías están contenidos todas las cajas de herramientas donde se organizan los bloques con los
que se construyen los diagramas o modelos a simular para el análisis.
Integrador:
Derivador:
Sumador:
Sumador:
Ganancia:
Exponencial:
Se puede observar algunas diferencias en los nombres en bloques visualmente similares. No existen, en la mayoría de
los casos, diferencias visibles en las características de los bloques cuyos nombres varían dependiendo de su terminación:
por ejemplo CONST, CONST_f y CONST_m. A continuación se explica para este caso cual es su diferencia:
CONST fue el primero que se usaba en Xcos desde el comienzo. Este bloque genera una contante, un valor real
sencillo.
CONST_f fue la primera evolución o mejora realizada al bloque, permite generar variables en formato de vectores.
CONST_m es la última mejora en el avance de Xcos. Permite generar matrices con valores constantes.
Constante:
Escalón:
Reloj de activación:
Se usa para controlar en Xcos los tiempos de adquisición de los datos de simulación.
Depende de la configuración del motor de simulación de Xcos. Indispensable en toda simulación.
Presentación gráfica:
Exportación de valores:
Multiplexor:
Demultiplexor:
El diagrama más pequeño posible debe estar construido, al menos, de una entrada, una salida, y una línea de
conexión.
En Xcos se requiere de relojes de activación y líneas distintas para las señales de estos relojes. Estos relojes, que no
se usan en Matlab, son necesarios en toda simulación de sistemas en Xcos, con esto se controla los tiempos para
adquisición de datos de los elementos de presentación como las presentaciones gráficas de los SCOPEs. En los bloques las
conexiones de estos elementos se diferencian de las otras señales porque las flechas de conexión son por defecto de color
rojo, a diferencia de las conexiones normales por defecto de color azul.
Cada bloque se puede formatear a gusto una vez introducido en el diagrama, se puede configurar o modificar para
cambiar el color, tamaño, sentido de orientación; esto se hace pulsando con el botón derecho del ratón en el bloque y
escogiendo la opción Format, y eligiendo entre opciones como Rotate o Mirror, entre otros. También se puede acceder a
estas opciones a través del menú Format de la ventana de modelos como se puede observar en la Fig. 5.
Cada bloque dispone por lo general de opciones para su ejecución a los cuales se accede con el doble pulsado sobre
el bloque una vez que este se haya ubicado en el diagrama a realizar, o pulsando el botón derecho y escogiendo la opción
Block Parameters. También se puede acceder a su configuración seleccionando el bloque, desplegar el menú Edit y
seleccionar Block Parameters como se puede ver en la Fig. 6, o simplemente las teclas Ctrl+B tras seleccionar el bloque.
La mayoría de los bloques deben ser configurados para la elaboración del diagrama, esto significa que se debe estar
claro acerca de como debe estar constituido el diagrama del sistema a evaluar.
1.5. CONEXIÓN DE ELEMENTOS
La conexión directa de elementos en los diagramas se realiza usando el ratón.
El ratón se coloca sobre un puertos de salida de un bloque que se identifica como flechas de salida.
Se continúa el arrastre hasta el puerto de entrada de otro bloque identificado como un a flecha de entrada.
Si la conexión se ha realizado correctamente quedará una línea continua que los conecta.
Se coloca el ratón sobre el puerto de entrada o de salida y se arrastra. Para hacer un giro en la linea hacia arriba o
abajo, solo basta con pulsar con el botón izquierdo del ratón en el punto donde se quiere hacer el giro y se continúa con el
arrastre de la línea.
El arrastre es hasta la línea en donde se quiere conectar. En el momento en que el cursor se ubica sobre la línea a
conectar, esta se vuelve verde, entonces se pulsa el botón izquierdo del ratón nuevamente para soltar el cursor y así
establecer la conexión y crear el punto de ramificación.
Al soltar el cursor sobre el lugar donde se desea conectar, se genera un punto que indica la conexión de las dos líneas
de color naranja.
Las lineas de conexión son por defecto azules y el punto es por defecto de color naranja, por lo tanto se ha completado
el punto de ramificación.
En cuanto a los parámetros de simulación existen algunos de importancia que conviene tener en cuenta, conocer y
ajustar necesariamente antes de ejecutar una simulación. Para llegar a estos parámetros se usa el menú Simulation y
selecciona Setup, con lo que se abre la ventana Set parameters como se muestra en la Fig. 7:
Tiempo de simulación (Final integration time): define el tiempo que debe durar la simulación. Se establece en 10
(1.0E01) para una prueba de 10 segundos. Hay que tener en cuenta que existen sistemas cuyas pruebas implican mayor
cantidad de tiempo, entonces se aumenta el tiempo si la evaluación del sistema así lo requiere.
Algoritmo de simulación (Solver kind): define el algoritmo de cálculo numérico utilizado para la resolución de las
ecuaciones diferenciales. Se cuenta entre otros a Newton, Adams, Runge-Kutta, Dorman Prince. Dependiendo del tipo de
ecuaciones del sistema existen algoritmos que permiten soluciones mejores que otros. Debe referirse a la teoría de métodos
numéricos para mayor información. Aunque se recomienda para efectos de simulaciones de sistemas lineales simples, dejar
los valores por defecto. Para los siguientes casos y por la semejanza con los algoritmos que usa Matlab, es preferible usar
el DOPRI5 - Dorman Prince 4(5).
Paso de tiempo de simulación (Maximun step size): define el tiempo que considera el programa entre cada paso de
simulación. Por defecto viene configurado como variable, pero se puede ajustar el valor máximo del paso. Según la
simulación a realizar es importante poder ajustar este paso, pues pasos muy pequeños harán muy lenta la simulación por la
gran cantidad de datos a manejar, mientras que pasos muy grandes pueden hacerla imprecisa o incluso que se presenten
fallas de convergencia. Para efecto de simulaciones simples se puede mantener los valores por defecto, en cero (0.0E00).
Para el bloque STEP_FUNCTION, se configura como un escalón unitario como se muestra en la Fig. 8;
Tiempo para el escalón (Step Time): define cuanto tiempo esperar para iniciar la señal de excitación del escalón
unitario: 1, para 1 segundo después de iniciar.
Valor inicial (Initial Value): define el valor inicial del escalón unitario: 0.
Valor final (Final Value): define el valor final del escalón unitario: 1.
Período (Period): define el valor escalar de tiempo que pasa entre dos eventos de salida, es el inverso de la
frecuencia de reloj: 0.01.
Tiempo de inicialización (Initialisation Time): define el tiempo en que comienza a avanzar el reloj: 0.1.
Para el bloque CSCOPE, la configuración viene dada como se muestra en la Fig. 10:
Color: define el color con el que se dibujaran hasta ocho (8) trazos en la gráfica de respuesta del sistema: 10, para un
trazo en azul oscuro, 20 para un trazo rojo oscuro, 0 para los otros seis valores restantes si no se emplearan otros trazos en
el gráfico de salida de la simulación.
Tamaño de la ventana de salida (Output window sizes): define el tamaño de la ventana en píxeles. Muy útil si se
desea exportar la gráfica para ser anexada a un documento publicable: [600;400] para 600px de ancho y 400px de altura.
Y mínima (Ymin): define el mínimo valor del eje Y como valor límite inferior del gráfico a dibujar: -0.2, para no mostrar
mas abajo de -0.2.
Y máxima (Ymax): define el máximo valor del eje Y como valor límite superior del gráfico a dibujar: 1.4, para no
mostrar mas arriba de 1.4.
Período de actualización (Refresh period): define el máximo valor para el eje X (tiempo) en el que la gráfica sera
dibujada: 10, para 10 segundos que debe coincidir con el valor del tiempo de simulación (Final integration time) en la
ventana de parámetros de la simulación visto anteriormente en la Fig. 7.
Para el bloque GAIN_f colocado en la realimentación, se debe a que el sumador no es configurable. Se agrega
entonces un bloque de ganancia con un valor unitario negativo de manera que la entrada al sumador sea negativo y el
sumador asuma una característica diferencial. Se configura como se puede apreciar en la Fig. 11:
Ganancia (Gain): define el valor escalar de ganancia proporcional. Para este caso en particular se usa para resolver la
falta de configuración del sumador utilizado en este diagrama: -1, como ganancia unitaria negativa.
Una vez comprendido la importancia de tener en cuenta todos estos parámetros básicos para el análisis de sistemas,
la elaboración de los diagramas de bloques de sistemas será mas sencillo y más efectiva su evaluación.
2. APLICACIÓN PRÁCTICA
El análisis de sistemas dinámicos comienza con la elaboración del modelo matemático del sistema, una vez obtenido,
se puede evaluar a través de código como ya se ha visto por medio de la consola o con la escritura de guiones de
programación en Scinotes. Como opción adicional el uso de Xcos, un editor gráfico para el diseño de modelos y simulación
de sistemas dinámicos híbridos para el dominio del tiempo continuo y discreto con el que se demostrará su funcionamiento a
continuación.
2.1. EJEMPLO 1
Al tener todos los parámetros establecidos, para un sistema dinámico con una función de transferencia como la que se
indica en la Ec. (1) y una ganancia proporcional como la indicada en la Ec. (2), lo siguiente:
1
G (s )= (1)
2
s +2 s
K p = 12 (2)
Se elabora un sistema en lazo cerrado con una realimentación unitaria para analizar su comportamiento con una señal
función escalón unitario:
Una ventana se abre bajo las características establecidas en la configuración del bloque CSCOPE. Teniendo claro
estas configuraciones, se hace fácil realizar modificaciones para mejorar la visibilidad de la respuesta del sistema en ayuda
a mejorar su análisis o para resolver fallas en la inclusión de datos en la configuración de los bloques del diagrama.
2.2. EJEMPLO 2
Con el sistema del ejemplo 1 cuya función de transferencia es la indicada en la Ec. (1), se requiere elaborar un
diagrama de bloques del sistema en lazo cerrado con realimentación unitaria.
Se requiere adicionalmente agregar un compensador PID con valores iniciales nulos, para ser evaluado con una
entrada escalón unitario y una señal de disturbio a la entrada del bloque de la función de transferencia de 0.4 a 6s.
Como se puede apreciar en la Fig. 14, los valores iniciales del PID tienen la carga inexistente del compensador para
poder comparar la respuesta temporal del sistema sin necesidad de hacer otro modelo a parte; es decir, con los siguientes
valores se puede obtener la respuesta temporal del sistema sin compensador:
Kp = 1
1
=0
Ti
Td= 0
Figura 15. Ventana de la respuesta temporal con PID nulo del modelo del ejemplo 2.
La respuesta obtenida en la Fig. 15 demuestra el comportamiento del sistema sin compensador y una señal adicional
de disturbio de 0.4 que deforma la respuesta del sistema después de 6s.
Para ver la respuesta del sistema como ensayo del PID, teniendo en cuenta la mejora en la respuesta temporal para
obtener mayor estabilidad para el sistema y la mejora en la corrección de la interferencia al disturbio, están dados los
siguientes valores:
K p = 24
1
= 0,12
Ti
T d = 0,1
Quedan configurados los bloques del sistema tal como se puede apreciar en el diagrama de la Fig. 16, bajo la forma de
la ecuación de PID como se puede apreciar en la Ec. (3) a continuación:
( )
1
G c (s) = K p 1 + + Td s (3)
Ti s
(
G c (s) = 24 1 + 0,12
1
s
+ 0,1 s )
Figura 16. Diagrama de modelo con valores PID de ensayo para el ejemplo 2.
Figura 17. Ventana de la respuesta temporal con valores PID de ensayo del modelo del ejemplo 2.
La respuesta obtenida en la Fig. 17 con un PID activo, comparada con la respuesta obtenida en la Fig. 15 del sistema
sin compensación deja claro la intervención del compensador en el aumento de la estabilidad del sistema. El PID que ha
sido configurado por ensayo y error es lo suficientemente efectivo para que la señal de disturbio sea atenuada en favor del
sistema.
3. REFERENCIAS
[1] Dulhoste, Jean F. Introducción al Control de Procesos para Ingenieros, Guía de Prácticas con Matlab y Scilab, [en linea]. Mérida:
Universidad de Los Andes (ULA), Facultad de Ingeniería, Departamento de Ingeniería Eléctrica. Disponible en:
http://webdelprofesor.ula.ve/ingenieria/djean/index_archivos/Documentos/TC_Guia_Matlab_Scilab.pdf [2018, marzo 20].