Está en la página 1de 14

INTRODUCCIÓN A XCOS

Ing. Luis Molina


lmolinuz@gmail.com

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.

Figura 1. Menú Aplicaciones desde la aplicación Scilab.


Debe tener presente que el marco de la consola de Scilab debe estar activo para poder usar el menú Aplicaciones y
que los menús son diferentes cuando los marcos explorador de archivos, explorador de variables e historial de comandos se
encuentran activos.

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:

Figura 2. Ventana Explorador de librerías de Xcos.

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.

Figura 3. Ventana de modelos de Xcos.


En la ventana de modelos, se construyen con diagramas de bloques los modelos de sistemas de control para simular.
Desde aquí se realiza el análisis de los sistemas de control. Hay que tener en cuenta que para ello se deben conocer la
configuración básica para la ejecución de una simulación.

1.2. BLOQUES BÁSICOS


Xcos tiene librerías de bloques organizadas en cajas de herramientas. Cada caja de herramientas se dedica a
diferentes tipos de sistemas o acciones. Los mas comunes para el análisis de los sistemas de control son los que se
mencionan a continuación:

Integrador:

Caja de herramientas: Sistemas de tiempo continuo (Continuous time systems).

Se usa como parte integradora de un PID.

Derivador:

Caja de herramientas: Sistemas de tiempo continuo (Continuous time systems).

Se usa como parte derivadora del PID.

Sistema como función de transferencia:

Caja de herramientas: Sistemas de tiempo continuo (Continuous time systems).

Se usa como bloque contenedor de la función de transferencia de un sistema.

Sumador:

Caja de herramientas: Operaciones matemáticas (Mathematical Operations).

Se usa como punto suma o diferencial.

Sumador:

Caja de herramientas: Operaciones matemáticas (Mathematical Operations).

Se usa como punta suma o diferencial con entradas configurables.

Ganancia:

Caja de herramientas: Operaciones matemáticas (Mathematical Operations).

Se usa como ganancia proporcional.

Exponencial:

Caja de herramientas: Operaciones matemáticas (Mathematical Operations).

Se usa como representación del retardo de señal.

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:

Caja de herramientas: Fuentes (Sources).

Se usa para generar como entrada una señal constante.

Escalón:

Caja de herramientas: Fuentes (Sources).

Se usa para generar como entrada una función escalón.

Reloj de activación:

Caja de herramientas: Fuentes (Sources).

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 numérica de valor:

Caja de herramientas: Salidas (Sinks).

Se usa para presentar la salida de un valor numérico real.

Presentación gráfica:

Caja de herramientas: Salidas (Sinks).

Se usa para presentar la respuesta gráfica de la simulación.

Exportación de valores:

Caja de herramientas: Salidas (Sinks).

Se usa para enviar valores al espacio de trabajo.

Multiplexor:

Caja de herramientas: Enrutado de señales (Signal Routing).

Usado para unir señales.

Demultiplexor:

Caja de herramientas: Enrutado de señales (Signal Routing).

Usado para separar señales.


1.3. ELEMENTOS PRINCIPALES
Los diagramas de bloques para la simulación de sistemas comprenden seis elementos principales:

1. Los bloques que indican las operaciones a realizar.


2. Las líneas que representan el flujo de las señales. Por ellas puede ir una sola señal, cuando se trata de variables
escalares, o varias señales cuando se trata de señales vectoriales. Las escalares se pueden agrupar en un vector
con los multiplexores MUX, los vectoriales se pueden desagrupar con los demultiplexores DEMUX.
3. Los puntos de suma donde se suman o restan señales.
4. Los puntos de ramificación donde una señal toma varios rumbos.
5. Los bloques de entrada en donde se define las señales de entrada a utilizar en la simulación.
6. Los bloques de salida o presentación de resultados que mostraran los resultados de la simulación.

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.

1.4. ELABORACIÓN DE UN DIAGRAMA


Para elaborar un diagrama la primera operación a realizar es copiar los bloques en el diagrama, esto se hace
seleccionando el bloque con el botón izquierdo del ratón, arrastrándolo desde el explorador y soltándolos en la ventana del
diagrama como se muestra en la Fig. 4. También se puede copiara el bloque al diagrama seleccionando el bloque con el
botón derecho del ratón y seleccionar la opción add to del menú emergente.

Figura 4. Copiado de bloques para la elaboración de diagramas.

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.

Figura 5. Aplicación de formatos a un bloque.

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.

Figura 6. Edición de parámetros o configuración de un 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 selecciona el puerto con el botón izquierdo del ratón y se arrastra.

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.

La línea que conecta dos bloques es por defecto de color azul.

Para generar un punto de ramificación también se utiliza el ratón.

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.

1.6. PARÁMETROS DE LA SIMULACIÓN


Una vez terminado de armar el diagrama solo basta con pulsar el botón start para se realice la simulación. La
simulación es la resolución de las ecuaciones diferenciales representadas en el diagrama de bloques realizado, utilizando
métodos numéricos, tiempo límite, condiciones iniciales y entradas especificas. Todos estos valores deben ajustarse ya sea
en el diagrama, en los bloques o en los parámetros de simulació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:

Figura 7. Edición de parámetros para la simulación.

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

1.7. PARÁMETROS DE BLOQUES


Los parámetros de bloques principales se refiere a los bloques de entrada, en cuanto a la forma y amplitud de la señal,
y a los bloque de salida en cuanto a la forma en que se mostrara la información de la respuesta.

Para el bloque STEP_FUNCTION, se configura como un escalón unitario como se muestra en la Fig. 8;

Figura 8. Parámetros del escalón unitario.

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.

Para el bloque CLOCK_c, se configura como se puede apreciar en la Fig. 9:

Figura 9. Parámetros del reloj de activación.

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:

Figura 10. Parámetros de la salida gráfica.

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:

Figura 11. Configuración de la realimentación con un bloque de ganancia unitaria negativa.

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:

Figura 12. Diagrama de modelo para el ejemplo 1.

Los parámetros de simulación a utilizar en la configuración del diagrama son:

• Tiempo de simulación: 10s.


• Algoritmo de simulación: Dormand-Prince (resultados idénticos a Matlab).

Los parámetros de bloques a utilizar en el diagrama del sistema son:

• Escalón unitario (STEP_FUNCTION): valor inicial 0 y valor final 1.


• Reloj (CLOCK_c): período 0.01s
• Monitor gráfico (CSCOPE): colores: 10 (azul oscuro) para la entrada y 20 (rojo oscuro) para la salida del sistema.
Refresh period: 10s, Ymin: -0.2 y Ymax: 1.4.
Configurado y guardado el modelo, se procede a correr la simulación del sistema propuesto pulsando el botón Start o a
través del menú Simulation y seleccionando la opción Start:

Figura 13. Ventana de la respuesta temporal del modelo del ejemplo 1.

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.

Figura 14. Diagrama de modelo para el ejemplo 2.


Basado en las especificaciones dadas se elabora el diagrama de la Fig. 14. Un modelo práctico para que por ensayo y
error se pueda descubrir los valores del PID, la ganancia proporcional, el tiempo integrador y el tiempo derivador, incluyendo
además un disturbio de magnitud 0.4 que inicia a 6 segundos de iniciada la simulación.

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

Configurado y guardado el modelo, se procede a correr la simulación del sistema:

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.

Configurado y guardado el modelo, se procede a correr la simulación del sistema:

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].

También podría gustarte