target_yaw = 30
error_threshold = 2
current_yaw = 0
Kp = 0.5
Ki = 0.1
Kd = 0.2
integral = 0
previous_error = 0
dt = 0.1
while True:
error = target_yaw - current_yaw
if abs(error) <= error_threshold:
print("达到目标偏航角,控制完成!")
break
P = Kp * error
integral += error * dt
I = Ki * integral
derivative = (error - previous_error) / dt
D = Kd * derivative
pid_output = P + I + D
control_voltage = pid_output
current_yaw += 0.5 * control_voltage * control_voltage * dt
previous_error = error