def TestPID(P, I, D): IncrementalPid = PID.IncrementalPID(P, I, D) PositionalPid = PID.PositionalPID(P, I, D) IncrementalXaxis = [0] IncrementalYaxis = [0] PositionalXaxis = [0] PositionalYaxis = [0] for i in range(1, 500): #增量式 IncrementalPid.SetStepSignal(100.2) IncrementalPid.SetInertiaTime(3, 0.1) IncrementalYaxis.append(IncrementalPid.SystemOutput) IncrementalXaxis.append(i) #位置式 PositionalPid.SetStepSignal(100.2) PositionalPid.SetInertiaTime(3, 0.1) PositionalYaxis.append(PositionalPid.SystemOutput) PositionalXaxis.append(i) plt.figure(1) # 选择图表1 plt.plot(IncrementalXaxis, IncrementalYaxis, 'r') plt.xlim(0, 120) plt.ylim(0, 140) plt.title("IncrementalPID") plt.figure(2) # 选择图表2 plt.plot(PositionalXaxis, PositionalYaxis, 'b') plt.xlim(0, 120) plt.ylim(0, 140) plt.title("PositionalPID") plt.show()
def main(): ser.flushOutput() ser.flushInput() Angle_Median = 3085 # 平衡时的角度读数 Position_Zero = 10000 Position_count = 0 Balance_circle = PID.IncrementalPID(50, 0, 244) Position_circle = PID.PositionPID(-25, 0, -600)
def TestPID(): Process = PID.IncrementalPID() ProcessXaxis = [0] ProcessYaxis = [0] X = [0] Y = [0] for i in range(1, 500): Process.SetStepSignal(10) # Process.SetInertiaTime(100, 50) ProcessXaxis.append(i) ProcessYaxis.append(Process.y) X.append(i) Y.append(Process.e) plt.figure(1) plt.plot(ProcessXaxis, ProcessYaxis, 'r') plt.xlim(0, 1000) plt.ylim(0, 50) plt.title("IncrementalPID") plt.show()
def TestPID(P, I, D): IncrementalPid = PID.IncrementalPID(P, I, D) PositionalPid = PID.PositionalPID(P, I, D) IncrementalXaxis = [0] IncrementalYaxis = [0] PositionalXaxis = [0] PositionalYaxis = [0] x = range(1, 500) y = [5 * math.sin(i * 0.1) + 10 for i in x] for i in x: # 增量式 IncrementalPid.SetStepSignal(y[i - 1]) IncrementalPid.SetInertiaTime(3, 0.1) IncrementalYaxis.append(IncrementalPid.SystemOutput) IncrementalXaxis.append(i) # 位置式 PositionalPid.SetStepSignal(y[i - 1]) PositionalPid.SetInertiaTime(3, 0.1) PositionalYaxis.append(PositionalPid.SystemOutput) PositionalXaxis.append(i) plt.figure(1) # 选择图表1 plt.plot(IncrementalXaxis, IncrementalYaxis, 'r', x, y) plt.xlim(0, 120) plt.ylim(0, 140) plt.title("IncrementalPID") plt.figure(2) # 选择图表2 plt.plot(PositionalXaxis, PositionalYaxis, 'b') plt.xlim(0, 120) plt.ylim(0, 140) plt.title("PositionalPID") plt.show()