Sunteți pe pagina 1din 21

UNIVERSIDAD DE ORIENTE

NCLEO DE ANZOTEGUI
POSTGRADO EN INGENIERA ELECTRICA
ESPECIALIZACIN EN AUTOMATIZACIN E INFORMATICA INDUSTRIAL
DISEO DE CONTROLADORES DIGITALES




PROYECTO FINAL
(Control de Posicin de un Robot)





Profesor: Presentado por:
Danilo Navarro Carlos Velsquez C.I. 18.298.958
Yhoanna Lpez C.I. 24.494.304
Fermn Gutirrez C.I. 5.700.424

Barcelona, Enero de 2014
DISEO DE CONTROLADORES DIGITALES

INTRODUCCIN

El desarrollo de robots mviles responde a la necesidad de extender el campo de
aplicacin de la robtica. Un mvil que puede moverse inteligentemente sin la
intervencin humana, tiene un extenso campo de aplicacin.

Los robots mviles con ruedas constituyen una clase de sistemas mecnicos
caracterizados por restricciones cinemticas. Estos emplean diferentes tipos de
locomocin mediante ruedas que les confieren caractersticas y propiedades
diferentes respecto a la eficiencia energtica, dimensiones y maniobrabilidad.

El sistema de control de un robot tiene fundamentalmente tres objetivos: el control
de movimiento (sea para llegar a una posicin o para seguir una trayectoria), el
control de la fuerza que ejerce sobre el entorno, o el control conjunto de
movimiento y de fuerza. En cada caso existen algunas caractersticas particulares.
El robot como sistema a controlar tiene como principales caractersticas el ser un
sistema no lineal, altamente acoplado y variable en el tiempo. La forma ms
comn de representar este tipo de sistemas es mediante la ecuacin:

En este proyecto se describe el diseo y construccin de un robot con control de
posicin en desplazamiento horizontal. Para su construccin se pretende hacer
uso de hardware open source (Arduino) para el sistema de control principal y de
comunicaciones del dispositivo.

La plataforma del Arduino presenta varias ventajas en cuanto a su maniobrabilidad
y la poca cantidad de componentes mecnicos requeridos para su elaboracin.
El sistema de control requiere de un sensor para poder llevar a cabo la
retroalimentacin al sistema, para el cual se utilizara un sensor ultrasnico de
distancia.


DISEO DE CONTROLADORES DIGITALES


FUNDAMENTOS TERICOS
Controlador PID

Introduccin
El controlador PID es un controlador realimentado cuyo propsito es hacer que el
error en estado estacionario, entre la seal de referencia y la seal de salida de la
planta, sea cero.
El control PID es con diferencia el algoritmo de control ms comn, siendo
utilizado en el 95% de los lazos de control que existen en la industria.

Estructura del PID
Las tres componentes de un controlador PID son: la accin proporcional, accin
Integral y la accin derivativa. A continuacin mostramos el diagrama de bloques
con el que se representa este controlador.

Figura 1. Estructura PID



Accin de control proporcional
El objetivo de esta accin es que una vez ajustado el error en estado estacionario
sea cero respecto a una referencia fija. La salida que obtenemos de ella es
proporcional al error siendo esta ()=(), por lo tanto la funcin de transferencia
DISEO DE CONTROLADORES DIGITALES

de la accin proporcional ser nada ms que una ganancia ajustable. Esta accin
no corregir el error en estado permanente.

()=

Accin de control integral
La salida de este controlador es proporcional al error acumulado, por la tanto ser
de respuesta lenta. Las fdt de las salida del controlador y del error son:
}
=
t
t t
dt e ki u
0
) ( ) (

s
ki
Ci
s
=
) (


La finalidad de esta accin es que la salida concuerde con la referencia en estado
estacionario, pudiendo esta cambiar sin tener que cambiar la Ki a diferencia del
control proporcional. Se produce un mejor ajuste que con la accin proporcional
por que con esta un pequeo error con el tiempo se hace grande por lo que se
tiende a corregir.

Accin derivativa
Esta accin acta cuando hay un cambio en valor absoluto del error. Por lo tanto
no se empleara nunca ella sola ya que solo corrige errores en la etapa transitoria.
Es una accin predictible por lo tanto de accin rpida.

Su objetivo es corregir la seal de error antes de que se haga est demasiado
grande. La prediccin se hace por la extrapolacin del error de control en la
direccin de la tangente a su curva respectiva.

Tiene la desventaja de ampliar las seales de ruido pudiendo provocar saturacin
en el controlador. Puede emplearse en sistemas con tiempo de retardo
considerables, porque permite una repercusin rpida de la variable despus de
presentarse una perturbacin en el proceso.

DISEO DE CONTROLADORES DIGITALES

Sintonizacin del controlador PID
No siempre se usan las tres acciones del controlador PID, normalmente suele
aparecer la accin proporcional acompaada solamente de la integral o la
derivativa. De esta forma conforman el controlador PI y el PD. Estos junto al
controlador PID son los que ms comnmente nos encontramos. El control PI se
puede demostrar que funcionara de forma correcta en respuestas donde su
dinmica es esencialmente de primer orden.


MODELADO DEL SISTEMA

Se consideraron los siguientes parmetros:

- Momento de inercia del sistema (J)
- Coeficiente de roce (b)
- Constante de fuerza electromotriz (K=Ke=Kt)
- Resistencia de armadura (R)
- Inductancia de armadura (L)
- Entrada (V): Fuente de Tensin
- Posicin del eje:

T = Kt i

e = Ke

Siendo ambas constantes iguales (Kt=Ke=K)

En base a la ley de Newton y la ley de Kirchoff, resultan las siguientes ecuaciones
diferenciales que describen la dinmica del sistema:

J u+ b u = K i
u . . . K V i R
dt
di
L = +

DISEO DE CONTROLADORES DIGITALES


FUNCIN DE TRANSFERENCIA

Aplicando la Transformada de Laplace y haciendo cero las condiciones iniciales,
las ecuaciones del sistema quedan expresadas en el dominio de s:

s (J s + b)O(s) = K I (s)
(L s + R) I (s) = V K s O(s)

Eliminando I(s) se obtiene de las ecuaciones dinmicas del sistema la siguiente
funcin de transferencia:
2
) . ).( . ( K R s L b s J
K
V + + +
=
u



Esquema del sistema:

Obtenemos con Matlab lo siguiente:

J=3.2284E-6;
b=3.5077E-6;
K=0.0274;
R=4;
L=2.75E-6;
num=K;
DISEO DE CONTROLADORES DIGITALES

den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2) 0];
num=K
den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2) 0]

num =

0.0274

den =

1.0e-003 *

0.0000 0.0129 0.7648 0



COMPONENTES Y HARDWARE


Hardware del Arduino Uno
Dado que para el presente proyecto se decidi utilizar el Arduino Uno, se va a
profundizar un poco en sus caractersticas particulares. El Arduino Uno representa
un integrante de la familia de PCBs de Arduino, y es un microcontrolador basado
en el ATmega328. Este microcontrolador posee 14 pines de entrada/salida
digitales, de los cuales 6 se pueden utilizar como salidas PWM (seales de
modulacin por ancho de pulso). Adems, posee 6 entradas analgicas, un
oscilador de 16 MHz, un conector USB para comunicacin con una PC, un
conector de alimentacin y un botn de reset.

DISEO DE CONTROLADORES DIGITALES



Figura 2. Parte superior de Arduino Uno


Fuente de Poder

El Arduino Uno puede ser alimentado desde su conector USB o mediante una
fuente de poder externa, como por ejemplo una batera. La fuente de poder es
seleccionada de manera automtica por el dispositivo, y se puede acoplar al
Arduino por medio de su conector de 2.1mm o mediante los pines de Vin y
GND.

La tensin de alimentacin de la tarjeta puede variar entre 6 y 20 volts, sin
embargo cuando la tensin es inferior a 7 volts, el regulador de 5 volts puede
actuar de manera inestable y no suplir los 5 volts deseados (que se obtienen a
travs del pin de 5V). Adems, cuando se usa una tensin de alimentacin
superior a 12 volts existe la posibilidad de que el regulador se sobrecargue y se
dae. Por las razones anteriores, la tensin de entrada recomendada para el
Arduino es de 7 a 12 volts.




DISEO DE CONTROLADORES DIGITALES

Los pines de potencia de la tarjeta son los siguientes:
- Vin: Es el pin de entrada cuando se est utilizando una fuente de poder
externa (no USB). La tensin recomendada en este pin es de 7 a 12 volts.
Este pin se encuentra en paralelo con el conector de entrada de 2.1 mm.
- 5V: Es la salida del regulador de tensin de 5 volts de la tarjeta.
- 3.3V: Es la salida del regulador de 3.3 volts de la tarjeta utilizado para
sensores y actuadores que requieran de esta tensin de alimentacin
especial. La corriente mxima que se puede entregar por medio de este
canal es de 50 mA.
- GND: Es el pin de tierra

SENSOR ULTRASONICO
Los sensores ultrasnicos de proximidad (que en realidad son transductores pero
son conocidos popularmente como sensores), trabajan bajo un principio muy
similar a un radar, en el cual se evala la distancia de un objetivo al interpretar los
ecos de ondas sonoras o de radio. Los sensores ultrasnicos generan ondas de
alta frecuencia, detectan el eco, y calculan el intervalo de tiempo entre el momento
en que se envi la seal, y el momento en el que se recibi el eco, para
determinar la distancia del objeto que se est avaluando.

Dispositivo Utilizado (HY SRF05)
SRF05 es un sensor de distancias por ultrasonidos capaz de detectar objetos y
calcular la distancia a la que se encuentra en un rango de 3 a 4 metros. El sensor
funciona por ultrasonidos y contiene toda la electrnica encargada de hacer la
medicin. Su uso es tan sencillo como enviar el pulso de arranque y medir la
anchura del pulso de retorno. De muy pequeo tamao, SRF05 destaca por su
bajo consumo, gran precisin y bajo precio por lo que est reemplazando a los
sensores polaroid en los robots ms recientes.
DISEO DE CONTROLADORES DIGITALES


Figura 3. Representacin grfica del funcionamiento de sensor ultrasnico.

Para el clculo de la distancia se procede a utilizar la siguiente formula, con la cual
se obtiene una medicin en centimetros. Dicha frmula representa elementos
propios del sensor como tiempo y velocidad del eco y pulso del sensor.
CM ROUNDTRIP uS
uS
Dist
_ _
=

Esta frmula se integra en el codigo Arduino para la correcta toma de distancia, ya
que para el computo del PID la variable controlada es la distancia.










Figura 4. Sensor ultrasnico HY SRF05
DISEO DE CONTROLADORES DIGITALES


MOTOR DE CORRIENTE CONTINUA
El motor de corriente continua es una mquina que convierte la energa elctrica
en mecnica, principalmente mediante el movimiento rotatorio. Esta mquina de
corriente continua es una de las ms verstiles en la industria. Su fcil control de
posicin, paro y velocidad la han convertido en una de las mejores opciones en
aplicaciones de control y automatizacin de procesos.
La principal caracterstica del motor de corriente continua es la posibilidad de
regular la velocidad desde vaco a plena carga, en funcin de la tensin aplicada
en sus bornes.

Figura 5. Motores DC


CONTROLADOR DE MOTORES

Dispositivo Utilizado (Puente H. L298N)

El L298N es un puente completo dual de alta tensin y alta corriente diseado
para aceptar niveles lgicos TTL como los de un microcontrolador PIC o similares
y manejar cargas inductivas tales como motores (DC y paso a paso), rels, y
solenoides.

