# P控制器误差不趋近零

> 原文链接：https://robotics.hellobike.com/pitfalls/2018-07-12-robotics-se-4793
> 频道：pitfalls | 更新日期：2018-07-12 | 标签：auto, stackexchange, control, dynamics, manipulator
> 核心摘要：单臂关节仅用比例力矩时会与重力在非零误差处平衡，需加入积分项补偿重力。

# P控制器误差不趋近零

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Proportional controller error doesn't approach zero](https://robotics.stackexchange.com/questions/4793/proportional-controller-error-doesnt-approach-zero)（Robotics Stack Exchange #4793）

**状态**：已解决

## 问题

在 Matlab 中用 `ode45` 仿真单臂动力学，采用 `tau = -K_p(theta - theta_d)` 的 P 控制后，误差 `e = theta - pi/2` 随时间不趋近零。

## 环境

Matlab；`ode45`；单臂动力学；`m=2`、`d=0.001`、`L=1`、`I=0.0023`、`g=9.81`。

## 解决办法

1. 不要只使用比例力控制，因为比例力会与重力在某个非零误差处达到平衡。
2. 在控制器中加入积分力项，使其随时间增长以抵消手臂质量造成的恒定重力影响。

原问题作者：CroCo；采纳答案作者：Ian。原内容依 CC BY-SA 4.0 授权，本页摘要同样依 CC BY-SA 4.0 授权。
:::

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #4793：Proportional controller error doesn't approach zero](https://robotics.stackexchange.com/questions/4793/proportional-controller-error-doesnt-approach-zero)