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)
Beispiel #3
0
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()
Beispiel #4
0
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()