Hi 松,
Simulink cannot solve algebraic loop, if it involves blocks that cannot be assigned algebraic variables. These blocks might include those with discrete outputs, non-double or complex outputs, Stateflow blocks, or nonvirtual subsystems.
When an algebraic loop is detected, you have to leave the loop as it is or you have to eliminate it. In some scenarios, adding an 'Initial Condition' block or an 'Algebraic Constraint' block may solve the problem, though it might not be sufficient for all cases. Alternatively, introducing a small delay into the loop, using either a 'discrete delay' block or a 'memory' block, can sometimes effectively remove the loop by breaking the immediate dependency cycle.
For more information and potential solutions to algebraic loops in Simulink, you can go through the MATLAB Central discussion linked below.