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

Simulink Discussion :

Somme d'échantillons avec pas irrégulier


Sujet :

Simulink

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 34
    Points : 36
    Points
    36
    Par défaut Somme d'échantillons avec pas irrégulier
    Bonjour,

    Voilà, avec une recherche sur le net concernant mon problème, j'ai fini par venir ici pour demander votre avis.

    Je suis sur simulink, et j'ai besoin de faire un sommer les amplitude des échelons de mon signal qui est un signal escalier croissant, le pas de se signal n'est pas défini (on va dire aléatoire), Chose qui est vraiment difficile pour moi de réaliser dans Simulink.

    J'ai essayé avec un intégrateur (reset, valeur initial), ça n'a pas donné grand chose, vu qu'il utilise le pas de la simulation pour l'intégration, j'ai fait une loop avec un retard, pas grand chose aussi, toujours le problème de ce pas. Alors j'ai fait un sous système trigger et enable ... il y a toujours de petits soucis, vu que ce dernier aura besoin d'un retard dans la loop ...

    Mon dernier essai (que je n'ai pas terminé) c'est de faire un bloc de fonction, mais là, je ne sais pas vraiment comment je peux garder l'ancienne valeur ou même initialiser mes variables pour t=0.

    Voilà, je suis preneur de toutes les idées et pas seulement de la solution.

    Merci de votre lecture.

  2. #2
    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

    tu peux utiliser un bloc qui détecte les fronts montants (u>u/z) et sommer la difference avec le pas précedent seulement à ces moment là par exemple

    cela dit, la somme des échelons d'un escalier croissant est égal à la valeur courant moins la valeur initiale me semble t'il, non ?

    Fabien

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 34
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par le fab Voir le message
    salut
    Salut !

    Citation Envoyé par le fab Voir le message
    salut

    tu peux utiliser un bloc qui détecte les fronts montants (u>u/z) et sommer la difference avec le pas précedent seulement à ces moment là par exemple

    Fabien
    On ne va que parler de l'amplitude (le temps n'est pas utile pour mon programme), avec le bloc du front montant je peux savoir la nouvelle valeur de mon escalier, du coup je dois la sommer avec la précédente, là, j'aurais besoin d'un retour avec retard (unit delay), ça pose vraiment problème si je fais ça, mes résultats sont faux.



    Citation Envoyé par le fab Voir le message
    salut

    cela dit, la somme des échelons d'un escalier croissant est égal à la valeur courant moins la valeur initiale me semble t'il, non ?

    Fabien
    Cela te donnera l'amplitude du signal entre la valeur initiale et finale.
    ex : prenons une signal escalier avec un pas d'une unité avec T = 5 et une augmentation de 1 pour chaque échelon, cela nous donne :
    Avec ta méthode : pas final - pas initial = 4-0 = 4
    Ce que je veux : 0+1+2+3+4 = 10

    Merci pour ta réponse.

  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
    comme ca ? :
    Nom : Capture.JPG
Affichages : 1737
Taille : 18,3 Ko

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 34
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par le fab Voir le message
    comme ca ? :
    Nom : Capture.JPG
Affichages : 1737
Taille : 18,3 Ko
    Merci pour ta réponse, à la sortie du switch, c'est une série d'échantillons, cela pose un problème pour l'intégration, je ne sais pas comment je peux expliquer ça, mais disons, que l'intégrateur prend comme unité de temps x, alors l'échantillon sera à un y qui donne : y << x, si tu as modifié quelques paramètres dans la sample time du SIMULINK ou quelque chose d'autres, je serais preneur ^^.

    Hier soir, j'ai trouvé une solution qui a l'air de bien marché (ça ma laissé même le temps d'être à l'heure pour le match d'hier). J'ai créé un bloc de matlab function, que j'ai mis dons un triggered enabled subsystem, je lie l'entrée du trigger et du enable à la sorti du switch de ton modèle (comme ça, je suis sûr que ma fonction ne s'exécutera qu'une fois). De plus, comme mon but n'est pas seulement de calculer cette somme, alors ça me va parfaitement, car je mettrai d'autres opérations dans mon code du block.

    Voilà, seulement le code pour le compteur dans mon bloc de Matalb function

    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
     
    function y = fcn(u)
     
     
    % Déclaration des variables locales du block  
     persistent Compt 
     
     %Initialisation des variables locales
     if isempty(x)
          Compt = 0;
     end
     
    Compt = Compt +u;
     
    y=x;

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 34
    Points : 36
    Points
    36
    Par défaut
    Merci pour tout et bonne journée.

  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
    comme ca :
    Nom : Capture.JPG
Affichages : 1677
Taille : 19,7 Ko

    sinon tu as le bloc "weighted sample time" pour remultiplier par le temps d'échantillonage du pas en cours

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 34
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par le fab Voir le message
    comme ca :
    Nom : Capture.JPG
Affichages : 1677
Taille : 19,7 Ko
    J'ai déjà essayé, mon modèle est un point plus complexe que ça, je crois même que je suis allé voir le reset integrator, qui recharge à chaque fois la valeur initiale, dans mon cas, ça ne m'a rien donné malheureusement.

    Citation Envoyé par le fab Voir le message
    comme ca :
    sinon tu as le bloc "weighted sample time" pour remultiplier par le temps d'échantillonage du pas en cours
    je crois qu'on peut faire quelque chose avec ça, si on arrive à avoir le temps entre deux fronts ... Mais, même si ça marche, c'est moins intéressant pour moi, vu que, il y a d'autres opérations à faire, et en block de simulink, ça prendrait beaucoup de place, contrairement à un bloc function Matlab.

    Dans un avenir proche, je serais amené à utiliser le "weighted sample time", pour faire, deux pas dans mon programme, peut être que je serai emmené à poser deux ou trois question ^^.

    Merci.

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

Discussions similaires

  1. Boucle for avec pas irrégulier
    Par Hammid11 dans le forum MATLAB
    Réponses: 8
    Dernier message: 26/05/2015, 09h50
  2. Somme ne s'actualise pas
    Par eknd dans le forum Excel
    Réponses: 1
    Dernier message: 19/09/2007, 14h38
  3. Calcul d'une somme qui ne retourne pas NULL
    Par Pilloutou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/09/2007, 11h56
  4. Somme de requete avec valeur NULL
    Par maxeur dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 12/04/2007, 10h19
  5. somme de cellule avec une condition
    Par fullcircle dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/06/2006, 07h17

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