View/Open - Instituto Politécnico Nacional

Anuncio
INSTITUTO POLITÉCNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA
DEPARTAMENTO DE INGENIERÍA EN CONTROL Y AUTOMATIZACIÓN
UNIDAD PROFESIONAL ADOLFO LÓPEZ MATEOS
INTERFAZ GRÁFICA EN JAVA COMO RECURSO
DIDÁCTICO PARA LA ASIGNATURA DE TEORÍA DE
CONTROL II
T E S I S
QUE PARA OBTENER EL TÍTULO DE
INGENIERO EN CONTROL Y AUTOMATIZACIÓN
PRESENTA
JOSÉ FRANCISCO REYES SALDAÑA
D I R E C T O R E S:
DRA. MARTHA LETICIA GARCÍA RODRÍGUEZ
M. en C. GUILIBALDO TOLENTINO ESLAVA
MÉXICO, D.F.
NOVIEMBRE 2012
INSTITUTO POLITÉCNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELECTRICA
UNIDAD PROFESIONAL "ADOLFO LÓPEZ MATEOS"
TEMA DE TESIS
QUE PARA OBTENER EL TITULO DE
INGENIERO EN CONTROL Y AUTOMATIZACION
POR LA OPCIÓN DE TITULACIÓN
PROYECTO DE INVESTIGACIÓN SIP20111060
DEBERA(N) DESARROLLAR
C. JOSÉ FRANCISCO REYES SALDAÑA
"INTERFAZ GRÁFICA EN JAVA COMÓ RECURSO DIDÁCTICO PARA LA ASIGNATURA DE
TEORÍA DE CONTROL 11"
.
.
DISEÑAR UNA INTERFAZ GRÁFICA DE USUARIO (IGU) UTILIZANDO EL LENGUAJE DE PROGRAMACIÓN JAVA
COMO APOYO PARA EL APRENDIZAJE DEL DISEÑO DE COMPENSADORES PROPORCIONAL DERIVATIVO (PD)
QUE ES UN TEMA DE LA ASIGNATURA DE TEORÍA DEL CONTOL 11.
.:. ANALIZAR EL CONTENIDO MATEMÁ nco IMPLICITO EN EL MÉTODO DEL LGR Y EL DISEÑO DE UN
COMPENSADOR PD EN LA ASIGNATURA DE TEORÍA DEL CONTROL 11.
•:. CREAR EL MODELO DE SOFTWARE DE LA INTERFAZ GRÁFICA DE USUARIO Y SU METODOLOGÍA.
•:. DISEÑAR EL CÓDIGO DE PROGRAMACIÓN BASADO EN EL MODELO DE SOFTWARE DE LA INTERFAZ
GRÁFICA DE USUARIO.
v..,lT.Y'rvr"lr/DEPARTAME
ACADÉMIQ{JI>J)EA le A
I1WÉl'j1(EkÍA EN CONTROL Y AUTOMATIZACIÓN
AGRADECIMIENTOS
A mis Padres, por la sabia enseñanza de que en la vida no existen límites para el ser
humano más que los que el mismo se impone.
A Francisco, mi Padre, por su esfuerzo y sacrificio personal en interés de mi bienestar
y formación humana y académica, por el apoyo incondicional y sincero en cada
momento de mi vida, por la enseñanza de valores que han enriquecido mi persona.
A Cristina, mi Madre, por su dedicación y atención a lo largo de la vida, por su
perseverancia en función de mi bienestar y formación humana y académica.
A Ricardo, mi Hermano, por su compañía durante la infancia, por su comprensión
durante la adolescencia y por su amistad incondicional.
A María de los Ángeles, mi Abuela, por su apoyo incondicional durante los últimos
años, por su dedicación y esfuerzo a procurar mi bienestar y por sus consejos.
A la Dra. Martha Leticia García Rodríguez, mi asesora, por compartir su experiencia
profesional en el ámbito de la Investigación y la Innovación Educativa en el IPN, por
su dedicación y atención a la elaboración del presente trabajo, por compartir sus
conocimientos científicos y su perseverancia en aras de la formación de profesionistas
con ética en la ESIME.
Al M. en C. Guilibaldo Tolentino Eslava, mi asesor, por su ayuda en la revisión y
consejos que dieron forma al presente trabajo de tesis, por su dedicación a la docencia
en el IPN y a la formación de profesionistas con ética en la ESIME.
A la ESIME y sus Maestros por abrirme las puertas del camino al conocimiento y por
haberme compartido la experiencia profesional.
Al IPN por brindarme una educación y una formación profesional de calidad desde el
momento en que se me dio la oportunidad de formar parte de la comunidad Politécnica.
A ORACLE y Sun MicroSystems, por facilitar la plataforma de desarrollo NetBeans
para la programación en lenguaje Java, y la documentación necesaria para el uso de la
misma plataforma y la implementación de software bajo los estándares de Java SE.
2
Índice
RESUMEN ................................................................................................................................................. 4
INTRODUCCIÓN ...................................................................................................................................... 5
CAPÍTULO 1. TEORÍA DE CONTROL II Y SUS ELEMENTOS MATEMÁTICOS ........................... 9
1.1.
TEORÍA DE CONTROL II................................................................................................................... 9
1.1.1.
Sistemas de Control.................................................................................................................. 9
1.1.2.
El Lugar Geométrico de las Raíces ....................................................................................... 13
1.1.3.
Diseño de Compensadores PD por el Lugar Geométrico de las Raíces ............................... 15
1.2.
ELEMENTOS MATEMÁTICOS IMPLÍCITOS EN LA TEORÍA DE CONTROL II. .................................. 15
1.2.1.
El Lugar Geométrico de las Raíces ....................................................................................... 16
1.2.2.
Ecuaciones Diferenciales Ordinarias ................................................................................... 17
1.2.3.
Transformada de Laplace ...................................................................................................... 19
CAPÍTULO 2. TEORÍA DE INTERFACES GRÁFICAS DE USUARIO .............................................. 22
2.1.
INTERFACES GRÁFICAS DE USUARIO ............................................................................................. 22
2.1.1.
Consideraciones Técnicas de las Interfaces Gráficas de Usuario ........................................ 23
2.1.2.
El Pensamiento de la Interfaz Gráfica de Usuario .............................................................. 24
2.1.3.
Manejo de Eventos con la Biblioteca AWT de la Versión Estándar de Java ...................... 25
2.2.
PROGRAMACIÓN Y DESARROLLO DE INTERFACES GRÁFICAS DE USUARIO EN JAVA .................. 27
2.2.1.
Herramientas Widgets de la Biblioteca Swing ...................................................................... 27
2.2.2.
Descripción del Lenguaje Java.............................................................................................. 30
2.2.3.
Desarrollo de Applets ............................................................................................................. 35
CAPÍTULO 3. DISEÑO DE LA INTERFAZ GRÁFICA DE USUARIO .............................................. 39
3.1.
INGENIERÍA DE SOFTWARE ............................................................................................................ 39
3.1.1.
Diagramas de Lenguaje Unificado de Modelado .................................................................. 41
3.1.2.
Proceso de Desarrollo del Software ....................................................................................... 46
3.2.
MODELO SEMIFORMAL PARA EL DESARROLLO DE SOFTWARE EDUCATIVO (MSDSE).............. 47
3.3.
DISEÑO DE LA INTERFAZ GRÁFICA DE USUARIO COMO APPLETS DE JAVA (DIGUAJ) .......... 50
CAPÍTULO 4. APLICACIÓN DE LA METODOLOGÍA (DIGUAJ) .................................................... 53
4.1.
4.2.
4.3.
4.4.
ARQUITECTURA DEL SOFTWARE PARA LA INTERFAZ GRÁFICA DE USUARIO ............................. 53
MODELO DE DESARROLLO DE LA INTERFAZ GRÁFICA DE USUARIO ........................................... 54
FASE DE OPERACIÓN ...................................................................................................................... 64
EJECUCIÓN DE LA APLICACIÓN..................................................................................................... 70
CONCLUSIONES .................................................................................................................................... 77
RECOMENDACIONES .......................................................................................................................... 79
REFERENCIAS ....................................................................................................................................... 80
APÉNDICE A. CÓDIGO DE PROGRAMACIÓN DE LA CLASE FRAME_COMPENSADORPD
DEL PAQUETE MENUCOMPENSADORPD........................................................................................ 82
3
Resumen
Se diseñó una Interfaz Gráfica de Usuario (IGU) utilizando el lenguaje de
programación Java como apoyo para el aprendizaje del diseño de compensadores
Proporcional Derivativo (PD) que es un tema de la asignatura de Teoría del Control II.
En el trabajo se justifica que la IGU puede ser un recurso didáctico que contribuya para
el aprendizaje del Método del Lugar Geométrico de las Raíces.
Se propuso una metodología para el Diseño de la Interfaz Gráfica de Usuario como
Applet de Java (DIGUAJ) que consta de tres etapas, 1ª) Arquitectura del Software 2ª)
Modelo de Desarrollo del Software 3ª) Fase de Operación. La metodología se basa en
los estándares de la Ingeniería de Software (IS) [17, 31] y en un Modelo Semi-formal
para el Desarrollo de Software Educativo (MSDSE) [22].
Utilizando el EDI NetBeans se desarrolló la programación de la IGU con las
características que provee la tecnología Applet de Java, por mencionar algunas:
robustez, portabilidad y compatibilidad que recaen en las ventajas que ofrecen las
Tecnologías de la Información y la Comunicación. La IGU que se obtuvo puede
hacerse accesible desde internet usando la tecnología Java para la creación de páginas
web con programación en servidor (Java Server Pages ó JSP por sus siglas en inglés).
Finalmente se hace un corrimiento de la IGU del cual se puede concluir que se llevó a
cabo con éxito la obtención del método a analítico, la solución numérica del diseño de
un compensador Proporcional Derivativo (PD) y la obtención de la gráfica del Lugar
Geométrico de las Raíces (LGR) para la Función de Transferencia (FT) del sistema que
se propone para el corrimiento.
4
Introducción
La asignatura de Teoría de Control II es una parte esencial de la formación académica
de los alumnos de la carrera de Ingeniería en Control y Automatización de la Escuela
Superior de Ingeniería Mecánica y Eléctrica Unidad Zacatenco del Instituto Politécnico
Nacional. Esta asignatura se ubica en el sexto semestre de la carrera y requiere los
elementos teóricos de las asignaturas Ecuaciones Diferenciales, Modelado de Sistemas
y Teoría de Control 1 que se imparten en semestres anteriores.
El estudio de la asignatura presenta dificultad en su aprendizaje como se puede inferir
de las estadísticas de 2009 y 2010 solicitadas al departamento de control escolar. En
2009 el número de reprobados en el segundo semestre del año fue de 77 alumnos de los
cuales, después de la segunda ronda del Examen a Título de Suficiencia (E.T.S.), 35%
aprobaron y 65% continuaron con la asignatura reprobada; en el primer semestre del
año 2010 el número de reprobados fue de 90 alumnos de los cuales, después de la
segunda ronda del E.T.S., 42% aprobaron y 58% continuaron adeudando la asignatura.
El programa de la asignatura de Teoría de Control II se estructura en cinco unidades:
1. Método del Lugar Geométrico de las Raíces
2. Compensación de Sistemas de Control
3. Efectos No-lineales de los Sistemas Físicos.
4. Método de la Función Descriptiva.
5. Método del Plano de Fase.
Considerando que las dos primeras unidades son una base del diseño de
compensadores para los sistemas de control, los cuales sirven para mejorar la respuesta
de los sistemas.
El conocimiento del Método del Lugar Geométrico de las Raíces y Compensación de
Sistemas de Control significa, más que llegar a la solución de problemas de diseño de
compensadores en forma numérica, se trata de entender los procedimientos
5
matemáticos implícitos y la relación que existe entre las soluciones numéricas, los
recursos gráficos y el método analítico.
Es claro que las dificultades en el aprendizaje de los temas expuestos son diversas y en
ellas influyen factores sociales, económicos y académicos, no es posible incidir en
todos estos ámbitos al mismo tiempo, pero si en los académicos.
Una forma de incurrir en los problemas académicos es mediante la incorporación de
herramientas didácticas al salón de clases y en la primera década de este siglo se ha
incrementado la incorporación de las Tecnologías de la Información y la
Comunicación (TIC) en la vida diaria de las personas.
El uso de las TIC hace más eficiente y disminuye el tiempo en la organización de
información, permite el ahorro de espacio; en particular el internet brinda acceso
inmediato a una gran cantidad de información sin importar la distancia. El uso de
herramientas proporcionadas por las TIC como son la computadora y el internet es
cada vez más frecuente en actividades administrativas, industriales, comerciales y
académicas, siendo éste último, el ámbito en el que se desarrolla este trabajo.
Las herramientas proporcionadas por las TIC son diversas y una de éstas son los
Applets de Java que debido a algunas de las ventajas que como TIC ofrece y que serán
mencionadas más adelante, se ha considerado que pueden brindar un recurso didáctico
que puede contribuir a una mejor comprensión de las unidades 1 y 2 de la asignatura de
Teoría del Control II, recurso que por el momento no se ha elaborado para los alumnos
de la carrera de Ingeniería en Control y Automatización (ICA).
Algunas ventajas de las TIC son:
1) Capacidad de visualización de gráficos computarizados.
2) Acceso a todo tipo de información y contenidos desde diferentes partes del
mundo.
6
3) Comunicación inmediata entre diferentes personas o instituciones.
El objetivo de este trabajo fue diseñar una Interfaz Gráfica de Usuario (IGU) utilizando
el lenguaje de programación Java como apoyo para el aprendizaje del diseño de
compensadores Proporcional Derivativo (PD) en la asignatura de Teoría del Control II.
Para alcanzar el objetivo de la tesis, ésta se encuentra integrada por 4 capítulos.
En el Capítulo 1 se describen los elementos de la teoría de control que son utilizados
para el diseño de Compensadores PD mediante el método del Lugar Geométrico de las
Raíces, así como los elementos matemáticos de la Teoría de Control Clásico que son
empleados en el método analítico de la solución de Compensadores PD.
En el Capítulo 2 se estudia la teoría necesaria para la creación de las IGU y de forma
particular, se mencionan los elementos gráficos utilizados en ellas, estos pueden ser los
llamados Widgets: ventanas, menús, botones, botones radio, cajas de cheque. Además
se hace una descripción de Java como lenguaje de programación y como una
plataforma y finalmente se describe el desarrollo y el ciclo de vida de los Applets.
En el Capítulo 3 se describen la Ingeniería de Software (IS) y el Modelo Semi-formal
para el Desarrollo de Software Educativo (MSDSE). En la IS se puede encontrar una
clasificación del software, una descripción de los diferentes diagramas del Lenguaje
Unificado de Modelado (LUM) y un Proceso de Desarrollo de Software (PDS) que
consta de cuatro etapas; en el MSDSE se puede observar una metodología que consta
de 3 etapas para el desarrollo de Software Educativo (SE); finalmente en este capítulo
se presenta la metodología propuesta para el Diseño de la Interfaz Gráfica de Usuario
como Applet de Java (DIGUAJ).
En el Capítulo 4 se Aplica la metodología DIGUAJ para obtener la IGU e
implementarla como Applet de Java, también se incluyen los diagramas del LUM que
describen la Arquitectura de Software y el Modelado de la IGU como un Sistema de
Software; se desarrolla la portabilidad de la IGU usando la tecnología Java para la
7
creación de páginas web con programación en servidor (Java Server Pages ó JSP por
sus siglas en inglés) y se hace un análisis de la IGU haciendo una prueba con una
Función de Transferencia (FT)
Finalmente se presentan las Conclusiones que se obtuvieron de esta tesis y las
Recomendaciones.
8
Capítulo 1. Teoría de Control II y sus Elementos Matemáticos
1.1. Teoría de Control II
Habitualmente las teorías de control usadas son Teoría de Control Clásico, Teoría de
Control Moderno y Teoría de Control Robusto, en el presente capítulo se recomienda
un recurso didáctico para la enseñanza de la Teoría de Control Clásico en general y al
método del lugar geométrico de las raíces en particular, el cual fue propuesto por
Evans y desarrollado por completo a finales de los años cuarenta y principios de los
cincuenta [3].
En la asignatura de Teoría de Control II que es impartida en ESIME existen elementos
fundamentales para el estudio de la Teoría de Control Clásico como el método del
lugar de las raíces y respuesta en frecuencia los cuales serán abordados a partir del
tema 1.1.1, pero también existen elementos matemáticos como las ecuaciones
diferenciales ordinarias y la transformada de Laplace que son usados como una
herramienta en la solución de problemas de control clásico.
1.1.1. Sistemas de Control
Un sistema es una combinación de componentes que actúan juntos y realizan un
objetivo determinado. Un sistema no está necesariamente limitado a los sistemas
físicos. El concepto se puede aplicar a fenómenos abstractos y dinámicos como los que
se encuentran en la economía. Por lo tanto el concepto de sistema debe ser interpretado
de una forma más amplia de modo que comprenda sistemas físicos, biológicos,
económicos y similares.
En ingeniería es común el estudio de sistemas de control físicos, algunos ejemplos son:

Sistema de control de velocidad

Sistema de control de temperatura

Sistemas empresariales

Sistema de control de presión
9
Dentro del estudio de los sistemas de control hay conceptos usados con frecuencia, los
cuales son:

Planta: es el sistema controlado o que se pretende controlar, puede ser un
equipo, una parte de un equipo o un conjunto de elementos de una máquina que
trabajan juntos y cuyo objetivo es realizar una operación determinada.

variable controlada: es la variable que se pretende mantener en un valor
predeterminado conocido comúnmente como set point.

señal de control o variable manipula: es la cantidad o condición que un
controlador modifica para afectar el valor de la variable controlada.
En la Teoría de Control Clásico existen dos tipos de sistemas de control:

Sistemas de Control en Lazo Abierto

Sistemas de Control en Lazo Cerrado
1.1.1.1. Sistemas de Control en Lazo Abierto
Son los sistemas en los cuales la salida no tiene efecto sobre la acción de control, en
otras palabras la salida no es medida ni se realimenta para compararla con la entrada.
Un ejemplo práctico y clásico es una lavadora común, en donde el objetivo es dejar la
ropa limpia y las acciones de remojado, lavado y centrifugado operan por un tiempo
pre programado y no por un sensor que envíe una señal de salida que en este caso sería
la limpieza de la ropa.
Características de los Sistemas de Control en Lazo Abierto:

En cualquier sistema de control en lazo abierto la salida no se compara con la
entrada de referencia.

A cada entrada de referencia le corresponde una condición de operación fija,
por lo que la precisión del sistema depende de la calibración del mismo.
10

Ante la presencia de perturbaciones un sistema de control en lazo abierto no
realiza la tarea deseada.

Cualquier sistema de control que opere con una base de tiempo está en lazo
abierto.
Otro ejemplo de Sistema de Control en Lazo Abierto es el control de tráfico vehicular
mediante señales operadas con una base de tiempo. La Figura 1.1 muestra el diagrama
a bloques de un Sistema de Control a Lazo Abierto.
Figura 1.1. Diagrama a bloques de un Sistema de Control a Lazo Abierto
1.1.1.2. Sistemas de Control en Lazo Cerrado
Los sistemas de Control en Lazo Cerrado se denominan también Sistemas de Control
Retroalimentado, en la práctica estos términos se usan de forma indistinta. En los
sistemas de control en lazo cerrado, se alimenta al controlador con una señal de error,
la cual es la diferencia entre la señal de entrada y la señal de retroalimentación, esta
señal puede ser la señal de salida o una función de la señal de salida y sus derivadas o
integrales.

La finalidad de un Sistema de Control en Lazo Cerrado es reducir el error y
llevar la salida del sistema a un valor deseado.

El término de lazo cerrado siempre implica el uso de una acción de control
realimentado para reducir el error del sistema.
En la Figura 1.2 se muestra el diagrama a bloques de un Sistema de Control en Lazo
Cerrado en donde E(s) es la señal de error, la señal de realimentación es Y(s), la
entrada del sistema es R(s), el controlador es el bloque K y la planta del sistema es el
bloque G(s).
11
Figura 1.2. Sistema de control en lazo cerrado
1.1.1.3. Comparación entre Sistemas de Control en Lazo
Cerrado y Sistemas de Control en Lazo Abierto
Una ventaja del Sistema de Control en Lazo Cerrado es que la respuesta del sistema se
vuelve relativamente insensible a perturbaciones externas y a las variaciones internas
de los parámetros del sistema.

Para los sistemas en los que se conoce con anticipación las entradas y en los
cuales no hay perturbaciones es posible implementar el control en lazo abierto.

El número de componentes utilizados en un sistema de control en lazo cerrado
es mayor que en sistema de control en lazo abierto, lo cual incrementa el coste
de la implementación del control.

En un sistema de control en lazo abierto la estabilidad no es un problema
importante, pero en un sistema de control en lazo cerrado la estabilidad si es un
gran problema.
Ventajas fundamentales de los sistemas de control en lazo abierto:

Construcción simple y facilidad de mantenimiento.

Menos costo que el correspondiente sistema en lazo cerrado.

No hay problemas de estabilidad.

Convenientes cuando la salida es difícil de medir o cuando medir la salida de
forma precisa no es económicamente viable.
Ventajas fundamentales de los sistemas de control en lazo cerrado:
12

Las perturbaciones y los cambios en la calibración originan errores, y la salida
puede ser diferente de lo que se desea.

Para mantener la calidad requerida en la salida, es necesaria la re-calibración
regularmente programada.
1.1.2. El Lugar Geométrico de las Raíces
Evans (a finales de los años cuarenta y principios de los cincuenta), utilizó un método
gráfico y sencillo con el cual se pueden encontrar las raíces de la ecuación
característica y observar el comportamiento de las mismas asociado a la dinámica del
sistema con base en un análisis matemático de la ecuación característica del sistema.
Este método se denomina método del lugar geométrico de las raíces, y en él se
representan las raíces de la ecuación característica para todos los valores de un
parámetro del sistema.
Por lo tanto en la gráfica que resulta del método se pueden localizar las raíces
resultantes para un valor dado de un parámetro, este parámetro es por lo general la
ganancia, aunque es posible utilizar cualquier otra variable de la función de
transferencia en lazo abierto. Al menos que se indique lo contrario, aquí se supondrá
que la ganancia de la función de transferencia en lazo abierto es un parámetro que
puede adoptar todos los valores de cero a infinito [3].
Para un sistema de control como el que se mostró en la figura1.2, se tiene el
planteamiento de las ecuaciones (1) y (2):
(s)
(s)
(s)
(1)
( )
( )
( )
(2)
Sustituyendo la ecuación (1) en la ecuación (2) se tiene:
( )
(s)
(s)
( )
(3)
13
Desarrollando la ecuación (3) y agrupando los términos de Y(s) del lado izquierdo
de la ecuación se obtienen las ecuaciones (4) y (5):
( )
(s) ( )
(s) ( )
(4)
( )
(s) ( )
(s) ( )
(5)
Haciendo la factorización de los términos semejantes de Y(s) de la ecuación (5):
(s)
( )
( )
( )
(6)
De acuerdo a la definición de Función de Transferencia, que es la relación de la
salida Y(s) respecto a la entrada R(s) del sistema de la ecuación (6) se obtiene:
( )
( )
( )
(7)
( )
En donde la ecuación (7) es la función de transferencia en lazo cerrado del sistema y
determinar la estabilidad del sistema consiste en analizar el comportamiento de la
ecuación característica, es decir de:
( )
( ).Se observa que K es la
ganancia y que por lo tanto la dinámica del sistema depende de K ya que es un
parámetro que puede adoptar todos los valores de cero al infinito.
La idea básica detrás del método del lugar de las raíces es que los valores de s que
hacen que la función de transferencia alrededor del lazo sea igual a -1, es decir:
( )
deben satisfacer la ecuación característica del sistema. El método debe
su nombre al lugar de las raíces de la ecuación característica del sistema en lazo
cerrado cuando un determinado parámetro (por lo general la ganancia K) varia de cero
a infinito.
14
Dicha gráfica muestra como contribuye cada polo o cero en lazo abierto a las
posiciones de los polos en lazo cerrado, por lo antes citado se puede decir que al
diseñar un sistema de control lineal, el método del lugar de las raíces resulta de gran
utilidad, ya que se puede observar la forma en que los polos y los ceros en lazo abierto
se deben modificar para que la respuesta del sistema cumpla con un comportamiento
específico [3].
Este método es puramente cualitativo, sin embargo por medio de operaciones aparte de
observar el comportamiento de las raíces se pueden obtener ciertos valores que a pesar
de estar en una gráfica en el plano complejo brindan información de forma intuitiva
sobre el comportamiento en el tiempo [1].
1.1.3. Diseño de Compensadores PD por el Lugar Geométrico de
las Raíces
El lugar geométrico de las raíces bosqueja el comportamiento de un sistema en lazo
cerrado, la ventaja que tiene esto es que si se quiere diseñar otro tipo de compensador,
siempre es posible verlo como una ganancia variable y una función de transferencia
compuesta por el sistema y todos los valores de las ganancias de cada compensadores y
además el diseño permite visualizar el efecto de todos los compensadores en la
estabilidad del sistema.
La idea básica es verificar primeramente si con un compensador proporcional se
cumple con los requerimientos del sistema, en caso de no hacerlo, se verifica cual es el
comportamiento que sí cumple para poder tomar la elección del compensador más
adecuado.
1.2. Elementos Matemáticos Implícitos en la Teoría de Control II.
En matemáticas existen elementos que son usados de forma recurrente en la asignatura
de teoría de control II, como la transformada de Laplace y los métodos de solución de
las ecuaciones diferenciales ordinarias de primero y segundo orden homogéneas y no
homogéneas, a partir de estos elementos matemáticos se derivan características
15
fundamentales de los sistemas que son analizados en la asignatura de teoría de control
II.
La transformada de Laplace y el estudio de las ecuaciones diferenciales ordinarias son
esenciales para que el Ingeniero en Control y Automatización pueda analizar los
sistemas y a través de estos elementos matemáticos pueda formar funciones de
transferencia. Para el estudio del lugar geométrico de las raíces es necesario entender
las características matemáticas que están involucradas en las funciones de transferencia
de los modelos estudiados en la asignatura. Lo anterior se puede observar en la figura
1.3.
Figura 1.3. Interacción de elementos matemáticos con elementos de la teoría de control
II [Creación Propia].
1.2.1. El Lugar Geométrico de las Raíces
La función de transferencia de un sistema es la relación existente entre la entrada y la
salida, cuando las condiciones iníciales son nulas. En general, la función de
transferencia de los sistemas puede escribirse como un cociente de polinomios en el
dominio de la frecuencia “s”. La función de transferencia está constituida por polos y
16
ceros, ceros en el numerador y polos en el denominador, además el denominador es
considerado como el polinomio característico del sistema o ecuación característica [2].
A partir de la función de transferencia es posible definir algunas características de
relevancia [3]:

La característica básica de la respuesta transitoria de un sistema en lazo cerrado
se relaciona estrechamente con la localización de los polos en lazo cerrado.

Si el sistema tiene una ganancia de lazo variable, la localización de los polos en
lazo cerrado depende del valor de la ganancia de lazo elegida.

Desde el punto de vista del diseño, un simple ajuste de la ganancia en algunos
sistemas mueve los polos en lazo cerrado a las posiciones deseadas.

Los polos en lazo cerrado son las raíces de la ecuación característica.
1.2.2. Ecuaciones Diferenciales Ordinarias
Las ecuaciones diferenciales se encuentran en muchas áreas de ciencias e ingeniería y
la relación que existe entre las matemáticas y sus aplicaciones es conocida como
matemáticas aplicadas [4].
Las aplicaciones que ha visto un estudiante que ha cursado la asignatura de ecuaciones
diferenciales son variadas ya que los ejemplos que seguramente ha visto son de física,
química, biología, matemáticas e ingeniería, pero esto depende de la orientación del
curso.
Por lo que en algunas ocasiones las ecuaciones diferenciales son el tipo de matemáticas
que surgen de esas aplicaciones.
Por definición una Ecuación Diferencial Ordinaria Lineal es:
( )
( )
( )
( )
( )
17
En el estudio de las matemáticas aplicadas se incluyen tres aspectos [4]:

Proceso de modelado: es el proceso mediante el cual los objetos físicos y los
procesos se describen por medio de leyes físicas y formulaciones matemáticas
dadas.

Análisis: es el análisis de los problemas matemáticos que se postulan, esto
abarca una investigación sobre las formas de solucionar las ecuaciones
diferenciales ordinarias.

Interpretación: el resultado matemático de una ecuación diferencial ordinaria no
lo dice todo, por lo que es necesario interpretar el resultado en el contexto del
problema físico original.
Ejemplos de modelos que surgen de las matemáticas aplicadas:
Ecuación diferencial que determina la posición de una masa en movimiento y una
fuerza debida a la resistencia del aire proporcional a la velocidad dy/dt.
(1)
Ecuación diferencial que satisface la corriente que circula por un circuito típico
formado por un resistor, un capacitor y una bobina.
i
f(t)
(2)
De los ejemplos anteriores se pueden comenzar a observar distintos elementos
que son usados en la asignatura de teoría de control II.
De
g
(3)
18

Se encuentra que “ ” y “ ” son los pará etros que rigen la diná i a del
sistema.

os pará etros “ ” y “ ” ha en que el siste a sea ineal Invariante en el
Tiempo.
1.2.3. Transformada de Laplace
La idea de usar una transformación es cambiar un conjunto de objetos y operaciones en
otro conjunto de objetos y operaciones. En este caso la transformación será la
transformada de Laplace, la cual cambiará una ecuación diferencial lineal con
coeficientes constantes en un problema de álgebra [4].
Muchos procedimientos de diseño en la teoría de control están basados en la forma
algebraica del problema, la cual es proporcionada por la transformada de Laplace.
Definición de la transformada de Laplace:
(s)
f(t)
∫ e
f(t)dt
(4)
De la definición de la transformada surgen transformadas para las derivadas:
f (t)
s (s)
f (t)s
(s)
sf( )
f( )
(5)
f( )
(6)
En donde f( ) y f’( ) son las ondi iones iníciales del sistema que se está
estudiando.
19
Como se mencionó anteriormente la transformación de las ecuaciones diferenciales
revela aspectos matemáticos rescatables para la teoría del control, pero esto no se logra
hasta tener la función de transferencia de un sistema que esté definido por
una
ecuación diferencial ordinaria lineal con parámetros concentrados e invariante en el
tiempo, en donde además sus condiciones iníciales son iguales a cero.
Ejemplo de obtención de la función de transferencia de un sistema definido por
una ecuación diferencial ordinaria lineal con parámetros concentrados e
invariante en el tiempo, con condiciones iníciales iguales a cero:
y
u(t)
(7)
Aplicando la transformada de Laplace a la ecuación (7) se obtiene:
( )
( )
( )
[
( )
( )
]
( )
(8)
Dado que las condiciones son iguales a cero se puede conservar la linealidad del
sistema transformado por lo que te puede obtener la función de transferencia y
reducir la ecuación (8) a:
s
(s)
s (s)
(s)
(9)
Haciendo la factorización de Y(s) a partir de la ecuación (9):
(s) s
s
(10)
Despejando Y(s) de la ecuación (10):
20
(s)
(11)
(s)
(12)
Reduciendo la ecuación (11):
De la ecuación (11) es posible identificar distintos elementos matemáticos que se
usan en la teoría del control:

a solu ión de una e ua ión diferen ia “y(t)” es la salida de un siste a en
el do inio de “s”.

El orden de la ecuación característica de la función de transferencia es
igual al orden de la ecuación diferencial

El orden de la ecuación diferencial es igual al número de raíces de la
ecuación característica.
21
Capítulo2. Teoría de Interfaces Gráficas de Usuario
2.1. Interfaces Gráficas de Usuario
Interfaz Gráfica
de Usuario (IGU) es un programa o entorno que gestiona la
interacción con el usuario basándose en relaciones visuales como íconos, menús o un
puntero. Se les puede considerar como programas de cómputo, que un programador o
desarrollador de software crea apoyándose en herramientas llamadas Entorno de
Desarrollo Integrado (EDI).
Las interfaces o programas de cómputo que crea el desarrollador de software se basan
en elementos gráficos los cuales permiten a un usuario final controlar el
funcionamiento e interactuar con la interfaz o programa de cómputo. Los elementos
gráficos utilizados en las IGU se llaman Widgets, incluyen: ventanas, menús, botones,
botones radio, cajas de chequeo, íconos, áreas de texto y listas [19, 20].
Un acrónimo que engloba a los Widgets es VIMD (Ventanas, Íconos, Menús,
Dispositivos Señaladores) o WIMP (Windows, Icons, Menus, Pointing devices) por sus
siglas en inglés y para diseñar Interfaces Gráficas de Usuario es necesario recurrir a un
paquete de herramientas Widgets.
Los paquetes de herramientas Widgets más usados tienen nombre y son clasificados
por el lenguaje de programación en que fueron creados, esto se debe a que son
paquetes que le proporcionan robustez al lenguaje de programación. Los lenguajes de
programación se pueden clasificar en lenguajes de Bajo Nivel y de Alto Nivel, estos
últimos usualmente tienen las mayores prestaciones gráficas.
Existen Leguajes de Programación de Bajo Nivel como el lenguaje C que cuenta con
varios paquetes de herramientas Widgets. Los nombres de los paquetes de herramientas
se presentan en la tabla 2.1.
22
Tabla 2.1. Nombres de los Lenguajes Programación más conocidos con su respectivo
Paquete de Herramientas Widgets.
Nombre del Lenguaje
de Programación
Java
C++
C
Nombre
del
Paquete
Herramientas Widgets
Swing y AWT
Qt, Borland, wxWidgets
Motif, GTK+ y Tk
de Clasificación del Lenguaje
de Programación
Nivel Alto
Nivel Alto
Nivel Bajo
2.1.1. Consideraciones Técnicas de las Interfaces Gráficas de
Usuario
Una vez seleccionado el paquete de herramientas Widgets que se utilizará para el
diseño de la interfaz, es indispensable conocer las consideraciones técnicas que
orientarán el trabajo de programación adecuadamente. A continuación se mencionarán
tres aspectos fundamentales a considerar [20]:

Programación: necesita diseñarse bajo una arquitectura de software que
consiste en un Modelo de Software y una Arquitectura de Software, los cuales
depende de las características del lenguaje de programación, que puede ser
orientado a objetos, de programación estructurada, de bajo o alto nivel.

Ergonomía: es uno de los factores más importantes para que la IGU sea
amigable con un uso fácil y sin ambigüedad.

Diseño Gráfico: el diseño gráfico involucra las artes gráficas a través de las
cuales la interfaz gráfica resulta ser estética y cómoda a la vista.
Además de las consideraciones que ya se mencionaron existen factores que
complementan el diseño de la IGU y que influyen en la orientación de la programación
de forma directa, como cada usuario tiene necesidades diferentes podría dar usos a la
interfaz gráfica para los cuales no fue diseñada, lo que queda fuera del alcance del
programador, de ahí la necesidad de considerar los siguientes factores [20]:
23

Comportamiento del Usuario: cada usuario tiene un comportamiento diferente
al usar la interfaz por lo que es necesario que la IGU reaccione ante eventos
generados dentro de la misma.

Método Clásico de Diseño Poco Adaptado: el método clásico de diseño de una
IGU es como el que se muestra en la figura 2.1.
Figura 2.1. Método Clásico de Diseño de Interfaces Gráficas de Usuario
Se dice que este método esta poco adaptado debido a que el diseño de la IGU debe ser
iterativo por medio de una evaluación del usuario para retroalimentar el diseño de la
misma desde la etapa de análisis [20].
2.1.2. El Pensamiento de la Interfaz Gráfica de Usuario
Debido a que las IGU tienen como función establecer un enlace entre dos sistemas
llamados usuario y computadora, la IGU podría aparentar que en realidad está
haciendo reflexiones acerca del comportamiento del usuario al interactuar con ella
proporcionando información que orienta y dirige al usuario.
El enlace que se establece entre estos dos sistemas se logra mediante el manejo de
eventos generados en la IGU. Los eventos que se pueden generar son entradas que
provienen de los dispositivos de entrada de la plataforma tipo hardware en la que se
está ejecutando la IGU, como son el teclado y el mouse.
Una de las Herramientas Widgets que permite el manejo de eventos es la biblioteca
AWT de Java que contiene clases que a su vez tienen métodos que sirven para
identificar eventos que provienen del sistema huésped. Debido a que en Java las
24
aplicaciones se ejecutan dentro de la Máquina Virtual (JVM por sus siglas en ingles),
esta se encarga de recibir los eventos del sistema huésped.
El hecho de recibir los eventos no significa nada ya que es necesario que exista un
enlace entre la Máquina Virtual de Java y el sistema huésped que interprete estos
eventos, ese enlace entre el sistema huésped y la Máquina Virtual de Java se logra
incorporando métodos de las clases de la biblioteca AWT a los programas informáticos
creados en este lenguaje [10].
Debido a que la Interfaz Gráfica de Usuario podría manejarse de forma inadecuada por
los usuarios el programador de la Interfaz Gráfica de Usuario debe darse a la tarea de
tratar de predecir en que partes de la Interfaz Gráfica de Usuario pueden ocurrir
eventos inesperados para el usuario sin que este sepa que hacer.
Antes de que un evento inesperado ocurra deben actuar métodos de programación que
el programador debe diseñar y programar para poder anticipar al usuario y dirigirlo en
el uso de la Interfaz Gráfica de Usuario. Los métodos que el programador diseña se
rigen por los métodos contenidos en las clases de la biblioteca AWT de la versión
estándar de Java.
2.1.3. Manejo de Eventos con la Biblioteca AWT de la Versión
Estándar de Java
Cuando el usuario actúa sobre un componente, por ejemplo pulsando el ratón o la tecla
Enter, se crea un objeto Evento. El sistema manejador de eventos de la biblioteca AWT
pasa el Evento a través de un árbol de componentes, dando a cada componente una
oportunidad para reaccionar ante el evento antes de que el código dependiente de la
plataforma que implementan todos los componentes lo procese.
25
Cada manejador de eventos de un componente puede reaccionar ante un evento de
alguna de estas formas [21]:

Ignorando el evento y permitiendo que pase hacia arriba en el árbol de
componentes.

Mediante la modificación del objeto Evento antes de dejarlo subir por el árbol
de componentes.

Reaccionando de alguna otra forma ante el evento.

Interceptando el evento, evitando un procesamiento posterior.
Desde el punto de vista de un componente, el sistema de manejo de eventos del AWT
es como un sistema de filtrado de eventos. El código dependiente de la plataforma
genera un evento, pero los componentes tienen una oportunidad para modificar,
reaccionar o interceptar el evento antes de que el código dependiente dela plataforma
los procese por completo.
En la versión actual 1.6 del Paquete de Desarrollo de Java (JDK por sus siglas en
inglés), los eventos generados al manipular el puntero del ratón se envían a los
componentes después de que los haya procesado el código dependiente de la
plataforma. Por eso aunque los componentes pueden interceptar todos los eventos
generados por el teclado, generalmente no se pueden interceptar los eventos del ratón.
Aunque la biblioteca AWT define una amplia variedad de objetos evento, no ve ni
escucha todo lo que ocurre. De este modo, no todas las acciones del usuario en la IGU
se convierten en eventos. La biblioteca AWT sólo puede identificar eventos que están
relacionados código dependiente de la plataforma que hospeda a Java (DLL´s). Por
ejemplo, los movimientos del puntero sobre un campo de texto no generan algún objeto
evento.
26
Si se quiere acceder a una amplia colección de objetos eventos se necesitará
implementar una subclase de Lienzo, ya que la implementación dependiente de la
plataforma de la clase Lienzo reenvía todos los eventos.
Cuando un usuario genera un evento en la IGU, la AWT crea un objeto evento que
incluye la siguiente información [21]:

El tipo del evento -- por ejemplo, una pulsación de tecla o un click del ratón, o
un evento más abstracto como acción o iconificación de una ventana.

El objeto que fue el origen del evento. Por ejemplo, el objeto Botón
correspondiente al botón de la pantalla que pulsó el usuario, o el objeto Campo
de Texto en el que el usuario acaba de teclear algo.

Un campo indicando el momento en que ocurrió el evento. Por ejemplo, la
posición (x , y) donde ocurrió el evento. Esta posición es relativa al origen del
componente a cuyo manejador de eventos se pasó este evento.

