Algorithm AI:查找使总和{扭矩}=0的力(用于无人机机动) 有一个无人机,中间有一个“钩子”(黑色圆圈)。

Algorithm AI:查找使总和{扭矩}=0的力(用于无人机机动) 有一个无人机,中间有一个“钩子”(黑色圆圈)。,algorithm,artificial-intelligence,least-squares,Algorithm,Artificial Intelligence,Least Squares,下图显示了无人机的俯视图。 钩子使无人机无法移动,但无人机仍可以在空中旋转 每个方向 我知道无人机在每个轴上的惯性 在无人机上施加了许多力:-abcde。 (全部在z方向,可以是负数) 我可以控制一些力:abcd 我无法控制e,但我知道它的价值 每个力都会影响扭矩的总和,如扭矩=r x f, r已知所有力 我的目标 查找算法以计算abcd使和{torque}=0,同时最小化力的平方和(a^2+b^2+c^2+d^2) 只要近似就足够了,即返回结果不必是真正的最小值 在实际情况中,我可以控制

下图显示了无人机的俯视图。

  • 钩子使无人机无法移动,但无人机仍可以在空中旋转 每个方向

  • 我知道无人机在每个轴上的惯性

  • 在无人机上施加了许多力:-
    a
    b
    c
    d
    e
    。 (全部在z方向,可以是负数)

  • 我可以控制一些力:
    a
    b
    c
    d

  • 我无法控制
    e
    ,但我知道它的价值

  • 每个力都会影响扭矩的总和,如
    扭矩=r x f

    r
    已知所有力

我的目标 查找算法以计算
a
b
c
d
使
和{torque}=0
,同时最小化力的平方和(
a^2+b^2+c^2+d^2

只要近似就足够了,即返回结果不必是真正的最小值

在实际情况中,我可以控制4种以上的力。
该算法将用于游戏中的无人机自动机动系统

我的尝试 我可以把方程分成三个轴:-

torqueX = k1*a + k2*b + k3*c + k4*d + k5 *e = 0             ....(1)
torqueY = k6*a + k7*b + k8*c + k9*d + k10*e = 0             ....(2)
torqueZ = k11*a + k12*b + k13*c + k14*d + k15*e = 0         ....(3) 
所有
k
的值都是已知的。
我还有一个目标函数

minimize(a^2+b^2+c^2+d^2)                                   ....(4) 
在谷歌搜索之后,我发现这是线性约束最小二乘问题,并找到了一种使用矩阵表示法找到精确解的方法。([Ref1]至[Ref3])

我对这类问题很陌生,但略读一下之后,我觉得这种方法需要逆矩阵计算

我认为应该避免逆矩阵的计算,因为除法器接近0时存在风险

因此,我倾向于逐渐调整力
a
b
c
d

问题
  • 这个问题应该通过“迭代”方法来解决吗
  • 如果我坚持,如何使用“迭代”方法解决它?
    我发现了[参考文献4],但对于这样一个简单的(?)问题来说,这似乎很难,太难了
参考 [参考文献1](幻灯片3)
[参考文献2](幻灯片5)
[参考文献3]

[Ref4]

您还可以迭代优化逆矩阵,搜索排名1更新(例如),或使用@BeyelerStudios漂亮的主意!我忘记了这种技术的存在。感谢您提供了有用的链接和一本好的数学书。您还可以迭代优化您的逆矩阵,搜索秩1更新(例如),或使用@BeyelerStudios好主意!我忘记了这种技术的存在。感谢您提供的有用链接和一本好的数学书。