کلیدستان

نسخه‌ی کامل: رسم شکل
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام. میخواهم در برنامه زیر جریان Ids را برحسب DS را رسم کنم
چه دستوری باید بنویسم؟ ایا اشکالی در طرز نوشتن برنامه هست؟؟

کد پی‌اچ‌پی:
Ccsd=0;        CoupleRatio=0;  m_cnt=1;    Efo=0.6;     Wg=0;      Cb=40e-12;  Lg=32e-9;    Lgef=100e-9;    Vfn=0;   Vfp=0;     m=19;         n=0;   Hox=4e-9Kox=16;   TEMP=27;
Lch=Lg;        Lgeff=Lgef;     Lss=32e-9;  Ldd=32e-9;   Kgate=KoxTox=Hox;    Csub=Cb;     Vfbn=Vfn;       Dout=0;  Sout=0;    Pitch=20e-9;  n1=m;  n2=n;     tubes=3;  q=1.60e-19;  
Vpi=3.033;     a=0.2495e-9;    pi=3.1416;  h=6.63e-14;  h_ba=1.0552e-14;       k=8.617e-5;  epso=8.85e-12;  Coeff1_Cgsd=0e-12;  Coeff2_Cgsd=0e-18;   Rsub=1;   Klowk=2;  Cgabove=27e-12;  
Ld_par=15e-9;  Rcnt=3.3e3;     FacR=0.4;   Ef0=0.66;    lambda_op=15e-9;       de_fac=4;    Leff=15e-9;     Lceff=200e-9;       phi_M=4.5;           phi_S=4.5;    sub_pitch=6.4e-9
lambda_ap=500e-9;              photon=0.16;             L_channel=32e-9;       L_sd=16e-9;  L_relax=40e-9;  Cgsub=30e-12;       Ksub=4;              Cc_cnt=26e-12;           
Ccabove=15e-12;                Cc_gate=78e-12;   

       
dia=a*sqrt(power(n1,2)+n1*n2+power(n2,2))/pi;
       
rad=(dia/2);
       
Hei=(Tox+rad);         
       
Ctot=(Cgsub+Cgabove+Cc_gate+Cc_gate);
       
Coeff_Cc=(pi*Klowk*epso);
       
kT=(k*(TEMP+273));        
       
Efi=Efo;   CNTPos=1;   Lgate=Lg;
%
The first perpendicular wave number
K1
=2*pi/(3*a*sqrt(power(n1,2)+n1*n2+power(n2,2)));
%
The 2nd perpendicular wave number
K2
=2*K1;
%
The parallel wave number
 Kp1
=2*pi/Lgate;
      
Kp2=2*Kp1;
      
Kp3=3*Kp1;
      
Kp4=4*Kp1;
      
Kp5=5*Kp1;
      
Kp6=6*Kp1;
      
Kp7=7*Kp1;
      
Kp8=8*Kp1;
      
Kp9=9*Kp1;
%
The energy of the perpendicular component of the mth sub-bandabove Ei
     E1
=Vpi*pi/sqrt(3*(power(n1,2)+n1*n2+power(n2,2)));
     
E2=(2*E1);      
%
The energy of the (m,n)th sub-bandabove Ei
      CoeffE
=sqrt(3)/2*a*Vpi;
      
E11CoeffE*sqrt(power(K1,2)+power(Kp1,2));
      
E12CoeffE*sqrt(power(K1,2)+power(Kp2,2));
      
E13CoeffE*sqrt(power(K1,2)+power(Kp3,2));
      
E14CoeffE*sqrt(power(K1,2)+power(Kp4,2));
      
E15CoeffE*sqrt(power(K1,2)+power(Kp5,2));
      
E16CoeffE*sqrt(power(K1,2)+power(Kp6,2));
      
E17CoeffE*sqrt(power(K1,2)+power(Kp7,2));
      
E18CoeffE*sqrt(power(K1,2)+power(Kp8,2));
      
E19CoeffE*sqrt(power(K1,2)+power(Kp9,2));
      
      
En11=E11-E1;
      
En12=E12-E1;
      
En13=E13-E1;
      
En14=E14-E1;
      
En15=E15-E1;
      
En16=E16-E1;
      
En17=E17-E1;
      
En18=E18-E1;
      
En19=E19-E1;
      
      
Coeff_J11 =  Kp1/sqrt(power(K1,2)+power(Kp1,2));
      
Coeff_J12 =  Kp2/sqrt(power(K1,2)+power(Kp2,2));
      
Coeff_J13 =  Kp3/sqrt(power(K1,2)+power(Kp3,2));
      
Coeff_J14 =  Kp4/sqrt(power(K1,2)+power(Kp4,2));
      
Coeff_J15 =  Kp5/sqrt(power(K1,2)+power(Kp5,2));
      
Coeff_J16 =  Kp6/sqrt(power(K1,2)+power(Kp6,2));
      
Coeff_J17 =  Kp7/sqrt(power(K1,2)+power(Kp7,2));
      
Coeff_J18 =  Kp8/sqrt(power(K1,2)+power(Kp8,2));
      
Coeff_J19 =  Kp9/sqrt(power(K1,2)+power(Kp9,2));
      
       
FDOS11 = (E11)/sqrt(abs(power((E11),2)-power(E1,2)));
       
FDOS12 = (E12)/sqrt(abs(power((E12),2)-power(E1,2)));
       
FDOS13 = (E13)/sqrt(abs(power((E13),2)-power(E1,2)));
       
FDOS14 = (E14)/sqrt(abs(power((E14),2)-power(E1,2)));
       
FDOS15 = (E15)/sqrt(abs(power((E15),2)-power(E1,2)));
       
FDOS16 = (E16)/sqrt(abs(power((E16),2)-power(E1,2)));
       
FDOS17 = (E17)/sqrt(abs(power((E17),2)-power(E1,2)));
       
FDOS18 = (E18)/sqrt(abs(power((E18),2)-power(E1,2)));
       
FDOS19 = (E19)/sqrt(abs(power((E19),2)-power(E1,2)));
       
       
FDOS111 = (E11-photon)/sqrt(abs(power((E11-photon),2)-power(E1,2)));
       
FDOS122 = (E12-photon)/sqrt(abs(power((E12-photon),2)-power(E1,2)));
       
FDOS133 = (E13-photon)/sqrt(abs(power((E13-photon),2)-power(E1,2)));
       
FDOS144 = (E14-photon)/sqrt(abs(power((E14-photon),2)-power(E1,2)));
       
FDOS155 = (E15-photon)/sqrt(abs(power((E15-photon),2)-power(E1,2)));
       
FDOS166 = (E16-photon)/sqrt(abs(power((E16-photon),2)-power(E1,2)));
       
FDOS177 = (E17-photon)/sqrt(abs(power((E17-photon),2)-power(E1,2)));
       
FDOS188 = (E18-photon)/sqrt(abs(power((E18-photon),2)-power(E1,2))); 
       
FDOS199 = (E19-photon)/sqrt(abs(power((E19-photon),2)-power(E1,2)));
       
       
delta_phib=0.824;  
      
DS=0:0.1:0.9
 
%*********************************************************************************************************** 
      
fermi_s11 1./(1+exp((E11-delta_phib)./kT));
      
fermi_s12 1./(1+exp((E12-delta_phib)./kT));
      
fermi_s13 1./(1+exp((E13-delta_phib)./kT));
      
fermi_s14 1./(1+exp((E14-delta_phib)./kT));
      
fermi_s15 1./(1+exp((E15-delta_phib)./kT));
      
fermi_s16 1./(1+exp((E16-delta_phib)./kT));
      
fermi_s17 1./(1+exp((E17-delta_phib)./kT));
      
fermi_s18 1./(1+exp((E18-delta_phib)./kT));
      
fermi_s19 1./(1+exp((E19-delta_phib)./kT));
      
      
fermi_d11 1./(1+exp((E11-delta_phib+Vds)./kT));
      
fermi_d12 1./(1+exp((E12-delta_phib+Vds)./kT));
      
