آموزش برنامه نویسی تخصصی مهندسی شیمی با نرم افزار Matlab

حــامد

مدیر بازنشسته
کاربر ممتاز
شبیه سازی برج تقطیر توسط matlab

شبیه سازی برج تقطیر توسط matlab

Binary Distillation Column with 30 trays (cyclohexane n-heptane)

Distillation column models are generally good test models for nonlinear model reduction and identification. The concentrations at each stage or tray are highly correlated. The dynamics of the distillation process can be described by a relatively few number of underlying dynamic states. A couple papers have been published with this model as an example application. One in particular is:

Hahn, J. and T.F. Edgar, An improved method for nonlinear model reduction using balancing of empirical gramians, Computers and Chemical Engineering, 26, pp. 1379-1397, (2002)

This plot shows the system response after a step change in the reflux ratio from 3.0 to 1.5. Each trajectory represents the mole fraction of cyclohexane at each tray. The top reflux material becomes less pure (more n-heptane) due to the increased draw from the top of the column.






Distillation 1 Distillation Column (Constant Relative Volatility)

Distillation 2 Distillation Column with Wilson Eq and Psat/P constant

Distillation 3 Distillation Column with Wilson Equation

Distillation 4 Distillation Column with Enthalpy Equation

همه فایلها در یک فایل زیپ

 

پیوست ها

  • distillation.rar
    62.8 کیلوبایت · بازدیدها: 0
آخرین ویرایش توسط مدیر:

حــامد

مدیر بازنشسته
کاربر ممتاز
شبیه سازی راکتور CSTR بوسیله MATLAB

شبیه سازی راکتور CSTR بوسیله MATLAB


CSTR - Continuously Stirred Tank Reactor

The CSTR model with A->B exothermic reaction is the most popular model in the database. It is a standard model that has been used in reaction engineering textbooks, simulation and control research, and demonstrations for industrial software.



The model has 2 states: the concentration of A and the temperature of the reaction vessel liquid. The manipulated variable is the jacket water temperature. At a jacket temperature of 305K, the reactor model has an oscillatory response. The oscillations are characterized by reaction run-away with a temperature spike. When the concentration drops to a low value, the reactor cools until the concentration builds and there is another run-away reaction.



CSTR - Continuously Stirred Tank Reactor with Intermediate Species

Models 1-5, 10 are all variations of the CSTR model. Model 3 in particular, has a reaction intermediary (B). There is an additional equation and variable to account for the intermediate reaction step.






Reactor 1 CSTR with Jacket Dynamics (A->B)

Reactor 2 CSTR with Jacket Dynamics (A-B-C-D)

Reactor 3 CSTR with Jacket Dynamics (A->B->C)

Reactor 4 2 CSTRs in Series (A->B)

Reactor 5 2 CSTRs in Series with Jacket Dyn (A->B)

Reactor 6 CSTR
اینم همه فایلها در یا فایل زیپ
 

پیوست ها

  • reactor.rar
    53 کیلوبایت · بازدیدها: 0
آخرین ویرایش توسط مدیر:

حــامد

مدیر بازنشسته
کاربر ممتاز
شبیه سازی بیو راکتور بوسیله matlab

شبیه سازی بیو راکتور بوسیله matlab

Bioreactor Zoltan K. Nagy's Dynamic simulator for a yeast fermentation bioreactor

Fermentation Yang Zhang's yeast fermentation bioreactor model

همهفایلها در یک فایل زیپ
 

پیوست ها

  • hamed.rar
    36.2 کیلوبایت · بازدیدها: 0
آخرین ویرایش توسط مدیر:

حــامد

مدیر بازنشسته
کاربر ممتاز
شبیه سازی پلی راکتور بوسبله matlab

شبیه سازی پلی راکتور بوسبله matlab

Poly Reactor Yang Zhang's polyethylene reactor model



 

پیوست ها

  • model25.zip
    35.7 کیلوبایت · بازدیدها: 0
آخرین ویرایش توسط مدیر:

حــامد

مدیر بازنشسته
کاربر ممتاز
سلام ميشه در مورد دستور global توضيحي بدين؟


GLOBAL Define global variable.
GLOBAL X Y Z defines X, Y, and Z as global in scope.

