1
Función de Transferencia y Controlador
Proporcional Para Motor dc
5. Motor pololu 12 voltios DC
Jaime Alejandro Mora López y 6. Encoder incorporado en motor con dos salidas de
Juan camilo García tique frecuencia desfasadas.
7. Fuente de alimentación de 12 voltios.
B. DIAGRAMAS DE CONEXIÓN A UTILIZAR
Abstracto—se pretende realizar por medio de la plataforma
Arduino y Matlab la adquisición de datos que nos ayude a 1. Diagrama conexiones conversor frecuencia a
encontrar la función de transferencia que corresponda, para un voltaje:
motor dc que funciona a 12 voltios, para ello se deberá contar con
herramientas de hardware para desarrollo electrónico como
serán el conversor de frecuencia a voltaje, el encoder que
generará dicha frecuencia, elementos de potencia, en este caso
puente h l293d, y una placa Arduino UNO en este caso, la
herramienta de software Matlab nos brindara los parámetros
que determinaran el correcto funcionamiento del montaje a
realizar.
Índice de términos—encoder, motor, corriente continua,
Matlab, software, hardware, conversor, frecuencia, voltaje,
control, amplificador operacional.
I. INTRODUCCIÓN
C ON el paso de los años, y a medida que va avanzando la
tecnología, ha resultado de gran importancia para el
hombre el desarrollo de sistemas de control de variables que
garanticen la estabilidad de los procesos automatizados, es por
ello que nos centraremos en su estudio y por medio de este
documento se mostrará el proceso a realizar para hallar las
funciones básicas que ayuden en la estabilización de
encendido de un motor, se empezara con la adquisición de
datos o parámetros que permitan el desarrollo de un sistema 2. Diagrama de conexiones puente h.
de control que resulte beneficioso para nuestro aparato, y es
que las funciones de transferencia juegan un papel muy
importante en el desarrollo de la teoría del control.
II. ADQUISICION DE DATOS ENTRE ARDUINO Y
MATLAB PARA DETERMINAR FUNCION DE
TRANSFERENCIA DE UN MOTOR DC.
A continuación, se mostrará el paso a paso para obtener
datos en Matlab desde Arduino y con ellos generar una
función de transferencia.
A. Definir elementos a utilizar:
C. CÓDIGO PARA ADQUISICIÓN DE DATOS DE
1. Placa Arduino 1
ARDUINO EN MATLAB
2. Software Matlab (versión 2016)
3. Conversor de frecuencia a voltaje KA331 (o Con el siguiente código se procederá a realizar la
viceversa, sea el caso) adquisición de datos que nos ayude a obtener una función de
4. Puente h l293d transferencia:
%sensor de tension
2
clear all %limpia en totalidad
clc %limpia la ventana de comando
a = arduino ('COM5') %puerto arduino
x = 0; %variable que guarda una muestra
y = 0; %variable que guarda una muestra
Vin = 0; %variable que guarda voltaje de
entrada
Vout = 0;%variable que guarda voltaje de
salida
contador = 1; %para el corrimiento del
vector
n = 200 %numero de muestras
muestreo = 0.001; %intervalo de muestreo
title('voltaje en potenciometro');
xlabel ('numero de muestras');
ylabel('voltaje (v)');
grid on;
hold on; %habilito la modificacion de la
grafica
for k = 0:n Se puede concluir a pequeños rasgos que por cada 5 voltios
x = readVoltage (a, 'A0') que se proveen en el puente h para activar el motor, esta
Vout(contador) = x; entrega un voltaje que va en aumento y se estabiliza en
y = readVoltage (a, 'A1') aproximadamente 2.65 voltios.
Vin (contador) = y;
contador = contador + 1;
plot(Vout, 'x')
pause (muestreo) %tiempo de espera en
TABLA I
el muestreo MUESTRAS TOMADAS DEL VOLTAJE DE ENTRADA Y EL DE SALIDA
writeDigitalPin(a,'D3',1);
writeDigitalPin(a,'D5',0); Vin Vout
0 0,0293255131964809
4.9951 0,0879765395894428
end
5 0,332355816226784
pause(5); 5 0,581622678396872
writeDigitalPin(a,'D3',0); 5 0,772238514173998
writeDigitalPin(a,'D5',0); 5 0,938416422287390
5 1,05571847507331
este código consiste en tomar un muestreo del voltaje que 5 1,18768328445748
entra al puente h para hacer la activación del motor y el voltaje 5 1,30009775171066
de salida, entregado por el conversor de frecuencia a voltaje. 5 1,39296187683284
Se toman 200 muestras en un determinado tiempo, de las 5 1,49071358748778
cuales se grafican las muestras del voltaje de salida, 5 1,57380254154448
obteniendo la siguiente señal:
5 1,65689149560117
5 1,73020527859238
5 1,79863147605083
5 1,86217008797654
5 1,98435972629521
4.9951 2,03323558162268
5 2,08211143695015
4.9951 2,12121212121212
5 2,16031280547410
5 2,19941348973607
5 2,23362658846530
5 2,26295210166178
5 2,29716520039101
5 2,32160312805474
3
5 2,34604105571848 a realizar el calculo respectivo.
5 2,37536656891496 5. En nuestro caso la funcion de transferecia, teniendo en
5 2,39491691104594 cuenta que la cantidad de polos es 1 y de zeros es 0,
5 2,42424242424242 fue la siguiente:
5 2,43401759530792 0. 04076
5 2,47800586510264 s+0. 07617
5 2,49266862170088
5 2,50733137829912
5 2,52688172043011 E. Con la enterior funcion de transferencia se procedera a
4.9951 2,53665689149560 diseñar el control proporcional para nuestro sistema.
5 2,54643206256109 Los pasos a seguir seràn los siguientes:
5 2,55620723362659 1. introducimos en la Ventana de comandos el
5 siguientes Código para escribir la function de
2,56598240469208
transferencia:
5 2,57575757575758
5 2,58553274682307 num=[0.04076];
5 2,59042033235582 den=[1,0.07617];
4.9951 2,60508308895406 g=tf(num,den);
5 2,60997067448680
5 2,61485826001955
5 2,61974584555230
Nótese el comportamiento de la señal de salida con respecto a
la de entrada, mientras la señal de entrada se mantiene a 5
voltios, la de salida en las primeras 50 muestras tomadas, se
presenta un incremento hasta que se estabiliza.
D. Obtención de función de transferencia:
Para obtener la función de transferencia una vez se han
tomado las muestras tanto de la señal de entrada como la de
salida, se deben seguir los siguientes pasos:
1. Ejecutar el comando ident en la ventana de comandos
(command window), y se desplegara la siguiente 2. luego de esto, ejecutaremos la herramienta sisotool,
ventana: escribiendola en la Ventana de comandos, y se
desplagaran varias ventanas en las que iremos
creando el controlador de nuestro Sistema.
2. En la casilla import data, seleccionamos la opción time
domain data (datos en el dominio del tiempo).
3. Se desplegara una ventana en la cual se podra definir 3. lo primero que se debe hacer es dar clic sobre la
nuestra variable de entrada y la de salida (input, opcion editar arquitectura y configurar los siguientes
output), finalizamos con clic en la opcion import, se parametros:
exportaran los datos del muestreo.
4. Para que se genere la funcion de transferencia nos C=no colocar ningun valor
situamos en la casilla stimate, y elegimos la opcion F=ganancia 1 mientras se empieza a diseñar el
controlador.
transfer function models para que empiece el programa
4
H=poner ganancia 1
G(s)=asignamos en este aparte la function de
transferencia que se habia creado con anterioridad.
Clic en OK y se generaran las graficos de la funciòn
Introduciendo una ganacia 12 en el bloque F y
acomodando los polos de la grafica ROOT LOCUS
tendremos un valor para el bloque C de 11.924 y esa
sera la ganacia en el Sistema.
Ya con estos datos realizaremos el esquema del
controlador proporcional.