faa.tg.aircraft.adm.dynamics
Class LateralDerivatives

java.lang.Object
  extended by faa.tg.aircraft.adm.dynamics.LateralDerivatives
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable

public class LateralDerivatives
extends java.lang.Object
implements java.io.Serializable, java.lang.Cloneable

LateralDerivatives is the class that is used to calculate the lateral states of the ADMAircraft. It contains the StateTransitionMatrix and the DiscreteInputMatrix. These two matrices are used for the analytic integration of the two fundimental lateral states:

The following four terms must be supplied in order to derive the matrices: The StateTransitionMatrix and the DiscreteInputMatrix are derived only once at the time that this class is instantiated. They only need do be derived once and are used in the following two methods: See section 8 of the Detailed Design Document for a discussion of design issues.

See the source: LateralDerivatives.java

Version:
$Id: LateralDerivatives.java,v 3.7 2008/10/20 21:37:19 lykensj Exp $
Author:
Tim Kimmet
See Also:
Serialized Form

Field Summary
private  double a
           
private  double a2b2
           
private  double b
           
private  double c
           
private  double cosc
           
static java.lang.String CVS_VERSION_ID
          The CVS Version ID
private  Matrix discreteInputMatrix
          this matrix holds 2 X 1 Matrix known as the discrete input matrix The discrete input matrix is used during the analytic integration of the roll angle and roll rate equations of motion which are two calc methods in this class
private  double K1
           
private  double K2
           
(package private) static long serialVersionUID
           
private  double sinec
           
private  Matrix stateTransitionMatrix
          this matrix holds 2 X 2 Matrix known as the discrete input matrix The state transition matrix is used during the analytic integration of the roll angle and roll rate equations of motion which are two calc methods in this class
private  double Wn
           
private  double zeta
           
 
Constructor Summary
LateralDerivatives(LateralDerivativeInputs ldi)
          Constructor for the LateralDerivatives class During construction, the two matrices (the StateTransitionMatrix and the DiscreteInputMatrix) are derived.
 
Method Summary
private  Matrix calcDiscreteInputMatrix(double K1, double cosc, double expNegadt, double a, double sine3, double b, double cosbdt, double a2b2, double sinec, double Wn)
          Calculates the DiscreteInputMatrix.
 RollAngle calcRollAngle(RollRate rollRate, RollAngle rollAngle, RollAngle desiredRollAngle)
          Calculates the new roll angle using the state transition matrix and the discrete input matrix.
 RollRate calcRollRate(RollRate rollRate, RollAngle rollAngle, RollAngle desiredRollAngle)
          Calculates the new roll rate using the state transition matrix and the discrete input matrix.
private  Matrix calcStateTransitionMatrix(double K2, double expadt, double sine1, double Wn, double sine2, double zeta)
          Calculates the StateTransitionMatrix.
 LateralDerivatives clone()
           
 void setTimeStep(SimulationTime timeStep)
          Changes the transition time from the kth to k+1th state to the input.
 java.lang.String toString()
          Returns a string representation of this object.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

serialVersionUID

static final long serialVersionUID
See Also:
Constant Field Values

CVS_VERSION_ID

public static final java.lang.String CVS_VERSION_ID
The CVS Version ID

See Also:
Constant Field Values

discreteInputMatrix

private Matrix discreteInputMatrix
this matrix holds 2 X 1 Matrix known as the discrete input matrix The discrete input matrix is used during the analytic integration of the roll angle and roll rate equations of motion which are two calc methods in this class


stateTransitionMatrix

private Matrix stateTransitionMatrix
this matrix holds 2 X 2 Matrix known as the discrete input matrix The state transition matrix is used during the analytic integration of the roll angle and roll rate equations of motion which are two calc methods in this class


Wn

private final double Wn

K1

private final double K1

K2

private final double K2

a

private final double a

b

private final double b

c

private final double c

a2b2

private final double a2b2

sinec

private final double sinec

cosc

private final double cosc

zeta

private final double zeta
Constructor Detail

LateralDerivatives

public LateralDerivatives(LateralDerivativeInputs ldi)
Constructor for the LateralDerivatives class During construction, the two matrices (the StateTransitionMatrix and the DiscreteInputMatrix) are derived. These two matrices need to be derived once and are used for the life of the Aircraft.

Parameters:
ldi - an object of type LateralDerivativeInputs which acts as a container holding the following four values:
  • Lp, La two stability derivatives
  • k1, k2 two feedback gains
Method Detail

calcDiscreteInputMatrix

private Matrix calcDiscreteInputMatrix(double K1,
                                       double cosc,
                                       double expNegadt,
                                       double a,
                                       double sine3,
                                       double b,
                                       double cosbdt,
                                       double a2b2,
                                       double sinec,
                                       double Wn)
Calculates the DiscreteInputMatrix. This calculation is done only once at construction and is only used within this class only. The inputs to this method have no true meaning, they are calculated above in the constructor and passed into this method. Some of these same values are used to produce the state transition matrix, therefore they are precalculated and passed to each method to increase performance.


calcStateTransitionMatrix

private Matrix calcStateTransitionMatrix(double K2,
                                         double expadt,
                                         double sine1,
                                         double Wn,
                                         double sine2,
                                         double zeta)
Calculates the StateTransitionMatrix. This calculation is done only once at construction and is only used within this class only. The inputs to this method have no true meaning, they are calculated above in the constructor and passed into this method. Some of these same values are used to produce the discrete input matrix, therefore they are precalculated and passed to each method to increase performance.


calcRollRate

public RollRate calcRollRate(RollRate rollRate,
                             RollAngle rollAngle,
                             RollAngle desiredRollAngle)
Calculates the new roll rate using the state transition matrix and the discrete input matrix.

Parameters:
rollRate - the roll angular rate of the aircraft.
rollAngle - the roll angle of the aircraft.
desiredRollAngle - desired roll angle calculated by control logic.
Returns:
the newly calculated roll rate

calcRollAngle

public RollAngle calcRollAngle(RollRate rollRate,
                               RollAngle rollAngle,
                               RollAngle desiredRollAngle)
Calculates the new roll angle using the state transition matrix and the discrete input matrix.

Parameters:
rollRate - the roll angular rate of the aircraft.
rollAngle - the roll angle of the aircraft.
desiredRollAngle - desired roll angle calculated by control logic.
Returns:
the newly calculated roll angle

setTimeStep

public void setTimeStep(SimulationTime timeStep)
Changes the transition time from the kth to k+1th state to the input.

Parameters:
time, - the new difference in time.

toString

public java.lang.String toString()
Returns a string representation of this object. In general, the toString method returns a String that "textually represents" this object.

Overrides:
toString in class java.lang.Object
Returns:
a String representation of this object

clone

public LateralDerivatives clone()
                         throws java.lang.CloneNotSupportedException
Overrides:
clone in class java.lang.Object
Throws:
java.lang.CloneNotSupportedException