La tecla que fue pulsada (para eventos de teclado). Por ejemplo, un argumento
arbitrario como lo es una cadena de texto mostrada en un componente y
asociada con el evento pulsar el teclado.

El estado de las teclas modificadoras, como Shift o Control, cuando ocurrió el
evento.
2.2.
Programación y desarrollo de Interfaces Gráficas de Usuario en
Java
2.2.1. Herramientas Widgets de la Biblioteca Swing
Los componentes gráficos que ofrece Java se encuentran en una biblioteca llamada
Swing, los componentes gráficos se pueden implementar dentro de los Applets, a estos
Applets se les llama Applets Swing. Existe una diferencia importante entre un Applet
no-Swing y un Swing, éste último debe descender de la clase JApplet, en vez de
hacerlo directamente de la clase Applet [10].
27
Se pueden ejecutar Applets Swing en cualquier navegador que tenga instalado el
conector de Java conocido como Java Plug-in. Otras opciones son:

Un navegador que sea compatible con el JDK 1.1 y que pueda encontrar las
clases de la biblioteca Swing.

Un navegador que sea compatible con el JDK 1.2. Actualmente, el único
navegador compatible con esta versión disponible es la utilidad Applet Viewer
proporcionada con el JDK 1.2.
Los componentes gráficos se utilizan para mostrar salidas pero algunos otros para
obtener entradas del usuario, en la figura 2.2.1.1 se muestran diferentes elementos
gráficos o Widgets de la biblioteca Swing de Java. En el caso de la figura 2.2.1.2 los
elementos gráficos que se aprecian son utilizados para obtener eventos de entrada
desde el usuario, los cuales serán manejados con la biblioteca de clases AWT de Java.
Área de Texto
Seleccionador de Archivos
Tabla
Árbol
Seleccionador de Colores
Figura 2.2.1.1.Pantallas editables de información formateada de la biblioteca Swing
28
El orden y uso de los elementos de la figura 2.2.1.1 depende de las necesidades del
usuario final, de los requisitos analizados durante el proceso de modelado de desarrollo
de la interfaz para que sea ergonómica que se le dé a la IGU.
En la figura 2.2.1.2 se muestran los elementos que pueden generar salidas y al mismo
tiempo ser editados por el usuario, se les considera como pantallas de información que
permiten una interacción entre el usuario y la interfaz.
Botones (button)Listas (combo box)
Listas (list)
Menús (menu)
Barras deslizantes(slider)
Texto (textfield)
Barra herramientas (tool bar)
Figura 2.2.1.2 Herramientas Widgets básicas de la biblioteca Swing que generan
entradas a la biblioteca AWT
29
2.2.2. Descripción del Lenguaje Java
Java está dividido en dos entidades: a) Un lenguaje de programación que es facilitado
por la bibliotecas del Java Development Kit (JDK) y b) Una plataforma que es
proporcionada por el paquete Java Runtime Environment (JRE), esto quiere decir que
se podrían construir sistemas operativos por completo con Java. En la figura 2.2.2.1 se
describe la estructura global de Java y se puede observar tanto el paquete JDK como el
JRE.
Figura 2.2.2.1. Estructura global de Java [9].
2.2.2.1. Java como Lenguaje de Programación
El lenguaje de programación Java es de nivel alto y tiene las siguientes características
[5]:

Simple

Multiprocesos

Con Arquitectura Neutral

Robusto

Orientado a Objetos

Dinámico
30

Portable

Distribuible

De Rendimiento Alto

Seguro
2.2.2.2. Java como una Plataforma
Una plataforma es el entorno de hardware o software en el que un programa se ejecuta.
Las plataformas de software más conocidas son Microsoft Windows, Linux, Solaris y
Mac OS. La mayoría de las plataformas se describen como una combinación del
sistema operativo y el hardware que soporta dicho sistema. La plataforma Java difiere
de las anteriores en que se ejecuta solo en la parte superior de otras plataformas
basadas en hardware.
La plataforma Java cuenta con su procesador, memoria RAM; los cuales son creados
virtualmente tomando prestados algunos de los recursos del sistema huésped. Una
desventaja de lo anterior es que los procesos que se ejecutan dentro de la plataforma
Java dependen de la cola de procesos del sistema operativo huésped.
La plataforma Java tiene dos componentes:

La Máquina Virtual de Java ó The Java Virtual Machine(JVM)

La Interfaz de Programación de Java ó The Java Application Programming
Interface (API)
La JVM es la base para la plataforma Java como se muestra en la figura 2.2.2.2.1 y ha
sido adaptada a varias plataformas
basadas en
hardware y la API es una gran
colección de componentes de software listos para usarse que proporcionan muchas
funciones útiles; se agrupan en las bibliotecas de clases e interfaces relacionadas, estas
31
bibliotecas se conocen como paquetes de Java.
Figura 2.2.2.2.1. Estructura de Java como una plataforma [5]
La API y la máquina virtual de Java están para aislar el programa desde el hardware
del Sistema operativo huésped, esto permite tener un control sobre los programas
creados en Java permitiendo brindar a los usuarios de las aplicaciones condiciones de
seguridad tanto para su sistema operativo como para el equipo de cómputo y datos
personales.
En un entorno independiente, la plataforma Java puede ser un poco más lenta que el
código nativo. Sin embargo, los avances en el compilador y las tecnologías de Máquina
Virtual proporcionan un rendimiento cercano al de código nativo sin poner en peligro
la portabilidad [5].
2.2.2.3. Prestaciones de la Tecnología Java
Debido a que el lenguaje de programación Java es un lenguaje de nivel alto tiene como
propósito general funcionar como una plataforma basada en software, por lo que todas
las implementaciones de la plataforma Java pueden componerse de las siguientes
características [5, 6]:

Herramientas de desarrollo: Las herramientas de desarrollo proporcionan lo
necesario para compilar, correr, monitorear, depurar y documentar las
aplicaciones. Algunas herramientas de desarrollo de aplicaciones son: Javac
compiler, el Java launcher, y el Javadoc documentation tool.
32

Interfaz de Aplicación de Programación (Application Programming Interface
API): La API proporciona un núcleo de funcionalidades del lenguaje de
programación Java. Dentro de este núcleo se ofrecen un sin fin de clases, las
cuales están siempre disponibles para emplearse en las aplicaciones. Estas
clases permiten diseñar cualquier forma básica de objetos para redes y
seguridad, para XML, para acceso a bases de datos y más.
El núcleo API es tan extenso como para desarrollar una aplicación la cual
ocupe todas las clases del núcleo. Además documentarlo o intentar mencionar
sus clases seria inconveniente por cuestiones de espacio por lo que para obtener
información detallada de las clases del núcleo API de Java es necesario
consultar la documentación de la API Java SE Development Kit 6 (JDKTM 6)
documentation.

Tecnologías de Desarrollo o Deployment Technologies: En Java existe una
tecnología de desarrollo llamada Paquete de Desarrollo de Java o Java
Development Kid (JDK), el Paquete de Desarrollo de Java es un software que
proporciona mecanismos de diseño estándar como el Java Web Start y el
software conector de Java (Java Plug-In) para el desarrollo de aplicaciones de
usuario final.

Kit de Herramientas de Interfaces de Usuario o User Interface Toolkits: En Java
existen dos clases
que proporcionan funcionalidades gráficas
a las
aplicaciones creadas las cuales son las bibliotecas Swing y Java 2D.
2.2.2.4. Proceso de Creación de Programas Informáticos en
Java
1) En el lenguaje de programación Java todo el código que formará parte del
programa informático primero es escrito en archivos de texto plano, guardados con
33
la terminación .Java, es decir se pueden escribir en un bloc de notas y al terminar
de escribir el código el archivo deberá guardarse con extensión de archivo .Java.
2) Los archivos creados de esta forma después son convertidos (compilados) en un
archivo que tiene como extensión .class mediante el compilador Javac. Aunque un
archivo .class no contiene código el cual sea nativo para el procesador, si contiene
bytecodes el cual es el código que entiende la Máquina Virtual de Java (Java VM
por sus siglas en ingles).
3) Después la herramienta de lanzamiento de Java corre la aplicación mediante una
instancia de la Máquina Virtual de Java como se puede observar en la figura
2.2.2.4.1.
4)
Figura 2.2.2.4.1. Una vista general del proceso de creación de Programas Informáticos
en Java [5].
Existen distintas Máquinas Virtuales de Java (JavaVM) y algunas como la
JavaHotSpotMáquina Virtual realizan pasos adicionales en la rutina del proceso de
lanzamiento para dar un aumento en el rendimiento de la aplicación.
Los archivos .class tienen la posibilidad de correr sobre Microsoft Windows, el sistema
operativo Solaris TM (Solaris OS), Linux, o Mac OS y esto tiene como resultado que
la Java VM sea compatible con varios Sistemas Operativos como se muestra en la
figura 2.2.2.4.2 [5].
34
Figura 2.2.2.4.2. Con la Java VM la misma aplicación es capaz de correr en múltiples
plataformas operativas [5].
2.2.3. Desarrollo de Applets
El Applet es también conocido como un subprograma de Java, el cual puede
incrustarse en un documento HTML; también conocido como página web, cuando un
navegador Web descarga una página web que contiene un Applet, este se descarga en
el navegador y comienza a ejecutarse. Esto permite crear programas que cualquier
usuario con acceso a la Web puede ejecutar con sólo cargar la página Web
correspondiente en el navegador web.
Un Applet es un programa que se puede ejecutar mediante líneas de comando y ser
visualizado con el programa herramienta del Paquete de Desarrollo de JavaSDK (por
sus siglas en inglés) appletviewer.exe. Appletviewer también es conocido como un
navegador mínimo, el cual solo sabe cómo interpretar Applets [10].
En Java existe una clase llamada Applet, la cual proporciona todo lo necesario para la
creación de Applets en la versión 1 de Java. Está contenida en el paquete Java.applet,
por tanto, siempre que sequiera desarrollar un appletse debe importar este paquete, así
como también el paquete Java.awt , Java.awt.event, y Javax.swing que contienen
todas las herramientas necesarias para desarrollar interfaces gráficas [11,12].
35
A partir de la versión J2SDK se usa la clase JApplet del paquete Javax.swing.para la
creación de Applets que contienen proyectos como pueden ser Interfaces Gráficas de
Usuario, Formularios, Aplicaciones Web, JavaBeans y JavaCards.
Los Applets tienen la ventaja de ejecutarse en Internet sobre el navegador en el equipo
del cliente, pero los diseñadores de Java les colocaron algunas restricciones para evitar
que estos dañen o inserten virus en las máquinas donde se ejecutan, entre ellas
están[11]:
a)
b)
No pueden leer o escribir en el sistema de archivos desde un navegador
Solo tienen acceso al servidor definido dentro del Applet en un programa que
use sockets.
c)
Impedimento para ejecutar programas en el cliente
d)
Impedimento para cargar programas nativos como las DLL para sistemas
operativos.
4.1.1.1. Construcción de Applets
Con la versión de Java 2 la estructura para crear un programa de tipo Applet
tiene la siguiente forma [12]:
importJavax.swing.JApplet;
importJavax.swing.SwingUtilities;
importJavax.swing.JLabel;
public class HelloWorld extends JApplet {
//Called when this applet is loaded into the browser.
public void init() {
//Execute a job on the event-dispatching thread; creating this
applet's GUI.
try {
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
JLabellbl = new JLabel("Hello World");
add(lbl);
}
});
} catch (Exception e) {
System.err.println("createGUI didn't complete successfully");
}
}
}
36
4.1.1.2. Ciclo de vida de un Applet
Comprender el ciclo de vida del Applet es sumamente importante ya que de esto
depende una buena implementación de la programación, un correcto uso de los
recursos y un aprovechamiento máximo de los métodos de clases usados para la
implementación.
Un Applet hereda sus propiedades y sus métodos de la clase JApplet del paquete
Javax existente en la biblioteca swing, cuenta con varios métodos que el usuario puede
sobre escribir para darle la funcionalidad requerida. Estos métodos se detallan en la
tabla 2.2 y siguen un ciclo de vida que se explica en el diagrama de la figura 2.2.3.2.1
[12].
En esta clase el método inicial para ejecutar un Applet es init cuando se omite se usa el
método start, si también se omite se usa el método paint, esto significa que no requiere
de un método main [13].
Tabla 2.2. Métodos que hereda un Applet desde la clase JApplet y su descripción.
Nombre del
Descripción del método
Método
init():
Es el primer método que se ejecuta al cargar el Applet y sólo se ejecuta una
vez. Se debe utilizar para inicializar las variables.
start():
Se ejecuta después del init(). Permite reinicializar un Applet después de que
se haya parado. El método start() se ejecuta cada vez que se muestra en
pantalla el documento HTML que contiene el Applet.
paint():
stop():
Se ejecuta cada vez que se debe volver a pintar la salida de un Applet.
Se ejecuta cuando el navegador abandona la página HTML que contiene el
Applet. Se utiliza para parar el Applet; para volverlo a iniciar se llama el
37
método start().
destroy():
Se ejecuta cuando el entorno determina que el Applet debe ser borrado
completamente de la memoria. El método stop() siempre se ejecuta antes que
el destroy.
Figura2.2.3.2.1.Muestra el ciclo de vida de un Applet [13].
38
Capítulo 3. Diseño de la Interfaz Gráfica de Usuario
3.1. Ingeniería de Software
El término Software fue usado por primera vez por John W. Tukeyen 1957, lo
consideró como la parte lógica de una computadora porque permite el manejo de los
recursos con la que esta cuenta y la ejecución de tareas específicas también
denominadas subprogramas.
De forma general el software se clasifica en [29]:
1. Software de sistemas: Son aquellos programas que permiten la administración de la
parte física o los recursos de la computadora y que permiten la interacción entre el
usuario y los componentes hardware del ordenador; se clasifican el Sistemas
Operativos Mono usuarios y Multiusuario.
2. Software de aplicación: Son aquellos programas que ayudan a realizar tareas
específicas como edición de textos, imágenes, cálculos, entre otros, también
conocidos como aplicaciones.
De una forma más específica, el software se clasifica en tres gruposde acuerdo con el
tipo de trabajo que el usuario puede realizar con él:
1. Software de sistemas
En este grupo se encuentran los programas básicos que controlan a la computadora,
también llamados sistema operativo, el cual tiene tres grandes funciones: a) coordina y
manipula el hardware del ordenador, como la memoria y las unidades de disco; b)
organiza los archivos en diversos dispositivos de almacenamiento, como memorias y
discos externos y c) gestiona los errores de hardware y del mismo software, como
errores de arranque del sistema operativo y de cierre de sesión de usuario.
Los sistemas operativos pueden ser de tarea única o multitarea,los sistemas operativos
de tarea única son los más primitivos y solo pueden manejar un proceso en cada
39
momento; mientras que los sistema operativos multitarea pueden realizar varias
acciones a la vez como mandar a imprimir y editar en forma simultánea otro
documento.
2. Software de aplicación
Es el que permite a los usuarios llevar a cabo una o varias tareas específicas, en
cualquier campo de actividad susceptible de ser automatizado o asistido, su uso tiene
especial énfasis en los negocios y en la educación. En su diseño se utiliza el software
de desarrollo.
3.
Software de desarrollo
En este grupo se encuentra cualquier lenguaje artificial o programa de cómputo que se
puede utilizar para definir una secuencia de instrucciones que serán procesadas por un
compilador que tiene la capacidad de traducir las instrucciones de un lenguaje a un
código que comprende la computadora.
Los compiladores junto con los editores de texto ayudan a los programadores y
diseñadores de software en la escritura, compilación y prueba de programas
informáticos que se desarrollan con diferentes lenguajes de programación como C++,
Java, C#, Visual Basic, HTML y con algunos software de desarrollo son NetBeans,
VisualStudio, Net y DreamWeaver [29].
Como se mencionó en el tema 2.1 las Interfaces Gráficas de Usuario (IGU) son
programas de cómputo que gestionan la interacción con el usuario basándose en
relaciones visuales como íconos, menús o un puntero, por lo que de acuerdo a la
clasificación de software mencionada en párrafos anteriores a la IGU se le considera
como un software de aplicación y para su diseño se deben tomar en cuenta los
lineamientos de la Ingeniería de Software.
40
La Ingeniería de Software (IS) es una actividad de modelado de sistemas de software
que permite la solución de problemas que requieren el desarrollo de un software; una
vez identificado el problema se analizan los detalles relevantes y se ignoran todos los
demás. En la actividad de modelado se recopilan datos que se organizan en
información y se traducen en adquisición de conocimiento; que permitirá la toma de
decisiones y la justificación de las razones que llevan a la misma [31].
El modelado de un sistema de software consta de distintos tipos de diagramas que se
construyen siguiendo el Lenguaje Unificado de Modelado (LUM) y una serie de pasos
que permiten la construcción de los mismos.
De acuerdo con la Ingeniería de Software se aseguran la calidad del Sistema de
Software (SS) a través del uso de herramientas de diseño como el LUM. Un SS no
necesariamente debe incluir todos los diagramas de la nomenclatura.
3.1.1. Diagramas de Lenguaje Unificado de Modelado
La Ingeniería de Software es una actividad de modelado de Sistemas de Software, su
concepción es un proceso ordenado y en el que intervienen distintos actores o personas
con papeles específicos: el cliente, el analista de sistemas y el o los programadores.
En las industrias de la construcción, la mecánica o la aeroespacial es esencial el uso de
planos durante la etapa de diseño para luego llevar a producción lo que se ha diseñado,
lo que LUM proporciona son las herramientas necesarias para poder obtener los
diagramas LUM de un Sistema de Software (SS), los cuales equivalen a los planos que
se utilizan en las industrias antes mencionadas.
Dado que el desarrollo de SS es una actividad humana existen muchas posibilidades de
cometer errores en el proceso de creación o Proceso de Desarrollo del Software, los
diagramas LUM permiten dar a conocer de forma precisa y ordenada los lineamientos
bajo los que se deberá diseñar el SS que permitirán conseguir un software de calidad,
41
que sea duradero, fácil de mantener y flexible al cambio por actualización. Además
LUM permite desarrollar el código del software de forma rápida, eficiente y con un
enfoque apropiado.
El LUM está compuesto por distintos elementos gráficos que se combinan para
construir diagramas. Debido a que es un lenguaje, trabaja con una sintaxis que le
permite combinar los elementos gráficos y llegar a la creación de los diagramas, la
finalidad de los diagramas es presentar diversas perspectivas de un sistema a las cuales
se les conoce como Modelo del Sistema de Software (MSS).
En la Ingeniería de Software existen diferentes tipos de diagramas LUM y el desarrollo
de una aplicación se recomienda la construcción de los siguientes [30]:

Diagrama de clases: las clases son elementos de la programación orientada a
objetos que representan una categoría o un grupo de cosas, en ellas se definen
atributos (propiedades) y acciones de la categoría que son representadas por la
clase.
Es posible considerar la clase Lavadora, una lavadora tiene atributos y
acciones, en la figura 3.1.1 se especifica cómo se puede representar la clase
Lavadora con sus atributos y acciones; en donde los atributos son: “marca”,
“modelo”, “número de serie” y “capacidad” y las acciones son: “agregar ropa”,
“agregar detergente” y “sacar ropa”.
Figura 3.1.1.Diagrama LUM de la Clase Lavadora
42
Las clases permiten que los Sistemas de Software simulen algún aspecto del
mundo real. Décadas de experiencia sugieren que es más sencillo desarrollar
SS que simulen aspectos del mundo cuando se representa a las cosas reales con
clases, porque es más fácil trabajar con ellas para los desarrolladores y
programadores de software.

Diagrama de objetos: los objetos son la instancia de una clase, una instancia
es una entidad que tiene valores específicos de los atributos y acciones de una
clase. Un objeto puede estar formado por otros objetos y en un Sistema de
Software los diagramas LUM modelan objetos de la realidad. La figura 3.1.2
muestra el diagrama LUM de un objeto llamado Mi Lavadora, el símbolo es un
rectángulo como el de una clase pero en este caso el nombre se encuentra
subrayado. El nombre de la instancia especifica se encuentra del lado izquierdo
de los dos puntos (:)y a la derecha, el nombre de la clase.
Figura 3.1.2. Diagrama LUM de un Objeto

Diagrama de casos de uso: un caso de uso es una descripción de las acciones
de un sistema desde el punto de vista del usuario final y son de gran
importancia cuando se requiere que el sistema pueda ser utilizado por usuarios
que no son expertos en computación. La figura 3.1.3 es el diagrama LUM de
casos de uso en donde la acción “Lavar ropa” que se encuentra en la clase
Lavadora es ejecutada por un usuario de la lavadora.
43
Figura 3.1.3. Diagrama LUM de Caso de Uso

Diagrama de estados: en un instante de tiempo un objeto puede encontrarse
en un estado particular. En la figura 3.1.4 se captura la realidad de los posibles
estados que tiene el objeto lavadora, los estados también pueden ser llamados
fases de un objeto. El símbolo que se encuentra en la parte superior de la figura
representa el estado inicial y el de la parte inferior el estado final.
Figura 3.1.4. Diagrama LUM de Estados
44

Diagrama de secuencias: los diagramas de clases y los de objeto de las
figuras 3.1.1 y 3.1.2 aparentan ser estáticos pero en un Sistema de Software
los objetos se encuentran en constante interacción con otras clases y en del
tiempo. El diagrama de secuencias muestra la relación de los estados de los
objetos en el tiempo.
En una lavadora se encuentran los componentes manguera de agua, tambor y
sistema de drenaje, los cuales pueden ser representados como objetos en un
diagrama LUM. Cuando un usuario oprime el botón lavar ropa la
programación del Sistema de Software de la lavadora invoca el caso de uso
Lavar ropa, con lo que se da por hecho que se han completado las operaciones
agregar ropa, agregar detergente y activar. Un ciclo de lavado esta se puede
describir mediante las siguientes secuencias:
1. El agua empezará a llenar el tambor a través de una manguera.
2. El tambor permanecerá inactivo durante cinco minutos.
3. La manguera dejará de abastecer agua.
4. El tambor girará de un lado a otro durante quince minutos.
5. El agua jabonosa saldrá por el drenaje
6. Comenzará de nuevo el abastecimiento de agua.
7. El tambor centrifugará girando.
8. El abastecimiento de agua se detendrá.
9. El agua del enjuague saldrá por el drenaje
10. El tambor girará en una sola dirección y se incrementara su velocidad
por cinco minutos.
11. El tambor dejará de girar y el proceso de lavado habrá finalizado.
Las secuencias anteriores se representan como un diagrama de secuencias en la
figura 3.1.5.
45
Figura 3.1.5. Diagrama LUM de Secuencias.
3.1.2. Proceso de Desarrollo del Software
La construcción de un SS que dará solución a un problema sigue un proceso llamado
Proceso de Desarrollo de Software (PDS), en el proceso de desarrollo se analiza el
problema y se diseña cuidadosamente la solución mediante la planeación de distintas
actividades y la relación de los productos de las mismas.
Con el uso de un proceso de desarrollo adecuado la construcción de sistemas software
se vuelve panificable y repetible, además de aumentarla probabilidad de obtener un
sistema con calidad. El PDS incluye cuatro etapas [17]:
46
ETAPA 1.- Identificación:
a) La identificación de los requerimientos del usuario
b) La identificación de las tareas del usuario
c) La identificación del ambiente de desarrollo de la Interfaz
ETAPA 2.- Análisis y creación de los escenarios para el usuario:
Definición de un conjunto de objetos y acciones de la interfaz.
ETAPA 3.- Creación de la plantilla para el diseño gráfico:
a) Definición de la colocación de los íconos
b) Definición de los textos descriptivos
c) Especificación de los títulos de las ventanas
d) Especificación de aspectos mayores y menores del menú, estos últimos
corresponden a opciones con un grado más alto de especificidad y
utilidad que se brindan al usuario.
ETAPA 4.- Desarrollo del prototipo:
Programación de la interfaz, en alguno de los siguientes Entornos de
Desarrollo Integrado (EDI) para Java: Sun One Studio, Eclipse,
NetBeans ,AnyJ, NetBeans, Sun Java Studio Creator, Borland JBuilder,
IBM Web Sphere Studio Application Developer.
3.2. Modelo Semi-formal para el Desarrollo de Software Educativo
(MSDSE)
La Interfaz Gráfica de Usuario que se desarrollará es un software educativo y los
lineamientos de la Ingeniería de Software no precisan una metodología para este tipo
47
de soluciones de software, por lo que se considera conveniente retomar elementos de la
propuesta metodológica planteada por Canales, que se muestra en la figura 3.1.
ETAPA 1.Arquitectura de
sistemas tecnológicos
para el aprendizaje
•a)Arquitectura
•b)Ciclo de vida doble
•c)Técnicas cognitivas
ETAPA 2.- Modelado
y desarrollo de la
herramienta
•a)Análisis
•b)Diseño o modelado
•c)Desarrollo
ETAPA 3.- Fase
operativa
•a)Instalación y
puesta en
funcionamiento
•b)Pruebas de
campo
MSDSE
Figura 3.1. Muestra de forma general la metodología propuesta por Canales [22].
Canales [22] propone un modelo de diseño instruccional, un modelo de desarrollo de
software y un sistema de desarrollo de eCursos, en su propuesta incluye tres etapas
para el Proceso de Desarrollo del Software que a continuación se describen:
ETAPA 1.- Arquitectura de sistemas tecnológicos para el aprendizaje:
a) Se refiere al diseño de una arquitectura para regular el desarrollo de sistemas de
Educación Basada en Web (Web-Based Education WBE) adaptables e inteligentes,
que responda a las necesidades tecnológicas y pedagógicas, se basa en el estándar
IEEE 1484 LTSA (Learning Technology Systems Architecture) y consta de cinco
capas que cubren el entorno del WBE: (1) Interacciones del ambiente y el
estudiante; (2) Características de diseño relacionadas con el estudiante; (3)
Componentes del sistema; (4) Prioridades y perspectivas de los participantes; y (5)
Codificación, APIs y protocolos.
48
b) Ciclo de vida doble que incorpora el modelo de diseño instruccional al modelo de
desarrollo de software para incluir actividades de análisis de dominio y desarrollo
de Componentes Reutilizables Orientados a Objetos (CROO), que son productos
para los grupos de aplicaciones. La integración de estas nuevas actividades en el
desarrollo de software educativo se facilitada si se considera que en el desarrollo de
cualquier asignatura orientado a la enseñanza, incluido el software educativo, ha de
llevarse a cabo un proceso de diseño instruccional. Este proceso implica un análisis
y estructuración del conocimiento que es objeto de la enseñanza.
c) Técnicas cognitivas, incluyen un análisis de los Mapas Conceptuales que pueden
aplicarse para el aprendizaje mediante un sistema de WBE. La finalidad de las
técnicas cognitivas es que el software colabore en la adquisición de conocimientos.
d) Análisis y modelado de medios para eCursos para el WBE consiste en un análisis y
modelado de eCursos para WBE,
los formatos de los medios utilizados
recomendados son: jpg (imágenes), mp3 (sonido), swf (animaciones) y flv
(video),se recomiendan estos formatos debido a que en México no se cuenta con un
gran ancho de banda.
ETAPA 2.- Modelado y desarrollo de la herramienta
a) Análisis. En el análisis de la herramienta se incluyen: estándares internacionales,
XML, conexión al servidor, composición dinámica y ancho de banda.
b) Diseño o modelado. Con base en el análisis de la herramienta se modela la solución
y se elaboran los diagramas de casos de uso, secuencia, clases, componentes,
estados, colaboración de la misma, con los atributos y funcionalidades requeridas
para la herramienta.
49
c) Desarrollo. Consiste en seleccionar una plataforma tecnológica (JavaBeans o
Microsoft.NET) para implementar la herramienta, buscando la compatibilidad entre
las diferentes tecnologías involucradas, con lo que se logra la interoperabilidad
entre la herramienta y el Servidor.
ETAPA 3.- Fase operativa
a) Instalación y puesta en funcionamiento. En esta etapa el autor describe que el
sistema será instalado y puesto en funcionamiento en un servidor que reúna las
condiciones básicas para su buen funcionamiento, seguridad, accesibilidad y
administración.
b) Pruebas en campo. Recomienda realizar pruebas para comprobar el buen
funcionamiento dela herramienta en el servidor y su acceso por Internet.
3.3.Diseño de la Interfaz Gráfica de Usuario como Applets de
Java(DIGUAJ)
A continuación se presenta la metodología propuesta para el diseño de la interfaz:
ETAPA 1.- Arquitectura del software
En el presente estudio se propuso el uso de dos arquitecturas, debido a que se
pretende que la IGU sea un recurso disponible en web. La arquitectura que se
presenta en el inciso “a” es la arquitectura que se utilizara para hacer que la IGU
esté disponible en web, para hacer disponible el recurso en web se usara la
tecnología Paginas de Servidor de Java (PSJ). La arquitectura que se presenta en el
inciso “b” es la arquitectura que se utilizara para crear los componentes y las
operaciones de la propia IGU.
50
a) Arquitectura Webapp: de los elementos de la Ingeniería de Software se retoma
la arquitectura Controlador Vista Modelo (CVM) de la cual se puede observar
un diagrama en la figura 3.2 [26].
Figura 3.2. Arquitectura Controlador Vista Modelo utilizado para hacer que la IGU se
encuentre disponible desde web [26].
b) Arquitectura orientada a objetos: De la metodología de Canales se retoma la
arquitectura de creación de Componentes Reutilizables Orientados a Objetos
[22] en donde la Ingeniería de Software indica que los componentes del sistema
incluyen datos y dentro de los componentes deben existir operaciones que
deben aplicarse para manipular los componentes del sistema y acceder a los
datos [17].
ETAPA 2.- Modelo de Desarrollo del Software
Se retomó de los lineamientos de Ingeniería de Software el análisis de
requerimientos de usuario y de la metodología de Canales [22] se retomó la etapa
de diseño o modelado y la de desarrollo:
51
a) Análisis de Requerimientos de usuario. En el análisis de requerimientos se
incluyen las siguientes preguntas [27]:

