MATLAB: Does the change in dynamic saturation block cause simulation failures in Simulink 7.2 (R2008b)

algebraicblockdynamicloopsaturationsimulink

The structure of the saturation dynamic block changed between R2007a and R2007b. This change affects backward compatibility. In one case a customer upgraded from R2006b to R2007b, and his simulation failed because of this change. The model contained an algebraic loop with a saturation dynamic block. The loop could be resolved when using R2006b, but not when using R2007b.
In order to reproduce the issue, please follow these steps:
1. Open model 'MODELL_Regler.mdl'
2. Run start.m
3. Inside the GUI, click on "Simulation starten"
You will see the following error:
??? Trouble solving algebraic loop containing 'MODELL_Regler/Stellantrieb/Druckänderung Rohrleitung zw. LLV und
Antrieb/IC' at time 0. Stopping simulation. There may be a singularity in the solution. If the model is correct, try reducing the step size (either by reducing the fixed step size or by tightening the error tolerances).

Best Answer

The ability to resolve an algebraic loop with a saturation dynamic block present inside the Simulink model is currently not available in Simulink 7.2 (R2008b)
The workaround is to identify all instances of the saturation dynamic block (using List = find_system(bdroot, 'MaskType','Saturation Dynamic')) and replace them with the R2006b saturation dynamic block (with library link disabled using the REPLACE_BLOCK command).