rparedis 5 лет назад
Родитель
Сommit
f3722f7025

+ 4 - 0
.gitignore

@@ -13,3 +13,7 @@ examples/AGV/tuning4/
 examples/AGV/tuning5/
 
 src/build/
+
+examples/AGV/tuning6/
+
+examples/AGV/tuning7/

+ 90 - 8
examples/AGV/AGV.py

@@ -8,8 +8,70 @@ from ev3 import _PI as PI
 from ev3 import *
 from env import PathBlock
 from CBD.lib.endpoints import *
+from CBD.lib.network import TCPClientSender, TCPServerReceiver
+
+DELTA_T = .2
+
+
+class Merger(BaseBlock):
+    def __init__(self, block_name, count=2):
+        BaseBlock.__init__(self, block_name, ["IN%d" % (x+1) for x in range(count)], ["OUT1"])
+        self.count = count
+
+    def compute(self, curIteration):
+        values = []
+        for i in range(self.count):
+            values.append(self.getInputSignal(curIteration, "IN%d" % (i+1)).value)
+        self.appendToSignal(",".join([str(x) for x in values]))
+
+
+class Splitter(BaseBlock):
+    def __init__(self, block_name, count=2):
+        BaseBlock.__init__(self, block_name, ["IN1"], ["OUT%d" % (x+1) for x in range(count)])
+        self.count = count
+
+    def compute(self, curIteration):
+        value = self.getInputSignal(curIteration, "IN1" % (i+1)).value
+        assert len(value) == self.count
+        for i in range(self.count):
+            self.appendToSignal(value[i], "OUT%d" % (i+1))
+
+
+class IntegratorBlock(BaseBlock):
+    def __init__(self, block_name):
+        BaseBlock.__init__(self, block_name, ["IC", "IN1", "delta_t"], ["OUT1"])
+        self.__aoc = 0.0
+
+    def getDependencies(self, curIteration):
+        if curIteration == 0:
+            return [self._linksIn["IC"].block, self._linksIn["delta_t"].block]
+        return [self._linksIn["delta_t"].block]
+
+    def compute(self, curIteration):
+        if curIteration == 0:
+            value = self.getInputSignal(curIteration, "IC").value
+        else:
+            time = self.getInputSignal(curIteration, "delta_t").value
+            prev = self.getInputSignal(curIteration - 1, "IN1").value
+            value = prev * time
+        self.__aoc += value
+        self.appendToSignal(self.__aoc)
+
+
+class DerivatorBlock(BaseBlock):
+    def __init__(self, block_name):
+        BaseBlock.__init__(self, block_name, ["IC", "IN1", "delta_t"], ["OUT1"])
+
+    def compute(self, curIteration):
+        if curIteration == 0:
+            value = self.getInputSignal(curIteration, "IC").value
+        else:
+            a = self.getInputSignal(curIteration - 1, "IN1").value
+            b = self.getInputSignal(curIteration, "IN1").value
+            time = self.getInputSignal(curIteration, "delta_t").value
+            value = (b - a) / time
+        self.appendToSignal(value)
 
-DELTA_T = 0.2
 
 class OdometryBase(CBD):
     def __init__(self, block_name, r=(0.03), d=(0.18)):
@@ -181,7 +243,7 @@ class PID(CBD):
 
 
 class DifferentialDrive(CBD):
-    def __init__(self, block_name, wheel_axis=(0.18), wheel_radius=(0.03), max_wheel_speed=(170/60*2*PI), p=(0.85)):
+    def __init__(self, block_name, wheel_axis=(0.18), wheel_radius=(0.03), max_wheel_speed=(800*PI/180), p=(0.85)):
         super().__init__(block_name, input_ports=['velocity', 'steering'], output_ports=['phiLdot', 'phiRdot'])
 
         # Create the Blocks
@@ -219,30 +281,39 @@ class DifferentialDrive(CBD):
 
 
 class AGV(CBD):
-    def __init__(self, block_name, wheel_radius=(0.03), wheel_axis=(0.18), v=(0.01), gamma=(0.0), T=(50)):
+    def __init__(self, block_name, wheel_radius=(0.015), wheel_axis=(0.18), v=(0.01), Kp=(0.0), Ki=(0.0), Kd=(0.0), T=(50)):
         super().__init__(block_name, input_ports=[], output_ports=[])
 
         # Create the Blocks
-        self.addBlock(Controller("Controller", T=(T), v=(v), gamma=(gamma)))
+        self.addBlock(ControllerPID("Controller", T=(T), v=(v), Kp=(Kp), Kd=(Kd), Ki=(Ki)))
         self.addBlock(DifferentialDrive("StaticPlant", wheel_axis=(wheel_axis), wheel_radius=(wheel_radius)))
         self.addBlock(ReflectionSensorBlock("colorSensor", port_name=('1')))
         self.addBlock(MotorActuatorBlock("LeftMotor", port_name=('B')))
         self.addBlock(MotorActuatorBlock("RightMotor", port_name=('C')))
+        # self.addBlock(Merger("merge", 2))
+        # self.addBlock(TCPClientSender("TCP", socket, format="{}\n"))
+        self.addBlock(SignalCollectorBlock("TCP", 1))
 
         # Create the Connections
+        self.addConnection("colorSensor", "Controller", output_port_name='OUT1', input_port_name='color')
+        self.addConnection("colorSensor", "TCP", output_port_name='OUT1', input_port_name='IN1')
         self.addConnection("Controller", "StaticPlant", output_port_name='heading', input_port_name='steering')
         self.addConnection("Controller", "StaticPlant", output_port_name='velocity', input_port_name='velocity')
-        self.addConnection("colorSensor", "Controller", output_port_name='OUT1', input_port_name='color')
         self.addConnection("StaticPlant", "RightMotor", output_port_name='phiRdot', input_port_name='IN1')
         self.addConnection("StaticPlant", "LeftMotor", output_port_name='phiLdot', input_port_name='IN1')
+        # self.addConnection("StaticPlant", "merge", output_port_name='phiLdot', input_port_name='IN1')
+        # self.addConnection("StaticPlant", "merge", output_port_name='phiRdot', input_port_name='IN2')
+        # self.addConnection("merge", "TCP", output_port_name="OUT1", input_port_name="IN1")
 
 
+from CBD.lib.io import WriteCSV
 class AGVVirtual(CBD):
-    def __init__(self, block_name, wheel_radius=(0.03), wheel_axis=(0.18), path_file=("paths/falcon.csv"), initial=(0, 0, 0), v=(0.01), T=(50), gamma=(0.0)):
+    def __init__(self, block_name, wheel_radius=(0.03), wheel_axis=(0.18), path_file=("paths/falcon.csv"), initial=(0, 0, 0),
+                 v=(0.01), T=(50), Kp=(0.0), Kd=(0.0), Ki=(0.0), trace_file=("trace.csv")):
         super().__init__(block_name, input_ports=[], output_ports=[])
 
         # Create the Blocks
-        self.addBlock(Controller("Controller", T=(T), v=(v), gamma=(gamma)))
+        self.addBlock(ControllerPID("Controller", T=(T), v=(v), Kp=(Kp), Kd=(Kd), Ki=(Ki)))
         self.addBlock(DifferentialDrive("StaticPlant", wheel_axis=(wheel_axis), wheel_radius=(wheel_radius)))
         self.addBlock(PathBlock("environment", path_file=(path_file)))
         self.addBlock(PositionCollectorBlock("plot"))
@@ -254,6 +325,8 @@ class AGVVirtual(CBD):
         self.addBlock(ConstantBlock("delta", value=(DELTA_T)))
         self.addBlock(IntegratorBlock("intH"))
         self.addBlock(ProductBlock("mult"))
+        self.addBlock(WriteCSV("writer", trace_file, ["x", "y", "heading"]))
+        # self.addBlock(TCPServerReceiver("TCP", '192.168.1.10', 8080, 1024, convert=int, initial=[T]))
 
         # Create the Connections
         self.addConnection("Controller", "StaticPlant", output_port_name='heading', input_port_name='steering')
@@ -262,8 +335,8 @@ class AGVVirtual(CBD):
         self.addConnection("StaticPlant", "odo", output_port_name='phiLdot', input_port_name='phiLdot')
         self.addConnection("StaticPlant", "odo", output_port_name='phiRdot', input_port_name='phiRdot')
         self.addConnection("odo", "plot", output_port_name='x', input_port_name='X')
-        self.addConnection("odo", "environment", output_port_name='x', input_port_name='x')
         self.addConnection("odo", "plot", output_port_name='y', input_port_name='Y')
+        self.addConnection("odo", "environment", output_port_name='x', input_port_name='x')
         self.addConnection("odo", "environment", output_port_name='y', input_port_name='y')
         self.addConnection("environment", "int", output_port_name='offset', input_port_name='IN1')
         self.addConnection("zero", "int", output_port_name='OUT1', input_port_name='IC')
@@ -276,4 +349,13 @@ class AGVVirtual(CBD):
         self.addConnection("int", "mult", output_port_name='OUT1', input_port_name='IN2')
         self.addConnection("mult", "errorPlot", output_port_name='OUT1', input_port_name='IN1')
 
+        self.addConnection("odo", "writer", output_port_name="heading", input_port_name="heading")
+        self.addConnection("odo", "writer", output_port_name="x", input_port_name="x")
+        self.addConnection("odo", "writer", output_port_name="y", input_port_name="y")
+
+        # self.addConnection("TCP", "Controller", output_port_name='OUT1', input_port_name='color')
+        self.addConnection("environment", "Controller", output_port_name='color', input_port_name='color')
+
+
+
 

+ 7 - 6
examples/AGV/AGV_tuning.py

@@ -12,7 +12,7 @@ from CBD.realtime.plotting import PlotManager, LinePlot, Arrow, follow
 import numpy as np
 
 DELTA_T = 0.2
-END = 100.0
+END = 600.0
 
 # fig, ax1 = plt.subplots(1, 1)
 # fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 7))
@@ -26,13 +26,14 @@ END = 100.0
 # ax1.set_title("Trajectory")
 # ax2.set_title("Accumulated Offset")
 
-file = open('tuning5.log', 'a')
+file = open('tuning7.log', 'a')
 i = 0
-for Ki in np.arange(0.0, 0.5, 0.01):
-	for Kd in np.arange(0.0, 0.5, 0.01):
+for Ki in np.arange(0.0, 0.01, 0.01):
+	for Kd in np.arange(0.0, -0.2, -0.01):
 		for Kp in np.arange(0.0, 0.06, 0.01):
 			# cbd = AGVVirtual("AGVVirtual", initial=[0, -0.3, PI], Kp=0.04, Ki=0.0, Kd=-0.04)
-			cbd = AGVVirtual("AGVVirtual", initial=[0, -0.3, 0], Kp=Kp, Ki=Ki, Kd=Kd)
+			cbd = AGVVirtual("AGVVirtual", initial=[0, -0.3, 0], Kp=Kp, Ki=Ki, Kd=Kd, v=0.001, T=35,
+			                 wheel_radius=0.016512, wheel_axis=0.1944, trace_file="tuning7/path-{:05d}.csv".format(i))
 			# cbd = Test("Test")
 
 			# env = cbd.findBlock("environment")[0]
@@ -95,7 +96,7 @@ for Ki in np.arange(0.0, 0.5, 0.01):
 			ax1.plot(*traj.data_xy, color='blue')
 			ax1.set_title(txt)
 
-			plt.savefig("tuning5/image-{:05d}".format(i))
+			plt.savefig("tuning7/image-{:05d}".format(i))
 			plt.close()
 
 			print("{}:\t {}".format(i, txt))

+ 1 - 1
examples/AGV/env.py

@@ -4,7 +4,7 @@ Pure code-based environment building blocks for AGV simulation.
 from CBD.CBD import BaseBlock
 
 class PathBlock(BaseBlock):
-	def __init__(self, block_name, path_file, path_width=0.015, grace=0.001, black=100, white=0):
+	def __init__(self, block_name, path_file, path_width=0.027, grace=0.001, black=55, white=5):
 		BaseBlock.__init__(self, block_name, ["x", "y"], ["color", "offset"])
 
 		self.path_width = path_width

+ 55 - 0
examples/AGV/generate_plot.py

@@ -0,0 +1,55 @@
+
+from AGV import *
+from CBD.simulator import Simulator
+from CBD.realtime.plotting import PlotManager, LinePlot
+import matplotlib.pyplot as plt
+from itertools import cycle
+import pandas as pd
+
+DELTA_T = 0.2
+END = 650.0
+
+if __name__ == '__main__':
+	fig = plt.figure(figsize=(5, 5), dpi=100)
+	ax = fig.add_subplot(111)
+	ax.set_xlim((-.45, .45))
+	ax.set_ylim((-.35, .55))
+
+	lines = ["-","--","-.",":"]
+	linecycler = cycle(lines)
+
+	model = AGVVirtual("AGV", path_file="paths/falcon.csv", Kp=0.0, Ki=0.0, Kd=-0.02, v=0.001, T=35,
+	                   wheel_radius=0.016512, wheel_axis=0.1944, initial=[0, -.3, 0])
+
+	traj = model.findBlock("environment")[0].path
+	ax.plot([x for x, _ in traj], [y for _, y in traj], c='salmon', label="path")
+
+	sets = {
+		"012": -0.02,
+		"072": -0.12,
+		"084": -0.14,
+		"102": -0.17
+	}
+	for d, Kd in sets.items():
+		data = pd.read_csv(f"tuning6/path-00{d}.csv")
+		ax.plot(data["x"], data["y"], next(linecycler), lw=2, label="Kd = " + str(Kd))
+	# data012 = pd.read_csv("tuning6/path-00012.csv")
+	# data072 = pd.read_csv("tuning6/path-00072.csv")
+	# data082 = pd.read_csv("tuning6/path-00084.csv")
+	# data102 = pd.read_csv("tuning6/path-00102.csv")
+
+	# print(data012)
+
+# manager = PlotManager()
+# manager.register("plot", model.findBlock("plot")[0], (fig, ax), LinePlot())
+#
+# sim = Simulator(model)
+# sim.setDeltaT(DELTA_T)
+# # sim.setProgressBar()
+# # sim.setRealTimePlatformGameLoop()
+# sim.setRealTime(scale=.01)
+# sim.run(END)
+#
+	fig.tight_layout()
+	ax.legend(loc="upper left")
+	plt.show()

+ 1 - 0
examples/AGV/trace.csv

@@ -0,0 +1 @@
+time,x,y,heading

+ 941 - 0
examples/AGV/tuning6.log

@@ -0,0 +1,941 @@
+Kp = 0.00, Ki = 0.00, Kd = 0.00; error = 0.000000
+Kp = 0.01, Ki = 0.00, Kd = 0.00; error = 428152.387960
+Kp = 0.02, Ki = 0.00, Kd = 0.00; error = 613060.178694
+Kp = 0.03, Ki = 0.00, Kd = 0.00; error = 1377111.910787
+Kp = 0.04, Ki = 0.00, Kd = 0.00; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.00; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.01; error = 0.000000
+Kp = 0.01, Ki = 0.00, Kd = 0.01; error = 428152.387960
+Kp = 0.02, Ki = 0.00, Kd = 0.01; error = 613060.178694
+Kp = 0.03, Ki = 0.00, Kd = 0.01; error = 1377111.910787
+Kp = 0.04, Ki = 0.00, Kd = 0.01; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.01; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.02; error = 0.000000
+Kp = 0.01, Ki = 0.00, Kd = 0.02; error = 428152.387960
+Kp = 0.02, Ki = 0.00, Kd = 0.02; error = 613060.178694
+Kp = 0.03, Ki = 0.00, Kd = 0.02; error = 1377111.910787
+Kp = 0.04, Ki = 0.00, Kd = 0.02; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.02; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.03; error = 0.000000
+Kp = 0.01, Ki = 0.00, Kd = 0.03; error = 428152.387960
+Kp = 0.02, Ki = 0.00, Kd = 0.03; error = 613060.178694
+Kp = 0.03, Ki = 0.00, Kd = 0.03; error = 1377111.910787
+Kp = 0.04, Ki = 0.00, Kd = 0.03; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.03; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.04; error = 0.000000
+Kp = 0.01, Ki = 0.00, Kd = 0.04; error = 428152.387960
+Kp = 0.02, Ki = 0.00, Kd = 0.04; error = 613060.178694
+Kp = 0.03, Ki = 0.00, Kd = 0.04; error = 1377111.910787
+Kp = 0.04, Ki = 0.00, Kd = 0.04; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.04; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.05; error = 0.000000
+Kp = 0.01, Ki = 0.00, Kd = 0.05; error = 428152.387960
+Kp = 0.02, Ki = 0.00, Kd = 0.05; error = 613060.178694
+Kp = 0.03, Ki = 0.00, Kd = 0.05; error = 1377111.910787
+Kp = 0.04, Ki = 0.00, Kd = 0.05; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.05; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.06; error = 0.000000
+Kp = 0.01, Ki = 0.00, Kd = 0.06; error = 428152.387960
+Kp = 0.02, Ki = 0.00, Kd = 0.06; error = 613060.178694
+Kp = 0.03, Ki = 0.00, Kd = 0.06; error = 1377111.910787
+Kp = 0.04, Ki = 0.00, Kd = 0.06; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.06; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.07; error = 0.000000
+Kp = 0.01, Ki = 0.00, Kd = 0.07; error = 428152.387960
+Kp = 0.02, Ki = 0.00, Kd = 0.07; error = 613060.178694
+Kp = 0.03, Ki = 0.00, Kd = 0.07; error = 1377111.910787
+Kp = 0.04, Ki = 0.00, Kd = 0.07; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.07; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.08; error = 0.000000
+Kp = 0.01, Ki = 0.00, Kd = 0.08; error = 428152.387960
+Kp = 0.02, Ki = 0.00, Kd = 0.08; error = 613060.178694
+Kp = 0.03, Ki = 0.00, Kd = 0.08; error = 1377111.910787
+Kp = 0.04, Ki = 0.00, Kd = 0.08; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.08; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.09; error = 0.000000
+Kp = 0.01, Ki = 0.00, Kd = 0.09; error = 428152.387960
+Kp = 0.02, Ki = 0.00, Kd = 0.09; error = 613060.178694
+Kp = 0.03, Ki = 0.00, Kd = 0.09; error = 1377111.910787
+Kp = 0.04, Ki = 0.00, Kd = 0.09; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.09; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.10; error = 0.000000
+Kp = 0.01, Ki = 0.00, Kd = 0.10; error = 428152.387960
+Kp = 0.02, Ki = 0.00, Kd = 0.10; error = 613060.178694
+Kp = 0.03, Ki = 0.00, Kd = 0.10; error = 1377111.910787
+Kp = 0.04, Ki = 0.00, Kd = 0.10; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.10; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.11; error = 0.000000
+Kp = 0.01, Ki = 0.00, Kd = 0.11; error = 428152.387960
+Kp = 0.02, Ki = 0.00, Kd = 0.11; error = 613060.178694
+Kp = 0.03, Ki = 0.00, Kd = 0.11; error = 1377111.910787
+Kp = 0.04, Ki = 0.00, Kd = 0.11; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.11; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.12; error = 0.000000
+Kp = 0.01, Ki = 0.00, Kd = 0.12; error = 428152.387960
+Kp = 0.02, Ki = 0.00, Kd = 0.12; error = 613060.178694
+Kp = 0.03, Ki = 0.00, Kd = 0.12; error = 1377111.910787
+Kp = 0.04, Ki = 0.00, Kd = 0.12; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.12; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.13; error = 0.000000
+Kp = 0.01, Ki = 0.00, Kd = 0.13; error = 428152.387960
+Kp = 0.02, Ki = 0.00, Kd = 0.13; error = 613060.178694
+Kp = 0.03, Ki = 0.00, Kd = 0.13; error = 1377111.910787
+Kp = 0.04, Ki = 0.00, Kd = 0.13; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.13; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.14; error = 0.000000
+Kp = 0.01, Ki = 0.00, Kd = 0.14; error = 428152.387960
+Kp = 0.02, Ki = 0.00, Kd = 0.14; error = 613060.178694
+Kp = 0.03, Ki = 0.00, Kd = 0.14; error = 1377111.910787
+Kp = 0.04, Ki = 0.00, Kd = 0.14; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.14; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.15; error = 0.000000
+Kp = 0.01, Ki = 0.00, Kd = 0.15; error = 428152.387960
+Kp = 0.02, Ki = 0.00, Kd = 0.15; error = 613060.178694
+Kp = 0.03, Ki = 0.00, Kd = 0.15; error = 1377111.910787
+Kp = 0.04, Ki = 0.00, Kd = 0.15; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.15; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.16; error = 0.000000
+Kp = 0.01, Ki = 0.00, Kd = 0.16; error = 428152.387960
+Kp = 0.02, Ki = 0.00, Kd = 0.16; error = 613060.178694
+Kp = 0.03, Ki = 0.00, Kd = 0.16; error = 1377111.910787
+Kp = 0.04, Ki = 0.00, Kd = 0.16; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.16; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.17; error = 0.000000
+Kp = 0.01, Ki = 0.00, Kd = 0.17; error = 428152.387960
+Kp = 0.02, Ki = 0.00, Kd = 0.17; error = 613060.178694
+Kp = 0.03, Ki = 0.00, Kd = 0.17; error = 1377111.910787
+Kp = 0.04, Ki = 0.00, Kd = 0.17; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.17; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.18; error = 0.000000
+Kp = 0.01, Ki = 0.00, Kd = 0.18; error = 428152.387960
+Kp = 0.02, Ki = 0.00, Kd = 0.18; error = 613060.178694
+Kp = 0.03, Ki = 0.00, Kd = 0.18; error = 1377111.910787
+Kp = 0.04, Ki = 0.00, Kd = 0.18; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.18; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.19; error = 0.000000
+Kp = 0.01, Ki = 0.00, Kd = 0.19; error = 428152.387960
+Kp = 0.02, Ki = 0.00, Kd = 0.19; error = 613060.178694
+Kp = 0.03, Ki = 0.00, Kd = 0.19; error = 1377111.910787
+Kp = 0.04, Ki = 0.00, Kd = 0.19; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.19; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.20; error = 0.000000
+Kp = 0.00, Ki = 0.00, Kd = 0.00; error = 0.000000
+Kp = 0.01, Ki = 0.00, Kd = 0.00; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.00; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.00; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.00; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.00; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.01; error = -4871.180984
+Kp = 0.01, Ki = 0.00, Kd = 0.01; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.01; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.01; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.01; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.01; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.02; error = -2911.198474
+Kp = 0.01, Ki = 0.00, Kd = 0.02; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.02; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.02; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.02; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.02; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.03; error = -5283.741775
+Kp = 0.01, Ki = 0.00, Kd = 0.03; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.03; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.03; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.03; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.03; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.04; error = -1768.944553
+Kp = 0.01, Ki = 0.00, Kd = 0.04; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.04; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.04; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.04; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.04; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.05; error = -2597.589874
+Kp = 0.01, Ki = 0.00, Kd = 0.05; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.05; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.05; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.05; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.05; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.06; error = -6112.140429
+Kp = 0.01, Ki = 0.00, Kd = 0.06; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.06; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.06; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.06; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.06; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.07; error = -5141.165338
+Kp = 0.01, Ki = 0.00, Kd = 0.07; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.07; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.07; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.07; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.07; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.08; error = -5937.346637
+Kp = 0.01, Ki = 0.00, Kd = 0.08; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.08; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.08; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.08; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.08; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.09; error = -4296.508797
+Kp = 0.01, Ki = 0.00, Kd = 0.09; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.09; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.09; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.09; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.09; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.10; error = -5263.942970
+Kp = 0.01, Ki = 0.00, Kd = 0.10; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.10; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.10; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.10; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.10; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.11; error = -5445.991126
+Kp = 0.01, Ki = 0.00, Kd = 0.11; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.11; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.11; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.11; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.11; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.12; error = -4564.784436
+Kp = 0.01, Ki = 0.00, Kd = 0.12; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.12; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.12; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.12; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.12; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.13; error = -5226.407490
+Kp = 0.01, Ki = 0.00, Kd = 0.13; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.13; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.13; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.13; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.13; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.14; error = -5470.525037
+Kp = 0.01, Ki = 0.00, Kd = 0.14; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.14; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.14; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.14; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.14; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.15; error = -4730.483666
+Kp = 0.01, Ki = 0.00, Kd = 0.15; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.15; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.15; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.15; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.15; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.16; error = -3596.056465
+Kp = 0.01, Ki = 0.00, Kd = 0.16; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.16; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.16; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.16; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.16; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.17; error = -5251.713683
+Kp = 0.01, Ki = 0.00, Kd = 0.17; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.17; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.17; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.17; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.17; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.18; error = -5097.069444
+Kp = 0.01, Ki = 0.00, Kd = 0.18; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.18; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.18; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.18; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.18; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.19; error = -4931.825063
+Kp = 0.01, Ki = 0.00, Kd = 0.19; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.19; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.19; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.19; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.19; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.20; error = -5284.735031
+Kp = 0.01, Ki = 0.00, Kd = 0.20; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.20; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.20; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.20; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.20; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.21; error = -5124.417733
+Kp = 0.01, Ki = 0.00, Kd = 0.21; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.21; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.21; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.21; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.21; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.22; error = -3657.165767
+Kp = 0.01, Ki = 0.00, Kd = 0.22; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.22; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.22; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.22; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.22; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.23; error = -2398.891348
+Kp = 0.01, Ki = 0.00, Kd = 0.23; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.23; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.23; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.23; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.23; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.24; error = -5179.991582
+Kp = 0.01, Ki = 0.00, Kd = 0.24; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.24; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.24; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.24; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.24; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.25; error = -3004.637133
+Kp = 0.01, Ki = 0.00, Kd = 0.25; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.25; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.25; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.25; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.25; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.26; error = -4888.387006
+Kp = 0.01, Ki = 0.00, Kd = 0.26; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.26; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.26; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.26; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.26; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.27; error = -4796.043614
+Kp = 0.01, Ki = 0.00, Kd = 0.27; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.27; error = 8520022.111955
+Kp = 0.00, Ki = 0.00, Kd = 0.00; error = 0.000000
+Kp = 0.01, Ki = 0.00, Kd = 0.00; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.00; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.00; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.00; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.00; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.01; error = -4871.180984
+Kp = 0.01, Ki = 0.00, Kd = 0.01; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.01; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.01; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.01; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.01; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.02; error = -2911.198474
+Kp = 0.01, Ki = 0.00, Kd = 0.02; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.02; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.02; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.02; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.02; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.03; error = -5283.741775
+Kp = 0.01, Ki = 0.00, Kd = 0.03; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.03; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.03; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.03; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.03; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.04; error = -1768.944553
+Kp = 0.01, Ki = 0.00, Kd = 0.04; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.04; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.04; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.04; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.04; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.05; error = -2597.589874
+Kp = 0.01, Ki = 0.00, Kd = 0.05; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.05; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.05; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.05; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.05; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.06; error = -6112.140429
+Kp = 0.01, Ki = 0.00, Kd = 0.06; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.06; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.06; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.06; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.06; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.07; error = -5141.165338
+Kp = 0.01, Ki = 0.00, Kd = 0.07; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.07; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.07; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.07; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.07; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.08; error = -5937.346637
+Kp = 0.01, Ki = 0.00, Kd = 0.08; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.08; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.08; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.08; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.08; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.09; error = -4296.508797
+Kp = 0.01, Ki = 0.00, Kd = 0.09; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.09; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.09; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.09; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.09; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.10; error = -5263.942970
+Kp = 0.01, Ki = 0.00, Kd = 0.10; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.10; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.10; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.10; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.10; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.11; error = -5445.991126
+Kp = 0.01, Ki = 0.00, Kd = 0.11; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.11; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.11; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.11; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.11; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.12; error = -4564.784436
+Kp = 0.01, Ki = 0.00, Kd = 0.12; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.12; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.12; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.12; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.12; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.13; error = -5226.407490
+Kp = 0.01, Ki = 0.00, Kd = 0.13; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.13; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.13; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.13; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.13; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.14; error = -5470.525037
+Kp = 0.01, Ki = 0.00, Kd = 0.14; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.14; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.14; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.14; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.14; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.15; error = -4730.483666
+Kp = 0.01, Ki = 0.00, Kd = 0.15; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.15; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.15; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.15; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.15; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.16; error = -3596.056465
+Kp = 0.01, Ki = 0.00, Kd = 0.16; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.16; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.16; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.16; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.16; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.17; error = -5251.713683
+Kp = 0.01, Ki = 0.00, Kd = 0.17; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.17; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.17; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.17; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.17; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.18; error = -5097.069444
+Kp = 0.01, Ki = 0.00, Kd = 0.18; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.18; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.18; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.18; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.18; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.19; error = -4931.825063
+Kp = 0.01, Ki = 0.00, Kd = 0.19; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.19; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.19; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.19; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.19; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.20; error = -5284.735031
+Kp = 0.01, Ki = 0.00, Kd = 0.20; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.20; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.20; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.20; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.20; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.21; error = -5124.417733
+Kp = 0.01, Ki = 0.00, Kd = 0.21; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.21; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.21; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.21; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.21; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.22; error = -3657.165767
+Kp = 0.01, Ki = 0.00, Kd = 0.22; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.22; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.22; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.22; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.22; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.23; error = -2398.891348
+Kp = 0.01, Ki = 0.00, Kd = 0.23; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.23; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.23; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.23; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.23; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.24; error = -5179.991582
+Kp = 0.01, Ki = 0.00, Kd = 0.24; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.24; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.24; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.24; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.24; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.25; error = -3004.637133
+Kp = 0.01, Ki = 0.00, Kd = 0.25; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.25; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.25; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.25; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.25; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.26; error = -4888.387006
+Kp = 0.01, Ki = 0.00, Kd = 0.26; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.26; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.26; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.26; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.26; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.27; error = -4796.043614
+Kp = 0.01, Ki = 0.00, Kd = 0.27; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.27; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.27; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.27; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.27; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.28; error = -4850.701073
+Kp = 0.01, Ki = 0.00, Kd = 0.28; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.28; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.28; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.28; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.28; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.29; error = -5055.368024
+Kp = 0.01, Ki = 0.00, Kd = 0.29; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.29; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.29; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.29; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.29; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.30; error = -5040.830357
+Kp = 0.01, Ki = 0.00, Kd = 0.30; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.30; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.30; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.30; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.30; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.31; error = -4515.103448
+Kp = 0.01, Ki = 0.00, Kd = 0.31; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.31; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.31; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.31; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.31; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.32; error = -1733.419249
+Kp = 0.01, Ki = 0.00, Kd = 0.32; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.32; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.32; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.32; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.32; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.33; error = -4606.101709
+Kp = 0.01, Ki = 0.00, Kd = 0.33; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.33; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.33; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.33; error = inf
+Kp = 0.05, Ki = 0.00, Kd = 0.33; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.34; error = -4288.637995
+Kp = 0.01, Ki = 0.00, Kd = 0.34; error = 2655626.965963
+Kp = 0.02, Ki = 0.00, Kd = 0.34; error = 8520022.111955
+Kp = 0.03, Ki = 0.00, Kd = 0.34; error = 11972391.970480
+Kp = 0.04, Ki = 0.00, Kd = 0.34; error = inf
+Kp = 0.00, Ki = 0.00, Kd = 0.00; error = 0.000000
+Kp = 0.01, Ki = 0.00, Kd = 0.00; error = 781686.612182
+Kp = 0.02, Ki = 0.00, Kd = 0.00; error = 30425947.871889
+Kp = 0.03, Ki = 0.00, Kd = 0.00; error = 2337651.150417
+Kp = 0.04, Ki = 0.00, Kd = 0.00; error = 30207522.991857
+Kp = 0.05, Ki = 0.00, Kd = 0.00; error = 3874268.600884
+Kp = 0.00, Ki = 0.00, Kd = 0.01; error = -1695.500720
+Kp = 0.01, Ki = 0.00, Kd = 0.01; error = 781686.612182
+Kp = 0.02, Ki = 0.00, Kd = 0.01; error = 30425947.871889
+Kp = 0.03, Ki = 0.00, Kd = 0.01; error = 2337651.150417
+Kp = 0.04, Ki = 0.00, Kd = 0.01; error = 30207522.991857
+Kp = 0.05, Ki = 0.00, Kd = 0.01; error = 3874268.600884
+Kp = 0.00, Ki = 0.00, Kd = 0.02; error = -4281.093580
+Kp = 0.01, Ki = 0.00, Kd = 0.02; error = 781686.612182
+Kp = 0.02, Ki = 0.00, Kd = 0.02; error = 30425947.871889
+Kp = 0.03, Ki = 0.00, Kd = 0.02; error = 2337651.150417
+Kp = 0.04, Ki = 0.00, Kd = 0.02; error = 30207522.991857
+Kp = 0.05, Ki = 0.00, Kd = 0.02; error = 3874268.600884
+Kp = 0.00, Ki = 0.00, Kd = 0.03; error = -5816.165595
+Kp = 0.01, Ki = 0.00, Kd = 0.03; error = 781686.612182
+Kp = 0.02, Ki = 0.00, Kd = 0.03; error = 30425947.871889
+Kp = 0.03, Ki = 0.00, Kd = 0.03; error = 2337651.150417
+Kp = 0.04, Ki = 0.00, Kd = 0.03; error = 30207522.991857
+Kp = 0.05, Ki = 0.00, Kd = 0.03; error = 3874268.600884
+Kp = 0.00, Ki = 0.00, Kd = 0.04; error = -5759.575348
+Kp = 0.01, Ki = 0.00, Kd = 0.04; error = 781686.612182
+Kp = 0.02, Ki = 0.00, Kd = 0.04; error = 30425947.871889
+Kp = 0.03, Ki = 0.00, Kd = 0.04; error = 2337651.150417
+Kp = 0.04, Ki = 0.00, Kd = 0.04; error = 30207522.991857
+Kp = 0.05, Ki = 0.00, Kd = 0.04; error = 3874268.600884
+Kp = 0.00, Ki = 0.00, Kd = 0.05; error = -3305.120123
+Kp = 0.01, Ki = 0.00, Kd = 0.05; error = 781686.612182
+Kp = 0.02, Ki = 0.00, Kd = 0.05; error = 30425947.871889
+Kp = 0.03, Ki = 0.00, Kd = 0.05; error = 2337651.150417
+Kp = 0.04, Ki = 0.00, Kd = 0.05; error = 30207522.991857
+Kp = 0.05, Ki = 0.00, Kd = 0.05; error = 3874268.600884
+Kp = 0.00, Ki = 0.00, Kd = 0.06; error = -2393.548364
+Kp = 0.01, Ki = 0.00, Kd = 0.06; error = 781686.612182
+Kp = 0.02, Ki = 0.00, Kd = 0.06; error = 30425947.871889
+Kp = 0.03, Ki = 0.00, Kd = 0.06; error = 2337651.150417
+Kp = 0.04, Ki = 0.00, Kd = 0.06; error = 30207522.991857
+Kp = 0.05, Ki = 0.00, Kd = 0.06; error = 3874268.600884
+Kp = 0.00, Ki = 0.00, Kd = 0.07; error = -3385.362879
+Kp = 0.01, Ki = 0.00, Kd = 0.07; error = 781686.612182
+Kp = 0.02, Ki = 0.00, Kd = 0.07; error = 30425947.871889
+Kp = 0.03, Ki = 0.00, Kd = 0.07; error = 2337651.150417
+Kp = 0.04, Ki = 0.00, Kd = 0.07; error = 30207522.991857
+Kp = 0.05, Ki = 0.00, Kd = 0.07; error = 3874268.600884
+Kp = 0.00, Ki = 0.00, Kd = 0.08; error = -2005.448130
+Kp = 0.01, Ki = 0.00, Kd = 0.08; error = 781686.612182
+Kp = 0.02, Ki = 0.00, Kd = 0.08; error = 30425947.871889
+Kp = 0.03, Ki = 0.00, Kd = 0.08; error = 2337651.150417
+Kp = 0.04, Ki = 0.00, Kd = 0.08; error = 30207522.991857
+Kp = 0.05, Ki = 0.00, Kd = 0.08; error = 3874268.600884
+Kp = 0.00, Ki = 0.00, Kd = 0.09; error = -2460.646271
+Kp = 0.01, Ki = 0.00, Kd = 0.09; error = 781686.612182
+Kp = 0.02, Ki = 0.00, Kd = 0.09; error = 30425947.871889
+Kp = 0.03, Ki = 0.00, Kd = 0.09; error = 2337651.150417
+Kp = 0.04, Ki = 0.00, Kd = 0.09; error = 30207522.991857
+Kp = 0.05, Ki = 0.00, Kd = 0.09; error = 3874268.600884
+Kp = 0.00, Ki = 0.00, Kd = 0.10; error = -3005.329847
+Kp = 0.01, Ki = 0.00, Kd = 0.10; error = 781686.612182
+Kp = 0.02, Ki = 0.00, Kd = 0.10; error = 30425947.871889
+Kp = 0.03, Ki = 0.00, Kd = 0.10; error = 2337651.150417
+Kp = 0.04, Ki = 0.00, Kd = 0.10; error = 30207522.991857
+Kp = 0.05, Ki = 0.00, Kd = 0.10; error = 3874268.600884
+Kp = 0.00, Ki = 0.00, Kd = 0.11; error = -3032.411387
+Kp = 0.01, Ki = 0.00, Kd = 0.11; error = 781686.612182
+Kp = 0.02, Ki = 0.00, Kd = 0.11; error = 30425947.871889
+Kp = 0.03, Ki = 0.00, Kd = 0.11; error = 2337651.150417
+Kp = 0.04, Ki = 0.00, Kd = 0.11; error = 30207522.991857
+Kp = 0.05, Ki = 0.00, Kd = 0.11; error = 3874268.600884
+Kp = 0.00, Ki = 0.00, Kd = 0.12; error = -1792.580850
+Kp = 0.01, Ki = 0.00, Kd = 0.12; error = 781686.612182
+Kp = 0.02, Ki = 0.00, Kd = 0.12; error = 30425947.871889
+Kp = 0.03, Ki = 0.00, Kd = 0.12; error = 2337651.150417
+Kp = 0.04, Ki = 0.00, Kd = 0.12; error = 30207522.991857
+Kp = 0.05, Ki = 0.00, Kd = 0.12; error = 3874268.600884
+Kp = 0.00, Ki = 0.00, Kd = 0.13; error = -3870.647131
+Kp = 0.01, Ki = 0.00, Kd = 0.13; error = 781686.612182
+Kp = 0.02, Ki = 0.00, Kd = 0.13; error = 30425947.871889
+Kp = 0.03, Ki = 0.00, Kd = 0.13; error = 2337651.150417
+Kp = 0.04, Ki = 0.00, Kd = 0.13; error = 30207522.991857
+Kp = 0.05, Ki = 0.00, Kd = 0.13; error = 3874268.600884
+Kp = 0.00, Ki = 0.00, Kd = 0.14; error = -1944.997417
+Kp = 0.01, Ki = 0.00, Kd = 0.14; error = 781686.612182
+Kp = 0.02, Ki = 0.00, Kd = 0.14; error = 30425947.871889
+Kp = 0.03, Ki = 0.00, Kd = 0.14; error = 2337651.150417
+Kp = 0.04, Ki = 0.00, Kd = 0.14; error = 30207522.991857
+Kp = 0.05, Ki = 0.00, Kd = 0.14; error = 3874268.600884
+Kp = 0.00, Ki = 0.00, Kd = 0.15; error = -3465.153841
+Kp = 0.01, Ki = 0.00, Kd = 0.15; error = 781686.612182
+Kp = 0.02, Ki = 0.00, Kd = 0.15; error = 30425947.871889
+Kp = 0.03, Ki = 0.00, Kd = 0.15; error = 2337651.150417
+Kp = 0.04, Ki = 0.00, Kd = 0.15; error = 30207522.991857
+Kp = 0.05, Ki = 0.00, Kd = 0.15; error = 3874268.600884
+Kp = 0.00, Ki = 0.00, Kd = 0.16; error = -4811.322587
+Kp = 0.01, Ki = 0.00, Kd = 0.16; error = 781686.612182
+Kp = 0.02, Ki = 0.00, Kd = 0.16; error = 30425947.871889
+Kp = 0.03, Ki = 0.00, Kd = 0.16; error = 2337651.150417
+Kp = 0.04, Ki = 0.00, Kd = 0.16; error = 30207522.991857
+Kp = 0.05, Ki = 0.00, Kd = 0.16; error = 3874268.600884
+Kp = 0.00, Ki = 0.00, Kd = 0.17; error = -3368.683417
+Kp = 0.01, Ki = 0.00, Kd = 0.17; error = 781686.612182
+Kp = 0.02, Ki = 0.00, Kd = 0.17; error = 30425947.871889
+Kp = 0.03, Ki = 0.00, Kd = 0.17; error = 2337651.150417
+Kp = 0.04, Ki = 0.00, Kd = 0.17; error = 30207522.991857
+Kp = 0.05, Ki = 0.00, Kd = 0.17; error = 3874268.600884
+Kp = 0.00, Ki = 0.00, Kd = 0.18; error = -4722.178611
+Kp = 0.01, Ki = 0.00, Kd = 0.18; error = 781686.612182
+Kp = 0.02, Ki = 0.00, Kd = 0.18; error = 30425947.871889
+Kp = 0.03, Ki = 0.00, Kd = 0.18; error = 2337651.150417
+Kp = 0.04, Ki = 0.00, Kd = 0.18; error = 30207522.991857
+Kp = 0.05, Ki = 0.00, Kd = 0.18; error = 3874268.600884
+Kp = 0.00, Ki = 0.00, Kd = 0.19; error = -3934.248681
+Kp = 0.01, Ki = 0.00, Kd = 0.19; error = 781686.612182
+Kp = 0.02, Ki = 0.00, Kd = 0.19; error = 30425947.871889
+Kp = 0.03, Ki = 0.00, Kd = 0.19; error = 2337651.150417
+Kp = 0.04, Ki = 0.00, Kd = 0.19; error = 30207522.991857
+Kp = 0.00, Ki = 0.00, Kd = 0.00; error = 18711.903898
+Kp = 0.01, Ki = 0.00, Kd = 0.00; error = 521246.682421
+Kp = 0.02, Ki = 0.00, Kd = 0.00; error = 19878961.410620
+Kp = 0.03, Ki = 0.00, Kd = 0.00; error = 1536047.670844
+Kp = 0.04, Ki = 0.00, Kd = 0.00; error = 19899827.279521
+Kp = 0.05, Ki = 0.00, Kd = 0.00; error = 2592991.600133
+Kp = 0.00, Ki = 0.00, Kd = 0.01; error = 4121.078896
+Kp = 0.01, Ki = 0.00, Kd = 0.01; error = 521246.682421
+Kp = 0.02, Ki = 0.00, Kd = 0.01; error = 19878961.410620
+Kp = 0.03, Ki = 0.00, Kd = 0.01; error = 1536047.670844
+Kp = 0.04, Ki = 0.00, Kd = 0.01; error = 19899827.279521
+Kp = 0.05, Ki = 0.00, Kd = 0.01; error = 2592991.600133
+Kp = 0.00, Ki = 0.00, Kd = 0.02; error = 78.125510
+Kp = 0.01, Ki = 0.00, Kd = 0.02; error = 521246.682421
+Kp = 0.02, Ki = 0.00, Kd = 0.02; error = 19878961.410620
+Kp = 0.03, Ki = 0.00, Kd = 0.02; error = 1536047.670844
+Kp = 0.04, Ki = 0.00, Kd = 0.02; error = 19899827.279521
+Kp = 0.05, Ki = 0.00, Kd = 0.02; error = 2592991.600133
+Kp = 0.00, Ki = 0.00, Kd = 0.03; error = 895.290368
+Kp = 0.01, Ki = 0.00, Kd = 0.03; error = 521246.682421
+Kp = 0.02, Ki = 0.00, Kd = 0.03; error = 19878961.410620
+Kp = 0.03, Ki = 0.00, Kd = 0.03; error = 1536047.670844
+Kp = 0.04, Ki = 0.00, Kd = 0.03; error = 19899827.279521
+Kp = 0.05, Ki = 0.00, Kd = 0.03; error = 2592991.600133
+Kp = 0.00, Ki = 0.00, Kd = 0.04; error = 923.731463
+Kp = 0.01, Ki = 0.00, Kd = 0.04; error = 521246.682421
+Kp = 0.02, Ki = 0.00, Kd = 0.04; error = 19878961.410620
+Kp = 0.03, Ki = 0.00, Kd = 0.04; error = 1536047.670844
+Kp = 0.04, Ki = 0.00, Kd = 0.04; error = 19899827.279521
+Kp = 0.05, Ki = 0.00, Kd = 0.04; error = 2592991.600133
+Kp = 0.00, Ki = 0.00, Kd = 0.05; error = 968.338595
+Kp = 0.01, Ki = 0.00, Kd = 0.05; error = 521246.682421
+Kp = 0.02, Ki = 0.00, Kd = 0.05; error = 19878961.410620
+Kp = 0.03, Ki = 0.00, Kd = 0.05; error = 1536047.670844
+Kp = 0.04, Ki = 0.00, Kd = 0.05; error = 19899827.279521
+Kp = 0.05, Ki = 0.00, Kd = 0.05; error = 2592991.600133
+Kp = 0.00, Ki = 0.00, Kd = 0.06; error = 1970.011114
+Kp = 0.01, Ki = 0.00, Kd = 0.06; error = 521246.682421
+Kp = 0.02, Ki = 0.00, Kd = 0.06; error = 19878961.410620
+Kp = 0.03, Ki = 0.00, Kd = 0.06; error = 1536047.670844
+Kp = 0.04, Ki = 0.00, Kd = 0.06; error = 19899827.279521
+Kp = 0.05, Ki = 0.00, Kd = 0.06; error = 2592991.600133
+Kp = 0.00, Ki = 0.00, Kd = 0.00; error = 0.000000
+Kp = -0.01, Ki = 0.00, Kd = 0.00; error = -3632412.214925
+Kp = -0.02, Ki = 0.00, Kd = 0.00; error = -5283996.797661
+Kp = -0.03, Ki = 0.00, Kd = 0.00; error = -12669465.439612
+Kp = -0.04, Ki = 0.00, Kd = 0.00; error = -68134397.031757
+Kp = -0.05, Ki = 0.00, Kd = 0.00; error = -15684319.104322
+Kp = 0.00, Ki = 0.00, Kd = -0.01; error = 2801.830827
+Kp = -0.01, Ki = 0.00, Kd = -0.01; error = -3632412.214925
+Kp = -0.02, Ki = 0.00, Kd = -0.01; error = -5283996.797661
+Kp = -0.03, Ki = 0.00, Kd = -0.01; error = -12669465.439612
+Kp = -0.04, Ki = 0.00, Kd = -0.01; error = -68134397.031757
+Kp = -0.05, Ki = 0.00, Kd = -0.01; error = -15684319.104322
+Kp = 0.00, Ki = 0.00, Kd = -0.02; error = 1353.594675
+Kp = -0.01, Ki = 0.00, Kd = -0.02; error = -3632412.214925
+Kp = -0.02, Ki = 0.00, Kd = -0.02; error = -5283996.797661
+Kp = -0.03, Ki = 0.00, Kd = -0.02; error = -12669465.439612
+Kp = -0.04, Ki = 0.00, Kd = -0.02; error = -68134397.031757
+Kp = -0.05, Ki = 0.00, Kd = -0.02; error = -15684319.104322
+Kp = 0.00, Ki = 0.00, Kd = -0.03; error = 1386.373028
+Kp = -0.01, Ki = 0.00, Kd = -0.03; error = -3632412.214925
+Kp = -0.02, Ki = 0.00, Kd = -0.03; error = -5283996.797661
+Kp = -0.03, Ki = 0.00, Kd = -0.03; error = -12669465.439612
+Kp = -0.04, Ki = 0.00, Kd = -0.03; error = -68134397.031757
+Kp = -0.05, Ki = 0.00, Kd = -0.03; error = -15684319.104322
+Kp = 0.00, Ki = 0.00, Kd = -0.04; error = 1393.040531
+Kp = -0.01, Ki = 0.00, Kd = -0.04; error = -3632412.214925
+Kp = -0.02, Ki = 0.00, Kd = -0.04; error = -5283996.797661
+Kp = -0.03, Ki = 0.00, Kd = -0.04; error = -12669465.439612
+Kp = -0.04, Ki = 0.00, Kd = -0.04; error = -68134397.031757
+Kp = -0.05, Ki = 0.00, Kd = -0.04; error = -15684319.104322
+Kp = 0.00, Ki = 0.00, Kd = -0.05; error = 1208.636448
+Kp = -0.01, Ki = 0.00, Kd = -0.05; error = -3632412.214925
+Kp = -0.02, Ki = 0.00, Kd = -0.05; error = -5283996.797661
+Kp = -0.03, Ki = 0.00, Kd = -0.05; error = -12669465.439612
+Kp = -0.04, Ki = 0.00, Kd = -0.05; error = -68134397.031757
+Kp = -0.05, Ki = 0.00, Kd = -0.05; error = -15684319.104322
+Kp = 0.00, Ki = 0.00, Kd = -0.06; error = 1361.067488
+Kp = -0.01, Ki = 0.00, Kd = -0.06; error = -3632412.214925
+Kp = -0.02, Ki = 0.00, Kd = -0.06; error = -5283996.797661
+Kp = -0.03, Ki = 0.00, Kd = -0.06; error = -12669465.439612
+Kp = -0.04, Ki = 0.00, Kd = -0.06; error = -68134397.031757
+Kp = -0.05, Ki = 0.00, Kd = -0.06; error = -15684319.104322
+Kp = 0.00, Ki = 0.00, Kd = -0.07; error = 2982.285940
+Kp = -0.01, Ki = 0.00, Kd = -0.07; error = -3632412.214925
+Kp = -0.02, Ki = 0.00, Kd = -0.07; error = -5283996.797661
+Kp = -0.03, Ki = 0.00, Kd = -0.07; error = -12669465.439612
+Kp = -0.04, Ki = 0.00, Kd = -0.07; error = -68134397.031757
+Kp = -0.05, Ki = 0.00, Kd = -0.07; error = -15684319.104322
+Kp = 0.00, Ki = 0.00, Kd = -0.08; error = 3372.680247
+Kp = -0.01, Ki = 0.00, Kd = -0.08; error = -3632412.214925
+Kp = -0.02, Ki = 0.00, Kd = -0.08; error = -5283996.797661
+Kp = -0.03, Ki = 0.00, Kd = -0.08; error = -12669465.439612
+Kp = -0.04, Ki = 0.00, Kd = -0.08; error = -68134397.031757
+Kp = -0.05, Ki = 0.00, Kd = -0.08; error = -15684319.104322
+Kp = 0.00, Ki = 0.00, Kd = -0.09; error = 1192.859499
+Kp = -0.01, Ki = 0.00, Kd = -0.09; error = -3632412.214925
+Kp = -0.02, Ki = 0.00, Kd = -0.09; error = -5283996.797661
+Kp = -0.03, Ki = 0.00, Kd = -0.09; error = -12669465.439612
+Kp = -0.04, Ki = 0.00, Kd = -0.09; error = -68134397.031757
+Kp = -0.05, Ki = 0.00, Kd = -0.09; error = -15684319.104322
+Kp = 0.00, Ki = 0.00, Kd = -0.10; error = 855.441580
+Kp = -0.01, Ki = 0.00, Kd = -0.10; error = -3632412.214925
+Kp = -0.02, Ki = 0.00, Kd = -0.10; error = -5283996.797661
+Kp = -0.03, Ki = 0.00, Kd = -0.10; error = -12669465.439612
+Kp = -0.04, Ki = 0.00, Kd = -0.10; error = -68134397.031757
+Kp = -0.05, Ki = 0.00, Kd = -0.10; error = -15684319.104322
+Kp = 0.00, Ki = 0.00, Kd = -0.11; error = 5438.198058
+Kp = 0.00, Ki = 0.00, Kd = 0.00; error = 0.000000
+Kp = -0.01, Ki = 0.00, Kd = 0.00; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = 0.00; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = 0.00; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = 0.00; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = 0.00; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.01; error = 41821.503914
+Kp = -0.01, Ki = 0.00, Kd = -0.01; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.01; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.01; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.01; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.01; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.02; error = 6261.038393
+Kp = -0.01, Ki = 0.00, Kd = -0.02; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.02; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.02; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.02; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.02; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.03; error = 6281.786901
+Kp = -0.01, Ki = 0.00, Kd = -0.03; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.03; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.03; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.03; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.03; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.04; error = 6345.937728
+Kp = -0.01, Ki = 0.00, Kd = -0.04; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.04; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.04; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.04; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.04; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.05; error = 24372.219681
+Kp = -0.01, Ki = 0.00, Kd = -0.05; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.05; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.05; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.05; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.05; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.06; error = 5981.973341
+Kp = -0.01, Ki = 0.00, Kd = -0.06; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.06; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.06; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.06; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.06; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.07; error = 40883.300688
+Kp = -0.01, Ki = 0.00, Kd = -0.07; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.07; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.07; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.07; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.07; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.08; error = 40623.936850
+Kp = -0.01, Ki = 0.00, Kd = -0.08; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.08; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.08; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.08; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.08; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.09; error = 70367.784477
+Kp = -0.01, Ki = 0.00, Kd = -0.09; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.09; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.09; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.09; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.09; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.10; error = 7954.321062
+Kp = -0.01, Ki = 0.00, Kd = -0.10; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.10; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.10; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.10; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.10; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.11; error = 162815.783067
+Kp = -0.01, Ki = 0.00, Kd = -0.11; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.11; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.11; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.11; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.11; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.12; error = 117272.814343
+Kp = -0.01, Ki = 0.00, Kd = -0.12; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.12; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.12; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.12; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.12; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.13; error = 243912.057178
+Kp = -0.01, Ki = 0.00, Kd = -0.13; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.13; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.13; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.13; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.13; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.14; error = 64071.600339
+Kp = -0.01, Ki = 0.00, Kd = -0.14; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.14; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.14; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.14; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.14; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.15; error = 70653.622270
+Kp = -0.01, Ki = 0.00, Kd = -0.15; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.15; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.15; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.15; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.15; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.16; error = 131938.901493
+Kp = -0.01, Ki = 0.00, Kd = -0.16; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.16; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.16; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.16; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.16; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.17; error = 18802.771767
+Kp = -0.01, Ki = 0.00, Kd = -0.17; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.17; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.17; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.17; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.17; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.18; error = 37178.407416
+Kp = -0.01, Ki = 0.00, Kd = -0.18; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.18; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.18; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.18; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.18; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.19; error = 37014.195181
+Kp = -0.01, Ki = 0.00, Kd = -0.19; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.19; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.19; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.19; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.19; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.20; error = 155265.980690
+Kp = -0.01, Ki = 0.00, Kd = -0.20; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.20; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.20; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.20; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.20; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.21; error = 38141.853923
+Kp = -0.01, Ki = 0.00, Kd = -0.21; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.21; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.21; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.21; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.21; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.22; error = 39840.624816
+Kp = -0.01, Ki = 0.00, Kd = -0.22; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.22; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.22; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.22; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.22; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.23; error = 36088.393835
+Kp = -0.01, Ki = 0.00, Kd = -0.23; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.23; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.23; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.23; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.23; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.24; error = 36386.867056
+Kp = -0.01, Ki = 0.00, Kd = -0.24; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.24; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.24; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.24; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.24; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.25; error = 42690.793996
+Kp = -0.01, Ki = 0.00, Kd = -0.25; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.25; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.25; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.25; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.25; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.26; error = 35591.837069
+Kp = -0.01, Ki = 0.00, Kd = -0.26; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.26; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.26; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.26; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.26; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.27; error = 42656.304692
+Kp = -0.01, Ki = 0.00, Kd = -0.27; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.27; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.27; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.27; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.27; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.28; error = 40351.416367
+Kp = -0.01, Ki = 0.00, Kd = -0.28; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.28; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.28; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.28; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.28; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.29; error = 38109.632581
+Kp = -0.01, Ki = 0.00, Kd = -0.29; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.29; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.29; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.29; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.29; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.30; error = 41797.675911
+Kp = -0.01, Ki = 0.00, Kd = -0.30; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.30; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.30; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.30; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.30; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.31; error = 41469.169614
+Kp = -0.01, Ki = 0.00, Kd = -0.31; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.31; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.31; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.31; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.31; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.32; error = 38722.999008
+Kp = -0.01, Ki = 0.00, Kd = -0.32; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.32; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.32; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.32; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.32; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.33; error = 41099.723917
+Kp = -0.01, Ki = 0.00, Kd = -0.33; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.33; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.33; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.33; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.33; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.34; error = 39596.454241
+Kp = -0.01, Ki = 0.00, Kd = -0.34; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.34; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.34; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.34; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.34; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.35; error = 36459.409294
+Kp = -0.01, Ki = 0.00, Kd = -0.35; error = -21204041.211272
+Kp = -0.02, Ki = 0.00, Kd = -0.35; error = -274978510.398309
+Kp = -0.03, Ki = 0.00, Kd = -0.35; error = -64785659.072681
+Kp = -0.04, Ki = 0.00, Kd = -0.35; error = -275891290.425072
+Kp = -0.05, Ki = 0.00, Kd = -0.35; error = -112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.36; error = 116433.755597
+Kp = -0.01, Ki = 0.00, Kd = -0.36; error = -21204041.211272

