วันศุกร์ที่ 18 มิถุนายน พ.ศ. 2553

Solve Moody Chart with Goal Seek

สวัสดีท่านผู้อ่านครับ ห่างหายไปจากการเขียนบทความไปเกือบสองอาทิตย์เนื่องด้วยตาแดงครับทำให้ต้องลดเวลากับการอยู่หน้าคอมพิวเตอร์ลงครับ ตอนนี้อาการดีขึ้นแล้ว(จากการไปหาหมอมาครับ) ช่วงนี้งานประจำก็ค่อนข้างเยอะมีการปรับความเร็วในการทำงานหรือจะเรียกให้ทันสมัยหน่อยก็คือ ถูกกระชับเวลาครับ แต่ก็ยังหาโอกาสมานำเสนอบทความที่คิดว่าน่าจะช่วยชี้แนะท่านผู้อ่านได้บ้างครับ
"Everyone lives by selling same thing" (Robert Louis Stevenson) แปลเป็นไทยก็คือ เราต่างมีชีวิตอยู่ด้วยการขายอะไรบางอย่างด้วยกันทั้งนั้น
มาเข้าสู่เนื้อหาบทความนี้กันครับ จากการที่ได้นำเสนอการใช้ Goal Seek ช่วยในการแก้ปัญหาการออกแบบไปแล้ว บทความนี้จะนำเสนอการนำไปใช้แก้ปัญหา Pipe Flow ขอยกตัวอย่างการคำนวณหาขนาดของปั๊มที่เหมาะสม ในการส่งน้ำผ่านท่อขนาดเส้นผ่านศูนย์กลาง D เป็นระยะทางเท่ากับ L วิศวกรจำเป็นต้องคำนวณหาค่าพลังงานสูญเสียภายในท่อจากสมการ


โดย hl แทนพลังงานสูญเสียภายในท่อ
V แทนค่าความเร็วเฉลี่ยของน้ำที่ไหลในท่อ
f แทนค่าตัวประกอบแรงเสียดทาน (Friction factor)
ซึ่งหากภายในท่อมีผิวขรุขระ ค่าตัวประกอบแรงเสียดทานสามารถคำนวณได้จาก Colebrook Equation


โดย e แทนค่าความขรุขระสัมพัทธ์ภายในท่อ
Re แทนค่าตัวเลขเรย์โนลด์
หากนำผลเฉลยของ Colebrook Equation นี้ไปพล๊อตกราฟแสดงความสัมพันธ์ระหว่างค่าตัวประกอบแรงเสียดทาน ตัวเลขเรย์โนลด์ และความขรุขระ จะได้กราฟที่ชื่อว่า Moody Chart ดังแสดงในภาพ



Moody Chart

สมมุติว่าปัญหานี้กำหนดให้ e = 0.01 และ Re = 100,000

ในการคำนวณหาค่าตัวประกอบแรงเสียดทานสามารถทำได้ในทำนองเดียวกับการแก้ปัญหาการออกแบบในบทความที่ผ่านมา โดยเราจะใช้ฟังก์ชัน Goal Seek เพื่อหาค่า f โดยเริ่มจากเดาค่า f ในเซลล์ B1 เท่ากับ 0.1
และกำหนดค่า e และ Re เท่ากับ 0.01 และ 100,000 ลงในเซลล์ B2 และ B3 ตามลำดับ
กำหนดให้เซลล์ B4 เท่ากับค่าด้านซ้ายของสมการ โดยให้เท่ากับ = 1/SQRT(B1)
กำหนดให้เซลล์ B5 เท่ากับค่าด้านขวาของสมการ
โดยกำหนดสูตรได้ =-2*LOG((B2/3.7 + (2.51/(B3*SQRT(B1)))),10)
กำหนดให้ B6 เป็นผลต่างของ B4 และ B5 ดังแสดงในภาพ




เมื่อกำหนดค่าครบทุกเซลล์แล้วให้คลิกที่เมนู Tool>Goal Seek...
จะปรากฎหน้าต่างสำหรับกำหนดค่าเริ่มต้นดังแสดงในภาพ



โดยกำหนดให้ ตั้งค่าในเซลล์เป็น B6 ให้เป็นค่า 0 โดยการเปลี่ยนค่าในเซลล์ B1 จากนั้นให้กดปุ่ม ตกลง
Excel จะทำการคำนวณเพื่อหาค่า f ที่เหมาะสม เมื่อพบคำตอบแล้วจะแสดงหน้าต่างดังแสดงในภาพ



เมื่อคลิกตกลงค่าในเซลล์ B1 จะแสดงถึง ค่า f ที่เหมาะสม ขณะที่ค่าในเซลล์ B6 จะแสดงค่าผลต่างของค่าด้านซ้ายและด้านขวาของสมการ



หากผลต่างที่ออกมายังอยู่ในค่าที่ไม่ยอมรับ ท่านผู้อ่านก็สามารถเดาค่า f ในเซลล์ B1 ใหม่แล้วดำเนินการโดยใช้ Goal Seek อีกครั้ง
จากตัวอย่างนี้ท่านผู้อ่านคงเห็นวิธีการหาคำตอบที่เหมาะสมในงานวิศวกรรมแล้วนะครับ เพราะหลายครั้งที่เราแก้ปัญหาในการออกแบบขั้นตอนสุดท้ายจะจบลงที่การ ลองผิดลองถูก (Trial and error) ซึ่ง Goal Seek สามารถช่วยท่านได้


วันพุธที่ 9 มิถุนายน พ.ศ. 2553

Searching with Index Function (by Spreadsheet software)

xcช่วงนี้เข้าสู่ฤดูฝนเต็มตัวแล้ว รักษาสุขภาพกันด้วยนะครับ ตัวผมเองช่วงนี้เจออาการตาแดงสงสัยจะเป็นผลจากการย้ายห้องเมื่อตอนปลายเดือนที่ผ่านมา คงโดนฝุ่นเข้ามาทำให้ระคายเคือง วันนี้มีฟังก์ชันหนึ่งที่น่าสนใจและนำมาประยุกต์ใช้ในการค้นหาข้อมูลเพื่อนำไปประมวลผลต่อในโปรแกรมประเภท Spreadsheet โดยในบทความนี้จะอธิบายด้วย MS Excel
ฟังก์ชัน index ใน MS Excel จะคืนค่าในเซลล์ตามตำแหน่งของหลักและแถวที่กำหนดให้ โดยมีรูปแบบดังนี้
index(tableที่ค้นหาข้อมูล,หมายเลขแถว,หมายเลขหลัก)
สมมุติให้ tableที่จะค้นหาข้อมูลอยู่ใน Sheet ชื่อ table โดยมีข้อมูลดังแสดงในภาพ

หากเราต้องการค่าในหลักที่ 1 ของ table โดยต้องสัมพันธ์กับข้อมูลในหลัก B ของ sheet ชื่อ ค้นหา
โดยให้แสดงผลในเซลล์ C2โดยเขียนสูตรได้ดังนี้ =index(table!A$1:B$4,หมายเลขแถว,1)
จากสูตรจะพบว่ายังขาดหมายเลขแถวที่มีข้อมูลสัมพันธ์กับข้อมูลในหลัก B ดังนั้นจึงต้องหาตำแหน่งแถวให้ได้โดยใช้ฟังก์ชัน MATCH ซึ่งฟังก์ชัน match จะคืนค่าตำแหน่งที่สัมพันธ์กับข้อมูลที่ต้องการค้นหาโดยมีรูปแบบการใช้ดังนี้
match(ค่าที่จะค้นหา,ช่วงของเซลล์ที่จะค้นหา(ต้องติดกัน),format)
ดังนั้นหากจะหาตำแหน่งที่สัมพันธ์ของค่าในหลัก B โดยค้นในหลัก B ของตาราง จะเขียนได้ดังนี้
match(B1,table!B$1:B$4,0) ซึ่งจากคำสั่งนี้จะคืนค่าแถวที่ 3 มาให้
ดังนั้นหากใช้ร่วมกับฟังก์ชัน index ก็จะอธิบายได้ดังนี้
C1 = index(table!A$1:B$4,match(B1,table!B$1:B$4,0),1)
เมื่อ excel ประมวลผลจะดำเนินการภายในฟังก์ชัน MATCH ก่อนซึ่งจากตัวอย่างจะคืนค่า 3 มาให้ ดังนั้นในฟังก์ชัน index จะมีรูปแบบดังนี้
C1 = index(table!A$1:B$4,3,1)
และเมื่อประมวลผลฟังก์ชั่นนี้ต่อ excel ก็จะคืนค่าในเซลล์แถวที่ 3 หลัก ที่ 1 ของ table มาให้นั่นคือ 003 ให้กับ C1 ดังแสดงในภาพ



ท่านผู้อ่านจะเห็นว่าเราสามารถนำไปประยุกต์ใช้ในงานค้นหาข้อมูลได้อีกวิธีการหนึ่งนอกเหนือจากฟังก์ชัน VLOOKUP ท่านผู้อ่านสังเกตมั้ยครับว่าการค้นหาด้วยฟังก์ชัน Index มีอะไรแตกต่างจาก VLOOKUP ลองพิจารณาดูดีๆนะครับ

วันศุกร์ที่ 4 มิถุนายน พ.ศ. 2553

