The Routh-Hurwitz Stability criterion gives the information on the absolute stability of a system without any necessity to solve for the closed-loop system poles.

Routh-Hurwitz stability criterion is having one necessary condition and one sufficient condition for stability. If any control system doesn’t satisfy the necessary condition, then we can say that the control system is unstable.

CONS:

  1. Routh’s Criterion is valid only for real coefficients of the characteristic equation.
  2. It does not provide exact locations of the closed-loop poles in the left or right half of the s-plane.
  3. It does not suggest methods of stabilizing an unstable system.
  4. Routh’s Criterion is applicable only to linear systems.

Necessary Condition for Routh-Hurwitz Stability:

  • The necessary condition is that the coefficients of the characteristic polynomial should be positive. This implies that all the roots of the characteristic equation should have negative real parts.

Sufficient Condition for Routh-Hurwitz Stability:

  • The sufficient condition is that all the elements of the first column of the Routh array should have the same sign. This means that all the elements of the first column of the Routh array should be either positive or negative.

If all the roots of the characteristic equation exist to the left half of the ‘s’ plane, then the control system is stable. If at least one root of the characteristic equation exists to the right half of the ‘s’ plane, then the control system is unstable.

So, we have to find the roots of the characteristic equation to know whether the control system is stable or unstable. But, it is difficult to find the roots of the characteristic equation as order increases.

So, to overcome this problem there we have the Routh array method. In this method, there is no need to calculate the roots of the characteristic equation. First formulate the Routh table and find the number of the sign changes in the first column of the Routh table. The number of sign changes in the first column of the Routh table gives the number of roots of characteristic equation that exist in the right half of the ‘s’ plane and the control system is unstable


FUNCTION OCTAVE

function routh_hurwitz (coefficients_vector)
 
    % Taking coefficients vector and organizing the first two rows
    coeffVector = coefficients_vector;
    ceoffLength = length(coeffVector);
    rhTableColumn = round(ceoffLength/2);
    %  Initialize Routh-Hurwitz table with empty zero array
    rhTable = zeros(ceoffLength,rhTableColumn);
    %  Compute first row of the table
    rhTable(1,:) = coeffVector(1,1:2:ceoffLength);
    %  Check if length of coefficients vector is even or odd
    if (rem(ceoffLength,2) ~= 0)
        % if odd, second row of table will be
        rhTable(2,1:rhTableColumn - 1) = coeffVector(1,2:2:ceoffLength);
    else
        % if even, second row of table will be
        rhTable(2,:) = coeffVector(1,2:2:ceoffLength);
    end
    %Calculate Routh-Hurwitz table's rows
    %  Set epss as a small value
    epss = 0.01;
    %  Calculate other elements of the table
    for i = 3:ceoffLength    
        %  special case: row of all zeros
        if rhTable(i-1,:) == 0
            order = (ceoffLength - i);
            cnt1 = 0;
            cnt2 = 1;
            for j = 1:rhTableColumn - 1
                rhTable(i-1,j) = (order - cnt1) * rhTable(i-2,cnt2);
                cnt2 = cnt2 + 1;
                cnt1 = cnt1 + 2;
            end
        end    
        for j = 1:rhTableColumn - 1
            %  first element of upper row
            firstElemUpperRow = rhTable(i-1,1);
 
            %  compute each element of the table
            rhTable(i,j) = ((rhTable(i-1,1) * rhTable(i-2,j+1)) - ....
                (rhTable(i-2,1) * rhTable(i-1,j+1))) / firstElemUpperRow;
        end        
        %  special case: zero in the first column
        if rhTable(i,1) == 0
            rhTable(i,1) = epss;
        end
    end
    %Compute number of right hand side poles(unstable poles)
    %   Initialize unstable poles with zero
    unstablePoles = 0;
    %   Check change in signs
    for i = 1:ceoffLength - 1
        if sign(rhTable(i,1)) * sign(rhTable(i+1,1)) == -1
            unstablePoles = unstablePoles + 1;
        end
    end
    %   Print calculated data on screen
    fprintf('\n Routh-Hurwitz Table:\n')
    rhTable
    %   Print the stability result on screen
    if unstablePoles == 0
        fprintf('~~~~~> it is a stable system! <~~~~~\n')
    else
        fprintf('~~~~~> it is an unstable system! <~~~~~\n')
    end
    fprintf('\n Number of right hand side poles =%2.0f\n',unstablePoles)
    sysRoots = roots(coeffVector);
    fprintf('\n Given polynomial coefficients roots :\n')
    sysRoots
end

ALGORITHM:

This method generally has two steps. First is to generate a Routh Array. Next is to interpret the Routh array to find if there are any poles in the right half of the s-plane and determine the stability.

So, let’s generate a Routh Array. Consider the characteristic equation

First, we shall arrange the coefficients of the equation above in an array in a manner as shown.

As you can see, it is just writing the coefficients alternately in the first and second row of the array starting with the first row.

Next, we shall form the third row with the following procedure. Observe carefully.

Similarly, for the next row we repeat it the same way.

We will continue doing this till s0 and finish generating the complete Routh array as shown

As per Routh-Hurwitz criterion, for a system to be stable it is sufficient that all the elements of the first column of the Routh array is positive. If this condition is not met, we can straight away declare the system unstable and the number of sign changes in the first column of the Routh array will give the number of poles that lie in the right half of the s-plane. The illustration below will make it even more clear.


EXAMPLE:

Consider a system with characteristic equation

The roots of this equation lie at

The system is stable since all the poles lie in the left half of the s-plane. verify this result with Routh-Hurwitz criterion:

Since all the elements of the first column of the routh array are positive, the system is stable.

Now, let’s consider another example:

Since this equation has one negative coefficient, we can straight away say that the system is unstable. Verify the same with Routh-Hurwitz criterion.

Since not all the elements of the first column are positive, the system is unstable and as there is one sign change, there is one pole in the right half of the s-plane.


https://www.tutorialspoint.com/control_systems/control_systems_stability_analysis.htm


🌱 Back to Garden