Desarrollo WEB.


Las practicas de programación orientadas a la web son muy cambiantes en el tiempo. Es necesario conocer e implementar tecnologías, conocer lenguajes,integrar comunidades,usar Ides, etc, recientes, para responder al mercado que se acerca.

martes, 1 de diciembre de 2009

Simulacion de un PID en Proteus 7 Professional

PID (Proporcional, Integrador y Derivativo)
 

El control automático desempeña un papel importante en los procesos de manufactura industrial.
El controlador PID (análogo y digital) es complejamente estudiado en la asignatura de CIBERNETICA II y III en ingenieria de sistemas de la Uniamazonia. Gracias al nuevo enfoque sobre herramientas virtuales academcias que el Ing. Gabriel Marin ofrece para el aprendizaje sobre elementos y tecnicas de control es que podemos conocer estos mecanismos ciberneticos.


Como desarrollador de software siempre me habia visto aislado de la matematica de control, tanto asi que repeti en varias ocasiones asignaturas relacionadas con la matematicas, no es que las matematicas sean el coco en mi campo mental, solo que mi vison no es la de especializarme como matematico o cibernetico.
En dias atras  no veia la realidad y el beneficio de llevar el control en los sistemas a traves de procesos matematicos, ahora entiendo que los sistemas de control son muy importantes en los desarrollos tecnologicos y el ajuste de control que quiero llevar sobre estos desarrollos, especialemente ahora que nace la idea de realizar como trabajo de grado un sistema de control orienta a la web.

En esta publicacion mostrare la experiencia en el proceso de implementacion de un PID en el simulador de componentes electronicos PROTEUS

Ontologia.

  • Señal de salida: es la variable que se desea controlar (posición, velocidad, presión, temperatura, etc.). También se denomina variable controlada.
  • Señal de referencia: es el valor que se desea que alcance la señal de salida.

  • Error: es la diferencia entre la señal de referencia y la señal de salida real.

  • Señal de control: es la señal que produce el controlador para modificar la variable controlada de tal forma que se disminuya, o elimine, el error.

  • Señal análoga: es una señal continua en el tiempo.

  • Señal digital: es una señal que solo toma valores de 1 y 0. El PC solo envía y/o recibe señales digitales.

  • Conversor análogo/digital: es un dispositivo que convierte una señal analógica en una señal digital (1 y 0).

  • Conversor digital/análogo: es un dispositivo que convierte una señal digital en una señal analógica (corriente o voltaje).

  • Planta: es el elemento físico que se desea controlar. Planta puede ser: un motor, un horno, un sistema de disparo, un sistema de navegación, un tanque de combustible, etc.

  • Proceso: operación que conduce a un resultado determinado.

  • Sistema: consiste en un conjunto de elementos que actúan coordinadamente para realizar un objetivo determinado.

  • Perturbación: es una señal que tiende a afectar la salida del sistema, desviándola del valor deseado.

  • Sensor: es un dispositivo que convierte el valor de una magnitud física (presión, flujo, temperatura, etc.) en una señal eléctrica codificada ya sea en forma analógica o digital. También es llamado transductor. Los sensores, o transductores, analógicos envían, por lo regular, señales normalizadas de 0 a 5 voltios, 0 a 10 voltios o 4 a 20 mA.

  • Sistema de control en lazo cerrado: es aquel en el cual continuamente se está monitoreando la señal de salida para compararla con la señal de referencia y calcular la señal de error, la cual a su vez es aplicada al controlador para generar la señal de control y tratar de llevar la señal de salida al valor deseado. También es llamado control realimentado.

  • Sistema de control en lazo abierto: en estos sistemas de control la señal de salida no es monitoreada para generar una señal de control.


Bueno ahora si vamos al grano.


DISEÑO DE UN CONTROLADOR PID (Proporcional, Integrador y Derivativo) ANALOGO PARA UN CIRCUITO RC DE SEGUNDO ORDEN

Se especifica que el diseño de un sistema de control se puede realizar ya sea en el dominio del tiempo o en el de la frecuencia. También se describen algunas especificaciones de diseño pero son únicas para cada diseño.
Para realizar un buen procedimiento se debe:
  • Determinar que debe hacer el sistema y como hacerlo.
  • Determinar la configuración del compensador.
  • Determinar los valores de los parámetros del controlador para alcanzar los objetivos de diseño.
Se usan cálculos matemáticos y para esto nos apoyamos en el IDE Matlab para ubicar datos necesarios como los polos dominantes de nuestro sistema y observar si cumple o no con nuestras especificaciones de diseño.

