How breaking a closed loop without neither Delay or Memory block?

5 views (last 30 days)
Dear Mr/Ms,
I am experiencing a problem in my SimScape Power System modelling, when I try to control the output voltage I need to feedback the voltage output, but I got a problem doing it, because it is a Closed Loop, but if I set in between a Delay Block, or even a Memory Block, I lose the control of the variable in the my system run without any error but I can not control the voltage output.
Best wishes
Tony Castillo
Tony Castillo on 1 Mar 2019
=== Simulation (Elapsed: 18 sec) ===
Warning:Block diagram 'k3_3' contains 1 algebraic loop(s). To see more details about the loops use the command Simulink.BlockDiagram.getAlgebraicLoops('k3_3') or the command line Simulink debugger by typing sldebug('k3_3') in the MATLAB command window. To eliminate this message, set Algebraic loop to "none".
Found algebraic loop containing:
k3_3/PID Controller (2DOF)/Parallel P Gain/Internal Parameters/Proportional Gain
k3_3/PID Controller (2DOF)/D Gain/Internal Parameters/Derivative Gain
k3_3/PID Controller (2DOF)/Filter/Cont. Filter/SumD
k3_3/PID Controller (2DOF)/N Gain/Internal Parameters/Filter Coefficient
k3_3/PID Controller (2DOF)/Sum/Sum_PID/Sum
k3_3/Saturation (discontinuity)
k3_3/24 V Control/Model/Saturation (discontinuity)
k3_3/24 V Control/Model/Product1
k3_3/24 V Control/Model/MATLAB Function4
k3_3/powergui1/EquivalentModel1/State-Space (discontinuity)
k3_3/V2/do not delete this gain
k3_3/PID Controller (2DOF)/Sum3 (algebraic variable)
k3_3/PID Controller (2DOF)/Sum1 (algebraic variable)
This algebraic loop may be resolved when the subsystem option 'Minimize algebraic loop occurrences' is selected on some or all of the atomic and enabled subsystems in this algebraic loop
Warning:Discontinuities detected within algebraic loop(s), may have trouble solving
Warning:Converting 'Reusable function' setting of subsystem 'k3_3/<< Synthesized_Atomic_Subsystem_For_Alg_Loop_1 >>' to 'Nonreused function' because a child system has either been explicitly marked as nonreused, or is used in a configuration that must be nonreused. Please generate the HTML report during code generation and see the "Subsystems" section for more information
### Build procedure for model: 'k3_3' aborted due to an error.
Error:Unable to build a standalone executable to simulate the model 'k3_3' in rapid accelerator mode.
Caused by:
Algebraic loops are not supported in generated code. Use the 'ashow' command in the Simulink Debugger to see the algebraic loops

Sign in to comment.

Accepted Answer

Arvind Sathyanarayanan
Arvind Sathyanarayanan on 1 Mar 2019
So from the screenshot of the model, it looks like you're using rapid accelerator which does not support algebraic loops. You can run the model as is by switching to accelerator or normal mode.
The only way to eliminate algebraic loops is to use delay/memory block, which, I'm guessing needs to be inserted after the Vc from tag. If this is causing instability in your system, then you'll have to retune your controller because in real life there is always a delay in the feedback signal.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!