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 :

problème avec ode


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2013
    Messages : 15
    Points : 18
    Points
    18
    Par défaut problème avec ode
    Bonjour tout le monde,

    J'ai un système d'équations différentielles et j'aimerais voir l'allure de mes variable d'état x1, x2 et x3 pour différente valeur de mon input u. J'ai posé mon système dans une fonction, puis résolu dans un autre script mon système avec ode45 (j'ai aussi essayé avec d'autre solveur) et j'ai toujours le même problème : je ne reçois pas de message d'erreur, mais mes vecteurs x1,x2 et x3 sont rempli de NaN (not a number) ....

    Voilà mes deux scripts :

    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
    22
    23
    24
    25
    26
    27
    function x_dot = kite_func(t,x)
     
    L=400;          %tether length [m]
    A=300;          %area of the kite [m²]
    hmin=100;       %minimum permissible altitude [m]
    c=0.25;         %constant : how much glide ratio is penalized for a steering deflection [-]
    g=7.5e-3;       %constant [m⁻¹]
    v0=10;          %wind speed [m s⁻¹]
    E0=5;           %kite's glide ratio [-]
    beta=0;         %angle between bot direction and relative wind
    rho=1.293;       %density of the air
    Pd=rho*v0^2/2;              %wind's dynamic pressure
    c_tild=0.028;               %[-]
     
    u=1;
     
    u_tild=g*L*u;               %substitution to simplify the problem
    E=E0-c_tild*u_tild^2;            %kite's glide ratio diminished by steering deflection
     
    va=v0*E*cos(x(1));         %magnitude of apparent wind vector projected onto the quarter sphere's tangent plane
     
     
    x_dot(1) = va/L*(cos(x(3))-tan(x(1))/E);
    x_dot(2) = -va/(L*sin(x(1)))*sin(x(3));
    x_dot(3) = va/L*u_tild-va/(L*sin(x(1)))*sin(x(3))*cos(x(1));
     
    x_dot=x_dot';
    et le deuxième :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    t_init=0;
    t_final=10;
     
    x1_0=0;
    x2_0=0;
    x3_0=0;
     
    options_struct = odeset('RelTol', 1E-6, 'AbsTol', 1E-6);
    [t, x] = ode45(@kite_func,[t_init t_final],[x1_0 x2_0 x3_0], options_struct); 
     
    plot(t,x(:,1),'-',t,x(:,2),'.',t,x(:,3),'--')
    Est-ce que quelqu'un a une idée du problème?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Je te suggère de mettre une autre valeur initiale, car pour x = [0 0 0] : tu effectues des divisions par 0 dans le calcul de x_dot(2) et x_dot(3).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec Apache ODE et Eclipse
    Par soumti84 dans le forum Services Web
    Réponses: 1
    Dernier message: 08/10/2012, 12h45
  2. Problème avec ode "rkf"
    Par bouwaha dans le forum Scilab
    Réponses: 3
    Dernier message: 03/05/2010, 10h45
  3. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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