sábado, 31 de diciembre de 2011

El código siguiente sirve para devolver la cota X e Y de un cuadrado en la foto de fondo negro. Es una especie de seguimiento de un objeto pero analizando una foto.  Si vamos editando la posición del caudrado, la X e Y cambiarán.



Teniendo una imagen con un cuadrado y fondo oscuro devuelve el centro en X,Y de dicho bloque
%Ejemplo que usa la "Image Processing Toolbox" de Matlab para buscar
%el centro de un objeto y devuelve las coordenadas X Y del mismo.

%Editar el fichero formas12.jpg moviendo el cuadrado y observar que las X e Y cambian

close all
image=imread('c:\formas12.jpg'); % Lee el fichero y lo carga en la variable image
img=im2bw(image);              
imshow(img);                   
[label num] = bwlabel(img,8);    %Etiqueta grupos de pixeles conectados en la imagen binaria encontrados en la variable ...
                                %...img con área > de 8 pixeles.
                                % [label num] = bwlabel(img, n)  Genera una matriz donde los valores a 0 son el fondo y
                                % los valores con mismo número son zonas de pixeles conectadas.
                                % El número num se cambia según qué grupo de píxeles conectados sea.
                               
                                % Si se observa la matriz resultante (quitar el ; de la línea bwlabel(img,8);), el valor de cada
                                % celda de dicha matriz indica, si es cero (fondo) y los otros valores zonas de píxeles vecinos.
                                % El número mayor será el mismo que el total de grupos depíxeles que se han encontrado.

pause (1) %pausa de n sgs.
imshow(label2rgb(label)); %Muestra la imagen coloreando las zonas de distinto color para identificar cada grupo u objeto

pause(1)
graindata=regionprops(label,'all');


for i=1:num   
    if  graindata(i).Eccentricity >0 %Excentricidad > 0 implica que la forma se aleja de ser redonda.
      
        found=i;
        area=graindata(found).Area;
        radius=sqrt(area/pi);
        radius=1.2*radius;
        centroid=graindata(found).Centroid;
       
        centro=num2str(centroid)
        text(centroid(1)-22,centroid(2), centro)
        text(centroid(1), centroid(2),'·')
       
        t=0:pi/20:2*pi;
        x=centroid(1)+radius*cos(t); 
        y=centroid(2)+radius*sin(t);
        
       
        hold on;
        plot(x,y);
end
end



Editar el jpg y mover el cuadrado y ejecutar el código

viernes, 30 de diciembre de 2011

Conceptos básicos de extracción de características de una foto usando Matlab

Adjunto el código de un fichero *.m de matlab para detectar en un fichero de imagen dónde están los círculos.

Guardar con el nombre, p.ej.    DetecCir.m y ejecutar en Matlab. El fichero que se evalúa es el indicado abajo en rojo, cuya foto es ésta.





Contenido el fichero           DetecCir.m

%Ejemplo que usa la "Image Processing Toolbox" de Matlab para buscar círculos en una foto


%Para ver cómo se ve la excentricidad usar fichero formas.jpg
%Para buscar círculos usar fichero formas2.jpg


close all
image=imread('c:\formas2.jpg');     % Lee el fichero y lo carga en la variable ? image
img=im2bw(image);               % Binariza la imagen y la guarda en la variable ? img
imshow(img);                    % Muestra la imagenen binaria de la variable img en la pantalla
[label num] = bwlabel(img,8);   %Etiqueta los objetos encontrados en la variable img con área > de 8 pixeles
impixelregion %Muestra el tool con el que se puede ver el valor de cada pixel
graindata=regionprops(label,'all');
for i=1:num    
if  graindata(i).Eccentricity < 0.5 %Excentricidad > 0 implica que la forma se aleja de ser redonda. 
        found=i;
        area=graindata(found).Area;
        radius=sqrt(area/pi);
        radius=1.2*radius;
        centroid=graindata(found).Centroid;
t=0:pi/20:2*pi;
x=centroid(1)+radius*cos(t);  
y=centroid(2)+radius*sin(t);
hold on;
        plot(x,y);
end
end




Resultadio:



If you did like this project you can donate some cents of Bitcoins SV in the following address.
1sAZQMy5Ci1G88CmbucFJDsF7TxeXAcko
or bitcoin cash in the address:
qzmjpeqrlgd3flltpavm9t2xh0nz8y97mggajvvqnv
thanks😊

miércoles, 28 de diciembre de 2011

Control de la horizontalidad de un plato, con dos ejes motorizados

Adjunto un video con el que se puede ver cómo aplicar los reguladores PID y/o reguladores basados en lógica borrosa para controlar la horizontalidad de un plato, haciendo una comparativa entre ambos métodos de regulación. El plato es movido por dos motores Futaba S3003 que han sido trucados para que se comporten como un motor de corriente contínua. Los controladores PID y Fuzzy se han implementado en un modelo de Simulink y se ha usado una tarjeta de adquisición de datos USB6008 y algunos pocos componentes electrónicos para dar la corriente necesaria a los dos motores, así como cambiar la polaridad mediante dos relés OMRON. Como realimentación de la horizontalidad, dos ejes, X e Y,  he usado un inclinómetros de dos ejes, modelo SCA1000 que nos da un voltaje analógico por eje. Ese voltaje es proporcional al ángulo de inclinación sobre cada eje, y se han conecatdo a sendas entradas analógicas de la tarjeta de adquisición USB6008.
La regulación de la velocidad de cada motor se ha hecho mediante un PWM por eje que actúa sobre dos salidas digitales que controlan dos transistores Mosfet IRF840. Otras dos salidas digitales se encargan de invertir el sentido de giro de cada motor al actuar sobre dos relés, ayudado de un 7407 como driver para las bobinas de los relés.

Al final del video se ve un poco cómo funciona el prototipo.


Para más info rjuarez7@gmail.com
Enlace en Youtube en caso de no poder ver el video:   http://youtu.be/X15YVBYuZKA
------------------------------------------------------
Para saber más sobre Fuzzy Logic / Lógica borrosa echar un vistazo a este otro
video mío en YouTube: http://youtu.be/NzRwaC3ngms

Para saber más sobre cómo ajustar un PID echar un vistazo a este video que se publica en YouTube: http://www.youtube.com/watch?v=wbmEUi2p-nA&feature=colike

martes, 27 de diciembre de 2011

PID using Fuzzy logic Toolbox from Simulink

This video shows how to use the Fuzzy logic Toolbox from Simulink to implement a PID regulator. rjuarez7@gmail.com


Look at the Video en Youtube: PID using Fuzzy Toolbox

If you did like this project you can donate some cents of Bitcoins SV in the following address.
1sAZQMy5Ci1G88CmbucFJDsF7TxeXAcko
or bitcoin cash in the address:
qzmjpeqrlgd3flltpavm9t2xh0nz8y97mggajvvqnv
thanks😊

Regulación Automática de Máquinas y Procesos

NOMBRE ASIGNATURA:
REGULACIÓN Y AUTOMATIZACIÓN DE MÁQUINAS Y PROCESOS (RAMP)

TÍTULO:
Ingeniero Técnico Industrial, especialidad en Mecánica.

DEPARTAMENTO:
Ingeniería Electrónica.

PERIODO:
CURSO 3º, CUATRIMESTRE 5º

CONTENIDOS:
Teórico y Prácticos

Contenido Teórico:

Unidad temática 1: Introducción al control automático
·         Historia del control automático, sistemas de la antigüedad.
·         Introducción al control automático.
·         Introducción de conceptos básicos:
o        Variables de entrada salida.
o        Perturbaciones.
o        Planta.
o        Realimentación
o        Bucle abierto y cerrado.
o        Regulador.
o        Función de transferencia.
o        Error
o        Transitorio/Régimen permanente.
o        Condiciones iniciales.
o        Respuesta libre/forzada.
o        Bucle abierto/cerrado.
o        Ganancia
o       Punto funcionamiento.

·        Ejemplos de sistemas de control.
·         

Unidad temática 2: Análisis de la respuesta temporal y lugar de las raíces
·        Dominio temporal y dominio complejo en S (jw).
·        Transformadas de Laplace.
·        Función de transferencia.
·        Polos y ceros.
·        Lugar de las raíces.
·        Criterio de estabilidad en el lugar de las raíces, plano S
·        Identificación experimental de sistemas
·        Sistemas de 1er Orden
·        Parámetros sistemas de 1er orden, te, thau, ganancia estática
·        Identificación experimental.
·        Ejercicios
·        Sistemas de 2º Orden.
·        Parámetros sistemas de 2º órden: Te, Tp, Mp, Sobreoscilación, Wp,Wn...
·        Identificación experimental
·        Ejercicios
·        Bucle abierto cerrado y regulador.
·        Respuesta de sistemas en bucle abierto y cerrado.
·        Influencia de los polos.

Unidad temática 3: Diseño de reguladores
  • Acciones básicas de control.
  • Acción P, I y D.
  • Diseño de reguladores P, PI, PD y PID. Mediante el estudio en el lugar de las raíces.
    • Ejercicios de diseño de reguladores.
    • Significado de Kp,Ki y Kd
  • Diseño de reguladores mediante el método de Ziegler-Nichols o de la oscilación mantenida.
  • Criterios para la simplificación de funciones de transferencia de grado superior.

Unidad temática 4: Regulación de la velocidad de motores de corriente alterna.
·        Motor de jaula de ardilla.
·        Conexionado.
·        Curvas Par/frecuencia.
·        Variación de la velocidad mediante el uso de variadores de velocidad.
·        Diagramas de bloques de los variadores de velocidad.
·        Frenado de motores.
·        Potencia necesaria para el variador.
·        Ejemplo de variadores de frecuencia industriales.
o       Diagrama de bornas.
o       Bloques.
o       Parametrización.
o       Parámetros, modificación y valores.

Unidad temática 5: GRAFCET y Control Aplicado
·        Diseño de automatismos mediante el diagrama Etapa Transición. GRAFCET.
·        Metodología del diseño. Ecuaciones con prioridad al set y al reset.
·        Ejemplos.
o       Ejercicio cruce de semáforos.
o       Eje. Sistema de transbordo.
  • Aplicaciones industriales en los automatismos.
  • Aplicaciones para la programación de PLCs
  • Seguridades y protecciones.
  • PLCs industriales.
  • Buses de campo.
  • Robots industriales.
  • Variadores industriales : Micromaster (Siemens) , Ecodrive DKC01.1 (Indramat).
  • Transductores de posición.
    • Medidores de distancia o posición:
    • Codificadores incrementales.
    • Codificadores absolutos.
    • Otros transductores: Potenciómetro,
    • Sincros y Resolvers, Inductosyn.
    • Detectores de proximidad
    • Inclinómetros de 2 ejes SCA1000 de VTI Tecnologies
  • Transductores de velocidad:
    • Dinamo taquimétrica.
    • Generadores de impulsos.


Unidad temática 6:
·        Introducción a sistemas en Lógica difusa (Fuzzy Logic)
·        La realidad es Fuzzy
·        Regulador Fuzzy versus regulador tradicional
·        Ejemplos:
o       Control de un tanque.
o       Sistema de control de horizontalidad usando inclinómetros.
o       Regulador PID con parámetros sintonizables.


Contenido Práctico:

·         Práctica 1: P1 Introducción al Matlab y Simulink
·         Práctica 2: P2 Respuesta Temporal y lugar de las raíces
·         Práctica 3: P3 Diseño algebraico del regulador que cumpla las especificaciones dadas
·         Práctica 4a: P4a  Sintonización de un regulador PID de manera empírica
·         Práctica 4: P4 Sintonización de reguladores PID mediante el método de Ziegler Nichols
·         Práctica 5: P5 Introducción a la Lógica Borrosa_Diseño de un sistema basado en lógica borrosa mediante el uso de Simulink.
·         Práctica 6: P6 fuzzy LOGIC Cont.
·         Práctica 7: P7 PID Fuzzy paso a paso
·         Práctica 8: P8 Programar un cruce de semáforos con Grafcet en el PLC
·         Práctica 9: P9 Grafcet sistema de trasbordo _PLC
·         Práctica 10: P10 Variador de frecuencia Siemens Micromaster .Descripción manejo entrenador prácticas regulación velocidad con Micromaster.Bloques variador, regulación v/f, compens IxR, Conexionado Υ/Δ. Frenado. Fto a par cte,cuadrático....
·         Práctica 11: P11 Variador de frecuencia para motor brushless  Indramat Ecodrive DKC01.1.
·         Práctica 12: P12 Ecodrive usb6008 y acelerómetro

+ Trabajo tutorizado sobre aspectos aplicados en la asignatura.