Sei sulla pagina 1di 33

Elaborado por: Ing.

Carlos Rondon
Universidad de Oriente
Ncleo Anzotegui
Dpto. de Ingeniera Elctrica
Postgrado En Automatizacin e Informtica Industrial




Trabajo Final






Profesor Integrantes:
Danilo Navarro Carlos Rondon C.I.: 8.237.197
Juan Vasquez

Gustavo Tayupo

Asignatura
Diseo de Controladores Digitales

Elaborado por: Ing.Carlos Rondon
Introduccin

El sistema de levitacin magntica ha sido muy estudiado anteriormente debido a
su utilidad en la demostracin de muchos principios bsicos de ingeniera de
control aunque tambin ha sido empleado para la aplicacin de diversas tcnicas
de control ms complejas o innovadoras, desde control clsico hasta control lineal
robusto, pasando por control adaptativo, control difuso, control por redes
neuronales, por mencionar algunos.

Desde los primeros estudios, la levitacin magntica ha sido implementada en
varias aplicaciones, por ejemplo, sistemas de transporte de alta velocidad
(maglev1) en Shanghi (desarrollado por la compaa alemana Transrapid
International), Japn (Central Japan Railway) y Alemania, levitacin en fluidos de
alta viscosidad y densidad [33], sistemas de aislamiento de vibracin [32],
levitacin de modelos de tneles de viento, por citar algunas de las diversas
aplicaciones.

En el presente trabajo se comprueba la regulacin de la levitacin magntica
mediante un proyecto consistente en un prctico sistema levitante que a su vez
funciona como prototipo de pruebas.


OBJETIVO GENERAL


CONSTRUCCIN DE UN LEVITADOR MAGNTICO PARA PRCTICAS DE
CONTROL AUTOMTICO REALIMENTADO, ASISTIDO CON HERRAMIENTAS
DE LOS PROGRAMAS MATLAB


Mantener suspendida una esfera de metal ajustando la corriente en un electroimn
mediante el voltaje de entrada. Levitacin magntica

OBJETIVO ESPECIFICO


Implementar en forma fsica una plataforma de levitacin magntica.

Hacer un estudio de un controlador PID con el apoyo de Matlab para el modelado y
simulacin.

Elaborado por: Ing.Carlos Rondon

Implementar el controlador digital en Arduino para que pueda conectarse a la
plataforma.

Mostrar la facilidad de conexin y monitoreo con una computadora porttil

Disear e implementar de manera ptima el mecanismo que genera el campo
magntico.

Presentar el sistema de control con las caractersticas de un prototipo para
ensayos seguros de laboratorio.


MARCO TEORICO

Levitacin magntica

La levitacin magntica puede definirse como un mtodo por el cual un objeto es
mantenido a flote por accin nicamente de un campo magntico En otras
palabras, la levitacin magntica se contrapone a la gravedad.

Un levitador magntico consiste de una bobina, en la cual, al hacer circular una
corriente se genera una fuerza magntica. Dicha fuerza acta sobre materiales
ferromagnticos, en este caso una pequea esfera de metal, a la que, mediante
un controlador se tratar de mantener en el aire a una altura fija. Por tanto
debemos encontrar las ecuaciones que relacionen a los componentes de la planta
basndonos en el diagrama de cuerpo libre de la esfera. Otro requisito es obtener
una expresin de la fuerza magntica en funcin de las variables que vamos a
controlar, esto es, corriente y posicin.

Principios de levitacin

La levitacin magntica es un tema de considerable inters desde la dcada de
los treinta del siglo pasado, segn Hurley, W. G., W. Wlfle, (1997)

En el estudio de la levitacin se puede encontrar dos principios bsicos, principio
de levitacin por atraccin y principio de levitacin por repulsin, en donde el
primero de estos principios resulta muy atractivo en la investigacin cientfica por
su no linealidad e inestabilidad.


Principio de levitacin por repulsin

En la levitacin por repulsin, las corrientes inducidas en un cuerpo conductor
generan las fuerzas de levitacin. Este sistema es estable en su eje vertical, y
tiene un punto de equilibrio natural.
Elaborado por: Ing.Carlos Rondon
Principio de levitacin por atraccin

En este principio de levitacin, un cuerpo es atrado por un flujo magntico en
contra de la gravedad. El equilibro que se produce entre la fuerza de atraccin del
electroimn y la fuerza de gravedad es inestable, por lo que la levitacin por
atraccin es prcticamente imposible sin la ayuda de un sistema de control. Este
es el principio de levitacin que se desarrollar en este trabajo.

Electromagnetismo

En esta parte del trabajo se presentan algunas definiciones bsicas sobre el
electromagnetismo, las cuales son fundamentales comprender para entender el
funcionamiento del sistema de levitacin magntica.

