Salut tout le monde
Je voudrais savoir comment résoudre et dessiner une équation différentielle de la forme suivante ad2z/dt + bdz/dt+csign(dz/dt)=f(z) avec f(z) qui est une fonction qui varie en fonction de z avec ode23. La solution de cette équation a des solutions pour chaque valeur de f(z) et a une allure quand je vais le dessiner.
Comment résoudre cette équation et comment dessiner les solutions de cette équation dans un meme graphique ?
Aidez-moi
Merci
Voila mon code qui ne marche pas
Le fichier matlab est le suivant :
Le fichier de résolution en matlab est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 function [dzdt]= fct_motrice((t,y); global force % paramètres du modèle mécanique m=5; % masse de la partie mobile K=65; % coefficient de frottement visqueux fo=0.1; % coefficient de frottement sec % determination de la force for i=0:0.635E-3:2.54E-3 d=2.54E-3-i; a=-abs(atan(20/d)); b=(20*2.54E-3)/d; if(y(1)>=0)&(y(1)<=i) force=20; else force=a*y(1)+b; end end %résolution de l'équation mécanique dzdt=[y(2);(force/m)-(K/m)*y(2)-(fo/m)*sign(y(2))];
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 % simulation résolution mécanique [t,y]=ode23('fct_motrice',[0,0.75],[0;2.54e-3]);%t0 =0 et tf=0.75s avec condition initiale (0 0.01) y1 = y(:,1) % y(:,n) récupère la nème colonne de y plot(t,y1) % trace x en fonction du temps xlabel('T(s)'); ylabel('Position du mobile(m)'); set(gca,'ytick',[0 0.635e-3 1.27e-3 1.905e-3 2.54e-3 3.175e-3 3.81e-3 4.445e-3 5.08e-3]); set(gca,'xtick',[0 0.25 0.5 0.75]); grid on
Partager