تسجيل الدخول

مشاهدة النسخة كاملة : اريد مساعدة لكتابة برنامج على الماتلاب


العيد 1978
2016-04-09, 17:37
بسم الله الرحمان الرحيم

من فضلكم اخواني اريد مساعدة عاجلة في كتابة معادلة فيزيائية في برنامج Matlab

ارجوا من احد الخبراء في هذا المجال ان يعطيني الموافقة بأن يساعدني

لكي ابعث له المعادلة الفيزيائية و كل المعطيات اللازمة

جزاكم الله خيرا

يمكن تحميل المعادلات الفيزيائية التي اريدها في الماتلاب في الملف المرفق

aek76
2016-04-09, 21:14
من المعادلات فهمت انك تريد حساب current density J حيث u potential أضن يمكنك ان تجد برامج جاهزة و لكن باستعمال لغةC للحصول على الحلول الرقمية .

العيد 1978
2016-04-09, 21:55
فعلا . من فضلك إذا كنت تفهم في الماتلاب اوجدلي البرنامج لأنني لا افقه فيه شيئا
و الف رحمة على والديك

العيد 1978
2016-04-14, 22:03
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

aek76
2016-04-15, 21:33
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%
%
% 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
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

ghalas
2016-06-29, 16:10
Voici un livre Matlab pour débutants
Telecharger (http://uptobox.com/70dmoooc1sok)