[MATLAB] - Optimisation de trajectoire

[Fermé]
Signaler
Messages postés
5
Date d'inscription
vendredi 22 août 2008
Statut
Membre
Dernière intervention
4 septembre 2008
-
Messages postés
129
Date d'inscription
jeudi 26 juin 2008
Statut
Membre
Dernière intervention
9 juillet 2011
-
Bonjour, j'aurais voulu savoir s'il existait une fonction qui permette d'optimiser des trajectoires sous matlab.

Je m'explique : lorsque je trace une trajectoire sur matlab avec juste des coordonnées en x et y (cfg morceau de code) lors de la simulation cela me renvoie bien sur ma trajectoire mais entre certains points, il y a des changements de direction trop brusque et j'aurai voulu affiné ces cassures par des arrondi qui permette d'être au plus proche de la réalité.

Je penses qu'il existe bien une fonction qui permette cela mais laquelle ? J’ai regardé du coté de polyfit et polyval mais rien donc j'attends impatiemment votre soutient :)

X = [-995.000000 8913.012695 27995.990234 34968.007812 59046.980469 66893.742188 78268.976562 88890.984375 89650.015625 90914.554688];
Y = [60761.000000 64430.003906 81310.992188 80943.960938 82499.960938 94297.320312 99950.968750 99961.820312 107791.000000 122712.898438];
plot(X,Y);
hold on;

Merci et bonne soirée

1 réponse

Messages postés
129
Date d'inscription
jeudi 26 juin 2008
Statut
Membre
Dernière intervention
9 juillet 2011
17
salut,
une solution serait d'appliquer un filtre, voici une fonction qui pourait t'aider:

function [filtFi]=explicitFILT0(Fi)
% Explicit Shapiro filtering for vector Fi
% Zero order formula (p=0)
% ----------------------------------------------------------------------------------------------------
% ----------------------------------------------------------------------------------------------------
% Arguments :
%  Fi : cell averaged vector
% ----------------------------------------------------------------------------------------------------
% ----------------------------------------------------------------------------------------------------
N=length(Fi);
% Coefficients
a0=2;
a1=1;
% Filtered vector
filtFi(1,1)=Fi(1);
filtFi(1,2:N-1)=1/2^2*[a0 a1]*[Fi(2:N-1);Fi(3:N)+Fi(1:N-2)];
filtFi(1,N)=Fi(N);
return
--