viernes, 1 de julio de 2011

Algoritmos Computacionales - PID

Un PID (Proporcional Integral Derivativo) es un mecanismo de control por realimentación que calcula la desviación o error entre un valor medido y el valor que se quiere obtener, para aplicar una acción correctora que ajuste el proceso. El algoritmo de cálculo del control PID se da en tres parámetros distintos: el proporcional, el integral, y el derivativo. El valor Proporcional determina la reacción del error actual. El Integral genera una corrección proporcional a la integral del error, esto nos asegura que aplicando un esfuerzo de control suficiente, el error de seguimiento se reduce a cero. El Derivativo determina la reacción del tiempo en el que el error se produce.
Via:Wikipedia

La estructura de un controlador PID es simple, aunque su simpleza es también su debilidad, dado que limita el rango de plantas donde pueden controlar en forma satisfactoria.

Estructura
Considerando un lazo de control de una entrada y una salida (SISO) de un grado de libertad:


Los miembros de la familia de controladores PID, incluyen tres acciones: proporcional (P), integral (I) y derivativa (D). Estos controladores son los denominados P, I, PI, PD y PID.

P: acción de control proporcional, da una salida del controlador que es proporcional al error, es decir: u(t) = KP.e(t), que descripta desde su función transferencia queda:

Cp(s) = Kp

donde Kp es una ganancia proporcional ajustable. Un controlador proporcional puede controlar cualquier planta estable, pero posee desempeno limitado y error en régimen permanente (off-set).

I: acción de control integral: da una salida del controlador que es proporcional al error acumulado, lo que implica que es un modo de controlar lento.



La señal de control u(t) tiene un valor diferente de cero cuando la senal de error e(t)
es cero. Por lo que se concluye que dada una referencia constante, o perturbaciones, el error en régimen permanente es cero.

PI: acción de control proporcional-integral, se define mediante:

donde Ti se denomina tiempo integral y es quien ajusta la accion integral. La función de transferencia resulta:

dará una accion de control creciente, y si fuera negativo la senal de control será decreciente. Este razonamiento sencillo nos muestra que el error en régimen permanente será siempre cero.

Muchos controladores industriales tienen solo accion PI. Se puede demostrar que un control PI es adecuado para todos los procesos donde la dinámica es esencialmente de primer orden. Lo que puede demostrarse en forma sencilla, por ejemplo, mediante un ensayo al escalón.

PD: acción de control proporcional-derivativa, se define mediante:

donde Td es una constante de denominada tiempo derivativo. Esta acción tiene carácter de previsión, lo que hace más rápida la acción de control, aunque tiene la desventaja importante que amplifica las señales de ruido y puede provocar saturación en el actuador. La acción de control derivativa nunca se utiliza por sí sola, debido a que solo es eficaz durante períodos transitorios. La funcion transferencia de un controlador PD resulta:

Cuando una accion de control derivativa se agrega a un controlador proporcional, permite obtener un controlador de alta sensibilidad, es decir que responde a la velocidad del cambio del error y produce una corrección significativa antes de que la magnitud del error se vuelva demasiado grande. Aunque el control derivativo no afecta en forma directa al error ea estado estacionario, anade amortiguamiento al sistema y, por tanto, permite un valor más grande que la ganancia K, lo cual provoca una mejora en la precision en estado estable.

PID: acción de control proporcional-integral-derivativa, esta acción combinada reune las ventajas de cada una de las tres acciones de control individuales. La ecuación de un controlador con esta accion combinada se obtiene mediante:

y su función transferencia resulta:



Fuente: http://iaci.unq.edu.ar/caut1
Automatizacion y Control Industrial
Universidad Nacional de Quilmes





jueves, 30 de junio de 2011

Máquina Turing

Una máquina de Turing (MT) es un modelo computacional que realiza una lectura/escritura de manera automática sobre una entrada llamada cinta, generando una salida en esta misma.

La máquina de Turing consta de un cabezal lector/escritor y una cinta infinita en la que el cabezal lee el contenido, borra el contenido anterior y escribe un nuevo valor. Las operaciones que se pueden realizar en esta máquina se limitan a:

  • Avanzar el cabezal lector/escritor hacia la derecha.

  • Avanzar el cabezal lector/escritor hacia la izquierda.

El cómputo es determinado a partir de una tabla de estados de la forma:

(estado, valor) (nuevo estado, nuevo valor, dirección)

Esta tabla toma como parámetros el estado actual de la máquina y el carácter leído de la cinta, dando la dirección para mover el cabezal, el nuevo estado de la máquina y el valor a escribir en la cinta.


Via: Wikipedia

Implemente una máquina que restara un valor, aqui les dejo la imagen:


lunes, 27 de junio de 2011

Taller Algoritmos Computacionales - Introducción linux

En esta entrada tratare de explicar las configuraciones básicas del ambiente linux;

