高级PID控制器
项目描述
moat-lib-pid
Python中的一种高级PID控制器。由于内置的一阶滤波器,微分项也可以在实际中使用。详细信息可以在此处找到。
使用非常简单
from moat.lib.pid import PID
# Create PID controller
pid = PID(Kp=2.0, Ki=0.1, Kd=1.0, Tf=0.05)
# Control loop
while True:
# Get current measurement from system
timestamp, measurement = system.get_measurement()
# Calculate control signal by using PID controller
reference = 1.0
control = pid(timestamp, reference - measurement)
# Feed control signal to system
system.set_input(control)
此模块由Erkan Adali的advanced-pid模块供应商化。
完整的API文档可以在此处找到。
使用方法
advanced-pid的最大优点是微分项具有内置的一阶滤波器。
advanced-pid包包括一个玩具质量-弹簧-阻尼系统模型进行测试
from moat.lib.pid import PID
from examples.mass_spring_damper import MassSpringDamper
from matplotlib import pyplot as plt
from numpy import diff
# Create a mass-spring-damper system model
system = MassSpringDamper(mass=1.0, spring_const=1.0, damping_const=0.2)
system.set_initial_value(initial_position=1.0, initial_velocity=0.0)
# Create PID controller
pid = PID(Kp=1.0, Ki=0.0, Kd=2.0, Tf=0.5)
# Control loop
time, meas, cont = [], [], []
for i in range(800):
# Get current measurement from system
timestamp, measurement = system.get_measurement()
# Calculate control signal by using PID controller
control = pid(timestamp, -measurement)
# Feed control signal to system
system.set_input(control)
# Record for plotting
time.append(timestamp)
meas.append(measurement)
cont.append(control)
# Plot result
fig, (ax1, ax2, ax3) = plt.subplots(3, 1)
fig.suptitle('Mass-Spring-Damper system')
ax1.set_ylabel('Measured Position [m]')
ax1.plot(time, meas, 'b')
ax1.grid()
ax2.set_ylabel('Force [N]')
ax2.plot(time, cont, 'g')
ax2.grid()
ax3.set_xlabel('Time [s]')
ax3.set_ylabel('Derivative Term')
ax3.plot(time[1:], diff(meas)/diff(time), 'r')
ax3.grid()
plt.show()
如图所示,没有滤波器就无法使用微分项
安装
要安装,运行
pip3 install moat-lib-pid
测试
要运行测试,运行
pytest tests
许可证
许可协议为MIT许可证。
项目详情
下载文件
下载适合您平台的应用程序。如果您不确定选择哪一个,请了解有关安装包的更多信息。
源代码分发
moat-lib-pid-0.6.1.tar.gz (71.2 kB 查看哈希值)
构建分发版
moat_lib_pid-0.6.1-py3-none-any.whl (5.5 kB 查看哈希值)
关闭
moat-lib-pid-0.6.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2b66c776bfd9050160efa3b46c63fb6e3103fc006bc4a66f155a0017ed2f9b4c |
|
MD5 | d83cfb04fc89f4f56cfb1e7e7db8be76 |
|
BLAKE2b-256 | 00c6356da31331d7aa596c2d93d59213693521deb987f060e99aebcf46889023 |
关闭
moat_lib_pid-0.6.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3723541e53f8d607d932bf3b46e2338d0c4e7d9c2f7ceb4d7c3e8924fc8f5b05 |
|
MD5 | 361e0ad68feb00e8e3a71bb502548821 |
|
BLAKE2b-256 | bccea1f67c392ed1d38a652e7db5f06a4b4e387752cc51bfcb1ff46bfacf900b |