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éalisation d'une éolienne


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2020
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Réalisation d'une éolienne
    Bonjour,

    Je reviens sur le forum pour de l'aide afin réaliser une éolienne sous Matlab. J'ai réaliser un signal de vent mais je souhaite filtrer ce signal afin qu'il soit beaucoup moins brouillé.

    Mon problème est le suivant:
    Lorsque j'essaye de filtrer le signal j'obtiens la figure suivante

    Nom : Matlab_filtre.png
Affichages : 332
Taille : 32,3 Ko

    Voici mon code, il faut utiliser l'extension Matab Windsim pour le faire fonctionner

    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
    28
    29
    30
    31
    32
    33
    34
     
    clearvars;close all;clc;
    filename = 'INPUT_Example1.txt';
     
    rng(1); % to ensure reprodu
    [u,v,w,t,nodes] = windSim(filename);
     
     
    %Affichage données
    figure
    subplot(311)
    box on
    axis tight
     
    plot(t(1:600),u(1:1,1:600)+nodes.U(1:1)*ones(1,600));
    xlabel('Temps (s) ');
    ylabel('u (km/h)')
    set(gcf,'color','w')
    legend('sample 1','sample 2','sample 3');
     
    subplot(312)
    box on
    axis tight
    plot(t(1:600),v(1:1,1:600))
    xlabel('time (s) ');
    ylabel('v (m/s)')
    set(gcf,'color','w')
     
     
     
    a=50;
    b=ones(1,a);
    y=filter(b,a,v);
    plot(y);
    Je met en pièce jointe le fichier,

    Merci d'avance

    L'extension : windSim.zip

  2. #2
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2019
    Messages : 90
    Points : 254
    Points
    254
    Par défaut
    Bonjour,

    la doc de la fonction filter indique :
    filter

    1-D digital filtercollapse all in page
    Syntax
    y = filter(b,a,x)
    y = filter(b,a,x,zi)
    y = filter(b,a,x,zi,dim)
    [y,zf] = filter(___)
    Description
    example
    y = filter(b,a,x) filters the input data x using a rational transfer function defined by the numerator and denominator coefficients b and a.
    If a(1) is not equal to 1, then filter normalizes the filter coefficients by a(1). Therefore, a(1) must be nonzero.
    If x is a vector, then filter returns the filtered data as a vector of the same size as x.
    If x is a matrix, then filter acts along the first dimension and returns the filtered data for each column.
    If x is a multidimensional array, then filter acts along the first array dimension whose size does not equal 1.
    Il faut donc remplacer y=filter(b,a,v); par y=filter(b,a,v')'; dans votre code.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2020
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci de votre réponse!

    Cependant j'ai toujours un problème, j'obtiens une courbe encore étrange
    Je ne comprend pas bien le problème avec les v')'.

    Nom : Annotation 2020-03-06 121438.png
Affichages : 263
Taille : 52,6 Ko

    Merci

  4. #4
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    salut

    un signal, c'est un vecteur
    si tu as une matrice c'est que tu as plusieurs signaux
    c'est pour ça que ça t'affiche plusieurs lignes

    ensuite par défaut dans une matrice ces signaux qui sont filtrés par la fonction filter sont les vecteurs colonne qui composent cette matrice
    et comme visiblement dans ton cas tes signaux sont dans les lignes de la matrice, il faut tourner celle ci pour la mettre dans le sens attendu par matlab ... c'est à ça que sert l'apostrophe '

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2020
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Je ne vois pas pourquoi je me trouve avec des milliers de lignes alors que je met les apostrophes '. Existe-t-il un moyen pour isoler la bonne courbe?

    Bien cordialement,
    Maxence

  6. #6
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2019
    Messages : 90
    Points : 254
    Points
    254
    Par défaut
    Bonjour,

    les apostrophes que j'ai conseillé de mettre dans la fonction filter permettent de réaliser le filtrage chacun des profils de vent en fonction du temps : le filtrage assure que le vent au temps tn+1 a quasiment la même amplitude qu'au temps tn. Sans eux, le filtrage se ferait par rapport à l'autre direction de la matrice : il ferait en sorte que le vent au temps tn+1 du nième tirage aurait presque la même valeur que le vent au temps tn+1 du (n+1)ième tirage.
    Cela n'a rien à voir avec l'affichage, mais avec la physique du problème.

    Pour ne tracer qu'une courbe correspondant au profil de vent correspondant à un unique tirage, il suffit de ne tracer qu'une unique ligne de la matrice v : plot(t, v(1,:))

  7. #7
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    Citation Envoyé par MaxenceBechu Voir le message
    Je ne vois pas pourquoi je me trouve avec des milliers de lignes alors que je met les apostrophes '. Existe-t-il un moyen pour isoler la bonne courbe?
    parce que tu as des milliers de lignes (colonnes après application de l’opérateur ' ) dans ta matrice, et donc des milliers de signaux !
    tu peux tjrs en sélectionner qu'un seul, comme proposé ci dessus

    mais la bonne question à se poser tout d'abord, c'est à quoi correspond cette matrice ?
    pourquoi as tu une matrice et non un vecteur ?
    tu as plusieurs signaux ?
    ou un seul signal et à chaque ligne correspond 1 jours ou 1 mois ou 1 année ? ou autre chose ?

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2020
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Mon signal est crée à partir de données présent dans un fichier texte, il utilise différentes formules.
    Je ne sais pas pourquoi ce n'est pas un vecteur
    Il existe un moyen pour crée un vecteur à partir d'une matrice?

    Merci

  9. #9
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2019
    Messages : 90
    Points : 254
    Points
    254
    Par défaut
    Bonjour,

    Le code de windsim explique (succinctement) la signification physique des matrices :
    % [u,v,w,t,nodes] = windSim(filename) generates spatially correlated wind
    % histories based on an input file "filename" which is a text file.
    % The space is defined using a cartesian coordinate system (x,y,z).
    % The x axis is the horizontal axis aligned with the wind direction.
    % The y axis is the horizontal axis normal to the wind direction.
    % The z axis is the veertical axis.
    % In this simulation the flow is assumed to have only a mean value in the x
    % direction. In other words, mean(v)=mean(w)=0 m/s. This is a common
    % assumption in wind engineering
    Pour si M est une matrice, x = M(k,:); permet de mettre le contenu de la kème ligne de M dans x - qui est donc un vecteur.

Discussions similaires

  1. Problème sur la réalisation d'une requête
    Par soso78 dans le forum Access
    Réponses: 1
    Dernier message: 06/10/2005, 13h17
  2. [Trigger] Comment le réaliser sur une vue ?
    Par mandale dans le forum DB2
    Réponses: 1
    Dernier message: 19/09/2005, 13h43
  3. conception et réalisation d'une application client/serveur
    Par masvivi dans le forum Développement
    Réponses: 1
    Dernier message: 24/08/2005, 12h32
  4. [Radio fréquence] réalisation d'une application
    Par WriteLN dans le forum Développement
    Réponses: 14
    Dernier message: 05/06/2003, 14h36

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