Bank angle from horizon frame?

  • Context: Graduate 
  • Thread starter Thread starter Artlav
  • Start date Start date
  • Tags Tags
    Angle Frame Horizon
Click For Summary
SUMMARY

The discussion focuses on calculating an aircraft's bank angle using its local frame in relation to a defined horizon frame. The horizon frame is defined with y as up, z as north, and x as east, while the aircraft's frame has x as right wing-wards, z as nose-wards, and y as up. The solution involves projecting the up vector onto the plane defined by the nose vector and computing the angle between this reference vector and the actual up vector, with corrections applied using the wing vector. The final formula for the bank angle is derived using the arccosine function and the sign of the wing vector's y-component.

PREREQUISITES
  • Understanding of vector normalization and projection
  • Familiarity with trigonometric functions, specifically atan2 and arccos
  • Knowledge of aircraft coordinate systems and frame transformations
  • Experience with programming concepts for implementing mathematical calculations
NEXT STEPS
  • Research vector normalization techniques in 3D space
  • Learn about the implementation of trigonometric functions in programming languages
  • Study coordinate transformations in aerospace applications
  • Explore advanced topics in flight dynamics related to bank angle calculations
USEFUL FOR

Aerospace engineers, flight simulation developers, and anyone involved in aircraft dynamics and control systems will benefit from this discussion.

Artlav
Messages
161
Reaction score
1
How can i find out aircraft's bank angle knowing it's local frame in horizon frame?

Specifically, the horizon frame is y for up, z for north, x for east, the plane frame is x for right wing-wards, z for nose-wards, y for up. I know unit vectors of plane frame in horizon frame, and want to find out bank angle from them.

The best attempt yet is:
npr=normalize(z_horizon.x,0,z_horizon.z);
rh=normalize(y_horizon-(npr*scalar(npr,y_horizon)));
bank=sign(x_horizon.y)*atan2(sqrt(sqr(rh.x)+sqr(rh.z)),rh.y);

Basically, trying to subtract the projection of the up onto the forward from the up and compute the angle to horizon plane, but it does not work right if pitched and banked.

Any help?
 
Mathematics news on Phys.org
Solved it.
Project the up vector onto the plane whose normal is the nose vector, then compute the angle between the resulting reference vector and the actual up vector, correcting for sign thru wing vector.

ref=normalize((0,1,0)-(z_horizon*scalar((0,1,0),z_horizon)));
sm=scalar(ref,y_horizon);
if abs(sm)>=1 then ac=0; else ac=arccos(sm);
bank=sign(x_horizon.y)*ac;
 

Similar threads

  • · Replies 4 ·
Replies
4
Views
3K
Replies
3
Views
1K
  • · Replies 17 ·
Replies
17
Views
3K
Replies
1
Views
2K
  • · Replies 19 ·
Replies
19
Views
3K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 25 ·
Replies
25
Views
2K
  • · Replies 9 ·
Replies
9
Views
3K
Replies
5
Views
2K
  • · Replies 5 ·
Replies
5
Views
2K