Professional Documents
Culture Documents
Signal Flow Graph Solver Application: By: Aya Abdel Moniem (ID 5) Mahmoud Atef (ID 63)
Signal Flow Graph Solver Application: By: Aya Abdel Moniem (ID 5) Mahmoud Atef (ID 63)
Problem Statement
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 nontouching loops.
4- The values of D1 , , Dm where m is number of forward paths.
5- Overall system transfer function.
Main Features
1- user friendly GUI that allows the user to enter Vertices and Edges with
the ability to
Delete or add any edge or vertex at any time .
a- press change mode the choose Editing
Data Structures
1- Adjacency List and Adjacency Matrix to store the graph
2- Hash Maps to Map the Vertices numbers to their actual indices used
during the algorithm.
Main Modules
1- SignalFlowGraphBackEnd : this class is responsible for the algorithm
of computing the results and store them in appropriate data structures.
2- SignalFlowGraphFrontEnd : this class is responsible for the GUI and
getting inputs and displaying the outputs and the animation process.
Algorithms Used
The Main algorithm runs in specified steps
1. Initialize the data structures
2. Generate the forward paths using dfs
3. Generate the loops using dfs
4. Delete any equivalent loops found (Example 1-2-3-1 and 23-1-2)
procedure : a - Double the first loop 1-2-3-1-2-3
b- search for the second loop in the doubled loop if
its found then they are equivalent
5. Find the Untouched combinations of loop using a recursive
method that finds all combinations of size (1 to n ) then after a
combination is built its check to find if there are any touching
loops if any touching pair is found the combination is refused .
6. compute the forward paths gains using 2 nested loops
7. compute the Loops gains using 2 nested loops.
8. compute Delta
9. compute Delta i
10. compute overall transfer functions
Sample Runs
1- Changing Modes :
2- Deleting vertex :
3- Edit Edge :
b- node 2
c- node 3 (sink)