Así mismo se cuenta con el IDE Proteus, el cual nos sirve para desarrollar la simulación que dará la verificación de los datos obtenidos y así poder constatar el funcionamiento de nuestro diseño de PID.

Pero, Cuales objetivos perseguimos con el diseño de este controlador?

  • Obtener la función de transferencia de la planta o circuito rc para el que vamos a diseñar el controlador PID.
  • Obtener la función de transferencia del controlador basado en el circuito con amplificadores operacionales (Proporcional - Integral - Derivativo).
  • Obtener mediante la sisotool de Matlab la función de transferencia del controlador con los parámetros de diseño establecidos.
  • Por medio de los resultados obtenidos con la sisotool de Matlab y el controlador hallado manualmente, calcular y seleccionar los elementos de circuito para el controlador PID.
  • Simular el sistema de control de lazo cerrado compensado y no compensado ante una entrada escalón.
  • Con base a los elementos de circuito calculados, simular mediante Proteus el circuito diseñado.
  • Ensamble y pruebas del controlador. 

 ¡ Nuestra Planta es un circuito RC.

Como se puede observar, la planta que hemos escogido es un sistema de segundo orden, ya que contiene dos elementos almacenadores de energía que son los condensadores Ca y Cb.



Aplicaciones JSP (Java Orientado a la Web)

Bien, en esta publicacion hablare un poco sobre el desarrollo de aplicaciones web alojadas bajo servidores java (resin, tomcat), explicare como configurar los archivos para el resin y como enlazar la base de datos. Como se que muchos lo estaban esperando, lo he organizado de la mejor manera para que sea lo mas entendible posible. No apto para cardiacos.

Nuestros Requerimientos.
  1. Sitio Web para la Gestion de Imagenes Fotograficas (Galeria Fotografica).
  2. Arquitectura J2EE.
  3. Patron de diseño MVC.
  4. Metodologia XP (Programacion Extrema).
  5. Modelado de Datos.
  6. Modelado UML.
Nuestras Herramientas.
  1. Motor de Base de datos Access.
  2. Servidor de Aplicaciones Resin (Caucho Tecnology)
  3. IDE Netbeans
  4. IDE Dreamweaver
  5. IDE TopStyle
  6. Acces de Microsoft Oficce
  7. Configurar Conexion ODBC
Nota.
  1.  Si desea conectarse a POSTGRES o MYSQL Pegar el driver de postgresql-8.4-701.jdbc3.jar y el de mysql en el directorio c:archivos de programa/java/jdk6/jre/lib/ext.
  2. Crear la odbc con windows desde herramientas administrativas con el nombre ConectToAcces
    y seleccionando la bd acces de nombre contacto, porque asi esta referenciado en el bean conexion de nuestro proyecto web.
  3. Si se conecta con postgres arrancar Postgrest para que cuando se use la opcion de conectar con postgrest este este activado.
  4. Copiar y pegar el contenido sql del archivo sqlcontactoPostgrestoMysql.sql, anexo en esta carpeta.
  5. Si se conecta con postgres arranque el servicio de postgres desde herramientas administrativas, servicios. (No olvidar) para que no presente problemas de conexion.

Mediante un ejemplo para descargar, se muestra este pequeño proyecto web realizado a bajo costo, pero en el que al principio tuve que invertir mucho tiempo en lecturas y practicas para entender la verdadera usabilidad de este tipo de aplicaciones.

martes, 2 de junio de 2009

VibroBot (FhotoProber)

VibroBOT (BEAM)

Este es la segunda de mis creaciones en el engome con la robótica, al parecer es algo estúpido pero en el fondo, muy en el fondo, donde solo la ingenieria penetra se ve como una gran creación, al menos en mi galaxia, la primera creacion fue (MABE) nunca funciono, mi primer hola mundo, es mas pequeño, pero con lo que se diseño en el papel se dio como resultado el montaje de un sencillo BEAM que se alimenta con energía de baterías tamaño boton, de 3.0 voltios, sin amperaje suficiente para dar traccion al cigueñal de las extremidades de desplazamiento.
es todo un fracaso.! pero dejo ver lo que en esencia se requeria, el de hacer cosas simples con apariencia biologica y mecanismo electronicos.
Este nueva creación tiene muchas modificaciones, al menos ya toma la luz del sol como fuente de alimentación para mantenerse en simple contacto con el ambiente, cumpliendo con las características de ser un robot BEAM ,es decir tiene la capacidad de convertir la energía solar en energía electrica al pasarla por celdas fotovoltaicas.
Estas celdas fueron traidas a la universidad por el profesor Jose Antonio Marin Peña profesor de fisica En la universidad de la Amazonia quien de esta manera contribuye al estudio de ellas y su aplicacion en los proyectos de ingeniera en la universidad, Proyectos que mucho hacen falta para cambiar las dinamicas del aprendizaje en nuestra academia.
Este BEAM sera exibido en la Tercer Concurso de Robot Seguidores de Linea en la universidad de la amazonia llevada a cabo el Jueves 4 de Junio en las horas de la mañana.















