Salut tous le monde,
Je cherche quelqu'un qui peu m'aider sur un programme MATLAB de la courbe d'hystérésis.
Salut tous le monde,
Je cherche quelqu'un qui peu m'aider sur un programme MATLAB de la courbe d'hystérésis.
Bonjour et bienvenue sur le forum,
c'est effectivement un forum d'entraide, mais pour que l'on puisse t'aider, il faudrait nous dire ce que tu as commencé à coder et le point précis qui te bloque.
salut,
voila mon programme qui ne peut pas fonctionner, s'il vous plait, aidez moi et corrigez mes fautes.
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 clear;clc; H= -200:10:200; B=-0.3:0.05:0.3; U0=4*pi*10^-7; alph=1.4*10^-4 ; %Lié à l'interaction entre les domaines A=26; %Facteur de forme pour Man c=0.61 ; %Coecient de réversibilité Msat=285236 ; ; %Aimantation à saturation K=20; %Lié aux pertes par hystérésis n=length(H); e=i; for i=2:n; DH=H(i)-H(i-1); if DH>0 E=1; else E=-1; end M(i-1)=[B(i-1)/U0]-H(i-1); He(i-1)=H(i-1)+alph*M(i-1); if abs(He(i-1))< e He(i-1) = sin(He(i-1))*e end Man(i-1)=Msat*[coth(He(i-1)/A)-(A/He(i-1))]; Mirr(i-1)=[M(i-1)-c*Man(i-1)]/(1-c); DMan(i-1)=(Msat/A)*[1-coth((He(i-1)/A)+(A/He(i-1)))^2] ; %coth^2 a place de coth DMirr(i-1)=[Man(i-1)-Mirr(i-1)]/K*E; %où la constante k est liée à la densité d'énergie moyenne d'ancrage des parois. Le paramètre E prend la valeur +1 quand dH dt > 0 et la valeur -1 quand dH dt < 0. si dMirr/dHe < 0 alors ¢Mirr dHe = 0 if DMirr(i-1)<0; DMirr(i-1)=0; end; DM(i-1)=[(1-c)*DMirr(i-1)]+c*[DMan(i-1)]/1-alph*c*[DMan(i-1)]-alph*(1-c)*[DMirr(i-1)] ; M(i)=M(i-1)+DM(i-1)*DH; B(i)=U0*[H(i)+M(i)] end %hold on plot(H,B) %plot(B) xlabel('H') ylabel('B') title('courbe d-hysterisis')
Qu'est-ce qui ne fonctionne pas? Tu obtiens un message d'erreur? un résultat inattendu?
voila les algorithmes de c programme
Procédure de calcul de B(t) à partir de H(t)
et les constantes:H(t) donné et B(t) connu (initialisation ou pas précédent) H(t + ∆t) donné : ∆H = H(t + ∆t) - H(t) M(t) = ( B(t))/(μ0 -H(t)) - H(t) He(t) = H(t) + alphaM(t) : si –|He(t)| < ε alors He(t) = signe (He(t)).ε Calcul de Man(t)= Msat[coth(He/a)-(a/He)] Calcul de Mirr(t)=( M(t)– cMan(t))/((1- c) ) ∆Man/∆He= Msat/a [1-〖coth〗^2 (He/a)+(a/He)^2] ∆Mirr/∆He =(Man-Mirr)/KE, si ∆Mirr/∆He <0 alors ∆Mirr/∆He =0 dM/dH = ((1-c) dMirr/dHe+c dMan/dHe)/(1-αc dMan/dHe-α(1-c) dMirr/dHe) Calcul de M(t + ∆t) = M(t) +∆M/∆H ∆H Calcul de B(t + ∆t) = μ0 (H(t + ∆t) +M(t + ∆t))
et j'ai remplacé t à i
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 U0=4*pi*10^-7 alph=1.4*10^-4 % Lié à l'interaction entre les domaines A=26; % Facteur de forme pour Man c=0.61 ; % Coefficient de réversibilité Msat=285236 ; % Aimantation à saturation K=20; % Lié aux pertes par hystérésis ε: % je n'ai pas compris ce que cela veut dire !
Merci.
Salut,
on est tous là pour aider mais c'est un forum matlab. donc si tu as un problème qui touche plus ou moins à la maitrise de matlab tu auras plein de réponses. Par contre tu as peu de chances de trouver quelq'un qui va s'investir pour débugger un programme complet. Là il n'y a plus ou moins que toi pour le faire...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager