소스 검색

adjustments to the model

Cláudio Gomes 9 년 전
부모
커밋
152a7ce431

+ 28 - 3
debugging_fsa_cbd_composition/fsa_cbd_simulator/models/power_window.py

@@ -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")

BIN
debugging_fsa_cbd_composition/fsa_cbd_simulator/models/power_window_hybrid_model.pdf


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 103 - 50
debugging_fsa_cbd_composition/fsa_cbd_simulator/models/power_window_hybrid_model.svg


+ 1 - 1
debugging_fsa_cbd_composition/fsa_cbd_simulator/run_debug.py

@@ -50,7 +50,7 @@ if __name__ == '__main__':
     events = fsaclasses.Events([fsaclasses.RunTimeEvent("p_up",0.5),
                                 fsaclasses.RunTimeEvent("stop",2.3),
                                 fsaclasses.RunTimeEvent("p_down",2.5),
-                                fsaclasses.RunTimeEvent("d_up",3.0),
+                                fsaclasses.RunTimeEvent("d_up",3.5),
                                 fsaclasses.RunTimeEvent("end",8.0)])
     controller = target.Controller(cbdmodel, events, options, keep_running=True)