A continuacion presento el metodo de elaboracion de una forma autonoma BEAM.

Materiales.
2 integrados o compuertas de Material Reciclado
30 Cm de alambre resistente de 1.5 ml de diametro.
Alambre de estaño.
Cinta Negra.
Alambres de Circuiteria.
1 condensador de 2300uf.
1 Placa de circuito reciclada para soporte del BEAM.
6 Resistencias como chasis de ajuste del motor.
1 Motor con contra peso (vibrador de XBOX).
1 Placa de lamina para soporte de la Fotocelda.
1 Fotocelda de 5.0 Voltios.



Ver Video del BEAM en funcionamiento.

domingo, 3 de mayo de 2009

MaBE. Mi primer hola mundo en Robotica BEAM

___________________________________________________________________

Se aproxima el concurso de Robótica semestral organizado por el grupo de Investigación GIECOM, este semestre con la novedad "robots BEAM" y siguiendo la tradicion con el concurso de robot seguidores de línea.

P
ara la construcción de un robot BEAM se debe tener en cuenta ciertas características.
  • Desplazamiento del BEAM
    • Es Decir como se desplazara el robot, mediante que sistema de rueda, brinco, pasos se moverá el BEAM.
  • Energía del sistema.
    • como se alimentara nuestro sistema?, cómo mi robot tomara energía y se mantendrá con vida artificial?, es la energía misma que lo desplazara?.
  • Herramientas al alcancé
    • siempre antes de empezar con nuestro diseño es necesario poder hacer un inventario de con que artefactos contamos para la elaboración, en este caso no estamos ante una gran bodega de elementos electrónicos.

Herramientas para la construcción del MaBE.

  • 1 Motor "vibrador" de Celular.
  • 2 Alambres de aproximadamente 2 milímetros de espesor X 3 cm de largo.
  • 1 soporte para el motor.
  • 1 Batería de Celular.
  • 2 soportes para las extremidades delanteras "componente Click de un mouse".
  • 1 Soporte con diseño de rodillo para la parte inferior.
  • Herramientas (soldador, alambres, pinzas, destornilladores, silicona, etc).

Primera Fase del Desarrollo.

Sistema de Desplazamiento de MaBE.


En esta figura se puede ver en brevedad como actua el sistema de desplazamiento diseñado para el robot.











Esta imagen muestra a MaBE con el sistema de eje implementado, sin los soportes en sus extremidades. Este sistema esta conformado por dos elementos soporte en las extremidades superiores de MaBE, el cuerpo central donde reside el motor, y un soporte para la parte posterior haciendo balance al MaBE.
Tamaño Real del sistema de desplazamiento de MaBE.

sábado, 2 de mayo de 2009

RESIN - Servidor de Aplicaciones Web



Servidor de Aplicaciones WEB Resin (Caucho).
Sistemas Operativos Linux - Windows

Resin es el nuevo servidor de aplicaciones web que me permite ejecutar y ver cambios en tiempos muy cortos, este servidor se ejecuta desde su directorio raíz, no necesita ningún componente instalado en el sistema , es autónomo, eso si obviamente, las jdk, controladores de bases de datos y otros recursos necesarios como la maquina virtual java. Sí necesitamos en determinado momento llevar nuestro servidor con las características configuradas por nosotros, lo podemos hacer muy fácilmente en una usb, un cd y luego montarlo en cualquier destino y sobre cualquier S.O.

Cuando trabajamos sobre un servidor de aplicaciones Tomcat, se suben los archivos a su carpeta base donde se encuentra la aplicación web y se debe esperar que el servidor ,en determinado tiempo programado, o con ejecución manual para realizar el proceso de compilación encuentre los archivos, vea cuales son lo que contiene cambios de fechas y tamaño y realiza la lectura nueva de los archivos. Esta demora perjudica el avance del desarrollo de aplicaciones web. En algunos casos es necesario ver el funcionamiento de los cambios en linea para no obviar detalles de algunas fallas o evitar excepciones y se hace muy engorroso tener que esperar para poder ver los cambios realizados en la aplicación, con Resin esta utilidad es puesta en marcha y satisface la necesidad, Resin realiza un nueva lectura de los archivos cada vez que nota cambios en los archivos base, es decir cada vez que un archivo nuevo es subido al servidor de aplicaciones este inmediatamente atiende el cambio y realiza la ejecución de estos archivos, trayendo al instante la vista de los nuevos cambios realizados, como servidor de prueba para desarrollos web, Resin presenta gran beneficio al tiempo de ver Cambios.