¿Quién usará la solución?

¿Cuál será el beneficio de la solución?

¿Qué problema resolverá la solución?

¿Cuál sería una buena salida Generada por la solución exitosa?
b) Diseño o modelado. Con base en el análisis de la herramienta es necesario
modelar la solución y realizar los diagramas de casos de uso, secuencia, clases,
componentes, estados, colaboración de la misma, con los atributos y
funcionalidades requeridas para la herramienta.
c) Desarrollo. Propone utilizar una plataforma tecnológica JavaBeans para
implementar la herramienta, buscando la compatibilidad entre las diferentes
tecnologías involucradas, con lo que se logra la interoperabilidad entre la
herramienta y el Servidor.
ETAPA 3.- Fase de Operación
a) Selección del servidor. Es necesario contar con la prestación de un servidor en
donde pueda instalarse la IGU como Applet de Java.
b) Instalación y puesta en funcionamiento. En esta etapa la solución será instalada
y puesta en funcionamiento en un servidor que reúna las condiciones básicas
para su buen funcionamiento, seguridad, accesibilidad y administración.
52
Capítulo4. Aplicación de la metodología (DIGUAJ)
4.1. Arquitectura del Software para la Interfaz Gráfica de Usuario
En el presente estudio se propuso el uso de dos arquitecturas, la primera es la
Arquitectura CVM que se mostró en la figura 3.2. La segunda es la Arquitectura
Orientada a Objetos para la que no existe un diagrama debido a que cada aplicación
orientada a objetos es diferente. En el DIGUAJ se elaboró el diagrama LUM de la
Arquitectura Orientada a Objetos y se muestra en la figura 4.1. Esta arquitectura consta
de seis paquetes de fuentes en donde para cada paquete existe un diagrama LUM.
Figura 4.1 Arquitectura Orientada a Objetos.
53
4.2. Modelo de Desarrollo de la Interfaz Gráfica de Usuario
a) Análisis de Requerimientos de usuario. En el análisis de requerimientos se
contestaron las preguntas planteadas por Gause D. y Weunberg [27]:

¿Quién usará la solución?
La solución de software será utilizada por alumnos que cursan la asignatura
de Teoría del Control II

¿Cuál será el beneficio de la solución?
El beneficio que la solución de software ofrece es propiciar una reflexión
en el estudiante para el análisis del diseño de compensadores PD mediante
la relación que existe entre la respuesta del sistema, el Lugar Geométrico
de las Raíces y la solución numérica del problema de diseño.

¿Qué problema resolverá la solución?
El problema que se pretende resolver es que en el salón de clases no se
cuenta con los recursos gráficos interactivos como los que proporciona una
computadora, además de que el tiempo es insuficiente para analizar una
gran variedad de casos durante una sesión.

¿Cuál sería una buena salida generada por la solución exitosa?
Una salida de la solución del software seria presentar en forma simultánea
la solución numérica, la gráfica del LGR y la respuesta del sistema en el
tiempo.
b) Diseño de la Interfaz Gráfica de Usuario.
El diseño de la IGU consta de una serie de diagramas de LUM. En la figura 4.2 se
muestra el diagrama de caso de uso en donde un usuario de la IGU proporciona a la
interfaz gráfica una función de transferencia de un sistema en lazo abierto.
En la figura 4.1 se mostró la arquitectura y en la figura 4.3 se describe a través de un
diagrama de clase el paquete Datos que contiene la clase Proporciona_Datos, la cual
54
se encarga de suministrar los métodos que permiten que el usuario ingrese los datos
una función de transferencia.
Figura 4.2. Diagrama de caso de uso para evaluar una función de transferencia, es un
caso del modelo de desarrollo del software.
55
Figura4.3. Definición del modelo de la claseProporciona_Datos del Paquete Datos.
De acuerdo a la figura 4.2 el usuario ingresa los datos a la IGU, una vez realizada esta
acción, los datos son enviados a la clase CompensadorPropuesto del paquete
Datos.Calculos en donde se realiza el cálculo numérico de la solución de
Compensadores PD. Lo anterior se puede observar en la figura 4.4.
En la figura 4.5 se puede observar el diagrama LUM de la clase Ajustes del Paquete
Datos.Calculos, que hereda operaciones a la clase CompensadorPropuesto del paquete
Datos.Calculos. Esta clase permite calcular los valores de la frecuencia natural no
amortiguada del sistema (
), la frecuencia natural amortiguada (
) y el factor de
amortiguamiento ( ).
Cuando se han calculado la frecuencia natural no amortiguada del sistema (
frecuencia natural amortiguada (
), la
) y el factor de amortiguamiento ( ), la clase
CompensadorPropuesto del Paquete Datos.Calculos, que hereda operaciones de la
clase Ajustes del paquete Datos.Calculos, calcula los ángulos que permiten posicionar
los polos propuestos en el LGR. La relación de herencia que existe entre las clases
CompensadorPropuesto y Ajustes se observa en la figura 4.6.
56
Para mostrar los resultados del método analítico al usuario se utiliza la clase
MuestraResultados del Paquete Resultados, que hereda operaciones de la clase
CompensadorPropuesto con la finalidad de disminuir el tiempo de procesamiento del
cálculo como se puede observar en la figura 4.7.
Finalmente en la figura 4.8 se puede observar la clase Frame_CompensadorPD del
Paquete MenuCompensadorPD, con esta clase se genera la instancia que finalmente
construye
la
IGU.
Esta
clase
está
compuesta
por
los
objetos
Menu:Frame_CompensadorPD, el area de texto JTextArea:Frame_CompensadorPD y
el objeto FrameGraficadelLGR:LGR que asu vez contiene un objeto JPanel en cual se
realiza el dibujo del LGR.
Figura 4.4. Definición del modelo de la claseEntrega_Datos del Paquete Datos, que
hereda operaciones de la clase CompensadorPropuesto del paquete Datos.Calculos.
57
Figura 4.5. Definición del modelo de la clase Ajustes del Paquete Datos.Calculos, que
hereda operaciones a la clase CompensadorPropuesto del paquete Datos.Calculos.
58
Figura4.6. Definición del modelo de la clase CompensadorPropuesto del Paquete
Datos.Calculos, que hereda operaciones de la clase Ajustes del paquete Datos.Calculos.
Figura 4.7. Definición del modelo de la claseMuestraResultados del Paquete
Resultados, que hereda operaciones de la clase CompensadorPropuesto que hereda
operaciones de la clase Ajustes del paquete Datos.Calculos.
59
Figura4.8. Definición del modelo de la claseFrame_CompensadorPD del Paquete
MenuCompensadorPD.
c) Desarrollo.
La plataforma de desarrollo gráfico de JavaBeans llamada Entorno de Desarrollo
Integrado (EDI) NetBeans. Es la plataforma que se eligió para el desarrollo debido a
las prestaciones que brinda para el desarrollo de aplicaciones con Java, además de ser
de código abierto y gratuito para uso tanto comercial como no comercial[25].
En la clasificación de software se ha mencionado que el software de desarrollo es
cualquier lenguaje artificial o programa de cómputo que se puede utilizar para definir
una secuencia de instrucciones, estas últimas serán procesadas por un compilador que
tiene la capacidad de traducirlas de un lenguaje a un código que comprende la
computadora. El EDI NetBeans se considera un software de este tipo, la figura 4.9
muestra la interfaz del mismo.
60
Figura 4.9. Interfaz de Usuario del EDI NetBeans.
El EDI NetBeans permite la organización de las instrucciones en distintos lenguajes de
programación como Java, C, C++, PHP, HTML entre otros. Aplicando la arquitectura
de la IGU que fue mostrada en la figura 4.1en el EDI NetBeansse presenta el resultado
que muestra el administrador de proyectos en la figura 4.10.
En la figura 4.1 se puedo observar que el nombre de la arquitectura de software es
CompensadorPD y como se puede observar en la figura 4.10 el nombre de proyecto
que se asignó en el EDI fue CompensadorPD. La arquitectura está contenida en el
Paquete de Fuentes como se puede observar en la figura 4.10.
El EDI NetBeans permite desarrollar la IGU de una forma sencilla mediante el uso de
paletas que contienen los elementos swing y awt de Java, los elementos solo deben
arrastrarse a un área de diseño, para activar esta función se debe de crear una clase del
tipo Formulario JFrame haciendo clic derecho sobre el paquete de la arquitectura que
contendrá la IGU, en este caso es el paquete MenuCompensadorPD como se muestra
en la figura 4.11.
61
De
acuerdo
con
la
figura
Menú:Frame_CompensadorPD,
el
4.8
la
cual
es
IGU
una
contiene
instancia
un
de
Objeto
la
clase
Frame_CompensadorPD y es el nombre que recibe la misma, como se observa en la
figura 4.12.
Figura 4.10. Arquitectura de la IGU desarrollada en el EDI NetBeans
Figura 4.11. Activación de creación rápida de una IGU en el EDI NetBeans
62
Figura 4.12. Asignación del nombre a la clase del tipo JFrame
Paleta de
Componentes swings
Área de Diseño
Paleta de
Componentes
awt
Figura 4.13. Área de diseño y paletas de componentes swing y awt.
63
Figura 4.14. Diseño Previo de la IGU
4.3. Fase de Operación
En esta fase se continuó con el uso del EDI NetBeans porque es versátil y permite el
desarrollo de código en diferentes lenguajes y como se mencionó se requiere
desarrollar código en JSP para lanzar la IGU como Applet de Java.
Las aplicaciones en lenguaje Java requieren de portabilidad para poder cargarlas en un
servidor, la generación de la portabilidad consta de la creación de un paquete tipo jar y
la generación de un archivo tipo jsp. Para crear el paquete jar se hace clic derecho
sobre el proyecto y se selecciona la opción Limpiar y Construir como se muestra en la
figura 4.14a. Cuando el proceso de creación del paquete jar es correcto, en el visor de
archivos del NetBeans se observa este paquete como se muestra en la figura 4.15.
64
Figura 4.14a. Creación del paquete tipo jar.
Figura 4.15. Paquete tipo jar desde la Vista de Archivos
Haciendo clic derecho sobre el ícono del archivo se accede a la opción propiedades, en
donde se observa el tamaño del archivo como se muestra en la figura 4.16. Es
necesario conocer el tamaño del archivo para definir la capacidad del servidor que
requerirá la aplicación.
Para dar portabilidad a la IGU se crea un proyecto web en el NetBeans, en este
proyecto se desarrollara la secuencia de código necesaria para que el paquete tipo jar se
ejecute desde internet como un Applet de Java. En la figura 4.17 se presenta la
creación del proyecto web después de seleccionar la opción proyecto nuevo del menú
Archivo.
65
Figura 4.16. Propiedades del paquete tipo jar.
Figura 4.17. Comienzo de creación de proyecto web en el EDI NetBeans
66
Al seleccionar el tipo de proyecto, que en este caso es de la categoría Java Web, tipo
Web Application como se observó en la figura 4.17, se selecciona el botón siguiente
para darle nombre al proyecto como se muestra en la figura 4.18, hasta este momento
se da por finalizado el proceso de portabilidad se selecciona el servidor.
Figura 4.18. Asignación del nombre al proyecto web.
a) Selección del Servidor.
Para el servicio web se selecciona un software de servidor. En la figura 4.19 el EDI
NetBeans demanda la selección de un software: Apache Tomcat o Glass Fish y la
versión de JavaEE que es compatible con el software del servidor. Después de la
selección se pulsa en Terminar para continuar con la creación del proyecto web.
Al dar clic en el botón Terminar que se mostró en la figura 4.19 el EDI NetBeans
muestra una página index.jsp como se observa en la figura 4.20 que será modificada
67
para invocar el paquete tipo jar, reemplazando las siguientes líneas 11 a 19, por el
siguiente código:
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Bienvenido a la IGU de Teoría de Control II como Applet de Java!</h1>
<center>
<appletcode="MenuCompensadorPD.Frame_CompensadorPD"
archive="CompensadorPD.jar"
width="900" height="590" />
</center></body></html>
La carga de la IGU como Applet de Java se lleva a cabo desde la página index.jsp.
Versión de JavaEE
compatible
Selección del
software de
servidor
Botón Terminar
Figura 4.19. Selección del software de servidor y de la versión de Java EE.
68
Figura 4.20. Página index.jsp
Se pulsa clic derecho sobre el proyecto web y se selecciona la opción propiedades, para
acceder al botón AddProject que vinculara el proyecto web con el proyecto de la IGU,
como se observa en la figura 4.21.
Nombre del proyecto
de la IGU vinculado al
proyecto web
Botón
AddProject
Botón
Aceptar
Figura 4.21. Vinculación de la IGU con el Proyecto web en NetBeans.
69
Durante las pruebas de la aplicación como web Application es necesario contar con el
cero por ciento de errores de código de programación de la Interfaz, de no ser así, el
EDI NetBeans no permite la ejecución de la página index.jsp en el explorador web.
4.4. Ejecución de la Aplicación
Al ejecutar el Applet se muestra la IGU de la figura 4.22, que incluye los objetos
descritos anteriormente en la figura 4.8; Menu:Frame_CompensadorPD, área de texto
JTextArea:Frame_CompensadorPD y el objeto FrameGraficadelLGR:LGR que a su
vez contiene un objeto JPanel en cual se realiza el dibujo del LGR.
Menu:Frame_CompensadorPD
Boton Graficar el
LGR que lanza el
Jpanel en donde
se dibuja el LGR
Área de texto en donde se
muestra el método analítico
Figura 4.22. Objetos de la figura 4.8 presentados en la IGU
Al hacer clic sobre el menú aplicaciones aparece una opción que permite ingresar datos
de una función de transferencia de la forma
( )
(
)
(figura 4.23) que se encuentra
70
en lazo abierto, en donde
( ) es una constante y b es un polo. La figura 4.24 muestra
la ventana en que se solicita al usuario que ingrese el valor del polo.
Figura 4.23. Muestra la opción de ingresar datos a la IGU
Figura 4.24.La IGU pide el valor del polo
71
Un ejemplo para mostrar la ejecución de la IGU consiste en solicitar un compensador
PD para la función de transferencia en lazo abierto
si se requiere que el
sistema en lazo cerrado cumpla con tiempo pico de 2 segundos y un máximo sobreimpulso de 5%.
En el apartado 1.1.2 del Capítulo 1, se describió como se obtiene la función de
transferencia de un sistema en lazo cerrado y que el método del LGR permite observar
el comportamiento del sistema en lazo cerrado cuando la función de transferencia a
analizar se encuentra en lazo abierto como es el caso de este ejemplo. En la figura 4.25
se puede observar la ventana que aparece para introducir los datos del problema.
Figura 4.25. Selección de la forma de Función de Transferencia que se desea introducir
a la IGU
72
En la figura 4.26 se solicita el valor del polo, de acuerdo a los datos dela FT el polo es
igual a 12.
Figura 4.26.Ingreso de un valor de polo
En la figura 4.27 la IGU solicita el siguiente valor; el máximo sobre-impulso.
Figura 4.27.Ingreso del valor del máximo sobre impulso
73
Posteriormente se solicita el tiempo pico y el coeficiente del numerador, como se
muestra en las figuras 4.28 y 4.29
Figura 4.28. Ingreso del valor del tiempo pico
Figura 4.29.Ingreso del coeficiente del numerador
74
En la introducción se mencionó que el conocimiento del Método del Lugar Geométrico
de las Raíces (LGR) y Compensación de Sistemas de Control significa, más que llegar
a la solución de problemas de diseño de compensadores en forma numérica, se trata de
entender los procedimientos matemáticos implícitos y la relación que existe entre las
soluciones numéricas, los recursos gráficos y el método analítico.
En la sección 1.1.2 se explicó con mayor detalle que una representación gráfica puede
ser de gran utilidad para entender cómo contribuye cada polo o cero en lazo abierto, a
las posiciones de los polos en lazo cerrado, y la forma en que los polos y los ceros en
lazo abierto se deben modificar para que la respuesta del sistema cumpla con un
comportamiento específico.
En este sentido la IGU brinda la posibilidad al estudiante de reflexionar en el método
analítico que se debe realizar para determinar la solución numérica del compensador
PD, como se muestra en la figura 4.30. También brinda un recurso gráfico para
observar el LGR cuando el usuario de la IGU haga clic en botón “Graficar el LGR”
como se observa en la figura 4.31.
Figura 4.30.Metodo de solución analítica del compensador PD
75
Figura 4.31. Solución Analítica del Compensador PD, Gráfica del LGR y los cálculos
realizados en el método analítico.
El análisis del método analítico y su relación con el LGR contribuye para una mejor
comprensión del diseño de compensadores Proporcional Derivativo (PD) en la
asignatura de Teoría del Control II.
El modelo de Software que se explicó en el apartado 4.2 del capítulo 4 es capaz de
ayudar a otros desarrolladores de software a generar un modelo de software flexible y
ajustable a cualquier asignatura que para su aprendizaje haga uso de recursos gráficos.
Debido a que cada asignatura tiene contenidos distintos y que en ocasiones no pueden
ser adaptados con facilidad, los que sí pueden ser adaptados deben cubrir
características como el uso de objetos gráficos utilizados en el aula y que por su
naturaleza se pueden adaptar con la finalidad de convertirse en una solución de
software educativo.
76
Conclusiones
.

