15
CONTROL DIGITAL 1 Entrega Final Planta Control BALL BEAM Carlos Iván Mesa Manrique Código: 45121608 # Estudiante (Ingeniería en Automatización, Universidad de La Salle) Bogotá D.C., Colombia ResumenEl siguiente proyecto Ball Beam consiste en controlar la posición de una bola de acero inoxidable en una pista. Consiste básicamente de la variación de posición de la bola que es medida con la variación 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 varía, cuando esta bola cambia de posición. Lo anterior vendría a ser nuestro sensor que vendría a determinar la variación de posición vs voltaje o resistencia según varié. Por otro lado tenemos el servo que es el que vamos a controlar por medio de la variación angular que este me genere, en este caso un rango de -15° a 15°. Según la posición deseada para la bola o el cilindro en la pista, se realizara la respectiva instrumentación 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 módulo de control, que es una alta precisión. La unidad se utiliza para servomotores o motores de corriente continua. IDIOMA programable con alto nivel de movimiento, el módulo de control inteligente integrado en una sola tarjeta de control de movimiento avanzado y específico PLC funcionalidad. Idioma combinado con un movimiento de alto nivel, una plataforma para la programación rápida gráfica módulo de control de configuración, ajuste y movimiento representa un flexible, inteligente y fácil de implementar, la solución para una amplia gama de aplicaciones. Un fácil utilizar el interfaz de control muestra los resultados visuales gráficas 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 básicos y la aritmética de estudio. OBJETIVO GENERAL Diseñar e implementar un control para la planta del Ball Beam. Objetivos específicos Identificar los materiales adecuados para estabilizar la planta. Caracterizar e Identificar el método de diseño de la planta. Elegir de una forma adecuada para el control del servomotor Diseñar un control para mantener la planta en un punto estable.

PROYECTO Ball Beam Control 2012

Embed Size (px)

DESCRIPTION

CONTROL DIGITAL Entrega Final Planta Control BALL BEAM Carlos Iván Mesa Manrique Código: 45121608 Ingeniería en Automatización, Universidad de La Salle) Bogotá D.C., Colombia Resumen— El siguiente proyecto Ball Beam consiste en controlar la posición de una bola de acero inoxidable en una pista. Consiste básicamente de la variación de posición de la bola que es

Citation preview

Page 1: PROYECTO Ball Beam Control 2012

CONTROL DIGITAL

1

Entrega Final

Planta Control BALL BEAM Carlos Iván Mesa Manrique Código: 45121608

#Estudiante (Ingeniería en Automatización, Universidad de La Salle)

Bogotá D.C., Colombia

Resumen— El siguiente proyecto Ball Beam consiste en controlar la posición de una bola de acero inoxidable en una pista. Consiste básicamente de la variación de posición de la bola que es medida con la variación 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 varía, cuando esta bola cambia de posición. Lo anterior vendría a ser nuestro sensor que vendría a determinar la variación de posición vs voltaje o resistencia según varié. Por otro lado tenemos el servo que es el que vamos a controlar por medio de la variación angular que este me genere, en este caso un rango de -15° a 15°. Según la posición deseada para la bola o el cilindro en la pista, se realizara la respectiva instrumentación 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 módulo de control, que es una alta precisión. La unidad se utiliza para servomotores o motores de corriente continua. IDIOMA programable con alto nivel de movimiento, el módulo de control inteligente integrado en una sola tarjeta de control de movimiento avanzado

y específico PLC funcionalidad. Idioma combinado con un movimiento de alto nivel, una plataforma para la programación rápida gráfica módulo de control de configuración, ajuste y movimiento representa un flexible, inteligente y fácil de implementar, la solución para una amplia gama de aplicaciones. Un fácil utilizar el interfaz de control muestra los resultados visuales gráficas 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 básicos y la aritmética de estudio. OBJETIVO GENERAL

Diseñar e implementar un control para

la planta del Ball Beam.