Características del Servidor RESIN
  • Compilación y recompilación automática
  • Se puede utilizar como un servidor completamente autónomo, independiente, obteniendo un mejor rendimiento.
  • El trafico de datos para el email es el adecuado.
  • Resin permite especificar el autenticador para su aplicación web
    en web.xml.
  • Una de sus versiones permite tener soporte personal como apoyo al servicio. La cuenta de licencia de pago es a un costo muy económica.
  • Su estructura interna de directorios y archivos es ordenada.

CONTEXTO
Resin es una aplicación servidor web de alto rendimiento y de código abierto desarrollado por la compañía caucho tecnología, esta escrito en lenguaje java, sus extensiones de archivos son .jsp, esto lo hace ser mas accesible a modificaciones por parte de desarrolladores JAVA.
Una de las necesidades básicas en el desarrollo de aplicaciones web es poder llevar a cabo actualizaciones criticas en linea de la manera mas rápida y eficiente. En los servidores Resin esta tecnología es puesta en marcha.
  1. Donde Encontrar RESIN
Resin se puede descargar directamente desde su sitio web www.caucho.com allí se encuentra mucha información sobre el proyecto y las versiones que existen actualmente. Al Igual existe documentación sobre como gestionar un buen servicio con RESIN, existen versiones de paga a muy bajo costo que beneficia a empresas inclinadas al desarrollo de aplicaciones web.
  1. Como Instalarlo.
Resin se instala en cualquier sistema operativo, es cuestión de descargar la versión que se ajuste al S.O. de la maquina en la web oficial del resin http://www.caucho.com
      1. En Linux.
- Para instalar RESIN en Linux basta con llevar el directorio completo del resin y pegarlo en alguna parte del sistema.
cp /Escritorio/resin/ /usr/local/share/resin/ -R -v
- Luego se ejecuta, es decir se arranca el demonio con el siguiente comando.
sudo java -jar resin/lib/resin.jar
Este comando invoca un .jar principal que contiene los archivos de arranque del servidor y ya esta.
      1. En Windows.
- La versión para windows de Resin es un poco mas fácil de instalar, de igual manera que en Linux, se debe ubicar la carpeta del Resin en un lugar seguro del sistema.
- En la carpeta raiz se encuentra un archivo ejecutable llamado httpd.exe, se ejecuta y listo ya esta el servidor instalado y en servicio.
!Que fácil.

domingo, 12 de abril de 2009

Matlab. IDE de apoyo al estudio de la Cibernetica.


Despues de pasear un dias por la sintaxis del lenguaje Matlab y tras de consultar un poco en la red sobre el uso del IDE este es mi primer codigo realizado en la asignatura de cibernetica I como trabajo de simulacion sobre funciones: Transferencia, fracciones parciales, laplace e ilaplace, polos, ceros y ganancias o constantes de una funcion de transferencia, funcion rampa, impulse, escalon, seno y coseno de una funcion y sus respectivas graficas.

En el proceso de uso de los comandos para la solucion de funciones en matlab y de la lectura que se debe hacer sobre los resultados arrojados por el IDE, se apoyó el proceso ofrecido en clase sobre las funciones y los demas elementos que las componen y las transforman.

Este pequeño programa muestra el uso de componentes de matlab como campos de texto, slider, lista de seleccion, contenedores graficos, textos estaticos.

Voy a explicar un poco el funcionamiento del codigo y de la interfaz y al final ubicare las fuentes, el maya.m y el maya.fig para ser descargadas.

Caracteristicas Principales.

1. Interfaz grafica de usuario.

2. Evento del Boton Calcular Funcion.

Ingresamos la funcion de transferencia de la siguiente manera, es simple la libreria matematica interna del matlab identifica que el vector expande su exponente de forma creciente es por eso que la funcion aca ingresada es la siguiente.
+

% --- Evento en el boton calcular funcion

