Stability Analysis of Control Systems using Routh Hurwitz Criterion
The Routh-Hurwitz stability criterion provides a simple algorithm to decide whether or not the zeros of a polynomial are all in the left half of the complex plane (such a polynomial is called at times “Hurwitz”). A Hurwitz polynomial is a key requirement for a linear continuous-time invariant to be stable (all bounded inputs produce bounded outputs).
The characteristic equation D(s) can be represented generally as follows:
The three rules that need to be followed are:
All the coefficients ai must be present (non-zero).
All the coefficients ai must be positive (equivalently all of them must be negative, with no sign change).
If Rule 1 and Rule 2 are both satisfied, then form a Routh array from the coefficients ai. There is one pole in the right-hand s-plane for every sign change of the members in the first column of the Routh array (any sign changes, therefore, mean the system is unstable).
The Routh Array
The Routh array is formed by taking all the coefficients ai of D(s), and staggering them in array form. The final columns for each row should contain zeros:
Therefore, if N is odd, the top row will be all the odd coefficients. If N is even, the top row will be all the even coefficients. We can fill in the remainder of the Routh Array as follows:
Now, we can define all our b, c, and other coefficients, until we reach row s0. To fill them in, we use the following formulae:
For each row that we are computing, we call the left-most element in the row directly above it the pivot element. For instance, in row b, the pivot element is aN-1, and in row c, the pivot element is bN-1 and so on and so forth until we reach the bottom of the array.
To obtain any element, we negate the determinant of the following matrix, and divide by the pivot element.
Follow the given steps to determine the stability of a control system using Routh Hurwitz criteria.
1 Open new script in MATLAB.
2. Insert the following code:
disp(' ') D=input('Input coefficients of characteristic equation,i.e:[an an-1 an-2 ... a0]= '); l=length (D); disp(' ') disp('Roots of characteristic equation is:') roots(D) % Beginning of Building Array if mod(l,2)==0 m=zeros(l,l/2); [cols,rows]=size(m); for i=1:rows m(1,i)=D(1,(2*i)-1); m(2,i)=D(1,(2*i)); end else m=zeros(l,(l+1)/2); [cols,rows]=size(m); for i=1:rows m(1,i)=D(1,(2*i)-1); end for i=1:((l-1)/2) m(2,i)=D(1,(2*i)); end end for j=3:cols if m(j-1,1)==0 m(j-1,1)=0.001; end for i=1:rows-1 m(j,i)=(-1/m(j-1,1))*det([m(j-2,1) m(j-2,i+1);m(j-1,1) m(j-1,i+1)]); end end disp('The Routh-Hurwitz array is:'),m % End of Building array % Checking for sign change Temp=sign(m);a=0; for j=1:cols a=a+Temp(j,1); end if a==cols disp(' System is Stable ') else disp(' System is Unstable ') end
3. Simulate the file by clicking on the green play button at the top.
4. The command window will show the following:
5. Insert the coefficients. The output obtained is as follows.
The stability of a given control system was determined with the help of the Routh Hurwitz Criterion.