مشخصات این فایل
عنوان: شبیهسازی کامپیوتری
فرمت فایل : word( قابل ویرایش)
تعداد صفحات: 53
این مقاله درمورد شبیهسازی کامپیوتری می باشد.
خلاصه آنچه در مقاله شبیهسازی کامپیوتری می خوانید :
نرم افزار MATLAB (Matrix Laboratory)
در MATLAB ماتریسها از مفاهیم اساسی هستند زیرا در این نرمافزار دادهها به فرم ماتریس ذخیره میشوند. با اجرای MATLAB یک یا چند پنجره در مانیتور کامپیوتر ایجاد میشود یکی از این پنجره ها، پنجره فرمان نام دارد (اولین مکانی که با MATLAB ارتبط برقرار میشود)
کلمه ans مخفف Answer است و اگر کاربر متغیری را برای ذخیره محاسبات تعریف نکرده باشد این محتویات داخل متغیری به نام ans ریخته میشود.
>> 4+6+2
ans =
12
اگر نخواهیم نتیجه محاسبات در پنجره فرمان نمایش داده شود میتوانیم در انتهای دستور سیمیکالن (;) قرار دهیم.
محیط کاری MATLAB
Command: اجرای تمام برنامهها و دستورات در این صفحه انجام میشود.
Figure: در این صفحه انواع گرافها را در مختصات مختلف و به صورت دو یا سه بعدی میتوان رسم کرد.
Mfile: در این صفحه کلّیه برنامهها اعم از mfile و function نوشته میشوند.
Model: در این محیط که کاملاً یک محیط مجزا است انواع شبیهسازیها را میتوان انجام داد.
تمرین: با مدل چه شبیهسازی هایی را میتوان انجام داد؟
GUI: کارهای گرافیکی در این محیط میتوان انجام داد.
فقط ماتریس x را پاک میکند >>Clear x
تمام ماتریسهای موجود را پاک میکند >>Clear
تمام مطالب صفحه command را پاک میکند >>Clc
گراف رسم شده در صفحه figure را پاک میکند >>Clf
تمام مسیرهایی که برنامهای از MATLAB در آن موجود باشد را در آن نشان میدهد >>Path
>>Realmax
Ans=
107977e+308
>>Realmin
Ans=
2.2251e-308
لیست متغیرهای موجود در حافظه را میدهد >>Who
Your variable are:
Ans y
لیست متغیرهای موجود در حافظه را همراه با جزئیات نشان میدهد >>whos
name size type class attributes
ans |x| 8 double
y |x| 8 double
تمام متغیرهای صفحه command را در یک فایل با نام matlab.mat ذخیده مینماید. >>save
Saving to: matlab.mat
>>help cls
>>cpu time
Ans=
19.8438
اعداد تعریف شده در MATLAB
Eps: عدد اپسیلون است که مقدار آن 2.2204e-016 میباشد.
Pi: عدد پی است که مقدار آن 3.146 میباشد.
INF: بینهایت است.
Date: تاریخ جاری سیستم را میدهد.
Abs(x): قدر مطلق را نشان میدهد.
Rem(x,y): باقی مانده را نشان میدهد.
Sign(x): علامت x را به صورت 0 و 1 نشان میدهد. اگر عدد منفی باشد -1 و اگر مثبت باشد1 یا +1 و برای عدد صفر، صفر را نشان میدهد.
Sqrt(x): ریشه دوم عدد x را میدهد.
Exp(x): e (عدد نپر) را به توان x میرساند.
Log(x): لگاریتم طبیعی x را میدهد.
log10(x): لگاریتم ط در مبنای 10 را میدهد.
Real(c): قسمت حقیقی عدد را میدهد.
Imag(c): قسمت موهومی عدد را میدهد.
Round(x): عدد را گرد (رند) میکند.
Fix(x): قسمت صحیح عدد را میدهد و به سمت صفر میل میکند.
Floor(x): به سمت -∞ میل میکند.
Ceil(x): به سمت +∞ میل میکند.
نکته: توضیحات در MATLAB با علامت % شروع میشود، همچنین علامت … نشان میدهد که ادامه جمله در خط بعدی قرار میگیرد.
آرایهها
اعداد منفر اسکالر نامیده میشوند عملیات بر روی اسکالرها انجام میشود که مبنای ریاضیات را تشکیل میدهد. اگر بخواهیم عمل یکسانی را بر روی چند عدد انجام دهیم تکرار عملیات اسکالری باعث اتلاف وقت میشود. برای حل این مشکل میتوانیم این عملیات را بر روی آرایهها تعریف نماییم.
مثال: تابع سینوس (Sin) در یک آرایه.
x=0:pi;
y=sin(x)
y=
0 0.8415 0.9093 0.1411
plot(y)
دسترسی به عناصر آرایه
X=1 2 3 4 5
>>X(3) دسترسی به عنصر سوم آرایه
دستور Grid: صفحه figure را به صورت شطرنجی نشان میدهد.
دستور Bar: نمودار میلهای را رسم میکند.
دستور axis: در صورتی که کاربر بخواهد محدوده محورهای مختصات را خودش تعین کند از این دستور استفاده میشود.
دستور axis(‘square’): این دستور محورهای مختصات را به صورت مربعی تنظیم میکند.
دستور peaks(n): ماتریس n × n بر میگرداند.
دستور lcx(x,y): کوچکترین مضرب مشترک را بر میگرداند.
دستور gcd: بزرگترین مقسوم علیه مشترک را بر میگرداند.
دستور sort: از کوچک به بزرگ مرتب میکند.
دستور sum: عناصر آرایه را با هم جمع میکند.
دستور prod: عناصر آرایه یا ماتریس را در هم ضرب میکند.
دستور comsum: تابع تجمعی را محاسبه میکند. (اعداد را به ترتیب با هم جمع میکند)
دستور comprod: اعداد را به ترتیب با هم ضرب میکند.
دستور mean: میانگین را حساب میکند.
دستور min و max: مینیمم و ماکسیمم را حساب میکند.
دستور linspace: فاصله بین دو عدد a و b را به صورت خطی به n نقطه تقسیم میکند. و اگر مقدار n وجود نداشته باشد بازه a تا b را به 100 نقطه تقسیم میکند.
مثال: ماتریسی داریم شامل اعداد طبیعی درایههای این ماتریس از عدد 2شروع و با گام 3، تا عدد 30 پیش میرود. درایههای چنین ماتریسی را در هم ضرب کنید.
>>x=2:3:30
x=
2 5 8 11 14 17 20 23 26 29
>>prod(x)
Ans=
7.262e+010
ترسیم داده
مجموعه دستورات زیر نحوه ترسیم یک تابع برحسب یک متغیر را نشان میدهند.
>>x=linspace(0,2);
>>y=x.*exp(-x);
>>plot(x,y);
>>grid;
>>xlabel(‘x’)
>>ylabel(‘y’)
>>title(‘y=x.xe^{-x}’);
>>text(1,0.2,’center’);
دستور plot
برای رسم پیوسته نقاطی که توسط 2 بردار x و y تعریف میشوند به کار میرود.
>>plot(x,y,’نماد’)
نماد رنگ علامت مفهوم
B آبی 0 دایره
G سبز + جمع (بعلاوه)
R قرمز * ستاره
C فیروزه ای S مربع
M بنفش X ضربدر
Y زرد D لوزی
K سیاه V مثلث رو به بالا
W سفید ^ مثلث رو به پایین
0- خط نقطه
-- خط چین
رسم چند نمودار
این دستورات دو نمودار را در یک محور مختصات رسم مینمایند.
>>plot(x,y,’0’,x,x.*sin(x),’0-‘);
>>legend(‘x.*e^{-x},‘x’.*sin(x));
دستور Plot3
دستورات زیادی در MATLAB برای رسم نمودارهای سه بعدی وجود دارد، یکی از این دستورات Plot3 است.
>>t=0.01:6*pi;
>>plot3(cos(t),sin(t),t);
>>xlabel(‘cos(t)’);
>>ylabel(‘sin(t)’);
>>zlabel(‘t’);
دستور Surf
[x,y]=meshgrid(-pi:pi/8:pi,-pi/8:pi);
z=cos(x).*cos(y);
surf(x,y,z);
view(30,45);
[x,y]=meshgrid(1:4,5:7)
X = Y =
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
دستور Meshgrid
این دستور شبکه دو بعدی روی صفحه x,y ایجاد میکند. بردارهای ورودی به این دستور مشخص کننده تقسیمات در جهت x و y هستند. سطح ایجاد شده را میتوانیم با کمک دستور shading هموار کنیم همچنین برای تطابق رنگها با اعداد محور z میتوانیم از دستور colorbar استفاده کنیم. برای رسم سطوح سه بعدی از دستورات دیگری مانند meshc، meshz و waterfall نیز میتوانیم کمک بگیریم.
تابع
تابع مانند جعبه سیاهی است که فقط به آن ورودی میدهیم و یک خروجی از آن در یافت میکنیم.
functiony=func(x)
که در آن functiony خروجی تابع، func اسم تابع و x ورودی تابع است.
نکته: اسم تابع با اسمی که ذخیره میکنیم حتماً باید برابر باشد.
قوانین
نام تابع با نام file یکسان باشد. file.m
تابع میتواند هیچ، یک و یا چند آرگومان ورودی و هیچ، یک و یا چند آرگومان خروجی داشته باشد.
اگر تابع بیش از یک متغیر خروجی داشته باشد این متغیر درون [ ] قرار میگیرند.
function[y1,y2]=func(x)
Nargin: متغیر محیط کاری تابع است و حاوی تعداد آرگومانهای ورودی میباشد.
Nargout: متغیر محیط کاری تابع است و حاوی تعداد آرگومانهای خروجی میباشد.
function y = linspace(d1,d2,m)
if nargin ==2
n=100;
end
y=(d1+(0:n-2)*(d2+d1)/(n-1)d);
اگر متغیرهای یک تابع به صورت سراسری (Global) اعلان شده باشند میتوان آنها را با توابع دیگر محیط کاری MATLAB و بیرون فراخوانیهای بازگشتی با اشتراک گذاشت و باید برای دستیابی به متغیر سراسری آن متغیر را فراخوانی کنیم.
Function Tic
Global TicToc
TicToc = clock;
Function t = Toc
global TicToc
if nargoutelapsed-time=etime(clock,TicToc)
else
t=etime(clock,TicToc);
end
در تابع Tic متغیر TicToc سراسری اعلام شده سپس مقدارش با فراخوانی تابع clock مقداردهی میشوددر تابع Toc نیز متغیر TicToc سراسری اعلام شده است که از طریق تابع Tic به مقدار ذخیره شده در TicToc دستیابی پیدا میکند. مانند تابع خود فراخوان.
مثال: تابعی بنویسید که اگر ورودی برای آن تعیین نشده باشد مقدار ورودی 10 در نظر بگیرد در غیر این صورت به تعداد مقدار ورودی جملهای را چاپ کند و زمان اتمام مقدار ورودی جمله دیگر نمایش داده شود.
function iforget(x)
if nargin ==0
n=10;
end
if d>1
disp(‘I will remember you‘);
iforget(n-1);
else
disp(‘maybe not’)
end
end
روشهای مختلف برای شبیهسازی سیستمهای گسسته
به طور کلی 4 روش برای شبیهسازی سیستمهای گسسته وجود دارد که عبارتند از:
روش پردازش وقایع
روش پردازش پروسهها
روش پردازش فعالیتها
روش سه مرحلهای
برنامه هایی که با هر یک از چهار روش بالا نوشته میشوند شامل بخشهای زیر میباشند:
قسمت کنترل
قسمت عملیات
برنامههای فرعی
نکته: انجام کارهای اصلی سیستم به عهده بخش عملیات میباشد. بخش کنترل نظارت بر واحد را بر عهده دارد
پیش بردن زمان شبیهسازی و فراخوانی به موقع هر یک از برنامههای قسمت عملیات از جمله وظایف قسمت کنترل میباشد. قسمت برنامههای فرعی شامل زیر برنامههای مورد نیاز مانند زیر برنامه تولید اعداد تصادفی ویا انتخاب یک عدد از یک توزیع احتمال است.
بخشی از فهرست مطالب مقاله شبیهسازی کامپیوتری
شبیهسازی کامپیوتری 4
تعریف شبیهسازی کامپیوتری 4
کاربرد شبیهسازی 4
مزایای شبیهسازی کامپیوتری 5
تعریف سیستمهای گسسته و پیوسته
شبیهسازی سیستمهای گسسته 6
اجزای یک سیستم گسسته 6
زبانهای شبیهسازی سیستم 7
شبیهسازی سیستم ها 7
روشهای شبیهسازی 8
روش فاصلهگرا 8
روش واقعگرا 8
فلوچارت مربوط به روش فاصلهگرا 11
فلوچارت مربوط به روش واقعگرا 11
نمودار سیکل فعالیت 13
روش پردازش وقایع 16
فلوچارت مربوط به واقعه ورود مشتری 16
فلوچارت مربوط به واقعه پایان سرویس 17
فلوچارت سیکل فعالیت برای عناصر مهم سیستم 19
فلوچارت سیکل فعالیت برای سرویس دهنده 20
فلوچارت مربوط به واقعه ورود مشتری 20
فلوچارت مربوط به قسمت کنترل برنامه 21
نمودار فلوچارت سرویس دهنده 21
زبان GPSS 23
شکل کلی دستورات 23
دستور GENERATE 23
دستور QUEUE 24
دستور DEPART 24
دستور SEIZE 24
دستور RELEASE 25
دستور ADVANCE 25
دستور TERMINATE 25
دستور START 25
مشخصههای استاندارد عددی (SNA) 27
دستور STORAGE 30
دستور ENTER 30
دستور LEAVE 31
دستور ASSIGN 33
دستور TRANSFER 34
دستور TEST 34
دستور SELECT 36
دستور TABLE 37
دستور TABULATE 37
تعریف و استفاده از توابع ریاضی در برنامه 38
دستور GATE 41
دستور LOGIC 41
دستور LOOP 42
نرم افزار MATLAB (MATRIX LABORATORY) 45
محیط کاری MATLAB 45
اعداد تعریف شده در MATLAB 46
آرایه ها 47
دسترسی به عناصر آرایه 47
ترسیم داده 48
دستور PLOT 49
رسم چند نمودار 49
دستور PLOT3 51
دستور SURF 51
دستور MESHGRID 51
تابع 51
قوانین 52
روشهای مختلف برای شبیهسازی سیستمهای گسسته 53
دانلود تحقیق شبیهسازی کامپیوتری