我有一个旋转的固体物体,扭矩为W,我想要计算出在离物体中心点D单位的某个点上施加的力F。所有这些值都用Vector3格式表示(x,y,z)。
直到现在我知道W=D,其中x是交叉积,所以通过展开,我得到:
Wx = Dy*Fz - Dz*Fy
Wy = Dz*Fx - Dx*Fz
Wz = Dx*Fy - Dy*Fx所以我有这个方程,我需要找到(Fx,Fy,Fz),我正在考虑用单纯形方法来解决它。由于F向量也可以有负值,所以我将每个F变量除以2 (F =G),因此新的方程如下所示:
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 + 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应该被定义为max),但我确信我在定义更重要的东西时是错的。
发布于 2014-10-09 04:33:21
快速肮脏的推导..。
给定D和F,你得到与它们垂直的W。交叉产品就是这么做的。
但是你有W和D,需要找到F,这是一个糟糕的假设,但假设F垂直于D,称为Fp,因为它不一定与F忽略数量级相同,WxD应该给出Fp的方向。
这忽略了幅度,所以用一个小的算术来修正它。从应用于Fp的W=DxF开始:
mag(W) = mag( D) *mag( Fp ) (忽略几何;使用Fp到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。
请注意,给定W=DxF的任意解Fp,您可以添加任何与D成比例的向量到Fp,以获得另一个解F。这是一个完全自由的参数,可以随意选择。
还请注意,如果扭矩适用于某种轴或物体,约束在某个轴上旋转,而F被施加于某个奇怪的角度伸出的球杆上,那么矢量D点在某个奇怪的方向上。你想用垂直于轴/轴的部分代替D,否则"/mag(D)“部分就错了。
发布于 2014-10-05 09:00:40
因此,从你的评论中可以清楚地看到,所有的旋转都是围绕重心旋转的。
F=M/rF力NM扭矩N/mr标量距离旋转动力学
M=alpha*IM扭矩N/malpha角加速度I二次质量惯性kg.m^2epislon''=omega'=alpha'的意思是按时间推导omega角速度epsilon角https://stackoverflow.com/questions/26200213
复制相似问题