|
@@ -1,99 +1,76 @@
|
|
-import models/SimpleClassDiagrams as SCD
|
|
|
|
include "primitives.alh"
|
|
include "primitives.alh"
|
|
|
|
|
|
-SCD CausalBlockDiagrams_Runtime{
|
|
|
|
- Class Float {
|
|
|
|
- constraint = $
|
|
|
|
- String function constraint(self : Element):
|
|
|
|
- if (bool_not(is_physical_float(self))):
|
|
|
|
- return "Float has no float value"!
|
|
|
|
- else:
|
|
|
|
- return "OK"!
|
|
|
|
- $
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- Class String {
|
|
|
|
- $
|
|
|
|
- String function constraint(self : Element):
|
|
|
|
- if (bool_not(is_physical_string(self))):
|
|
|
|
- return "String has no string value"!
|
|
|
|
- else:
|
|
|
|
- return "OK"!
|
|
|
|
- $
|
|
|
|
- }
|
|
|
|
|
|
+Class Float {}
|
|
|
|
+Class String {}
|
|
|
|
|
|
- Class Block{
|
|
|
|
- signal : Float {
|
|
|
|
- target_lower_cardinality = 1
|
|
|
|
- target_upper_cardinality = 1
|
|
|
|
- }
|
|
|
|
|
|
+Class Block{
|
|
|
|
+ signal : Float {
|
|
|
|
+ target_lower_cardinality = 1
|
|
|
|
+ target_upper_cardinality = 1
|
|
}
|
|
}
|
|
- Class ICBlock{
|
|
|
|
- last_in : Float {
|
|
|
|
- target_lower_cardinality = 0
|
|
|
|
- target_upper_cardinality = 1
|
|
|
|
- }
|
|
|
|
|
|
+}
|
|
|
|
+Class ICBlock{
|
|
|
|
+ last_in : Float {
|
|
|
|
+ target_lower_cardinality = 0
|
|
|
|
+ target_upper_cardinality = 1
|
|
}
|
|
}
|
|
|
|
+}
|
|
|
|
|
|
- Class ConstantBlock{
|
|
|
|
- value : Float {
|
|
|
|
- target_lower_cardinality = 1
|
|
|
|
- target_upper_cardinality = 1
|
|
|
|
- }
|
|
|
|
|
|
+Class ConstantBlock{
|
|
|
|
+ value : Float {
|
|
|
|
+ target_lower_cardinality = 1
|
|
|
|
+ target_upper_cardinality = 1
|
|
}
|
|
}
|
|
|
|
+}
|
|
|
|
|
|
- Class ProbeBlock{
|
|
|
|
- name : String {
|
|
|
|
- target_lower_cardinality = 1
|
|
|
|
- target_upper_cardinality = 1
|
|
|
|
- }
|
|
|
|
|
|
+Class ProbeBlock{
|
|
|
|
+ name : String {
|
|
|
|
+ target_lower_cardinality = 1
|
|
|
|
+ target_upper_cardinality = 1
|
|
}
|
|
}
|
|
|
|
+}
|
|
|
|
|
|
- Class AdditionBlock{}
|
|
|
|
- Class NegatorBlock{}
|
|
|
|
- Class MultiplyBlock{}
|
|
|
|
- Class InverseBlock{}
|
|
|
|
- Class DelayBlock{}
|
|
|
|
- Class IntegratorBlock{
|
|
|
|
- last_out : Float {
|
|
|
|
- target_lower_cardinality = 0
|
|
|
|
- target_upper_cardinality = 1
|
|
|
|
- }
|
|
|
|
|
|
+Class AdditionBlock{}
|
|
|
|
+Class NegatorBlock{}
|
|
|
|
+Class MultiplyBlock{}
|
|
|
|
+Class InverseBlock{}
|
|
|
|
+Class DelayBlock{}
|
|
|
|
+Class IntegratorBlock{
|
|
|
|
+ last_out : Float {
|
|
|
|
+ target_lower_cardinality = 0
|
|
|
|
+ target_upper_cardinality = 1
|
|
}
|
|
}
|
|
|
|
+}
|
|
|
|
|
|
- Class DerivatorBlock{}
|
|
|
|
- Class Time{
|
|
|
|
- lower_cardinality = 1
|
|
|
|
- upper_cardinality = 1
|
|
|
|
-
|
|
|
|
- start_time : Float {
|
|
|
|
- target_lower_cardinality = 1
|
|
|
|
- target_upper_cardinality = 1
|
|
|
|
- }
|
|
|
|
|
|
+Class DerivatorBlock{}
|
|
|
|
+Class Time{
|
|
|
|
+ lower_cardinality = 1
|
|
|
|
+ upper_cardinality = 1
|
|
|
|
|
|
- current_time : Float {
|
|
|
|
- target_lower_cardinality = 1
|
|
|
|
- target_upper_cardinality = 1
|
|
|
|
- }
|
|
|
|
|
|
+ start_time : Float {
|
|
|
|
+ target_lower_cardinality = 1
|
|
|
|
+ target_upper_cardinality = 1
|
|
}
|
|
}
|
|
|
|
|
|
- Association Link(Block, Block){
|
|
|
|
- }
|
|
|
|
- Association InitialCondition(Block, ICBlock){
|
|
|
|
- source_lower_cardinality = 0
|
|
|
|
- source_upper_cardinality = 1
|
|
|
|
|
|
+ current_time : Float {
|
|
|
|
+ target_lower_cardinality = 1
|
|
|
|
+ target_upper_cardinality = 1
|
|
}
|
|
}
|
|
|
|
+}
|
|
|
|
|
|
- Inheritance (ConstantBlock, Block){}
|
|
|
|
- Inheritance (AdditionBlock, Block){}
|
|
|
|
- Inheritance (NegatorBlock, Block){}
|
|
|
|
- Inheritance (MultiplyBlock, Block){}
|
|
|
|
- Inheritance (InverseBlock, Block){}
|
|
|
|
- Inheritance (ICBlock, Block){}
|
|
|
|
- Inheritance (DelayBlock, ICBlock){}
|
|
|
|
- Inheritance (DerivatorBlock, ICBlock){}
|
|
|
|
- Inheritance (IntegratorBlock, ICBlock){}
|
|
|
|
- Inheritance (ProbeBlock, Block){}
|
|
|
|
|
|
+Association Link(Block, Block){}
|
|
|
|
+Association InitialCondition(Block, ICBlock){
|
|
|
|
+ source_lower_cardinality = 0
|
|
|
|
+ source_upper_cardinality = 1
|
|
}
|
|
}
|
|
|
|
|
|
-export CausalBlockDiagrams_Runtime to models/CausalBlockDiagrams_Runtime
|
|
|
|
|
|
+Inheritance (ConstantBlock, Block){}
|
|
|
|
+Inheritance (AdditionBlock, Block){}
|
|
|
|
+Inheritance (NegatorBlock, Block){}
|
|
|
|
+Inheritance (MultiplyBlock, Block){}
|
|
|
|
+Inheritance (InverseBlock, Block){}
|
|
|
|
+Inheritance (ICBlock, Block){}
|
|
|
|
+Inheritance (DelayBlock, ICBlock){}
|
|
|
|
+Inheritance (DerivatorBlock, ICBlock){}
|
|
|
|
+Inheritance (IntegratorBlock, ICBlock){}
|
|
|
|
+Inheritance (ProbeBlock, Block){}
|