Principios del electromagnetismo

El magnetismo y la electricidad se desarrollaron de forma independiente uno de la
otra hasta 1820, cuando el cientfico dans Hans Christian Oersted (1777-1851)
observ una relacin entre ellas, demostrando que una corriente elctrica genera
un campo magntico. El electromagnetismo fue impulsado por muchos
investigadores y poco despus Michael Faraday (1791-1867) descubri que un
imn en las proximidades de un cable induce en ste una corriente elctrica, y que
por lo mismo puede emplearse un campo magntico para crear una corriente
elctrica; en 1873 James Clerk Maxwell (1831-1879) unific las teoras de Oersted
y Faraday y junto con otros factores experimentales condujeron al desarrollo de la
teora electromagntica y a la asociacin entre los campos magnticos y
elctricos. Y as surgen las frmulas y leyes del electromagnetismo que se
conocen actualmente.

METODOLOGIA DE RESOLUCION
1) Modelo Matemtico
Obtencin del Modelo del Sistema por variable de estado
Linealizacion del Sistema
Conversin a Funcin de Transferencia
2) Anlisis de Comportamiento del Sistema a Lazo Abierto
Respuesta en el tiempo Continuo
Respuesta de frecuencia
3) Diseo de controlador PID
4) Anlisis de Comportamiento del Sistema a Lazo Cerrado
Respuesta en el tiempo Continuo
Respuesta de frecuencia
5) Modelo de controlador digital
6) Anlisis de Respuesta en el tiempo discreto
7) Algoritmo de Control PID
8) Implementacion

Elaborado por: Ing.Carlos Rondon
MODELO MATEMTICO DEL SISTEMA

En la Figura 1 se muestra un sistema de suspensin o levitacin magntica que
permite mantener suspendida una pequea esfera metlica de masa m en contra
de la fuerza de gravedad. En el sistema se regula el valor de la corriente i(t) del
circuito del electroimn, de tal forma que la esfera se mantenga suspendida a una
distancia constante y(t) = X, del electroimn.

La tensin o voltaje aplicado al circuito es V(t) y acta como variable de control.


Figura 1. Esquema simplificado del sistema de levitacin magntica.

Las ecuaciones diferenciales que describen el comportamiento dinmico del
sistema son:





donde i(t) es la corriente del circuito y y(t) es el desplazamiento de la esfera
medido desde el electroimn, L es la inductancia de la bobina del electroimn, C
es una constante conocida y fm(y,t) es la fuerza de atraccin que ejerce el
magneto sobre la esfera.

Escogiendo como variables de estado la esfera



Elaborado por: Ing.Carlos Rondon



la entrada u como el voltaje aplicado a la bobina y la salida y es el desplazamiento
de la esfera y, el sistema queda descrito por el siguiente conjunto de ecuaciones
diferenciales de primer orden:





LINEALIZACIN DEL SISTEMA DE LEVITACIN

Para linealizar el sistema usando la teora de estabilidad de Lyapunov [12] el
primer paso es calcular el punto de equilibrio en .


Entonces,






Parametrizando en funcin del valor deseado de la distancia se tiene:



Finalmente el punto de equilibrio es:

Elaborado por: Ing.Carlos Rondon


para una entrada





Para el clculo del sistema lineal alrededor del punto de equilibrio, se definen las
variables de estado incrementales:




Luego el sistema de ecuaciones diferenciales lineales obtenidas del proceso de
linealizacin alrededor del punto de equilibrio es:

(t)



La matriz A del sistema linealizado alrededor del punto de equilibrio se calcula
aplicando el Jacobiano al sistema no-lineal:



El vector b est dado por:

Elaborado por: Ing.Carlos Rondon



Y el vector c es:







FUNCION DE TRANSFERENCIA DEL SISTEMA DE LEVITACIN MAGNTICA

Para la simulacin del sistema se escogieron los parmetros mostrados en la
Tabla 1.

Parmetro Valor
X 0.02 m
C 0.5
m 0.01 Kg
R 10
L 0.2 H
g
10 m/



Tabla 1. Parmetros del sistema

Aplicando un codigo realizado en MATLAB tenemos:

X=0.02; % metros
CC=0.5; % Constante
m=0.01; % Kg
R=10; % ohms
L=0.2; % Henry
g=10; % m/s^2
A=[0 1 0;(2*g)/X 0 -2*sqrt((CC*g)/(m*X^2));0 0 -R/L]
B=[0;0;1/L]
C=[1 0 0]
D=[0];
% Crea modelo de espacio de estado de tiempo continuo
GH=ss(A,B,C,D);
% Convierte de Modelo de Espacio de Estado a Funcin de Transferencia
sys=tf(GH)
Elaborado por: Ing.Carlos Rondon
% Convierte de Modelo de Espacio de Estado Funcin de Transferencia en forma
de zeros y polos
sys1=zpk(GH)