Objetivos específicos

Identificar los materiales adecuados

para estabilizar la planta.

Caracterizar e Identificar el método de

diseño de la planta.

Elegir de una forma adecuada para el

control del servomotor

Diseñar un control para mantener la

planta en un punto estable.

Page 2: PROYECTO Ball Beam Control 2012

CONTROL DIGITAL

2

MARCO TEÓRICO

Se diseñó una planta con el fin de controlar la posición 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 posición de la bola.

Para realizar dicha planta fue necesario hacer un estudio previo debido a los materiales necesarios para su fabricación.

Los materiales que se utilizaron son:

- Servo-motor

- Fuente de 5V

- Tornillo sin fin (hierro)

- Una base de acrílico

-

A continuación se explica el funcionamiento de cada uno de los materiales que se utilizaron

Servomotor

Un Servo es un dispositivo pequeño que tiene un eje de rendimiento controlado. Este puede ser llevado a posiciones angulares específicas al enviar una señal codificada. Con tal de que una señal codificada exista en la línea de entrada, el servo mantendrá la posición angular del engranaje. Cuando la señala codificada cambia, la posición angular de los piñones cambia. En la práctica, se usan servos para posicionar superficies de control como el movimiento de palancas, pequeños ascensores y timones. Ellos también se usan en radio control, títeres, 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 Posición angular en el servomotor

3. Determinar las variables a manipular

Cantidad de pulsos enviados al servomotor

Cilindro Acero

Posición Deseada

Posición Actual

PD>PA

PD<PA

Girar Angulo Negativo

Girar Angulo Positivo

PD=PA

Posición De Bola Controlada

Page 3: PROYECTO Ball Beam Control 2012

CONTROL DIGITAL

3

4. Determinar los puntos de control

Posición angular de -15 ° a + 15° y la velocidad de giro respectivo

5. Describir el principio físico básico

siguiendo el modelo

Funcionamiento

El motor del servo tiene algunos circuitos de control y un potenciómetro (una resistencia variable) esta es conectada al eje central del servo motor. En la figura se puede observar al lado derecho del circuito. Este potenciómetro 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 dirección 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 varía según 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 sólo una pequeña cantidad, el motor correrá a una velocidad más lenta. A esto se le llama control proporcional.

Características Generales Y Funcionamiento:

Estos servos tienen un amplificador, servo motor, piñonearía de reducción y un potenciómetro de realimentación; todo incorporado en el mismo conjunto. Esto es un servo de posición (lo cual significa que uno le indica a qué posición debe ir), con un rango de

aproximadamente 180 grados. Ellos tienen tres cables de conexión eléctrica; Vcc, GND, y entrada de control.

Para controlar un servo, usted le ordena un cierto ángulo, medido desde 0 grados. Usted le envía una serie de pulsos. En un tiempo ON de pulso indica el ángulo al que debe posicionarse; 1ms = 0 grados, 2.0ms = máx. grado (cerca de 120) y algún valor entre ellos da un ángulo de salida proporcional. Generalmente se considera que en 1.5ms está el "centro." Entre límites 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 más. El factor limitante es el tope del potenciómetro y los límites mecánicos 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 crítico; 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 podría escucharse un sonido de zumbido o alguna vibración en el eje. Si el espacio del pulso es mayor de 50ms (depende del fabricante), entonces el servo podría estar en modo SLEEP entre los pulsos. Entraría a funcionar en pasos pequeños y el rendimiento no sería el óptimo.

Como se observa en la figura, la duración del pulso indica o dictamina el ángulo del eje (mostrado como un círculo verde con flecha). Nótese que las ilustraciones y los tiempos reales dependen del fabricante de motor. El principio, sin embargo, es el mismo.

Page 4: PROYECTO Ball Beam Control 2012

CONTROL DIGITAL

4

