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 :

comment programmer un cycle hysteresis


Sujet :

MATLAB

  1. #1
    Membre du Club
    Homme Profil pro
    etudiant
    Inscrit en
    Mars 2012
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 81
    Points : 48
    Points
    48
    Par défaut comment programmer un cycle hysteresis
    Bonsoir, voila j'ai fais un programme sur MATLAB7.6 EN COUPLAGE avec FEMM4.2, je cherche comment faire une boucle dans ce programme pour simuler un cycle hystérésis dans un point de l'aimant dans un moteur à courant continu à aimant permanent et ce en alimentant l'induit de cette machine par un courant continu qui va varier de 0 à i de saturation. merci.

  2. #2
    Membre éclairé
    Homme Profil pro
    Doctorant automatique
    Inscrit en
    Janvier 2012
    Messages
    446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 446
    Points : 719
    Points
    719
    Par défaut
    Bonjour,

    Bon, j'ai vu que ce n'est pas la première fois que tu postes des messages de demande d'aide, et je constate qu'à chaque fois, personne ne te réponds. Il serait peut-être temps que tu te poses quelques questions. Je prends donc la peine de te répondre et surtout de te donner quelques conseils, mais certainement pas pour la demande que tu as faites. Quand tu demandes de l'aides :

    1) Expose ton problème. On ne va pas chercher à deviner ce que tu cherches à faire, on a autre chose à faire, on a notre vie aussi, tout comme toi, on a nos soucis, et c'est un forum communautaire : personne n'est payé pour aider. Donc si tu ne donnes pas un minimum d'informations, tu ne recevras pas d'aide.

    2) Expose ce que tu as fait. Comme je l'ai dit plus haut, mais en plus bref : on ne va pas tout faire à ta place. Et si on commence à t'expliquer des choses que tu as déjà compris, c'est une perte de temps total pour ceux qui auront pris la peine de t'aider. Ces personnes seront donc agacées et ne voudront peut-être pas continuer à t'apporter leur aide par la suite.

    3) Expose là où tu bloques. En effet, et je radote un peu : on ne vas pas faire ton boulot à ta place gratuitement sans informations et surtout on ne va pas deviner ce qui te pose problème.

    4) Expose de telle sorte à ce qu'un maximum de gens puissent comprendre. Penses que tu t'adresses à des gens qui viennent de tous horizons : certaines personnes qui ne sont pas de ton domaine pourraient te répondre, à condition que tu exposes un minimum ton problème, en détaillant un minimum. Là, des gens qui ne sont pas de ton domaine ne passent pas plus de 15 secondes sur ton post, et ça constitue environ 99,99% des gens qui regardent ton poste... soit actuellement environ tout le monde sauf moi (je constitue à l'heure actuelle le 0,01% restant à moi tout seul)

    5) Expose correctement en bon français (ou anglais au pire) ton problème. Tu es sur un forum français. Je comprends bien que tu n'es pas français, mais un minimum d'effort de rédaction est également extrêmement apprécié, et surtout, on voit très bien si cet effort est fait ou non. Conclusion : si on voit qu'il y a eu un effort de fourni, même si ce n'est pas parfait, on veut répondre. Sinon, on passe encore une fois son chemin. Si le français pose trop de problèmes, l'anglais est aussi bien vu.

    6) Expose avec courtoisie. La politesse, c'est à peu près pareil partout : c'est le seul point positif de ton message.

    7) Expose de manière aérée. Aère ta demande en sautant des lignes.

    Ah oui, et dernier conseil que je n'ai pas encore donné : EXPOSE.

    Tu n'as qu'à regarder les autres messages d'autres personnes : certains reçoivent une dizaine de réponses pour des questions des fois bien plus complexes... Et compares avec tes demandes.

    En d'autres termes, respectes un minimum la charte que tu as acceptée en t'inscrivant sur ce site.

    Sur ce, ma contribution pour t'aider s'arrête là pour l'instant, et j'estime t'avoir apporté une aide monstrueuse.

    Tu peux bien évidemment reposer de nouveau ta question en suivant mes conseils, et je prendrai peut-être le temps de t'aider si je comprends de quoi tu parles (je ne suis pas un spécialiste des hystérésis, mais il se peut que je puisse tout de même t'apporter de l'aide... mais là, la question est trop vaste, donc je n'ai pas envie).

    Cordialement,

  3. #3
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Bravo Tachmou!

    Ta réponse est magnifique. Je regrette seulement qu'elle ne soit postée que dans cette discussion basée sur l'hystérésis et non mise à la disposition de tous.

    D'autre part, vu la question posée par Said Belhadj, je me demande si cette discussion est placée dans le bon forum, car, avant de programmer quoi que soit, il convient de modéliser correctement l'hystérésis que l'on veut simuler. Le pense que le forum algo/maths serait préférable.

    Jean-Marc Blanc

    PS: Voir l'excellent ouvrage de George Polya: "Comment poser et résoudre un problème"

  4. #4
    Membre éclairé
    Homme Profil pro
    Doctorant automatique
    Inscrit en
    Janvier 2012
    Messages
    446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 446
    Points : 719
    Points
    719
    Par défaut
    Bonjour,

    Je te remercie.

    Petit avis personnel : le fait d'être exposé en anglais est refusé sur ce site, j'avais oublié ce détail (ce qui explique que cette partie a été barrée par un modérateur). Je tiens cependant à maintenir ce que j'ai dit, en expliquant un peu plus mon point de vue personnel : je préfère voir quelqu'un qui explique qu'il sait mal parler français, et qu'il préfère exposer en anglais correct, plutôt que de voir quelqu'un qui fait tout mal. Si c'est bien fait, je trouve que c'est mieux. Mais il est vrai que dans ce cas, autant aller sur un forum anglophone où l'on aura plus de chances de trouver des réponses en anglais. Ce que je voulais surtout souligner, c'était de faire un minimum d'effort à exposer correctement.

    ps: je ne connaissais pas ce livre, mais j'ai lu le résumé, et approuve totalement ses idées.

    Cordialement,

  5. #5
    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 FR119492 Voir le message
    Je regrette seulement qu'elle ne soit postée que dans cette discussion basée sur l'hystérésis et non mise à la disposition de tous.
    Ca tombe bien, une discussion similaire est épinglé dans le forum de MATLAB : Nouveaux membres, débutants : lisez attentivement ceci, il me semble que le discours est sensiblement le même. De même ces règles sont rappelées dans le lien du forum principal pointé par Tachmou.

  6. #6
    Membre du Club
    Homme Profil pro
    etudiant
    Inscrit en
    Mars 2012
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 81
    Points : 48
    Points
    48
    Par défaut comment programmer un cycle hysteresis
    Bonjour ;

    Merci pour votre réponse et conseils. En particulier tachmou , FR119492 , magelan.

    Merci aussi pour les membres qui ont répondu dans cette discussion.

    Je m’excuse pour mon français et pour la non-conformité de mes questions dans cette discussion et les autres discussions que j’ai posté.

    Vous avez bien vu tachmou , j’ai posté beaucoup de messages et demandes d’aide, sans aucunes réponses. Oui j’ai posé beaucoup de questions sur ça, pas de réponses ?

    1. J’expose mon problème :

    Je cherche à relever la courbe de première aimantation et le cycle hystérésis dans un point de l’aimant permanent (Alnico) utilisé comme inducteur dans un stator d’un moteur à courant continu à Aimants Permanents.

    2. J’expose ce que j’ai fait :

    J’ai écris un programme, où j’ai modélisé la géométrie (un quart uniquement) et puis j’ai définis les matériaux ; l’entrefer (air) qui est linéaire c’est fait ; le bobinage de l’induit (cuivre) qui est linéaire c’est fait aussi ; il me reste à définir la culasse statorique ; le dos d’induit (fer) et le support de l’aimant permanent (fer) et l’aimant permanent (Alnico)

    3. j’expose où je suis bloqué :

    Comment définir le fer et l’Alnico, qui sont des matériaux non linéaires ?

    4. j’expose de telle sorte à ce qu’un maximum de gens puissent comprendre :

    Je m’adresse aux gens de tous horizons, pour ceux qui m’ont pas compris, je suis désolé, je peux leurs détaillé là où ils m’ont pas bien compris.

    5. j’expose correctement en bon français mon problème :
    Je souhaite qu’il y’a une amélioration de mon français dans mon présent message ?

    6. j’expose avec courtoisie :

    Merci pour vos commentaires.

    7. j’expose d’une manière aérée :

    Merci, j’ai bien compris.
    Merci à tous sur cet espace. Cordialement. Said BELHADJ.

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 883
    Points : 3 431
    Points
    3 431
    Par défaut
    bel effort, mais ça reste très (trop) pointu !
    je suis sur que j'arriverais à programmer un cycle d’hystérésis, mais là je ne sais pas par quel bout le prendre pour te répondre

    4. j’expose de telle sorte à ce qu’un maximum de gens puissent comprendre :
    bein en fait, essayes de l'exprimer d'un point de vue "programmation matlab" plutôt que "métier motoriste" :
    quelles sont les entrées / sorties / paramètres de ton hystérésis et ce que tu n'arrive pas à modéliser ?
    si tu as une courbe de l’hystérésis souhaité, met là en pièce jointe, ça peux aider

    Fabien

  8. #8
    Membre du Club
    Homme Profil pro
    etudiant
    Inscrit en
    Mars 2012
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 81
    Points : 48
    Points
    48
    Par défaut
    Bonjour, merci le fab de votre reponse.

    voila je vous donne quelques renseignements sur le programme que j'ai fais.

    j'alimente le courant de l'inducteur de 0 à 20 [A] c'est la première phase de mon cycle hystérésis que je souhaite relevé par simulation. ensuite je descends de 20 à 0 [A] et je relève la 2ème phase de mon cycle hystérésis. (la 3eme et la 4eme phase c'est facile on la déduit par symétrie)

    j'ai les données de l'aimant permanent seul et aussi du fer , utilisés dans le moteur que j'ai modélisé.

    ces données sont en relation, de telle sorte pour chaque valeur du courant et ce pour chaque phase , j'ai la valeur de B et de H correspondante.

    -Mon premier problème (de programmation est le suivant)
    comment faire appelle à la première valeur calculée (B ou H) pour l'introduire dans le calcul de la 2ème valeur à calculer?

    -Mon deuxième problème, comment programmer la saturation du circuit magnétique , tel que la saturation est atteinte à i=20[A].

    MERCI. Cordialement. said belhadj.

  9. #9
    Membre du Club
    Homme Profil pro
    etudiant
    Inscrit en
    Mars 2012
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 81
    Points : 48
    Points
    48
    Par défaut
    Bonjour fabien, voila d'autres renseignements d'une maniere langage programmation.

    1.quelles sont les entrées?

    le courant de l'induit i qui varie de 0à 20 [A] pour la phase 1 et de 0 à 20 [A] pour la 2ème phase.

    la 2ème entree c'est les permeabilités relatives de l'aimant et du fer qu'on doit entrer dans le programme (je ne sais pas comment?) tel que pour chaque phase on a:

    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
    %phase1: aimant:
    ba_p1=[0,0.55,1.05,1.21,1.31,1.36,1.40];
    ha_p1=[28400,29600,31200,35600,45200,52000,58000];
     
    %fer:
    bf_p1=[0,0.19,0.47,0.73,0.92,1.10,1.19,1.23,1.25];
    hf_p1=[150,159.09,176.13,187.5,250,471.59,710.22,886.36,1102.27];
     
    %phase2: aimant:
    ba_p2=[1.40,1.40,1.36,1.30,1.21,1.09,1.00,0.86,0.76,0.40,0];
    ha_p2=[58000,49600,33200,16000,0,-11600,-18800,-23200,-24400,-26000,-28400];
     
    %fer:
    bf_p2=[1.25,1.25,1.25,1.22,1.19,1.19,1.16,1.10,1.00,0.64,0];
    hf_p2=[1102.27,892.04,710.22,471.59,238.63,85.22,0,-56.81,-96.59,-113.63,-150];
    2. Les sorties
    B et H et mur de l'aimant permanent (mur ets la permeabilité relative de l'aimant permanent)

    3. quels sont les paramètres de mon hystérésis:

    je dois recupere un cycle hysteresis qui sera proche de celui de l'aimant inserré dans le moteur, pour avoir la courbe de cet aimant vous faite plot de B(H) des vecteurs donnés ci-dessus.

    4.ce que tu n'arrive pas à modéliser ?

    la permeabilité varuiable de l'aimant permanent et du fer.
    la saturation qui est pour un i =20[A]
    la recuperation de B et de H automatiquement et les reintroduire dans le calcule des valeurs suivantes.

    5.si tu as une courbe de l’hystérésis souhaité, met là en pièce jointe, ça peux aider

    j'ai les deux courbes de l'aimant et du fer , les valeurs sont données ci-dessus.

    6. je cherche à relever le cycle de l'aimant dans le moteur, qui sera proche de celui donné ci-dessus tou seul.
    merci. cordialement . said belhadj.

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 883
    Points : 3 431
    Points
    3 431
    Par défaut
    Salut

    désolé, mais malgré tes efforts ce n'est toujours pas clair
    as tu commencé à programmer quelque chose ? (si oui montre le)
    peux tu préciser tes histoires de "récuperer la première valeur calculée (b ou H) ..." ?

    sinon tu reste toujours très bloqué dans l'aspect physique de ton problème alors que sur ce forum ce sont plutot des réponses programmation matlab que tu trouvera : je ne sais pas ce que représentent B et H (et je m'en fous) par contre je peux peut etre t'aider à coder ton problème, mais je ne ferai pas l'effort de comprendre ta problématique physique !

    Fabien

  11. #11
    Membre du Club
    Homme Profil pro
    etudiant
    Inscrit en
    Mars 2012
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 81
    Points : 48
    Points
    48
    Par défaut Programmer cycle hystérésis
    Bonjour Fabien ;

    Je vous remercie pour votre réponse.

    Je vous porte ces renseignements.

    1. a tu commencé à programmer quelque chose ?

    Oui ; j’ai finis mon modèle géométrique sur scripte MATLAB7.6 en couplage avec FEMM4.2 (bon j’ai utilisé FEMM4.2 pour résoudre une équation par la méthode des éléments finis)

    Il s’agit d’un quart d’un moteur à courant continu à aimant permanents. Au stade de définition des matériaux je me bloque au niveau de ceux non linéaires. Car leurs perméabilités relatives sont variables donc il faut écrire une boucle ?

    La procédure de ma simulation :
    Je commence à récupérer le 1er point de la 1ere phase de mon cycle, j’entre le i1=0 A (on la 1ere et la 2ème phase uniquement) il doit être d’abscisse H1 ; légèrement inférieur à 28400 A/m (par exemple 27800 A/m) et B1=0 T.

    Je finie ma 1ere phase de mon cycle, en entrant le i_sat=20 A (c’est le courant de saturation) il doit être d’abscisse H_sat=…….. A/m et B_sat=……. T. mon problème ici ; est comment programmer une saturation car si j’augmente mon i d’excitation le B et le H augmentent aussi (car c’est linéaires)

    Pour la 2ème phase c’est identique, mais je fais le sens inverse je commence par le dernier point de la 1ère phase et je décrois le i, mais je dois retrouver des valeurs qui sont H =0 pour B=1,19 T et B=0 pour –H1.

    2. (si oui montre le)
    Voici mon programme sur MATLAB7.6/FEMM4.2 :
    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    clear all
    close all
    clc
    %1-donnees generales du programme
    addpath('c:\\Program Files (x86)\\femm42\\mfiles');
    openfemm;newdocument(0);
    % DEFINITION DU PROBLEME:
    mi_probdef(0,'millimeters','planar',1e-8,1000,20);
    mi_clearselected
    mi_zoomnatural 
     
     
    % spires=156;
    % mesh_air=15;
    % mesh_Cu=5;
    % mesh_AlNICO6=5;
    % mesh_fer=5;
     
     
    courant_induit=0:20
     a2=1;Nel=1;Qel=0.985;
     j_induit=(courant_induit)/(2*a2*Nel*Qel)
     
     
    % 2-Construction de la geometrie:
     
    x0=0; y0=0;
    x1=30; y1=30;
    x2=10.5; y2=10.5;
    x3=20; y3=20;
    x4=23; y4=23;
    x5=29.2; y5=29.2;
    x6=25; y6=25;
    x10=29.99; y10=0.245;
    x11=29.19; y11=0.245;
    x12=24.635; y12=4.2;
    x13=22.78; y13=3;
    x14=26.673; y14=13.724;
    x15=25.962; y15=13.359;
    x16=26.448; y16=14.158;
    x17=25.743; y17=13.780;
    x18=17.245; y18=24.547;
    x19=16.785; y19=23.892;
    x20=16.840; y20=24.827;
    x21=16.391; y21=24.165;
    x22=3.863; y22=29.750;
    x23=3.760; y23=28.956;
    x24=3.375; y24=29.809;
    x25=3.285; y25=29.014;
    x26=23.773; y26=7.733;
    x27=19.870; y27=15.170;
    x28=17.457; y28=17.895;
    x29=10.545; y29=22.666;
    x30=7.142; y30=23.958;
     
    y31=27.719;
    x32=21.586; y32=7.938;
    x33=18.796; y33=13.254;
    x34=15.425; y34=17.060;
    x35=10.484; y35=20.471;
    x36=5.731; y36=22.274;
    y37=21.58;
    x38=17.7; y38=9.29;
    x39=11.35; y39=16.42;
    x40=2.41; y40=19.84;
    x41=72; y41=72;
    x42=62.8; y42=62.8;
    x43=30.8; y43=30.8;
    x44=13.25; y44=13.25;
    x45=27.804; y45=27.804;
    x46=61.386; y46=61.386;
    x47=30; y47=30;
    x49=6; y49=32;
    x50=4; y50=4;
    x51=54; y51=40;
    x52=10; y52=10;
    x53=0.8; y53=29.6;
    x54=25; y54=1.6;
    x55=22; y55=11;
    x56=14; y56=21;
    x57=3; y57=24;
    x58=34.03;y58=34.03;
    x59=31.034;y59=31.034;
    x60=6; y60=50;
    x61=32; y61=7;
    x62=50; y62=7;
    x63=7.1;y63=31.6;
     
    mi_addnode(x63,y63);
    mi_addnode(x0,y0);
    mi_addnode(x1,y0);
    mi_addnode(x0,y1);
    mi_addnode(x2,y0);
    mi_addnode(x0,y2);
    mi_addnode(x3,y0);
    mi_addnode(x0,y3);
    mi_addnode(x4,y0);
    mi_addnode(x0,y4);
    mi_addnode(x5,y0);
    mi_addnode(x0,y5);
    mi_addnode(x6,y0);
    mi_addnode(x0,y6);
    mi_addnode(x10,y10);
    mi_addnode(x11,y11);
    mi_addnode(x12,y12);
    mi_addnode(x13,y13);
    mi_addnode(x14,y14);
    mi_addnode(x15,y15);
    mi_addnode(x16,y16);
    mi_addnode(x17,y17);
    mi_addnode(x18,y18);
    mi_addnode(x19,y19);
    mi_addnode(x20,y20);
    mi_addnode(x21,y21);
    mi_addnode(x22,y22);
    mi_addnode(x23,y23);
    mi_addnode(x24,y24);
    mi_addnode(x25,y25);
    mi_addnode(x26,y26);
    mi_addnode(x27,y27);
    mi_addnode(x28,y28);
    mi_addnode(x29,y29);
    mi_addnode(x30,y30);
    mi_addnode(x0,y31);
    mi_addnode(x32,y32);
    mi_addnode(x33,y33);
    mi_addnode(x34,y34);
    mi_addnode(x35,y35);
    mi_addnode(x36,y36);
    mi_addnode(x0,y37);
    mi_addnode(x38,y38);
    mi_addnode(x39,y39);
    mi_addnode(x40,y40);
    mi_addnode(x41,y0);
    mi_addnode(x0,y41);
    mi_addnode(x42,y0);
    mi_addnode(x0,y42);
    mi_addnode(x43,y0);
    mi_addnode(x0,y43);
    mi_addnode(x45,y44);
    mi_addnode(x46,y44);
    mi_addnode(x44,y45);
    mi_addnode(x44,y46);
    mi_addnode(x0,y58);
    mi_addnode(x44,y59);
    mi_addnode(x58,y0);
    mi_addnode(x59,y44);
     
     
    mi_addsegment(x0,y0,x1,y0);
    mi_addsegment(x0,y0,x0,y1);
    mi_addsegment(x10,y10,x11,y11);
    mi_addsegment(x12,y12,x13,y13);
    mi_addsegment(x14,y14,x15,y15);
    mi_addsegment(x16,y16,x17,y17);
    mi_addsegment(x18,y18,x19,y19);
    mi_addsegment(x20,y20,x21,y21);
    mi_addsegment(x22,y22,x23,y23);
    mi_addsegment(x24,y24,x25,y25);
    mi_addsegment(x26,y26,x32,y32);
    mi_addsegment(x27,y27,x33,y33);
    mi_addsegment(x28,y28,x34,y34);
    mi_addsegment(x29,y29,x35,y35);
    mi_addsegment(x30,y30,x36,y36);
    mi_addsegment(x1,y0,x41,y0);
    mi_addsegment(x0,y1,x0,y41);
    mi_addsegment(x44,y45,x44,y46);
    mi_addsegment(x45,y44,x46,y44);
     
     
    mi_addarc(x1,y0,x0,y1,90,5);
    mi_addarc(x2,y0,x0,y2,90,5);
    mi_addarc(x11,y11,x12,y12,90,5);
    mi_addarc(x13,y13,x3,y0,90,5);
    mi_addarc(x26,y26,x15,y15,90,5);
    mi_addarc(x17,y17,x27,y27,90,5);
    mi_addarc(x28,y28,x19,y19,90,5);
    mi_addarc(x21,y21,x29,y29,90,5);
    mi_addarc(x30,y30,x23,y23,90,5);
    mi_addarc(x25,y25,x0,y31,90,5);
    mi_addarc(x38,y38,x32,y32,90,5);
    mi_addarc(x33,y33,x38,y38,90,5);
    mi_addarc(x39,y39,x34,y34,90,5);
    mi_addarc(x35,y35,x39,y39,90,5);
    mi_addarc(x40,y40,x36,y36,90,5);
    mi_addarc(x0,y37,x40,y40,90,5);
    mi_addarc(x41,y0,x0,y41,90,5);
    mi_addarc(x42,y0,x0,y42,90,5);
    mi_addarc(x43,y0,x45,y44,30,5);
    mi_addarc(x44,y45,x0,y43,30,5);
    mi_addarc(x44,y59,x0,y58,30,5);
    mi_addarc(x58,y0,x59,y44,30,5);
     
     
     
    %Les conditions aux limites
    mi_addboundprop('dirichlet', 0, 0, 0, 0, 0, 0, 0, 0, 0);
     
    mi_selectsegment(x0,y0);
    mi_selectsegment(x2,y0);
    mi_selectsegment(x3,y0);
    mi_selectsegment(x4,y0);
    mi_selectsegment(x6,y0);
    mi_selectsegment(x5,y0);
    mi_selectsegment(x1,y0);
    mi_selectsegment(x43,y0);
    mi_selectsegment(x42,y0);
    mi_selectsegment(x41,y0);
     
    mi_selectsegment(x0,y0);
    mi_selectsegment(x0,y2);
    mi_selectsegment(x0,y3);
    mi_selectsegment(x0,y37);
    mi_selectsegment(x0,y4);
    mi_selectsegment(x0,y6);
    mi_selectsegment(x0,y31);
    mi_selectsegment(x0,y5);
    mi_selectsegment(x0,y1);
    mi_selectsegment(x0,y43);
    mi_selectsegment(x0,y42);
    mi_selectsegment(x0,y41);
     
     
    mi_selectarcsegment(x41,y41);
     
    mi_setarcsegmentprop(5, 'dirichlet', 0, 1);
    mi_setsegmentprop('dirichlet' , 1, 0, 0, 1);
    mi_clearselected
     
     
    murx=1; 
    mury=murx;
    murfx=3000; murfx=murfy;
    Hc=28400;
     
     
     mi_addmaterial('Alnico 5', murax, muray, Hc, 0, 2.25, 0, 0, 1, 0, 0, 0);
    mi_addmaterial('Iron', murfx, murfy, 0, 0, 10.44, 0, 0, 1, 0, 0, 0);
     
     
     
    mi_addmaterial('Air', 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0);
    mi_addmaterial('copper', 1, 1, 0, j_induit, 58, 0, 0, 1, 0, 0, 0);
     
    %les circuits électriques
    mi_addcircprop('A', -courant_induit, 1);
    mi_addcircprop('B', +courant_induit, 1);
    mi_addcircprop('C', -courant_induit, 1);
    mi_addcircprop('D', +courant_induit, 1);
     
    %creation de label
    mi_addblocklabel(x47,y47);
    mi_selectlabel(x47,y47);
    mi_setblockprop('Air', 0, 5, 'none', 0, 1, 0);
    mi_clearselected
     
    mi_addblocklabel(x50,y50);
    mi_selectlabel(x50,y50);
    mi_setblockprop('Air', 0, 5, 'none', 0, 2, 0);
    mi_clearselected
     
    mi_addblocklabel(x61,y61);
    mi_selectlabel(x61,y61);
    mi_setblockprop('Alnico 5', 0, 5, 'none', 180, 3, 0);
    mi_clearselected
    %  
    mi_addblocklabel(x49,y49);
    mi_selectlabel(x49,y49);
    mi_setblockprop('Alnico 5', 0, 5, 'none', 90, 4, 0);
    mi_clearselected
     
    mi_addblocklabel(x60,y60);
    mi_selectlabel(x60,y60);
    mi_setblockprop('Iron', 0, 5, 'none', 0, 5, 0);
    mi_clearselected
     
    mi_addblocklabel(x62,y62);
    mi_selectlabel(x62,y62);
    mi_setblockprop('Iron', 0, 5, 'none', 0, 5, 0);
    mi_clearselected
     
     
    mi_addblocklabel(x51,y51);
    mi_selectlabel(x51,y51);
    mi_setblockprop('Iron', 0, 5, 'none', 0, 6, 0);
    mi_clearselected
     
    mi_addblocklabel(x52,y52);
    mi_selectlabel(x52,y52);
    mi_setblockprop('Iron', 0, 5, 'none', 0, 7, 0);
    mi_clearselected
     
    mi_addblocklabel(x53,y53);
    mi_selectlabel(x53,y53);
    mi_setblockprop('Iron', 0, 5, 'none', 0, 7, 0);
    mi_clearselected
     
    mi_addblocklabel(x54,y54);
    mi_selectlabel(x54,y54);
    mi_setblockprop('copper', 0, 5, 'A', 0, 8, 156);
    mi_clearselected
     
    mi_addblocklabel(x55,y55);
    mi_selectlabel(x55,y55);
    mi_setblockprop('copper', 0, 5, 'B', 0, 9, 156);
    mi_clearselected
     
    mi_addblocklabel(x56,y56);
    mi_selectlabel(x56,y56);
    mi_setblockprop('copper', 0, 5, 'C', 0, 10, 156);
    mi_clearselected
     
    mi_addblocklabel(x57,y57);
    mi_selectlabel(x57,y57);
    mi_setblockprop('copper', 0, 5, 'D', 0, 11, 156);
    mi_clearselected
     
    mi_zoomnatural 
    mi_saveas('mccap77.fem');
    mi_createmesh
    mi_showmesh
    mi_analyse()
    3. peux tu préciser tes histoires de « récupère la première valeur calculée (b ou H)… » ?
    Bon pour commencer, mon entrée est le courant de l’induit je l’excite par un courant = zéro, je dois avoir en sorties le B=0 T et le H= (légèrement inférieur à 28400 A/m)

    4. je ne sais pas ce que représentent B et H (je m’en fous)
    B et H sont les sorties de mon programme de la simulation, tel que je cherche à relever un cycle hystérésis B (H).
    5. par contre peux, peut être t’aider à coder ton problème,
    Je vous remercie infiniment !!!
    6. mais je ne ferai pas l’effort de comprendre ta problématique physique !
    Pas de problème, moi je le ferai car c’est mon travail, mais je ne maîtrise pas la programmation et l’informatique !!! Donc si vous n’avez pas compris des détails dans mon programme vous me faites signe !!!

    Merci bien Fabien et à bientôt.
    Cordialement Said.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 230
    Points : 352
    Points
    352
    Par défaut
    Zoupla.

    Déjà, la quasi-totalité du programme a été rédigée avec FEMM, du coup, je ne sais pas si une aide pourra être apportée ici. Essaye de te rapprocher sur le net d'une communauté maitrisant soit FEMM, soit LUA (j'ai lu en diagonal, mais a priori FEMM en est inspiré).

    J'ai trouvé ce lien (que tu as peut-être déjà vu) qui donne une approche de FEMM sur tout ce qui est magnétique : http://www.femm.info/Archives/doc/tutorial-magnetic.pdf

    A voir également dans ce document ( http://www.femm.info/Archives/doc/octavefemm.pdf), notamment toute la partie Magnetics Post Processor Command Set et peut être la commande mo_blockintegral(type).

    Niveau code, pour l'instant il suit plus ou moins ce qui a dans le premier lien (construction géométrie, noeuds, affectation des matériaux, ...)

    Seul point à voir :
    as-tu une fenêtre juste avec la commande ?
    Sinon pense à essayer avec .

    Désolé de ne pouvoir aider plus que ça. :/

  13. #13
    Membre du Club
    Homme Profil pro
    etudiant
    Inscrit en
    Mars 2012
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 81
    Points : 48
    Points
    48
    Par défaut importer schema sur FEMM sur MATLAB
    Bonjour Cheetor, et merci pour votre reponse;

    oui c'est vrai, la quasi-totalité du programme a été rédigée avec FEMM, du coup, on ne sais pas si une aide pourra être apportée ici.

    je souhaite importer la figure generer par ce scripte ecris sur FEMM dans MATLAB? est ce qu'il ya une commande qui fera ça???

    SI OUI , tant mieux je pourrai trouver de l'aide car tout sera programmer sur MATLAB !!!

    sinon je dois chercher une communauté qui travaille avec FEMM.

    Merci. cordialement.
    said.

Discussions similaires

  1. programmer cycle hysteresis
    Par said_belhadj dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 17/05/2013, 15h32
  2. [Palm] Comment programmer pour Palm Os ?
    Par Pascal Lob dans le forum Mobiles
    Réponses: 7
    Dernier message: 24/08/2007, 09h59
  3. Réponses: 7
    Dernier message: 13/12/2004, 19h23
  4. comment programmer une progressbar
    Par Choucas dans le forum Paradox
    Réponses: 3
    Dernier message: 13/11/2002, 11h07

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