Vous êtes sur la page 1sur 15

CONTROL DIGITAL

1

Entrega Final
Planta Control BALL BEAM
Carlos Ivn Mesa Manrique Cdigo: 45121608

#
Estudiante (Ingeniera en Automatizacin, Universidad de La Salle)
Bogot D.C., Colombia

Resumen El siguiente proyecto Ball Beam
consiste en controlar la posicin de una bola
de acero inoxidable en una pista.

Consiste bsicamente de la variacin de
posicin de la bola que es medida con la
variacin de resistencia sobre la pista que en
este caso es alimentada a un voltaje y la pista
que est conformada por un tornillo sin fin es la
resistencia que vara, cuando esta bola cambia
de posicin.

Lo anterior vendra a ser nuestro sensor que
vendra a determinar la variacin de posicin
vs voltaje o resistencia segn vari.

Por otro lado tenemos el servo que es el que
vamos a controlar por medio de la variacin
angular que este me genere, en este caso un
rango de -15a 15.

Segn la posicin deseada para la bola o el
cilindro en la pista, se realizara la respectiva
instrumentacin para la parte del sensor y su
respuesta de control al motor para que cumpla
con los objetivos del proyecto


INTRODUCCION

El sistema de control digital comprende un
mdulo de control, que es una alta precisin.
La unidad se utiliza para servomotores o
motores de corriente continua. IDIOMA
programable con alto nivel de movimiento, el
mdulo de control inteligente integrado en una
sola tarjeta de control de movimiento avanzado
y especfico PLC funcionalidad. Idioma
combinado con un movimiento de alto nivel,
una plataforma para la programacin rpida
grfica mdulo de control de configuracin,
ajuste y movimiento representa un flexible,
inteligente y fcil de implementar, la solucin
para una amplia gama de aplicaciones. Un fcil
utilizar el interfaz de control muestra los
resultados visuales grficas de la madre y
todos los datos de funcionamiento.


En tiempo real de la interfaz de control se
proporciona en Matlab, Simulink haciendo
conveniente implementar experimentos
bsicos y la aritmtica de estudio.



OBJETIVO GENERAL

Disear e implementar un control para
la planta del Ball Beam.

Objetivos especficos

Identificar los materiales adecuados
para estabilizar la planta.
Caracterizar e Identificar el mtodo de
diseo de la planta.
Elegir de una forma adecuada para el
control del servomotor
Disear un control para mantener la
planta en un punto estable.


CONTROL DIGITAL

2


MARCO TERICO
Se dise una planta con el fin de controlar la
posicin de un cilindro de acero inoxidable
mediante el ajuste del ngulo de giro de una
viga la cual est sujeta al servo-motor el cual
es el que va a girar (grados) para dar la
posicin de la bola.
Para realizar dicha planta fue necesario hacer
un estudio previo debido a los materiales
necesarios para su fabricacin.
Los materiales que se utilizaron son:
- Servo-motor
- Fuente de 5V
- Tornillo sin fin (hierro)
- Una base de acrlico
-
A continuacin se explica el funcionamiento de
cada uno de los materiales que se utilizaron
Servomotor
Un Servo es un dispositivo pequeo que tiene
un eje de rendimiento controlado. Este puede
ser llevado a posiciones angulares especficas
al enviar una seal codificada. Con tal de que
una seal codificada exista en la lnea de
entrada, el servo mantendr la posicin
angular del engranaje. Cuando la seala
codificada cambia, la posicin angular de los
piones cambia. En la prctica, se usan servos
para posicionar superficies de control como el
movimiento de palancas, pequeos
ascensores y timones. Ellos tambin se usan
en radio control, tteres, y por supuesto, en
robots.

DESARROLLO

1. Determinar el diagrama de flujo del
proceso






































Fig. 1 Diagrama de flujo del Ball and Beam

2. Determinar las variables de control

Posicin angular en el servomotor

3. Determinar las variables a manipular
Cantidad de pulsos enviados al
servomotor

Cilindro Acero
Posicin
Deseada

Posicin
Actual
PD>
PA
PD<
PA
Girar Angulo
Negativo
Girar Angulo
Positivo
PD=
PA
Posicin De Bola
Controlada
CONTROL DIGITAL

3



4. Determinar los puntos de control

Posicin angular de -15 a + 15y la
velocidad de giro respectivo

5. Describir el principio fsico bsico
siguiendo el modelo

Funcionamiento
El motor del servo tiene algunos circuitos de
control y un potencimetro (una resistencia
variable) esta es conectada al eje central del
servo motor. En la figura se puede observar al
lado derecho del circuito. Este potencimetro
permite al circuito de control, supervisar el
ngulo actual del servo motor. Si el eje est en
el ngulo correcto, entonces el motor est
apagado. Si el circuito chequea que el ngulo
no es el correcto, el motor girar en la
direccin adecuada hasta llegar al ngulo
correcto. El eje del servo es capaz de llegar
alrededor de los 180 grados. Normalmente, en
algunos llega a los 210 grados, pero vara
segn el fabricante. Un servo normal se usa
para controlar un movimiento angular de entre
0 y 180.
La cantidad de voltaje aplicado al motor es
proporcional a la distancia que ste necesita
viajar. As, si el eje necesita regresar una
distancia grande, el motor regresar a toda
velocidad. Si este necesita regresar slo una
pequea cantidad, el motor correr a una
velocidad ms lenta. A esto se le llama control
proporcional.
Caractersticas Generales Y
Funcionamiento:
Estos servos tienen un amplificador, servo
motor, pioneara de reduccin y un
potencimetro de realimentacin; todo
incorporado en el mismo conjunto. Esto es un
servo de posicin (lo cual significa que uno le
indica a qu posicin debe ir), con un rango de
aproximadamente 180 grados. Ellos tienen tres
cables de conexin elctrica; Vcc, GND, y
entrada de control.
Para controlar un servo, usted le ordena un
cierto ngulo, medido desde 0 grados. Usted le
enva una serie de pulsos. En un tiempo ON de
pulso indica el ngulo al que debe
posicionarse; 1ms = 0 grados, 2.0ms = mx.
grado (cerca de 120) y algn valor entre ellos
da un ngulo de salida proporcional.
Generalmente se considera que en 1.5ms est
el "centro." Entre lmites de 1 ~ 2ms son las
recomendaciones de los fabricantes, usted
normalmente puede usar un rango mayor de
1.5ms para obtener un ngulo mayor e incluso
de 2ms para un ngulo de rendimiento de 180
grados o ms. El factor limitante es el tope del
potencimetro y los lmites mecnicos
construidos en el servo. Un sonido de zumbido
normalmente indica que usted est forzando
por encima al servo, entonces debe disminuir
un poco.

El tiempo de OFF en el servo no es crtico;
puede estar alrededor de los 20ms. Hemos
usado entre 10ms y 30 ms. Esto No tiene que
ser de sta manera, puede variar de un pulso a
otro. Los pulsos que ocurren frecuentemente
en el tiempo de OFF pueden interferir con el
sincronismo interno del servo y podra
escucharse un sonido de zumbido o alguna
vibracin en el eje. Si el espacio del pulso es
mayor de 50ms (depende del fabricante),
entonces el servo podra estar en modo
SLEEP entre los pulsos. Entrara a funcionar
en pasos pequeos y el rendimiento no sera el
ptimo.
Como se observa en la figura, la duracin del
pulso indica o dictamina el ngulo del eje
(mostrado como un crculo verde con flecha).
Ntese que las ilustraciones y los tiempos
reales dependen del fabricante de motor. El
principio, sin embargo, es el mismo.
CONTROL DIGITAL

4

El cable de control se usa para comunicar el
ngulo. El ngulo est determinado por la
duracin de un pulso que se aplica al alambre
de control. A esto se le llama PCM Modulacin
codificada de Pulsos. El servo espera ver un
pulso cada 20 milisegundos (.02 segundos). La
longitud del pulso determinar los giros de
motor.
Un pulso de 1.5 ms., por ejemplo, har que el
motor se torne a la posicin de 90 grados
(llamado la posicin neutra). Si el pulso es
menor de 1.5 ms., entonces el motor se
acercar a los 0 grados. Si el pulso es mayor
de 1.5ms, el eje se acercar a los 180 grados.
La descripcin realizada anteriormente como
se ha podido observar son servomotores de
corriente continua usados en robtica
domstica fundamentalmente.


