انجمن سایت کلیدستان


رتبه موضوع:
  • 1 رای - 1 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
رسم شکل

رسم شکل

#1
سلام. میخواهم در برنامه زیر جریان 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

 
پاسخ

رسم شکل

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

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

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

که گفته شده، متغیر  Vds را تعریف نکرده اید (در صورتی که محاسبه Vds در خط آخر برنامه وجود دارد).
برای رسم هم، معمولا از دستور plot استفاده می شود (مقادیر دو متغیر را به دست آورده و سپس با plot رسم کنید).
در ضمن، فرصتی برای چک کردن کل برنامه ندارم و تنها می توانم راهنمایی کنم.
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

رسم شکل

#3
سلام مجدد.
منظورم این نبود که کل برنامه را چک کنید. شما بنا را بر این بگذارید که درست است!!
فقط میخوام برای رسم شکل بهم کمک کنید.
چه کار کنم که این خطا را ندهد و به ازای DS=[0 0.9] جریان Ids  را رسم کند.
پاسخ

رسم شکل

#4
در همان ارسال قبل تذکر دادم که در میانه برنامه، مقدار یک متغیر مورد نیاز است که قرار است در آخر برنامه به دست آید (یعنی تناقض !). این مورد نشان می دهد که برنامه با بی دقتی نوشته شده است. 
من در اینگونه موارد، اصلا دیگه کد رو نمی خونم و کاملا رهاش می کنم.
 تازه این مورد رو که نمیشه کاریش کرد، باید ببینید که نویسنده برنامه، چه فرمول هایی رو شبیه سازی کرده. 
در ضمن شما باید با نحوه خطایابی آشنا شوید، خیلی راحت می توانستید برنامه را اجرا کنید و ببینید که این خطا را می دهد و با دنبال کردن کدهای مربوط به Vds ، ببینید که چرا تعریف نشده. 
برای استفاده از دستور plot هم به مباحث سایت مراجعه نمایید (اگر اصرار دارید که برنامه را رها کرده و تنها شیوه رسم را بگویم، پاسخ همین است).
 
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط شماره مجازی امارات


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان