首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用PID控制器计算四边形力

用PID控制器计算四边形力
EN

Stack Overflow用户
提问于 2017-08-02 14:46:24
回答 1查看 156关注 0票数 0

我对PID控制器和四边形很陌生,我正试图为一个四轴飞行器编写一个非常简单的(但现实的)仿真。我不是想建造一个真正的四翼飞机控制器。

我大致了解PID是如何工作的,但我不太了解如何使用它们。我知道我至少需要三个PID,每个旋转轴一个,但我不确定这是否足够。

我的模拟以每秒60滴答的速度运行,每运行一次,PID就会更新,无人机也会被模拟。

案件1)

这个案子和无人机模拟没有直接关系,只是我想了解和感受一下PID。假设无人机位于世界坐标(0-600) (Y是上轴),我希望它在世界原点(0 0)水平,所以它需要向上加速。在这种情况下,让我们完全忽略转子,我可以神奇地直接向无人机施加力。无人机也是直立的,只能上下移动。

为了平稳地加速到原点,我假设我需要一个PID (让我们称之为PID0),并计算它的设置点为0(世界原点的y坐标),而过程变量是无人机的y坐标。然而,输出并不是一种力量。我可以直接以速度的形式应用输出,这很好,但这不是我想要的。我是否需要一个额外的PID (PID1),设定点为PID0的输出,过程变量为当前的无人机速度,以计算力?

这意味着我需要6个PID(除了3个旋转PID)才能在所有轴上运动?我觉得这不对。

如何从PID0的结果中计算出所需的力?

案件2)

在这种情况下,假设无人机有自由运动,无人机的线性和角速度是由转子升力和转子力矩决定的。假设无人机的角度为俯仰= 20,偏航= 0和滚动=0(正俯仰指向向下,意味着无人机在向前飞行),我希望它在俯仰= 0,偏航=0和滚=0的时候平平。

要旋转无人机,我需要增加前转子的RPM (和/或降低后转子的RPM )。

如果计算螺距轴的PID输出,设定值为0,过程变量为20,则得到另一个角度。我怎么用它来改变转子的动力?

我不需要任何这些问题的具体解决方案,我只是需要一些提示/一个正确的方向。

EN

回答 1

Stack Overflow用户

发布于 2017-08-02 19:41:36

我可能建议把加速度计作为你的传感器,然后用加速度作为PID的设定点。如果你把一个阵列围绕着你的飞机的周长--在你的无人机中心的每一个运动轴上--你会有一个很好的方法来使你的无人机水平和导航。旋转加速度计可用于轴向旋转。

然而..。

在场景1中,过程变量的导数,位置是速度。因此,如果你有一些可编程逻辑,可以近似于你的导数的导数相对于时间,你将有近似的速度。根据您的稳定性需要,一个简单的有限差分近似可能是有效的。

在场景2中,我可能建议对每个转子RPM使用一个单独的带有一个因变量的PID。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45464061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档