El cable de control se usa para comunicar el ángulo. El ángulo está determinado por la duración de un pulso que se aplica al alambre de control. A esto se le llama PCM Modulación 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 posición de 90 grados (llamado la posición 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 descripción realizada anteriormente como se ha podido observar son servomotores de corriente continua usados en robótica doméstica fundamentalmente.

Fig. 2 Características técnicas del servomotor

Fuente: es el dispositivo que provee la electricidad con que se alimentan los diferentes dispositivos electrónicos Tornillo sin fin: es una disposición que transmite el movimiento entre ejes que están en ángulo recto, en este caso no vamos a

tomar esa definición para nuestro proceso, la aplicación q tiene el tornillo es darle fricción a la bola metálica para poder tener un menor grado de error. Base de Madera: es el elemento que nos permite unir todos los materiales que se utilizaran Selección Del Sensor: Debido a recursos del proyecto, se decidió seleccionar el sensor ultrasónico del laboratorio.

Fig. 3 Sensor Ultrasónico UB500-18/GM75 I V-15

Indicaciones de manejo

LED amarillo: objeto en rango evaluación LED rojo: Objeto no detectado Para la etapa de sensórica, se ha escogido un sensor ultrasónico Pepperl + Fuchs con las siguientes características: Sensor ultrasónico Intervalo de detección: 50mm a 500mm Frecuencia: 380 KHz Ángulo de reflejo: 60° Rango de temperatura:-25 °C a +70 °C Entrada del sensor: Ultrasónico Tensión de alimentación máx.:30V Tiempo de respuesta: 50ms

Page 5: PROYECTO Ball Beam Control 2012

CONTROL DIGITAL

5

Función de Transferencia Sensor Para determinar la función 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 función de transferencia del sensor es la ecuación de la recta anterior que va a ser igual a:

48.22

21.2027.2

)5,4(27,210

)0(0

27.25.47.6

1015

12

12

x

y

xy

xy

xxmyy

m

xx

yym

48.22)( sH

Luego se analizó la salida del sensor ultrasónico ante la variación 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 multímetro y comprobar el diseño del controlador.

4,5

6,7

9,2

11,6

13,5

15,7

Page 6: PROYECTO Ball Beam Control 2012

CONTROL DIGITAL

6

Montaje actual

Fig. 4

Fig. 4

Explicación 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, además el movimiento de las barras como están polarizada, cada vez que se mueven su voltaje aumenta o disminuye debido al movimiento del cilindro ya que esta permite la unión de las dos barras.

6. MODELO MATEMATICO

Para el modelo matemático del Ball Beam tenemos la siguiente ecuación ya que se implementara un control en lazo abierto

2

2

1

)(

)(

sm

R

JL

mgd

s

sR

Control Digital PID Si se refiere a cualquier problema del control PID para los sistemas continuos, la función de transferencia PID se expresó como:

Como habrá notado la función de transferencia anterior fue escrito en términos de s. Para el control PID digital, se utiliza la siguiente función de transferencia en términos de z.

Función de transferencia discreta Lo primero que debe hacer es convertir lo anterior función de transferencia del sistema continuo a una función de transferencia discreta equivalente. Para ello, vamos a utilizar la función de Matlab c2d. Para utilizar c2d, tenemos que especificar tres argumentos: el sistema, el tiempo de muestreo (Ts), y el 'método'. 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 método 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;

Page 7: PROYECTO Ball Beam Control 2012

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 añadir 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 ejecútelo 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 término derivativo al controlador. Manteniendo la ganancia proporcional (Kp) igual a 100, y dejar que la ganancia derivativa (Kd) igual a 10. Copie el código siguiente en un nuevo archivo-m y ejecútelo para ver la respuesta del sistema.

Código 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 50

0.1

0.2

0.3

0.4

0.5

0.6

0.7

Page 8: PROYECTO Ball Beam Control 2012

CONTROL DIGITAL

8

Fig. 8 Respuesta Control Proporcional Derivativo Simulación Del Modelamiento En Matlab: A continuación mostramos la simulación mediante Matlab, aplicamos el control PID

Código 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 añadir 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 ejecútelo en la ventana de comandos. Código 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 50

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

0.18

Page 9: PROYECTO Ball Beam Control 2012

CONTROL DIGITAL

9

Fig. 9 Sistema Sin Control Proporcional-Derivativo Ahora agregaremos un término derivativo al controlador. Mantener la ganancia proporcional (Kp) igual a 100, y dejar que la ganancia derivativa (Kd) igual a 10. El código siguiente muestra la respuesta del sistema.

Código 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 100

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

Page 10: PROYECTO Ball Beam Control 2012

CONTROL DIGITAL

10

Identificación De Planta Para la planta sabemos que nuestra entrada es la variación de la ganancia del servomotor en ms VS la variación de ganancia del sensor en voltios. Como se muestra a continuación las ganancias Rango del servomotor: (1.25ms-175ms) Rango del sensor: (0.996V-4.9V)

A continuación 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 continuación.

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

Page 11: PROYECTO Ball Beam Control 2012

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. Variación de la ganancia del servomotor en ms VS la variación de ganancia del sensor De la anterior tabla de datos observamos que para la variación 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 diseños

Fig. 14 Simulación mediante Ident de Matlab

Page 12: PROYECTO Ball Beam Control 2012

CONTROL DIGITAL

12

Analizamos los datos procesados de los diseños 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 diseño de un Zero y dos polos Analizamos la respuesta ante una entrada escalón 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 función de Transferencia Resultados de la planta

305.34

95953.4

349.22

3669.21

9.1724

)*exp()21)(11(

*1)(

Tz

eTd

Tp

Tp

Kp

sTdTpTp

sTzKpsG

En Matlab simplificamos y terminamos de calcular nuestra planta en términos de z. Código 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

Page 13: PROYECTO Ball Beam Control 2012

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 Términos De Z

Transfer function in z:

9.0129e-006 (z-0.9942)

-----------------------

(z-0.919) (z-0.9184)

Sampling time: 0.2

Cálculos del controlador

Cálculos Del PID(Z) Para el Micro

Código 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)

Cálculos Del PI(Z) Para el Micro

KdsKpPd

Tz

zKdKpzPd

1)(

Tz

KdKdzTzKpzPd

)()(

1

1)()(

z

z

Tz

KdzKdKpTzPd

T

KdzKdKpTzPd

1

)(

)()(

)(zPd

zE

zU

T

kEKdkEKdKpTkU

)1()()()(

errorsensorsetpokE int)(

iorerroranterkE )1(

Código 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)

