Stability of the equilibrium point (Matlab)

In summary: Well, since you want to determine the stability range, you need to determine the real part of the roots of the polynomial. This can be done by solving the polynomial equation. You can use the "solve" command in MATLAB to do this.
  • #1
PhMichael
134
0
After analyzing a 3-DOF system, I've obtained the following 6th order characteristic polynomial:

[tex]P=\lambda^6+(6\beta-.8896)\lambda^5+(8\beta^2-3.5584\beta+6)\lambda^4+(\beta^3-.8896\beta^2+16\beta-3.5584)\lambda^3+(3\beta^2-1.7792\beta+8)\lambda^2+(3\beta-.8896)\lambda+1[/tex]

Stability is determined by the real part of the roots of the this polynomial. Now, I need to vary numerically (matlab) the conditions for [tex]Re(\lambda)[/tex], in other words, I want to plot the real part of the [tex]\lambda[/tex]'s as a function of [tex]\beta[/tex], where [tex]0<\beta<1[/tex] ... How can I do that in matlab? - I tried to use the "solve" command, however, it doesn't even produce an explicit answer.

Thanks!
 
Physics news on Phys.org
  • #2
Ok thought about this and yes, what I posted does give the solution. Good thing [tex]\beta [/tex] is bounded or else things would get complicated

Code:
 n=1000;
beta = linspace(0,1,n);

%coefficients of polynomial
coeff = [1 (6*beta-.8896) (8*beta.^2-3.5584*beta+6) ...
(beta.^3-.9986*beta.^2 +16*beta-3.5584) ...
(3*beta.^2-1.7792*beta+8) (3*beta*.8896) 1];

%solve for roots.
r=cell(n,1);
r_part = cell(n,1)

for i=1:n

r{i} = roots(coeff(i));
r_part{i} = real(r{i});%collect real part of roots

end

Now you have roots as a function of [tex]\beta [/tex]

Also if you have it in symbolic format you do know how to do the same thing as above correct?
Replace the fourth line with:
Code:
coeff = wrev(coeffs(P))
where P is the symbolic equation in post #1, and of course substitute the value of beta for the linspace values.
 
Last edited:
  • #3
Thanks a lot, viscousflow! ... After an intense struggle, I've managed to write a working code =) ... It goes like this:

Code:
G=0.8896;

beta=0:0.01:1;
A=zeros(6,size(beta));

a1 = 1 ;   
a2 = 6.*beta - G ;
a3 = 8.*beta.^2 - 4.*beta.*G + 6 ;
a4 = beta.^3 - G.*beta.^2 + 16.*beta - 4.*G ;
a5 = 3.*beta.^2 - 2.*beta.*G + 8 ;
a6 = 3.*beta - G ;
a7 = 1 ;

for i=1:length(beta)
    P=[a1 a2(i) a3(i) a4(i) a5(i) a6(i) a7];
    R=roots(P);
    Re=real(R);
    A(:,i)=Re'; 
end

plot(beta,A,'linewidth',3,'markersize',10)
grid;
ylabel ('Re(\lambda)')
xlabel ('\beta')
 
  • #4
Thats good, however, I don't see how you'd get meaningful information from plotting Re(roots) versus Beta like that. You have 6 roots so I thought you'd want to see the trend of each root with beta. That's the advantage of the cell structure I had above, but that's just me.

Have a good day.
 
  • #5
http://img831.imageshack.us/img831/1715/plotb.png

Uploaded with ImageShack.us

I need to plot [tex]Re(\lambda)[/tex] as a function of [tex]\beta[/tex] in order to find the stability range. According to the figure, the system is stable for [tex]\beta > 0.4457 [/tex], while for [tex]\beta<0.4457[/tex], there exists at least one eigenvalue (root) with a non-negative real part and the system is unstable ... so far so good ...
Now, I want to determine [tex]\beta_H[/tex] and the frequency [tex]\Omega_H[/tex], which correspond to the Hopf bifurcation ... How can I do that?
 
Last edited by a moderator:

1. What is the equilibrium point in Matlab?

The equilibrium point in Matlab is the state at which a system or model is in a balanced state and does not change over time. It is often represented by a set of values for the system's variables that result in a net change of zero.

2. How do you determine the stability of an equilibrium point in Matlab?

The stability of an equilibrium point can be determined by analyzing the behavior of the system's variables over time. If the variables remain close to the equilibrium point, the system is considered stable. If the variables diverge from the equilibrium point, the system is considered unstable.

3. What are the different types of stability for an equilibrium point in Matlab?

There are three types of stability for an equilibrium point in Matlab: stable, unstable, and marginally stable. A stable equilibrium point means that the system's variables will return to the equilibrium point after a small disturbance. An unstable equilibrium point means that the system will move away from the equilibrium point after a small disturbance. A marginally stable equilibrium point means that the system will neither return to nor move away from the equilibrium point after a small disturbance.

4. How can the stability of an equilibrium point be visualized in Matlab?

The stability of an equilibrium point can be visualized using a phase portrait in Matlab. This is a plot of the system's variables over time, which allows for the visualization of the system's behavior near the equilibrium point. A stable equilibrium point will appear as a point or a closed loop in the phase portrait, while an unstable equilibrium point will appear as a line or an open loop.

5. What are the implications of an unstable equilibrium point in Matlab?

An unstable equilibrium point in Matlab can indicate that the system is not functioning as desired and may lead to unpredictable behavior. It may also suggest that the model or system needs to be revised or improved to achieve stability. Additionally, an unstable equilibrium point can provide insights into the sensitivity of the system to small changes or disturbances.

Similar threads

  • Calculus and Beyond Homework Help
Replies
1
Views
761
  • Atomic and Condensed Matter
Replies
1
Views
1K
  • Math Proof Training and Practice
2
Replies
69
Views
3K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
1
Views
2K
  • Precalculus Mathematics Homework Help
Replies
24
Views
2K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
7
Views
10K
  • Mechanical Engineering
Replies
2
Views
998
  • Engineering and Comp Sci Homework Help
Replies
7
Views
15K
  • Linear and Abstract Algebra
Replies
2
Views
2K
Replies
2
Views
980
Back
Top