从扭矩和距离中找出力

时间:2014-10-05 06:31:22

标签: physics distance

我有一个以扭矩W旋转的实体物体,我想计算施加在距离物体中心D单位的某个点上的力F.所有这些值都以Vector3格式(x,y,z)

表示

直到现在我知道W = D x F,其中x是叉积,所以通过扩展我得到:

Wx = Dy*Fz - Dz*Fy
Wy = Dz*Fx - Dx*Fz
Wz = Dx*Fy - Dy*Fx

所以我有这个等式,我需要找到(Fx,Fy,Fz),我正在考虑使用Simplex方法来解决它。 由于F向量也可以有负值,我将每个F变量分成2(F = G-H),所以新方程看起来像这样:

Wx = Dy*Gz - Dy*Hz - Dz*Gy + Dz*Hy
Wy = Dz*Gx - Dz*Hx - Dx*Gz + Dx*Hz
Wz = Dx*Gy - Dx*Hy - Dy*Gx + Dy*Hx

接下来,我定义了单纯形表(我们需要< =不等式,所以我复制每个方程并乘以-1。 此外,我将目标函数定义为:最小化(Gx - Hx + Gy - Hy + Gz - Hz)。

表格如下:

    Gx       Hx      Gy     Hy      Gz     Hz   <=   RHS
    ============================================================
    0        0      -Dz     Dz      Dy    -Dy   <=    Wx          = Gx
    0        0       Dz     -Dz     -Dy    Dy   <=    -Wx         = Hx

    Dz      -Dz      0      0       Dx    -Dx   <=    Wy          = Gy
   -Dz       Dz      0      0       -Dx    Dx   <=    -Wy         = Hy

   -Dy       Dy      Dx    -Dx      0      0    <=    Wz          = Gz
    Dy      -Dy     -Dx     Dx      0      0    <=    -Wz         = Hz
    ============================================================
    1        -1      1      -1      1     -1            0         = Z

问题在于,当我通过在线求解器运行它时,我得到了无界解决方案。 谁能指点我做错了什么?

提前致谢。

编辑:我确定我搞砸了某些地方的某些迹象(例如Z应该定义为最大值),但我确定在定义更重要的东西时我错了。

3 个答案:

答案 0 :(得分:5)

没有解决问题的唯一解决方案。你只能解决力的切向投影。这来自矢量(交叉)乘积的性质 - 对于共线矢量它是零,特别是对于矢量本身的矢量积。因此,如果 F W = r x F 的解决方案,那么 F&#39; = F + k r 也是任何k的解决方案:

r x F&#39; = r x( F + k r )= r x F + k( r x r )= r x F

因为 r x r 项通过矢量积的定义为零。因此,没有一个解决方案,而是整个线性空间的矢量是解决方案。

如果将解决方案限制为在 r 方向上投影为零的力,则可以简单地采用 W r <的向量积/强>:

W x r =( r x F )x r = - [ r x( r x F )] = - [( r F r - ( r r F ] = | r | 2 ˚F

第一个扩展项为零,因为 F r 上的投影为零(点表示标量(内部)乘积)。因此:

F =( W x r )/ | r | 2

如果还给出 F 的大小,即| F |,那么您可以计算径向分量(如果有的话),但仍有两种可能的解决方案径向分量在相反方向。

答案 1 :(得分:3)

快速肮脏的推导......

给定D和F,你得到W垂直于它们。这就是跨产品的作用。

但你有W和D需要找到F.这是一个不好的假设,但我们假设F与D垂直。称之为Fp,因为它不一定与F相同忽略幅度,WxD应该给你Fp的方向。

这忽略了数量,所以用一点算术来解决这个问题。从W = DxF开始应用于Fp:

mag(W)= mag(D)* mag(Fp)(忽略几何;使用Fp perp到D)

mag(Fp)= mag(W)/ mag(D)

将用于指示的交叉乘积位与此物质组合起来,

Fp = WxD / mag(WxD)* mag(Fp)

Fp = WxD / mag(W)/ mag(D)* mag(W)/ mag(D)    = WxD / mag(D)^ 2.

注意,给定任何解Fp到W = DxF的解,你可以添加任何与D成比例的向量到Fp以获得另一个解F.这是一个完全自由的参数可供你选择。

另请注意,如果扭矩适用于某些轴或物体约束绕一些轴旋转,而F应用于某个奇怪的杠杆以一个有趣的角度伸出,则矢量D指向一个有趣的方向。您只想将D替换为垂直于轴/轴的部分,否则为&#34; / mag(D)&#34;部分将是错误的。

答案 2 :(得分:1)

因此,从您的评论中可以清楚地看到,所有旋转都围绕重心旋转

  • 就此而言
  • F=M/r
  • F强制[N]
  • M扭矩[N / m]
  • r旋转中心之间的标量距离[m]
  • 这样你就可以知道你的力量的标量大小了
  • 现在你需要方向
  • 垂直于旋转轴
  • 并且它是该点的旋转正切
  • dir = r x
  • F = F * dir / | dir |
  • 粗体是矢量休息是标量
  • x是交叉产品
  • dir 是强制方向
  • 是旋转轴方向
  • 现在只需根据旋转方向(实际欧米茄的标志)改变方向
  • 也取决于您的坐标系设置
  • 所以以太否定 F 或不

  • 但这是3D自由旋转非常不可能的情况

  • 物体必须从质量的角度对称
  • 或以实现此目的的方式应用初始驱动力
  • 还要注意,在第一次点击任何互动后,这不会是真的!!!“
  • 所以,如果你只想计算强制,它会在某一点产生,如果发生碰撞就可以了
  • 但在此之后你的旋转将会改变
  • 对于非对称物体,旋转很可能不在重心位置!!!
  • 如果您的对象将被解体,那么您无需担心
  • 如果没有,那么你必须应用旋转和运动动力学

旋转动力学

  • M=alpha*I
  • M扭矩[N / m]
  • alpha角加速度
  • I实际旋转轴的二次质量惯量[kg.m ^ 2]
  • epislon''=omega'=alpha
  • '表示按时间推导
  • omega角速度
  • epsilon角度