Problem In curve fitting
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Solmaz Kahourzade
le 19 Juin 2018
Commenté : Solmaz Kahourzade
le 20 Juin 2018
Hello, I need to find a function for my data (TW2 and DatiOpt.PERDITE_FERRO) with minimum error. I tried "scatteredInterpolant" without any success. would you please help me to find the best fit for these sort of data? I appreciate your help.
load('TwMap_250Nm_cross saturation.mat');
[TP,VV]=meshgrid(DatiOpt.Tmap,DatiOpt.velmec);
figure(1);
TW2=(VV/1000).^2.*TP;
plot(TW2,DatiOpt.PERDITE_FERRO,'blue*','MarkerSize',2);
xlabel('Torque*Speed^2 [M Nm*(r/min)^2]', 'FontSize', 16);
ylabel('Iron Losses [W]', 'FontSize', 16);
grid on;
title('IPM: Motor Iron Losses', 'FontSize', 16);
figure(2);
f = scatteredInterpolant(TW2,DatiOpt.PERDITE_FERRO);
Loss=f(TW2);
plot(TW2,loss,'blue*','MarkerSize',2);
2 commentaires
Réponse acceptée
John D'Errico
le 19 Juin 2018
You won't find a function that fits any arbitrary, essentially scattered set of data. And that is what you seem to have.
Anyway, you do not seem to understand how to use scatteredInterpolant. Read the help.
F = scatteredInterpolant(X,v) creates an interpolant that fits a
surface of the form v = F(X) to the sample data set (X,v). The sample
points X must have size NPTS-by-2 in 2-D or NPTS-by-3 in 3-D, where
NPTS is the number of points. Each row of X contains the coordinates of
one sample point. The values v must be a column vector of length NPTS.
This is how you called scatteredInterpolant:
f = scatteredInterpolant(TW2,DatiOpt.PERDITE_FERRO);
However, TW2 is a 121x126 array, that is itself a function of two other variables.
So it is not at all clear what interpolation you are trying to achieve, what model you might want to see here.
3 commentaires
John D'Errico
le 20 Juin 2018
The relationship that you want to be a "polynomial"
plot(TW2(:),DatiOpt.PERDITE_FERRO(:),'.')
Does not seem to be even close to a polynomial.
There is too much else happening in that relationship, due to other, ancillary variables that belies your claim. In fact, it is arguably rarely true that any relationship from the real world is truly a polynomial one, and even more rarely true when that relationship is pushed to its limits. Yes, I know of cases where a one can indeed show that a relationship should be, and in fact can be shown to be a true polynomial one. But most of the time, one must merely accept that a polynomial model provides a decent approximation.
In some cases, a polynomial can indeed be be a good approximation. But here? The "noise" in this relationship is really lack of fit, not noise, and that noise is clearly almost as important as the relationship between those two variables.
So, if you want a model for this process, then you need to return to the system that created it. Spend time deriving a model from first principles, one that is based on the theory of the process. But there is just way too much happening in this to claim a direct polynomial relationship.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Fit Postprocessing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!