how should i do adaptive tuning of parameter gain "K " mention in the function ?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Hello, I want to do adaptive tuning of gain K in the following code. At the starting time of tspan K should be more and at the end time of tspan it should be less. how should i do this ?
******************************************
%function
***************************************
function dz = myeqd(t,y,ti,fi)
dz = zeros(3,1);
mu=0.3;
r= sqrt(y(1)^2 + y(2)^2);
K=20;
F=interp1(ti,fi,t);
dz(1)= (mu - r^2)*y(1) - y(3)*y(2) +K*F;
dz(2) = (mu - r^2)*y(2) + y(3)*y(1);
dz(3) = (-K*F) * (y(2)/sqrt(y(1)^2 + y(2)^2));
**************************************************
*************
w1=20;
w2=30;
w3=40;
Tspan1=0:0.01:10;
Tspan2= 10.01:0.01:20;
Tspan3= 20.01:0.01:30;
fi1 = cos(2*pi*w1.*Tspan1);
fi2 = cos(2*pi*w2.*Tspan2);
fi3 = cos(2*pi*w3.*Tspan3);
Tspan = [Tspan1 Tspan2 Tspan3];
fi=[fi1 fi2 fi3];
ti=Tspan;
[T,Y]=ode45(@(t,y) myeqd(t,y,ti,fi),Tspan,[1;1;15]);
plot (T,Y(:,3),'r')
*********************************************
0 Kommentare
Akzeptierte Antwort
Azzi Abdelmalek
am 9 Feb. 2013
Bearbeitet: Azzi Abdelmalek
am 9 Feb. 2013
In your function you can use t to change the value of K
K=20-t/2
Your max(tspan ) is 30, then K will change from 20 to 20-30/2
5 Kommentare
Azzi Abdelmalek
am 9 Feb. 2013
ti is a vector, each step ti is not varying, it's used to find F at time t, which vary according to tspan. And whatever is t, you just need to change the value of K. Then write
K = 20 - t/2
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Aerospace Applications finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!