Anda di halaman 1dari 11

IMPLEMENTACIN DEL SISTEMA DE CONTROL

DISCRETO
FUNCIN DE TRANSFERENCIA DEL MOTOR DC
OBJETIVOS:
Disear e implementar un sistema de control de velocidad de un
motor de DC.

Hallar empricamente la funcin de transferencia de un motor


DC con encoder, en lazo abierto.
Realizar una interfaz que relacione la entrada con la salida y
hallar la funcin de transferencia RPM vs ADC (Potencimetro).

MATERIALES:

Motor DC con encoder


Integrado puente H
Interfaz Arduino
PC (con MATLAB)

MOTOR DC CON ENCODER


Posee cuatro entradas a parte de la alimentacin del motor. Dos de
ellos son canales y los otro dos la alimentacin del chip encoder.
Datos:
Pulsos por revolucin = 100
Alimentacin del motor DC mx
= 28v
Alimentacin del chip encoder
= 5v

INT0
+88.8

INTEGRADO PUENTE H (L293D)


+5V

+12V

+12V

L293D
Driver Motor
16
IN1

2
7
1

EN2
IN3
IN4

VSS

VS OUT1
OUT2

U2
3
6
PULSOS

+88.8

9
10
15

IN1
IN2
EN1

GND

OUT3
GND OUT4

11
14
L293D

Encoder

El IC L293D permite
acoplar la salida de un
microcontrolador a un
motor, adems este
posee
su
propia
alimentacin para el
motor.
Indispensable
ya que sin este, podra
daarse
el
microcontrolador.

INTERFAZ ARDUINO

PD4/T0/XCK
~ PD3/INT1
PD2/INT0
TX PD1/TXD
RX PD0/RXD

DUINO1
ARDUINO UNO R3

DIGITAL (~PWM)

1121
ATMEGA328P-PU

microcontrolandos.blogspot.com

PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
PC4/ADC4/SDA
PC5/ADC5/SCL

Generador de %Duty
Para el PWM PIN9

ANALOG IN
RESET

+5V

50%

A0
A1
A2
A3
A4
A5

RV1

ANALOG A1

10k

Arduino ha sido

7
6
5
4
3
2
1
0
PD7/AIN1

~ PD6/AIN0
PD5/T1
~

PB5/SCK
PB4/MISO
~PB3/MOSI/OC2A
~ PB2/SS/OC1B
~ PB1/OC1A
PB0/ICP1/CLKO

AREF

13
12
11
10
9
8

IN1

utilizado como
interfaz
para
conectar
nuestro circuito
a MATLAB, y ver
por medio de l
la respuesta del
sistema.
Esto
nos permite ver
la
entrada
directamente.
Arduino
trabaja
a
f=500Hz.
PIN
A0:
potencimetro
PIN9: salida del PWM

CIRCUITO CONVERSOR FRECUENCIA VOLTAJE (LM2917)


+10.46V

R1
816

U1

9
PULSOS

TACHO+ V+

D1
11

TACHO-

OPINOPIN+

1N4148
2

R4
9.79k

C2

CC

C
E

GND
12

FLT

Tacmetro
Convertidor Frecuencia->Voltaje
ANALOG A1

8
5
10
4
3

R3
R2

LM2917

10nF

19.68k

9.93k

C1
1uF

RV1
74%

+10.46V

9.14k

+88.8
mV

CONVERSOR FRECUENCIA/VOLTAJE

VOUT = 0.003 * FP
FP

= Frecuencia proveniente del decoder del motor (pulsos/seg)

VOUT
2

= Voltaje de salida del conversor

CONVERSIONES
a

F RPM

RPM = (FP

pulsos 1 revolucin
60 seg
)*(
)*(
)
seg
100 pulsos
1 min

RPM = (FP )*

RPM = (

60 revoluciones
100
min

VOUT
60 revoluciones
)*
0.003 100
min

RPM = 200 * VOUT


b

W RPM

RPM = (w

rad 1 revolucin
60 seg
)*(
)*(
)
seg
2 rad
1 min

RPM = w * (

60 revoluciones
)
2
min

FUNCIN DE TRANSFERENCIA (F.T) SEGN TEORIA

(s)
Ki
=
VIN (s) (L a s+R a )(Js+B)+K i K b

De 2.b)

RPM(s)
(60 2)*K i
=
VIN (s) (L a s+R a )(Js+B)+K i K b

ACOMODACIONES

VOUT (s)
VOUT (s) VOUT (s) RPM(s)
RPM(s) VIN (s)
=
*

=
VOUT (s)
VIN (s) RPM(s) VIN (s)
VIN (s)
RPM(s)
De 1.a)

V (s)
RPM(s)
= 200* OUT
VIN (s)
VIN (s)

CODIGO ARDUINO

Para la interfaz Arduino-Matlab, se utiliz un cdigo especial el cual no se


pondr en el informe por ser muy extenso. Se agreg las siguientes lneas,
para leer los valores ADC del voltaje de alimentacin y la salida del
Tacmetro (Encoder).
int
int
int
int
int

pinAnalog0=A0; //Lectura de la entrada (Potenciometro)


pinAnalog1=A1; //Lectura de la salida en RPM
valorPot=0; //variable para guardar el valor del potenciometro
valorRPM=0; //variable para guardar el valor RMP
pulsoL293D=9; //Seleccionamos pin 9 para pulso hacia el L293D

void setup() {
pinMode(pulsoL293D,OUTPUT); // Establecemos el pin9 como salida.
}
void loop() {
// Leemos el valor del sensor y lo almacenamos:
valorPot=analogRead(pinAnalog0);
// Arduino=500Hz // Establecemos el PWM
//analogWrite(255)=100%duty
//analogWrite(127)=050%duty
//Acondicionamos al #de bits dividiendo entre 4
analogWrite(pulsoL293D,valorPot/4);
valorRPM=analogRead(pinAnalog1);
}

CODIGO MATLAB
clc; close all; clear all;
%arduino('com10').analogRead(0)
a=arduino('COM10')
tic;
i=0;
while toc<10
i=i+1;
time(i)=toc;
figure(1);
%Leemos el analogico A0 'Potenciometro'
Vin(i)=a.analogRead(0);
plot(time,(Vin*11.65)/1024,'r');
%Vin(12V) vs tiempo(seg)
hold on
grid
%Leemos el analogico A1 'Tacmetro'
Vout(i)=a.analogRead(1);
plot(time,(Vout*4.58)/1024,'b')
%Vin(4.58V) vs tiempo(seg)
title('Voltaje vs. tiempo');

xlabel('tiempo (segundos)'); ylabel('Voltaje');


pause(0.001);

end

figure(2);
RPM=(((Vout*4.58)/1024)*200);
plot(((Vout*4.58)/1024),RPM,'b') %Vout vs Velocidad RMP
title('Relacion Velocidad-Tension');
xlabel('Tension(V)'); ylabel('Velocidad (RPM)');
grid

%para exportar datos:


%xlswrite('Matlab.xlsx',Vin,'Hoja1','A1')
%xlswrite('Matlab.xlsx',Vout,'Hoja1','A2')

Para

hallar

la

relacin

RPM ( velocidad angular )/Vout (tacmetro)

fue

necesario calcular la frecuencia de los pulsos proporcionados por el encoder.


Y su relacin con el voltaje proporcionado por el convertidor de frecuencia a
voltaje (Tacmetro).
Para esto se midieron los valores de la resistencia, capacitor, voltaje de
entrada y voltaje de salida y usando la ecuacin del convertidor:

Vout=freucenciaValimentacionRC
Se hizo un proceso inverso para as calcular la frecuencia aparente que
cumpla dicha ecuacin:
Teniendo as:
R
28820

C
0.00000
001