Fig. 2 Caractersticas tcnicas del servomotor

Fuente: es el dispositivo que provee la
electricidad con que se alimentan los
diferentes dispositivos electrnicos

Tornillo sin fin: es una disposicin que
transmite el movimiento entre ejes que estn
en ngulo recto, en este caso no vamos a
tomar esa definicin para nuestro proceso, la
aplicacin q tiene el tornillo es darle friccin a
la bola metlica para poder tener un menor
grado de error.

Base de Madera: es el elemento que nos
permite unir todos los materiales que se
utilizaran

Seleccin Del Sensor:

Debido a recursos del proyecto, se decidi
seleccionar el sensor ultrasnico del
laboratorio.


Fig. 3 Sensor Ultrasnico UB500-18/GM75 I
V-15



Indicaciones de manejo
LED amarillo: objeto en rango evaluacin
LED rojo: Objeto no detectado

Para la etapa de sensrica, se ha escogido un
sensor ultrasnico Pepperl + Fuchs con las
siguientes caractersticas:

Sensor ultrasnico
Intervalo de deteccin: 50mm a 500mm
Frecuencia: 380 KHz
ngulo de reflejo: 60
Rango de temperatura:-25 C a +70 C
Entrada del sensor: Ultrasnico
Tensin de alimentacin mx.:30V
Tiempo de respuesta: 50ms
CONTROL DIGITAL

5

Funcin de Transferencia Sensor

Para determinar la funcin de transferencia del
sensor fue necesario poner en funcionamiento
el sensor para as poder obtener el valor de la
corriente con respecto a la distancia a la se
encuentra el objeto. Los valores obtenidos
fueron los siguientes:

Corriente
(mA)
Distancia
(cm)
4,5 10
6,7 15
9,2 20
11,6 25
13,5 30
15,7 35
Tabla 1. Corriente Vs Distancia del sensor


Fig. 4 Respuesta en Excel de los datos de la
tabla 1.