fermi_d13 1./(1+exp((E13-delta_phib+Vds)./kT));
      
fermi_d14 1./(1+exp((E14-delta_phib+Vds)./kT));
      
fermi_d15 1./(1+exp((E15-delta_phib+Vds)./kT));
      
fermi_d16 1./(1+exp((E16-delta_phib+Vds)./kT));
      
fermi_d17 1./(1+exp((E17-delta_phib+Vds)./kT));
      
fermi_d18 1./(1+exp((E18-delta_phib+Vds)./kT));
      
fermi_d19 1./(1+exp((E19-delta_phib+Vds)./kT));

    %**************************************************************************************  
  %
calculate current componet for channell with op&ap scatt
      current_sub11 
= ((fermi_s11) - (fermi_d11))*Coeff_J11;
      
current_sub12 = ((fermi_s12) - (fermi_d12))*Coeff_J12;
      
current_sub13 = ((fermi_s13) - (fermi_d13))*Coeff_J13;
      
current_sub14 = ((fermi_s14) - (fermi_d14))*Coeff_J14;
      
current_sub15 = ((fermi_s15) - (fermi_d15))*Coeff_J15;
      
current_sub16 = ((fermi_s16) - (fermi_d16))*Coeff_J16;
      
current_sub17 = ((fermi_s17) - (fermi_d17))*Coeff_J17
      
current_sub18 = ((fermi_s18) - (fermi_d18))*Coeff_J18;
      
current_sub19 = ((fermi_s19) - (fermi_d19))*Coeff_J19;
      
      
current_sub_1 current_sub11 +current_sub12 +  current_sub13 current_sub14 current_sub15 current_sub16current_sub17 +current_sub18 +current_sub19 ;  
       
Coeffj=4*q*q/h/1e-20;
       
CocoJ=sqrt(3)*a*pi*Vpi;
       
JFET =Coeffj*CocoJ/Lgate*(current_sub_1);
       
Rs=7.04*1e3;
       
Ids=(JFET./(1+JFET*Rs))*0.6
       Vds
=DS-(Ids*10.78*1e3

 
سلام.
اگر برنامه را اجرا کنید، خطای زیر را می دهد :

کد:
??? Undefined function or variable 'Vds'.

Error in ==> Untitled10 at 97
      fermi_d11 = 1./(1+exp((E11-delta_phib+Vds)./kT));

که گفته شده، متغیر  Vds را تعریف نکرده اید (در صورتی که محاسبه Vds در خط آخر برنامه وجود دارد).
برای رسم هم، معمولا از دستور plot استفاده می شود (مقادیر دو متغیر را به دست آورده و سپس با plot رسم کنید).
در ضمن، فرصتی برای چک کردن کل برنامه ندارم و تنها می توانم راهنمایی کنم.
سلام مجدد.
منظورم این نبود که کل برنامه را چک کنید. شما بنا را بر این بگذارید که درست است!!
فقط میخوام برای رسم شکل بهم کمک کنید.
چه کار کنم که این خطا را ندهد و به ازای DS=[0 0.9] جریان Ids  را رسم کند.
در همان ارسال قبل تذکر دادم که در میانه برنامه، مقدار یک متغیر مورد نیاز است که قرار است در آخر برنامه به دست آید (یعنی تناقض !). این مورد نشان می دهد که برنامه با بی دقتی نوشته شده است. 
من در اینگونه موارد، اصلا دیگه کد رو نمی خونم و کاملا رهاش می کنم.
 تازه این مورد رو که نمیشه کاریش کرد، باید ببینید که نویسنده برنامه، چه فرمول هایی رو شبیه سازی کرده. 
در ضمن شما باید با نحوه خطایابی آشنا شوید، خیلی راحت می توانستید برنامه را اجرا کنید و ببینید که این خطا را می دهد و با دنبال کردن کدهای مربوط به Vds ، ببینید که چرا تعریف نشده. 
برای استفاده از دستور plot هم به مباحث سایت مراجعه نمایید (اگر اصرار دارید که برنامه را رها کرده و تنها شیوه رسم را بگویم، پاسخ همین است).