- Firstly user should be able to easily import the library by
import XXXX
- The first step would be declaring a model?
# create a empty model
vehicle = Model()
-
Possible ways to define a model:
- Use a simple GUI(as a separate module/tool) to manually input model dynamics and output to a specific format.
- Import from existing file, such as:
- From hyxml format.
- From some other popular model format?
# it will construct the model from file specified by "filename" vehicle.read("filename")
-
After we have a model with defined Initial Set, Unsafe Set, etc. We can perform simulation/reachability analysis based on the model.
- Equations dynamics_of_model
- The differential equations, represented by some data structrues?
- int dimensions
- the number of variables.
- list() mode_linear
- it's a list of bool, indicating the linearity of each mode.
-
- Perform simulate() from model, with Initial Set, Time Horizon and Time Step input.
'''
INPUT:
init_set - model's initial set
T - Time Horizon
t - Time Step
OUTPUT:
Simulation_Trace
(Might be a data type or just a subset of reachtube)
'''
vehicle.simulate(init_set, T, t)
-
- Perform reach() from model, with Initial Set, Time Horizon and Time Step input.
'''
INPUT:
init_set - model's initial set
T - Time Horizon
t - Time Step
OUTPUT:
Reachtube
'''
vehicle.reach(init_set, T, t)
- Is an abstract class.
- Subclass can be:
- RectangleSet
- LinearSet
- ...
- Is a class.