Caractersticas:
- Voltaje de alimentacin hasta 46V
- Voltaje de alimentacin Lgico 4,5 - 7VDC
- Corriente DC total hasta 4A
DISEO DE CONTROLADORES DIGITALES

- Proteccin contra temperatura altas
- Bajo voltaje de saturacin
- Cero lgico hasta 1.5V (Alta inmunidad al ruido)


Figura 6. L298N


CHASIS: TIPO ORUGAS
El chasis de orugas es una base para la construccin de pequeos prototipos
como vehculos RC o robots autnomos. Es una plataforma duradera con orugas
que permiten pasar por encima de muchos tipos de superficies y terrenos
irregulares.
El chasis est diseado para acoplarse con motores DC con caja reductora.


Figura 7. Chasis tipo Orugas
DISEO DE CONTROLADORES DIGITALES


CONTROLADOR PID EN ARDUINO

Utilizando el Arduino, se desarrolla el controlador PID, para lo cual se tomo como
variable a controlar la posicin del robot (distancia con referencia a un objeto), el
algoritmo realiza la comparacin entre de variables y ajusta la posicin del robot al
Setpoint establecido por el usuario.

#include <PID_v1.h>
#include <NewPing.h>

#define TRIGGER_PIN 12
#define ECHO_PIN 11
#define MAX_DISTANCE 200

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

//Se definen los parametros de entonacion del controlador PID
double Kp=17, Ki=600, Kd=15;
//Se definen las variables utilizadas
double Setpoint, Input, Output;

//Establece los enlaces y parametros de configuracion del controlador
PID myPID(&Input, &Output, &Setpoint,Kp,Ki,Kd, DIRECT);

void setup()
{
Serial.begin(9600);

//Inicializacion de variables
Input = 20; //Lectura "inicial" del sensor ultrasonico
Setpoint = 20;

//Enciende el controlador PID
myPID.SetMode(AUTOMATIC);

DISEO DE CONTROLADORES DIGITALES

//Se define el tiempo de muestreo del controlador
myPID.SetSampleTime(100);

//Se define los limites de la salida del controlador
myPID.SetOutputLimits(-255, 255);
}

void loop()
{

//Monitoreo serial
Serial.print("Setpoint = ");
Serial.print(Setpoint);
Serial.print(" Entrada = ");
Serial.print(Input);
Serial.print(" Salida = ");
Serial.print(Output);
Serial.print("\n");
delay(40);

int uS = sonar.ping();
Input = uS / US_ROUNDTRIP_CM;
myPID.Compute();

//Control en salida PID, calcula si debe moverse hacia adelante o hacia atras
double error2 = Setpoint-Input; //
if(error2 < 0)
{ //si el error2 es menor que cero, debe moverse hacia adelante
analogWrite(5,Output);
digitalWrite(6, LOW); //
analogWrite(9,Output);
digitalWrite(10, LOW); //
}
else
{
//sino, el robot debe moverse hacia atras
digitalWrite(5, LOW);
analogWrite(6,Output); //
DISEO DE CONTROLADORES DIGITALES

digitalWrite(9, LOW);
analogWrite(10,Output); //
}

}


CONTROLADOR PID EN MATLAB

Los siguientes parametros de diseo fueron tomados de un artculo estudiado en
clases.

Con una referencia escaln de 1 rad/seg., los criterios de diseo son:
- Tiempo de establecimiento menor que 0.04 segundos
- Sobrepico menor que 16%

Control Proporcional:
Para este controlador usamos una ganancia Kp= 1.7

J=3.2284E-6;
b=3.5077E-6;
K=0.0274;
R=4;
L=2.75E-6;
num=K;
den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2) 0];
Kp=1.7;
numcf=[Kp];
dencf=[1];
numf=conv(numcf,num);
denf=conv(dencf,den);
[numc,denc]=cloop(numf,denf);
t=0:0.001:0.2;
step(numc,denc,t)

DISEO DE CONTROLADORES DIGITALES


En la figura observamos la respuesta al escaln.

Veamos ahora la respuesta a una perturbacin escaln. Agregando el siguiente
cdigo obtenemos la respuesta:

numdcl=conv(numc,1);
dendcl=conv(denc,Kp);
step(numdcl,dendcl,t);

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2
0
0.2
0.4
0.6
0.8
1
1.2
1.4
Respuesta Kp=1.7
Tiempo (sec)
P
o
s
i c
i o
n
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
Respuesta
Tiempo (sec)
P
o
s
i c
i
n
DISEO DE CONTROLADORES DIGITALES

En las figuras obtenemos el error de estado estacionario estable pero el tiempo de
establecimiento es muy grande, as como el sobrepico.
Utilizamos el controlador PI para anular el error de estado estacionario a la
perturbacin.

J=3.2284E-6;
b=3.5077E-6;
K=0.0274;
R=4;
L=2.75E-6;
num=K;
den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2) 0];
Kp=1.7;
Ki=20;
numcf=[Kp Ki];
dencf=[1 0];
numf=conv(numcf,num);
denf=conv(dencf,den);
[numc,denc]=cloop(numf,denf,-1);
t=0:0.001:0.4;
step(numc,denc,t)

Respuesta al escaln:

Respuesta Kp=1.7 Ki=20
Tiempo (sec)
P
o
s
i c
i o
n
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
0
0.5
1
1.5
DISEO DE CONTROLADORES DIGITALES

Respuesta a una perturbacin escaln:

numdcl=conv(numc,dencf);
dendcl=conv(denc,numcf);
step(numdcl,dendcl,t);

Sintonizacin de ganancias

El tiempo de establecimiento todava es alto. Incrementamos las ganancias para
acelerar la respuesta. Ki= 200 y Kp= 17.

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
Respuesta Perturbacin
Tiempo (sec)
P
o
s
i c
i
n
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
Respuesta
Tiempo (sec)
P
o
s
i c
i
n
DISEO DE CONTROLADORES DIGITALES


La respuesta es ms rpida que antes, pero la respuesta transitoria presenta un
sobrepico grande. Utilizamos el controlador PID para reducir el sobrepico.

Kp=17;
Ki=200;
Kd=0.15;
numcf=[Kd Kp Ki];
dencf=[1 0];
numf=conv(numcf,num);
denf=conv(dencf,den);
[numc,denc]=cloop(numf,denf,-1);
t=0:0.001:0.1;
step(numc,denc,t)
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
0
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
0.1
Respuesta Perturbacin
Tiempo (sec)
P
o
s
i c
i
n
DISEO DE CONTROLADORES DIGITALES


Respuesta a perturbacin escaln:

La respuesta al escaln es aceptable, tiene un sobrepico menor que el 16%, y el
tiempo de establecimiento es cercano a los 40ms, y hay error de estado
estacionario cero. Sin embargo la respuesta a una perturbacin escaln ahora es
lentsima. Incrementamos Ki=600 para acelerar la respuesta a la perturbacin.



0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1
0
0.2
0.4
0.6
0.8
1
1.2
1.4
Respuesta
Tiempo (sec)
P
o
s
i c
i
n
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1
0
0.2
0.4
0.6
0.8
1
1.2
1.4
Respuesta
Tiempo (sec)
P
o
s
i c
i
n
DISEO DE CONTROLADORES DIGITALES


Podemos ver ahora que la respuesta al escaln tiene un tiempo de
establecimiento de casi 40ms, tiene un sobrepico menor que el 16%, y no posee
error de estado estacionario. La respuesta a una perturbacin escaln tampoco
tiene error de estado estacionario.

Estos valores fueron los tomados para incorporarlos en el codigo Arduino.

Controlador PID:
Kp=17,
Ki=600,
Kd=15,


0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1
-0.01
0
0.01
0.02
0.03
0.04
0.05
Respuesta Perturbacin
Tiempo (sec)
P
o
s
i
c
i

S-ar putea să vă placă și