plotting time delay system eigenvalues

3 次查看(过去 30 天)
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