|
|
@@ -13,7 +13,7 @@ class PowerWindow(FSAModel):
|
|
|
Driver_Up = CBDState("Driver_Up", PowerWindowUp("Driver_Up"))
|
|
|
Pass_Down = CBDState("Pass_Down", PowerWindowDown("Pass_Down"))
|
|
|
Driver_Down = CBDState("Driver_Down", PowerWindowDown("Driver_Down"))
|
|
|
- Obj_Detected = CBDState("Obj_Detected", PowerWindowDown("Obj_Detected"))
|
|
|
+ Obj_Detected = CBDState("Obj_Detected", PowerWindowRectract("Obj_Detected"))
|
|
|
End = State("End", final=True)
|
|
|
|
|
|
start = Transition("start", Started, Neutral)
|
|
|
@@ -108,7 +108,7 @@ class PowerWindowDown(CBD):
|
|
|
self.addBlock(ConstantBlock("100", value=100.0))
|
|
|
|
|
|
self.addBlock(InputConstantBlock("in_w0", value=0.0))
|
|
|
- self.addBlock(InputConstantBlock("in_v0", value=0.0))
|
|
|
+ self.addBlock(ConstantBlock("v0", value=0.0))
|
|
|
|
|
|
self.addBlock(PowerWindowPlant("plant"))
|
|
|
|
|
|
@@ -118,7 +118,32 @@ class PowerWindowDown(CBD):
|
|
|
self.addConnection("100", "plant", input_port_name="object_position")
|
|
|
|
|
|
self.addConnection("in_w0", "plant", input_port_name="init_position")
|
|
|
- self.addConnection("in_v0", "plant", input_port_name="init_velocity")
|
|
|
+ self.addConnection("v0", "plant", input_port_name="init_velocity")
|
|
|
+
|
|
|
+ self.addConnection("plant", "out_w0", output_port_name="position_out")
|
|
|
+ self.addConnection("plant", "out_v0", output_port_name="velocity_out")
|
|
|
+
|
|
|
+class PowerWindowRectract(CBD):
|
|
|
+ def __init__(self, blockName, delta_t = 0.01):
|
|
|
+ CBD.__init__(self,blockName, input_ports=[], output_ports=["out_w0","out_v0"])
|
|
|
+
|
|
|
+ self.addBlock(ConstantBlock("delta_t", value=delta_t))
|
|
|
+ self.addBlock(ConstantBlock("torque", value=-2.0))
|
|
|
+ self.addBlock(ConstantBlock("0", value=0.0))
|
|
|
+ self.addBlock(ConstantBlock("100", value=100.0))
|
|
|
+
|
|
|
+ self.addBlock(InputConstantBlock("in_w0", value=0.0))
|
|
|
+ self.addBlock(ConstantBlock("v0", value=0.0))
|
|
|
+
|
|
|
+ self.addBlock(PowerWindowPlant("plant"))
|
|
|
+
|
|
|
+ self.addConnection("delta_t", "plant", input_port_name="delta_t")
|
|
|
+ self.addConnection("torque", "plant", input_port_name="motor")
|
|
|
+ self.addConnection("0", "plant", input_port_name="object_detect")
|
|
|
+ self.addConnection("100", "plant", input_port_name="object_position")
|
|
|
+
|
|
|
+ self.addConnection("in_w0", "plant", input_port_name="init_position")
|
|
|
+ self.addConnection("v0", "plant", input_port_name="init_velocity")
|
|
|
|
|
|
self.addConnection("plant", "out_w0", output_port_name="position_out")
|
|
|
self.addConnection("plant", "out_v0", output_port_name="velocity_out")
|