y se obtiene la siguiente salida

A =

1.0e+003 *

0 0.0010 0
1.0000 0 -2.2361
0 0 -0.0500


B =

0
0
5


C =

1 0 0


Transfer function:
-1.118e004
-----------------------------
s^3 + 50 s^2 - 1000 s - 50000


Zero/pole/gain:
-11180.3399
--------------------------
(s-31.62) (s+31.62) (s+50)

Se obtiene la funcin de transferencia de lazo abierto del sistema






Elaborado por: Ing.Carlos Rondon
Teniendo la funcin de transferencia de la planta dada en (3), se utiliza la herramienta
Simulink de Matlab para observar el comportamiento del sistema en tiempo y en
frecuencia y tambien el lugar geomtrico de las races del sistema mostrado
continuacin

Elaborado por: Ing.Carlos Rondon
Anlisis de Comportamiento del Sistema a Lazo Abierto

Respuesta en el tiempo


Diagrama de bloques del sistema lazo abierto en Simulink


Comportamiento del Sistema Lazo Abierto en Simulink



Step1 Scope
-11180.33
s +50s -1000s-50000
3 2
Levi tador Fcn
0
Di spl ay
Elaborado por: Ing.Carlos Rondon

Lugar geomtrico de las races del sistema (3)

Respuesta de frecuencia



resultando la siguiente ecuacin caracterstica:



Los polos del sistema estn ubicados en s1 = 31.6228, s2 = 31.6228, s3 = 50.
Se observa que hay un polo en el semiplano derecho del plano de la frecuencia
compleja s = + j. De esto se deduce que el sistema de levitacin es inestable.


-80 -60 -40 -20 0 20 40 60 80 100
-100
-80
-60
-40
-20
0
20
40
60
80
100
Root Locus
Real Axis
I
m
a
g
i
n
a
r
y

A
x
i
s
-100
-80
-60
-40
-20
0
M
a
g
n
i
t
u
d
e

(
d
B
)
10
0
10
1
10
2
10
3
-90
-45
0
P
h
a
s
e

(
d
e
g
)
Bode Diagram
Frequency (rad/sec)
Elaborado por: Ing.Carlos Rondon
DISEO DEL CONTROLADOR

Un controlador proporcional no es suficiente para estabilizar el sistema, por lo que
en este captulo se describe el diseo de un controlador proporcional, integral y
derivativo (por sus siglas PID), para su diseo se utilizar un mtodo indirecto
como lo es el anlisis del lugar geomtrico de las races (LGR de Evans) y
posteriormente se llevar a cabo las respectivas simulaciones mediante el
programa Matlab para observar cual es la respuesta del sistema ante una entrada
escaln unitario

La funcin operativa del regulador se defini entonces para que mantenga
suspendido el objeto metlico en un punto de equilibrio nominal, mediante la
manipulacin de la corriente que pasa por el electroimn. Cuando el sistema
permanece en el punto de equilibrio estable, cualquier perturbacin ya sea, o por
movimiento intencionado del objeto o por la variacin de la tensin de entrada al
electroimn, por ejemplo, lo har oscilar alrededor de este punto hasta quedar con
un error de estado estable definido por el usuario.

Como especificacin de diseo se escogi un sobreimpulso mximo del 0.8%,
buscando que el objeto no se elevara hasta alcanzar el electroimn y, teniendo en
cuenta el tiempo que tarda el objeto en bajar, se defini un tiempo de
asentamiento 0.5 segundos. El tiempo de asentamiento y el sobreimpulso sp en
porcentaje se calculan de la forma,



donde la frecuencia natural y el coeficiente de amortiguamiento toman
los valores de 9.5444 y0.8382 , respectivamente. Mediante estos
coeficientes se pueden calcular los polos dominantes en lazo cerrado que
tendr el sistema empleando la relacin

Agregando el siguiente cdigo en MatLab al anterior tenemos
SP =0.8; % Sobreimpulso
Ts =0.5; % Tiempo de Establecimiento
H=102; % Ganancia del Sensor de efecto hall
Elaborado por: Ing.Carlos Rondon
GH=H*GH;
sy=tf(GH)
% Funcin de Transferencia de Lazo Abierto Obtenido
[N,D] = tfdata(GH,'v');
Xi = sqrt((log(SP/100))^2/(pi^2+(log(SP/100))^2));
Wn = 4/(Ts*Xi); % Frecuencia
SD = -Xi*Wn + Wn*sqrt(1-Xi^2)*i;
% Polos Deseado segun criterio de diseo
AGH = angle(polyval(N,SD)) - angle(polyval(D,SD)); %
Angulo de la Planta
ASD = angle(SD);
% Angulo del POLO deseado
ACONT = -pi - AGH;
% Angulo que debe aportar el controlador PID
PHI = -pi + ASD - AGH;

