ich programmiere ein Tool für die implementierung eines PID-Reglers in meine Strömungssimulationen.
Ich habe das simple-pid modul entdeckt, allerdings kann ich keine Reglereinstellungen finden um meinen Zielwert zu treffen.
Code: Alles auswählen
#!/usr/bin/python3.7
import sys
import pandas as pd
import numpy as np
import pickle
import matplotlib
import matplotlib.pyplot as plt
import pandas_bokeh
from bokeh.plotting import figure, output_file, show
from simple_pid import PID
def bspfunction(x):
y = -0,0478*x^2 + 0,0071*x + 0,0433
return y
setpoint=0.05
pid=PID(28,0,0,setpoint)
pid.sample_time = 0.000000001
start=0.4
v=bspfunction(start)
#write to file
outputfile = open('PID.csv','w')
outputfile.write('J,kQ\n'+str(0)+','+str(v)+' \n')
outputfile.close()
iterations=0
residual=1
while iterations<100:
#compute new output
control = pid(v)
#PID output
v=bspfunction(control)
iterations+=1
#write to file
outputfile = open('PID.csv','a')
outputfile.write(str(iterations)+','+str(v)+' \n')
outputfile.close()
print('iterations= '+str(iterations)+' Kq= '+str(v))
residual=abs(v-setpoint)
#if iterations%50000==0:
colorIndex=0
p = figure(toolbar_location="above",plot_width=800,title='PID',tools="hover,wheel_zoom,box_zoom,reset,save,pan")
p.toolbar.logo=None
p.xaxis.axis_label='J / -'
#p.xaxis.ticker.max_interval=10
p.yaxis.axis_label='kT,kTN,10KQ,eta0 / -'
p.xgrid.grid_line_color="grey"
p.xgrid.grid_line_width=1
p.ygrid.grid_line_color="grey"
p.ygrid.grid_line_width=1
#p.ygrid.minor_grid_line_color="grey"
#p.ygrid.minor_grid_line_width=0.1
#p.xgrid.minor_grid_line_color="grey"
#p.xgrid.minor_grid_line_width=0.1
df=pd.read_csv("PID.csv")
p.line(df['J'],df["kQ"],legend_label='kQ develop',color="navy",line_width=2,line_dash=str(colorIndex)+" "+str(colorIndex))
show(p)
print("pid controll finished")
Hat jemand eine Idee?
Viele Grüße