• No se han encontrado resultados

Interfaz gráfica para el análisis, diseño, simulación y control de sistemas lineales continuos y discretos utilizando Scilab.

N/A
N/A
Protected

Academic year: 2020

Share "Interfaz gráfica para el análisis, diseño, simulación y control de sistemas lineales continuos y discretos utilizando Scilab."

Copied!
169
0
0

Texto completo

(1)

[Escribir texto]

SUBSECRETARÍA DE EDUCACIÓN SUPERIOR DIRECCIÓN GENERAL DE EDUCACIÓN SUPERIOR TECNOLÓGICA

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ

TRABAJO PROFESIONAL

COMO REQUISITO PARA OBTENER EL TITULO DE

:

INGENIERO ELECTRÓNICO

QUE PRESENTA:

JESÚS ERNESTO VELÁZQUEZ LÓPEZ

CON EL TEMA:

INTERFAZ GRÁFICA PARA EL ANÁLISIS, DISEÑO, SIMULACIÓN Y CONTROL DE SISTEMAS LINEALES CONTINUOS Y DISCRETOS UTILIZANDO SCILAB

MEDIANTE :

OPCION I

(TESIS PROFESIONAL)

(2)
(3)
(4)

Agradecimientos

Mami[Flora], Papá[Omar], Hermanas[Ale, Ana], Tíos [Lupita, Benjamín], Amigos [Castro, Manolo, Olga], Profesores[MC Ronay]... a los que están y a los que me faltaron... hasta a los que dijeron que no lo lograría... a todos ustedes y especialmente a Dios...

Gracias

,

(5)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ

Ingeniería Electrónica

Interfaz Gráfica Para El Análisis, Diseño, Simulación y Control De Sistemas Lineales Continuos Y Discretos Utilizando Scilab

T E S I S

para obtener el título en Ingeniería Electrónica

Autor:

Jesús Ernesto Velázquez López

05270323

Asesor:

M. C. Francisco Ronay López Estrada

(6)
(7)

Índice general

1. Introducción 1

1.1. Antecedentes . . . 2

1.2. Planteamiento del problema . . . 4

1.3. Objetivos . . . 5

1.3.1. General . . . 5

1.3.2. Específicos . . . 5

1.4. Justificaciones del proyecto . . . 5

1.5. Alcances y limitaciones del proyecto . . . 6

1.6. Organización del documento . . . 7

2. Marco Teórico 8 2.1. Scilab . . . 8

2.1.1. Iniciando Scilab . . . 9

2.1.2. Documentación . . . 10

2.2. Interfaz Gráfica de Usuario . . . 11

2.2.1. Definición . . . 11

2.2.2. Crear una Interfaz Gráfica de Usuario mediante Scilab . . . 12

2.3. Otros conceptos importantes de Scilab . . . 21

3. Desarrollo 23 3.1. Interfaz ADS_CoLiSyS . . . 23

3.1.1. Construcción de la ventana Principal . . . 24

(8)

3.1.3. Usando objetos uicontrol . . . 26

3.1.3.1. Creación del diagrama a bloques de la planta del sistema . . . . 27

4. Aplicaciones en Control Clásico 33 4.1. Conceptos Básicos de Control . . . 33

4.1.1. Definiciones . . . 33

4.1.2. Diagrama de Bloques . . . 40

4.1.3. Flujo de Señal . . . 41

4.2. Modelado Matemático de Sistemas Físicos . . . 41

4.2.1. Sistemas Eléctricos y Electrónicos . . . 42

4.2.2. Sistemas Mecánicos de Traslación y Rotación . . . 44

4.2.3. Sistemas Hidráulicos . . . 47

4.2.4. Función de Transferencia y Analogías . . . 47

4.3. Análisis de la Respuesta en el Tiempo y del Error . . . 48

4.3.1. Definiciones . . . 48

4.3.2. Sistema de Primer Orden . . . 54

4.3.3. Sistemas de Segundo Orden . . . 63

4.3.4. Sistemas de Orden Superior . . . 80

4.3.5. Errores Estáticos y Dinámicos . . . 84

4.3.6. Sensibilidad . . . 86

4.4. Estabilidad y Lugar Geométrico de las Raíces . . . 90

4.4.1. Concepto de Estabilidad . . . 91

4.4.2. Criterio Routh-Hurwitz . . . 93

4.4.3. Estabilidad Relativa y Estabilidad Absoluta . . . 99

4.4.4. Concepto de Lugar Geométrico de las Raíces (LGR) . . . 99

4.4.5. Método del Lugar Geométrico de las Raíces . . . 100

4.4.5.1. Pasos del Método del Lugar Geométrico de las Raíces . . . 102

5. Aplicaciones de Control II 107 5.1. Repuesta en Frecuencia . . . 107

(9)

5.1.2. Estabilidad Relativa . . . 113

5.1.3. Criterio de Nyquist . . . 114

5.1.4. Compensador de Adelanto . . . 116

Conclusiones 125 Bibligrafía 127 A. Ponencias 129 A.1. CONAGOLFO 2009 . . . 129

A.2. Academia Journals 2010 . . . 130

A.3. Experiencias en Investigación 2010 . . . 131

A.4. Expociencias Chiapas 2011 . . . 132

B. ADS_CoLiSyS 134 B.1. Ventana principal . . . 134

B.2. Área de Gráficos “g” . . . 141

C. Módulo en Scilab (ToolBox) 145 C.1. Cómo crear un Módulo . . . 145

C.2. Definiciones . . . 145

C.3. Estructura del Módulo . . . 146

C.4. Sub-Builder’s y Sub-Loader’s . . . 147

C.4.1. Directorio de Macros . . . 147

C.4.2. Directorios src y sci_gateway . . . 148

C.4.3. El directorio de la ayuda . . . 155

C.5. Builder principal . . . 156

(10)

Resumen

En este trabajo de tesis, se presenta el desarrollo de una Interfaz Gráfica de Usuario (GUI, por sus siglas en inglés), la cual está destinada al Análisis, Diseño, Simulación y Control de Sistemas Lineales en Tiempo Continuo y Discreto. Está GUI (ADS_CoLiSyS, como ha sido bautizada) con un diseño sumamente amigable, proporciona al usuario un conjunto de recursos con los cuales realizará aplicaciones de control. Sus principales características son:

Manejo de sistemas en forma de:

• Funciones de transferencia • Espacio de estados

Manejo de sistemas en tiempo:

• Continuo • Discreto

Simulación de la respuesta del sistema a diversas entradas:

• Escalón • Rampa • Impulso • Y otras

Simulación de respuesta en frecuencia (diagramas de Bode, etc.)

Análisis de controlabilidad para espacio de estados

Diseño automático de controladores de atraso y adelanto de fase

Sintonización de controladores P, PI, PID

Construcción de funciones de transferencia para sistemas típicos como filtros y controladores

(11)

Esta GUI está desarrollada cubriendo los principales temas de Teoría de Control, por lo cual, es una excelente herramienta para la enseñanza de esta rama de la Ingeniería; la principal contribución en la educación, es la realización de los complejos cálculos matemáticos y la programación de éstos de forma automática, de tal manera que el usuario solo se concentra en el diseño de los sistemas de control y en los resultados obtenidos.

(12)

Capítulo 1

Introducción

Teoría de Control es una de las disciplinas con mayor número de aplicaciones en nuestro entorno. La Ingeniería de Control se enfoca al control de sistemas dinámicos, ya sean sistemas mecánicos, eléctricos, térmicos, de fluidos o una combinación de dos o más tipos de sistemas.

En el desarrollo de temas de Teoría de Control se realizan una serie de cálculos matemáticos, en algunas ocasiones tediosos o complejos, en los cuales el mínimo error afectará los resultados, que según sea la aplicación que se esté desarrollando, pueden ser muy graves. Es muy conveniente con-tar con software que pueda apoyar en el desarrollo de dichos cálculos, ya que con ello obtendremos resultados más exactos y con mayor rapidez.

En la variedad de software existente, están los destinados a cálculos matemáticos y científicos, de los cuales destacan Matlab (de MathWorks) y Scilab (de INRIA), el primero quizás el más popular, tiene una muy variada gama de herramientas para aplicaciones de control, sin embargo sus altos costos evitan que muchos usuarios, sean estudiantes, maestros, instituciones etc., puedan adquirirlo y en muchos casos caigan en la piratería.

Scilab también provee gran variedad de herramientas para el desarrollo de control, y tiene una gran ventaja, es software librey de código abierto, con ello los usuarios tienen una poderosa her-ramienta para el diseño y análisis de sistemas de control gratuita. Scilab cuenta con herher-ramientas que permiten realizar cálculos numéricos, simbólicos, manejo de álgebra lineal, polinomios, gráfi-cos en 2-D y 3-D, animación, etc.; permite también integrar códigos de lenguajes de programación como C, C++, Fortran y Java; y la creación de Interfaces Gráficas de Usuario (GUI, del inglés Graphical User Interface).[13]

