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 :

Utilisation d'un algo d'optimisation matlab sur une fonction "signal-block" dans simulink


Sujet :

Simulink

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 542
    Points : 187
    Points
    187
    Par défaut Utilisation d'un algo d'optimisation matlab sur une fonction "signal-block" dans simulink
    Bonjour,

    J'aimerais pouvoir utiliser une fonction matlab d'optimisation qui permet de rechercher le minimum d'une fonction dans un programme simulink.
    Ma difficulté provient que ma fonction d'optimisation demande en entrée la fonction à optimiser définie par un handle.
    Or, dans Simulink, je n'ai la fonction que sous la forme d'un bloc signal.
    Comment peut-on utiliser une fonction (ma fonction optimisation) qui demande le handle d'une fonction (la fonction à optimiser) sur une fonction défini dans Simulink?
    Merci pour votre aide.

  2. #2
    Membre habitué
    Profil pro
    Doctorant
    Inscrit en
    Mars 2011
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2011
    Messages : 147
    Points : 196
    Points
    196
    Par défaut
    Est ce du temps réel ou tu exécutes la fonction à la fin d'une simulation avec Simulink ?
    De quelle fonction d'optimisation s'agit-il ? As tu un exemple sur lequel cela fonctionne ? (pourquoi d'habitude, on a un handle de la fonction à optimiser, qu'est ce qui change ?)

    Matersss

  3. #3
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 881
    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 881
    Points : 3 429
    Points
    3 429
    Par défaut
    salut

    je ne suis pas bien sur de comprendre
    il est possible d'optimiser une fonction définie par un modèle simulink
    il suffit d'encapsuler l'appel au simulateur (via l'instruction sim) dans une fonction au format demandé par ta fonction d'optimisation

    est cela que tu souhaite faire ?
    ou tu souhaite optimiser une fonction pendant la simulation ?
    Fabien

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 542
    Points : 187
    Points
    187
    Par défaut
    Bonjour,

    Merci Fabien pour ton retour.

    Ce que je cherche à faire c'est exactement le deuxième point que tu mentionnes à savoir :
    une optimisation inline c'est-à-dire pendant la simulation.

    En d'autres termes, je cherche à utiliser dans un modèle simulink des algorithmes d'optimisation qui ont été développé dans matlab.

    Voici par exemple comment ces fonctions d'optimisation sont utilisées dans matlab:

    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
    % Runs various limited-memory solvers on 2D rosenbrock function for 25
    % function evaluations
     
    fprintf('---------------------------------------\n');
    fprintf('x1 = %.4f, x2 = %.4f (starting point)\n',4,1.5);
    fprintf('x1 = %.4f, x2 = %.4f (optimal solution)\n',0,0);
    fprintf('---------------------------------------\n');
     
    options = [];
    options.display = 'full';
    options.progTol = 0.01;
     
    % Steepest Descent
    options.Method = 'sd';
    options.LS_interp = 0;
    x = minFunc(@f_2V,[4 1.5]',options);
    fprintf('x1 = %.4f, x2 = %.4f (minFunc with steepest descent)\n',x(1),x(2));
     
    fprintf('---------------------------------------\n');
    Les algorithmes d'optimisation que je cherche à utiliser sont en pièces jointes de ce post. Plus de renseignements sur ces algos (en libre accès) sont donnés sur la page suivante :https://www.cs.ubc.ca/~schmidtm/ puis voir la partie Code.

    Merci d'avance pour ton retour
    Fichiers attachés Fichiers attachés

  5. #5
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 881
    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 881
    Points : 3 429
    Points
    3 429
    Par défaut
    alors je te conseille de bien tout écrire ta partie optimisation encapsulée dans des fonctions (.m)
    puis de les appeler via le bloc "interpreted matlab function"

    sinon les fonctions d'optimisations en général prennent comme paramètre soit un handle vers la fonction soit le nom de la fonction
    il me semble même que l'on peut mettre le nom de la fonction entre crochet
    sinon le symbole @ suivit du nom de la fonction est un handle !

Discussions similaires

  1. Réponses: 6
    Dernier message: 09/02/2011, 11h15
  2. intérêt d'utiliser un pointeur sur une fonction
    Par ikuzar dans le forum Débuter
    Réponses: 3
    Dernier message: 24/01/2011, 23h47
  3. Réponses: 9
    Dernier message: 02/09/2008, 14h52
  4. utiliser l'exé de mon projet VB6 sur une machine ne contenant pas VB6
    Par kouassi_denis dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 22/02/2007, 15h57
  5. [Optimisation] Problème sur une requête UNION.
    Par françois62 dans le forum Requêtes
    Réponses: 5
    Dernier message: 28/06/2005, 17h08

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