我试图在Python上构建一个PID控制器。下面是到目前为止我的实现。虽然语法是连贯的,但这仍然是伪代码
def PID(self, Kp, Ki, Kd, reference_velocity, vehicle_velocity, current_time, last_update_time):
desired_velocity = 0
Kp = 0
Ki = 0
Kd = 0
error = reference_velocity - vehicle_velocity
delta_time = current_time - last_update_time
proportional = Kp * error
integral = Ki * error
derivative = Kd * ((error - last_error) / (delta_time))
desired_velocity = proportional + integral + derivative
return desired_velocity
我试图通过我在这里已经给出的内容来理解last_error
,但我无法理解
将错误或最后一个错误存储在函数外部作用域的容器中
然后,在函数中,可以使用检索最后一个错误
或者,您可以使控制器成为一个类,其实例由常量和起始参数初始化,并保留过去错误的记录(类似列表的容器)。电流/next输出控制信号的计算将是一种可使用电流参数值调用的方法
使用你的算法——类似这样的
用法:
结果
相关问题 更多 >
编程相关推荐