Python实现输入PID参数绘制波形
2024.01.17 14:19浏览量:7简介:介绍如何使用Python绘制PID控制器的波形图,并通过输入PID参数进行实时控制。
千帆应用开发平台“智能体Pro”全新上线 限时免费体验
面向慢思考场景,支持低代码配置的方式创建“智能体Pro”应用
立即体验
import matplotlib.pyplot as plt
import numpy as np
class PIDController:
def __init__(self, kp, ki, kd):
self.kp = kp
self.ki = ki
self.kd = kd
self.previous_error = 0
self.integral = 0
def update(self, setpoint, measured_value):
error = setpoint - measured_value
self.integral += error
derivative = (error - self.previous_error) / 0.01 # 假设采样时间为0.01秒
output = self.kp * error + self.ki * self.integral + self.kd * derivative
self.previous_error = error
return output
# 初始化PID控制器
pid = PIDController(1.0, 0.5, 0.1)
# 生成模拟数据
time = np.arange(0, 10, 0.01) # 假设时间范围为0到10秒,采样间隔为0.01秒
setpoint = np.sin(time) # 设置目标值为正弦波
measurement = np.zeros_like(time) # 初始测量 值设为零
# 绘制波形图
plt.figure()
plt.plot(time, setpoint, label='Setpoint')
plt.plot(time, measurement, label='Measurement')
plt.legend()
plt.show()
# 模拟PID控制过程
for t in time:
measurement[t] = pid.update(setpoint[t], measurement[t]) + np.random.normal(0, 0.1) # 加入随机噪声模拟实际测量 值
plt.plot(t, measurement[t], 'o', ms=3) # 绘制当前时刻的测量 值
plt.pause(0.01) # 暂停0.01秒,模拟实时更新波形图

发表评论
登录后可评论,请前往 登录 或 注册