2017-01-31 2 views
1

Je veux demander comment je peux tracer la fonction dérivée de l'interpolation spline cubique? Je montre comment je l'ai fait dans mon code. L'erreur était:Comment puis-je tracer la fonction dérivée de l'interpolation spline cubique?

erreur en utilisant parcelle invalide second argument de données erreur dans function_MTU4000_Real (ligne 90) Plot1 = plot (x1, Speed1, 'b');

%calculation of lifting of intake valve (approximation spline function) 

x1=0.0:0.1:202.1; 
y1=xlsread('Steuerzeiten_Schrittweite_MTU4000.xlsx',1,'D2:D2023'); 
Lifting1=spline(x1,y1); 
x2=202.1:0.1:701.9; 
Lifting2=0*x2; 
x3=702.0:0.1:720.0; 
y3=xlsread('Steuerzeiten_Schrittweite_MTU4000.xlsx',1,'D7022:D7202'); 
Lifting3=spline(x3,y3); 

%calculation and plot of speed intake 

figure(2);hold on; grid on; 
Speed1=fnder(Lifting1); 
plot1=plot(x1,Speed1,'b'); 
Speed2=Lifting2; 
plot2=plot(x2,Speed2,'b'); 
Speed3=fnder(Lifting3); 
plot3=plot(x3,Speed3,'b'); 
hold off 
legend([plot1,plot2,plot3],'Intake') 
set(gca,'XTickLabel',{'OT','90','UT','270','ZOT','450','UT','630','OT'}); 
title('Intake Valve Speed') 
xlabel('Crank Angle [°]') 
ylabel('Speed [m/°]') 

Répondre

0

fnder renvoie une structure et non un tableau pour le traçage. Vous devez utiliser ppval ou fnval pour l'évaluer ...

plot1 = plot(x1, ppval(Speed1,x1)) 

Docs:

https://lost-contact.mit.edu/afs/cs.stanford.edu/pkg/matlab-r2015b/matlab/r2015b/help/curvefit/examples/cubic-spline-interpolation.html

Pour utiliser csapi voir docs: https://uk.mathworks.com/help/curvefit/csapi.html

% docs example 
bcs = csapi({x,y}, z); 
fnplt(bcs) 
+0

Merci pour votre réponse! Je l'ai essayé, mais une fonction constante est apparue sur mon tracé de Speed1, ce qui est faux, car je veux obtenir une fonction quadratique dans Speed1. Je pense que la fonction de Lifting1 est linéaire, ce qui fait de Speed1 une fonction constante par différenciation avec 'fnder', bien que je l'ai faite avec 'csapi' au lieu de 'spline'. Est-ce que 'csapi' rend la fonction cubique ou non? J'espère que vous pouvez m'aider à ce sujet. – Ozan

+0

@Ozan Voir mon édition – Wolfie