bonjour,

j ai l équation suivante :
E= A*(uq-Bud-G)/(C*(ud^2+uq^2)-Duq-Fud)
avec A,B,C,D et F et G des constantes fixées.
on sait que ud et uq sont compris entre -10 et 10 et que sqrt(ud^2+uq^2)<=10
je souhaite effectuer un graphe 3D avec ud = X uq =Y et Z=E

j'ai le programme suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
R1 = 0.4;
Ld = 5.173e-3;
Lq = 5.173e-3;
psipm=0.03079;
Zp = 2;
w=Zp*729.4411*2*pi/60;
[uq,ud]= meshgrid ([-10:0.5:10]);
E=zeros(size(ud));
logical_mat=sqrt(ud.^2+uq.^2)<=10;
E(logical_mat)= (Zp*w/Zp*psipm*R1*(uq(logical_mat)-w*psipm-w*(Ld/R1)*ud(logical_mat)))/(R1*ud(logical_mat).^2+R1*uq(logical_mat).^2-w^2*Lq*psipm*ud(logical_mat)-w*psipm*R1*uq(logical_mat));
E(~logical_mat)=NaN;
mesh(ud,uq,F);shading interp;
le problème c'est que matlab me pose le problème d erreur suivant :
??? In an assignment A(I) = B, the number of elements in B and
I must be the same.
donc je change les ud(logical_mat) et les uq(logical_mat) em ud et uq et la le même message d erreur apparait alors que les deux matrices ont la même taille. Comment puis-je faire pour tracer correctement mon graphe ?