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 création matrice de rigidité


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 2
    Par défaut Problème création matrice de rigidité
    Bonjour à tous !
    voila je suis un petit nouveau sur le forum et je viens vous demander votre précieuse aide.
    J'ai déjà fait un tout petit peu de matlab dans ma scolarité mais là le problème auquel je suis confronté me dépasse!!
    alors voila je suis sur un problème de vibration de plaque, et on décompose la vibration par la fonction
    phixy=sin(n*p*xi/a)*sin(m*pi*y/b)
    le déplacement de la plaque du a la vibration est :
    w(x,y) = Double Somme (sur m et n) de 1 à N de phi(x,y)
    j'ai un problème pour écrire cette somme:
    je pensais faire un algorithme du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    m=0 n=0;
    for m=0:N
    for n=0:N
    w(x,y)=sin(n*pi/a*x)*sin(m*pi/b*y)
    end
    end
    mais voilà x et y sont deux variables qui me serviront à une intégration plus tard. Et comme matlab ne fait pas de calcul formel (d'ailleurs ce n'est pas ce que je souhaite) je ne sais pas quoi faire de x et y

    ensuite (et j'ai les expressions analytiques) je dois dériver w
    - deux fois par rapport à x :
    w,xx=-m^2*pi^2/a^2*sin(m*pi*x/a)*sin(n*pi*y/b)
    - deux fois par rapport à y :
    w,yy=-n^2*pi^2/b^2*sin(m*pi*x/a)*sin(n*pi*y/b);
    -par rapport à x et y
    w,xy=m*n*pi^2/(a*b)*cos(m*pi*x/a)'*cos(n*pi*y/b);
    ensuite je dois former le vecteur Ksi suivant (1 colonne * 3 lignes)
    Ksi = [w,xx;w,yy;w,xy]
    puis enfin j obtiens ma matrice de rigidité ainsi:

    Kij = double intégrale (x allant de 0 à a) (y allant de 0 à b) de Ksi'*H*Ksi
    avec H une matrice 3*3 que j'ai déjà calculé!

    voila je sais c'est long et je suis surement super nul mais j'ai vraiment besoin de votre aide s'il vous plait !!!!!

    merci d'avance!!!

  2. #2
    Membre habitué
    Inscrit en
    Novembre 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 12
    Par défaut
    Bonjour,

    Voila comment procéder pour :

    w(x,y) = Double Somme (sur m et n) de 1 à N de phi(x,y)
    Tu crées la fonction phixy dans un fichier a part (en précisant la valeur de N et bien sur x et y).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function phi=phixy(x,y,m,n)
    global a b
    phi=sin(n*pi*x/a)*sin(m*pi*y/b);
    end
    Puis ta fonction de calcul de déplacement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function w=depl(x,y,N)
    w=0;
    for ii=1:N
        for jj=1:N
            w=w+phixy(x,y,ii,jj);
        end
    end
    T'as plus qu'a taper dans la fenêtre de commande depl(x,y,N).

    Pour la deuxième partie :

    La fonction te permettant de calculer la valeur de chacune de tes dérivées est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function dw=deriv_depl(x,y)
    global m n a b
    dw(1)=-m^2*pi^2/a^2*phixy(x,y,n,m);
    dw(2)=-n^2*pi^2/b^2*phixy(x,y,n,m);
    dw(3)=m*n*pi^2/(a*b)*cos(m*pi*x/a)*cos(n*pi*y/b);
    end
    pour avoir le résultat tape
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    a=?;
    b=?;
    m=?;
    n=?;
    Ksi=deriv_depl(x,y);
    dans la fenêtre de commande.

    Pour ta matrice de rigidité il va te falloir utiliser des méthodes d'intégration. Matlab ne fait pas de calcul formel : intégration par rectangles, par trapèzes... pour les plus simples.

    J'espère avoir pu répondre à tes différentes questions. Si besoin de plus de précisions fais le savoir.

  3. #3
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Pourquoi utiliser des variables globales ici ?

    Il suffit juste de passer ces valeur en arguments d'entrée des fonctions (comme pour x et y), non ?

  4. #4
    Membre habitué
    Inscrit en
    Novembre 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 12
    Par défaut
    C'était pour ne pas devoir les réécrire à chaque fois dans l'appel de fonctions... c'est surement une excuse de feignasse ! tu as raison ca serait plus propre de les passer en arguments d'entrée.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 2
    Par défaut
    merci infiniment olivier
    j'essaie ca tout de suite et je te tiens au courant

Discussions similaires

  1. problème création de process
    Par skaii dans le forum MFC
    Réponses: 6
    Dernier message: 01/06/2005, 17h24
  2. .htaccess problème création sous windows
    Par Leviathan_72 dans le forum Apache
    Réponses: 2
    Dernier message: 18/05/2005, 20h29
  3. Problème création et destruction de processus.
    Par loupdeau dans le forum MFC
    Réponses: 5
    Dernier message: 08/04/2005, 13h33
  4. Problèmes création de procédures et de triggers
    Par missllyss dans le forum SQL
    Réponses: 2
    Dernier message: 06/11/2003, 10h42
  5. Problème création de DLL
    Par monsieur.voie.lactee dans le forum C++Builder
    Réponses: 4
    Dernier message: 12/08/2003, 16h56

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