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 :

compensation d'energie reactive


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 11
    Points : 4
    Points
    4
    Par défaut compensation d'energie reactive
    bonsoir, je suis étudiante en 2ème année master réseau électrique et je vient de préparé mon mémoire, j'ai quelque difficulté dans la programmation avec Matlab, et j'ai besoin d'aide, bon voici mon programme:
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    while c>err
        c=0;
        % Etape n°4
        % Etape n°5
     
        for j=n:-1:1
            P(j)=PL(j);
            Q(j)=QL(j);
            for k=2:M(j)
                P(j)=P(j)+PL(BR(j,k))+ploss(BR (j,k));
                Q(j)=Q(j)+QL(BR(j,k))+qloss(BR (j,k));
            end
            ploss(j)=(P(j)^2+Q(j)^2)*r(j)/(Zbase*(V(j)^2));
            qloss(j)=(P(j)^2+Q(j)^2)*x(j)/(Zbase*(V(j)^2));
            Pl(j)=P(j)+ploss(j);
            Ql(j)=Q(j)+qloss(j);
            if j==1
                Fq(j)=Ql(j);
                Fd(j)=Pl(j);
            else
                Fq(j)=((Ql(j)*cos(fi(SE(j))))-(Pl(j)*sin(fi(SE(j)))))/V(SE(j));
                Fd(j)=((Pl(j)*cos(fi(SE(j))))+ (Ql(j)*sin(fi(SE(j)))))/V(SE(j));
            end
     
        end
        % Etape n°6
     
        % Etape n°7
        for i=1:n
     
            if i==1
                Vd(RE(i))=1-(r(RE(i))*Fd(RE(i))/Zbase)-(x(RE(i))*Fq(RE(i))/Zbase);
                Vq(RE(i))=-(x(RE(i))*Fd(RE(i))/Zbase)+(r(RE(i))*Fq(RE(i))/Zbase);
            else
                Vd(RE(i))=Vd(SE(i))-(r(RE(i))*Fd(RE(i))/Zbase)-(x(RE(i))*Fq(RE(i))/Zbase);
                Vq(RE(i))=Vq(SE(i))-(x(RE(i))*Fd(RE(i))/Zbase)+(r(RE(i))*Fq(RE(i))/Zbase);
            end
            fi(RE(i))=atan(Vq(RE(i))/Vd(RE(i)));
            c=max(c,abs(V(RE(i))-sqrt((Vd(RE(i)))^2+(Vq(RE(i))) ^2)));
            V(RE(i))=sqrt(Vd(RE(i))^2+Vq(R E(i))^2);
        end
        nb=nb+1;
    end
    et j'ai deux fichier de donnes des donnes de ""9noeud et 34noeud'' sépare au ce programme ('les donnes contient les r et Z.....etc.'), alors je veut faire dans ce programme une condition if par exemple if B=1 le programme il va appelé le fichier de donne de 9noeud et if B=2; il va appelé le fichier de donne de 34noeud et j'arrive pas a trouver une solution S'il vous plais j'ai besoin de votre aide, Merci d'avanace.

  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

    qu'est ce que tu n'arrive pas à faire ?
    lire des fichiers de données ?
    ils sont à quel format ? (n'hésite pas à en mettre un en pièce jointe, même partiellement)

    Fabien

  3. #3
    FLB
    FLB est déconnecté
    Modérateur
    Avatar de FLB
    Homme Profil pro
    Ing. Aérospatiale
    Inscrit en
    Juin 2003
    Messages
    770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ing. Aérospatiale
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2003
    Messages : 770
    Points : 1 185
    Points
    1 185
    Par défaut
    Bonjour
    Citation Envoyé par asmare Voir le message
    if B=1 le programme il va appelé le fichier de donne de 9noeud et if B=2; il va appelé le fichier de donne de 34noeud
    Donc si tu veux charger un fichier différent en fonction de B :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if B == 1
        load '9noeud.mat';
    elseif B==2
        load '34noeud.mat';
    end

  4. #4
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Merci, Mr fabien et Mr florant mon probleme c'est que j'ai plusieur fichiers de donnes et j'ai un seul algorithme alors je veut faire avec la condition "if" pour que mon programme il peut travaille avec un seul fichier de donnes;
    voila les donnes:
    les donnes de 9noeud:
    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
    function [Vbase,Sbase,A]=Matdata(A);
     Vbase=23;
     Sbase=4186;
    % matrice de     SE(i)  RE(i)  résistance  réactance     PL       QL
    % connectivité                   (ohm)      (ohm)       (kw)    (kvar)  
     
          A=        [0       1      0.1233      0.4127      1840       460
                     1       2      0.0140      0.6057      980        340
                     2       3      0.7463      1.2050      1790       446
                     3       4      0.6984      0.6084      1598       1840 
                     4       5      1.9831      1.7276      1610       600
                     5       6      0.9053      0.7886      780        110
                     6       7      2.0552      1.1640      1150       60
                     7       8      4.7953      2.7160      980        130
                     8       9      5.3434      3.0264      1640       200];
     
                 Matdata=A;
    end
    et voici les donnes de 34noeud:
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    function Matdata =A
     Vbase=11;
     Sbase=2873.5;
     
    % matrice de     SE(i)  RE(i)  résistance  réactance     PL       QL
    % connectivité                   (ohm)      (ohm)       (kw)    (kvar)  
     
          A=        [0        1       0.117       0.048       230      142.5
                     1        2       0.10725     0.044       0         0
                     2        3       0.16445     0.04565     230       142.5
                     3        4       0.1495      0.0415      230       142.5 
                     4        5       0.1495      0.0415      0         0
                     5        6       0.3144      0.054       0         0
                     6        7       0.2096      0.036       230       142.5
                     7        8       0.3144      0.054       230       142.5
                     8        9       0.2096      0.036       0         0
                     9        10      0.131       0.0225      230       142.5
                     10       11      0.1048      0.018        137        84                        
                     2        12      0.1572      0.027       72         45
                     12       13      0.2096      0.036        72         45
                     13       14      0.1048      0.018        72         45
                     14       15      0.0524      0.009         13.5      7.5
                     5        16      0.1794      0.0498        230      142.5
                     16       17      0.16445     0.04565       230      142.5
                     17       18      0.2079      0.0473        230      142.5
                     18       19      0.189       0.043         230      142.5
                     19       20      0.189       0.043         230      142.5
                     20       21      0.262       0.045         230      142.5
                     21       22      0.262       0.045         230      142.5
                     22       23      0.3144      0.054         230      142.5
                     23       24      0.2096      0.036         230      142.5
                     24       25      0.131       0.0225        230      142.5
                     25       26      0.1048      0.018         137       85
                     6        27      0.1572      0.027         75        48
                     27       28      0.1572      0.027         75        48
                     28       29      0.1572      0.027         75         48
                     9        30      0.1572      0.027         57        34.5
                     30       31      0.2096      0.036         57        34.5
                     31       32      0.1572      0.027         57        34.5
                     32       33      0.1048      0.018         57        34.5];
                 Matdata=A;
    end
    et le programme c'est le même programme précédent, alors je veut faire une condition avec une variable par exmeple B comme sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    B=input('B=');
    if B==case9
         load 'case9.mat';
    end 
    if Matdata==case34
        Matdata=case9;
    end 
    if Matdata==case69
        Matdata=case9;
    end
    Merci, je veut trouver une solution SVP

  5. #5
    FLB
    FLB est déconnecté
    Modérateur
    Avatar de FLB
    Homme Profil pro
    Ing. Aérospatiale
    Inscrit en
    Juin 2003
    Messages
    770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ing. Aérospatiale
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2003
    Messages : 770
    Points : 1 185
    Points
    1 185
    Par défaut
    Citation Envoyé par asmare Voir le message
    Mr florent
    Salut,
    je comprend que le français ne soit pas la langue maternelle de tout le monde, mais je te remercie d'avance de ne pas écorcher mon prénom
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function [Vbase,Sbase,A]=Matdata(A);
    Pourquoi passes tu A en paramètre?
    Que souhaites tu faire avec cette ligne?

    J'ai l'impression que tu souhaites avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function A = matData1()
        A = %le contenu de ta première fonction
    end
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function A = matData2()
        A = %le contenu de ta seconde fonction
    end
    Et ensuite dans ton code tu pourras faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    B=input('B='); %demande à l'utilisateur
    if B==1
        A_choisie = matData1();
    elseif B == 2
        A_choisie = matData2();
    else
        disp('Veuillez entrer B == 1 ou B == 2');
    end

  6. #6
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    désole Mr florent ,
    avec la fonction ci dessous je veux mettre affiche Vbase et Sbase avec la matrice A, c'est juste pour mettre Vbase et Sbase avec le fichier de données car chaque fichier de donneés a Sbase et Vbase et une matrice A,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Vbase,Sbase,A]=Matdata()
    et cette méthode ne marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    B=input('B='); %demande à l'utilisateur
    if B==1
       Matdata = donnees34noeud;
    elseif B == 2
        A_choisie = donnes69noeud;
    else
        disp('Veuillez entrer B == 1 ou B == 2');
    end
    en lus j'ai plusieurs fichier de donnes alors je veut faire plusieurs conditions if

  7. #7
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 11
    Points : 4
    Points
    4
    Par défaut happy
    je m'excuse une autre foi Mr florent je m'excuse
    et je vous remercier mon programme il marche bien j'ai un petit problème avec la fonction;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function [Vbase,Sbase,A]=Matdata
    car il m'affiche que Vbase et pas Sbase et la matrice A""c'est la matrice de donnes", SVP aide moi, Merci bcp

  8. #8
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Bonsoir,
    je veut aussi affiche les résultat de mon programme sous forme d'une matrice car je vais faire un autre programme qui utilise les résultats d'un programme précédent alors j'ai pas une idée comment je le faire?!

  9. #9
    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 asmare Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function [Vbase,Sbase,A]=Matdata()
    car il m'affiche que Vbase et pas Sbase et la matrice A""c'est la matrice de donnes", SVP aide moi, Merci bcp
    il faut appeler la fonction comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Vbase,Sbase,A]=Matdata
    Citation Envoyé par asmare Voir le message
    Bonsoir,
    je veut aussi affiche les résultat de mon programme sous forme d'une matrice car je vais faire un autre programme qui utilise les résultats d'un programme précédent alors j'ai pas une idée comment je le faire?!
    je ne suis pas sur de comprendre, mais
    affiche A dans la console sous forme d'une matrice

  10. #10
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Bonjour Mr Fabien Grand;
    ce que je veut c'est d'afficher les résultats de programme ci dessous sous forme d'une matrice c'est à dire je veut afficher "V , fi , P , Q" dans une matrice qui s’appele par exemple résultats, je veut crré une matrice et je met tout mes résultats dans cette matrice par exmeple je met tout les V dans la premier colonne de ma matrice "résultats" et je met tout les fi dans la 2ème colonne de la matrice "résultats" et P et Q dans la 3em et la 4em colonne de ma matrice "résultats", respectivement, donc quand j'exécute mon programme il m'affiche une matrice "résultats" qui contient tout ce que je veut afficher;
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    while c>err
        c=0;
            % Etape n°4
            % Etape n°5
     
         for j=n:-1:1
                P(j)=PL(j);
                Q(j)=QL(j);
                for k=2:M(j)
                    P(j)=P(j)+PL(BR(j,k))+ploss(BR(j,k));
                    Q(j)=Q(j)+QL(BR(j,k))+qloss(BR(j,k));
                end
                ploss(j)=(P(j)^2+Q(j)^2)*r(j)/(Zbase*(V(j)^2));
                qloss(j)=(P(j)^2+Q(j)^2)*x(j)/(Zbase*(V(j)^2));     
                Pl(j)=P(j)+ploss(j);
                Ql(j)=Q(j)+qloss(j);
            if j==1
                Fq(j)=Ql(j);
                Fd(j)=Pl(j);
            else
                Fq(j)=((Ql(j)*cos(fi(SE(j))))-(Pl(j)*sin(fi(SE(j)))))/V(SE(j));
                Fd(j)=((Pl(j)*cos(fi(SE(j))))+(Ql(j)*sin(fi(SE(j)))))/V(SE(j));
            end
     
        end
            % Etape n°6
     
            % Etape n°7
            for i=1:n
     
            if i==1
                Vd(RE(i))=1-(r(RE(i))*Fd(RE(i))/Zbase)-(x(RE(i))*Fq(RE(i))/Zbase);
                Vq(RE(i))=-(x(RE(i))*Fd(RE(i))/Zbase)+(r(RE(i))*Fq(RE(i))/Zbase);
            else
                Vd(RE(i))=Vd(SE(i))-(r(RE(i))*Fd(RE(i))/Zbase)-(x(RE(i))*Fq(RE(i))/Zbase);
                Vq(RE(i))=Vq(SE(i))-(x(RE(i))*Fd(RE(i))/Zbase)+(r(RE(i))*Fq(RE(i))/Zbase);
            end
            fi(RE(i))=atan(Vq(RE(i))/Vd(RE(i)));
            c=max(c,abs(V(RE(i))-sqrt((Vd(RE(i)))^2+(Vq(RE(i)))^2)));
            V(RE(i))=sqrt(Vd(RE(i))^2+Vq(RE(i))^2);
            end
        nb=nb+1;
    end
    P;
    Q;
    fi;
    V;

  11. #11
    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
    si les 4 vecteurs V , fi , P , Q sont de même taille (ce qui a l'aire d'etre le cas)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    resultats = [V(:) fi(:) P(:) Q(:)];
    sans le ; à la fin de la ligne pour l'afficher (ou avec disp)

  12. #12
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Merci bcp Mr Fabien Grand,
    mon programme il marche très bien, juste une petite question, est ce que je peut appelé les résultats de ce programme dans un autre programme pour l'utilisé, donc je vais écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    resultats=''ici je vais écrire le nom du mon programme"
    V=resultats(:,1)
    fi=resultats(:,2)

  13. #13
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 11
    Points : 4
    Points
    4
    Par défaut veryy happppy
    , Merci beaucoup beaucoup à vous j'ai trouvé une solution qui marche bien

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 25/03/2013, 11h10
  2. Réactiver mes partitions linux après ...
    Par rvfranck dans le forum Administration système
    Réponses: 2
    Dernier message: 14/01/2006, 11h25
  3. Les largeurs ne se compensent pas
    Par Anduriel dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 20/12/2005, 23h36
  4. probleme avec image reactive
    Par pit9.76 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 02/11/2005, 21h05
  5. [debutant] Changer le curseur au survol d'une zone reactive
    Par cosmos.1097 dans le forum Général Java
    Réponses: 3
    Dernier message: 30/06/2005, 16h19

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