%M --> MAGNITUDES
MCONT = abs(polyval(D,SD))/abs(polyval(N,SD));
MSD=abs(SD);
a=real(SD);
b=imag(SD);

%CALCULO PARA EL CONTROLADOR PID
AZ1 = PHI/3;
%Se asume Z1 para calular Z2
AZ2 = PHI - AZ1;
Z1 = (b/tan(AZ1))-a;
Z2 = (b/tan(AZ2))-a;
Elaborado por: Ing.Carlos Rondon

disp('PARAMETROS PARA EL CONTROLADOR PID');
Td = 1/(Z1+Z2);
Ti = 1/(Z1*Z2*Td);
Kc = MCONT*MSD/(Td*abs(SD+Z1)*abs(SD+Z2));
Kp=-Kc
Ki=-Kc/Ti
8 Kd=-Kc*Td

Salida del programa
Polos Deseados
SD =
-8.0000 + 5.2053i
-8.0000 - 5.2053i

PARAMETROS PARA EL CONTROLADOR PID
Kp =
-0.1788
Ki =
-0.7531
Kd =
-0.0097

Elaborado por: Ing.Carlos Rondon
La funcin de transferencia del controlador PID est dada por












Agregando el siguiente cdigo en MatLab al anterior tenemos
disp('FUNCION DE TRANSFERENCIA DEL CONTROLADOR PID');
GC3=Kp*tf([Ti*Td Ti 1],[0 Ti 0])
GLCpid = feedback(GC3*sys1*H,1)
%Determinamos la funcin de transferencia a lazo cerrado
figure(3)
rlocus(GLCpid)
figure(4)
bode(GLCpid)
% ----------------
[y1 t1]=step(GLCpid,0:Ts*2/100:Ts*2);
[y2 t2]=step(GH,0:Ts*4/100:Ts*4);
% ------------------------------------------
figure(5);
plot(t1,y1,'b');
title('Respuesta Controlador(PID)+Planta por LGR');
grid
dt
t de
K dt t e K t e K t u
D I P
) (
) ( ) ( ) (

s K
s
K
K
s E
s U
s G
D
I
P c

) (
) (
) (
Elaborado por: Ing.Carlos Rondon
xlabel('Tiempo(Seg)')
ylabel('Posicion(m)')
legend('Controlador(PID)+Planta
Retroalimentado','Planta','Location','SouthEast')
disp(' ')

Salida del programa
FUNCION DE TRANSFERENCIA DEL CONTROLADOR PID

Transfer function:
-0.002304 s^2 - 0.04247 s - 0.1788
----------------------------------
0.2375 s

Zero/pole/gain:
11063.0595 (s+6.51) (s+11.92)
----------------------------------------
(s^2 + 16s + 91.09) (s^2 + 34s + 9428)





Elaborado por: Ing.Carlos Rondon
Anlisis de Comportamiento del Sistema a Lazo Cerrado

Respuesta en el tiempo a entrada escaln


Respuesta al escaln unitario del sistema compensado.

La respuesta en el tiempo del sistema regulado se muestra. De esta
figura se observa que el sistema tiende al estado estable ante una
entrada tipo escaln con un error pequeo. De igual manera se observa
que el diseo satisface las condiciones de operacin impuestas sobre el
controlador.

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
Respuesta Controlador(PID)+Planta por LGR
Tiempo(Seg)
P
o
s
i
c
i
o
n
(
m
)
Controlador(PID)+Planta Retroalimentado
Elaborado por: Ing.Carlos Rondon

El lugar de las races alrededor del punto de operacin se muestra.

La forma del lugar geomtrico de las races, permite validar el diseo porque sus
ramales pasan por el punto de diseo de los factores y , los cuales afectan el
tiempo de asentamiento. Finalmente, los seros, polos, zeros y k del sistema
compensado en lazo cerrado son:

Z =

-6.5102
-11.9245

P =

-17.0000 +95.5979i
-17.0000 -95.5979i
-8.0000 + 5.2053i
-8.0000 - 5.2053i

K =

1.1063e+004

Por el criterio de polos dominantes el sistema se puede aproximar mediante uno
de segundo orden, ya que los polos en -17.0000 +95.5979i y -17.0000 -95.5979i
estn muy alejados del par de polos complejos conjugados dominantes.

-18 -16 -14 -12 -10 -8 -6 -4 -2 0
-200
-150
-100
-50
0
50
100
150
200
Root Locus
Real Axis
I
m
a
g
i
n
a
r
y

A
x
i
s
Elaborado por: Ing.Carlos Rondon
Respuesta de frecuencia









-40
-30
-20
-10
0
10
20
M
a
g
n
i
t
u
d
e

(
d
B
)
10
-1
10
0
10
1
10
2
10
3
-180
-135
-90
-45
0
45
P
h
a
s
e

(
d
e
g
)
Bode Diagram
Frequency (rad/sec)
Elaborado por: Ing.Carlos Rondon
Modelo de controlador digital

A travs del Mtodo indirecto por Integracin Trapezoidal se obtiene el modelo del
controlador discreto de la forma siguiente:





Agregando el siguiente cdigo en MatLab al anterior tenemos
% Calcula el Ancho de Banda
ABanda=bandwidth(GH);

% Calculo de Tiempo de Muestreo
Tm=1/(30*ABanda)

% Se convierte El sistema de Continuo a Discreto

sysD=c2d(GH,Tm,'zoh');
sysD1=tf(sysD)

% Se convierte El controlador de Continuo a Discreto

z=tf('z')
%ContrlD=((Kp+Kd/Tm+Tm*Ki)*z^2-(Kp+(2*Kd)/Tm)*z+Kd/Tm)/(z*(z-1))
ContrlD=((Kp+Kd/Tm)*z^2+(Tm*Ki-Kp-(2*Kd)/Tm)*z+Kd/Tm)/(z*(z-1))

Salida del programa
Tm =
0.0018

Transfer function:
-0.001158 z^2 - 0.004528 z - 0.001106
-------------------------------------
z^3 - 2.915 z^2 + 2.827 z - 0.9121

Sampling time: 0.0018403

Transfer function:
-5.45 z^2 + 10.72 z - 5.271
---------------------------
z^2 - z

) 1 (
/ ) / 2 2 / ( ) / 2 / (
) (
2

z z
T K z T K K TK z T K TK K
z G
D D P I D I P
c
Elaborado por: Ing.Carlos Rondon
Anlisis de Respuesta en el tiempo discreto


Zero-Order
Hol d
102
Sensor2
102
Sensor1
Scope
Referenci a
-11180.33
s +50s -1000s-50000
3 2
Levi tador 1
1.001
Di spl ay1
-5.45z +10.72z-5.271
2
z -z
2
Di screte
Transfer Fcn
-0.178
kpp
-0.753
ki
-0.009
kd
Zero-Order
Hol d
102
Sensor2
102
Sensor1
102
Sensor
Scope
Referenci a
-11180.33
s +50s -1000s-50000
3 2
Levi tador 1
-11180.33
s +50s -1000s-50000
3 2
Levi tador
1
s
Integrator
0
Di spl ay1
0
Di spl ay
-5.45z +10.72z-5.271
2
z -z
2
Di screte
Transfer Fcn
du/dt
Deri vati ve
Elaborado por: Ing.Carlos Rondon








Elaborado por: Ing.Carlos Rondon
ALGORITMO DE CONTROL PID

Al obtener la ecuacin en diferencia del controlador de la salida del programa en
MatLab tenemos





Se debe representar la funcin en Z del regulador como:




con





donde : a=-5.45 b=-10.72 y c=-5.271

y corresponde a



Se aplica el siguiente algoritmo mediante tres bloques:

1.INICIALIZACION
2.INTERRUPCION
3 MANDO

INICIALIZACION
1.1 Inicio de Inicializacion
1.2. Se habilita entrada para el sensor.
1.3 Se habilita salida para el pwm y giros
1.4. Se habilita interrupcin
1.5 Se inicializa referencia a 2 cms
1.6 Se inicializa error[0], error[1] y error[2] y distanciaLeidaAnterior a cero
1.7 Fin de Inicializacin



Elaborado por: Ing.Carlos Rondon
INTERRUPCION
2.1 Inicio de Interrupcion
2.2.- Activa interrucion cada 0.0018 que es el tiempo de muestreo calculado
2.3- Lee datos del sensor por entrada habilitada.
2.4- Convierte a Voltaje por la formula: volts = lectura*0.0048828125; // rango
(5/1024)

2.5- Convierte a distancia: distanciaLeida
2.6 Fin de interrupcin

MANDO

3.1 Inicio de Ciclo de Mando
3.2 Se guardan valores anteriores: error[2]=error[1], error[1]=error[0],
distanciaLeidaAnterior= distanciaLeidaActual
3.3 distanciaLeidaActual= distanciaLeida(sensor)
3.4 Calcula error[0]:Referencia-distanciaLeidaActual
3.5 Computa factor PID (Segn Modelo Obtenido)
duty = distanciaLeidaAnterior-5.45*error[0]+10.72*error[1]+5.27*error[2]

3.6 Traduce el duty a rango 0-255
3.7 Si error[0]>0 entonces gira derecha
de lo contrario gira izquierda
3.8 coloca duty cycle a pwm
3.9 Fin de Ciclo de Mando


IMPLEMENTACION

Caractersticas fsicas del prototipo

Se describen las caractersticas fsicas del prototipo, la descripcin del esquema
general del proyecto con todas las especificaciones y el material utilizado para la
construccin de la plataforma o estructura mecnica del levitador; tambin se da
una descripcin de las caractersticas del objeto metlico a utilizar en la
suspensin.
Tambin se da una descripcin del mecanismo de control que se utiliza para
lograr tener un campo magntico variable y de esta forma lograr mantener
levitando la esfera metlica.

Esquema con todas las especificaciones (medidas fsicas)

Elaborado por: Ing.Carlos Rondon
En la figura se muestra la estructura del levitador magntico en 3D, donde se
puede observar las dimensiones de la estructura mecnica, conformado por un
soporte de madera, el soporte est conformado por 5 piezas: una base superior, la
cual es utilizada como soporte del electroimn, dos paredes laterales en las cuales
es colocado el sensor de posicin; esto ayuda a soportar de mejor manera la base
superior, que contiene el peso del electroimn, tambin se tiene una base inferior
que da soporte al conjunto de piezas anteriormente mencionadas, y con el fin de
elevar un poco la altura de la plataforma se colocan dos piezas pequeas debajo
de la base inferior.

pieza Descripcin Medidas (cm)
A Base superior 20 x 20
B Pared lateral derecha 30 x 20
C Pared lateral izquierda 30 x 20
D Base inferior 45 x 35
E Soporte inferior 35 x 5



Descripcin del hardware:


Bobina enrrollada sobre un tornillo: La resistencia total ser de 10
ohmios y una inductancia de 0.2 Henry, de acuerdo a los parmetros del
modelo matemtico establecido. La bobina son unos metros de cobre
esmaltado de un dimetro aproximado de 0.253mm.

Medida
AWG
Dimetro
(mm)
Seccin
(mm2)
30 0,253

0,0503

Lo importante es que la resistencia total de la bobina sea lo suficientemente alta
para que la intensidad mxima (dependiente del voltaje usado para la bobina) no
supere las especificaciones del driver usado. En funcionamiento normal el
consumo es reducido (unos 20-30 mA) pero cuando estamos haciendo pruebas
muchas veces estaremos aplicando el voltaje al completo.

La bobina se enrollara sobre un tornillo de 8mm de dimetro que forma el ncleo
del electroimn y tendr vueltas y de radio

Sensor

Especificaciones del sensor

Las principales caractersticas que deba tener el sensor son:
Elaborado por: Ing.Carlos Rondon

No contacto: en ningn momento puede haber contacto entre el objeto a levitar y
otra superficie. Por lo que es indispensable que el sensor utilizado no requiera
contacto alguno para realizar la medicin de la posicin de la esfera metlica.

Rango de medida: debido a que las fuerzas que se pueden generar con
electroimanes disminuye con el cuadrado de la distancia, solamente se podr
hacer levitar pocos milmetros, de manera que es muy importante que el sensor
que se elija pueda tenga una buena resolucin para distancias en mm.

Linealidad: el voltaje de salida debe ser proporcional a la distancia que se est
midiendo en un rango considerable de distancia.

Resolucin: como se mencion anteriormente es necesario que es sensor tenga
una buena resolucin.

Influencia de campos magnticos: el sensor utilizado no debe verse afectado
por las magnitudes de los campos presentes debidos al electroimn.
Construccin del prototipo

Rapidez de respuesta: debido a la frecuencia natural del sistema, es
indispensable que se pueda actualizar la informacin de la posicin de la esfera al
menos cada 2 ms. Para tiempos de respuesta ms lentos harn que el control no
alcance a responder correctamente y por lo tanto la esfera metlica se caer o se
pegar al ncleo del electroimn.

Costo: el costo viene a ser un factor muy tomado en cuenta, ya que luego de
revisar que cumpla con las caractersticas tcnicas mnimas, se seleccionar uno
de bajo costo, quiz el que menor costo represente.

Sensor de posicin.

La eleccin del sensor es importante, ya que para controlar el sistema y mantener
suspendida la esfera a una determinada distancia con respecto al ncleo del
electroimn de manera ptima es necesario un buen sensado de la posicin en
que se encuentra dicha esfera.

En principio se obtuvo el |Sharp GP2Y0A21YK0F un sensor de distancia (ver
datasheet en el anexo). Dicho sensor utiliza un mtodo de triangulacin del haz
reflejado lo cual lo hace muy robusto e inmune a la reflectividad del objeto y a la
interferencia de la luz ambiente. Sin embargo, ste mtodo requiere cierto tiempo
de procesamiento durante el cual la seal no puede variar. Se puede deducir que
el tiempo de procesamiento es de unos 40 ms. Esto se puede modelar como un
retardo de transporte, lo cual afecta a la estabilidad del sistema. El modelo
matemtico ser ms complejo de incorporacin por lo tanto desechamos la
incorporacin de este sensor. Se decidi incoporar un sensor lineal con ganancia
102 en base a dos alternativa:
Elaborado por: Ing.Carlos Rondon


1) Se buscara en el mercado un Sensor de flujo magntico basado
en efecto Hall: Un SS49E de Honeywell o un A1302 de Allegro. Lo
importante es que sea un sensor lineal de medida continuo, no uno de
deteccin de polos, que tienen una respuesta binaria. Los sensores
utilizados tienen 3 pines (V, GND y OUTPUT). La alimentacin ha sido con
5V y la salida (en ausencia de campo magntico) es de V/2, lo que
corresponder a 512 una vez convertida en nuestro ADC.
.

Alimentacin de la bobina: Controlada con un Arduino a travs de un
L293D. En el peor de los casos puedo tener una intensidad de 5 Voltios/10
ohm = 0.5A, que est dentro de las posibilidades del driver (L293D) usado.



Soporte para la bobina y el sensor: En el esquema anterior podemos
observar el montaje de la bobina + sensor en un soporte de madera. La
bobina se sujeta al soporte aprovechando el propio tornillo que sirve como
ncleo del electroimn. El sensor se encuentra posicionado justo debajo del
tornillo, oculto en un receso de la madera. Debajo del sensor sera
conveniente poner un material blando (un trozo de goma, espuma o
similar) para que amotige los numerosos golpes que se llevar el sensor
cuando el imn golpee contra l en la fase de pruebas. Tambin se puede
"cerrar" el receso de la madera con algn material (no magntico).

Conexiones: del soporte anterior salen 5 conexiones. Tres de ellas
corresponden al sensor: alimentacin V (5V), tierra GND y la salida del
Elaborado por: Ing.Carlos Rondon
sensor S. Las dos primeras van directamente a Vcc y GND de la placa de
Arduino uno, mientras que la salida del sensor la llevamos al pin que
usaremos como entrada analgica, en nuestro caso.

Las otras dos conexiones (B1 y B2) corresponden a la bobina. Al igual que
pasaba con un motor, no podemos controlar directamente la bobina desde
el Arduino. Como deseamos tener la capacidad de cambiar el sentido de la
corriente (para que el electro atraiga o rechace el imn) usaremos un
puente H como se indic en el tema anterior.

Hemos optado de nuevo por usar (la mitad de) un L293D. De esta forma
las conexiones de la bobina (B1,B2) irn a dos de las salidas del L293D
(OUT1 y OUT2).

Respecto a las lneas de control desde el Arduino, hemos optado por la
configuracin que llambamos de tipo B) en la entrada sobre control de
motores. En dicha configuracin, la salida PWM del Arduino (por ejemplo
RC2) se lleva directamente a una (IN1) de las entradas del driver. El
complementario de la seal PWM (obtenida con un inversor constituido con
un simple transistor) se lleva a la otra entrada IN2.

Como vimos, de esta forma, un duty cicle del 50% en la seal PWM supone
que no estamos actuando sobre el electroiman. Por el contrario, valores de
0 o 1023 suponen una mxima atraccin/repulsa del imn.






ARDUINO UNO
CCT001
D13
D12
D11
D10
D9
D8
D7
D6
D5
D4
D3
D2
D1
D0
A4
A3
A2
A1
A0
RESET
GND
(TX)
(RX)
(PWM)
(PWM)
(PWM)
(PWM)
(PWM)
(PWM)
POWER
330
VCC1
GND1
VCC1
GND1
AREF
SCK
MISO
MOSI
SS
SDA
SCL
IN1
2
OUT1
3
OUT2
6
OUT3
11
OUT4
14
IN2
7
IN3
10
IN4
15
EN1
1
EN2
9
VS
8
VSS
16
GND GND
U1
L293D
L1
0.2
IP+
4
IP-
5
VIOUT
3
VCC
1
GND
2
SENSOR EFECTO HALL
A1302
Integrado en Sustitucion.
(No en Simulacion)
Iman
Elaborado por: Ing.Carlos Rondon
En cuanto al pin ENABLE del L293D podramos dejarlo atado a un nivel alto
(5V) continuamente. De esta forma el driver estara siempre "encendido".
Sin embargo hemos preferido conectarlo a otro pin (RC0) del PIC, para
poder desconectar/conectar el electro desde el programa.

Aunque opcional, esta conexin es muy conveniente. Si por ejemplo el
imn se cae, el sensor detectara que hay que subirlo y el PIC pondra a la
bobina en estado de mxima atraccin. Como el electro no va a tener
fuerza para levantar al imn de la mesa, la situacin se va a mantener. La
bobina va a estar tirando todo el rato, tratando (intilmente) de recuperar
el imn. Lo mismo pasa si el imn llega a pegarse al ncleo del imn. Por
mucho que lo intente el electro no puede vencer dicha fuerza y el imn
seguir pegado al tornillo.

El programa puede detectar estas situaciones a travs del sensor (un error
grande mantenido mucho tiempo, positivo en un caso, negativo en otro) y
en esos casos puede cortar la corriente a la bobina, poniendo a 0 el pin
ENABLE del L293D. En cuanto volvamos a acercar el imn al punto
adecuado, el error volver a tener un valor razonable y se pondr a 1 el
ENABLE, recuperando la funcionalidad del sistema

De esta forma slo estaremos gastando batera cuando el imn est
levitando y no cuando se caiga o lo quitemos.


Puerto serie:Usaremos el puerto serie para mandar los resultados y
recibir rdenes del PC. Como en la placa Arduino disponemos de un
conversos de niveles y un conector USB no tendremos que preocuparnos de
esa parte.
Descripcin del software:
En este proyecto vamos a usar casi todo lo que hemos visto en la materia
microprocesadores:

- Temporizadores e interrupciones para tomar medidas y controlar el
electroimn cada cierto tiempo (unas 500 veces por segundo)
int ip =0;
int valor;
int ip2 =2;

void flash() {
static boolean output = HIGH;

digitalWrite(ledPin, output);
output = !output;
Elaborado por: Ing.Carlos Rondon
}
void setup()
{
attachInterrupt(ip, func, CHANGE);
pinMode(ip2, INPUT);
MsTimer2::set(2000, flash); // 500ms period
MsTimer2::start();
}

void loop()

{
if (valor==1)
{
valor=0;

}
}

void func()
{
valor=1;

}


-Uso del PWM para controlar un electroimn a travs de un puente en H.
// Control de Motor con driver L293D
int valor = 0; // variable que contiene el valor
int Avance = 10; // Avance --> PIN 10
int Retroceso = 11; // Retroceso --> PIN 11
void setup() { } // No es necesario
void loop() {
valor=// lectura sensor//
analogWrite(Retroceso,0); //
}
analogWrite(Avance, valor);
delay(30);
}
analogWrite(Avance, 0);
analogWrite(Retroceso, valor);
delay(30);
}
}
}
Elaborado por: Ing.Carlos Rondon
- Uso del puerto serie para mandar datos al PC y representarlos usando
MALAB.
void setup()

{
Serial.begin(9600); // start the serial port

}

Serial.println(distance); // print the distance
delay(1000); // arbitary wait time.

Programa leearduino.m en MatLab
clc
clear
disp(' ')
disp ('**********************************')
disp ('* Universidad de Oriente *');
disp ('*Postgrado: Ingenieria Electrica *');
disp ('*Especializacion: Automatizacion *');
disp ('* Informatica Industrial*');
disp ('**********************************')
disp(' ')
disp('Realizado por: Ing. Carlos Rondon ')
disp(' ')
%borrar previos
%delete(instrfind({'Port'},{'COM27'}));
%crear objeto serie
s = serial('COM27','BaudRate',9600);
warning('off','MATLAB:serial:fscanf:unsuccessfulRead');
%abrir puerto
fopen(s);

% ejecutar bucle cronometrado
t=0;
while t<30
% leer del puerto serie
a = fscanf(s,'%f');
fprintf('De Arduino:%6.2f \n ',a);
t=t+1;
end

clc;

- Algoritmo tipo PID para el control de la bobina en funcin de los datos del
sensor.
Elaborado por: Ing.Carlos Rondon

/*working variables*/
unsigned long lastTime;
double Input, Output, Setpoint;
double errSum, lastErr;
double kp, ki, kd;
void Compute()
{
/*How long since we last calculated*/
unsigned long now = millis();
double timeChange = (double)(now - lastTime);
/*Compute all the working error variables*/
double error = Setpoint - Input;
errSum += (error * timeChange);
double dErr = (error - lastErr) / timeChange;
/*Compute PID Output*/
Output = kp * error + ki * errSum + kd * dErr;
/*Remember some variables for next time*/
lastErr = error;
lastTime = now;
}
void SetTunings(double Kp, double Ki, double Kd)
{
kp = Kp;
ki = Ki;
kd = Kd;
}

Potrebbero piacerti anche