- Home /
Sailing Ship - How to apply torque without lateral friction killing all velocity?
In sailing, there is a technique needed to sail against the wind called tacking. A ship can sail normally towards about 45 degrees from the wind, then it turns to the other side of the wind by the same amount. During the maneuver, the ship will have no propulsion force, so It's speed must last until the maneuver is complete.
In my game, I rotate the ship by applying torque based on rudder's position and on the ship's velocity. However, with the high lateral friction, when I turn the ship, a fraction of longitudinal speed becomes lateral stopping my ship abruptly.
How can I make the full turn considering that dilema?
Answer by griffitaj · Jun 03, 2017 at 11:32 AM
For a complete answer you would have to give us your model. By the sounds of it your ship does not have enough inertia to complete the tack. I will use the following simple model to try to help elucidate where issues will arise.
Ft = force applied to the boat by sail
Rl = Lateral Resistance (high)
Ra = Axial Resistance (Low)
I = Inertia
M = Moment (responsible for rotating the model)
rr = radius from ruder to center of mass
Ft
is Dependant on the angle of attack, apparent velocity, air density, sail size etc.
Rl
, Ra
and I
are dependent on time.
When Ft > Rl + Ra
the ship accelerates, which increases I
.
When Ft < Rl + Ra
the ship decelerates decreasing I
.
If Ft = 0
then Ft <= Rl + Ra
thus when power is lost the ship should simply decelerate.
Before Turn
Fx: Ftx - Rlx - Rax = Ix
Fy: Fty - Rly - Ray = Iy
M: 0 = M
During Turn (moment applied at tail of boat)
Fx: Ftx + Frx - Rlx - Rax = Ix
Fy: Fty + Fry - Rly - Ray = Iy
M: Fr * rr = M
During Luff
Fx: Rlx - Rax = Ix
Fy: Rly - Ray = Iy
M: 0 = M
Model
he following is a very simple model. Before practical use, a function representing Ft
should be implemented.
Make Ft
simply dependent on the angle of attack(rather than estimating it based on apparent velocity, sail area etc).
For the purpose of this model Fr
can be applied arbitrarily.
Ix = m * x''
Rlx = crl * x'
Rax = cra * x'
Mx = m * a''
where: crl
and cra
are your lateral and axial resistance consants and a
is the angle of the boat.
Which results in:
Fx: Ftx(AA) + Frx - cra * x' - crl * x' = m * x''
Fy: Fty(AA) + Fry - cra * y' - crl * y' = m * y''
M: Fr * rr = m * a''
note: here I assume the rudder force is applied perpendicular to the primary axis.
note: The angle of attack (`AA`) is different than the angle of the boat (`a`)
Your answer
Follow this Question
Related Questions
How to apply frictional Torque 2 Answers
Calculating Sphere vs. Plane Friction 1 Answer
Rotate to look at with physics 2 Answers
AddRelativeTorque not rotating 1 Answer