พื้นที่รูปหลายเหลี่ยม (Area of polygon)

วันนี้มีโอกาสได้ดูการ์ตูนญี่ปุ่นเรื่อง อิคคิวซัง เณรน้อยเจ้าปัญญา เหมือนย้อนกลับไปอดีตตอนวัยเรียน แต่ข้อคิดที่ได้จากในการดูการ์ตูนครั้งนี้กลับเปลี่ยนไปตามวัยที่เพิ่มขึ้น ทำไมอิคคิวซัง ถึงสามารถแก้ปัญหา ได้ดี หรือว่าเป็นเพราะทุกครั้งที่อิคคิวเจอปัญหาเขาต้องใช้สมองและนั่งสมาธิ รึป่าวน
กลับมาเข้าเรื่องที่จะนำเสนอผู้อ่านในวันนี้กันครับ อาจจะเป็นวิธีการง่ายๆที่หลายคนอาจจะเคยคำนวณมาแล้วบ้างก็ได้ พื้นที่เป็นสมบัติด้านรูปร่างที่วิศวกรออกแบบชิ้นส่วนางวิศวกรรมต้องคำนวณหรือใช้ในการออกแบบอยู่เสมอ เนื่องจากความเค้นซึ่งเป็นสาเหตุที่ทำให้ชิ้นส่วนต่างๆมีการเสียรูปร่างหรือเสียหายไปนั้นจะกระจายอยู่บนพื้นที่ต่างๆในวัตถุนั้น ดังจะเห็นการนิยามความเค้นได้ว่า ความเค้นคือ ความเข้มของแรงที่กระทำมีหน่วยเป็นแรงต่อพื้นที่ นอกจากนี้การคำนวณหาพื้นที่ยังถูกนำไปใช้ในงานอื่นๆอีก เช่นตัวอย่างหนึ่งที่ผมมักใช้อยู่เสมอคือการคำนวณหาพลังงานสูญเสียต่อรอบของชิ้นตัวอย่างยางขณะรับภาระแบบพลวัต หรือใช้ในการช่วยคำนวณพื้นที่ดินสำหรับธุรกิจขายที่ดิน เช่าที่ดินหรือธุรกิจถมที่ดิน ซึ่งต้องการทราบพื้นที่ดิน
ผมมีรูปกราฟแสดงความสัมพันธ์ของความเค้นและความเครียดขณะที่รับโหลดแบบพลวัตที่มีรูปแบบเป็นคลื่นไซน์ ดังแสดงในภาพที่ 1 พื้นที่ในลูปจะแสดงถึงค่าพลังงานสูญเสียของชิ้นตัวอย่างยาง ซึ่งการคำนวณหาพื้นที่ในลูปนี้เราจะใช้วิธีการหาพื้นที่รูปหลายเหลี่ยมเข้ามาช่วย ท่านจะเห็นว่า เส้นรอบรูปของลูปนี้เกิดจากการลากเชื่อมต่อกันระหว่างจุด โดยแต่ละจุดจะแสดงด้วยพิกัดแกน X และ แกน Y (ในที่นี้คือค่าความเครียดและความเค้น) หากเรานำข้อมูลพิกัด X และ Y เข้าไปในโปรแกรม Excel โดยให้เรียงลำดับแต่ละจุดในทิศทางทวนเข็มนาฬิกาหรือตามเข็มนาฬิกาก็ได้ โดยจุดเริ่มต้นจะมีพิกัดเท่ากับจุดสุดท้าย xn,yn = x0,y0
หากกำหนดให้รูปหลายเหลี่ยมมีทั้งหมด n จุด (จุด n จะมีพิกัดเดียวกับจุด 0) และเป็นรูปหลายเหลี่ยมที่เส้นรอบรูปไม่ตัดกันเอง พื้นที่รูปหลายเหลี่ยมสามารถหาได้จาก Surveyor's Formula


และสามารถเขียนการคำนวณให้ง่ายขึ้นดังแสดงในแผนภาพ


จากแผนภาพจะเห็นได้ว่าเราสามารถนำไปเขียนโปรแกรมเล็กๆไว้สำหรับคำนวณพื้นที่หลายเหลี่ยมนี้ได้ โดยให้อ่านข้อมูลพิกัดแต่ละจุดจาก text ไฟล์ซึ่งเราบันทึกข้อมูล หรือเปิด text ไฟล์นี้ด้วย Excel หรือ Calc แล้วกำหนดสูตรเพื่อคำนวณก็ได้เช่นกัน ดูตัวอย่างการใช้ excel คำนวณพื้นที่หลายเหลี่ยมได้เลยครับ

Yahoo bot last visit powered by  Ybotvisit.com