Вы находитесь на странице: 1из 13

LABORATORIO N3 DE CONTROL DIGITAL

Obencin de la funcion de transferencia de un motor DC


Ahora procederemos a encontrar la funcion de transferencia del motor DC para esto l analizaremos
matematicamente:

Las siguientes variables son las siguientes:


Va

Voltaje de armadura(V)

Ra

Resistencia de la armadura ()

La

Inductancia de la armadura (H)

Ia

Corriente de la armadura (I)

Eb

Voltaje de entrada (v)

Velocidad angular (rad/s)

Tm

Torque del motor(Nm)

Posicin angular del rotor (rad)

Jm

Inercia del rotor (Kgm2)

Bm

Coeficiente de friccin viscosidad


(Nms/rad)

Kt

Constante del torque(Nm/A)

Kb

Constante de fme (Vs/rad)

Datos del fabricante que se conoce:

Aplicando las ecuaciones en el circuito por medio de tensiones de lazo tenemos:

Aplicando transformada de laplace a las dos ecuaciones tenemos que:

Si se despeja la corriente de armadura de la ecuacin segunda y por medio de trucos matemticos


podemos obtener que:

Donde la relacin del rotor y la velocidad cuando se aplica un voltaje da como funcin de transferencia
la siguiente:

Donde la relacin entre posicin y velocidad del motor dc es la siguiente:

Funcin de transferencia del motor dc (Parte experimental).


Como no todos los motores en dc tiene las mismas caractersticas se realizo una proceso en un motor dc
de 12 voltios el cual se tomaron diferentes datos por medio de la tarjeta de adquisicin Arduino los
cuales procesados en Matlab por medio de IDENT podemos obtener la funcin de transferencia del
motor.
Observacin: es recomendable hacer este proceso para todos los motores dc que se utilicen para
cualquier tipo de control .
Cdigo Arduino:

Cdigo en Matlab:
% Captura de voltaje en tiempo real con Arduino
% Jorge Garca Tscar
%% Apertura del serie (COM)
close all; clear all; clc
%borrar previos
delete(instrfind({'Port'},{'/dev/ttyS101'}));
%crear objeto serie
s = serial('/dev/ttyS101','BaudRate',9600,'Terminator','CR/LF');
warning('off','MATLAB:serial:fscanf:unsuccessfulRead');
%abrir puerto
fopen(s);
%% Preparar medida
% parmetros de medidas
tmax = 10; % tiempo de captura en s
rate = 33; % resultado experimental (comprobar)
% preparar la figura
f = figure('Name','Captura');
a = axes('XLim',[0 tmax],'YLim',[0 5.1]);
l1 = line(nan,nan,'Color','r','LineWidth',2);
l2 = line(nan,nan,'Color','b','LineWidth',2);
xlabel('Tiempo (s)')
ylabel('Voltaje (V)')
%title('Captura de voltaje en tiempo real con Arduino')
grid on
hold on
%% Bucle
% inicializar
v1 = zeros(1,tmax*rate);
v2 = zeros(1,tmax*rate);
i = 1;
t = 0;
% ejecutar bucle cronometrado
tic
while t<tmax
t = toc;
% leer del puerto serie
a = fscanf(s,'%d,%d')';
v1(i)=a(1)*5/1024;
v2(i)=a(2)*5/1024;
% dibujar en la figura
x = linspace(0,i/rate,i);
set(l1,'YData',v1(1:i),'XData',x);
set(l2,'YData',v2(1:i),'XData',x);
drawnow
% seguir
i = i+1;
end

% resultado del cronometro


clc;
fprintf('%g s de captura a %g cap/s \n',t,i/t);
%% Tratamiento
% salvar el grfico
% necesita la funcin externa savefigure:
% http://www.mathworks.de/matlabcentral/
% fileexchange/6854-savefigure
%savefigure('captura_multi','s',[4.5 3],'po','-dpdf')
%% Limpiar la escena del crimen
fclose(s);
delete(s);
clear s

Ahora obtenemos datos de Matlab, esto nos genera la siguiente adquisicin de datos:
>> v1
v1 =
Columns 1 through 9
0

Columns 10 through 18
0

0.0732

Columns 19 through 27
0

0.0049

Columns 28 through 36
0

Columns 37 through 45
0

0.0293

Columns 46 through 54
0

Columns 55 through 63

0.0049

2.4072

2.5977

Columns 64 through 72
0

Columns 73 through 81
0

3.8135

3.8623

Columns 82 through 90
3.9551

3.9795

3.9941

3.9893

3.9893

3.9941

3.9990

3.9893

3.9746

3.9307

3.9502

3.9502

3.9795

3.9600

3.9697

3.9746

3.9795

3.8672

3.9453

4.0332

3.9746

3.8818

3.8574

3.9795

4.0137

3.9941

3.9844

3.9648

3.9404

3.9648

4.0186

3.9844

3.9746

3.9697

3.9551

3.9746

4.0723

3.9697

3.8818

3.9746

3.9795

3.9746

3.9844

3.9697

3.9600

3.9697

3.9893

3.9795

3.9844

3.9844

3.9941

3.9746

3.9697

3.9697

3.9941

3.9795

3.9697

Columns 91 through 99
3.9307

3.9307

3.9355

Columns 100 through 108


3.9502

3.9600

3.9844

Columns 109 through 117


4.0576

3.9941

3.9697

Columns 118 through 126


3.9844

3.9893

3.9795

Columns 127 through 135


3.9600

3.9600

3.9453

Columns 136 through 144


3.9941

3.9990

3.9893

Columns 145 through 153


4.0918

3.9795

3.9844