1. Crear USB booteable
2. Arrancar Linux desde una USB
3. Configuración de la red

Crear USB booteable

Para poder crear un disco de arranque necesitamos la "imagen iso" de alguna versión de ubuntu o alguna distribución de linux. En este caso utilizaremos la "imagen iso" de la versión 11.04 de ubuntu. El tamaño de la

El primer paso a realizar después de tener la "imagen iso" es buscar un creador de discos, en ubuntu existe una herramienta llamada "Startup Disk Creator".



Despues nos desplegara una pantalla como la siguiente, aquí haremos las especificaciones de nuestro disco booteable.




La vista de la ventana puede variar respecto a la versión que se utilice, pero para todos los casos son los mismos pasos a seguir.

Arrancar Linux desde una USB

Ahora que tenemos nuestro disco de arranque necesitamos indicarle a la maquina que queremos iniciar desde nuestro usb, por lo regular las computadoras cuando inician especifican cual es la tecla del orden de booteo, cuando no es asi muestra la tecla de acceso al bios aqui podemos configurar el orden en que arrancan los discos que estan conectados a la maquina.

A continuación se muestran una captura de pantalla del "orden de arranque" pueden variar dependiendo de la maquina.




Imagen tomada de http://xurl.es/5anr5

En la vista de orden de arranque buscaremos algo que se le parezca al nombre del disco desde el que queremos arrancar.

Cuando ya haya arrancado ubuntu nos mostrara una pantalla parecida a la siguiente, donde nos preguntara si queremos utilizar una versión de prueba o instalar linux en la maquina.


Imagen tomada de http://xurl.es/0fr2l

Configurar la red

Para poder tener acceso a internet desde una conexión alambrica tenemos que hacer una configuración de la red. A continuación una breve explicacion de como hacer la configuración de la red en ubuntu en la FIME-UANL. Ojo los campos han sido completados con valores validos en la fime como son la mascara de red, gateway y dns, estos valores no cambian mientras que la ip es el unico que cambia dependiendo de la maquina que se utilice. La ip debe ser diferente para cada maquina ya que si es la misma en dos maquinas entra en un conflicto de ip's; un ejemplo de como seria un conflicto de ip's es si dos personas tuvieran la misma matricula, o el mismo numero telefonico.



Espero y la información sea de utilidad, cualquier duda o comentario no duden en comentarlo.

Aquí les dejo una liga para la descarga de un documento pdf creado por la Dr. Elisa Schaeffer y alumnos de PISIS en la FIME-UANL, sobre herramientas gratuitas del ambiente linux, taller.pdf

lunes, 9 de agosto de 2010

Tarea 1


Aquí publico mi tarea 1 donde defino lo que es para mi la programación

jueves, 8 de julio de 2010

Tarea3


Para la tarea tres trate de crear una aplicación similar al paint, aqui les anexo unas capturas de pantalla de mi programa que aun no esta terminado solo falta me falta poner algun metodo para evitar que dibuje automaticamente una figura al cambiar de boton.

jueves, 24 de junio de 2010

Tarea2



















Estas imagenes muestran un poco el programa realizado para la tarea 2, es un juego tipo laberinto, aunque aun no esta terminado solo falta poner las restricciones para que la pelota no pueda cruzar las lineas.







jueves, 17 de junio de 2010

tarea1

import javax.swing.*;
import java.awt.Color;

import java.awt.event.*;

public class tarea1 implements ActionListener
{
public void actionPerformed(ActionEvent e) {
JPanel p = new JPanel();
String cmd = e.getActionCommand();

if(cmd.equals("ORANGE"))
{

this.miPanel.setBackground(Color.ORANGE);
}
else
if(cmd.equals("RED"))
{
this.miPanel.setBackground(Color.RED);
}

}
private JPanel miPanel;
public tarea1(JPanel p, JLabel x)
{
this.miPanel = p;
}
public static void main(String[] args) {

JFrame f = new JFrame();

f.setSize(200, 300);
f.setLocation(100, 200);
f.setTitle("tarea1");

JPanel p = new JPanel();
JLabel llamado = new JLabel();
tarea1 es = new tarea1(p, llamado);
JButton a = new JButton("+");
JButton r = new JButton("-");
a.addActionListener(es);
a.setActionCommand("ORANGE");
r.addActionListener(es);
r.setActionCommand("RED");

p.add(a);
p.add(r);

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setContentPane(p);
f.setVisible(true);
return;
}

}

este es un programa sencillo con dos botones que al presionarlos cambian el fondo entre dos colores definidos; La idea original era que a partr del background definido aleatoriamente con formato RGB, este se pudiera modificar mediante los dos botones que utilize en el programa y genere nuevos colores, pero no pude crear un metodo para modificar el RGB, pero lo seguire buscando y cuando tenga el programa lo publico para que lo chequen