MBS Symbolic Toolbox Alternative

3 vues (au cours des 30 derniers jours)
Tiago Carvalho
Tiago Carvalho le 13 Juin 2022
Commenté : Steven Lord le 13 Juin 2022
Good Afternoon,
I am currently developing my Master Thesis project, which consists of developing a general-porpused multi-body simulation program. Currently, I have a good basis for the program that is able to solve the simulations that I ask of it.
However, I have been using the symbolic Toolbox to allow the user to define input functions that define the position,velocity and acceleration of the driving links. The functions are usual polynomial or sinusoidal and are defined in an excel, that serves as a GUI, as the following: '@(t) 6,28*t^2 (for example), and this is costing me a lot of computation effort, when I introduce a driving input the simulations are taking hours and using the profile I have identified that the definition of the variable sym t for my input functions is the one that consumes me the most computation time.
Does anyone has an alternative for the symbolic toolbox that is more effienct? I have already maxed out the efficiency in terms of numerical methods algorithms and there isn't much more I can do on that department.
Thank you for your attention.
Tiago Carvalho

Réponse acceptée

Steven Lord
Steven Lord le 13 Juin 2022
What operations do you need to do on these functions? If all you need to do is define and evaluate them, just define them as anonymous functions.
s = '@(x) x.^2+2*x-1';
f = str2func(s);
x = 1:10;
y1 = f(1:10)
y1 = 1×10
2 7 14 23 34 47 62 79 98 119
y2 = x.^2+2*x-1 % Check that the output of f matches the explicit computations
y2 = 1×10
2 7 14 23 34 47 62 79 98 119
  2 commentaires
Tiago Carvalho
Tiago Carvalho le 13 Juin 2022
Hello,
If the inputs are only defined as acceleration I can use anonymous functions and I think that can help! However, for a specific set of problems I will have to differentiate them and then evaluate them, I will try to simplify the Excel GUI and to force the user to input the first and second derivative of each function before the program runs which will allow me to do what you suggested.
Thank you a lot for your help!
Tiago
Steven Lord
Steven Lord le 13 Juin 2022
If the functions are "nice" approximating the derivative using numerical differentiation techniques may be sufficient for your needs.

Connectez-vous pour commenter.

Plus de réponses (0)

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by