[Matlab] MATLAB_FITTING DATI SPERIMENTALI

Messaggioda giuramelo » 29/07/2016, 14:15

Salve a tutti. Chiedo scusa in anticipo per le castronerie che probabilmente scriverò :roll:
e ringrazio chi vorrà rispondermi.
Dispongo di un set di dati sperimentali che allego.
La prima colonna sta ad indicare il tempo di prova mentre la seconda la deformazione(di un certo provino) al tempo corrispondente.
Non tenete conto della terza colonna (strain) che invece non mi serve (al momento).
Rappresento i dati sperimentali come segue:
Codice:
A=dlmread('time_epsilon_strain_25N.txt')        % leggo la matrice da file

time=A(:,1)                                                    % formo vettore tempo da matrice A

epsilon=A(:,2)                                                % formo vettore deformazione da matrice A

scatter(time,epsilon,20)                        % plottaggio punti sperimentali
xlabel('time')
ylabel('epsilon')
title('PP  25N')

La rappresentazione dovrebbe essere proprio quella che ottengo perciò fin qui nessun problema f34
Quel che dovrei fare a questo punto nota l'equazione
epsilon(t)=sigma_0/E + (sigma_0/eta)t
è determinare il valore di eta (forse con un ciclo for :? ) perché la curva interpolante si avvicini il più possibile ai punti sperimentali.
Sono noti sigma_0 ed E.
Credo di dover a tal proposito definire una sorta di errore ammissibile.
Queste sono le righe di codice che ho steso.
Codice:
E=13000;                                         % modulo elastico(valore da sostituire da quello ricavato in laib)

eta = 5500;  %viscosità
vettore=[1:200];
j=1;
for i = 0:1:199
  x = time(1+i);
  y = epsilon(1+i);
  y_appr = sigma_0/E + (sigma_0/eta)*x;
  errore = abs(y-y_appr)
  vettore(j)=y_appr;
  j=j+1;
  if errore>0.08   
      fprintf('non va bene')
  end
 
end

scatter(time,epsilon,20) ;                       % plottaggio punti sperimentali
xlabel('time');
ylabel('epsilon');
title('Linoleum  25N');
hold on
plot(time,vettore)

Il metodo è assai "rudimentale": manualmente vario il parametro eta fin quando l'errore non è inferiore o uguale a quello scelto da me arbitrariamente.
Se la condizione non è soddisfatta perché me ne accorga stampo "non va bene".
Ho poi rappresentato la funzione che dovrebbe approssimare i dati sperimentali salvando di volta in volta la variabile y_appr in "vettore" (ovviamente in posizioni diverse).

Cosa ne dite? Vi sembra corretto il modo di procedere? Si può fare di meglio(certamente :lol:)?


Ultimo bump di giuramelo effettuato il 29/07/2016, 14:15.
giuramelo
Starting Member
Starting Member
 
Messaggio: 4 di 12
Iscritto il: 26/07/2016, 14:17

Torna a Ingegneria

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite