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;