필터 지우기
필터 지우기

plotting time delay system eigenvalues

조회 수: 3 (최근 30일)
hossen hassanzadth
hossen hassanzadth 2021년 11월 12일
답변: William Rose 2021년 12월 5일
I want to plot eigenvalues of below time-delay system in matlab
T is delay

채택된 답변

William Rose
William Rose 2021년 12월 5일
In the example you have given, I assume is the output.
For linear systems, exponentials (including complex exponentials) are the eigenfunctions. Therefore you should try a solution. Notice that , where exp(-zT) is a constant, and remember that . Then you can rewrite the original system equation as
or
which is satsfied at the points z which satisfy
(eigenvalue equation for this problem)
The z value(s) which satisfy the equation above are the eigenvalues, because .
You may use Matlab's fsolve() to find the eigenvalues, which are the root(s) of the eigenvalue equation. You must give fsolve() an initial guess. There may be 0, 1, or 2 real solutions, for this problem, since a straight line can intersect the exponential curve at 0, 1, or 2 points.
T=1; A0=0; A1=1; zinit=0; %example 1
ze1=fsolve(@(z)(A0+A1*exp(-z*T)-z),zinit);
Equation solved. fsolve completed because the vector of function values is near zero as measured by the value of the function tolerance, and the problem appears regular as measured by the gradient.
A0=1.5; A1=-1; zinit=-1; %example 2, initial guess=-1
options=optimoptions('fsolve','Display','off'); %turn off fsolve's console output
ze21=fsolve(@(z)(A0+A1*exp(-z*T)-z),zinit,options);
zinit=2; %example 2, initial guess=+2
ze22=fsolve(@(z)(A0+A1*exp(-z*T)-z),zinit,options);
You can illustrate the eigenvalues by plotting the curve and the line . The z value(s) where the curve and line intersect are the solutions to the eigenvalue equation above. Here is an example of how to plot the curve and the line for three examples. The z-values where line crosses the curve are the eigenvalues.
T=1; z=-1:.1:3; %T=1 for all 3 examples
yc=exp(-z*T); %this curve is the same for all 3 examples, since T=1 for all 3
A0=0; A1=1; y1=z/A1-A0/A1; %example 1 line: 1 real eigenvalue
A0=1.5; A1=-1; y2=z/A1-A0/A1; %example 2 line: 2 real eigenvalues
A0=0.8; A1=-1; y3=z/A1-A0/A1; %example 3 line: no real eigenvalues
plot(z,yc,'-k',z,y1,'-r',z,y2,'-g',z,y3,'-b')
hold on; %hold the graph for addition of eigenvalue points, next
plot(ze1,exp(-ze1*T),'rs',[ze21,ze22],exp(-[ze21,ze22]*T),'gs')
grid on; xlim([-1 3]); ylim([0 3]); xlabel('z');
legend('exp(-zT)','Ex.1 line','Ex.2 line','Ex.3 line','Ex.1 eigval','Ex.2 eigvals');
There will be complex solutions in Example 3. This means the eigenfunctions, exp(zt), will be damped or expanding sinusoids. Try function NEWTZERO from the Matlab file exchange to find the complex roots.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Linear Algebra에 대해 자세히 알아보기

제품


릴리스

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by