Flaws in MRAC Implementation
显示 更早的评论
So far, I've noticed two probable flaws in the Indirect MRAC implementation of Compute control actions to make controlled system track reference model - Simulink (mathworks.com).
- The disturbance model outputs an adaptation vector with the same size as the state x, but it's added to the control output u directly without multiplying any B matrix (should be Bhat according to literature). This leads to matrix size inconsistency.
Reproductions steps:
- open example Indirect MRAC Control of Mass-Spring-Damper System - MATLAB & Simulink (mathworks.com)
- enable disturbance adaptation:

- update the model to see the error message:

- Learning modification methods leads to estimation divergence under all circumstances since "position" instead of the commonly used "momentum" was added to gradient descent. See the unstable positive feedback loop inside the Sigma Modification implementation:
It leads to estimation divergence unconditionally! A potential correct implementation of adding momentum to gradient descent should be for example adding a Moving average - Simulink (mathworks.com) filter with Exponential weighting before integrator input.
1 个评论
Harald
2023-7-3
Hi Yingao,
it seems that you have suggestions on improving an example. My recommendation would be to contact the Technical Support team of MathWorks (https://www.mathworks.com/support/servicerequests/create.html). They can discuss the suggestions with you and if they agree with you, pass them on to the developers who can then incorporate your suggestions.
Best wishes,
Harald
回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Adaptive Control 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!