Columns 154 through 162


3.9795

3.9453

4.0381

Columns 163 through 171

3.9746

3.9746

4.0771

3.9795

3.9600

3.9795

3.9893

3.9648

3.9795

3.9697

3.9893

4.0039

3.9697

3.9941

3.9648

3.9941

3.9893

3.9844

3.9600

3.9795

3.9697

3.9795

3.9795

3.9551

3.9697

3.9648

4.0039

4.0918

4.0039

3.9844

3.9844

3.9746

3.9746

3.9502

3.9746

4.0918

3.9648

3.9990

3.9795

3.9746

3.9941

4.0527

3.9844

3.9746

3.9648

4.0088

3.9844

3.9795

3.9453

3.9844

3.9746

3.9795

3.9746

3.9746

3.9648

3.9941

4.0039

3.9941

3.9697

3.9697

3.9795

3.9502

3.9502

3.9551

3.9648

3.9600

3.9990

4.0088

3.9893

3.9746

3.9844

3.9844

3.9844

3.9844

3.9648

Columns 172 through 180


3.9795

4.0723

3.9648

Columns 181 through 189


3.9746

3.9990

3.9746

Columns 190 through 198


3.9844

3.9990

3.9795

Columns 199 through 207


3.9844

3.9893

3.9746

Columns 208 through 216


3.9795

3.9844

3.9746

Columns 217 through 225


4.0918

3.9600

3.9746

Columns 226 through 234


3.9551

3.9844

3.9893

Columns 235 through 243


3.9648

3.9844

3.9453

Columns 244 through 252


3.9941

3.9893

3.9648

Columns 253 through 261


3.9844

3.9648

3.9697

Columns 262 through 270


3.9648

3.9844

3.9746

Columns 271 through 279

3.8867

4.0137

3.9844

4.0039

3.9844

4.0967

3.9893

3.9844

3.9746

4.1553

3.9648

3.9746

3.9551

3.9746

3.9844

3.9746

3.9746

3.9600

4.0918

3.9551

3.9893

3.9600

3.9746

3.9844

3.9844

4.0430

3.9844

3.9844

3.9746

3.9795

3.9844

3.9648

3.9648

3.9844

3.9795

3.9600

3.9844

3.9551

3.9648

3.9795

3.9648

3.9844

3.9404

4.0869

3.9648

4.0625

3.9844

3.9697

3.9697

3.9648

3.9746

3.9697

3.9746

3.9795

3.9746

3.9697

3.9697

3.9795

3.9795

3.9746

3.9795

3.9648

3.9746

3.9844

3.9746

3.9746

3.9502

3.9600

3.9844

3.9746

3.9697

3.9746

3.9746

3.9307

3.9697

Columns 280 through 288


3.9844

3.9844

4.0967

Columns 289 through 297


3.9844

3.9893

3.9844

Columns 298 through 306


3.9746

3.9795

3.9648

Columns 307 through 315


3.9355

3.9648

3.9697

Columns 316 through 324


3.9502

3.9697

3.9893

Columns 325 through 333


3.9746

3.9893

3.9795

Columns 334 through 342


3.9648

3.9844

3.9551

Columns 343 through 351


3.9648

3.9697

3.9697

Columns 352 through 360


3.9453

3.9648

3.9697

Columns 361 through 369


3.9648

3.9697

3.9697

Columns 370 through 378


3.9893

3.9893

4.0234

Columns 379 through 387

3.9844

3.9697

3.9697

3.9648

3.9648

3.9600

3.9941

3.9648

3.9844

3.9551

3.9795

3.9795

3.9648

3.9746

3.9844

3.9844

3.9795

3.9844

3.9795

3.9746

3.9600

3.9795

3.9844

3.9648

3.9600

3.9551

3.9697

3.9648

3.9746

3.9551

3.9844

3.9746

3.9795

3.9648

3.9600

3.9844

3.9795

Columns 388 through 396


3.9697

3.9600

3.9746

Columns 397 through 405


3.9795

3.9600

3.9795

Columns 406 through 414


3.9648

3.9014

3.9844

Columns 415 through 423


3.9844

3.9746

3.9697

Columns 424 through 430


3.9795

3.9453

3.9600

Ahora veremos el ploteo obtenido:

Tomamos mas datos:

Pasamos lo obtenido a IDENT:

Obtenemos la siguiente funcion de transferencia:


>> tf1
tf1 =
From input "u1" to output "y1":
6.019e-05
---------------------------s^2 + 0.004007 s + 0.0001288
Name: tf1
Continuous-time identified transfer function.
Parameterization:
Number of poles: 2 Number of zeros: 0
Number of free coefficients: 3
Use "tfdata", "getpvec", "getcov" for parameters and their uncertainties.
Status:
Estimated using TFEST on time domain data "mydata4".
Fit to estimation data: 59.2% (simulation focus)
FPE: 0.396, MSE: 0.3879

Obtenemos nuevamente datos:

Graficamos la funcin de transferencia:

Ahora obteniendo un modelo de motor aceptable procedemos a hallar los


parametros del motor:

6.019e-05
---------------------------s^2 + 0.004007 s + 0.0001288
Arreglando la funcion de transferencia nos queda:

De lo cual podemos obtener los siguientes parametros igualando ambas


expresiones:

CONCLUSIONES. Al obtener la funcin de transferencia del motor ya podemos aplicarle


algun controlador para aplicar un control dado.
Se puede mejorar en comportamiento de la planta si agregaramos
compensadores.
Si bien nosotros trabajamos con un conversor de frecuencia a voltaje, se
pudo trabajar directamente con los encoder para un control de posicion.

Вам также может понравиться