Causal Block Diagram Assignment [15%]
General Information
- The due date is Friday 6 October 2006, before
23:55.
- Submissions must be done via WebCT.
Beware that WebCT's clock may differ slightly from yours.
As described on the Assignments page, all results
must be uploaded to WebCT and accessible from links in the
index.html file. There is no need to upload AToM3.
- The assignment must be made in groups of maximum 2 people.
It is understood that all partners will understand the complete
assignment (and will be able to answer questions about it).
Clearly identify who did what.
- Grading will be done based on correctness and completeness
of the solution. Do not forget to document your requirements,
assumptions, design, implementation and modelling and
simulation results in detail !
- Extensions, if given, will involve extending not only the
alotted time, but also the assignment !
The assignment [15%]
Implement the missing functions of the simulator
(CausalBlockDiagram/ST_CBD/ST_Simulator.py) to accomplish the
following requirements:
- [3.5%] The construction of the dependency graph;
- [3.5%] Given an algebraic loop, detection of whether it is linear;
- [4%] Given a linear algebraic loop, construct input for a
linear solver; the format of the input should be:
/////////////////////////////////////////////////////////
// Input for the solver is of the form: [M1, M2], where
// M1 =
// B1 B2 B3
// B1 | a b c |
// B2 | d e f |
// B3 | g h i |
//
// M2 =
// B1 B2 B3
// | X Y Z |
// represents the following linear equation system:
// {
// a*B1 + b*B2 + c*B3 = X
// d*B1 + e*B2 + f*B3 = Y
// g*B1 + h*B2 + i*B3 = Z
// }
// where B1, B2, and B3 are blocks inside a strong component.
- [4%] For each of the blocks, write the computation they
need to perform.
Use the following CBD models to test your simulator:
(You can use the Text Models (TM) directly, or modify the Visual Models (VM) first
and use generated Text Models (TM) from AToM3 if you want to further customize these models)
- An algebraic model WITHOUT loop (TM: alg_without_loop.py | VM: alg_without_loop_MDL.py);
- An algebraic model WITH loop (TM: alg_with_loop.py | VM: alg_with_loop_MDL.py);
- A simple Delay Test model (TM: delay_test.py | VM: delay_test_MDL.py);
- An Integrator model using delay block (TM: integrator.py | VM: integrator_MDL.py);
- A Circle Test model (a hierarchical model) using Integrators (the previous model) (TM: circle_test.py | VM: circle_test_MDL.py).
NOTE: there are two more experiment scripts provided for you to directly run simulations (with visual plotting) of models:
- Delay Test: delay_test_experiment.py
- Circle Test: circle_test_experiment.py
Download
Tutorial
A tutorial is available here.