Ordinarily, each MATLAB function, defined by an M-file, has its
own local variables, which are separate from those of other functions,
and from those of the base workspace. However, if several functions,
and possibly the base workspace, all declare a particular name as
GLOBAL, then they all share a single copy of that variable. Any
assignment to that variable, in any function, is available to all the
other functions declaring it GLOBAL.

If the global variable doesn't exist the first time you issue
the GLOBAL statement, it will be initialized to the empty matrix.

If a variable with the same name as the global variable already exists
in the current workspace, MATLAB issues a warning and changes the
value of that variable to match the global.

Stylistically, global variables often have long names with all
capital letters, but this is not required
.​
 

JU JU

کاربر حرفه ای
کاربر ممتاز
while

while

WHILE Repeat statements an indefinite number of times.
The general form of a WHILE statement is:
کد:
       WHILE expression
         statements
       END

The statements are executed while the real part of the expression
has all non-zero elements. The expression is usually the result of
expr rop expr where rop is ==, <, >, <=, >=, or ~=.

The BREAK statement can be used to terminate the loop prematurely.

For example (assuming A already defined):
E = 0*A; F = E + eye(size(E)); N = 1;
while norm(E+F-E,1) > 0,
E = E + F;
F = A*F/N;
N = N + 1;
end
 

JU JU

کاربر حرفه ای
کاربر ممتاز
abs

abs

این دستور قدر مطلق عدد رو برمی‌گردونه
کد:
abs(-1)= 1
abs(-2.03)=2.03

حالا یه سوالی دارم
از دوستور while استفاده کردم، به اینگونه که ...
کد:
[COLOR=Blue]while[/COLOR] abs((A_ave./A)-1)>tolerance

statements

[COLOR=Blue]end[/COLOR]

A_ave یه عدد و A یه ماتریس ستونی هستش، می‌خوام این دستور به گونه‌ای باشه که حتی وقتی یکی از اعداد دورن ماتریس ساخته شده
کد:
abs((A_ave./A)-1)
بزرگتر از تلرانس باشه، چرخه انجام بشه، ولی به گونه‌ای که من در بالا نوشتم، حتی اگه یکی از اعداد ماتریس کوچکتر بشه چرخه متوقف می‌شه
من بخوام زمانی که همه اعداد درون ماتریس کوچکتر بشه، اون موقع چرخه متوقف بشه، باید چیکار کنم ؟

البته من مسئله رو حل کردم، در واقع زرنگی کردم که این نمی‌شه جواب مسئله، قطعن باید یه روش خوب باشه
روشی که به کار بردم اینه
کد:
[LEFT][COLOR=Blue]while[/COLOR] sum(abs(A)) > N*tolerance

     statement

[COLOR=Blue]end[/COLOR][/LEFT]

به اینصورت که آرایه‌های ماتریس A رو با هم جمع می‌کنه، و N تعداد آرایه‌های ماتریس A هستش که در تلرانس ضرب شده

خوب من باید چیکار کنم ؟
 

حــامد

مدیر بازنشسته
کاربر ممتاز
دستورات جالب در matlab

1-فرمان why:
با تایپ دستور why برنامه matlab به شما پاسخی بی ربط میده که هر بار متفاوته


کد:
>> why
The bald and not excessively bald and not excessively smart hamster obeyed a terrified and not excessively terrified hamster.
>> why
To fool the tall good and smart system manager.
>> why
The rich rich and tall and good system manager suggested it.
>>









2-فرمان toilet:

شبیه سازی توالت






3-فرمان shower:

شبیه سازی حمام








3-فرمان image:



 

msn_syst3m

عضو جدید
http://www.www.www.iran-eng.ir/attachment.php?attachmentid=17099&stc=1&d=1263889152

حل MATLAB این رو کسی نداره؟
 

پیوست ها

  • DSC00451.jpg
    DSC00451.jpg
    23.4 کیلوبایت · بازدیدها: 0

حــامد

مدیر بازنشسته
کاربر ممتاز
http://www.www.www.iran-eng.ir/attachment.php?attachmentid=17099&stc=1&d=1263889152

حل MATLAB این رو کسی نداره؟


اینها در مورد mixed reactors هست ببینید کدومش به دردتون میخوره؟

CSTR - Continuously Stirred Tank Reactor

The CSTR model with A->B exothermic reaction is the most popular model in the database. It is a standard model that has been used in reaction engineering textbooks, simulation and control research, and demonstrations for industrial software.