Haciendo uso de la capacidad de Scilab para crear GUI’s y su amplia variedad de herramientas para el análisis de control, en este trabajo se desarrolla una interfaz gráfica de usuario especializada en Teoría de Control. Dicha GUI brinda al usuario los recursos necesarios para analizar, simular y controlar sistemas en tiempo continuo y discreto. Es por ello que la principal contribución es que el sistema realiza de forma automática los complejos cálculos matemáticos que en Teoría de Control se requieren, con lo cual el usuario se concentrará únicamente en los resultados obtenidos.

(13)

una entrada escalón, impulso, rampa, entre otras), análisis en el dominio de la frecuencia (diagramas de Bode, Nyquist y Black), diseño de sistemas de control mediante compensadores de atraso y de adelanto de fase, diseño de sistemas de control mediante control P, PI, PID en tiempo continuo y discreto, simulación de sistemas en espacio de estados, análisis de estabilidad mediante gráficas de polos y lugar de las raíces, entre otras.

1.1.

Antecedentes

En el ambiente académico no se ha popularizado el uso de herramientas de software libre como apoyo a la docencia. Un ejemplo se puede ver en la materias de control lineal, electrónica analógica y similares, en donde se manejan gran cantidad de simuladores con costos muy elevados. En par-ticular en análisis de sistemas lineales el mercado está dominado por Matlab, y el cual se vende de forma modular. Sin embargo existen herramientas de software libre similares a Matlab como lo son Octave, Scilab y SageMath, los cuales manejan métodos numéricos para la solución de problemas derivados de ecuaciones diferenciales lineales y no lineales. Pero tal es el desconocimiento de estos software que su uso ha sido muy pobre en las universidades, y los trabajos que se han desarrollado en sus plataformas son pocos. En el caso particular de SCILAB, los trabajos más importantes se describen a continuación.

RLTOOL

Figura 1.1:RLTOOL

(14)

la combinación de elementos de programación con Tcl (en inglés "Tool Command Language"), lo cual es un lenguaje de programación de script’s; y elementos Tk (del inglés Tool Kit), que en con-junto son utilizados para el desarrollo de interfaces gráficas. RLTOOL fue creado y desarrollado en Julio de 2007, en India, por Ishan Pendharkar. Como lo marca su autor, el objetivo de este proyecto es proveer una herramienta fácil y gratuita como apoyo para estudiantes y profesores de Ingeniería y Control. Comprende uno de los primeros trabajos desarrollados en su tipo, y lamentablemente ya no se ha actualizado.

La Interfaz [Fig. 1.1] está compuesta por tres ventanas donde podemos manipular el sistema, en una de ellas se encuentra el diagrama a bloques de la función de transferencia en análisis, mientras que en las ventanas restantes se muestran diversas gráficas que representan la salida del sistema a una determinada entrada. Nos permite obtener gráficas de Polos y Ceros, Bode, Lugar de las Raíces y Respuesta a una entrada Escalón.

Control Design Tool (RLDesign)

Figura 1.2:RLDesign

(15)

dada (Sistema SISO), dichos sistemas se encuentran en lazo cerrado con una ganancia variable, ajustable mediante una barra de desplazamiento (Slider). Además el usuario puede aplicarle un controlador en la parte inicial del sistema para manipular así la función de transferencia en análisis. Esta interfaz fue creada en Marzo de 2010 por Tan Chin Luh.

Otros aportes

El libro “Modeling and Simulación in Scilab/Scicos”[10][5] provee una amplia documentación acerca del contenido de los toolboxes de SciLab, así como un resumen completo de cada uno de los comandos del software y posibles aplicaciones.

Otros trabajos importantes son el desarrollo de herramientas (no gráficas) especializadas tales como toolbox de lógica difusa, toolbox para la adquisición de datos, toolbox para el manejo de sistemas numéricos, entre otros.

1.2.

Planteamiento del problema

La Teoría de Control es un campo de estudio muy extenso, que hoy en día tiene aplicaciones en prácticamente todos los procesos. Para un estudiante es necesario comprender totalmente los conceptos, términos, expresiones, formas de modelado y aplicaciones de Control. Por lo cual, se debe hacer uso de herramientas computacionales que mediante la utilización de métodos numéricos resuelvan problemas matemáticos complejos.

Actualmente se han adoptado, diversos programas matemáticos para el apoyo y comprobación de resultados, en el aspecto académico, y como herramientas esenciales en el área de trabajo. Ya que, gracias a los avances en software, podemos obtener las soluciones de complejas operaciones matemáticas en un mínimo de tiempo, lo cual optimiza y facilita el estudio de los sistemas dinámi-cos.

Como ya se mencionó, el diseño de sistemas de control mediante software ha adquirido rel-evancia en los últimos años, esto debido a que los métodos empleados en Teoría de Control han evolucionado de forma tal que han demostrado que su uso tiene múltiples aplicaciones. Las aplica-ciones abarcan prácticamente todas las disciplinas tales como, sistemas de control de temperatura, PH, O2 en la ingeniería bioquímica; sistemas de control de posición, velocidad, giro, señales, en

automóviles, aviones, entre muchos otros.

Derivado de lo anterior, surgen los siguientes problemas:

El alumno de Teoría de Control debe aprender términos de Control y el uso del software y necesariamente las líneas de código para la programación de los modelos matemáticos que este requiera analizar; esta doble tarea puede resultar frustrante y ardua.

(16)

estudiados, en dicho software. Lo que conlleva a la pérdida de tiempo, que podría ser utilizado en abordar de mejor manera, los conceptos correspondientes a los temas del curso.

El dominio del Software de paga, sobre el mercado académico y científico, el cual tiene grandes costos, los cuales en un sin número de ocasiones, los usuarios no pueden cubrir. Derivándose de esto, dos problemas más:

• La piratería, que es un delito, el cual debemos erradicar de nuestra sociedad.

• La abstención al uso de este tipo de herramientas (software), que representa un enorme retraso en el nivel de desarrollo escolar, así como la limitación de las posibilidades de crecimiento académico y profesional.

1.3.

Objetivos

1.3.1.

General

Desarrollar una interfaz gráfica que permita analizar, diseñar, simular y controlar sistemas lin-eales en tiempo continuo y en tiempo discreto.

1.3.2.

Específicos

Desarrollar la interfaz usando la herramienta de software libre Scilab

Analizar y controlar sistemas continuos

Analizar y controlar sistemas discretos

Analizar y controlar sistemas en espacio de estados

Generar una herramienta de apoyo para las materias de Control I, II, III

1.4.

Justificaciones del proyecto

De acuerdo con la problemática planteada con anterioridad es muy conveniente crear una In-terfaz Gráfica, con la que se puedan analizar, diseñar, simular y controlar sistemas lineales, ya sea en tiempo continuo o en tiempo discreto; pues con ella, tanto el alumno como el catedrático no necesitarán programar las ecuaciones desde líneas de código del software, sino que en un ambiente gráfico, intuitivo de fácil uso, trayendo consigo una mejor comprensión de las técnicas de Control.

(17)

el cual, no es muy popular entre las personas, pues tienen el erróneo estereotipo de que lo que es gratis no es bueno o no funciona correctamente; eso es totalmente falso, pues actualmente se puede encontrar software libre multiplataforma capaz de sustituir en un cien por ciento al software licenciado. Abocándonos a software libre matemático, más específicos para Teoría de Control, uno de los más populares es SciLab. SciLab es una herramienta libre, al igual que MatLab está basado en el manejo de métodos numéricos y matrices para la solución de problemas matemáticos.

Con lo anterior para este proyecto pueden enlistarse como principales ventajas:

Estar bajo la filosofía de software libre. Lo que significa que será gratuito para todo el que lo necesite.

Tener licencia de código libre. La distribución de la interfaz será mediante su código fuente, lo que permitirá al usuario tener la posibilidad de modificarlo, actualizarlo y de agregarle más recursos, todo de acuerdo a sus necesidades y sin problemas de licencias.

Tener un diseño nada complejo. Necesitamos que se mejoren los procesos de enseñanza-aprendizaje, para lo cual necesitamos una interfaz de diseño amigable, sencilla e intuitiva.

Ser multiplataforma y sin requerir demasiados recursos de hardware. Para no tener restric-ciones en cuanto a software o hardware y así ampliar las posibilidades de uso de la interfaz, no se limita a ningún tipo de usuarios, ya sea en cuanto a Sistemas Operativos (Linux, Win-dows, Mac), como en recursos como procesador, memoria RAM, etc.

1.5.

Alcances y limitaciones del proyecto

