ranimeshehata / Control_Systems_Solver

A web based program to create the signal flow graph representation of a system and state whether the system is stable or not according to Routh-Hurwitz stability criterion mathematical method.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Control Systems Solver

Part 1 (Signal Flow Graph):

Given:

Signal flow graph representation of the system. Assume that total number of nodes and numeric branches gains are given.

Required:

1- Graphical interface.
2- Draw the signal flow graph showing nodes, branches, gains, ...
3- Listing all forward paths, individual loops, all combination of n non-touching loops.
4- The values of Δ , Δ1 , ..., Δm where m is number of forward paths.
5- Overall system transfer function.

Part 2 (Routh Stability Criterion):

Given:

Characteristic equation of the system. Assume that all the coefficients of s0 to sn are given.
Input example: s^5+s^4+10s^3+72s^2+152s+240

Required:

1- Using Routh criteria, state if the system is stable or not.
2- If the system is not stable, list the number and values of poles in the RHS of the s-plane.

Main Program Features

  • Signal Flow Graph graphical representation
  • Displaying Detailed Breakdown of Mason’s Rule
    ˃ Forward Paths
    ˃ Loops and Non-Touching Loops
    ˃ Determinant of each forward path
    ˃ Path Gains and Loop Gains
    ˃ Overall System Transfer Function
  • Given a numeric system (path gains are numbers rather than strings), the program calculates the final values of the gains.
  • Determining stability of a system using Routh-Hurwitz stability criterion.
  • Stating values of poles in right-hand-side of 𝑠-plane in case of an unstable system.

User Guide:

The user is first met with a screen containing a bar at the top, as well as three fields: Add Node, Add Edge, and Transfer Function.
To add a node, the user types in the identifier of the node (e.g. “A”), then presses “Add”, which would then display a node in the empty space below the fields.
To add an edge between two nodes, the user must specify the source node and the target node using their identifiers, and specify whether the path gain would be numeric or non-numeric through the “Numeric/Non-numeric” button, which switches the field to accept numeric values if “Numeric” is pressed. After specifying the source, the target, and the gain, the user should press “Add”, which would graphically display the edge between the two nodes.
After setting up the graph, to calculate the overall transfer function and display all graph information, the user should specify the start and end nodes in the “Transfer Function” field, then press “Calculate”, which would display list of forward paths and their determinants, individual loops, nontouching loops, characteristic equation, and transfer function. To switch to the Routh-Hurwitz Stability Criterion calculator, the user should press the “Routh Stability Criterion” text in the bar at the top, which would reroute them to the fields required for calculating the stability.
The user will be met with only one field in which they will write their system’s characteristic equation. The characteristic equation should be written in the form s^ (e.g. 14s^3+2s^2+9s+1).
After pressing “Solve”, the stability of the system will first be stated, and all the system information (polynomial degree, coefficients, number of unstable poles and their values, number of sign changes) and Routh-Hurwitz table will be displayed.

Sample Runs:

WhatsApp Image 2024-04-20 at 1 37 56 PM

WhatsApp Image 2024-04-20 at 10 17 02 PM

WhatsApp Image 2024-04-20 at 10 36 44 PM

About

A web based program to create the signal flow graph representation of a system and state whether the system is stable or not according to Routh-Hurwitz stability criterion mathematical method.


Languages

Language:JavaScript 54.1%Language:Vue 41.6%Language:CSS 3.8%Language:HTML 0.5%