MATLAB Answers


Having a Simulink error while simulating a UAV to track a UGV.

Asked by Sunghun Jung on 28 Dec 2012
Latest activity Answered by Charanraj
on 24 Apr 2015

Hello, brilliant researchers. I am having an error on Simulink while I am simulating flights of Unmanned Aerial Vehicle (UAV) by letting it to track a Unmanned Ground Vehicle (UGV). I have a following error.


Simulink cannot solve the algebraic loop containing 'UAV_UGV_sim/Closed loop UGV dynamics/cal_theta' at time 0.0 using the TrustRegion-based algorithm due to one of the following reasons: the model is ill-defined i.e., the system equations do not have a solution; or the nonlinear equation solver failed to converge due to numerical issues.

To rule out solver convergence as the cause of this error, either a) switch to LineSearch-based algorithm using set_param('UAV_UGV_sim','AlgebraicLoopSolver','LineSearch') b) reducing the ode45 solver RelTol parameter so that the solver takes smaller time steps. If the error persists in spite of the above changes, then the model is likely ill-defined and requires modification.


The following facebook link has the image file of my UGV and UAV simulink diagram.

Thank you very much in advance for your invaluable helps.

  1 Comment

Did you try switching to a LineSearch based algorithm to narrow down whether the problem is ill-defined or has numeric problems?

Did you check whether the system is well-defined at the initial conditions you use? That, for example, you do not have a division by 0 because an initial condition (e.g., time) is 0 but would be non-zero once the model starts going?



3 Answers

Answer by Ryan G
on 28 Dec 2012
 Accepted answer

The error you are seeing is related to the solver attempting to automatically resolve an algebraic loop. However, in this case, it is running into issues accomplishing the task. To resolve the issue try inserting 1/z into the sensor feedback paths. This will resolve the algebraic loop and put in realistic sensor characteristics (delays) so your model should still be relatively accurate.


Ryan G
on 29 Dec 2012

1/z is the mathematical representation of a unit delay. In simulink you can define this to be fixed step, say 0.01 seconds, or inherited (-1).


Hello, I'm making a computal model of a thermoelectric genererator. I have a similar error indication of Simulink. I tried to put a Unit Delay before my Matlab Function but the problem still persists. I'm making a computal model of a thermoelectric generator (electric circuit). Any idea what the problem is ? Or what do I do wrong ?

Answer by Sunghun Jung on 29 Dec 2012

Thank you very much, Ryan. That worked!


Answer by Charanraj
on 24 Apr 2015

hey I have the same problem. I n my case the feedback is a single number and when I put an unit delay, it converts to 3 numbers and this is creating problem in the control input of the system. How to rectify this ?


Join the 15-year community celebration.

Play games and win prizes!

Learn more
Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!