El objetivo de este trabajo fue diseñar una Interfaz Gráfica de Usuario (IGU)
utilizando el lenguaje de programación Java como apoyo para el aprendizaje del
diseño de compensadores Proporcional Derivativo (PD) en la asignatura de Teoría
del Control II.

Se considera que un apoyo para el aprendizaje de este tema se encuentra en el
manejo simultáneo de una representación gráfica, el desarrollo matemático y la
teoría de control como se explicó en el primer capítulo en el apartado del LGR, lo
que se logró mediante una programación en Java, al desarrollar la Interfaz Gráfica
de Usuario que incluye estos elementos.

Durante el desarrollo de esta tesis se encontraron limitaciones de tipo
administrativo para el uso de los recursos informáticos con los que cuenta el
Instituto Politécnico Nacional, por lo que la portabilidad de la IGU la convierte en
una solución para el docente, ante las limitaciones en la gestión de los recursos
tecnológicos.

Se justificó la pertinencia de utilizar el lenguaje de programación Java para el
diseño de la IGU, tomando en consideración las ventajas que este ofrece, en
particular La portabilidad que facilita que cualquier usuario pueda ejecutar el
programa en cualquier lugar y desplaza la problemática de accesibilidad al software
debida a la limitación de los recursos tecnológicos con los que disponen las
instituciones de educación en general y los estudiantes en particular.

Es importante enfatizar que la interfaz gráfica se convierte en un recurso didáctico
al poder ser usada como un apoyo para el profesor de la asignatura, para que los
alumnos puedan reflexionar más sobre el tema una vez que el profesor lo haya
impartido. También puede ser utilizada por el estudiante como un recurso de
estudio en el hogar debido a que el código de programación creado con Java y
77
basado en un modelo de software brinda portabilidad a la IGU implementada
como Applet.

De la ejecución de la aplicación descrita en el apartado 4.4 del capítulo 4 se
concluye que la IGU ejecuta correctamente el método a analítico, determina
correctamente la solución numérica del diseño de un compensador PD y grafica
correctamente el LGR para la FT del sistema que se propuso, por lo que la IGU se
convierte en un recurso didáctico confiable para los usuarios así como un recurso
de verificación de resultados.

La metodología DIGUAJ es el resultado de cubrir la necesidad de tener una
metodología que permitiera resolver la creación de la IGU con el lenguaje de
programación Java, ya que no se encontró una metodología que involucrara los
aspectos didácticos, educativos y que además involucrara dicho lenguaje de
programación.
78
Recomendaciones

Al concluir este trabajo se vuelve necesario comprobar que la interfaz puede
brindar un aporte significativo a los estudiantes.

Con el presente trabajo de tesis se abre la posibilidad de hacer una prueba piloto
con estudiantes para verificar que la IGU sirva como un apoyo al estudio de los
temas de la unidad 1 y 2 de la asignatura de Teoría de Control II.

Es conveniente mencionar que si se quisiera mayor autonomía en el aprendizaje
del alumno, la IGU creada en el presente trabajo, deberá ser parte de un
proyecto de Portal Web, es decir la IGU es una de tantas herramientas que se
podrían integrar en una plataforma para el aprendizaje de la asignatura de
Teoría de Control II que además incluya documentos sobre teoría.