+ 120 - 0
examples/AGV/tuning7.log

@@ -0,0 +1,120 @@
+Kp = 0.00, Ki = 0.00, Kd = 0.00; error = 0.000000
+Kp = 0.01, Ki = 0.00, Kd = 0.00; error = 21204041.211272
+Kp = 0.02, Ki = 0.00, Kd = 0.00; error = 274978510.398309
+Kp = 0.03, Ki = 0.00, Kd = 0.00; error = 64785659.072681
+Kp = 0.04, Ki = 0.00, Kd = 0.00; error = 275891290.425072
+Kp = 0.05, Ki = 0.00, Kd = 0.00; error = 112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.01; error = 41821.503914
+Kp = 0.01, Ki = 0.00, Kd = -0.01; error = 21204041.211272
+Kp = 0.02, Ki = 0.00, Kd = -0.01; error = 274978510.398309
+Kp = 0.03, Ki = 0.00, Kd = -0.01; error = 64785659.072681
+Kp = 0.04, Ki = 0.00, Kd = -0.01; error = 275891290.425072
+Kp = 0.05, Ki = 0.00, Kd = -0.01; error = 112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.02; error = 6261.038393
+Kp = 0.01, Ki = 0.00, Kd = -0.02; error = 21204041.211272
+Kp = 0.02, Ki = 0.00, Kd = -0.02; error = 274978510.398309
+Kp = 0.03, Ki = 0.00, Kd = -0.02; error = 64785659.072681
+Kp = 0.04, Ki = 0.00, Kd = -0.02; error = 275891290.425072
+Kp = 0.05, Ki = 0.00, Kd = -0.02; error = 112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.03; error = 6281.786901
+Kp = 0.01, Ki = 0.00, Kd = -0.03; error = 21204041.211272
+Kp = 0.02, Ki = 0.00, Kd = -0.03; error = 274978510.398309
+Kp = 0.03, Ki = 0.00, Kd = -0.03; error = 64785659.072681
+Kp = 0.04, Ki = 0.00, Kd = -0.03; error = 275891290.425072
+Kp = 0.05, Ki = 0.00, Kd = -0.03; error = 112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.04; error = 6345.937728
+Kp = 0.01, Ki = 0.00, Kd = -0.04; error = 21204041.211272
+Kp = 0.02, Ki = 0.00, Kd = -0.04; error = 274978510.398309
+Kp = 0.03, Ki = 0.00, Kd = -0.04; error = 64785659.072681
+Kp = 0.04, Ki = 0.00, Kd = -0.04; error = 275891290.425072
+Kp = 0.05, Ki = 0.00, Kd = -0.04; error = 112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.05; error = 24372.219681
+Kp = 0.01, Ki = 0.00, Kd = -0.05; error = 21204041.211272
+Kp = 0.02, Ki = 0.00, Kd = -0.05; error = 274978510.398309
+Kp = 0.03, Ki = 0.00, Kd = -0.05; error = 64785659.072681
+Kp = 0.04, Ki = 0.00, Kd = -0.05; error = 275891290.425072
+Kp = 0.05, Ki = 0.00, Kd = -0.05; error = 112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.06; error = 5981.973341
+Kp = 0.01, Ki = 0.00, Kd = -0.06; error = 21204041.211272
+Kp = 0.02, Ki = 0.00, Kd = -0.06; error = 274978510.398309
+Kp = 0.03, Ki = 0.00, Kd = -0.06; error = 64785659.072681
+Kp = 0.04, Ki = 0.00, Kd = -0.06; error = 275891290.425072
+Kp = 0.05, Ki = 0.00, Kd = -0.06; error = 112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.07; error = 40883.300688
+Kp = 0.01, Ki = 0.00, Kd = -0.07; error = 21204041.211272
+Kp = 0.02, Ki = 0.00, Kd = -0.07; error = 274978510.398309
+Kp = 0.03, Ki = 0.00, Kd = -0.07; error = 64785659.072681
+Kp = 0.04, Ki = 0.00, Kd = -0.07; error = 275891290.425072
+Kp = 0.05, Ki = 0.00, Kd = -0.07; error = 112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.08; error = 40623.936850
+Kp = 0.01, Ki = 0.00, Kd = -0.08; error = 21204041.211272
+Kp = 0.02, Ki = 0.00, Kd = -0.08; error = 274978510.398309
+Kp = 0.03, Ki = 0.00, Kd = -0.08; error = 64785659.072681
+Kp = 0.04, Ki = 0.00, Kd = -0.08; error = 275891290.425072
+Kp = 0.05, Ki = 0.00, Kd = -0.08; error = 112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.09; error = 70367.784477
+Kp = 0.01, Ki = 0.00, Kd = -0.09; error = 21204041.211272
+Kp = 0.02, Ki = 0.00, Kd = -0.09; error = 274978510.398309
+Kp = 0.03, Ki = 0.00, Kd = -0.09; error = 64785659.072681
+Kp = 0.04, Ki = 0.00, Kd = -0.09; error = 275891290.425072
+Kp = 0.05, Ki = 0.00, Kd = -0.09; error = 112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.10; error = 7954.321062
+Kp = 0.01, Ki = 0.00, Kd = -0.10; error = 21204041.211272
+Kp = 0.02, Ki = 0.00, Kd = -0.10; error = 274978510.398309
+Kp = 0.03, Ki = 0.00, Kd = -0.10; error = 64785659.072681
+Kp = 0.04, Ki = 0.00, Kd = -0.10; error = 275891290.425072
+Kp = 0.05, Ki = 0.00, Kd = -0.10; error = 112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.11; error = 162815.783067
+Kp = 0.01, Ki = 0.00, Kd = -0.11; error = 21204041.211272
+Kp = 0.02, Ki = 0.00, Kd = -0.11; error = 274978510.398309
+Kp = 0.03, Ki = 0.00, Kd = -0.11; error = 64785659.072681
+Kp = 0.04, Ki = 0.00, Kd = -0.11; error = 275891290.425072
+Kp = 0.05, Ki = 0.00, Kd = -0.11; error = 112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.12; error = 117272.814343
+Kp = 0.01, Ki = 0.00, Kd = -0.12; error = 21204041.211272
+Kp = 0.02, Ki = 0.00, Kd = -0.12; error = 274978510.398309
+Kp = 0.03, Ki = 0.00, Kd = -0.12; error = 64785659.072681
+Kp = 0.04, Ki = 0.00, Kd = -0.12; error = 275891290.425072
+Kp = 0.05, Ki = 0.00, Kd = -0.12; error = 112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.13; error = 243912.057178
+Kp = 0.01, Ki = 0.00, Kd = -0.13; error = 21204041.211272
+Kp = 0.02, Ki = 0.00, Kd = -0.13; error = 274978510.398309
+Kp = 0.03, Ki = 0.00, Kd = -0.13; error = 64785659.072681
+Kp = 0.04, Ki = 0.00, Kd = -0.13; error = 275891290.425072
+Kp = 0.05, Ki = 0.00, Kd = -0.13; error = 112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.14; error = 64071.600339
+Kp = 0.01, Ki = 0.00, Kd = -0.14; error = 21204041.211272
+Kp = 0.02, Ki = 0.00, Kd = -0.14; error = 274978510.398309
+Kp = 0.03, Ki = 0.00, Kd = -0.14; error = 64785659.072681
+Kp = 0.04, Ki = 0.00, Kd = -0.14; error = 275891290.425072
+Kp = 0.05, Ki = 0.00, Kd = -0.14; error = 112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.15; error = 70653.622270
+Kp = 0.01, Ki = 0.00, Kd = -0.15; error = 21204041.211272
+Kp = 0.02, Ki = 0.00, Kd = -0.15; error = 274978510.398309
+Kp = 0.03, Ki = 0.00, Kd = -0.15; error = 64785659.072681
+Kp = 0.04, Ki = 0.00, Kd = -0.15; error = 275891290.425072
+Kp = 0.05, Ki = 0.00, Kd = -0.15; error = 112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.16; error = 131938.901493
+Kp = 0.01, Ki = 0.00, Kd = -0.16; error = 21204041.211272
+Kp = 0.02, Ki = 0.00, Kd = -0.16; error = 274978510.398309
+Kp = 0.03, Ki = 0.00, Kd = -0.16; error = 64785659.072681
+Kp = 0.04, Ki = 0.00, Kd = -0.16; error = 275891290.425072
+Kp = 0.05, Ki = 0.00, Kd = -0.16; error = 112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.17; error = 18802.771767
+Kp = 0.01, Ki = 0.00, Kd = -0.17; error = 21204041.211272
+Kp = 0.02, Ki = 0.00, Kd = -0.17; error = 274978510.398309
+Kp = 0.03, Ki = 0.00, Kd = -0.17; error = 64785659.072681
+Kp = 0.04, Ki = 0.00, Kd = -0.17; error = 275891290.425072
+Kp = 0.05, Ki = 0.00, Kd = -0.17; error = 112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.18; error = 37178.407416
+Kp = 0.01, Ki = 0.00, Kd = -0.18; error = 21204041.211272
+Kp = 0.02, Ki = 0.00, Kd = -0.18; error = 274978510.398309
+Kp = 0.03, Ki = 0.00, Kd = -0.18; error = 64785659.072681
+Kp = 0.04, Ki = 0.00, Kd = -0.18; error = 275891290.425072
+Kp = 0.05, Ki = 0.00, Kd = -0.18; error = 112193245.988489
+Kp = 0.00, Ki = 0.00, Kd = -0.19; error = 37014.195181
+Kp = 0.01, Ki = 0.00, Kd = -0.19; error = 21204041.211272
+Kp = 0.02, Ki = 0.00, Kd = -0.19; error = 274978510.398309
+Kp = 0.03, Ki = 0.00, Kd = -0.19; error = 64785659.072681
+Kp = 0.04, Ki = 0.00, Kd = -0.19; error = 275891290.425072
+Kp = 0.05, Ki = 0.00, Kd = -0.19; error = 112193245.988489

+ 1 - 1
src/setup.py

@@ -11,5 +11,5 @@ setup(name="CBD",
 	      "Randy Paredis <Randy.Paredis@uantwerpen.be>"
       ]),
       url="http://msdl.cs.mcgill.ca/people/rparedis",
-      packages=['CBD', 'CBD.lib']
+      packages=['CBD', 'CBD.lib', 'CBD.realtime']
       )