English 中文(简体)
TrigMath,2个质量,刚性杆计算速度
原标题:TrigMath, 2 masses, rigid rod computing velocity

和其他人一样,我正在做一个Thrust克隆只是为了复习。我已经到了船接吊舱的阶段。

从本质上讲,我有两个质量(只考虑球体的中心)与一个刚性的、无质量的杆相连。L永不改变,永不破碎。

在这种情况下,飞船(ma)的质量为1.0,吊舱(mb)的质量则为2.0。计算新职位需要什么数学?当我将推力应用于飞船(ma)时,如何将其应用于吊舱(mb)?(并使其像预期的那样摆动)船本身是直向前的,通常velx-=sin(角度)*推力,vely+=cos(角度)+推力。posx+=绒毛。等等。我知道我以前知道怎么做,但学校在很多年前就很好了。

问题回答

这里有两种方法。

第一个更简单。放松僵硬。使连接两者的杆成为弹簧。它对它们施加的相等和相反的力与它的长度位移量成正比。如果你使弹簧非常坚硬,你就会得到一个非常简单的几乎坚硬的杆。

第二个是使钢筋实际上是刚性的。在这种情况下,整个系统可以通过质心的位置和速度以及整个系统的旋转角度和速率来描述。质心是系统中各点位置的加权平均值乘以该点的质量。在你的情况下,它将是沿着酒吧通往吊舱的2/3的一个点。(因为吊舱的重量是船的两倍。)无论你推到哪里,质心都会移动,就像你向右推质心一样,所以你已经知道如何移动质心了。

现在你必须考虑旋转的速率。当你对船施加力时,其中一小部分是与酒吧成直角的。这个分数,除了移动质心之外,还使系统旋转。这部分力量是在加速飞船,而不是吊舱。将力施加到船上,你就可以计算出加速度。质心的加速速度是船的三分之一。因此,从质心的角度来看,船的横向加速度的三分之二会使系统旋转。将2/3除以重心到船的距离,就得到了角加速度。

通过将旋转部分与平移部分分离,这是最容易编码的。

You have a sum of forces applied to ball A - e.g. gravity force + thrust from engine + friction force. Let this be FA (a vector). You have a sum of forces applied to ball B - e.g. gravity force + friction force. Let this be FB (a vector).

物体的质心位于杆上。它位于位置(maA+mbB)/(ma+mb)。它是与质量A的距离ca,其中ca=mb/(ma+mb)|AB|和与质量B的距离cb,其中cb=ma/(ma+mb)|AB|。设UAB的归一化版本(即U具有单位长度)。

对系统进行建模,以便获得质心的位置=X和角度θ。您还存储了速度V和旋转速度w。我们希望找到线性加速度A以及旋转加速度w。

质心的运动由牛顿定律控制,使用系统上的总力和总质量,因此:

FA+FB=(ma+mb)A

旋转由所涉及的扭矩控制。(标量)扭矩=x质心向量。因此,每个物体上的扭矩为:

TA=FAx ca-U

TB=FBx cbU

请注意,这是2D叉积,即TA=FA[x]*ca。-U/y]-FA[i]*ca,-U[x]

惯性矩定义为

I=ca*ca*ma+cb*cb*mb

然后

TA+TB=内径

给定X和θ的每个质量的位置的推导留给读者练习:)





相关问题
Fastest method for running a binary search on a file in C?

For example, let s say I want to find a particular word or number in a file. The contents are in sorted order (obviously). Since I want to run a binary search on the file, it seems like a real waste ...

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

Tips for debugging a made-for-linux application on windows?

I m trying to find the source of a bug I have found in an open-source application. I have managed to get a build up and running on my Windows machine, but I m having trouble finding the spot in the ...

Trying to split by two delimiters and it doesn t work - C

I wrote below code to readin line by line from stdin ex. city=Boston;city=New York;city=Chicago and then split each line by ; delimiter and print each record. Then in yet another loop I try to ...

Good, free, easy-to-use C graphics libraries? [closed]

I was wondering if there were any good free graphics libraries for C that are easy to use? It s for plotting 2d and 3d graphs and then saving to a file. It s on a Linux system and there s no gnuplot ...

Encoding, decoding an integer to a char array

Please note that this is not homework and i did search before starting this new thread. I got Store an int in a char array? I was looking for an answer but didn t get any satisfactory answer in the ...

热门标签