WOLFRAM SYSTEM MODELER

Troubleshooting

Troubleshooting

Wolfram Language

In[1]:=
SystemModel["Aircraft.Troubleshooting"]
Out[1]:=

Information

 

Troubleshooting the Fixed-Wing Aircraft Library

A list of common errors, their probable cause and possible corrections are now presented. 

ERROR PROBABLE CAUSE POSSIBLE FIX

When flying a multimotor aircraft without an autopilot, even if all connections seem "complete", the error: Simulation model is not globally balanced, having n variables and m equations (with n > m) is displayed.

Not all aircraft engines have a throttle command input from the source.

Add the missing connections of throttle command to the deltaThrotCmd[nEng] input of aircraft so all engines have an input. E.g. two connections are needed for an airplane with nEng=2: one for deltaThrotCmd[1] and another for deltaThrotCmd[2]. Define which input signal matches which engine on the Add Connection window.

When flying a multimotor aircraft with an autopilot, even if a throttle connection has been done, the error: Simulation model is not globally balanced, having n variables and m equations (with n > m) is displayed.

Not all aircraft engines have a throttle command input from the autopilot vector. 

Redo the throttle connection and add a colon deltaThrotCmd[:] (the default suggestion) on both input and output at the Add Connection window. I.e. From: autopilot.deltaThrotCmd[:] To: airplane.deltaThrotCmd[:]

When using autopilot, the error: Incompatible dimensions. The 1st dimensions of autopilot.deltaThrotCmd and airplane.deltaThrotCmd evaluate to n and m respectively, with n m is shown.

The thrust command vector size of the autopilot does not match the size of the aircraft's number of engines. Make sure the parameter nEng of the autopilot (on the Propagated Properties Tab) matches the nEng of the aircraft. 

Assert shown stating: Aircraft.Atmospheres.atmosphericData: Height, h, out of range

This assert occurs when the aircraft has reached an altitude lower than zero. This could be due to:

  1. Initial conditions on the aircraft model not declared.
  2. The airplane crashed. 
  1. Set the initialAltitude and initialVelocity parameters in the Aircraft's General Tab to reasonable values according to the type of aircraft. 
  2. Analyze the simulation results (by, for example, plotting flightData.alt or by viewing the animation) and correct the necessary parameters for your airplane crashes.
    • Try adding some negative deflection to the elevator input to achieve trimmed flight.
    • Use a higher altitude for the simulation. When flying without autopilot, the phugoid oscillation might cause it to crash if flying at low altitudes.
    • Add more thrust!
When flying with autopilot, the error: DASSL failed because the corrector could not converge is shown. May be accompanied by one or more Warning: [LIN_SYS]  No unique solution when solving for ... messages.

One or both of the aircraft initial conditions (initialAltitude and initialVelocity) are significantly different from the Autopilot input commands. The autopilot cannot correct for such drastic differences.

Set the initialAltitude and initialVelocity parameters to values closer to the autopilot command inputs. Make sure you are stating altitude and velocity in the desired units!
Error stating Failed to solve the linear system.  The aircraft entered into an unflyable, upset flight condition.

Analyze the simulation results (by, for example, viewing the animation) and correct the parameters that make the aircraft try to perform unrealistic maneuvers. These could be excessive control surface deflection, too low thrust, excessive angles of attack, inverted stalls, etc.

Altitude plotted negative at the Simulation Center. Since the z axis points downward (see Aircraft.Introduction), some of the altitudes used at different levels of the aircraft model compute negative altitude values, even if this is not true.  Plot specifically the variable .flightData.alt to get the geometric altitude with the corrected symbol. Plotting variables from .flightData is the recommended practice.
With an autopilot, the simulation progress bar "gets stuck" at the Simulation Center. The control gains of the autopilot are not suitable for the characteristics of the aircraft it is trying to control. Make sure to use an autopilot that matches the type of propulsion of the aircraft. If the error keeps showing, adjust the Control Gains of the autopilot (a good way to do this is through the Aircraft.Examples.AutopilotPIDTune).
Without an autopilot and having high simulation times (e.g. >~ 60s), the airplane oscillates even if it is balanced and constant elevator deflection is given.  Not an error, but a feature! The aircraft has entered into a phugoid oscillation. See reference [2]. Adjust the elevator angle deflection input to reduce amplitude of oscillation. Keep in mind it will still  always be present, since it is inherent to the flight dynamics of an uncontrolled aircraft. To erradicate it completely, consider the use of an autopilot. 
Cannot find the airplane on the simulation animation. Since aircraft move fast, it is difficult to capture it with the static default camera. Right-click on the animation window and select the option to Attach Camera To and choose a component of the aircraft you are trying to visualize. Adjust the zoom to the desired size.
After applying the conversion from Version 1.0.1 to 2.0 the error: Simulation model is not globally balanced, having n variables and m equations (with n > m) is displayed without the use of an autopilot. Older versions allowed only a single throttle control input signal for all engines. Now, multiple signals can be connected to multiple engines.  Add the missing connections of throttle command to the deltaThrotCmd[nEng] input of aircraft so all engines have an input. E.g. two connections are needed for an airplane with nEng=2: one for deltaThrotCmd[1] and another for deltaThrotCmd[2]. Define which input signal matches which engine on the Add Connection window.
After applying the conversion from Version 1.0.1 to 2.0, connection lines are broken with an autopilot. The conversion demands manual correction on the user's side. Delete all the broken connection lines. Then, redo the throttle connection and add a colon deltaThrotCmd[:] (the default suggestion) on both input and output at the Add Connection window, i.e. From: autopilot.deltaThrotCmd[:] To: airplane.deltaThrotCmd[:]. Next, make sure the parameter nEng of the autopilot (on the Propagated Properties Tab) matches the nEng of the aircraft.