Page 14: PROYECTO Ball Beam Control 2012

CONTROL DIGITAL

14

Cálculos Del PI(Z) Para el Micro

s

KiKpPi

1

1

2)(

z

zTKiKpzPi

22

)1()22()(

z

zTKizKpzPi

1

12)2()(

z

z

Tz

TKiKpzTKiKpzPi

1

11

22

2)2()(

z

TKizKpzTKiKpzPi

)()(

)(zPi

zE

zU

)1()1(2)2)(()1()( kTkiEkpkETkikpkEkUkU

2

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

kUkEKpTkikETkikpkU

errorsensorsetpokE int)(

iorerroranterkE )1(

Código 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)

Código 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

Page 15: PROYECTO Ball Beam Control 2012

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 multímetro 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 operación 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

aplicación para nuestro prototipo debido

a su funcionamiento en grados, y

satisface el diseño mecánico.

Se pudo realizar el moldeamiento

dinámico del sistema para poderlo

analizar en Matlab; de tal manera que

se expresó finalmente en términos 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

dinámico del sistema para poderlo

analizar en Matlab; de tal manera que

se expresó finalmente en términos 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

estabilización

Para la práctica, puede probar

diferentes P, I y D combinaciones para

obtener una respuesta satisfactoria

como se ha demostrado teóricamente,

analíticamente y en la implementación.