Filter löschen
Filter löschen

how to estimate initial conditions for lsqcurvefit function in matlab? thank u in advance.

1 Ansicht (letzte 30 Tage)
[x,resnorm]=lsqcurvefit(@myfun,x0,xdata,ydata);
how to set x0?? xdata(voltage) and ydata(displacement), experimental data are attached.
%%function: myfun function f=myfun(x,xdata) a=x(4)*xdata+x(5); for k=1:1:1; r(k)=x(1)*k; wo(k)=0; %%weighting function for i=1:1:length(a); a_b(k,i)=a(i)-r(k); ab(k,i)=a(i)+r(k); w(k,i)=max (a_b(k,i),min(ab(k,i),wo(k))); wo(k)=w(k,i); end pi(k)=x(2)*exp(-x(3)*r(k)); pfi(k,:)=pi(k)*w(k,:); end itpfi=sum(x(1)*pfi); f=a+itpfi;

Antworten (1)

Star Strider
Star Strider am 8 Apr. 2014
Your problem is likely not your initial parameter estimates. Consider that the loop starting with:
for k=1:1:1;
will only execute once. (It will execute for k = 1 and stop.)
There may be other problems. Please format your code.
  2 Kommentare
Hemavathi
Hemavathi am 9 Apr. 2014
Hi.. thank u very much for you reply. that was by mistake. else my code has " " " "k=1:1:8; " ( 8 play operators) . i am giving 0- 135V, 1 HZ Triangular input to my piezoactuator, and getting 15 micrometer displacement with 4 micrometer nonlinearity. but with the model iam not getting hysteresis curve between xdata and modelled displacement. i am getting almost linear curve. i tried all possible methods , but still not able to get hysteresis plot. plz help.. thank you..
Star Strider
Star Strider am 9 Apr. 2014
Bearbeitet: Star Strider am 9 Apr. 2014
I’m having problems interpreting your code. What is the original equation you want to fit?

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by