The model has 2 states: the concentration of A and the temperature of the reaction vessel liquid. The manipulated variable is the jacket water temperature. At a jacket temperature of 305K, the reactor model has an oscillatory response. The oscillations are characterized by reaction run-away with a temperature spike. When the concentration drops to a low value, the reactor cools until the concentration builds and there is another run-away reaction.



CSTR - Continuously Stirred Tank Reactor with Intermediate Species

Models 1-5, 10 are all variations of the CSTR model. Model 3 in particular, has a reaction intermediary (B). There is an additional equation and variable to account for the intermediate reaction step.






Reactor 1 CSTR with Jacket Dynamics (A->B)

Reactor 2 CSTR with Jacket Dynamics (A-B-C-D)

Reactor 3 CSTR with Jacket Dynamics (A->B->C)

Reactor 4 2 CSTRs in Series (A->B)

Reactor 5 2 CSTRs in Series with Jacket Dyn (A->B)

Reactor 6 CSTR

 

jadeye paeezi

کاربر بیش فعال
درخواست کمک

درخواست کمک

سلام من می خوام معادله لاپلاس زیر رو به روش implicit و explicit حل کنم اگه کسی نمونه ای یا راهنمایی بده ممنون میشم.
∂T/∂t = 1/r*∂/∂r (r∂T/∂r)
 

حــامد

مدیر بازنشسته
کاربر ممتاز
سلام من می خوام معادله لاپلاس زیر رو به روش implicit و explicit حل کنم اگه کسی نمونه ای یا راهنمایی بده ممنون میشم.
∂T/∂t = 1/r*∂/∂r (r∂T/∂r)

حل معادلات دیفرانسیل پاره ای وابسته به زمان در یک بعد
فرض کنید u تابعی باشد که در معادله زیرصدق کند.



و شرایط مرزی آن به صورت زیر باشد.

این معادله می تواند معادله حاکم بر انتقال حرارت در یک تیغه , استوانه و یا کره باشد؛ در این صورت f عبارت مربوط به شار انتقال حرارت و s مربوط به تولید یا مصرف انرژی می باشد.
برای خل این معادله از دستور pdepe استفاده می شود.
sol = pdepe(m,pdefun,icfun,bcfun,xmesh,tspan)
m : مشخص کننده هندسه مساله است. 0 برای تیغه، 1 برای سیلندر و 2 برای کره
pdefun : تابعی که معادله را تعریف می کند
[c,f,s] = pdefun(x,t,u,dudx)
c, f, s همان پارامترهای معادله دیفرانسیل پاره ای هستند
icfun : تابعی که شرایط اولیه را تعریف می کند
u = icfun(x)
bcfun : تابعی که شرایط مرزی را بیان می کند
[pl,ql,pr,qr] = bcfun(xl,ul,xr,ur,t)
اندیس l مربوط x0 , و اندیس r مربوط به xn (نقاط ابتدایی و انتهایی بردار xmesh )
xmesh : برداری شامل نقاط x1 تا xn
tspan : بردار زمان متناظر با بردار xmesh
مثال
یک لوله استوانه ای را در نظر بگیرید که از وسط با یک غشا به دو نیم تقسیم شده است.در یک طرف این لوله گاز A با فشار 10 بار و در طرف دیگر گاز B وجود دارد.اگر t=0 غشا پاره شود گاز A در B نفوذ می کند تغییرات فشار جزیی گاز A را در طول لوله حساب کنید.
معادله حاکم بر این سیستم به این شکل است

D ضریب نفوذ گاز A در B است و معمولا از مرتبه 1e-5 است.
شرایط اولیه

و شرایط مرزی

با مقایسه معادله3 با معادله 1 می بینیم که
m = 0
c = 1
s = 0
f = 1e-5 * DuDx
پس تابع pdefun به این صورت تعریف می شود.
function [c,f,s] = pdefun0(x,t,u,DuDx)
c = 1;
f = 1e-5*DuDx;
s = 0;

تابع pdeic
function u0 = pdeic0(x)
if ((x >= 0) & (x <= .5))
u0=10;
elseif ((x >= 0.5) & (x <= 1))
u0=0;
end

و تابع pdebc
function [pl,ql,pr,qr] = pdebc0(xl,ul,xr,ur,t)
pl = 0;
ql = 100000;
pr = 0;
qr = 100000;

حالا با استفاده از pdepe (برنامه زیر) می توانیم معادله را حل کنیم.


کد:
function pdex
x=linspace(0,1,20);
t=linspace(0,30000,20);
m=0;
sol = pdepe(m,@pdefun0,@pdeic0,@pdebc0,x,t);
u=sol(:,:,1);
uu=u;
surf(x,t,u)
title('Numerical solution computed with 20 mesh points.')
xlabel('Distance x')
ylabel('Time t')
%--------------------------------------------
function [c,f,s] = pdefun0(x,t,u,DuDx)
c = 1;
f = 1e-5*DuDx;
s = 0;
%---------------------------------------------
function u0 = pdeic0(x)
if ((x >= 0) & (x <= .5))
u0=10;
elseif ((x >= 0.5) & (x <= 1))
u0=0;
end
%---------------------------------------------
function [pl,ql,pr,qr] = pdebc0(xl,ul,xr,ur,t)
pl = 0;
ql = 100000;
pr = 0;
qr = 100000;

 

mezak

کاربر فعال
تو این تاپیک قصد ندارم به آموزش جامع مطلب بپردازم بلکه هدف آنست که آموزش برنامه نویسی در MATLAB را همرا با مثالهایی که اغلب برای دانشجویان و دانش آموختگان رشته مهندسی شیمی ملموس و مورد نیاز است بیان نمایم
با توجه قبلا تاپیکی موازی با همین موضوع در قسمت آموزش نرم افزارها به اسم:


قرار داشت قاعدتا من باید در ادامه اون تاپیک مطالب را قرار میدادم ولی کلا چون سمت و سوی این تاپیک متفاوته بهتر دیدم در تاپیک جداگانه مطالب رو ارسال کنم و بعدا دو تاپیک و joint میکنیم
چون نمیخواهم مطالب از مقدمات آغاز کنم پیشنهاد میکنم به دوستان که در ابتدا مفاهیم اساسی رو مطالعه کنند و در این رابطه میتوانند از جزوه دکتر مستوفی از دانشگاه تهران استفاده کنند


برای مهندسان شیمی کتابی بسیار عالی بنام:


Numerical Methods for Chemical Engineers with MATLAB Applications





موجوده که پیشنهاد میکنم حتما تهیه اش کنید مطلب دیگر اینکه یکی دیگر از مباحث مورد نیاز مهندسین شیمی joint کردن نرم افزارهای دیگه مثل Hysys , Excel با MATLAB هست که اصطلاحا Automation نامیده میشه سعی میکنم در این رابطه نیز مطالبی رو به مرور خدمت دوستان عزیز ارائه بدم

كتاب خوب و گرونيه! كسي هست كه PDF‌شو داشته باشه؟ اگه دارين دريغ نفرماييد. ممنون.
 

حــامد

مدیر بازنشسته
کاربر ممتاز
محاسبه ارتفاع مخزن با توجه به دبی متغیر

محاسبه ارتفاع مخزن با توجه به دبی متغیر

در زیر در زمانهای مختلف دبی های مختلف برای یک تانک داده شده گفته برنامه ای بنویسید که خروجی ارتفاع رو روی نمودار نشون بده

برای حل از رانکاتا اردر 4 استفاده شده
هر جاش لازم بود بگید توضیح بدم

کد:
ti=[0 0.5 1 2 3 4 5 6 7 8 9 10];
qi=[0 20 34 52 63 70 70 61 48 42 41 40];
zxc=polyfit(ti,qi,4);
nval=polyval(zxc,ti);
plot(ti,qi,'r:>',ti,nval)
x(1)=0;
y(1)=0;
h=0.5
for i=1:20
    f=(zxc(1)*x(i)^4+zxc(2)*x(i)^3+zxc(3)*x(i)^2+zxc(4)*x(i)^1+zxc(5)-17*sqrt(y(i)))/25;
k1=h*f;
x1(i)=x(i);
y1(i)=y(i);
x(i)=x1(i)+(h/2);
y(i)=y1(i)+k1/2;
f=(zxc(1)*x(i)^4+zxc(2)*x(i)^3+zxc(3)*x(i)^2+zxc(4)*x(i)^1+zxc(5)-17*sqrt(y(i)))/25;k2=h*f;
x(i)=x1(i)+h/2;
y(i)=y1(i)+k2/2;
f=(zxc(1)*x(i)^4+zxc(2)*x(i)^3+zxc(3)*x(i)^2+zxc(4)*x(i)^1+zxc(5)-17*sqrt(y(i)))/25;k3=h*f;
x(i)=x1(i)+h;
y(i)=y1(i)+k3;
f=(zxc(1)*x(i)^4+zxc(2)*x(i)^3+zxc(3)*x(i)^2+zxc(4)*x(i)^1+zxc(5)-17*sqrt(y(i)))/25;k4=h*f;
x(i+1)=x1(i)+h;
y(i+1)=y1(i)+(k1+2*k2+2*k3+k4)/6;
end
plot (x1,y1)

 

حــامد

مدیر بازنشسته
کاربر ممتاز
برنامه ی زیر با کمک دستورات متلب و به روش تنصیف معادلات درجه دوم را حل می کند. برای اینکار از توابع داخلی متلب برای چند جمله ای ها استفاده شده است. گرچه کمی غیر متعارف به نظر می رسد اما برای درک کاربرد روش تنصیف جالب است.
[FONT=Tahoma, Arial, Helvetica, sans-serif]همانطور که از نتایج برنامه مشخص است دقت برنامه تا ۳ رقم اعشار می باشد. دستورات حلقه آنقدر تکرار می شوند که میزان خطا کمتر از ممیز چهارم شود.[/FONT]​

کد:
[LEFT]% Equation Solver : Bisection Method
clc
disp('Equation Solver : Bisection Method')
try
f= input('Enter [a,b,c] : (aX^2+bx+c) :');
A= input('Enter A:');
B= input('Enter B:');
catch
disp('Error')
end
a=A;
b=a+1;
Ya=polyval(f,a);
Yb=polyval(f,b);
     fprintf('     A       B           C      root \n');
     fprintf('   ======  =======     ======  ======\n');
while b<=B
  a=b;
  b=a+1;
  Ya=polyval(f,a);
  Yb=polyval(f,b);
 if   Ya*Yb==0
      if Ya==0 
        disp(a)
        elseif Yb==0
        disp(b)     
      end
 end
a1=a; 
     b1=b;
     Ya1=polyval(f,a1);
     Yb1=polyval(f,b1);
     while (Ya1*Yb1<0) & (abs(a1-b1)>.0001)
            c=(a1+b1)/2;
            fprintf('\n %6.2f     %6.2f           %6.2f  %6.2f',a,c,b,a1)
            Yc=polyval(f,c);
            if (Yc*Ya1)==0
           %   disp(c)
              elseif (Yc*Ya1)>0
              a1=c;
              Ya1=polyval(f,a1);
              elseif (Yc*Ya)<0
               b1=c;
               Yb1=polyval(f,b1);
             end
     end
end[/LEFT]

 

حــامد

مدیر بازنشسته
کاربر ممتاز
کد:
Equation Solver : Bisection Method
Enter [a,b,c] : (aX^2+bx+c) :[-2 -1 2]
Enter A:-10
Enter B:10
A B C root 
====== ======= ====== ======

-2.00 -1.50 -1.00 -2.00
-2.00 -1.25 -1.00 -1.50
-2.00 -1.38 -1.00 -1.50
-2.00 -1.31 -1.00 -1.38
-2.00 -1.28 -1.00 -1.31
-2.00 -1.27 -1.00 -1.28
-2.00 -1.27 -1.00 -1.28
-2.00 -1.28 -1.00 -1.28
-2.00 -1.28 -1.00 -1.28
-2.00 -1.28 -1.00 -1.28
-2.00 -1.28 -1.00 -1.28
-2.00 -1.28 -1.00 -1.28
-2.00 -1.28 -1.00 -1.28
-2.00 -1.28 -1.00 -1.28
0.00 0.50 1.00 0.00
0.00 0.75 1.00 0.50
0.00 0.88 1.00 0.75
0.00 0.81 1.00 0.75
0.00 0.78 1.00 0.75
0.00 0.77 1.00 0.75
0.00 0.77 1.00 0.77
0.00 0.78 1.00 0.77
0.00 0.78 1.00 0.78
0.00 0.78 1.00 0.78
0.00 0.78 1.00 0.78
0.00 0.78 1.00 0.78
0.00 0.78 1.00 0.78
0.00 0.78 1.00 0.78
 

حــامد

مدیر بازنشسته
کاربر ممتاز
حل معادله پواسون -روش تفاضل متناهی
حل معادله پواسون -روش تفاضل متناهی ( Finite Differencing Method )

معادله پواسون یک معادله دیفرانسیل جزیی بیضوی (Elliptic PDE) است و در دو بعد بشکل زیر نوشته می شود،
(1)

با استفاده از تقریب مشتق مرکزی، مشتقات مرتبه دو بصورت زیر در می آیند،

(2)
(3)
برای سادگی محاسبات فرض می کنیم h=∆x=Δy در اینصورت با جایگذاری رابطه های (2) و (3) در معادله (1) خواهیم داشت،
(4)
این رابطه در هر نقطه (i,j)Φ واقع شده در مشبندی برقرار است. در حالتیکه g(x,y)=0 (یعنی حالتیکه چشمه بار وجود ندارد) معادله پواسون به معادله لاپلاس تقلیل می یابد در اینصورت رابطه (4) برای معادله لاپلاس بشکل زیر بازنویسی می شود،
(5)
رابطه (5) نشان می دهد که مقدار Φ برای هر نقطه، میانگین مقادیر Φ ها در چهار نقطه مجاور آن است. سلول محاسباتی پنج نقطه ای توصیف شده در رابطه (5) در شکل زیر نشان داده شده است( اعداد واقع شده در هر سلول مقدار ضریب هر سلول را نشان می دهد)،
اعمال روش تفاضل متناهی (FDM) به مجموعه ای از معادلات جبری می شود. برای یافتن پاسخ مجموعه معادلات دو روش تکرار و ماتریسی مرسومترند.
روش تکرار
روشهای تکرار عموما برای حل سیستم بزرگی از معادلات بکار می روند. شیوه کار در اینگونه موارد آنست که یک تقریب اولیه برای محاسبه تقریب ثانویه استفاده می شود. تقریب ثانویه نیز برای محاسبه سومین تقریب بکار می رود و این روند تا رسیدن به یک همگرایی ادامه می یابد. سه روش تکرار مرسوم ژاکوبی (Jacobi) ، گاوس – سیدل (Gauss - Seidel) و فراواهلش متوالی (successive over-relaxation (SOR)) می باشد.
- روش ژاکوبی
در این روش رابطه (4) را بصورت زیر بازنویسی می شود.
(6)
در روش ژاکوبی پتانسیل در هر تکرار از تنها از داده های تکرار قبلی استفاده می شود. سرعت همگرایی روش زاکوبی کم است. در روشهای بعدی آهنگ همگرایی بهبود می یابد.
- روش گاوس – سیدل
با دقت کمی متوجه میشویم که در محاسبه (i,j)Φ برای تکرار k+1 اطلاعات مربوط به جملات (Φ(i-1,j و (Φ(i,j-1 برای تکرار k+1 موجود هستند و از آنجایی این جملات نسبت به جملات مشابه تکرار kام دقیقترند میتوان آنها را جایگزین نماییم. در اینصورت رابطه تکرار گاوس – سیدل بشکل زیر بدست می آید،
(7)
- روش SOR
برای اعمال روش SOR نخست جمله باقیمانده، (R(i,j، در گره iو j بصورت اختلاف بین پاسخ های k و k+1امین تکرار تعریف می کنیم،

(8)
توجه داشته باشید k+1(i,j)Φ از الگوریتم گاوس –سیدل (رابطه 8) جایگزین شده است. مقدار باقیمانده که با R (i,j)نشان داده میشود را می توان بعنوان جمله تصحیح در نظر گرفت که برای نزدیک شدن به پاسخ صحیح باید به (i,j)Φ اضافه می شود. با همگرایی بسمت پاسخ صحیح R(i,j) به صفر میل میکند.. برای تسریع آهنگ همگرایی باقیمانده را در پارامتر ω ضرب می کنیم و آنرا با (i,j)Φ مربوط به kامین تکرار جمع می کنیم تا (i,j)Φ در (k+1)امین تکرار بدست آید. بنابراین رابطه تکرار بصورت زیر در خواهد آمد،
(9)
پارامتر ω فاکتور واهلش نامیده می شود و عددی بین 1 و 2 است. مقدار بهینه ω از طریق آزمون و خطا مشخص می گردد.
اسکریپت زیر معادله پواسون در دو بعد را با روش SOR حل می کند. در اینجا پس از تعداد 200 تکرار برنامه متوقف می شود. الیته می توانید با تعریف یک پارامتر دقت، برنامه را به گونه ای بنویسید که به ازای رسدن به دقت معینی متوقف شود. ناحیه مورد بررسی یک صفحه مستطیلی محصور بین خطوط x=0,x=1,y=0,y=1 می باشد. شرایط اولیه مسئله و همچنین چگالی بار بصورت زیر در نظر گرفته شده است،

کد:
%finite difference methode of 2-Dimentional poisson equation
% using by SOR methode
clc
clear all
%-----------------------
N=100; % Number of nodes in each dimention
x=linspace(0,1,N);
y=x;
dx=x(2)-x(1);
dy=dx;
[Y X]=meshgrid(y,x);
V=zeros(N); % initial guess
% boundry conditions---
V(:,1)=1; % V(y=0)
V(:,end)=1; % V(y=1)
V(1,:)=0; % V(x=0)
V(end,:)=0; % V(x=1)
%------------------------
rho=X; % charged density
ep=1; % epsilon
Vnew=V;
w=1;
tic % start time
for m=1:200 % iteration loop
for i=2:N-1
for j=2:N-1
Vnew(i,j)=(1-w)*V(i,j)+w/4*(V(i+1,j)+Vnew(i-1,j)...
+V(i,j+1)+Vnew(i,j-1)+1/ep*rho(i,j)*dx^2);
end

end
V=Vnew;
end
toc % stop time
mesh(X,Y,V)
xlabel('x')
 

حــامد

مدیر بازنشسته
کاربر ممتاز
رسم دیاگرام Txy برای سیستم دوجزئی آب و اتانول
معلومات:
کد:
[LEFT]Ethanol Pe=exp(18.5242-3578.91/(T-50.5))
Water Pw=exp(18.3036-3816.44/(T-46.13))
Where
Ki= Pi /Pt
Pt=760
yi =Ki×xi
At Bubble point Σyi=ΣKi×xi =1[/LEFT]
 

حــامد

مدیر بازنشسته
کاربر ممتاز
کد:
[LEFT]Xe=0:.1:1;
Xw=1-Xe;
for m=1:11
for T=273.15:.01:450;
Pe=exp(18.5242-3578.91/(T-50.5)); % Vapor pressure of Ethanol
Pw=exp(18.3036-3816.44/(T-46.13)); % Vapor pressure of Water
Ke=Pe/760; % Ethanol
Kw=Pw/760; % Water
sum=Ke*Xe(m)+Kw*Xw(m);
if sum>1
break
end
end
Temp(m)=T;
ye(m)=Ke*Xe(m);
end
plot(Xe,Temp,'k-+',ye,Temp,'k-*')
axis ([0 1 340 380])
xlabel('x,y for ethanol')
ylabel('Temperatre K')
title('Txy diagram of ethanol/ water system by hamed')[/LEFT]
 

Haaji

عضو جدید
کاربر ممتاز
سلام
من میخوام مطلب رو از صفر شروع کنم. باید چیکار کنم؟
 
آخرین ویرایش:

JU JU

کاربر حرفه ای
کاربر ممتاز
سلام
من میخوام مطلب رو از صفر شروع کنم. باید چیکار کنم؟

اول این کتاب رو بخون
Download from 4shared
در مورد ماتریس هاست

می‌دونی که برا یاد گرفتن matlab نیاز به ماتریس داری

بعد می‌تونی کتاب راهنمای جامع matlab از امیرهوشنگ غیوری رو بگیری و بخونی
از مقدماتی گفته و تا سطح متوسط پیش می‌ری
و نکته قابل توجه اینه که برا پیشرفته شدن، فقط و فقط تلاش خودت نیازه، کتاب‌ها فقط یه راهنما هستن در سطح ابتدایی تا متوسط
 

rezareza00

عضو
جزوه

جزوه

این جزوه توسط یه مدرس فنی و حرفه ای برای کسایی که اصلا آشنایی بامتلب ندارند نوشته شده
 

پیوست ها

  • MATLAB.pdf
    484 کیلوبایت · بازدیدها: 0
بالا