La funcin de transferencia del sensor es la
ecuacin de la recta anterior que va a ser igual
a:
48 . 22
21 . 20 27 . 2
) 5 , 4 ( 27 , 2 10
) 0 ( 0
27 . 2
5 . 4 7 . 6
10 15
1 2
1 2
=
+ =
=
=
=

=
x
y
x y
x y
x x m y y
m
x x
y y
m

48 . 22 ) ( = s H

Luego se analiz la salida del sensor
ultrasnico ante la variacin del cilindro, para
poder obtener su equivalencia en distancia que
es lo que se desea controlar mediante el punto
de referencia a seleccionar

Distancia cm Voltaje
1 0.996
2 1.089
3 1.270
4 1.439
5 1.626
6 1.788
7 1.910
8 2.075
9 2.271
10 2.399
11 2.562
12 2.744
13 2.914
14 3.061
15 3.187
16 3.337
17 3.517
18 3.645
19 3.796
20 3.914
21 4.082
22 4.237
23 4.356
24 4.566
25 4.808
Tabla 2. Salida del sensor ultrasonico

De la tabla anterior podemos seleccionar
nuestro Set-point midiendo desde un
multmetro y comprobar el diseo del
controlador.





4,5
6,7
9,2
11,6
13,5
15,7
CONTROL DIGITAL

6


Montaje actual



Fig. 4
Fig. 4
Explicacin del prototipo

Cuando el motor empieza a girar en grados la
leva se mueve y hace que el sistema de las
barrar empiecen a subir o bajar pendiendo del
movimiento del servo-motor, adems el
movimiento de las barras como estn
polarizada, cada vez que se mueven su voltaje
aumenta o disminuye debido al movimiento del
cilindro ya que esta permite la unin de las dos
barras.


6. MODELO MATEMATICO

Para el modelo matemtico del Ball Beam
tenemos la siguiente ecuacin ya que se
implementara un control en lazo abierto


2
2
1
) (
) (
s
m
R
J
L
mgd
s
s R

|
.
|

\
|
+
=
u




Control Digital PID

Si se refiere a cualquier problema del control
PID para los sistemas continuos, la funcin de
transferencia PID se expres como:



Como habr notado la funcin de transferencia
anterior fue escrito en trminos de s. Para el
control PID digital, se utiliza la siguiente
funcin de transferencia en trminos de z.



Funcin de transferencia discreta

Lo primero que debe hacer es convertir lo
anterior funcin de transferencia del sistema
continuo a una funcin de transferencia
discreta equivalente. Para ello, vamos a utilizar
la funcin de Matlab c2d. Para utilizar c2d,
tenemos que especificar tres argumentos: el
sistema, el tiempo de muestreo (Ts), y el
'mtodo'. Usted ya debe estar familiarizado con
la forma de crear un sistema de numerador y
denominador matrices. El tiempo de muestreo
debe ser menor que 1 / (30 * BW) seg, donde
BW es el ancho de banda de bucle cerrado. El
mtodo que se utilizar es el mantenedor de
orden cero ('zoh'). Suponiendo que la
frecuencia de ancho de banda de bucle
cerrado es de alrededor de 1 rad / seg, dejar
que el tiempo de muestreo 1/50 seg / muestra.
Ahora estamos listos para utilizar c2d.
Introduzca los siguientes comandos en un
archivo-m.

Modelamiento En Matlab:

m = 0.111;
R = 0.015;
CONTROL DIGITAL

7

g = -9.8;
L = 1.0;
d = 0.03;
J = 9.99e-6;

K = (m*g*d)/(L*(J/R^2+m));
%simplifies input

num = [-K];
den = [1 0 0];
ball = tf(num,den);

Ts = 1/50;
ball_d = c2d(ball,Ts,'zoh')

Planta Del Ball Beam

Transfer function:

4.2e-05 z + 4.2e-05
-------------------
z^2 - 2 z + 1

Sampling time: 0.02

Control Proporcional

Ahora vamos a aadir de control proporcional
(Kp) para el sistema y obtener la respuesta del
sistema de bucle cerrado. Por ahora vamos Kp
igual a 100 y ver qu pasa con la respuesta.
Introduzca los siguientes comandos en un
archivo-m nuevo y ejectelo en la ventana de
comandos.

numDz = 0.0001*[0.42 0.42];
denDz = [1 -2 1];
Ts = 1/50;
ball_d = tf(numDz,denDz,Ts);

[x,t] = step(0.25*ball_d,5);
stairs(t,x)





Fig. 7 Respuesta del Control Proporcional

Control Proporcional-Derivativo

Ahora agregaremos un trmino derivativo al
controlador. Manteniendo la ganancia
proporcional (Kp) igual a 100, y dejar que la
ganancia derivativa (Kd) igual a 10. Copie el
cdigo siguiente en un nuevo archivo-m y
ejectelo para ver la respuesta del sistema.


Cdigo En Matlab:

numDz = 0.0001*[0.42 0.42];
denDz = [1 -2 1];
Ts = 1/50;
ball_d = tf(numDz,denDz,Ts);

Kp=100;
Kd=10;
Ki=0;
numpd = [Kp+Ki+Kd -(Kp+2*Kd) Kd];
denpd = [1 -1 0];
contr = tf(numpd,denpd,Ts);

sys_cl =
feedback(contr*ball_d,22.48);

[x,t] = step(0.25*sys_cl,5);
stairs(t,x)

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
CONTROL DIGITAL

8


Fig. 8 Respuesta Control Proporcional
Derivativo

Simulacin Del Modelamiento En Matlab:

A continuacin mostramos la simulacin
mediante Matlab, aplicamos el control PID

Cdigo En Matlab:

clc
close all
clear all

Aqu mostramos un ejemplo para obtener la
constante Kbb obtenida en el paper para la
cual es de 0.63

%% EJEMPLO
% m = 0.111; % MASA DE LA PELOTA 0.11 Kg
% R = 0.015; % RADIO DE LA BOLA 0.015 m
% g = -9.8; %BRAZO DE PALANCA ACOPLADA
% L = 1.0; %LOGITUD DE LA VIGA
% d = 0.03; %BRAZO DE PALANCA
% J = 9.99e-6; %MOMENTO DE INERCIA DE LA
PELOTA
% %
% K = (m*g*d)/(L*(J/R^2+m)) %K=0.21
simplifies input
%% K DE LA PLANTA OBTUBIDO EN EL PAPER
K=0.63
num = [-K];
den = [1 0 0];
ball = tf(num,den)
% hold on
Ts = 1/50;
ball_d = c2d(ball,Ts,'zoh')
% Transfer function:
% -0.000126 z - 0.000126
% ----------------------
% z^2 - 2 z + 1
%
% Sampling time: 0.02
numDz = [0.000126 0.000126];
denDz = [1 -2 1];
ball_d = tf(numDz,denDz,Ts);
hold on
Kp=1000;
sys_cl = feedback(Kp*ball_d,22.48)

% SISTEMA SIN CONTROL
[x,t] = step(0.25*sys_cl,0.5);
stairs(t,x)

Kd=10;

numpd = [Kp+Kd -(Kp+2*Kd) Kd];
denpd = [1 1 0];
contr = tf(numpd,denpd,Ts);

sys_cl = feedback(contr*ball_d,22.48);
%SISTEMA CON CONTROL
[x,t] = step(0.25*sys_cl,5);
stairs(t,x)


Control proporcional

Ahora vamos a aadir de control proporcional
(Kp) para el sistema y obtener la respuesta del
sistema de bucle cerrado. Por ahora vamos Kp
igual a 100 y ver qu pasa con la respuesta.
Introduzca los siguientes comandos en un
archivo-m nuevo y ejectelo en la ventana de
comandos.

Cdigo En Matlab:

numDz = [0.000126 0.000126];
denDz = [1 -2 1];
Ts = 1/50;
ball_d = tf(numDz,denDz,Ts);

[x,t] = step(0.25*ball_d,5);
stairs(t,x)

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
0
0.02
0.04
0.06
0.08
0.1
0.12
0.14
0.16
0.18
CONTROL DIGITAL

9


Fig. 9 Sistema Sin Control

Proporcional-Derivativo
Ahora agregaremos un trmino derivativo al
controlador. Mantener la ganancia proporcional
(Kp) igual a 100, y dejar que la ganancia
derivativa (Kd) igual a 10. El cdigo siguiente
muestra la respuesta del sistema.

Cdigo En Matlab:

numDz = [0.000126 0.000126];
denDz = [1 -2 1];
Ts = 1/50;
ball_d = tf(numDz,denDz,Ts);

Kp=100;
Kd=10;

numpd = [Kp+Kd -(Kp+2*Kd) Kd];
denpd = [1 1 0];
contr = tf(numpd,denpd,Ts);

sys_cl =
feedback(contr*ball_d,22.48);

[x,t] = step(0.25*sys_cl,5);
stairs(t,x)


Fig. 10 Sistema Con Control

Fig. 11 Sistema Con Control con Kp=100,
Kd=10


Fig. 12 Sistema Con Control con Kp=1000,
Kd=10
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
-1
-0.5
0
0.5
1
1.5
0 1 2 3 4 5 6 7 8 9 10
0
0.05
0.1
0.15
0.2
0.25
0 1 2 3 4 5 6 7 8 9 10
-1
-0.5
0
0.5
1
1.5


0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
-1
-0.5
0
0.5
1
1.5
CONTROL DIGITAL

10


Identificacin De Planta

Para la planta sabemos que nuestra entrada
es la variacin de la ganancia del servomotor
en ms VS la variacin de ganancia del sensor
en voltios. Como se muestra a continuacin las
ganancias

Rango del servomotor: (1.25ms-175ms)
Rango del sensor: (0.996V-4.9V)

A continuacin mostramos los datos adquiridos
de la planta de los cuales se obtuvieron 105
muestras a partir de un tiempo de muestreo de
0.2 seg, como se muestra a continuacin.



Muestras
SERVOMOTOR SENSOR
Pulsos en
Milisegundos
Voltaje
Entrada Salida
1 0.001667 0,905486
2 0.001667 0,958750
3 0.001667 0,980006
4 0.001667 1.012234
5 0.001667 1.245866
6 0.001667 1.545178
7 0.001667 1.721005
8 0.001667 2.258974
9 0.001667 2.852105
10 0.001667 3.646586
11 0.001667 4.164325
12 0.001667 4.725468
13 0.001667 4.521501
14 0.001667 4.684635
15 0.001667 4.758923
16 0.001667 4.806380
17 0.001667 4.854896
18 0.001667 4.843230
19 0.001332 4.800541
20 0.001332 4.756466
21 0.001332 4.358769
22 0.001332 4.045623
23 0.001332 3.830450
24 0.001332 3.503453
25 0.001332 3.020545
26 0.001332 2.836469
27 0.001332 2.685246
28 0.001332 2.285468
29 0.001332 1.648568
30 0.001332 1.246285
31 0.001332 1.454658
32 0.001332 1.135482
33 0.001332 0.934765
34 0.001332 1.263468
35 0.001332 1.156542
36 0.001332 0.984321
37 0.001332 0.964525
38 0.001332 0.949162
39 0.001332 0.911683
40 0.001332 0.916489
41 0.001584 0.926543
42 0.001584 1.268607
43 0.001584 1.550648
44 0.001584 1.804506
45 0.001584 2.644023
46 0.001584 3.015408
47 0.001584 3.650520
48 0.001584 4.115201
49 0.001584 4.730540
50 0.001584 4.501540
51 0.001584 4.805410
52 0.001584 4.602100
53 0.001584 4.671220
54 0.001584 4.821584
55 0.001584 4.700542
56 0.001584 4.824827
57 0.001584 4.813483
58 0.001584 4.806847
59 0.001415 4.700545
60 0.001415 4.503968
61 0.001415 4.241709
62 0.001415 3.564218
63 0.001415 3.004505
64 0.001415 2.412683
65 0.001415 1.902567
66 0.001415 1.405648
67 0.001415 1.305315
68 0.001415 0.995443
69 0.001415 1.254632
70 0.001415 1.107890
71 0.001415 0.961200
72 0.001415 1.054525
73 0.001415 0.924585
74 0.001415 0.980089
75 0.001750 1.308050
76 0.001750 1.915432
77 0.001750 2.821215
78 0.001750 3.845252
CONTROL DIGITAL

11

79 0.001750 4.655215
80 0.001750 4.821964
81 0.001750 4.553155
82 0.001750 4.892482
83 0.001750 4.720905
84 0.001750 4.620054
85 0.001750 4.811938
86 0.001750 4.800553
87 0.001750 4.823195
88 0.001750 4.829245
89 0.001250 4.654254
90 0.001250 4.025097
91 0.001250 3.534248
92 0.001250 2.890809
93 0.001250 2.005891
94 0.001250 1.412845
95 0.001250 1.121248
96 0.001250 1.354668
97 0.001250 0.905462
98 0.001250 1.101234
99 0.001250 1.260015
100 0.001250 0.921544
101 0.001250 0.950564
102 0.001250 0.985266
103 0.001250 0.924652
104 0.001250 0.902120
105 0.001250 0.900645

Tabla 3. Variacin de la ganancia del
servomotor en ms VS la variacin de ganancia
del sensor
De la anterior tabla de datos observamos que
para la variacin en la entrada, tenemos que:

- 125 ms es 45
- 141.6 ms es 30
- 133.3 ms es 15
- 150 ms es 0
- 166.6 ms es -15
- 158.3 ms es -30
- 175 ms es -45

Entonces desde Ident de Matlab, nos basamos
en los datos que obtuvimos y los importamos
con un Tm de 0.2 seg igual que como se
adquiri las muestras


Graficamos los datos adquiridos


Fig. 13 Respuesta en Ident de Matlab

Procesamos diferentes diseos

Fig. 14 Simulacin mediante Ident de Matlab
CONTROL DIGITAL

12

Analizamos los datos procesados de los
diseos para la planta del sistema


Fig. 15 Respuesta de las diferentes
simulaciones.

Seleccionamos la mejor respuesta ante los
datos adquiridos que fue de 77.22% con un
diseo de un Zero y dos polos

Analizamos la respuesta ante una entrada
escaln de nuestra planta escogida


Fig. 16 Respuesta ideal del 77%

Luego observamos nuestra planta con sus
constantes calculadas a reemplazar



Fig. 17 Modela de la funcin de Transferencia
Resultados de la planta

305 . 34
9 5953 . 4
349 . 2 2
3669 . 2 1
9 . 1724
) * exp(
) 2 1 )( 1 1 (
* 1
) (
=
=
=
=
=

+ +
+
=
Tz
e Td
Tp
Tp
Kp
s Td
Tp Tp
s Tz
Kp s G

En Matlab simplificamos y terminamos de
calcular nuestra planta en trminos de z.

Cdigo en Matlab:

clc
clear all
close all
s=tf('s')

Kp = 1724.9
Tp1 = 2.3669
Tp2 = 2.349
Td = 0.0000000045953
Tz = 34.305
exponencial=(-Td*s)
G= exponencial*((Kp * (1+Tz*s))/(
s*(1+Tp1*s)*(1+Tp2*s)))
zpk(G)
step(G)
figure
CONTROL DIGITAL

13

s=tf('s')
H=22.48
feedback(G,H)
step(feedback(G,H))

T=0.2
ball_d=c2d(G,T)

Transfer function in s:
4.8907e-005 s (s+0.02915)
--------------------------
s (s+0.4257) (s+0.4225)

Feedback in s:
0.0002719 s^2 - 7.926e-006 s
-----------------------------
5.56 s^3 + 4.71 s^2 + s

T =
0.0200


Planta Identificada En Trminos De Z


Transfer function in z:
9.0129e-006 (z-0.9942)
-----------------------
(z-0.919) (z-0.9184)

Sampling time: 0.2


Clculos del controlador

Clculos Del PID(Z) Para el Micro



Cdigo en Matlab:
clc
close all
numDz = 0.0001*[0.42 0.42];
denDz = [1 -2 1];
Ts = 1/50;
ball_d = tf(numDz,denDz,Ts);
kp=0;
kd=0;
ki=0;
T=0.2;
%PID
numpd = [Kp+Kd+ki -(Kp+2*Kd) Kd];
denpd = [1 1 0];
contr = tf(numpd,denpd,Ts)
sys_cl = feedback(contr*ball_d,22.45);
[x,t] = step(0.25*sys_cl,5);
stairs(t,x)

Clculos Del PI(Z) Para el Micro

Kds Kp Pd + =
Tz
z
Kd Kp z Pd
1
) (

+ =
Tz
Kd Kdz Tz Kp
z Pd
+
=
) (
) (
|
|
.
|

\
| +
=

1
1
) (
) (
z
z
Tz
Kd z Kd KpT
z Pd
T
Kdz Kd KpT
z Pd
1
) (

+
=
) (
) (
) (
z Pd
z E
z U
=
T
k E Kd k E Kd KpT
k U
) 1 ( ) ( ) (
) (
+
=
error sensor setpo k E = = int ) (
ior erroranter k E = ) 1 (

Cdigo en Matlab:

clc
close all
numDz = 0.0001*[0.42 0.42];
denDz = [1 -2 1];
Ts = 1/50;
ball_d = tf(numDz,denDz,Ts);
kp=0;
kd=0;
ki=0;
T=0.2;
%PI
num = [2*kp+T*ki -2*kp+T*ki];
den = [2 -2];
con = tf(num,den,Ts)
sys_clll = feedback(con*ball_d,22.48);
[x,t] = step(0.25*sys_cl,5);
[y,t] = step(0.25*sys_cll,5);
[z,t] = step(0.25*sys_clll,5);
stairs(t,z)


CONTROL DIGITAL

14


Clculos Del PI(Z) Para el Micro
s
Ki
Kp Pi + =
|
.
|

\
|

+
+ =
1
1
2
) (
z
z TKi
Kp z Pi
2 2
) 1 ( ) 2 2 (
) (

+ +
=
z
z TKi z Kp
z Pi
|
|
.
|

\
| + +
=

1
1
2 ) 2 (
) (
z
z
Tz
TKi Kp z TKi Kp
z Pi
1
1 1
2 2
2 ) 2 (
) (

+ +
=
z
TKiz Kpz TKi Kp
z Pi

) (
) (
) (
z Pi
z E
z U
=
) 1 ( ) 1 ( 2 ) 2 )( ( ) 1 ( ) ( + + = k TkiE k pkE Tki kp k E k U k U

2
) 1 ( 2 ) 1 ( ) 2 ( ) ( ) 2 (
) (
+ +
=
k U k E Kp Tki k E Tki kp
k U

error sensor setpo k E = = int ) (
ior erroranter k E = ) 1 (

Cdigo en Matlab:

clc
close all
numDz = 0.0001*[0.42 0.42];
denDz = [1 -2 1];
Ts = 1/50;
ball_d = tf(numDz,denDz,Ts);

kp=0;
kd=0;
ki=0;
T=0.2;
%PD
nump = [Kp*T+Kd -Kd];
denp = [T 0];
cont = tf(nump,denp,Ts)
sys_cll = feedback(cont*ball_d,22.48);
[y,t] = step(0.25*sys_cll,5);
stairs(t,y)


Cdigo Del Microcontrolador pic

#include <16f877a.h>
#device adc=10
#fuses XT,NOWDT,NOPROTECT
#use delay(clock=4000000)

void main()
{
int16
sen=0,set=330;//de=0,ea=0,pid=0,lin=326,ls
u=334;
signed long e0=0, e1=0, e2=0, u=0, u1=0,
q0=0, q1=0, q2=0, kp=0, ki=0, kd=0;
double t=0;

setup_adc_ports(ALL_ANALOG);
setup_adc(ADC_CLOCK_INTERNAL);

// DEFINICION DE CONSTANTES KP KI KD
kp=0;
ki=0;
kd=0;

t=0.02;

for (;;)
{
//sensor
set_adc_channel(0);
delay_us(20);
sen=read_adc();
//setpoint
set_adc_channel(1);
delay_us(20);
set=read_adc();

//CALCULO DEL PID ECUACION EN DIFERENCIAS
e0=set-sen;
q0=(t*t*ki+kp*t+kd)/t;
q1=(t*kp-2*kd)/t;
q2=(kd/t);

u=u1+q0*e0-q1*e1+q2*e2;

u1=u;
e2=e1;
e1=e0;

//CALCULO DEL PD ECUACION EN DIFERENCIAS

e0=set-sen;
u=(kp*t+kd)*e0-kd*e1;
e1=e0;

//CALCULO DEL PI ECUACION EN DIFERENCIAS

e0=set-sen;
u=(2*kp+t*ki)*e0+(t*ki-2*kp)*e1+2*u1;

u1=u;
e1=e0;

//Rango de la salida del PID

CONTROL DIGITAL

15

if(u<-500)
u=-500;

u=500+u;
if(1000<=u)
u=1000;
if(u<=0)
u=0;

//Salida al Servomotor

output_high(pin_c0);
delay_ms(1);
delay_us(u);
output_low(pin_c0);
delay_us(19000-u);

}
}




Fig. 18 Resultados en el multmetro del control
vs el Set-Point del sistema en el punto de 3.4 V

Conclusiones:


- Se realiz el control del servo-motor
mediante Matlab para lo cual se calibro
con un rango de operacin de -
45<0<45; inicialmente para observar
inicialmente el comportamiento del
sistema.
- El cambio entre cada ciclo til debe
ser lo suficientemente espaciado
para que se note un cambio en la
planta.

- El servo-motor tiene una excelente
aplicacin para nuestro prototipo debido
a su funcionamiento en grados, y
satisface el diseo mecnico.

- Se pudo realizar el moldeamiento
dinmico del sistema para poderlo
analizar en Matlab; de tal manera que
se expres finalmente en trminos de Z
para un controlador PD, PI y PID
elaborado y simulado todo desde Matlab
donde se muestra el modelamiento de
la planta del sistema y finalmente
obtener el control de Ball beam.
- Se pudo realizar el moldeamiento
dinmico del sistema para poderlo
analizar en Matlab; de tal manera que
se expres finalmente en trminos de Z
la planta del sistema para poder realizar
el control de Ball beam.

- Se realiz un control respectivo al
sistema mediante la herramienta de
Matlab, y se pudo observar que cuando
se incrementa Kp mejora el tiempo de
estabilizacin

- Para la prctica, puede probar
diferentes P, I y D combinaciones para
obtener una respuesta satisfactoria
como se ha demostrado tericamente,
analticamente y en la implementacin.

Vous aimerez peut-être aussi