Matlab - Sr

   
Vista:

Sr

Publicado por germangsilva (22 intervenciones) el 14/06/2010 19:56:20
hola amigos

Estoy realizando la lectura de un archivo .DAT, necesito leer las colunnas e realizar algunos calculos, mi inquietud es la siguiente, cada columna son valores de velocidad, estos valores van o aumentando o disminuyendo hasta cierto valor casi constante,
Casi constante pq cuando alcanzan es estado estable, los valores fluctuan levemente entorno de un valor constante que seria la velocidad estable,pero ya no existe la tendencia de crecer o disminuir.
ahora yo debo leer los datos a partir de la posicion que se se alcance la velocidad constante, para realizar los calculos ,
Una idea era caculando una pendiente cuando la pendiente sea cero, este seria el valor constante de velocidad ...empiece a leer los datos para los calulos, pero cuando llega al estado estable ella fluctua levemente o sea de un punto para otro puede que la pendiente sea positiva luego negativa, pero entorno de un punto, no sé como leer adecuadamente estos datos

pars entendermejor , lafigura presenta los perfiles de velocidad, la flecha roja me indica desde donde debo leer los datos

http://files.engineering.com/getfile.aspx?folder=fd86cce4-d528-4615-bfa6-e8c93437db7c&file=star-read_data.emf

gracias!!!

% ---- lee el archivo que es separado por tabs ----------
m=csvread('LES9.dat', 1, 0); % LEE OS DATOS

unums = [2 3 5 6 7 8 9 10 11 12 4 13 14 16 17 18 19 20 21 22 23 15];

% me gustaria empezar a leer cada columna a partir de alcanzar un velocidad casi constante.

for i = 1:length(unums)
un = unums(i);
u(:,i) = m(:,un);

Y=abs(fft(u(:,i)))/length(u);

n=length(Y);

power(:,i) = abs(Y(1:floor(n/2))).^2/;
nyquist = 1/2;
freq = ((1:n/2)/(n/2)*nyquist)';

% regresion de todos los puntos
[a0,a1]=Linear_regression(log10(freq),log10(power(:,i)));

%a1 = -5/3; % para que la linea tenga pendiente definida
%a0 = log10(power(3000,i)) - (-5/3)*log10(freq(3000));% usando el dato medio
powerfit(:,i) = 10.^(a0 + a1*log10(freq));%reg todo.

a0_matriz(i) = a0;
a1_matriz(i) = a1
M=a1_matriz';

B=(1-i)/10; % indica la altura en metros do ponto de monitoreamento no Riser

% PLOT HORIZONTAL IMPAR %

if i<12 && mod(i,2)==1
subplot(2,6,(i/2+0.5));
loglog(freq,power(:,i),'b',freq,powerfit(:,i),'k:');
L2 = ['h = ' num2str(-B) ' m'];
L3 = ['m = ' num2str(a1,3)];
title({L2;L3},'FontSize',8);
%axis tight;
elseif i>=12 && mod(i,2)==0
subplot(2,6,(i/2+1));
loglog(freq,power(:,i),'b',freq,powerfit(:,i),'k:');
%L2 = ['h = ' num2str(-B) ' m'];
L3 = ['m = ' num2str(a1,3)];
title({L3},'FontSize',8);
%axis tight;

%set(gca,'xtick',[],'ytick',[])
[ax1,h1]=suplabel('super X label');
[ax2,h2]=suplabel('super Y label','y');
%set(h1,'\bf','FontSize',15);
H=labelEdgeSubPlots('\fontsize{14}\bf\kappa (Hz)','\fontsize{12}\bfEnergia (J)',1);

end

end
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder