Python 将PID控制器添加到odeint集成中
我有一个积分,我想通过添加一个p控制器来控制输入Python 将PID控制器添加到odeint集成中,python,scipy,integration,pid,odeint,Python,Scipy,Integration,Pid,Odeint,我有一个积分,我想通过添加一个p控制器来控制输入 import numpy as np import matplotlib.pyplot as plt from scipy.integrate import odeint xs = [] yd = [] def dY(y, x): a = 0.001 yin = 1 C = 0.01 N = 1 dC = C/N b1 = 0 y_diff = -np.copy(y) y_dif
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint
xs = []
yd = []
def dY(y, x):
a = 0.001
yin = 1
C = 0.01
N = 1
dC = C/N
b1 = 0
y_diff = -np.copy(y)
y_diff[0] += yin
y_diff[1:] += y[:-1]
xs.append(x)
yd.append(y_diff)
return (a/dC)*y_diff+b1*dC
x = np.linspace(0,20,1000)
y0 = np.zeros(4)
res = odeint(dY, y0, x)
plt.plot(x,res, '-')
plt.gca().set_prop_cycle(plt.rcParams['axes.prop_cycle'])
plt.plot(np.array(xs),np.array(yd), '-.')
plt.show()
y_in是一个变量,我想通过p/PI控制器控制它,以达到某个设定点。我以不同的方式看待它,但我真的不知道从哪里开始实现控制器
我熟悉PID控制器的概念和所有相关方程,但是在使用ODEINT的情况下,这对我来说是一件全新的事情
希望有人能帮我 “我熟悉PID控制器和所有相关方程的概念……”因此,当你在系统中添加一个控制器时,你会得到一个更大的微分方程系统。要使用
odeint
,您必须将整个系统(即“工厂”加控制器)编写为一个微分方程系统。@WarrenWeckesser以及如何将当前代码转换为一个微分方程系统,因为老实说,这样的实现对我来说完全是模糊的。