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 :

Interpolation (4 paramètres)


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 9
    Points : 3
    Points
    3
    Par défaut Interpolation (4 paramètres)
    Bonjour

    Je dois réussir à obtenir une fonction d'interpolation impliquant 4 paramètres pour arriver à un résultat; j'ai essayé d'utiliser la fonction interpn et je n'y arrive malheureusement pas.

    Je vous mets le script que j'ai écris:
    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
    %% Importation of values
    A=xlsread('C:\Users\Thomas\Documents\yop.xlsx','B2:Y6');
     
    % Defining of columns and raws
     
    sizem=size(A);
    rowsA=sizem(1);
    columnsA=sizem(2);
     
    % Assigning values to their names
     
    for i=1:1:columnsA
        freq(i)=A(1,i);      %Frequency of the motor (Hz)
        Tempin(i)=A(2,i);   %Temperature gas compressor in (°C)
        Presout(i)=A(3,i);   %Pressure gas HP(out) (bara)
        Presin(i)=A(4,i);    %Pressure gas LP (in) (bara)
        Power(i)=A(5,i);      %Power (kW) 
    end
     
     
     
    Power = @(freq,Tempin,Presout,Presin)Presout.*exp(-freq.^2 - Tempin.^2 - Presin.^2);
     
    [freq,Tempin,Presout,Presin] = ndgrid(25:1:60,40:0.05:42,9:0.2:12,2:0.2:6);
    v = Power(freq,Tempin,Presout,Presin);
    [freqi,Tempini,Presouti,Presini] = ndgrid(25:0.5:60,-40:0,025:42,9:0.1:1,0:0.5:10);
    vi = interpn(feq,Tempin,Presout,Presin,v,freqi,Tempini,Presouti,Presini,'spline')
    Je prends les données via un tableur et ensuite j'essaye de construire une interpolation comme expliquée dans l'aide de MATLAB mais impossible d'arriver à un résultat .

    Merci d'avance pour votre aide.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    D'après le code qui suit, les variables que tu obtiens de ton fichier Excel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    % Assigning values to their names
     
    for i=1:1:columnsA
        freq(i)=A(1,i);      %Frequency of the motor (Hz)
        Tempin(i)=A(2,i);   %Temperature gas compressor in (°C)
        Presout(i)=A(3,i);   %Pressure gas HP(out) (bara)
        Presin(i)=A(4,i);    %Pressure gas LP (in) (bara)
        Power(i)=A(5,i);      %Power (kW) 
    end
    code qui peut être simplifié en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    freq = A(1,:);      %Frequency of the motor (Hz)
    Tempin = A(2,:);   %Temperature gas compressor in (°C)
    Presout = A(3,:);   %Pressure gas HP(out) (bara)
    Presin = A(4,:);    %Pressure gas LP (in) (bara)
    Power = A(5,:);      %Power (kW)
    ne servent pas dans la suite : tu construis une simple grille avec ngrid à laquelle tu appliques la fonction donnée dans l'exemple qui écrase tes données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Power = @(freq,Tempin,Presout,Presin)Presout.*exp(-freq.^2 - Tempin.^2 - Presin.^2);
     
    [freq,Tempin,Presout,Presin] = ndgrid(25:1:60,40:0.05:42,9:0.2:12,2:0.2:6);
    v = Power(freq,Tempin,Presout,Presin);
    Il te faut utiliser TES données directement.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Je comprends bien pour ce qu'il en est d'écraser les données.
    Mais je dois quand même bien créer une fonction comme je l'ai fait au début de mon code?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Power = @(freq,Tempin,Presout,Presin)Presout.*exp(-freq.^2 - Tempin.^2 - Presin.^2);
    Mon problème, c'est ensuite comment obtenir les constantes de ma fonctions.
    Il y a peut-être une autre fonction dans MATLAB pour ce genre d'utilisation?

    Je suis désolé, je reprends MATLAB après un très long arrêt et c'est pas forcément évident.

    Merci d'avance

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par tomasson974 Voir le message
    Mon problème, c'est ensuite comment obtenir les constantes de ma fonctions.
    Que cherches-tu à obtenir précisément ?

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    J'ai une feuille EXCEL avec 5 valeurs pour différentes simulations:
    4 paramètres d'entrée(freq, Tempin, Presin, Presout)
    1 paramètre de sortie(Power)

    Je veux obtenir un modèle tel que :
    fonction(4 paramètre d'entrée)= paramètre de sortie

    Merci d'avance

  6. #6
    Invité
    Invité(e)
    Par défaut
    Dans ce cas, l'interpolation n'est pas adaptée

    As-tu une idée du modèle (fonction, ordre,...) ?
    D'autres informations ?

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Je n'ai aucune autre information...
    La question est de créer une black box avec 4 paramètres entrants et 1 sortants, ceux-ci étant tous connus.
    J'avais commencé en bossant avec excel et en montant un modèle comme ça( j'obtiens environ 5 % d'erreur) mais je voudrais atteindre un modèle plus proche encore de la réalité.
    J'ai pas mal fouillé sur les forums, sur le net et j'ai rien trouvé. Je pensais que MATLAB pouvait faire ca en fait.

    Merci d'avance

  8. #8
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,
    Citation Envoyé par tomasson974 Voir le message
    J'ai pas mal fouillé sur les forums, sur le net et j'ai rien trouvé. Je pensais que MATLAB pouvait faire ca en fait.
    Matlab peut faire beaucoup de chose, encore faut-il lui poser les bonnes questions...

    Quel modèle as-tu utilisé sous excel?

  9. #9
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Bonjour



    Gros bidouillage
    Sur EXCEL, j'avais tracé des graphes (Power en fonction de freq/Tempin/......)
    J'avais ensuite trouvé les équations de regression( polynomiale, exponentionnelle,...). J'avais calculé l'erreur moyenne avec les données expérimentales(Power).
    J'ai donc gardé la simulation qui avait la plus petite erreur. Si ce n'est pas clair je peux réexpliquer.

    Merci d'avance

    Cordialement

  10. #10
    Invité
    Invité(e)
    Par défaut
    Que représentent ces données ? Ont-elles un lien avec un système physique ?
    N'as-tu pas la possibilité de l'étudier afin de connaître son modèle ?

    Toujours est-il que sans modèle, il sera très dur de t'aider

  11. #11
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Ce système est défini par un compresseur hybride donc impossible à définir. J'ai des données expérimentales concernant la fréquence, la température d'entrée, la pression d'entrée, la pression de sortie et la puissance.

    Je voudrais avoir un système de black box qui me permettent d'aboutir à la puissance via les 4 paramètres initiaux.
    Sans modèle, je peux directement laisser tomber?
    Le modèle n'a pas beaucoup d'importance, on peut très bien avoir une forme polynomiale mais comment définir les coefficient par exemple dans ce cas la.

    Merci d'avance

  12. #12
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Bonjour
    Après recherche, je chercherais les constantes du modèle suivant:

    Power=C1*Frequency+C2*Temperaturein+C3*Pressureout+C4*Pressurein+C5*frequency*Temperautrein+C6*Frequency*Pressureout+C7*Frequency*Pressurein+C8*Temperaturein*Pressureout+C9*Temperaturein*Pressurein+C10*Pressureout*Pressurein+C11

    Je connais les valeurs de Power/Temperaturein/Pressurein/Pressure out et j'aimerais calculer les valeurs de toutes mes constantes Cnumero.

    Merci d'avance

  13. #13
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    ton modèle est linéaire, tu dois pouvoir utiliser l'opérateur mldivide (ton équation est de la forme AX=B).

Discussions similaires

  1. Interpolation multi-paramètres
    Par GagnetYvon dans le forum Mathématiques
    Réponses: 6
    Dernier message: 19/06/2012, 18h39
  2. [FLASH MX] Interpolations de formes
    Par SamDaKap dans le forum Flash
    Réponses: 7
    Dernier message: 13/04/2005, 17h12
  3. [SWT] Problème de paramètre GridData
    Par yolepro dans le forum SWT/JFace
    Réponses: 4
    Dernier message: 06/12/2002, 11h37
  4. passage en paramètre d'un array dynamique 2D
    Par Guigui_ dans le forum Langage
    Réponses: 4
    Dernier message: 27/11/2002, 20h47
  5. Paramètre requete SQL (ADOQuery)
    Par GaL dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/07/2002, 12h24

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