Esta Interfaz Gráfica de Usuario es capaz de manejar funciones de transferencia como sistemas de tiempo continuo y discreto. También podemos analizar sistemas en espacio de estados, de igual manera en tiempo continuo y discreto.

A la vez podrá ser distribuida mediante una página web, lo que no limitará su distribución. Su uso no tiene exclusividad para Teoría de Control, pues también puede utilizarse en otras disciplinas como Señales y Sistemas, Electrónica Analógica I, II y III.

En cuanto a limitaciones se trata, podemos asegurar que no las tiene, pues siempre que se necesiten módulos nuevos para la interfaz, éstos podrán ser agregados por el usuario sin ningún problema, pues la organización de las funciones y archivos que componen la GUI está hecho en tal forma que pueda ser interpretado y modificado por alguien con simples conocimientos en el tema. Además por ser código abierto no hay ningún problema en cuanto derechos de autor se refiera.

(18)

1.6.

Organización del documento

Como podemos dar cuenta, el Capítulo 1 está destinado a la Introducción al tema de Tesis, con-tiene Antecedentes, Planteamiento del Problema, Objetivos, Justificación y Alcances y limitaciones del proyecto.

El Capítulo 2 contiene el Marco Teórico con una breve descripción del Software Científico, después aborda el tema Scilab, su descripción como software científico y lenguaje matemático de alto nivel, sus principales características, como iniciarse en él (descarga, instalación y descripción), y la documentación de ayuda con la que cuenta. También se encuentra la descripción y forma de crear Interfaces Gráficas de Usuario (GUI) en Scilab, los recursos que este software nos brinda y la manera de emplearlos al crear GUI’s.

El Capítulo 3 aborda el desarrollo del proyecto, con descripciones de las principales funciones y códigos para la creación de GUI’s, diagramas de flujo y ejemplos del código utilizado.

El propósito del Capítulo 4 es el de presentar temas de la asignatura de Control I, comenzando desde la introducción al lector de los conceptos básicos de Control, como la descripción de un sis-tema (Planta, Entrada, Salida, etc), pasando después al estudio de sissis-temas de control, el modelado matemático de estos, el análisis de la respuesta en el tiempo, el análisis de la estabilidad del sistema y el Método del Lugar de las Raíces (LGR).

Durante todo el desarrollo del capítulo se hará irán relacionando los conceptos de Control con las aplicaciones y herramientas que en ADS_CoLiSyS están presentes.

Capítulo 5 uso de ADS_CoLiSyS en análisis de la respuesta en frecuencia y diseño de contro-ladores, para sistemas en tiempo continuo.

Apéndice A, este trabajo se ha presentado en eventos como congresos y exposiciones, ahí las constancias o reconocimientos, como resultado de tales ponencias.

Apéndice B, es la presentación y descripción de la interfaz gráfica ADS_CoLiSyS en el sistema operativo Linux.

(19)

Capítulo 2

Marco Teórico

Existen dos categorías generales de software científico:

1. Los sistemas de cálculo de álgebra, que realizan cálculos simbólicos y cálculos numéricos

2. Diseñados específicamente para aplicaciones científicas

Los ejemplos más conocidos en la primer categoría son Maple, Mathematica, Maxima, Axiom y MuPAd. La segunda categoría representa un enorme mercado dominado por MATLAB, SCILABy Octave, cabe destacar que los dos últimos, son programas de distribución libre, de los cuales Scilab se encuentra dentro de los más populares.[5]

2.1.

Scilab

Scilab es un lenguaje interpretado con objetos dinámicos. Scilab se encuentra disponible en un formato binario para las principales plataformas (sistemas operativos): Unix/Linux (los principales desarrollos del software se encuentran presentados en Linux), Windows y MacOSX.

Scilab fue originalmente llamada Basile y fue diseñado por INRIA como parte del proyecto Meta2. Continuando su diseño bajo el nombre de SciLab por el grupo Scilab, un equipo de inves-tigadores de INRIA Metalau y ENPC. Desde 2004, el diseño de Scilab ha sido coordinado por un consorcio.

Scilab puede ser usado como un lenguaje para prueba o ejecución de algoritmos o para realizar cálculos numéricos. Pero también es un lenguaje de programación, y la librería estándar de Scilab contiene cerca de 2000 funciones. La sintaxis de Scilab es muy simple, y el uso de matrices, que son el objeto fundamental de cálculos científicos, es facilitado con específicas funciones y operadores. Éstas matrices pueden ser de diferentes tipos real, compleja, polinomial y racional.

(20)

simple de extender el entorno de Scilab. Cualquiera puede importar fácilmente nuevas funciones de librerías externas hacia Scilab usando enlaces estáticos o dinámicos. También es posible definir nuevos tipos de datos y nuevas funciones usando estructuras de Scilab. Numerosos toolboxes que agregan especiales funciones a Scilab, se encuentran disponibles en su página oficial.

Scilab también incluye muchas funciones de visualización incluyendo 2D, 3D, gráficas de con-torno y paramétricas, y animación. Las gráficas pueden ser exportadas en varios formatos como Gif, Postscript, Postscript-Latex, y Xfig. Agregado a las funciones para interfaces de usuario, se encuen-tran disponibles funciones de Tcl/Tk que pueden ser utilizados para el diseño de sofisticadas GUI’s (Interfaces Gráficas de Usuario).

Scilab es un enorme paquete de software que contiene aproximadamente 13,000 archivos, mas de 400,000 lineas de código fuente (en C y Fortran), 70,000 lineas de código Scilab (librerías especializadas), 80,000 líneas de ayuda en línea, y 18,000 líneas de archivos de configuración.[13] Dichos archivos incluyen:

Funciones elementales de cálculo científico

Álgebra lineal, matrices dispersas

Funciones polinomiales y racionales

Control clásico y robusto, optimización por LMI

Métodos no lineales (Optimización, solución de ODE y DAE, Scicos, ahora Xcos, como un híbrido modelador de sistemas dinámicos y simulador )

Procesamiento de señales

Muestreo aleatorio y estadístico

Gráficas (algoritmos, visualización)

Gráficos, animación

Paralelismo usando PVM

Traductor MATLAB-to-Scilab

Un extenso número de contribuciones para varias áreas

2.1.1.

Iniciando Scilab

(21)

Ejecutando Scilab se abre una ventana de comando (Figura 2.1). Ésta es una ventana interactiva donde el usuario está invitado a ingresar comandos delante al símbolo de sistema de Scilab (–>). El comando se ejecuta al presionar la tecla “enter” (retorno de carro), después Scilab ejecuta el comando y regresa el control al usuario mediante un nuevo símbolo (–>).[5]

Figura 2.1:Ventana de Comandos de Scilab

La edición de funciones en la ventana de comando es muy limitada, por lo cual Scilab incluye su propio editor. Llamado desde la ventana principal mediante el comando “editor” (“edit” en inglés) o desde la barra de menú. Abriéndose el siguiente editor de texto (Figura2.2).[5]

Figura 2.2:Editor de funciones

2.1.2.

Documentación

(22)

correspon-diente a una función de Scilab, el comando “help” debe estar seguido por el nombre de la función a usar. Lo anterior abre el buscador de ayuda en la correspondiente página a la función consultada. La página del manual contiene una detallada descripción de la función y algunos ejemplos en los que ésta puede ser utilizada. Los ejemplos pueden ser copiados y ejecutados en la ventada de comandos de Scilab, en versiones recientes podemos seleccionar el ejemplo y con -click derecho- nos dará la opción de “Ejecutar la selección en Scilab”.[5]

El buscador también puede ser llamado desde el menú en la barra de herramientas superior de la ventada principal, y contiene una lista de todas las funciones clasificadas en diferentes capítulos (Figura2.3). La página del manual de una función puede ser obtenida clickeando en su nombre.[5]

Figura 2.3:Manual de Ayuda

Los demos incluidos también son una fuente de inspiración. Éstos presentan simples ejemplos de programación de Scilab de situaciones cotidianas para los usuarios. Los demos de gráficos, por ejemplo, proporcionan una visión de lo que Scilab puede hacer en cuestiones de visualización. Los códigos fuentes de demos dan un buen punto de partida para el diseño de complejas aplicaciones.

2.2.

Interfaz Gráfica de Usuario

2.2.1.

Definición

La interfaz gráfica de usuario, conocida también como GUI (del inglés graphical user interface) es un programa informático que actúa de interfaz de usuario, utilizando un conjunto de imágenes y objetos gráficos para representar la información y acciones disponibles en la interfaz. Su princi-pal uso, consiste en proporcionar un entorno visual sencillo para permitir la comunicación con el sistema operativo de una máquina o computador.

(23)

interac-ción del usuario con la computadora. Surge como evoluinterac-ción de los intérpretes de comandos que se usaban para operar los primeros sistemas operativos y es pieza fundamental en un entorno gráfico. Como ejemplos de interfaz gráfica de usuario, cabe citar los entornos de escritorio Windows, el X-Window de GNU/Linux o el de MacOSX, Aqua.

En el contexto del proceso de interacción persona-ordenador, la interfaz gráfica de usuario es el artefacto tecnológico de un sistema interactivo que posibilita, a través del uso y la representación del lenguaje visual, una interacción amigable con un sistema informático.

La interacción entre las personas y los ordenadores (IPO) en la actualidad se realiza principal-mente a través de una interfaz gráfica de usuario, un tipo de interfaz de usuario, compuesto por metáforas gráficas inscritas en una superficie de contacto en adición de otros elementos “semánti-cos” como los iconosonidos (signos sonoros) o interfaces humanos (dispositivos de entrada) nece-sarios para posibilitar dicha interacción con los signos-objetos en la interfaz gráfica.

2.2.2.

Crear una Interfaz Gráfica de Usuario mediante Scilab

Dentro de las herramientas que el software Scilab nos brinda, se encuentran recursos que nos permiten la creación de interfaces gráficas de usuario. Aunque éstas herramientas estuvieron de-safortunadamente muy descuidadas en versiones anteriores, a partir de la versión 5.0, toda la inter-faz gráfica de usuario ha sido mejorada e implementada utilizando lenguaje java.

Los recursos de Scilab utilizados para la creación de interfaces gráfricas de usuario son:

figure Consideradas como la base de la Interfaz

uicontrol Botones, entradas y/o salidas de texto, etc

uimenu Menús y submenús

Comando figure

Algorithm 2.1Secuencia de llamado figure

f=figure(num);

f=figure("PropertyName1", Propertyvalue1, ..., ..., "PropertyNameN", PropertyvalueN);

(24)

Parámetros

num ID de la ventana a crear. Si no es especificado, se utiliza el primer ID disponible.

PropertyName{1,...,N} Nombre de la propiedad a configurar. Las propiedades se en listan abajo.

PropertyValue{1,...,N} Valor dado para la propiedad correspondiente.

f Nombre de la variable asignada a la reciente ventana creada o manejador.

Propiedades

background En un vector real [1,3] o cadena de caracteres del color de fondo de la figura. Un color es especificado como valores Rojo, Verde y Azul. Los valores son reales dentro de [0,1]. El color puede darse como un vector real, [R,G,B] o como caracteres separados por un “|”, “R|G|B”.

Figure_name Cadena de caracteres, permite dar el título a la figura.

ForegroundColor En un vector real [1,3] o cadena de caracteres del color de frente de la figura. Un color es especificado como valores Rojo, Verde y Azul. Los valores son reales dentro de [0,1]. El color puede darse como un vector real, [R,G,B] o como caracteres separados por un “|”, “R|G|B”.

Position Permite controlar el aspecto geométrico de la figura. En un vector real [1,4] como [x y width height] donde las letras representan la posición ’x’ de la esquina superior izquierda, la posición ’y’ de la esquina superior izquierda, la anchura y altura de la ventana virtual de gráficos (la parte de la figura donde contiene los uicontrols y las gráficas). También puede configurar las propiedades dando una cadena de caracteres donde los parámetros se separan con “|”, como sigue “x|y|width|height”.

Tag Cadena de caracteres generalmente se usa para identificar la figura. Esto permite dar un nom-bre a la figura. Ocasionalmente se usa en conjunto con findobj()

Userdata Este puede se usado asociando algunos objetos de Scilab a la figura.

[11]

(25)

Algorithm 2.2Ejemplo crear figura dado un ID

// Crea un figura dando un ID figure_id==3 h=figure(3);

// Agregar un uicontrol de tipo texto en la figura 3 uicontrol(h, "style", "text", ...

"string", "This is a figure", ... "position", [50 70 100 100], ... "fontsize",15);

// Create figure having figure_id==1 figure();

// Add a text uicontrol in figure 1 uicontrol("style", "text", ...

"string", "Another figure", ... "position", [50 70 100 100], ... "fontsize", 15);

// Cerrar la última figura creada (en este caso figura 1) close();

// cerrar figura 3 close(h);

(26)

Comando uicontrol

Uicontrol crea un objeto en la Interfaz Gráfica de Usuario

Algorithm 2.3Secuencia de llamado uicontrol

h = uicontrol(PropertyName,PropertyValue,...)

h = uicontrol(parent,PropertyName,PropertyValue,...) h = uicontrol(uich)

Descripción Esta rutina crea un objeto dentro de un figura [11]

Si el nombre de la figura es dado (como el primer parámetro), el uicontrol es creado en dicha figura. Si la figura no es dada, el uicontrol es creada en la última figura creada (podemos identificar ésta con el comando gcf()). Si no existe una figura creada, entonces ésta es creada antes de crear el uicontrol.

Después de creado el uicontrol las propiedades dadas como parámetros son configuradas in-mediatamente con sus correspondientes valores. Esto equivale a crear el uicontrol y después mod-ificar sus propiedades con el comando set(). Sin embargo, es más eficiente definir en un prin-cipio las propiedades. Esta es particularmente cierto en la propiedad “Style”. De hecho el valor por defecto de esta propiedad es “Pushbutton”. Entonces si tu no configuras esto al crear el obje-to, un button será creado, pero puede ser transformado en otro uicontrol mediante la instrucción set(uicontrol,“style”, ... ).

h = uicontrol(PropertyName, PropertyValue,...) crea un uicontrol y asigna las específicas propiedades y valores a este. Esto asigna los valores por defecto a las propiedades no especificadas. El uicontrol por defecto es el “Pushbutton”. La asociación por defecto es a la última figura creada.

h = uicontrol(parent,PropertyName, PropertyValue,...) crea un uicontrol en el objeto especifica-do por el manejaespecifica-dor, parent. Si también se especifica un diferente valor para la propiedad Parent, el valor de esta toma prioridad. Parent es el manejador o nombre de la variable asignada a una figura.

h = uicontrol(uich) enfoca al uicontrol especificado por el uich.

Propiedades

(27)

Callback Caracteres. Instrucción evaluada por el interprete de Scilab cuando el uicontrol es acti-vado. (Por ejemplo al dar click en un botón).

Enable {on}|off. Activar o desactivar el uicontrol. Si esta propiedad esta configurada como “on” (por defecto), el uicontrol es puede usar, pero si esta propiedad está en “off”, el uicontrol no responderá a la acción del mouse.

FontAngle {normal} | italic | oblique. Para el control del contenido de algunos ’text’, esta propiedad configura la inclinación de la tipografía usada.

FontSize Escalar. Para el control del contenido de algunos ’text’, esta configura el tamaño de letra en FontUnits.

FontUnits {points} | pixels | normalized. Para el control del contenido de algunos ’text’, esta especifica la unidad con la cual FontSize está especificada.

FontWeight light | {normal} | demi | bold. Para el control del contenido de algunos ’text’, configura el ancho de la tipografía usada.

FontName Cadena de caracteres. Usada para elegir la tipografía del texto.

ForegroundColor Vector real [1,3]o cadena de caracteres. Es el color del frente del uicontrol, especificado en valores Rojo, Verde, Azul (RGB). Son valores reales dentro del rango [0,1]. El color puede darse como un vector real, como [R,G,B] o como una cadena donde cada valor es separado por un “|”, como “R|G|B”.

HorizontAlalignment left | {center} | right. Configura la alineación horizontal del texto en el uicontrol. Esta propiedad solo tiene efecto en Text, Edit y CheckBoxes

ListboxTop Escalar. Para ListBox, esta propiedad especifica que valor de la lista aparecerá en la primer línea del área visible de la lista.

Max Escalar. Especifica el máximo valor que la propiedad “Value” puede tomar. Lo cual tiene diferentes aplicaciones para cada uicontrol:

CheckBoxes: Max es el valor que la propiedad “Value” toma cuando el uicontrol es activado.

Sliders: Máximo valor del slider.

ListBoxes: Si (Max-Min)>1 la lista presenta múltiples selecciones, en caso contrario no.

Min Escalar. Especifica el valor más pequeño para la propiedad “Value”. Lo cual tiene diferentes aplicaciones para cada uicontrol:

(28)

Sliders: Mínimo valor del slider.

ListBoxes: Si (Max-Min)>1 la lista presenta múltiples selecciones, en caso contrario no.

Parent Manejador (Variable). Manejador o variable de la asociación del uicontrol. Cambiando esta propiedad permite mover el uicontrol de una figura a otra.

Position Vector real [1,4] o cadena de caracteres. Esta propiedad puede ser usada definir o tomar la configuración geométrica de un uicontrol. Es un vector [x y w h] donde las letras representan la posición en ’x’ de la esquina inferior izquierda, la posición ’y’ de la esquina inferior izquierda, la anchura (w) y altura (h) del uicontrol o una cadena de caracteres donde cada valor es separado por un “|”, como “x|y|w|h”. Las unidades son determinadas por la propiedad “Units”.

Relief flat | groove | raised | ridge | solid | sunken. Es la apariencia del borde del uicontrol:

Pushbutton: “raised” Edit: “sunken”

Para otros estilos de uicontrol: “flat”

SliderStep Vector real [1,2] [corto grande], El paso pequeño representa el movimiento cuando se clickea sobre el slider o pulsando las teclas de desplazamiento (cuando el slider está enfo-cado); el paso grande es el movimiento cuando se usa Ctrl+(teclas de desplazamiento). Si el paso grande es omitido, su valor por defecto es 1/10 de la escala.

String Cadena de caracteres. Esta propiedad representa el texto que aparece en un uicontrol (ex-cepto para estilos Frame y Slider). Para ListBoxes y PopupMenus, el valor puede ser un vector de caracteres o un vector donde los items son separados por un “|”. Para uicontrols tipo Text, estos caracteres pueden contener código de texto en HTML.

Style {pushbutton} | radiobutton | checkbox | edit | text | slider | frame | listbox | popupmenu. Es el estilo del uicontrol. Aquí una breve descripción de cada uno de ellos:

Pushbutton Un botón rectangular, regularmente usado para llamado de funciones

Radiobutton Un botón con estados. Los RadioButtons son configurados para ser mutuamente exclusivos

Checkbox Un botón con estados. Usados para múltiples elecciones independientes Edit Zona de edición o entrada de caracteres

Text uicontrol con texto. Generalmente estático

(29)

Frame Uicontrol que representa o limita una zona usada para agrupar controles rela-cionados

Listbox Representa una lista de opciones que pueden ser recorridos con una barra de desplazamiento. Las opciones pueden seleccionarse con el mouse

Popupmenu Es un botón que hace aparecer un menú cuando se clickea

Tag Caracteres Esta propiedad es generalmente utilizada para identificar uicontrols. Permita asig-narles un nombre. A veces se utiliza junto con la instrucción findobj()

Units {points} | pixels | normalized. Configura las unidades usadas al especificar la propiedad “Position”

Userdata Datos de Scilab. Puede ser usado para relacionar objetos de Scilab (caracteres, matrices de caracteres, matrices mxn) a un uicontrol

Value Vector o escalar. Valor del uicontrol, este depende del tipo de uicontrol

CheckBoxes, RadioButtons: Su valor al estar activo es el definido por “Max”, caso contrario es el definido por “Min”

ListBoxes, PopupMenus: Es un vector de índices correspondientes a los índices de la entidad seleccionada en la lista. 1 es para la primer entidad en la lista

Sliders: valor indicado por la barra de desplazamiento

Verticalalignment top | {middle} | bottom. Configura la alineación vertical del texto dentro del uicontrol. Esta propiedad solo tiene efecto en estilos Text y CheckBox

Visible {on}|off. Define la visibilidad del uicontrol. Si la propiedad está en “on” (por defecto) el uicontro es visible, pero si esta propiedad está en “off”, el uicontrol no aparecerá en su correspondiente figura.

Example 2. Crear un uicontrol dentro de una figura

Algorithm 2.4Ejemplo crear uicontrol

// crear una figura f=figure();

// crear un listbox

h=uicontrol(f,’style’,’listbox’,... ’position’, [10 10 150 160]); // llenar la lista

set(h, ’string’, "item 1|item 2|item3"); //seleccionar el valor 1 y 3 de la lista set(h, ’value’, [1 3]);

(30)

Figura 2.5:Ejemplo2: Uso del comando uicontrol

Comando uimenu

Algorithm 2.5Secuencia de llamado uimenu

h=uimenu([prop1,val1] [,prop2, val2] ...)

h=uimenu(parent,[prop1, val1] [,prop2, val2] ...)

Descripción Esto permite crear menús dentro de una figura. Si la propiedad “parent” es una figu-ra, entonces el menú será agregado a la barra de menús de esa figura. Si “parent” es un menú, en-tonces el nuevo objeto será creado dentro de ese menú, permitiendo crear submenús en cascada.[11]

Parámetros

parent Manejador o nombre de la variable a la que se asociará el menú

porp{1,2...} Nombres de las propiedades a configurar

(31)

h Manejador o nombre de la variable del menú correspondiente

Propiedades

Callback Caracteres. Instrucción evaluada por el interprete de Scilab cuando el menú es activa-do. Bajo MacOSX, el callback no puede ser ejecutado por un “button menú” (un menú sin “children”), se deberá especificar por lo menos un “child”

Enable {on}|off. Activar o desactivar el menú. Si esta propiedad está en “on” (por defecto), el menú puede usarse, está funcionando, pero si esta propiedad está en “off”, el menú no re-sponderá a las acciones del mouse y estará de color gris oscuro