Valimenta
cion
10.46

Frecuencia
aparente
Vout real
477.0163061
1.438
531.4187221
1.602
550.658601
1.66
587.1480263
1.77
427.9214429
1.29

Luego los valores de las frecuencias fueron llevados al simulador Proteus,


corroborando el Vout esperado. As en Excel se obtuvo la siguiente ecuacin
lineal

Vout vs frecuencia
2
1.5

f(x) = 0x

Voltaje de salida: Vout

0.5
0
400 420 440 460 480 500 520 540 560 580 600

frecuencia de entrada: f

Luego el valor de las RMP seria:

RPM=

Vout (60)
( factor de conversion)( pulsos/revol)

RPM=

Vout( 60)
( 0.003)(100)

Vin Entrada al motor : ROJO

Vout Salida del Tacometro : AZUL

Luego se guardaron todos los valores obtenidos por distintas pruebas, en las
cuales se consideraba las condiciones iniciales cero y luego se cerraba el
circuito para la lectura de los datos. Tomando en consideracin un total de
500 datos.
Se utiliz el siguiente cdigo para mandar los valores a una tabla de Excel:
xlswrite('Matlab.xlsx',Vin,'Hoja1','A1')
xlswrite('Matlab.xlsx',Vout,'Hoja1','A2')

Grafica en Excel de los 500 valores obtenidos en distintas pruebas:

RPM vs Vin
350
300

f(x) = 30.68x + 1.69

250
200

RPM(velocidad angular)

150
100
50
0

10

12

Vin(Entrada al motor)

Luego se import los valores del Excel al Matlab y se us el IDENT para


construir la funcin de transferencia en lazo abierto

Aqu se muestra todos los valores de la relacin RPM/Vin. Para mejorar el


muestreo se manipulo la entrada al motor desconectndolo y volvindolo a
conectar para que as muestre los datos de ascenso y descenso.
Considerando as tambin las condiciones cero.

Una vez obtenido la funcin de transferencia con el IDENT. Se llev esta


grafica al Workspace y se volvi a trabajar con el Matlab. Teniendo la
siguiente funcin de transferencia:
FTLA0 =
Process model with transfer function:
Kp
G(s) = ----------------(1+Tp1*s)(1+Tp2*s)
Kp = 30.484
Tp1 = 9.8661e-05
Tp2 = 6.6038e-11
Name: FTLA0
Parameterization:
'P2'
Number of free coefficients: 3
Use "getpvec", "getcov" for parameters and their uncertainties.
Status:
Estimated using PROCEST on time domain data "Motor".
Fit to estimation data: 70.08%
FPE: 1903, MSE: 1881

Tiempo de ascenso(s):

2.17104

Tiempo de Establecimiento(s):

3.86104

Dando una realimentacin unitaria se calcul tambin la funcin de


transferencia en lazo cerrado:
H=1;
FTLC0=feedback(FTLA0,H);
step(FTLC0);title('Funcion de transferencia en lazo cerrado
Gp(s)');xlabel('tiempo'); ylabel('RPM/Vin');

Tiempo de ascenso(s):

6.88106

Tiempo de Establecimiento(s):

1.2310

OBSERVACIONES Y CONCLUSIONES:
Para obtener la funcin de transferencia fue necesario mezclar parte
terica y experimental. Adems el uso del IDENT fue particularmente
indispensable.
Se pudo hallar la relacin de frecuencia/Voltaje del Tacmetro gracias
a un proceso inverso de medicin, en el que se halla la frecuencia
aparente a travs de la formula general del tacmetro y luego se
corroboro experimentalmente que cumpla.
En la grfica de la funcin de transferencia podemos ver que la
respuesta del sistema no presenta amortiguamientos.
El tiempo de establecimiento es considerablemente pequeo y
adems en la grfica del sistema en lazo cerrado este tiempo llega a
ser an ms pequeo.

Anda mungkin juga menyukai