Bonjour tout le monde,
J'ai un petit soucis en programmation concernant des pas de temps à utiliser lors d'une intégration numérique. Je ne sais pas vraiment si c'est dans cette partie que je dois poster mais comme je code sous MATLAB je me suis dit que c'était la bonne.
Le problème est un oscillateur masse/ressort/amortisseur où l'on excite le support avec une accélération. Cette accélération est dans un fichier de données, donc un vecteur fixe.
Lorsque je fait l'intégration numérique avec un schéma d'intégration, j'utilise un pas de temps de sortie mais vu que le vecteur d'accélération que j'utilise pour exciter le support est fixe le programme bloque. Et je n'arrive pas à voir à quel moment ou comment utiliser un pas de temps en entrée (le pas de temps qui est utilisé pour le vecteur d'accélération).
Je vous met la partie de code ou l'intégration est faite :
acc_z est le vecteur qui sert à exciter le support, je l'ai récupéré d'un fichier texte "acceleration.txt". Le vecteur t se récupère de la même manière.
- mtoto = load('acceleration.txt') ; % Récupération de toutes les valeurs du fichier
- t = mtoto(2:3002,1) ; % Récupération du temps
- acc_z = mtoto(2:3002,4) ; % Récupération coordonnéee Z accélération
- acc_z = mtoto(2:3002,4) ; % Récupération coordonnéee Z accélération
- dte = diff(t(1:2)) ; % Pas de temps de l'entrée
- % Calcul de l'accélération
- for l = 1:length(acc_z)-1 ;
- d(l+1) = d(l)+v(l)*dts ; % Calcul du déplacement de la masse
- v(l+1) = v(l)+a(l)*dts ; % Calcul de la vitesse de la masse
- a(l+1) = -(k/m)*d(l+1)-(c/m)*v(l+1)+acc_z(l+1) ; % Calcul de l'accélération de la masse
- end
Pour le calcul du déplacement et de la vitesse j'utilise le pas de temps de sortie (dts) mais lorsque je calcule l'accélération c'est le terme acc_z qui pose problème car le pas de temps de ce vecteur n'est pas le même pas de temps que la réponse.
Est-ce que vous auriez une idée parce que là je bloque vraiment.
Merci d'avance
-----