function Boton_Callback(hObject, eventdata, handles)
axes(handles.Grafica); %prepara el componente grafica llamado Grafica
num=str2num(get(handles.Numerador,'String')); %captura el vector del numerador %de la funcion de transferencia
den=str2num(get(handles.Denominador,'String')); %captura el vector del %denominador de la funcion de transferencia
[z,p,k]=tf2zp(num,den); %Realiza la funcion de transferencia y extrae sus polos, ceros, y ganancias
[num,den]=zp2tf(z,p,k); %Invertimos la operacion anterior, coge los polos, los ceros y las ganancias %y encuentra la funcion de transferencia
zplane(num,den), ylabel('PARTE IMAGINARIA'), xlabel('PARTE REAL'),title('Grafica de polos y ceros');
% Dibujamos en el componente grafica llamado Grafica, % como ya preparamos un componente para graficas se toma % por defecto ese componente y alli se grafican la informacion % en este caso los polos y ceros de una funcion % de transferencia.
set(handles.Polos,'String',num2str(p)); % mostramos los polos en un text edit llamado Polos.
set(handles.Ceros,'String',num2str(z)); % mostramos los ceros en un text edit llamado Ceros.
set(handles.Ganancias,'String',num2str(k)); % mostramos las Ganacias en un text edit llamado Ganancia.

3. Extracción de los polos, Ceros y Ganancias de la TF.

[z,p,k]=tf2zp(num,den); %Realiza la funcion de transferencia y extrae sus polos, ceros, y ganancias
4. Gráfica de los polos y Ceros de la Función de Transferencia.

zplane(num,den), ylabel('PARTE IMAGINARIA'), xlabel('PARTE REAL'),title('Grafica de polos y ceros');
% Dibujamos en el componente grafica llamado Grafica, % como ya preparamos un componente para graficas se toma % por defecto ese componente y alli se grafican la informacion % en este caso los polos y ceros de una funcion % de transferencia.

5. Funciones, Rampa, Impulso, Escalon, Seno y Coseno.
6. Fracciones Parciales, transformada de laplace e Inversa.
Este fue el mejor sitio de donde pude extraer algunos recursos.

http://www.mathworks.com/access/helpdesk/help/helpdesk.html
y en esta web hay una coleccion de libros que para que mas. solo es cuestion de tiempo para leer y muchas ganas para cacharrear.
http://duniaengineering.wordpress.com/2009/03/21/collection-of-matlab-books/


lunes, 2 de marzo de 2009

NetBeans y Dreamweaver. (controladores, vistas)

Cuando construimos un elemento digital, (clase, HTML, jsp, jsf, beans, servlet) siempre va a ser necesario la visión de los archivos en el contenedor mostrador que nos dará el desarrollo de las vistas o de las etiquetas visuales y el entorno de desarrollo que nos dará la relación de la lógica del negocio con las bases de datos (controladores).

NetBeans 6.7 como IDE es una herramienta muy poderosa sobre todo en las relaciones entre elementos digitales, como por ejemplo, me puedo ir enlazando desde clase en clase o desde jsp a clase, o de jsp a jsp, o de servlet a servlet con un solo control + click, hasta obtener una visión general en el lugar exacto al que quiero dirigirme, características como estas son motivantes para nuestro IDE elegido el Netbeans en su ultima versión 6.7 en ingles.

netbeans





Dreamweaver CS3 de la adobe system es nuestro IDE empleado para dar creación, soporte y mantenimiento a nuestros elementos vistas soportados por las aplicaciones web.

dreamweaver_babe_by_xeracx

Como vemos dos grandes IDE`s, ahora, fusionemos estos dos Entornos y formaran una herramienta muy compleja, poderosa y fácil de administrar.

Mas sobre Dreamweaver CS4

jueves, 19 de febrero de 2009

Java orientada a la WEB.

Las aplicaciones Java orientadas a la web generan un gran ambiente lleno de mejores interfaces mas dinámicas y efectivas a la hora de manejar un modelo de negocio, bien sea el de una tienda de calzado, una empresa, un parqueadero, una institución educativa, etc.
Es muy sencillo solo consiste en llevar la misma lógica escrita en java a nuevos scripts o archivos, JSP, jsf, js, XML, java, y configurarlos de la manera adecuada para ser interpretados por un servidor de aplicaciones web java como lo es RESIN.
Siempre será necesario conservar la estructura interna de recursos , paquetes de clases, librerías, organizados mediante estándares de aplicaciones web para que sean interpretados y leídos por el servidor.
Ejemplo.
El directorio WEB-INF contiene las clases y librerías java utilizadas para la óptima ejecución de la aplicación, cuando llamas una clase o un beans dentro de un archivo.JSP el servidor se dirige específicamente a la carpeta WEB-INF y allí busca el paquete o la librería requerida.