IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Résolution d'une équation différentielle


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 23
    Points : 28
    Points
    28
    Par défaut Résolution d'une équation différentielle
    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 :
    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))];
    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
    % 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

  2. #2
    Membre actif Avatar de LordPeterPan2
    Inscrit en
    Février 2007
    Messages
    247
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 247
    Points : 239
    Points
    239
    Par défaut
    Dans ta boucle force est un scalaire ce qui veut dire que celle-ci peut se résumer à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    i=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
    Ce qui veut dire que d vaut 0 et que b = qch/0
    Ils ne savaient pas que c’était impossible, alors ils l’ont fait

Discussions similaires

  1. Réponses: 0
    Dernier message: 06/01/2013, 10h52
  2. Résolution d'une équation différentielle
    Par pXc92 dans le forum Calcul scientifique
    Réponses: 2
    Dernier message: 12/02/2012, 19h24
  3. Réponses: 0
    Dernier message: 12/07/2011, 23h15
  4. Réponses: 2
    Dernier message: 25/02/2010, 18h04
  5. Réponses: 1
    Dernier message: 08/12/2006, 17h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo