
Use mldivide in SIMULINK
14 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Maximilian Binzler
le 2 Mai 2017
Modifié(e) : Christoph Wellnhofer
le 18 Juil 2023
I am stuck with the following Problem: I have to solve a System of linear equations:
A*x = b (where A is 25x25 Matrix and b and x are 25x1 vectors)
at every timestep of a SIMULINK model. I am currently doing so with an embedded MATLAB function Block which does simply something like this:
function x = fcn( A , b ) %#codegen
x = mldivide(A,b);
end
The Problem is that I need to get rid of the MATLAB function Block. It really feels like a stupid question but is there a possibility to execute the mldivide-order with a SIMULINK Block?
Thank you so much in advance
0 commentaires
Réponse acceptée
Sebastian Castro
le 2 Mai 2017
Modifié(e) : Sebastian Castro
le 2 Mai 2017
Since you're using a square A matrix, you should be able to use the Divide block (Simulink > Math Operations). If you set its "Multiplication" parameter to "Matrix", a divide sign means you're passing in a matrix inverse.

Sebastian
2 commentaires
Christoph Wellnhofer
le 18 Juil 2023
Modifié(e) : Christoph Wellnhofer
le 18 Juil 2023
@Maximilian Binzler you can also use the singular value decomposition Simulink block which also works for non-square matrices and has better numerical stability.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Linear Algebra dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!