Checked {on}|off. Indicador de menú seleccionado. Definiendo esta propiedad en “on” (respecti-vamente en “off”) pondrá (respecti(respecti-vamente removerá) una marca de selección junto al cor-respondiente menú. Esta opción puede ser usada para crear menús que indiquen el estado de una opción en particular

ForegroundColor Vector real [1,3] o caracteres. Color del frente del uimenu (color de tipografía). Es especificado en valores Rojo, Verde, Azul (RGB). Son valores reales dentro del rango [0,1]. El color puede darse como un vector real, como [R,G,B] o como una cadena donde cada valor es separado por un “|”, como “R|G|B”

Label Caracteres. Esta propiedad representa el texto que aparece en el menú

Tag Caracteres. Esta propiedad es generalmente utilizada para identificar los menús. Permite darle un nombre. Principalmente usado junto a findobj()

Visible {on}|off. Define la visibilidad del uimenu. Si la propiedad está en “on” (por defecto) el uimenu es visible, pero si esta propiedad está en “off”, el uimenu no aparecerá en su corre-spondiente figura.

(32)

Algorithm 2.6Ejemplo menús y submenús

// crear una figura

f=figure(’position’, [10 10 300 200]); // crear un objeto en la barra de menú m=uimenu(f,’label’, ’windows’);

//crear dos submenús en el menú "windows" m1=uimenu(m,’label’, ’operations’);

m2=uimenu(m,’label’, ’quit scilab’, ’callback’, "exit"); // crear dos submenús a "operations"

m11=uimenu(m1,’label’, ’new window’, ’callback’,"xselect()"); m12=uimenu(m1,’label’, ’clear window’, ’callback’,"clf()"); //Cerrar la figura

close(f);

Figura 2.6:Ejemplo3: Objetos uimenu en figure

2.3.

Otros conceptos importantes de Scilab

function La organización de un conjunto de líneas de código que ejecuta una acción

(33)

global Se utiliza para declarar una variable del sistema como variable global, lo que permite ser utilizada por cualquier función que la requiere

// La doble diagonal invertida se utiliza para convertir una línea de código en comentario

; Al colocarlo al final de una línea de código , impide que el resultado ésta aparezca en consola

(34)

Capítulo 3

Desarrollo

3.1.

Interfaz ADS_CoLiSyS

La Interfaz Gráfica ADS_CoLiSyS está compuesta por dos objetos Scilab tipo “Figure”, los cuales dan la base para la construcción de este GUI.

En ellas se adhieren los demás objetos uicontrol y uimenu, que permitirán el ingreso de los valores del sistema y nos brindarán las herramientas para el llamado de funciones y herramientas de control.

Los dos objetos figure, están definidos por las variables f , para la ventana principal y g para el área de graficación.

(35)

3.1.1.

Construcción de la ventana Principal

Algorithm 3.1Código de ventana principal

function figure_f();

// ---//Código para generar la ventana principal //

---global f //(1) Declarar variables global

//Main Panel

f=figure(’Figure_name’,’ADS_CoLiSyS’,...//(2) ’position’,[-10 0 700 200],.. //(3)

’background’,12); //(4)

//’f’ Extras

toolbar(f.figure_id,’off’); // (5) //(7)

endfunction

Figura 3.1:Diagrama de flujo para crear ventana principal

(36)

3.1.2.

Construcción de la ventana para Gráficas

Algorithm 3.2Área de gráficas

function figure_g();

// ---//Código para generar la ventana de gráficos //

---global g //(1)

//Plot Area

g=figure(’Figure_name’,’Plot Area’,..//(2) ’position’,[xg yg wg hg]); //(3) //’g’ Extras

xinfo(’Choose Plot’); //(4)

endfunction

(37)

Figura 3.4:Ventana para gráficas

3.1.3.

Usando objetos uicontrol

El uso de los objetos Scilab uicontrol en esta interfaz fue fundamental. Éstos se utilizaron en casos como:

Representación del diagrama a bloques

• Text • Frame

Elección de entradas y salidas

• Popupmenu

Llamado de funciones

• Pushbutton • Checkbox

(38)

3.1.3.1. Creación del diagrama a bloques de la planta del sistema

Algorithm 3.3Diagrama a bloques del sistema

function block_xxtime()

//

---//Código Scilab para construir el diagrama a bloques //

---global numtf dentf modtf newtf Intput Output titlE modTime modIntput //---Panels = Header

titlE=uicontrol(f,’style’,’text’,.. ’position’,[250 205 200 22],...

’background’,[0.5294118 0.8078431 1],.. ’HorizontAlalignment’,’center’,... ’ForegroundColor’,[0 0 0],..

’fontsize’,13); // Blocks

line1=uicontrol(f,’style’,’frame’,.. ’position’,[70 160 560 1],... ’background’,[0 0 0],..

’relief’,’groove’);

Intput=uicontrol(f,’style’,’popupmenu’,..

’string’,’Step|Impulse|Pulse|Square|Random’,.. ’position’,[20 150 60 23],..

’background’,[0.5294118 0.8078431 1],.. ’Foregroundcolor’,[1 1 1],..

’HorizontAlalignment’,’center’,.. ’Verticalalignment’,’top’,..

’relief’,’groove’,.. ’fontsize’,11); modTime=uicontrol(f,’style’,’pushbutton’,..

’string’,’↻’,..

’position’,[80 162 11 11],... ’background’,[0 0.8431373 0],.. ’foreground’,[1 1 1]);

modIntput=uicontrol(f,’style’,’pushbutton’,.. ’string’,’↻’,..

(39)

Algorithm 3.4Diagrama a bloques del sistema (Cont.)

numtf=uicontrol(f,’style’,’text’,.. ’string’,”,..

’position’,[290 161 150 20],.. ’background’,[1 1 1],..

’HorizontAlalignment’,’center’,.. ’fontsize’,12);

dentf=uicontrol(f,’style’,’text’,.. ’string’,”,..

’position’,[290 140 150 20],.. ’background’,[1 1 1],..

’HorizontAlalignment’,’center’,.. ’fontsize’,12);

modtf=uicontrol(f,’style’,’pushbutton’,.. ’string’,’↻’,..

’position’,[438 181 12 12],... ’background’,[0 0.5 0.5],.. ’foreground’,[1 1 1]);

newtf=uicontrol(f,’style’,’pushbutton’,.. ’string’,’⇪’,..

’position’,[426 181 12 12],... ’background’,[1 0.8431373 0],.. ’foreground’,[1 1 1]);

Output=uicontrol(f,’style’,’popupmenu’,..

’string’,’Response|Bode|Gain|Nyquist|Black|RootLocus|Pl-Zr’,.. ’position’,[620 150 80 22],..

’background’,[0.5294118 0.8078431 1],.. ’foregroundcolor’,[1 1 1],..

’Verticalalignment’,’top’,.. ’fontsize’,11,..

’relief’,’groove’); endfunction

Numerador de retroalimentación (Text)

Dentro de los uicontrol utilizados se encuentran los de tipo text, dentro del GUI se utilizaron para representar las funciones de transferencia del sistema.

(40)

Algorithm 3.5Uicontrol numerador de retroalimentación

num_fb=uicontrol(f,’style’,’text’,.. //(1) ’position’,[275 71 150 20],.. //(2)

’background’,[1 1 1],.. //(3)

’HorizontAlalignment’,’center’,.. //(4)

’fontsize’,14,.. //(5)

’string’,’1’,.. //(6)

’visible’,’off’); //(7)

Figura 3.5:Diagrama de flujo bloque retroalimentación

Conector de Bloques (Frame)

Para unir los bloques de la función de transferencia se utilizaron objetos tipo frame, puesto que pueden ser usados para dibujar líneas.

Para ejemplificar el código de este tipo de uicontrol, se mostrará el correspondiente al frame que une a toda la planta con sus entradas, salidas e incluso con sus controladores.

Algorithm 3.6Conector de Bloques

line1=uicontrol(f,’style’,’frame’,.. //(1) ’position’,[70 160 560 1],... //(2) ’background’,[0 0 0],... //(3)

(41)

Figura 3.6:Diagrama de flujo para conector de Bloques

Elección de entradas del sistema(popupmenu)

Solo se utilizaron en dos casos, los cuales fueron para dar al usuario la posibilidad de elegir tanto entradas del sistema, como las salidas del mismo (las gráficas).

A continuación el código de Scilab utilizado para el frame de elección de entradas del sistema

Algorithm 3.7Elección de entradas del sistema (popupmenu)

Intput=uicontrol(f,’style’,’popupmenu’,.. //(1) ’string’,’Step|Impulse|Pulse|Square|Random’,..//(2)

’position’,[20 150 60 23],.. //(3)

’background’,[0.5294118 0.8078431 1],.. //(4)

’Foregroundcolor’,[1 1 1],.. //(5)

’HorizontAlalignment’,’center’,.. //(6)

’Verticalalignment’,’top’,.. //(7)

’relief’,’groove’,.. //(8)

’fontsize’,11); //(9)

(42)

Botón “Exit” (pushbutton)

Utilizados principalmente en el llamado de funciones, los pushbutton.

El siguiente es el pushbutton utilizado para llamar a la función que cierra las ventanas de la Interfaz.

Algorithm 3.8Botón “Exit”

clo=uicontrol(f,.. //(1)

’style’,’pushbutton’,.. //(2)

’string’,’Exit’,.. //(3)

’callback’,’closed()’,.. //(4) ’background’,[0.9 0.3 0.3],..//(5) ’ForegroundColor’,[1 1 1],.. //(6)

’fontsize’,12,... //(7)

’position’,[0 -1 30 15]); //(8)

Figura 3.8:Diagrama de flujo botón “Exit”

CheckBox para aplicar retroalimentación

El único checkbox dentro de la Interfaz, es el que permite aplicar la retroalimentación al sis-tema, para cerrar el lazo.

Al activar un checkbox aparece en el una marca, al volver a activarlo la marca se quita, lo cual permita representar rutinas que representen la aplicación o extracción de algo.

(43)

Algorithm 3.9CheckBox para aplicar retroalimentación

enable_fb=uicontrol(f,... //(1)

’style’,’checkbox’,.. //(2)

’position’, [590 40 110 20],... //(3) ’background’,[0.5294118 0.8078431 1],..//(4)

’string’,’FeedBack’,.. //(5)

’HorizontAlalignment’,’center’,.. //(6) ’ForegroundColor’,[1 1 1],.. //(7)

’fontsize’,15); //(10)

(44)

Capítulo 4

Aplicaciones en Control Clásico

Los procesos de control se encuentran presentes en el entorno, y con ellos se involucran vari-ables como voltaje, temperatura, presión, flujo, entre muchas otras; con lo que podemos encontrar sistemas eléctricos, electrónicos, mecánicos, etc; todos estos pueden ser descritos mediante ecua-ciones diferenciales, el análisis de las cuales nos permite encontrar la respuesta de estos a diversas entradas.Ejemplos de estos sistemas son el control de temperatura en una habitación, el piloto au-tomático de un avión, el control de velocidad, etc.

Si hablamos de la Ingeniería de Control, es la encargada de manipular sistemas dinámicos, para lograr obtener una respuesta deseada.

4.1.

Conceptos Básicos de Control

El estudio y diseño de sistemas físicos puede ser llevado acabo usando métodos empíricos. Nosotros podemos aplicar diversas señales a un sistema físico y medir su respuesta; si el resultado no es satisfactorio, podemos ajustar algún o algunos de sus parámetros, o conectarle un contro-lador hasta lograr el resultado deseado. Esos resultados se basan en la experiencias del pasado, son realizadas mediante prueba y error, y tienen éxito en el diseño de muchos sistemas físicos.

Los métodos empíricos pueden llegar a ser no funcionales si el sistema es muy complejo, caro o peligroso para ser estudiado, en estos casos, los métodos analíticos son indispensables. El estu-dio analítico de sistemas físicos puede ser estructurado en cuatro partes: Modelado, Desarrollo de funciones matemáticas, Análisis y Diseño.

4.1.1.

Definiciones

(45)

debe interpretase en un sentido amplio que comprenda sistemas físicos, biológicos, económi-cos y similares.[26]

UnSistema de Controles una interconexión de componentes que dará una configuración al sistema que lo llevará a una respuesta deseada. [Ver Fig. 4.1]

Planta Es el sistema o proceso a controlar. Unsistema dinámicoes una planta en lazo abierto, a la cual se le aplicará una determinada entrada, para obtener de él una salida, si la salida no es la esperada, se empleará en el sistema diversos métodos de control, ya sea en lazo abierto o cerrado, hasta lograr que el sistema sea estable y que alcance la salida deseada[26].

Una planta puede ser una parte de un equipo, tal vez un conjunto de los elementos de una máquina que funcionan juntos, y cuyo objetivo es efectuar una operación particular, por ejem-plo un dispositivo mecánico, un horno de calefacción, un reactor químico o una nave espacial. [Ver Fig. 4.1a]

(a)Diagrama en ADS_CoLiSyS

(b)Diagrama a bloques de la planta

Figura 4.1:Planta de un sistema de control de posición [14]

La fig.4.1 Muestra un ejemplo de la planta de un sistema de control de posición, la Fig.4.1a es la misma planta ingresada al toolbox ADS_CoLiSyS en Scilab.

Entrada Las entradas son las señales recibidas por el sistema. Representada comou

(46)

Figura 4.2:Entradas en ADS_CoLiSyS

Salida Es la respuesta del sistema a la entrada aplicada. Representada comoy

La forma en que la salida del sistema responde a los cambios de su entrada es muy importante, llegar a la salida deseada es el objetivo de los métodos de control. [26][Ver Fig. 4.3]

Control Llamaremos Control a los procesos, herramientas o métodos implementados en un sis-tema para llevarlo a una respuesta deseada. El objetivo de unSistema de Control Automático

es ajustar la variable manipulada para mantener a la variable manipulada ajustada al Set Point, a pesar de los disturbios.

Control es importante por muchas razones. A continuación se enlistan algunas de ellas, quizás las más importantes:

Prevenir daños al personal en planta, proteger el ambiente previendo emisiones y mini-mizando los desechos, y prevenir también daños al equipo. La Seguridad es de las más importantes consideraciones.

(47)

Figura 4.3:Salidas en ADS_CoLiSyS

Mantener la planta de producción con el menor costo.

(48)

salida y si no hay perturbaciones internas ni externas. Es evidente que estos sistemas no son de control realimentado.[26] [Ver Fig.4.4]

Figura 4.4:Sistema en lazo abierto en ADS_CoLiSyS

Lazo Cerrado Primero debemos hablar de los Sistemas de Control Realimentados, que son sis-temas que mantienen una relación determinada entre la salida y la entrada de referencia, comparándolas y usando la diferencia como medio de control. Un ejemplo sería el sistema de control de temperatura de una habitación. Midiendo la temperatura real comparándola con la temperatura de referencia (temperatura deseada), el termostato activa o desactiva el equipo de calefacción o de enfriamiento para asegurar que la temperatura de la habitación se mantiene en un nivel confortable independientemente de las condiciones externas.

Sistemas de control realimentados también son llamados sistemas de control en lazo cerra-do, en la práctica ambos términos se usan indistintamente. En un sistema de control en lazo cerrado, se alimenta al controlador la señal de error de actuación, que es la diferencia entre la señal de entrada y la señal de realimentación (que puede ser la propia señal de salida o una función de la señal de salida y sus derivadas y/o integrales), con el fin de reducir el error y llevar la salida del sistema a un valor deseado. La medición de la salida es llamada Señal de Realimentación (FeedBack).[26]

(49)

Figura 4.5:Sistema en lazo cerrado en ADS_CoLiSyS

Comparando Lazo Abierto y Lazo Cerrado Una ventaja del sistema de control en lazo cerrado es que el uso de la realimentación vuelve la respuesta del sistema relativamente insensible a las perturbaciones externas y a las variaciones internas en los parámetros del sistema. Es así posible usar componentes relativamente poco precisos y baratos para obtener el control adecuado de una planta determinada, mientras que hacer eso es imposible en el caso de un sistema en lazo abierto.

Desde el punto de vista de estabilidad, el sistema de control en lazo abierto es más fácil de desarrollar, porque la estabilidad del sistema no es un problema importante. Por otra parte, la estabilidad es un gran problema en el sistema de control en lazo cerrado, que puede conducir a corregir en exceso errores que producen oscilaciones de amplitud constante o cambiante. El número de componentes usados en un sistema de control en lazo cerrado es mayor que el que se usa para un sistema de control equivalente en lazo abierto. Por tanto, el sistema de control en lazo cerrado suele tener costos y potencias más grandes. Una combinación adecuada de ambos controles es menos costosa y ofrecerá un comportamiento satisfactorio del sistema global.[26]

Linealización

Sistema Lineal Un sistema en reposo esLineal, sí y solo sí:

f(α1x1+α2x2) =α1f(x1) +α2f(x2) (4.1)

por cualesquierax1,x2,α1yα2;α1yα2son números reales.

(50)

f(x1+x2) = f(x1) +f(x2) (4.2)

f(αx1) =αf(x1) (4.3)

Donde la Ec.4.2 se conoce como propiedad de aditividad y la Ec.4.3 como la propiedad de Homogeneidad

Sistema No Lineal Si la Ecuación 4.1 no se cumple, el sistema esNo Lineal.

Variable Controlada, Variable Manipulada La variable controlada es la cantidad o condición que se mide y se controla. La variable manipulada es la cantidad o condición que el con-trolador modifica para afectar el valor de la variable controlada. Normalmente, la variable controlada es la salida del sistema. Controlar significa medir el valor de la variable controla-da del sistema y aplicar la variable manipulacontrola-da al sistema para corregir o limitar la desviación del valor medido respecto al valor deseado.[26]

Función de Transferencia Lafunción de transferenciade un sistema descrito mediante una ecuación diferencial lineal en invariante en el tiempo se define como el cociente entre la transformada de Laplace de la salida (función de respuesta) y la transformada de Laplace de la entrada (función de excitación) bajo la suposición de que todas las condiciones iniciales son cero. Considérese el sistema lineal e invariante en el tiempo descrito mediante la siguiente ecuación diferencial:

a0

(n)

y +a1

(n−1)

y +...+an−1y˙+any=b0

(m)

x +b1

(m−1)

x +...+bm−1x˙+bmx (4.4)

dondeyes la salida del sistema yxes la entrada. La función de transferencia de este sistema es el cociente de la transformada de Laplace de la salida y la transformada de Laplace de la entrada cuando todas las condiciones iniciales son cero, o

Funcion de Trans f erencia´ =G(s) =

L

[out put]

L

[int put] |condiciones inciales cero (4.5)

= Y(s) X(s) =

b0(m)x +b1(m−x1)+...+bm−1x˙+bmx

a0(n)y +a1(n−y1)+...+an−1y˙+any

(4.6)

(51)

Figura 4.6:Funciones de transferencia en Scilab

4.1.2.

Diagrama de Bloques

Undiagrama de bloquesde un sistema es una representación gráfica de las funciones que lleva acabo cada componente y el flujo de señales. En un diagrama de bloques todas las variables del sistema se enlazan unas con otras mediantebloques funcionales, que son símbolos para representar la operación matemática que sobre la señal de entrada hace el bloque para obtener la salida. Los bloques se conectan mediante flechas, las cuales se conocen como señales, e indican la dirección del flujo de estas últimas.[26] [Ver Fig.4.7]

Punto de suma Es el símbolo que indica una operación de suma. El signo+o−en cada punta de la flecha indica si la señal debe sumarse o restarse.

(52)

Figura 4.7:Diagrama a Bloques ADS_CoLiSyS

4.1.3.

Flujo de Señal

Undiagrama de flujo de señal consiste en una red en la que los nodos están conectados medi-ante distintas ramas. Cada nodo representa una variable del sistema y cada rama que conecta dos nodos representa una señal multiplicadora. Los flujos de las señales van en una única dirección. La dirección del flujo de la señal se indica por una flecha que se sitúa sobre la rama y el factor de multiplicación se indica a lo largo de la rama. El diagrama de flujo de señales representa el flujo de las señales desde un punto del sistema a otro y proporciona las relaciones entre las señales.

Un diagrama de flujo de señales contiene esencialmente la misma información que un diagrama de bloques. La fórmula de la ganancia de Mason, se utiliza en un diagrama de flujo de señales, para obtener las relaciones entre las variables del sistema, sin tener que realizar una reducción del diagrama.

4.2.

Modelado Matemático de Sistemas Físicos

La parte delmodelado matemático de sistemases un importante paso en el análisis y diseño de sistemas de control. Algunos de los modelos matemáticos más comúnmente analizados son los de sistemas mecánicos, eléctricos, hidráulicos y térmicos. Los modelos matemáticos de sistemas son obtenidos aplicando las leyes físicas fundamentales que gobiernan la naturaleza de los materiales que forman a los sistemas. Por ejemplo, las leyes de Newton son usadas en el modelado matemático de sistemas mecánicos. Las leyes de Kirchhoff son usadas para el modelado y análisis de sistemas eléctricos.

(53)

real, muchos de los sistemas son no lineales, pero pueden ser linealizados bajo ciertos rangos de operación cercanos a sus condiciones de equilibrio, para poder trabajarlos en el dominio de Laplace y la transformada Z.

4.2.1.

Sistemas Eléctricos y Electrónicos

Los elementos básicos de los sistemas eléctricos y electrónicos sonresistencias, inductores y capacitores. La entrada de estos sistemas puede ser el voltaje V o corriente i. En la tabla 4.1 se muestra un resumen de las ecuaciones para cada uno de estos elementos

Cuadro 4.1:Sistemas eléctricos[17]

Elemento Simbología Corriente Voltaje Impedancia

Resistencia (Ω) iR=VR V =RiR ZR=R

Inductor (H) iL =L1´VLdt VL=LdiL

dt ZL=Ls

Capacitor (F) iC=CdVC

dt Vc=

1

C ´

(54)

(a)Sistema eléctrico

(b)Modelado en ADS_CoLiSyS

Figura 4.8:Modelado de sistemas eléctricos/electrónicos ADS_CoLiSyS

(55)

4.2.2.

Sistemas Mecánicos de Traslación y Rotación

Traslacionales

Cuadro 4.2:Sistemas mecánicos de traslación y rotación[17]

Elemento Simbología Fuerza Energía Almacenada

Resorte (Nm) F=ky E =12ky2

Amortiguador (Nsm) F=bdy

dt No almacena energía

Masa (kg) F=md2y

dt2 E=

1 2mv2

Rotacionales

Cuadro 4.3:Sistemas mecánicos rotacionales[17]

Elemento Simbología Fuerza Energía Almacenada

Resorte torsional T =kθ E= 12kθ2

Amortiguador rotacional (N m s) F=cω=cddtθ No almacena energía

Momento de inercia (kgm2

s2 ) T =Ia=I

dt =I d2θ

dt2 E=

(56)

Figura 4.10:Sistema mecánico

(57)
(58)

4.2.3.

Sistemas Hidráulicos

Cuadro 4.4:Sistemas hidráulicos[17]

Elemento Simbología Ecuación Energía Almacenada

Resistencia hidráulica

p1−p2=Rq

Capacitancia hidráulica

p=C1´(q1−q2)dt No almacena energía

Inertancia hidráulica

p1−p2=Idqdt

4.2.4.

Función de Transferencia y Analogías

Matriz de Funciones de Transferencia Usando la transformada de Laplace, una integral de convolución en el dominio del tiempo se transforma en una ecuación algebraica en el dominio de la frecuencia.

ˆ

y(s)∼=

L

(Y) =

ˆ ∞

0

y(t)e−stdt=

ˆ ∞

0

ˆ ∞

0

G(t−τ)U(τ)dτ

e−stdt (4.7)

=

ˆ ∞

0

ˆ ∞

0

G(t−τ)e−s(t−τ)dt

U(τ)e−sτdτ (4.8)

=

ˆ

0

G(v)e−s(v)dv

ˆ

0

U(τ)e−sτdτ (4.9)

ˆ

(59)

Donde: ˆ

G(s)es la matriz de funciones de transferencia del sistema=´0∞G(t)e−stdt = la transformada de Laplace de la matriz de respuesta al impulso. [26]

Para un par entrada-salida, su elemento correspondiente deG(s)es un escalar conocido como función de transferencia.

Para sistemas SISO:

ˆ

g(s) =

L

[y(t)]

L

[u(t)] |t=0=

ˆ

y(s)

ˆ

u(s) |t=0 (4.11)

4.3.

Análisis de la Respuesta en el Tiempo y del Error

El tiempo es la variable independiente empleada en la mayoría de los sistemas de control, es usualmente de interés evaluar las respuestas del estado y la salida con respecto al tiempo, es decir,

la respuesta en el tiempo. Una entrada de referencia se aplica al sistema, y el desempeño del sistema se evalúa al estudiar la respuesta del sistema en el dominio del tiempo.

4.3.1.

Definiciones

La respuesta en el tiempo de un sistema de control se divide normalmente en dos partes, la respuesta transitoria y la respuesta estacionaria o en estado estable. Sea y(t) la respuesta en el tiempo de un sistema en tiempo continuo; entonces, en general, se puede escribir:

y(t) =yt(t) +yss(t) (4.12)

Respuesta Transitoria

En la Ec. 4.12yt(t). Está definida como la parte de la respuesta en el tiempo que tiende a cero cuando el tiempo se hace muy grande. Por tantoyt(t)tiene la propiedad de que:

l´ım

f→∞

yt(t) =0 (4.13)

Respuesta Estacionaria

Es la parte de la respuesta total que permanece después que la transitoria ha desaparecido; por lo tanto, puede variar en un patrón establecido, ya sea como una onda senoidal, o como una función rampa que se incrementa con el tiempo.

(60)

la entrada en forma instantánea.

Si la respuesta en estado estable de la salida no concuerda exactamente con la referencia deseada, se dice que el sistema tiene unerror en estado estable.

Señales de Entrada

Escalón Unitario La entrada función escalón representa un cambio instantáneo en la entrada referencia. Por ejemplo, si la entrada es una posición angular en un eje mecánico, una entrada escalón representa una rotación súbita del eje. La representación matemática de una función escalón de magnitudRes:

xi(t) =

(

R t≥0

0 t<0 (4.14)

aplicando la transformada de Laplace obtenemos

Xi(s) =R

s (4.15)

en dondeRes una constante real[28]. La función escalón como función del tiempo se muestra en la Fig.4.13

Figura 4.13:Escalón unitario

Función pulsoδ∆(t−t1) Definida como

δ∆(t−t1)tiene un área unitaria∀∆

(61)

Figura 4.14:Función pulsoδ∆(t−t1)

Función impulsoδ(t−t1)(Función delta de Dirac) Esta definida como:

δ(t−t1)∼= l´ım

∆→0δ(t−t1) (4.16)

Propiedades de la función impulso:

ˆ +∞

−∞

δ(t−t1)dt =

ˆ t1+ε

t1−ε

δ(t−t1)dt =1 Para cualquierεpositivo

ˆ +∞

−∞

f(t)δ(t−t1)dt =f(t1)Para cualquier f continúa ent1(propiedad de muestreo deδ(t−t1))

Cualquier señal continua se puede aproximar por una serie de funciones pulso:

Figura 4.15:Aproximación de un señal

donde:

U ∼=

(ti)δ∆(t−t1)∆ (4.17)

(62)

y=HU∼=

i

[Hδ∆(t−ti)u(ti)∆] (4.18)

conforme∆→0, se tiene:

La aproximación tiende a una igualdad

la sumatoria se convierte en integración

y=

ˆ +∞

−∞

Hδ∆(t−ti)u(τ)dτ (4.19)

si se conoceHδ∆(t−τ)∀τ, se puede calcular la salidaypara cualquier señal de entrada La función pulso tiende a la función impulsoδ(t−ti)

Figura 4.16:Función impulso

Rampa Unitaria La función rampa es una señal descrita como:

xi=Qt (4.20)

Aplicando la transformada de Laplace:

Xi(s) = Q

(63)

en dondeQes una constante real. Para una función Rampa Unitaria, entonces:

xi(t) =t→

L

→Xi(s) = 1

s2 (4.22)

La función rampa se muestra en la Fig.4.17. Si la variable de entrada representa el desplaza-miento angular de una eje, la entrada rampa denota la velocidad de rotación del eje[28]. La función rampa tiene la habilidad de probar cómo responde el sistema a señales que cambian linealmente con el tiempo.

Figura 4.17:Rampa

Parábola La función parabólica representa una señal que tiene un orden más rápido que la fun-ción rampa. Matemáticamente, se representa como:

xi(t) =Kt2 (4.23)

en donde K es una constante real [28]. El resultado de la transformada de Laplace para la función Parábola es:

Xi(s) =

2K

s3 (4.24)

(64)

Figura 4.18:Función Parábola

Función Seno La función seno es representada en forma exponencial como:

xi(t) =Asinωt=e

iωteiωt

2i (4.25)

DondeA es la amplitud de la función, ω es la frecuencia,i=

−1 . Después de aplicada la transforma de Laplace, entonces tenemos[28]:

Xi(s) = Aω

s2+ω2 (4.26)

Referencias

Documento similar

Como se planteó en un principio, se ha mejorado la interfaz gráfica de supervisión y control que estaba instalada para ampliar el rango de visibilidad y

Por último, del análisis del control de la posición del péndulo invertido mediante el uso de sistemas dinámicos híbridos se puede concluir que, mediante un autómata de

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

El nuevo Decreto reforzaba el poder militar al asumir el Comandante General del Reino Tserclaes de Tilly todos los poderes –militar, político, económico y gubernativo–; ampliaba

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

entorno algoritmo.

Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,