Matlab : calcul de rayonnement acoustique par fft spatiale
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Matlab : calcul de rayonnement acoustique par fft spatiale



  1. #1
    invite1e00c264

    Matlab : calcul de rayonnement acoustique par fft spatiale


    ------

    Bonjour à tous,
    J'aimerais modéliser le rayonnement acoustique d'un double vitrage d'après la thèse de O. Kaiser. Il utilise une transformée de Fourier spatiale pour définir une matrice de rayonnement M (équation 4.122),
    Nom : 2014-03-17_09h19_08.png
Affichages : 170
Taille : 6,9 Ko
    et trace à la figure 4.9 les contributions modales données par plusieurs modes de vibration d'une plaque seule.
    J'ai des difficultés à coder cette équation, je ne parviens pas à retrouver le même type de courbes.
    Voilà mon code à l'heure actuelle :

    Code:
    clear all, close all
    
    rho0 = 1.29;    % masse volumique de l'air (kg/m^3)
    c = 340;        % célérité du son dans l'air (m/s)
    p0 = 2e-5;      % pression de référence (Pa)
    
    %% paramètres temporels
    fs = 2048;              % fréquence d'échantillonnage (Hz)
    L_signal_tmp = 1000;    % longueur du signal
    NFFT = 2^nextpow2(L_signal_tmp);    % nombre de points de la fft
    t = (1:L_signal_tmp)/fs;% vecteur temps (s)
    f = fs/2*linspace(0,1,NFFT/2+1);    % vecteur fréquence (Hz)
    w = 2*pi*f;             % vecteur fréquenec (rad/s)
    
    %% indices modes de la plaque
    m = [1 1 2 2 3 3 4 3 1]';
    n = [1 2 1 2 1 2 1 2 3]';
    
    cmn = length(m);
    
    %% Dimensions de la plaque
    Lx = 717e-3;%2455e-3;%1.044;% (m)
    Ly = 1091e-3;%788e-3;%0.667;% (m)
    
    %% paramètres spatiaux
    % longueur des signaux
    L_signal_x = 50;
    L_signal_y = 70;
    
    % nombres de points des fft
    nfftx = 2^nextpow2(L_signal_x);
    nffty = 2^nextpow2(L_signal_y);
    
    % période spatiale
    Dx = Lx/(L_signal_x-1);
    Dy = Ly/(L_signal_y-1);
    
    % vecteurs espace
    x = (1:L_signal_x)*Dx;%%
    y = (1:L_signal_y)*Dy;%%
    
    % incréments spatiaux
    dx = x(2)-x(1);
    dy = y(2)-y(1);
    
    % vecteur des nombres d'ondes
    K=w/c;
    
    kx = 2*pi/(2*Dx)*(1:nfftx/2+1)/(nfftx/2+1);%linspace(0,1,nfftx/2+1);
    ky = 2*pi/(2*Dy)*(1:nffty/2+1)/(nffty/2+1);%linspace(0,1,nffty/2+1);
    
    dkx = kx(2)-kx(1);
    dky = ky(2)-ky(1);
    
    %% déformée de la plaque
    Phi_mn = zeros(length(x), length(y), length(m));
    kxm = m*pi/Lx;
    kyn = n*pi/Ly;
    for idx=1:cmn
        Phi_mn(:,:,idx) = sin(kxm(idx)*x')*sin(kyn(idx)*y);
    end
    
    % PHI_mn2 = fft(fft(Phi_mn,nfftx,1),nffty,2)/L_signal_x/L_signal_y;
    for idx=1:cmn
        PHI_mn2(:,:,idx) = fft2(Phi_mn(:,:,idx))/L_signal_x/L_signal_y;
    end
    PHI_mn = PHI_mn2(1:nfftx/2+1, 1:nffty/2+1, :); % sa fft 
    
    %% calcul de la matrice de rayonnement
    M=zeros(cmn,cmn,length(w));
    
    for kk=1:length(K)
        integrale = zeros(cmn);
        for ix = 1:nfftx/2+1
            for iy = 1:nffty/2+1
                integrale = integrale + conj(squeeze(PHI_mn(ix,iy,:)))*squeeze(PHI_mn(ix,iy,:)).'/sqrt(K(kk)^2-kx(ix)^2-ky(iy)^2);
            end
        end
        M2(:,:,kk) = w(kk)*integrale;
    %     M(:,:,kk)=w(kk)*M2(:,:)./kz2(kk);%PUISSANCE(kk) = v1_mn(:,kk)'*M(:,:,kk)*v1_mn(:,kk);
    end
    M = rho0./(8*pi^2)*real(M2)*dkx*dky;
    % semilogx(f,20*log10(abs(PUISSANCE(1,:))/Puiss_ref))
    
    % surf(ky,kx,PHI_mn(:,:,1))
    semilogx(f,20*log10(abs(squeeze(M(1,1,:)))))
    xlabel('Frequency (Hz)'), ylabel('Amplitude (dB)');
    
    % semilogx(f,(abs(squeeze(M(1,1,:)))))
    La courbe que j'obtiens en sortie de ce code ne correspond pas à ce que je devrais trouver d'après la thèse...
    Si quelqu'un a un peu de temps à consacrer pour regarder ça, je lui en serai très reconnaissant.

    -----

  2. #2
    mirorrrr
    Invité

    Re : Matlab : calcul de rayonnement acoustique par fft spatiale

    Salut,

    Je ne suis pas un pro de de vibro-accoustique, mais j'ai lu le code et il me parait être cohérant vu de loin, par rapport à la formule que tu as donné. Il y a juste quelque chose de bizarre au niveau des indices de mode de la plaque :

    Code:
    %% indices modes de la plaque
    m = [1 1 2 2 3 3 4 3 1]';
    n = [1 2 1 2 1 2 1 2 3]';
    Où l'on voit que le mode se répète 2 fois.

  3. #3
    invite1e00c264

    Re : Matlab : calcul de rayonnement acoustique par fft spatiale

    Salut,

    Merci pour ta réponse.
    En effet le mode (3,2) se répète deux fois, petite étourderie de ma part. Malheureusement cela n'intervient pas dans le calcul de ma matrice de rayonnement

  4. #4
    mirorrrr
    Invité

    Re : Matlab : calcul de rayonnement acoustique par fft spatiale

    Je ne connais pas trés bien ce calcul, peut être que tu devrais voir dans Lesueur, la réponse accoustique est calculée de la même façon, et il montre que dans certains cas le couplage inter modal peut être négligé...
    Si je comprends bien, à la fin du script tu essais de tracer le couplage des modes 1-1 et 1-1 en fonction de la fréquence. Tu as choisis pour cela une expression de vibration d'une plaque de LK. Ce type de solution marche bien pour la réponse acoustique des plaques infinies, n'ayant pas d'effet de coin ni d'effet d'anneau. A t il dit dans sa thèse quel genre de solution de plaque il utilise pour calculer le couplage inter modal ? Il s'agit peut être d'un plaque bafflée, dans ce cas il est normal que tu ne trouves pas comme lui.

  5. A voir en vidéo sur Futura
  6. #5
    invite1e00c264

    Re : Matlab : calcul de rayonnement acoustique par fft spatiale

    Effectivement on peut négliger le couplage intermodal dans certains cas. Mais je pense que mon problème relève plus du codage que de la physique du problème, puisque Kaiser trace des choses qui ont un sens, ce que je n'arrive pas à faire...
    Oui c'est bien le couplage des modes (1,1) et (1,1) que j'aimerais tracer, basé sur l'expression de la déformée d'une plaque simplement appuyée. C'est ce que fait Kaiser dans sa thèse.

  7. #6
    augustin65

    Re : Matlab : calcul de rayonnement acoustique par fft spatiale

    Bonjour à tous,
    Je m'excuse de déterrer un vieux sujet mais j'ai exactement le même problème que l'auteur et un code très similaire (quasi le même mais sous python). Je cherche à calculer impédance acoustique mais je n'obtiens pas de bons résultats. Est ce que quelqu’un à une idée de ce qui cloche dans le code de l'auteur. Je suis sur le problème depuis un mois mais je ne vois pas ce qui ne va pas.

    Merci !!

Discussions similaires

  1. acoustique: calcul de la vitesse effective du son
    Par invite3303720b dans le forum Physique
    Réponses: 13
    Dernier message: 30/10/2012, 08h31
  2. Calcul d’atténuation de rayonnement gamma
    Par invite3e22ffba dans le forum Physique
    Réponses: 4
    Dernier message: 29/07/2011, 09h14
  3. Calcul et simulation d'une enceinte acoustique
    Par invite84ff7edc dans le forum Électronique
    Réponses: 3
    Dernier message: 23/02/2011, 17h58
  4. Acoustique - Calcul de pression incidente
    Par invited008a440 dans le forum Physique
    Réponses: 10
    Dernier message: 23/12/2009, 09h22
  5. [TIPE] acoustique - calcul de TR - TF glissante
    Par inviteedf5576f dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 21/04/2007, 10h27