FMU generation with closed loop control
조회 수: 8 (최근 30일)
이전 댓글 표시
Hi everybody, I have a problem regarding the generation of an FMU code from Simulink with a closed loop control. Particularly, I need the closed loop since I have placed a PID controller in the model. When I try to export this model as a Standalone FMU, Simulink gives me a specific error: "Algebraic loops are not supported in generated code". I have tried to solve this error in different ways. Firstly I removed just the feedback in the Simulink model but when I tested the generated FMU again in Simulink, the previous error appeared again. So I decided to put a memory block in the feedback and in this way it works, but the output results are completely different and of course this is not acceptable. Does anyone have a different option for solving this issue?
Thank you every one.
댓글 수: 3
Julian
2024년 4월 8일
Are the PID Controller and Mass-Spring-Damper Blocks virtual or nonvirtual subsystems? You can see this by selecting the block and open Subsystem Block in the tool-bar. There is an option called: Make Atomic. If selected the block is handled like direct feedthrough even though the referenced model is not. This may cause the algebraic loop error when exporting as FMU.
답변 (1개)
Satwik
2024년 2월 26일
In Simulink algebraic loops occur when there is a loop present in the block diagram that does not contain any dynamics, that is, it does not have any delay or integration to break the loop. This causes issues during simulation and code generation because Simulink needs to solve a set of simultaneous equations, which it might not be able to do analytically.
To avoid this issue and export the model as a standalone FMU successfully, you can introduce a “delay” block in the feedback path. This will break the algebraic loop and introduce dynamics that can be handled by the solver. Choose a small delay time that does not significantly affect the expected performance of the model.
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Programmatic Model Editing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!