PID算法模拟实现(含python代码) | 您所在的位置:网站首页 › pid调节参数设置怎么用EXCL绘制出来 › PID算法模拟实现(含python代码) |
PID算法原理
PID控制算法是一种经典的反馈控制算法,用于调节控制系统的输出,使其达到预定的目标值。 P:比例项,与当前误差成正比(y = kx) I:积分项,与误差随时间的累积成正比 D:微分项,与误差的变化率成正比 PID算法控制系统的输出则为: 控制输出 = Kp⋅当前误差 + Ki⋅误差积分 + Kd⋅误差微分 其中, 误差积分 = 积分项 + 误差⋅采样时间 误差微分 = (误差 - 上一次误差)/ 采样时间 由于,计算机处理的为离散信号,所以采样时间在下例中设置为1. PID算法实现步骤:PID控制算法通常通过以下步骤来实现: 测量过程变量: 首先,需要测量系统的当前状态,即实际值。这通常由传感器完成。 1.计算误差: 将目标值与实际值相比较,计算误差(差值)。 2.计算PID控制输出: 使用PID算法计算控制输出,如上述公式所示。 3.应用控制输出: 将计算得到的PID控制输出应用于控制系统,例如,通过调整阀门、电机或其他执行器的位置或电压,以实现系统的控制。 4.迭代调整: 在每个控制周期中,不断重复上述步骤,以根据实际情况调整PID参数,以使系统更好地满足性能要求。 代码演示 import matplotlib.pyplot as plt integral = 0.0 previous_error = 0.0 def simulate_pid(current, target): Kp = 1.0 Ki = 0.1 Kd = 0.02 error = target - current # 声明要修改全局变量 global integral, previous_error # 更新积分项 integral = integral + error # 更新微分项 derivative = error - previous_error # 计算输出 control_output = Kp * error + Ki * integral + Kd * derivative previous_error = error current += control_output return current if __name__ == "__main__": temperature_list = [10.0] current_temperature = 10.0 for step in range(200): current_temperature = simulate_pid(current_temperature, 50.0) temperature_list.append(current_temperature) print(temperature_list) time_list = [i for i in range(201)] # 使用Matplotlib创建折线图,画图 plt.plot(time_list, temperature_list, linestyle='-', color='b', linewidth=1) # 'o'表示添加圆点标记,'-'表示线段,'b'表示蓝色线条 plt.xlabel('time') # 设置X轴标签 plt.ylabel('temperature') # 设置Y轴标签 plt.title('output') # 设置图表标题 # 显示折线图 plt.show()
|
CopyRight 2018-2019 实验室设备网 版权所有 |