Está en la página 1de 1

freq_stops=logspace(0,4,50);

r=0.896587; %valor aproximado de resistencia de armadura f=447.2 Hz


l=252.669E-6; %valor aproximado de inductancia de armadura f=447.2 Hz
den= [l r]; % denominador de primer orden de funci�n de transferencia
n=0; %variable para hacer redundancia en el envio de datos al micro
muestras=10; %muestras para hacer el promedio a la entrada
c=zeros(1,muestras); %vector para almacenar 10 datos de entrada y hacer la media
aritmetica
i=1; %variable para ir almacenando los datos y hacer la media aritmetica
clc;
delete(instrfind({'port'},{'COM3'}));
arduino=serial('COM3');
arduino.BaudRate=9600;
warning('off','MATLAB:serial:fscanf:unsuccesfulRead');
fopen(arduino);
while n<2 %%primera puesta de datos
fprintf(arduino,'30');
pause(2);
n=n+1;
end
while true
inc_data=fscanf(arduino);
func_data=erase(inc_data,'Pulsosegundo: ');
num_data=str2double(func_data);
if (num_data<=70) || (num_data>=200) || (isnan(num_data))
%%este es para evitar los picos inesperados
else
disp(num_data);
c(i)=num_data;
i=i+1;
if (i==muestras+1)
rad=2*pi*mode(c);
disp(rad);
g=tf(rad,den);
figure(1);
bode(g,freq_stops);
figure(2);
nyquist(g);
figure(3);
step(g);
pause(0.5);
i=1;
end
end
end
fclose(arduino);
delete(arduino);
clear all;

También podría gustarte