El diseño de compensadores no se limita a los compensadores PD, por lo que
un trabajo a futuro sería extender la aplicación al diseño de compensadores
Proporcional-Integral y al diseño de compensadores PID.
79
REFERENCIAS
[1]Dorsey J. Sistemas de Control Continuos y Discretos. McGraw-Hill, México, 2005.
[2]KuoB. Sistemas de Control Automático. Prentice Hall, México, 1996.
[3] Ogata, K. Ingeniería de Control Moderna. Pearson, Madrid, 2003.
[4] Campbell S. y Heberman R. Ecuaciones Diferenciales: problemas de valor de
frontera. McGraw-Hill, México, 1988.
[5]http://download.oracle.com/Javase/tutorial/getStarted/intro/index.html
Diciembre
2010.
[6]http://download.oracle.com/Javase/tutorial/getStarted/intro/definition.html
Diciembre 2010
[7]http://download.oracle.com/Javase/tutorial/getStarted/intro/cando.html
Diciembre 2010
[8]http://download.oracle.com/Javase/tutorial/getStarted/intro/changemylife.html
Diciembre 2010
[9] http://download.oracle.com/Javase/6/docs/index.html Diciembre 2010
[10] Deitel H. y Deitel P. Cómo Programar en Java. Pearson Educación, Quinta
Edición, 2010
[11]http://download.oracle.com/Javase/tutorial/deployment/applet/getStarted.html
Enero 2010
[12]http://download.oracle.com/Javase/tutorial/deployment/applet/index.html
Enero 2010
[13]http://www.cic.ipn.mx/anterior/oldsite/ogonzalez/Cursos/Java/index2.htmEnero
2010
[14]http://www.wordreference.com/es/en/frames.asp?es=bytecodeMayo 2011
[15]http://www.sitiosargentina.com.ar/Help/diccionario%20tecnico.htmMayo 2011
[16]http://www.sitiosespana.com/webmasters/diccionario_tecnico.htm Mayo 2011
[17]Pressman R. Ingeniería de Software Un Enfoque Práctico. MC-Graw Hill, 2010.
[18]http://www.specifications.ws Diciembre 2010
80
[19]http://sabia.tic.udc.es/gc/Contenidos%20adicionales/trabajos/Interfaces/enlightmen
t/definiciones_1.html Junio 2011
[20]http://www.cimat.mx/~jbhayet/CLASES/PROGRAMACION/slides/clase19.pdf
Junio 2010
[21] Oracle. Manual de JavaBásico. Sun MycroSystems 2010.
[22]Canales C. Un Modelo Semiformal Para El DesarrolloDe Software Educativo.
Centro de Investigación en Computación del Instituto Politécnico Nacional, Abril
2007.
[23] García Barneto, A. y Gil Martín. Entornos constructivistas de aprendizajebasados
en simulaciones informáticas. Revista Electrónica de Enseñanza de lasCiencias, Págs.
304-322. 2006.
[24] Esquembre F. EasyJavaSimulations. Applets aplicados a la simulación de eventos
físicos. 2008.
[25] http://netbeans.org/index_es.htmlseptiembre 2011.
[26]Krasner G. y Pope S. A Cookbook for Using the Model-View-Controller User
interface Paradigm in Smalltalk. Journal of Object-Oriented Programming, Vol. 1.
2001.
[27] Gause D. y Weunberg G. Exploring Requirements.1991.
[28] BouciguezM. y Santos G. Applets en la enseñanza de la física: un análisis de
lascaracterísticas tecnológicas y disciplinares. Universidad Nacional del Centro de la
Provincia de Buenos Aires, Argentina.2009.
[29]http://www.mitecnologico.com/Main/ClasificacionDelSoftwareSeptiembre 2011.
[30] Schumeller J. Aprendiendo UML en 24 horas. Prentice-Hill, 2004.
[31] Neumann L. Ingeniería de Software. Pearson Educación, 2005.
81
Apéndice A.
Código de Programación de la clase Frame_CompensadorPD del
Paquete MenuCompensadorPD.
82
/*
* Frame_CompensadorPD.Java
*
* Created on 23/06/2011, 12:53:27 PM
*/
packageMenuCompensadorPD;
/**
*
* @author FRANZ
*/
importResultados.MuestraResultados;
import Datos.*;
importHerramientas.Guardar_en_Archivo;
importGráfica cion.GráficaLGRJPanel;
importJava.util.logging.Level;
importJava.util.logging.Logger;
importJavax.swing.*;
importJava.io.*;
public class Frame_CompensadorPD extends Javax.swing.JFrame {
/** Creates new form Frame_CompensadorPD */
publicFrame_CompensadorPD() {
super("Herramienta de calculo para el LGR");
initComponents();
Gráfica LGRJPanelgráfica = new Gráfica LGRJPanel();
}
83
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
GráficaLGRJFrame = new Javax.swing.JFrame();
jScrollPane1 = new Javax.swing.JScrollPane();
jTextArea_Texto_Salida = new Javax.swing.JTextArea();
jToolBar1 = new Javax.swing.JToolBar();
jButton_Info_Extra = new Javax.swing.JButton();
jLabel1 = new Javax.swing.JLabel();
BotonGráficaLGR = new Javax.swing.JButton();
jMenuBar1 = new Javax.swing.JMenuBar();
jMenuAplicaciones = new Javax.swing.JMenu();
jMenuCompensadorPD = new Javax.swing.JMenu();
jMenuItemForma1 = new Javax.swing.JMenuItem();
jMenuHerramientas = new Javax.swing.JMenu();
jMenuItem_GuardarTexto = new Javax.swing.JMenuItem();
jMenuControles = new Javax.swing.JMenu();
jMenuItem_LimpiarArea = new Javax.swing.JMenuItem();
GráficaLGRJFrame.setDefaultCloseOperation(Javax.swing.WindowConst
84
ants.DISPOSE_ON_CLOSE);
Gráfica LGRJFrame.setTitle("Gráfica del Lugar Geometrico de las
Raices");
Gráfica LGRJFrame.setMinimumSize(new Java.awt.Dimension(400,
400));
Javax.swing.GroupLayoutGráfica LGRJFrameLayout = new
Javax.swing.GroupLayout(Gráfica LGRJFrame.getContentPane());
Gráfica LGRJFrame.getContentPane().setLayout(Gráfica
LGRJFrameLayout);
Gráfica LGRJFrameLayout.setHorizontalGroup(
Gráfica
LGRJFrameLayout.createParallelGroup(Javax.swing.GroupLayout.Align
ment.LEADING)
.addGap(0, 400, Short.MAX_VALUE)
);
GráficaLGRJFrameLayout.setVerticalGroup(
GráficaLGRJFrameLayout.createParallelGroup(Javax.swing.GroupLayout
.Alignment.LEADING)
.addGap(0, 300, Short.MAX_VALUE)
);
setDefaultCloseOperation(Javax.swing.WindowConstants.EXIT_ON_CL
OSE);
85
jTextArea_Texto_Salida.setColumns(20);
jTextArea_Texto_Salida.setRows(5);
jScrollPane1.setViewportView(jTextArea_Texto_Salida);
jToolBar1.setRollover(true);
jButton_Info_Extra.setText("Acerca del Programa");
jButton_Info_Extra.setFocusable(false);
jButton_Info_Extra.setHorizontalTextPosition(Javax.swing.SwingConstan
ts.CENTER);
jButton_Info_Extra.setVerticalTextPosition(Javax.swing.SwingConstants.
BOTTOM);
jButton_Info_Extra.addActionListener(new
Java.awt.event.ActionListener() {
public void actionPerformed(Java.awt.event.ActionEventevt) {
jButton_Info_ExtraActionPerformed(evt);
}
});
jToolBar1.add(jButton_Info_Extra);
jLabel1.setText("MetodoAnalitico");
BotonGráficaLGR.setText("Gráficar el LGR");
BotonGráficaLGR.addActionListener(new
Java.awt.event.ActionListener() {
public void actionPerformed(Java.awt.event.ActionEventevt) {
BotonGráficaLGRActionPerformed(evt);
86
}
});
jMenuAplicaciones.setText("Aplicaciones");
jMenuCompensadorPD.setText("CompensadorPD");
jMenuItemForma1.setAccelerator(Javax.swing.KeyStroke.getKeyStroke(J
ava.awt.event.KeyEvent.VK_P,
Java.awt.event.InputEvent.CTRL_MASK));
jMenuItemForma1.setIcon(new
Javax.swing.ImageIcon(getClass().getResource("/MenuCompensadorPD/i
cono_Poli.jpg"))); // NOI18N
jMenuItemForma1.setText("Forma K(c)/s(s+b)");
jMenuItemForma1.addActionListener(new
Java.awt.event.ActionListener() {
public void actionPerformed(Java.awt.event.ActionEventevt) {
jMenuItemForma1ActionPerformed(evt);
}
});
jMenuCompensadorPD.add(jMenuItemForma1);
jMenuAplicaciones.add(jMenuCompensadorPD);
jMenuBar1.add(jMenuAplicaciones);
jMenuHerramientas.setText("Herramientas");
87
jMenuItem_GuardarTexto.setText("Guardar en Archivo de Texto");
jMenuItem_GuardarTexto.addActionListener(new
Java.awt.event.ActionListener() {
public void actionPerformed(Java.awt.event.ActionEventevt) {
jMenuItem_GuardarTextoActionPerformed(evt);
}
});
jMenuHerramientas.add(jMenuItem_GuardarTexto);
jMenuBar1.add(jMenuHerramientas);
jMenuControles.setText("Controles");
jMenuItem_LimpiarArea.setText("Limpiar Area de Texto");
jMenuItem_LimpiarArea.addActionListener(new
Java.awt.event.ActionListener() {
public void actionPerformed(Java.awt.event.ActionEventevt) {
jMenuItem_LimpiarAreaActionPerformed(evt);
}
});
jMenuControles.add(jMenuItem_LimpiarArea);
jMenuBar1.add(jMenuControles);
setJMenuBar(jMenuBar1);
88
Javax.swing.GroupLayout layout = new
Javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(Javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(Javax.swing.GroupLayout.Alignme
nt.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jToolBar1,
Javax.swing.GroupLayout.PREFERRED_SIZE, 150,
Javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(21, 21, 21)
.addGroup(layout.createParallelGroup(Javax.swing.GroupLayout.Alignme
nt.LEADING)
.addComponent(jLabel1)
.addGroup(Javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addComponent(jScrollPane1,
Javax.swing.GroupLayout.PREFERRED_SIZE, 343,
Javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(Javax.swing.LayoutStyle.ComponentPlacement.RELAT
ED, 40, Short.MAX_VALUE)
.addComponent(BotonGráficaLGR)))))
89
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(Javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(layout.createSequentialGroup()
.addComponent(jToolBar1,
Javax.swing.GroupLayout.PREFERRED_SIZE, 25,
Javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(22, 22, 22)
.addComponent(jLabel1)
.addPreferredGap(Javax.swing.LayoutStyle.ComponentPlacement.RELAT
ED)
.addGroup(layout.createParallelGroup(Javax.swing.GroupLayout.Alignme
nt.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jScrollPane1,
Javax.swing.GroupLayout.PREFERRED_SIZE, 346,
Javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(31, Short.MAX_VALUE))
.addComponent(BotonGráficaLGR)))
);
pack();
}// </editor-fold>
private void
90
jMenuItemForma1ActionPerformed(Java.awt.event.ActionEventevt) {
MuestraResultados nuevo = new MuestraResultados();
nuevo.Bienvenida();
Proporciona_Datos polo=new Proporciona_Datos();
polo.PidePolo();
Proporciona_Datosmp =new Proporciona_Datos();
mp.PideMaximo();
Proporciona_Datos tiempo =new Proporciona_Datos();
tiempo.PideTiempoPico();
Proporciona_Datosgain =new Proporciona_Datos();
gain.PideGanancia();
//Comienzan los metodos para entrega de Datos de los
//calculos realizados por la computadora
MuestraResultados muestra = new MuestraResultados();
Proporciona_Datos a = new Proporciona_Datos();//Proporciona_Datos b =
new Proporciona_Datos();
jTextArea_Texto_Salida.setText("La funcion de transferencia introducida
fue: "
+"\n
+"\n
+"\n
"+a.getGananciaInicial()
------------------"
s(s+"+a.getPolo()+")\n"
+"Los calculos realizados son los siguientes:\n\n"
+muestra.Salida()+"\n\nPuedes copiar esta informacion y pegarla en tus
91
practicas.");
// TODO add your handling code here:
}
//fin delmetodo jMenuItemForma1ActionPerformed
private void
jMenuItem_LimpiarAreaActionPerformed(Java.awt.event.ActionEventevt
){
// TODO add your handling code here:
jTextArea_Texto_Salida.setText(null);
}
private void
jButton_Info_ExtraActionPerformed(Java.awt.event.ActionEventevt) {
// TODO add your handling code here:
String cadena ="Esta aplicacion fue creada con el proposito de ayudar a
los"+
"\nestudiantes de la Carreca de Control y Automatización" +
"\nen la comprobacion de calculos de compensadores
Proporcional_Diferencial" +
"\nbasados en el estudio del Lugar Geometrico de las Raices.\n\n\n\n " +
"\n°Este programa es libre de distribuirce a todos los alumnos de la "+
"\nCarrera de Control y Automatización" +
"\n°Queda completamente prohibida su venta o distribucion con fines
lucrativos" +
"\npor cualquier medio informatico o digital."+
"\n\n" +
92
"Esta aplicacion fue crada por Francisco Reyes Alumno de Dicha carrea"
+
"\nFecha de creacion de la aplicacion: 23 de Junio del 2010"+
"\nUltima Actualización:23 de Julio del 2010";
// JOptionPane.showMessageDialog(cadena, null, "informacion de uso",
JOptionPane.CENTER_ALIGNMENT);
JOptionPane.showMessageDialog(jMenuControles, cadena);
}
private void
jMenuItem_GuardarTextoActionPerformed(Java.awt.event.ActionEventev
t) {
// TODO add your handling code here:
Herramienta_Creador_de_Archivostxt();
}
private void
BotonGráficaLGRActionPerformed(Java.awt.event.ActionEventevt) {
// TODO add your handling code here:
ConstruccionGráfica(this.GráficaLGRJFrame);
}
//fin del metodo del jMenuItem un boton de herramienta
/**
* @paramargs the command line arguments
93
*/
public static void main(String args[]) {
Java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
newFrame_CompensadorPD().setVisible(true);
}
});
}//fin del main
publicvoidHerramienta_Creador_de_Archivostxt(){
Guardar_en_Archivo nombre = new Guardar_en_Archivo();
Guardar_en_Archivoselecruta = new Guardar_en_Archivo();
selecruta.Seleccionador_de_ruta();
Guardar_en_Archivonuevoarchivo = new Guardar_en_Archivo();
/*intnumerolineas= jTextArea_Texto_Salida.getLineCount();
String lineas;
for(int i=0; i<numerolineas; i++ ){
File f = new File(jTextArea_Texto_Salida.write(null));
lineas=jTextArea_Texto_Salida.getText();
}*/
String cadena=jTextArea_Texto_Salida.getText();
Stringnom = nombre.NombrarArchivo();
try{
nuevoarchivo.CrearArchivo(cadena,nom);
}
catch(FileNotFoundExceptionfnft){
JOptionPane.showMessageDialog(jMenuControles, "El archivo no se
94
pudo crear",
fnft.getMessage(), JOptionPane.ERROR_MESSAGE); }//fin del bloque
catch
catch (IOException ex) {
Logger.getLogger(Frame_CompensadorPD.class.getName()).log(Level.S
EVERE, null, ex);
}
}//fin del metodoHerramienta_Creador_de_Archivostxt()
// Variables declaration - do not modify
privateJavax.swing.JButtonBotonGráficaLGR;
privateJavax.swing.JFrameGráficaLGRJFrame;
privateJavax.swing.JButtonjButton_Info_Extra;
privateJavax.swing.JLabel jLabel1;
privateJavax.swing.JMenujMenuAplicaciones;
privateJavax.swing.JMenuBar jMenuBar1;
privateJavax.swing.JMenujMenuCompensadorPD;
privateJavax.swing.JMenujMenuControles;
privateJavax.swing.JMenujMenuHerramientas;
privateJavax.swing.JMenuItem jMenuItemForma1;
privateJavax.swing.JMenuItemjMenuItem_GuardarTexto;
privateJavax.swing.JMenuItemjMenuItem_LimpiarArea;
privateJavax.swing.JScrollPane jScrollPane1;
privateJavax.swing.JTextAreajTextArea_Texto_Salida;
privateJavax.swing.JToolBar jToolBar1;
// End of variables declaration
privatevoidConstruccionGráfica (JFrame Frame1){
try{
95
GráficaLGRJPanelPanelG = new GráficaLGRJPanel();
Frame1.add(PanelG);
Frame1.setVisible(true);}
catch(NumberFormatExceptionexcepcionFormatoNumero){
JOptionPane.showMessageDialog(this,
"Debe escribir dos enteros", "Formato de numero invalido
"+excepcionFormatoNumero.toString(),
JOptionPane.ERROR_MESSAGE );
Frame1.setVisible(false);
}
}//fin del metodoconstruccionGráfica
}
96
Descargar