
Use mldivide in SIMULINK
12 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Maximilian Binzler
el 2 de Mayo de 2017
Editada: Christoph Wellnhofer
el 18 de Jul. de 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 comentarios
Respuesta aceptada
Sebastian Castro
el 2 de Mayo de 2017
Editada: Sebastian Castro
el 2 de Mayo de 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 comentarios
Christoph Wellnhofer
el 18 de Jul. de 2023
Editada: Christoph Wellnhofer
el 18 de Jul. de 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.
Más respuestas (0)
Ver también
Categorías
Más información sobre Linear Algebra en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!