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

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

Asked by Sunghun Jung
on 28 Dec 2012

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.

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.

Show 1 older comment

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).

CEDRIC baes
on 8 May 2014

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 ?

## 1 Comment

## Walter Roberson (view profile)

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/57570#comment_119586

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?