العيد 1978
2016-04-09, 17:37
بسم الله الرحمان الرحيم
من فضلكم اخواني اريد مساعدة عاجلة في كتابة معادلة فيزيائية في برنامج Matlab
ارجوا من احد الخبراء في هذا المجال ان يعطيني الموافقة بأن يساعدني
لكي ابعث له المعادلة الفيزيائية و كل المعطيات اللازمة
جزاكم الله خيرا
يمكن تحميل المعادلات الفيزيائية التي اريدها في الماتلاب في الملف المرفق
من المعادلات فهمت انك تريد حساب current density J حيث u potential أضن يمكنك ان تجد برامج جاهزة و لكن باستعمال لغةC للحصول على الحلول الرقمية .
العيد 1978
2016-04-09, 21:55
فعلا . من فضلك إذا كنت تفهم في الماتلاب اوجدلي البرنامج لأنني لا افقه فيه شيئا
و الف رحمة على والديك
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%
%
% Full transient hydrodynamic simulation of a ballistic diode.
%
% Program written by Andreas Aste, 1998, at the
% Swiss Federal Institute of Technology Zuerich, Switzerland.
%
% Copyright by Dr. Andreas Aste, Department of Physics and Astronomy,
% University of Basel, Klingelbergstrasse 82, 4054 Basel,
% Switzerland.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%
clear
%------------- Physical constants etc. (scaled SI-units) ---------------
m=0.26*9.1095E-24; % Eff. mass % mass unit : 1E-7 kg
eps=11.7; % Diel. const. % length unit : 1E-6 m
eeps=88.5418782; % Diel. const. % charge unit : 1E-19 As
q=1.602177; % El. charge % temperature : K
k=0.000138066; % Boltzmann % voltage : V
Tl=300; % Lattice temp. % doping : m^-18
%------------------------ Geometry -------------------------------------
Nc=120; % Number of cells
N=Nc+1; %
length=0.3; % Length of the device
h=length/(N-1); % Cellwidth
delt=1.E-13; % Time step
V=1.; % Bias
time=0.;
%------------------------ Variables-------------------------------------
Nd=zeros(1,N); % Doping
Nd_r=zeros(1,N-1);
n=zeros(1,N); % Electron density
n_r=zeros(1,N-1);
phi=zeros(1,N-1); % Potential
E_x=zeros(1,N); % Electric field
j_x=zeros(1,N); % Current density
j_x_r=zeros(1,N-1);
v=zeros(1,N); % Electron speed
v_r=zeros(1,N-1);
T_e_r=zeros(1,N-1); % Electron temperature
T_e=zeros(1,N);
gradT=zeros(1,N); % El. temp. gradient
press=zeros(1,N-1); % El. gas pressure
press_x=zeros(1,N); % Pressure gradient
energy_r=zeros(1,N-1); % Energy density
energy=zeros(1,N);
mu0=zeros(1,N); % Zero field mobility
mu=zeros(1,N); % Mobility
mu_r=zeros(1,N-1);
taup=zeros(1,N); % Relaxation times
gamma=zeros(1,N);
tauw_r=zeros(1,N-1);
relax=zeros(1,N-1);
conv_e=zeros(1,N); % Miscellaneous
conv=zeros(1,N);
je1=zeros(1,N);
je2=zeros(1,N);
relax=zeros(1,N);
in1=[1 N];
in2=[2 N-1];
%---------------------- Initialization ---------------------------------
Nd(1:fix(N/3))=5E5; % Doping profile
Nd(fix(N/3)+1:fix((2*N)/3))=2E3;
Nd(fix((2*N)/3)+1:N)=5E5;
Nd_r(1:N-1)=0.5*(Nd(2:N)+Nd(1:N-1));
n=Nd;
n_r=Nd_r;
energy_r=1.5*k*Tl*n_r+0.5*m*n_r.*(v(1:N-1).*v(2:N));
energy(2:N-1)=0.5*(energy_r(1:N-2)+energy_r(2:N-1));
mu0=1.35E11*ones(1,N)./(ones(1,N)+(Nd/1.12E5).^0.72)+8E9;
for i=1:3
mu0(2:N-1)=0.8*mu0(2:N-1)+0.1*mu0(1:N-2)+0.1*mu0(3:N);
end
mu0_r=0.5*(mu0(1:N-1)+mu0(2:N));
j_x=1E11*ones(1,N);
v=j_x./n;
T_e_r=Tl*ones(1,N-1); % Electron temperature
T_e=Tl*ones(1,N);
%---------------------- Transient simulation ---------------------------
%-----------------------------------------------------------------------
load initializer
E0=E_x;
j_x_r=0.5*(j_x(1:N-1)+j_x(2:N));
T_e_r=Tl*ones(1,N-1); % Electron temperature
T_e=Tl*ones(1,N);
energy(2:N-1)=0.5*(energy_r(1:N-2)+energy_r(2:N-1));
energy(3:N-2)=(1.5*energy_r((3:N-2)-(direct(3:N-2)+1)/2)-...
0.5*energy_r((3:N-2)-(3*direct(3:N-2)+1)/2));
energy(in1)=energy(in2);
V=0;
time=0;
delt=3.1E-15;
for iter=1:120
time
V
for iter2=1:20
time=time+delt;
V=time/1E-12;
if V>1.0;
V=1.0;
end
%V=0.1;
%-------------- Update energy density
v=j_x./n;
direct=sign(v); % Upwind direction
mu_r=Tl*mu0_r./T_e_r;
mu(2:N-1)=0.5*(mu_r(1:N-2)+mu_r(2:N-1));
mu(in1)=mu(in2);
% Electrostatic energy
E_x_r(2:N-2)=-(1/2/h)*(phi(3:N-1)-phi(1:N-3));
E_x_r(1)=-(1/h)*(phi(2)-phi(1));
E_x_r(N-1)=-(1/h)*(phi(N-1)-phi(N-2));
%poter=-(delt*q)*((j_x(1:N-1)+j_x(2:N)).*E_x_r)/2;
poter=-(delt*q)*(j_x_r.*E_x_r);
energy_r=energy_r+poter;
% Electrostatic energy
je1=k*j_x.*T_e;
energy_r(1:N-1)=energy_r(1:N-1)-(delt/h)*(je1(2:N)-je1(1:N-1));
% Heat flow
kappa=(0.4/q*k*k*Tl).*(mu0.*n); % Questionable
gradT(2:N-1)=(T_e_r(2:N-1)-T_e_r(1:N-2))/h;
gradT(in1)=gradT(in2);
je2=-kappa.*gradT;
energy_r(1:N-1)=energy_r-(delt/h)*(je2(2:N)-je2(1:N-1));
%---------------------------------------------
taup=(m/q)*mu;
gamma=1.0./taup;
tauw_r=(m/2/q)*mu_r+(1.5/q/1.0711E22*k)*...
(((mu_r.*T_e_r).*T_e_r))./(T_e_r+Tl);
relax=(1.5*k*Tl*n_r-energy_r)./tauw_r;
energy_r=energy_r+delt*relax;
%----------------------------------------------------------
energy(2:N-1)=0.5*(energy_r(1:N-2)+energy_r(2:N-1));
energy(3:N-2)=(1.5*energy_r((3:N-2)-(direct(3:N-2)+1)/2)-...
0.5*energy_r((3:N-2)-(3*direct(3:N-2)+1)/2));
energy(in1)=energy(in2);
conv_e(3:N-2)=v(3:N-2).*(1.5*energy_r((3:N-2)-(direct(3:N-2)+1)/2)-...
0.5*energy_r((3:N-2)-(3*direct(3:N-2)+1)/2));
conv_e(3:N-2)=v(3:N-2).*energy(3:N-2);
conv_e(in1)=v(in1).*energy(in1);
conv_e(in2)=v(in2).*energy(in2);
energy_r=energy_r-(delt/h)*(conv_e(2:N)-conv_e(1:N-1));
energy_r=real(energy_r);
energy_r(1)=2*energy_r(2)-energy_r(3);
energy_r(N-1)=2*energy_r(N-2)-energy_r(N-3);
% Compute electron temperature
v_r=0.5*(v(1:N-1)+v(2:N));
v_r(3:N-3)=(1.5*j_x((3:N-3)-(direct(3:N-3)-1)/2)-0.5*...
j_x((3:N-3)-(3*direct(3:N-3)-1)/2))./n_r(3:N-3);
j_x_r=v_r.*n_r;
T_e_r=abs(energy_r-0.5*m*(n_r.*v_r).*v_r)./(1.5*k*n_r);
T_e_r(1)=Tl;
T_e_r(N-1)=Tl;
T_e=abs(energy-0.5*m*(n.*v).*v)./(1.5*k*n);
%-----------------------------------------------------------
%-------------- Update n
n_r(2:N-2)=n_r(2:N-2)-(delt/h)*(j_x(3:N-1)-j_x(2:N-2));
n(2:N-1)=0.5*(n_r(1:N-2)+n_r(2:N-1));
n(3:N-2)=1.5*n_r((3:N-2)-(direct(3:N-2)+1)/2)-0.5*n_r((3:N-2)-(3*direct...
(3:N-2)+1)/2);
%n(3:N-2)=n((3:N-2)-(direct(3:N-2)-1)/2);
n(in1)=n(in2);
n=abs(n);
n_r=abs(n_r);
%-------------------update phi
phi=(q*h*h/eps/eeps)*cumsum([0 cumsum(n_r(1:N-2)-Nd_r(1:N-2))]);
phi=phi-(0:N-2)*((phi(N-1)-V)/(N-2));
E_x(2:N-1)=-(1/h)*(phi(2:N-1)-phi(1:N-2));
E_x(in1)=E_x(in2);
%----------------------------------------------------------------
%update j_x
press=(k/m)*(T_e_r.*n_r);
press_x(2:N-1)=(press(2:N-1)-press(1:N-2))/h;
press_x(1)=press_x(2);
press_x(N)=press_x(N-1);
j_x=j_x-delt*(gamma.*j_x+press_x);
j_x(1:N)=j_x(1:N)-(delt*q/m)*(n(1:N).*E_x(1:N));
conv(2:N-1)=delt*(direct(2:N-1).*(v(2:N-1).*(j_x(2:N-1)-...
j_x((2:N-1)-direct(2:N-1)))/h+...
j_x(2:N-1).*(v(2:N-1)-v((2:N-1)-direct(2:N-1)))/h));
j_x(2:N-1)=j_x(2:N-1)-conv(2:N-1);
j_x(in1)=j_x(in2);
%--------------------------------------------------------------
end
subplot(3,1,1)
plot(n)
subplot(3,1,2)
plot(v)
subplot(3,1,3)
plot(j_x);
drawnow
end % end iter
العيد 1978
2016-04-18, 23:48
مشكووووووور اخي
ممكن توضح البرنامج لي وضعته
جزاك الله الف خير و الف رحمة على والديك
العيد 1978
2016-04-25, 00:20
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
Voici un livre Matlab pour débutants
Telecharger (http://uptobox.com/70dmoooc1sok)