jump to navigation

การใช้ Monte Carlo Simulation ในปัญหาวิศวกรรม August 27, 2010

Posted by viboon in : Matlab, Science and engineering , add a comment

Monte Carlo Simulation เป็นการสุ่มข้อมูลเพื่อให้เห็นลักษณะของข้อมูลที่กระจายตัวรอบค่าหนึ่งๆ โดยวิธี Monte Carlo นี้ถูกนำเอาไปใช้ในงานต่างๆ มากมายเช่น การจำลองการเคลื่อนที่ของ particle การวิเคราะห์ความเสี่ยง การวิเคราะห์ความมีเสถียรภาพของระบบ และการนำไปประยุกต์ใช้ใน molecular modeling เป็นต้น

ในที่นี้ของยกตัวอย่างการคำนวณหา displacement ของ cantilever beam ซึ่งสามารถคำนวณได้ตามสมการ

delta = FL3/3EI

โดยที่ delta, F, L, E และ I คือ displacement, แรงที่กระทำกับ beam, ความยาว beam, elastic modulus และ moment of inertia of an area ตามลำดับ หากกำหนดให้ beam มีพื้นที่หน้าตัดเป็นวงกลม ค่า I สามารถคำนวณได้จาก

I = pi*d4/64

ปัญหาคือ beam ใดๆ ที่ถูกผลิตออกมาอาจมีค่า E ต่างกันไปบ้างเล็กน้อยอันเนื่องมาจากความแปรปรวนของวัสดุ ขนาดเส้นผ่านศูนย์กลางก็อาจต่างไปบ้างเล็กน้อยจากกระบวนการผลิต และ เมื่อนำเอาไปใช้งาน แรงที่ให้อาจต่างกันไปตามปัจจัยอื่นๆ ที่อยู่นอกเหนือการควบคุม ดังนั้น ในปัญหานี้ ค่า E, d และ F จะถูกกำหนดให้เป็น random variable โดยในปัญหานี้ขอกำหนดให้มีการกระจายตัวของตัวแปรสุ่มแบบ uniform

กำหนดให้
Fmin=1000N, Fmax=1050N
dmin=0.01m, dmax=0.011m
Emin=200GPa, Emax=210GPa
โดยที่ L=0.1m เป็นค่าคงที่

ในที่นี้ การคำนวณจำใช้ MATLAB โดยเป็นไปตาม code ต่อไปนี้

1
2
3
4
5
6
7
8
9
L=0.1;
i=1000; %1000 samples
F=1000+50*rand(i,1);
d=0.01+0.001*rand(i,1);
E=200e9+10e9*rand(i,1);
I=pi*d.^4/64;
delta=F.*L^3./(3.*E.*I);
hist(delta,100)
xlabel('Displacement (m)');

ผลลัพธ์ในรูป histogram


Tags: , , , , , ,

Related posts: