เอกสารประกอบการสอนวิชา mechanical engineering system ......

39
1 เอกสารประกอบการสอนวิชา Mechanical Engineering System Design III การออกแบบและวิเคราะห์เชิงไฟไนท์เอลิเมนต์ของโครงถัก (Truss Finite Element Analysis and Design) สุจินต์ บุรีรัตน์ ภาควิชาวิศวกรรมเครื่องกล มหาวิทยาลัยขอนแก่น โครงถัก โครงถัก ( trusses) หรือโครงข้อหมุน คือโครงสร้างทางวิศวกรรมที่ประกอบขึ้นด้วยชิ้นส่วนที่มีสองจุด ต่อ (2-node members) โดยใช้ข้อต่อหมุน (revolute joints) เชื่อมต่อชิ้นส่วนเข้าด้วยกัน โครงถักสามารถแบ่ง ออกเป็นโครงถักใน 2 มิติ (2D truss) และโครงถักในสามมิติ (space truss) รูปที่ 1 โครงถักใน 2 มิติ รูปที่ 1 แสดงตัวอย่างของโครงสร้างแบบโครงถักในสองมิติ ซึ่งประกอบด้วยชิ้นส่วน 6 ชิ้น และข้อต่อ หมุน 5 ชุด โดยมีจุดรองรับ (supports) สองจุดดังแสดงในรูป ชิ้นส่วนในโครงถักรับแรงดึงหรือกดเท่านั้น ในการ วิเคราะห์แรงกระทาในโครงถักใน 2 มิติ เราสามารถประยุกต์ใช้สมการสมดุลแรงสถิต (F = 0) รวมแรงที่ข้อ ต่อ ซึ่งเมื่อแยกสมการเวคเตอร์ของแรงออกเป็นเวคเตอร์ย่อยในแนวแกน x และ y จะได้สมการเชิงเส้น 2 สมการ นั่นหมายความว่า ถ้าเรามีข้อต่อทั้งหมด J ชุดเราสามารถหาสมการสมดุลแรงสถิตได้ 2J สมการ ส่วน ของตัวแปรที่ไม่ทราบค่าของระบบจะประกอบด้วยจานวนแรงปฏิกิริยาที่จุดรองรับ ( R) และ จานวนแรง (ดึง หรือกด) ที่กระทาบนชิ้นส่วน ซึ่งมีจานวนเท่ากับจานวนของชิ้นส่วน ( N) ดังนั้นเราสามารถสรุปรูปแบบการ วิเคราะห์โครงถักใน 2 มิติได้ดังนี2J = N + R statically determinate 2J < N + R statically indeterminate (1) 2J > N + R unstable ในกรณีที2J = N + R สมการสมดุลสถิตมีจานวนเท่ากับจานวนของตัวแปรที่ไม่ทราบค่าพอดี ในกรณีนีเราใช้เพียงหลักการสมดุลสถิตก็สามารถวิเคราะห์โครงสร้างได้ (statically determinate) ในกรณีที2J < N + R ซึ่งหมายความว่า โครงสร้างมีจานวนตัวแปรมากกว่าจานวนของสมการสมดุลสถิต ซึ่งไม่สามารถวิเคราะห์ โครงสร้างได้โดยการใช้หลักการสมดุลสถิตเพียงอย่างเดียว ( statically indeterminate) ในที่นี้ เราใช้การ วิเคราะห์ทางไฟไนทเอลิเมนต์ (finite element analysis) เป็นเครื่องมือวิเคราะห์หาคาตอบ ส่วนกรณีที2J > N + R เมื่อจานวนตัวแปรที่ไม่ทราบค่ามีน้อยกว่าจานวนสมการสมดุลสถิตทั้งหมด ในทางกายภาพหมายถึงโครง ถักที่ไม่มีความเสถียร อย่างไรก็ตามโครงถักที่มีเงื่อนไข 2J N + R ก็ไม่ได้หมายความว่า โครงสร้างจะมีความ เสถียรในทุกกรณี ต้องทาการพิจารณาขนาดของชิ้นส่วน การเกิดเป็นกลไกย่อยในโครงถัก และรูปแบบและการ วางตัวของจุดรองรับประกอบด้วย

Upload: others

Post on 12-Oct-2019

2 views

Category:

Documents


0 download

TRANSCRIPT

1

เอกสารประกอบการสอนวิชา Mechanical Engineering System Design III

การออกแบบและวิเคราะห์เชิงไฟไนท์เอลิเมนต์ของโครงถัก (Truss Finite Element Analysis and Design)

สุจินต์ บุรีรัตน์ ภาควิชาวิศวกรรมเครื่องกล มหาวิทยาลัยขอนแก่น

โครงถัก

โครงถัก (trusses) หรือโครงข้อหมุน คือโครงสร้างทางวิศวกรรมที่ประกอบขึ้นด้วยชิ้นส่วนที่มีสองจุดต่อ (2-node members) โดยใช้ข้อต่อหมุน (revolute joints) เชื่อมต่อชิ้นส่วนเข้าด้วยกัน โครงถักสามารถแบ่งออกเป็นโครงถักใน 2 มิติ (2D truss) และโครงถักในสามมิติ (space truss)

รูปที่ 1 โครงถักใน 2 มิติ

รูปที่ 1 แสดงตัวอย่างของโครงสร้างแบบโครงถักในสองมิติ ซึ่งประกอบด้วยชิ้นส่วน 6 ชิ้น และข้อต่อหมุน 5 ชุด โดยมีจุดรองรับ (supports) สองจุดดังแสดงในรูป ชิ้นส่วนในโครงถักรับแรงดึงหรือกดเท่านั้น ในการวิเคราะห์แรงกระท าในโครงถักใน 2 มิติ เราสามารถประยุกต์ใช้สมการสมดุลแรงสถิต (F = 0) รวมแรงที่ข้อต่อ ซึ่งเมื่อแยกสมการเวคเตอร์ของแรงออกเป็นเวคเตอร์ย่อยในแนวแกน x และ y จะได้สมการเชิงเส้น 2 สมการ นั่นหมายความว่า ถ้าเรามีข้อต่อทั้งหมด J ชุดเราสามารถหาสมการสมดุลแรงสถิตได้ 2J สมการ ส่วนของตัวแปรที่ไม่ทราบค่าของระบบจะประกอบด้วยจ านวนแรงปฏิกิริยาที่จุดรองรับ (R) และ จ านวนแรง (ดึงหรือกด) ที่กระท าบนชิ้นส่วน ซึ่งมีจ านวนเท่ากับจ านวนของชิ้นส่วน (N) ดังนั้นเราสามารถสรุปรูปแบบการวิเคราะห์โครงถักใน 2 มิติได้ดังนี้

2J = N + R statically determinate

2J < N + R statically indeterminate (1) 2J > N + R unstable

ในกรณีที่ 2J = N + R สมการสมดุลสถิตมีจ านวนเท่ากับจ านวนของตัวแปรที่ไม่ทราบค่าพอดี ในกรณีนี้เราใช้เพียงหลักการสมดุลสถิตก็สามารถวิเคราะห์โครงสร้างได้ (statically determinate) ในกรณีที่ 2J < N + R

ซึ่งหมายความว่า โครงสร้างมีจ านวนตัวแปรมากกว่าจ านวนของสมการสมดุลสถิต ซึ่งไม่สามารถวิเคราะห์โครงสร้างได้โดยการใช้หลักการสมดุลสถิตเพียงอย่างเดียว (statically indeterminate) ในที่นี้ เราใช้การวิเคราะห์ทางไฟไนทเอลิเมนต์ (finite element analysis) เป็นเครื่องมือวิเคราะห์หาค าตอบ ส่วนกรณีที่ 2J > N

+ R เมื่อจ านวนตัวแปรที่ไม่ทราบค่ามีน้อยกว่าจ านวนสมการสมดุลสถิตทั้งหมด ในทางกายภาพหมายถึงโครงถักที่ไม่มีความเสถียร อย่างไรก็ตามโครงถักที่มีเง่ือนไข 2J ≤ N + R ก็ไม่ได้หมายความว่า โครงสร้างจะมีความเสถียรในทุกกรณี ต้องท าการพิจารณาขนาดของชิ้นส่วน การเกิดเป็นกลไกย่อยในโครงถัก และรูปแบบและการวางตัวของจุดรองรับประกอบด้วย

2

รูปที่ 2 โครงถักในปริภูมิสามมิติ

รูปที่ 2 แสดงตัวอย่างของโครงข้อหมุนในปริภูมิสามมิติ ซึ่งประกอบด้วยจุดรองรับ 4 จุด ข้อต่อหมุนสามมิติ 10 ชุด และชิ้นส่วน 19 ชิ้น เช่นเดียวกันกับกรณีของโครงถักใน 2 มิติ ชิ้นส่วนของโครงถักสามมิติสามารถรับแรงกดหรือดึงได้เท่านั้น ก าหนดให้ J คือจ านวนข้อต่อ N คือจ านวนชิ้นส่วน และ R คือจ านวนแรงปฏิกิริยาที่ไม่ทราบค่า เงื่อนไขของการวิเคราะห์โครงถักสามมิติคือ

3J = N + R statically determinate

3J < N + R statically indeterminate (2) 3J > N + R unstable

ในกรณีที่ 3J ≤ N + R โครงถักมีโอกาสที่จะเกิดความไม่เสถียรได้เหมือนกับเงื่อนไข 2J ≤ N + R ของโครงถักสองมิติ ต้องท าการพิจารณาขนาดของชิ้นส่วน การเกิดเป็นกลไกย่อยภายในโครงถัก และรูปแบบและการวางตัวของจุดรองรับประกอบเพื่อตรวจสอบความไม่เสถียรของโครงสร้าง

หลักการพลังงานศักย์ต ่าสุด (principle of minimum potential energy) การวิเคราะห์ไฟไนท์เอลิเมนต์ของโครงสร้างสามารถน าเสนอได้หลายรูปแบบ ในการค านวณเมตริกซ์ของเอลิเมนต์ (element matrices) สามารถใช้วิธี variational approach และ weighted residual approach

เป็นต้น ในวิชาเรียนนี้ จะท าการใช้หลักการพลังงานศักย์ต่ าสุดซึ่งจัดว่าเป็นวิธี variational method เนื่องจากเป็นการแสดงค่าต่างๆอยู่ในรูปของปริมาณทางกายภาพ ท าให้ง่ายต่อการท าความเข้าใจ

รูปที่ 3 หลักการพลังงานศักย์ต่ าสุด

หลักการพลังงานศักย์ต่ าสุดกล่าวว่า “วัตถุหรือระบบของวัตถุจะอยู่ในสภาวะสมดุลเมื่อพลังงานศักย์รวมของวัตถุหรือระบบนั้นมีค่าต่่าสุด” รูปที่ 3 แสดงหลักการพลังงานศักย์ต่ าสุดอย่างง่ายของลูกบอลกลมเคลื่อนที่ภายในถ้วยภายใต้แรงโน้มถ่วงของโลกในทิศลง ดังนั้น พลังงานศักย์ของระบบมี เฉพาะพลังงานศักย์โน้มถ่วง (gravitational potential energy) ซึ่งแปรผันตรงกับค่าความสูง h ดังรูป ท าการบอกต าแหน่งของลูกบอลด้วยค่าการกระจัด q เวคเตอร์ในหนึ่งมิติเทียบกับจุดอ้างอิงทางซ้ายมือดังรูป จะเห็นได้ว่าเราสามารถแสดงความสัมพันธ์ระหว่าง ความสูงของลูกบอล h และระยะการกระจัดของลูกบอลได้ถ้าทราบรูปทรงของผิวในของถ้วย ฉะนั้น เราสามารถแสดงความสัมพันธ์ระหว่างการกระจัดของลูกบอลและพลังงานศักย์โน้มถ่วงได้ดังนี้

3

(q) = ρgh(q) (3)

จุดที่ลูกบอลมีค่าพลังงานศักย์ต่ าที่สุดคือจุดที่ h น้อยที่สุด ซึ่งเป็นต าแหน่งก้นถ้วย ดังนั้น ในทางปฏิบัติ ถ้าเราปล่อยลูกบอลให้เคลื่อนที่ในถ้วย ลูกบอลจะปรับตัวเข้าหาสภาวะสมดุลนั่นคือต าแหน่งที่ท าให้ลูกบอลมีพลังงานศักย์ต่ าท่ีสุดซึ่งก็คือต าแหน่งก้นถ้วย

รูปที่ 4 แสดงการประยุกต์ใช้หลักการพลังงานศักย์ต่ าสุดกับโคงสร้างแบบสปริงแบบเชิงเส้น โครงสร้างแบบสปริงเชิงเส้น ในที่นี้คือชิ้นส่วนใดๆที่มีพฤติกรรมสอดคล้องกับระบบสปริงเชิงเส้น กล่าวคือ เมื่อมีแรงกระท าชิ้นส่วนนั้นจะเกิดการกระจัดหรือการยืดตัวที่มีปริมาณแปรผันตรงกับขนาดของแรง จากรูปก าหนดให้สปริงมีความยาวเท่ากับ u0 เมื่อไม่มีแรงกระท า สปริงมีค่าความแข็งเท่ากับ k ดังนั้น เมื่อสปริงถูกดึงด้วยแรง F

จะยืดตัวเป็นระยะทาง u จะได้พลังงานศักย์รวมของระบบคือ

uFku 2

2

1 (4)

รูปที่ 4 สปริงเชิงเส้น

รูปที่ 5 พลังงานศักย์โน้มถ่วงของอนุภาค

พจน์ที่หนึ่งทางด้านขวามือของสมการเรียกว่าพลังงานศักย์ยืดหยุ่น (elastic potential energy) พจน์ที่สองของสมการ (4) มีค่าเป็นลบเพราะว่าการที่แรงกระท ากับระบบแล้วท าให้เกิดการกระจัดไปในทิศทางเดียวกันกับแรงนั้น จะท าให้ระบบสูญเสียพลังงานศักย์ ตัวอย่างที่เห็นได้ชัดคือค่าพลังงานศักย์โน้มถ่วงของอนุภาคดังแสดงในรูปที่ 5 ถ้าการกระจัดของอนุภาคมีทิศตรงข้ามกับแรงโน้มถ่วงของโลก จะท าให้อนุภาคมีค่าพลังงานศักย์เพ่ิมขึ้น (เป็นบวก) แต่ถ้าอนุภาคมีการกระจัดในทิศทางเดียวกับแรงกระท า จะท าให้อนุภาคมีพลังงานศักย์ลดลง

u0 u0 + u

F

k

4

เพ่ือหาค่าพลังงานศักย์ต่ าสุดของระบบสปริงในรูปที่ 4 หาอนุพันธ์ของพลังงานศักย์เทียบกับการกระจัด และสามารถหาจุดต่ าสุดสัมพัทธ์ได้ดังนี้

0

Fkudu

d

และการกระจัดของสปริงที่ต าแหน่งของพลังงานศักย์ต่ าสุดคือ

kFu /*

รูปที่ 6 ระบบโครงสร้างแบบสปริง

ตัวอย่างที่สองของการประยุกต์ใช้หลักการพลังงานศักย์ต่ าสุดในการวิเคราะห์โครงสร้างสปริงเชิงเส้นแสดงในรูปที่ 6 จากรูประบบโครงสร้างประกอบด้วยสปริง 2 ชิ้นที่มีค่าความแข็งเป็น k1 และ k2 การกระจัดของระบบสามารถวัดไดด้้วยเวคเตอร์ในหนึ่งมิติ r1 และ r2 ดังแสดงในรูป แรงกระท ากับระบบสามารถกระท าได้ที่จุดต่อระหว่างสปริงในที่นี้คือแรง F2 จากแผนภาพวัตถุอิสระ (free body diagram) ของโครงสร้างแสดงในรูปที่ 6 เนื่องจากสปริงตัวที่ 2 มีระยะการยืดจริงเท่ากับ (r2 - r1) ดังนั้นแรงปฏิกิริยาระหว่างสปริงหมายเลข 1 กับ 2 คือ k2(r2 - r1) เราสามารถวิเคราะห์โครงสร้างโดยประยุกต์ใช้สมการสมดุลสถิต (F = 0) กับสปริงทั้งสอง จะได้ความสัมพันธ์

22212122

2212112211

)(

0)()(

Frkrkrrk

rkrkkrrkrk

(5)

ซึ่งสามารถจัดอยู่ในรูปของสมการเมตริกซ์ได้ดังนี้

22

1

22

221 0

Fr

r

kk

kkk (6)

ถ้าเราประยุกต์ใช้หลักการพลังงานศักย์ต่ าสุด พลังงานศักย์รวมของระบบสปริงนี้คือ

222

1222

11 )(2

1

2

1Frrrkrk (7)

5

เราสามารถหาจุดที่ให้พลังงานศักย์ต่ าสุดของระบบได้โดยการหาอนุพันธ์ย่อยของระบบเทียบกับการกระกระจัดทั้งสองค่า และค่าพลังงานศักย์ต่ าสุดเกิดขึ้นตามเง่ือนไขนี้

0)(

0)(

2122

2

12211

1

Frrkr

rrkrkr

(8)

ซึ่งเมื่อจัดรูปสมการใหม่จะได้สมการเมตริกซ์เดียวกันกับสมการที่ (6) ดังนี้

22

1

22

221 0

Fr

r

kk

kkk

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

รูปที่ 7 ไฟไนท์เอลิเมนต์ของระบบโครงสร้างแบบสปริง

เอลิเมนต์แบบสปริง

การวิเคราะห์โครงสร้างของสปริง ด้วยระเบียบวิธีไฟไนท์เอลิเมนต์ สามารถท าได้โดยการใช้หลั กการพลังงานศักย์ต่ าสุดดังแสดงในหัวข้อย่อยที่ผ่านมา เพ่ือความสะดวกในการด าเนินการเกี่ยวกับโปรแกรมคอมพิวเตอร์ สปริงแต่ละตัวจะถูกจัดเป็นเอลิเมนต์ รูปที่ 7 แสดงระบบโครงสร้างของสปริงที่ประกอบด้วยเอลิเมนต์ของสปริง 2 เอลิเมนต์ที่มีค่าความแข็งเป็น k1 และ k2 ระบบโครงสร้างประกอบด้วยต าแหน่งของจุดต่อ (nodes) ที่เชื่อมปลายทั้งสองด้านของสปริงทั้งสองตัว การวัดการกระจัดของระบบท าได้โดยการวัดการกระจัดของจุดต่อ และก าหนดให้แรงกระท าที่จุดต่อเท่านั้น จากรูป มีการก าหนดเงื่อนไขขอบเขต (boundary

conditions) คือท าการยึดจุดต่อหมายเลข 1 ให้อยู่กับที่หรือตั้งค่า r1 = 0 พลังงานศักยร์วมของระบบคือ

6

1133222

2322

121 )(2

1)(

2

1FrFrFrrrkrrk (9)

ซึ่งสามารถจัดให้อยู่ในรูปของสมการเมตริกซ์ได้ดังนี้

3

2

1

3

2

1

3

2

22

22

3

2

2

1

11

11

2

1

2

1

2

1

F

F

F

r

r

r

r

r

kk

kk

r

r

r

r

kk

kk

r

r

T

TT

(10)

หรือ

J

i

ii

N

e

eeTe

TTT FrrkrFrrkrrkr2

1

2

1

2

1222111

เมตริกซ์ k1 และ k2 เรียกว่าเมตริกซ์ความแข็ง (element stiffness matrix) ของเอลิเมนต์สปริงซึ่งหาได้จากค่าพลังงานศักย์ยืดหยุ่นของเอลิเมนต์นั้นๆ เวคเตอร์ r1 และ r2 คือเวคเตอร์การะจัดที่จุดต่อของเอลิเมนต์ (element nodal displacement vector) เพ่ือสามารถรวมทุกเทอมในสมการที่ (10) เข้าด้วยกัน ท าการแปลงเวคเตอร์การกระจัดของจุดต่อของเอลิเมนต์ให้เป็นเวคเตอร์การกระจัดของจุดต่อรวมของระบบ (global

displacement vector, r) ได้ดังนี ้

rTr

rTr

2

3

2

1

3

2

2

1

3

2

1

2

1

1

100

010

010

001

r

r

r

r

r

r

r

r

r

r

(11)

แทนค่า (11) ใน (10) จะได้

PrTrkTrTrkTrTTTTT 21

2

1

2

1

หรือ

3

2

1

3

2

1

3

2

1

22

22

3

2

1

3

2

1

11

11

3

2

1

0

0

000

2

1

000

0

0

2

1

F

F

F

r

r

r

r

r

r

kk

kk

r

r

r

r

r

r

kk

kk

r

r

rTTT

(12)

เมื่อรวมเมตริกซ์ความแข็งของทุกเอลิเมนต์จะได้พลังงานศักย์รวมของระบบดังนี้

7

3

2

1

3

2

1

3

2

1

22

2211

11

3

2

1

0

0

2

1

F

F

F

r

r

r

r

r

r

kk

kkkk

kk

r

r

rTT

(13)

เพ่ือความเข้าใจ ในการหาค่าพลังงานศักย์ต่ าสุดในรูปแบบของสมการเมตริกซ์ ก าหนดให้ f เป็นฟังก์ชันของเวคเตอร์ x ขนาด n×1 ซึ่งสามารถเขียนแทนด้วย f(x): R

n → R ฟังก์ชันควอดราติกของ x สามารถเขียนได้

ดังนี้

cxAxxTTf

2

1

ค่าเกรเดียนของ f เทียบกับ x คือ

cAx f

การหาค่าต่ าสุดของ f เทียบกับ x ท าได้โดยการหาผลเฉลยของสมการ ∇f = 0 ซึ่งเรียกว่าเงื่อนไขส าคัญ (necessary conditions) ของการหาค่าต่ าสุด (minimisation) นอกจากนี้ ยังมีอีกเงื่อนไขเพ่ิมอีกอย่างหนึ่ง เพ่ือรับประกันว่าค าตอบจากเงื่อนไขส าคัญคือค่าต่ าสุดจริง เงื่อนไขนี้ เรียกว่าเงื่อนไขเพียงพอ (sufficient

conditions) ซึ่งกล่าวว่า ค่า x ที่ได้จากการแก้ระบบสมการ ∇f = 0 จะเป็นค่าต่ าสุดจริงเมื่อเมตริกซ์เฮสเซียนของ f เขียนแทนด้วย ∇2

f = A เป็นเมตริกซ์แบบโพซิทิฟเดฟินิท (positive definite) หรือกล่าวอีกนัยหนึ่งว่า ค่าไอเก้น (eigenvalues) ของเมตริกซ์ A ทุกค่าต้องมีค่ามากกว่าศูนย์ จากท่ีกล่าวมาข้างต้น เราสามารถหาจุดต่ าสุดของพลังงานศักย์ใน (13) โดยการหาค่าเงื่อนไขส าคัญของพลังงานศักย์ดังนี้

0

3

2

1

3

2

1

22

2211

11

0

0

F

F

F

r

r

r

kk

kkkk

kk

(14)

ท าให้ได้ระบบสมการเชิงเส้น

3

2

1

3

2

1

22

2211

11

0

0

F

F

F

r

r

r

kk

kkkk

kk

(15)

เมตริกซ์ทางด้านซ้ายมือของสมการเรียกว่าเมตริกซ์ความแข็งรวม (global stiffness matrix) ของระบบโครงสร้าง นอกจากนี้ยังมีเวคเตอร์ของการกระจัดรวม (global nodal displacements) และเวคเตอร์ของแรงภายนอกรวม (global external forces) ดังที่ปรากฏในสมการ

สมการที่ (15) มีตัวแปรที่ไม่ทราบค่าคือ การกระจัด r2, r3 และแรงปฎิกริยา F1 ดังนี้

8

3

2

1

3

2

1

22

2211

11 ?

?

?

0

0

F

F

F

r

r

r

kk

kkkk

kk

ซึ่งจะท าให้ระบบสมการเชิงเส้นแบ่งออกเป็นสองส่วนคือส่วนที่มีการกระจัดเป็นตัวแปรที่ไม่ทราบค่าซึ่งเป็นการกระจัดของจุดต่อท่ีทราบแรงกระท า เมื่อรวมกลุ่มกันสามารถเขียนแทนด้วยเวคเตอร์ ra และแรงกระท าที่ทราบค่าเขียนแทนด้วยเวคเตอร์ Fa ส่วนของตัวแปรที่ไม่ทราบค่ากลุ่มที่สองคือแรงหรือแรงปฏิกิริยาที่กระท าที่จุดต่อที่ถูกระบุเงื่อนไขขอบเขตแบบการกระจัด กลุ่มของแรงนี้เขียนแทนด้วย Fb และเวคเตอร์ของการกระจัดที่เป็นเงื่อนไขขอบเขต (ทราบค่า) คือ rb เราสามารถจัดหมวดหมู่ของระบบสมการเชิงเส้นในรูปแบบนี้ได้เป็น

b

a

b

a

bbba

abaa

F

F

r

r

KK

KK

(16)

เมื่อ ผลเฉลยของระบบสมการเชิงเส้นนี้คือ

bbbabab

baaaa

rKrKF

rFKr

)(1

(17)

เมตริกซ์ในสมการที่ (15) เมื่อจัดหมวดหมู่แล้ว สามารถเปรียบเทียบกับสมการที่ (16) ได้ดังนี้

13

2

1

3

2

11

22

221

,,,

,0

FF

Fr

r

r

kk

kk

kkk

baba

bb

T

abba

aa

FFrr

KKK

K

รูปที่ 8 Flowchart ของกระบวนการค านวณทางไฟไนท์เอลิเมนต์แบบสถิต

รูปที่ 8 แสดง flowchart ส าหรับการวิเคราะห์ทางไฟไนท์เอลิเมนต์เชิงสถิต โดยทั่วไป กระบวนการวิเคราะห์สามารถแบ่งออกเป็น 3 ส่วนหลักคือ ส่วนป้อนข้อมูล (pre-processing) ส่วนการหาผลเฉลย (solver หรือ analysis) และส่วนของการแสดงผลการค านวณ (post-processing)

9

ในส่วนของการป้อนข้อมูล ผู้ใช้ต้องให้ข้อมูลทั้งหมดของโครงสร้าง เช่นรูปทรง ชนิดของเอลิเมนต์ที่ใช้ การแบ่งเอลิเมนต์ ต าแหน่งของจุดต่อท้ังหมด การเชื่อมกันของจุดต่อเกิดเป็นเอลิเมนต์ คุณสมบัติของวัสดุ และเงื่อนไขขอบเขตซึ่งประกอบด้วย แรงกระท าที่จุดต่อ และค่าการกระจัดของจุดต่อบางจุด เมื่อคอมพิวเตอร์อ่านข้อมูลของโครงสร้างทั้งหมดแล้ว ก็จะท าการค านวณเมตริกซ์ความแข็งของเอลิเมนต์ (ke) จากนั้นท าการรวมเมตริกซ์เหล่านี้เข้าด้วยกัน เรียกขั้นตอนนี้ว่ากระบวนการประกอบเมตริกซ์ (assembly process) ซึ่งจากตัวอย่างของโครงสร้างสปริงแสดงอยู่ในสมการที่ (10) – (13) เมื่อได้เมตริกซ์ความแข็งรวม, เวคเตอร์การกระจัดรวม และเวคเตอร์แรงรวม ของโครงสร้าง ท าการจัดหมวดหมู่ตัวแปรที่ไม่ทราบค่าและหาผลเฉลยของระบบสมการเชิงเส้นซึ่งสอดคล้องกับสมการ (14) – (17) ผลเฉลยที่ได้คือการกระจัดที่จุดต่อและแรงปฏิกิริยาที่จุดรองรับ จากนั้นจะเป็นส่วนของการแสดงผลการค านวณซึ่งประกอบด้วยการกระจัดและแรงกระท าที่จุดต่อ นอกจากนี้ ในกรณีของโครงสร้างทั่วไป สามารถค านวณและแสดงผลของความเค้นและความเครียดที่จุดต่างๆได้

รูปที่ 9 เอลิเมนต์แบบสปริง

รูปที่ 9 แสดงรูปแบบของเอลิเมนต์แบบสปริงเชิงเส้น เอลิเมนต์ประกอบด้วยจุดต่อ 2 จุดคือจุด i และ j ก าหนดให้ค่าความแข็งของสปริงคือ k เมตริกซ์ของเอลิเมนต์แบบสปริงเชิงเส้น และเวคเตอร์ของการกระจัดที่จุดต่อของเอลิเมนต์ แสดงในสมการที่ (18)

j

i

e

e

r

r

k

r

k11

11

(18)

รูปที่ 10 แสดงโปรแกรมส าหรับระเบียบวิธีไฟไนท์เอลิเมนต์ของโครงสร้างแบบสปริงเชิงเส้น ดังที่ได้อธิบายมาก่อนหน้านี้ โปรแกรมบันทึกอยู่ในรูปของ m-file ชื่อ feaspring.m ซึ่งประกอบด้วน 3 ส่วนหลักของการค านวณทางไฟไนท์เอลิเมนต์คือ pre-processing ซึ่งเป็นการป้อนข้อมูลของสปริง ตัวแปรในโปรแกรมคือ

nnode = จ านวนจุดต่อของโครงสร้าง

ele = เมตริกซ์แสดงการเชื่อมต่อของหมายเลขของจุดต่อเกิดเป็นเอลิเมนต์ใดๆ จากรูปการป้อนข้อมูลส่วนของ pre-processing เป็นข้อมูลของโครงสร้างสปริงในรูปที่ 7 ซึ่งมี 3 จุดต่อและ 2 เอลิเมนต์ นอกจากนี้ในเมตริกซ์เอลิเมนต์ยังก าหนดค่าความแข็งของสปริง ซึ่งมีค่าเป็น k1 = 10 และ k2 = 15

F = เมตริกซ์แสดงค่าแรงภายนอกที่กระท ากับจุดต่อของโครงสร้าง ในที่นี้คือมีแรงขนาด 100 กระท าที่จุดต่อหมายเลข 3 ในทิศบวก (ทิศขวามือ) จากข้อมูลนี้แสดงว่าแรงกระท าที่จุดต่อจุดอ่ืนนอกเหนือจากจุดต่อหมายเลข 3 มีค่าเป็นศูนย์

BC = เมตริกซ์แสดงค่าเงื่อนไขขอบเขตของการกระจัดซึ่งจะระบุหมายเลขของจุดต่อ (ในที่นี้คือจุดต่อหมายเลข 1) และค่าการกระจัดที่ก าหนดให้ ถ้าจุดต่อไหนไม่ปรากฏอยู่ในเมตริกซ์นี้ แสดงว่าการกระจัดของจุด

10

ต่อเหล่านั้นเป็นตัวแปรที่ไม่ทราบค่า ในขณะเดียวกัน แรงปฏิกิริยาที่จุดต่อที่ปรากฏอยู่ในเวคเตอร์นี้เป็นแรงที่ไม่ทราบค่า

ในส่วนของ analysis โปรแกรมจะค านวณหาเมตริกซ์ความแข็งรวม และเวคเตอร์ของแรงภายนอกรวม โดยเรียกใช้ sub-program ชื่อว่า fassembly ซึ่งกระบวนการค านวณจะสอดคล้องกับสมการ (10) – (13) เมื่อได้เมตริกซ์และเวคเตอร์ทั้งสองแล้ว ท าการจัดหมวดหมู่ของตัวแปรที่ทราบและไม่ทราบค่าและหาผลเฉลยของสมการดังรายละเอียดใน (14) – (17) ในขั้นตอนนี้เรียกใช้ sub-program ชื่อว่า fpartition ดังปรากฏอยู่ในรูปที่ 10 การรันโปรแกรมสามารถท าได้โดยการ พิมพ์ค าว่า feaspring พร้อมกดปุ่ม Enter ที่ MATLAB command

window

ส่วนที่ 3 คือส่วนการแสดงผล ในโปรแกรมนี้ จะแสดงผลการค านวณค่าการกระจัดที่จุดต่อต่างๆที่ MATLAB command window

function feaspring

%%%%%%% Pre-processing %%%%%%%%%%%%%

nnode=3;% node number

% node numbers element stiffness

ele =[1 2 10 %element1

2 3 15];%element2

% Nodal forces

F=[3 100];

% Boundary conditions

% node no. displacement values

BC=[1 0];

%%%%%%%%%%%%%%% Analysis %%%%%%%%%%%%%%%%%%%%

[K,F] = fassembly(ele,F,nnode);

[Kaa,Kab,Kba,Kbb,Fa,Fb,nsa,nsb]=fpartition(K,F,BC);

rb=zeros(size(nsb));

ra=inv(Kaa)*(Fa-Kab*rb);

Fb=(Kba*ra+Kbb*rb);

displm=zeros(size(K,1),1);

displm(nsa,1)=ra

F(nsb,1)=Fb

%%%%% Post-processing

clc

disp(‘-----------------------‘)

disp(‘-----------------------‘)

disp(‘–Computing results –‘)

disp(‘-----------------------‘)

disp(‘-----------------------‘)

disp(‘ ‘)

disp(‘Nodal displacement’)

disp(‘ ‘)

for i=1:length(displm)

disp([‘displacement at node number ‘ num2str(i) ‘ is ‘

num2str(displm(i))])

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function [K,F] = fassembly(ele,F0,nnode);

[m1,n1]=size(ele);

K = zeros(nnode,nnode); % initial stiffness matrix

11

for I = 1:m1

i1=ele(I,1);

i2=ele(I,2);

ki=ele(I,3);

T = zeros(2,nnode);

T(1,i1)=1;

T(2,i2)=1;

% element stiffness matrix

K_e=ki*[1 -1

-1 1];

K=K+T’*K_e*T;

end

F=zeros(nnode,1);

for i=1:size(F0,1)

i0=F0(I,1);

F(i0,1)=F0(I,2);

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function [Kaa,Kab,Kba,Kbb,Fa,Fb,nsa,nsb]=fpartition(K,F,BC)

[nsn,ns]=sort(BC(:,1));

BC=BC(ns,:);

[n,m]=size(BC);

mm=m-1;

nsa=(1:size(K,1))’;

nsb=[];

for i=n:-1:1

ii=BC(I,1);

for j=m:-1:2

if BC(I,j)==0

jj=mm*ii-(m-j);

nsa(jj,:)=[];

nsb=[nsb;jj];

end

end

end

nsa=sort(nsa);

nsb=sort(nsb);

Kaa=K(nsa,nsa);Kab=K(nsa,nsb);

Kba=K(nsb,nsa);Kbb=K(nsb,nsb);

Fa=F(nsa,1);

Fb=F(nsb,1);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

รูปที่ 10 โปรแกรม MATLAB ส าหรับการวิเคราะห์ไฟไนท์เอลิเมนต์ของโครงสร้างสปริง

12

รูปที่ 11 โครงสร้างแบบสปริง

รูปที่ 11 แสดงโครงสร้างแบบสปริงที่แตกต่างจากโครงสร้างสปริงในรูปที่ 7 ความแตกต่างคือมีเอลิเมนต์ที่ 3 ของสปริงซึ่งเชื่อมระหว่างจุดต่อ 1 และ 3 เพ่ิมเข้ามา ส่วนค่าความแข็งของสปริงก็มีค่าแตกต่างกันไปดังแสดงในรูป ในการวิเคราะห์โครงสร้างนี้ เราสามารถประยุกต์ใช้โปรแกรมในรูปที่ 10 โดยมีการเปลี่ยนแปลงเฉพาะข้อมูลของโครงสร้างในส่วนของ pre-processing เท่านั้น โดยใช้ข้อมูลในรูปที่ 12 แทนข้อมูลเดิมในรูปที่ 10 ในกระบวนการค านวณทางไฟไนท์เอลิเมนต์ ค่าพลังงานศักย์รวมของระบบ สามารถหาได้ดังนี้

3

2

1

3

2

1

3

1

3

1

3

3

2

3

2

2

2

1

2

1

1

11

11

2

1

11

11

2

1

11

11

2

1

F

F

F

r

r

r

r

r

r

rk

r

r

r

rk

r

r

r

rk

T

T

TT

เมื่อ

rTr 1

3

2

1

2

1

1010

001

r

r

r

r

r

rTr 2

3

2

1

3

2

2100

010

r

r

r

r

r

rTr 3

3

2

1

3

1

3100

001

r

r

r

r

r

แทนค่า r1, r2 และ r3 ในรูปแบบของ T1r, T2r และ T3r ตามล าดับ จะได้ค่าพลังงานศักย์รวมของระบบ

คือ

13

3

2

1

3

2

1

3

2

1

33

33

3

2

1

3

2

1

22

22

3

2

1

3

2

1

11

11

3

2

1

0

000

0

2

1

0

0

000

2

1

000

0

0

2

1

F

F

F

r

r

r

r

r

r

kk

kk

r

r

r

r

r

r

kk

kk

r

r

r

r

r

r

kk

kk

r

r

r

TT

TT

เมื่อรวมเมตริก์เข้าด้วยกัน จะได้พลังงานศักย์รวมอยู่ในรูปของ

3

2

1

3

2

1

3

2

1

3223

2211

3131

3

2

1

2

1

F

F

F

r

r

r

r

r

r

kkkk

kkkk

kkkk

r

r

rTT

จากนั้น ท าการวิเคราะห์ตามกระบวนการ (14) – (17) ด้วยกระบวนการค านวณในรูปแบบนี้ ท าให้เราสามารถสร้างโปรแกรมคอมพิวเตอร์ที่ใช้ส าหรับวิเคราะห์โครงสร้างของสปริงในรูปแบบต่างๆ โดยมีช่องทางให้ผู้ใช้โปรแกรมสามารถป้อนข้อมูลของโครงสร้างให้กับคอมพิวเตอร์ หลักการนี้คล้ายกับหลักการที่ใช้ในโปรแกรมคอมพิวเตอร์ทางไฟไนท์เอลิเมนต์เชิงพาณิชย์ทั่วๆไป ซึ่งผู้พัฒนาโปรแกรมต้องจัดเตรียมในส่วนของ element models ไว้ตามความเหมาะสมของการวิเคราะห์ การป้อนข้อมูลเริ่มต้นมักอยู่ในรูปแบบของ graphic user interface (GUI) ซึ่งเป็นการอ านวยความสะดวกให้กับผู้ใช้งาน เมื่อท าการวิเคราะห์เสร็จแล้วสามารถแสดงผลทั้งแบบตัวเลขและแบบรูปภาพ เพ่ือท าความเข้าใจได้ง่าย

%%%%%%% Pre-processing %%%%%%%%%%%%%

nnode=3;% node number

% node numbers element stiffness

ele =[1 2 5 %element1

2 3 8 %element2

1 3 10];%element3

% Nodal forces

F=[3 100];

% Boundary conditions

% node no. displacement values

BC=[1 0];

รูปที่ 12 input data ของโครงสร้างในรูปที่ 11

เอลิเมนต์แบบแท่งวางตัวใน 1 มิติ (1D bar) เอลิเมนต์แบบแท่งวางตัวใน 1 มิติ ในที่นี้คือแท่งของวัตถุที่มีพ้ืนที่หน้าตัดคงที่และรับแรงในแนวแกนเท่านั้น ตัวอย่างของแท่งรับแรงในแนวแกนแสดงในรูปที่ 13 แท่งมีพ้ืนที่หน้าตัด A ความยาวเริ่มต้นคือ L เมื่อรับแรงในแนวแกน F เกิดการยืดตัวเป็น u ดังรูป ถ้าชิ้นส่วนนี้ท าจากวัสดุเหนียว (ductile material) เช่นเหล็กเหนียว หรือเหล็กกล้า (steel) ความสัมพันธ์ระหว่างความเค้น (σ) กับความเครียด (ε) บนชิ้นส่วนนี้ในช่วงความยืดหยุ่นเชิงเส้น (elastic) สามารถแสดงได้ดังรูปที่ 14 ก. เมื่อ

14

E

L

u

A

F

(19)

รูปที่ 13 โครงสร้างแบบแท่ง (bar) รับแรงในแนวแกน

เมื่อท าการจัดรูปสมการใหม่ จะได้ความสัมพันธ์

F = ku (20)

เมื่อ

k = EA/L (21)

รูปที่ 14 ความสัมพันธ์ระหว่างความเค้น-ความเครียด แรง-การยืดตัวในช่วง elastic

จะเห็นได้ว่าการเปลี่ยนรูปของแท่งที่รับแรงในแนวแกน มีพฤติกรรมคล้ายกับการกรณีของเอลิเมนต์แบบสปริงเชิงเส้น ดังนั้นในกรณีของโครงสร้างแบบแท่งรับแรงในแนวแกน เอลิเมนต์ของโครงสร้างจะมีรูปแบบเดียวกันกับเอลิเมนต์แบบสปริงเชิงเส้น รูปที่ 15 แสดงเอลิเมนต์แบบแท่งใน 1 มิติแบบทั่วๆไปซึ่งมีจุดต่อสองจุดคือจุด i และ j ชิ้นส่วนท าจากวัสดุที่มีค่าโมดูลัสของยัง (Young modulus) เป็น E มีพ้ืนที่หน้าตัด A และมีความยาวเท่ากับ L จากสมการ (18) และ (21) จะได้เมตริกซ์ความแข็งและ เวคเตอร์ของการกระจัดที่จุดต่อของเอลิเมนต์ดังนี ้

ก ข

15

รูปที่ 15 เอลิเมนต์แบบแท่ง

j

i

e

e

u

u

L

AE

r

k11

11

(22)

เมื่อท าการวิเคราะห์โครงสร้างและทราบการกระจัดที่จุดต่อท้ังสองของเอลิเมนต์ (ui และ uj) เราสามารถค านวณหาค่าความเค้นและความเครียดได้จากสมการ (23)

L

uuEE

ij

e

(23) รูปที่ 16 แสดงตัวอย่างของโครงสร้างที่ประกอบด้วยเอลิเมนต์แบบแท่งรับแรงในแนวแกนที่วางตัวใน

1 มิติ โครงสร้างประกอบด้วยเอลิเมานต์ชนิดนี้ 3 เอลิเมนต์ที่มีพ้ืนที่หน้าตัดและความยาวของเอลิเมนต์แตกต่างกัน ค่าโมดูลัสของยังมีค่าเป็น E = 200×10

9 ดังแสดงในรูป โปรแกรมภาษาคอมพิวเตอร์ของ MATLAB

ส าหรับวิเคราะห์โครงสร้างนี้แสดงในรูปที่ 17 โปรแกรมบันทึกในไฟล์ชื่อ fea1dbar.m โครงร่างของโปรแกรมมีรูปแบบคล้ายกันกับโปรแกรมการวิเคราะห์โครงสร้างแบบสปริงในรูปที่ 10 แต่จะมีความแตกต่างกันบ้างในส่วนของการป้อนข้อมูลซึ่งต้องก าหนดค่าพ้ืนที่หน้าตัดของแต่ละเอลิเมนต์แทนที่ค่าความแข็งในกรณีของเอลิเมนต์แบบสปริง นอกจากนี้ยังต้องระบุค่าโมดูลัสของยัง และต้องระบุต าแหน่งของจุดต่อทั้ง 4 อย่างชัดเจนดังแสดงในชื่อของตัวแปร nodes ที่ปรากฏใน m-file ในส่วนของการวิเคราะห์ผล แทนที่ค่า k ของเมตริกซ์ความแข็งของเอลิเมนต์ด้วยค่า (AE/L) ค่าของความยาวของเอลิเมนต์หาได้จากระยะห่างระหว่างจุดต่อของเอลิเมนต์นั้นๆ กระบวนการวิเคราะห์ส่วนอื่นมีรูปแบบเดียวกันกับโปรแกรมวิเคราะห์โครงสร้างของสปริง ค่าพลังงานศักย์รวมของระบบหาได้ดังนี้

4

14

3

4

3

3

3

3

2

3

2

3

2

2

1

2

1

1

1

11

11)(

2

1

11

11)(

2

1

11

11)(

2

1

i

ii

T

TT

Frr

r

r

r

L

EA

r

r

r

r

L

EA

r

r

r

r

L

EA

เมื่อ

rTr 1

4

3

2

1

2

1

10010

0001

r

r

r

r

r

r

16

rTr 2

4

3

2

1

3

2

20100

0010

r

r

r

r

r

r

rTr 3

4

3

2

1

4

3

31000

0100

r

r

r

r

r

r

แทนค่า r1 = T1r, r2 = T2r และ r3 = T3r จะได้

)(

11

11

11

11

11

11

2

1

44332211

33

3

322

2

211

1

1

FrFrFrFr

L

EA

L

EA

L

EA TTTT

rTTTTTTr

จากนั้นท าการวิเคราะห์ตามขั้นตอน (14) – (17)

รูปที่ 16 โครงสร้างที่ประกอบด้วยเอลิเมนตแบบแท่งรับแรงในแนวแกน ในส่วนของการแสดงผล จะแสดงทั้งการกระจัดที่จุดต่อและค่าความเค้นบนเอิเมนต์ต่างๆ ซึ่งสามารถ

ค านวณได้จากสมการ (23)

function fea1dbar

% Pre-process (input data)

% nodal positions

% x

nodes=[ 0 % node 1

0.5 % node 2

1.0 % node 3

1.75];% node 4

% node numbers element cross-sectional areas

ele =[1 2 1.0%element1

2 3 0.75%element2

3 4 0.5];%element3

% Nodal forces

F=[4 100];

%Boundary conditions

BC=[1 0];

% Material properties

E = 200e9;% Young modulus

%%%%%%%%%%%%%%% Solver %%%%%%%%%%%%%%%%%%%%

17

[K,F,S] = fassembly(ele,F,nodes,E);

[Kaa,Kab,Kba,Kbb,Fa,Fb,nsa,nsb]=fpartition(K,F,BC);

rb=zeros(size(nsb));

ra=inv(Kaa)*(Fa-Kab*rb);

Fb=(Kba*ra+Kbb*rb);

displm=zeros(size(K,1),1);

displm(nsa,1)=ra;

F(nsb,1)=Fb;

sigma=S*displm;

% post-processing

clc

disp(‘-----------------------‘)

disp(‘-----------------------‘)

disp(‘–Computing results –‘)

disp(‘-----------------------‘)

disp(‘-----------------------‘)

disp(‘ ‘)

disp(‘Nodal displacement’)

disp(‘ ‘)

for i=1:length(displm)

disp([‘displacement at node number ‘ num2str(i) ‘ is ‘

num2str(displm(i))])

end

disp(‘ ‘)

disp(‘ ‘)

disp(‘Element stress’)

disp(‘ ‘)

for i=1:length(sigma)

disp([‘stress on element ‘ num2str(i) ‘ is ‘ num2str(sigma(i))])

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function [K,F,S] = fassembly(ele,F0,nodes,E);

[m1,n1]=size(ele);

[m2,n2]=size(nodes);

K = zeros(m2,m2); % initial stiffness matrix

S = zeros(m1,m2); % initial stress matrix

for I = 1:m1

i1=ele(I,1);

i2=ele(I,2);

Ai=ele(I,3);

li=abs(nodes(i2)-nodes(i1));

T = zeros(2,m2);

T(1,i1)=1;

T(2,i2)=1;

K_e=(E*Ai/li)*[1 -1

-1 1];

K=K+T’*K_e*T;

S(I,[i1 i2])=(E/li)*[-1 1];

end

F=zeros(m2,1);

for i=1:size(F0,1)

18

i0=F0(I,1);

F(i0,1)=F0(I,2);

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function [Kaa,Kab,Kba,Kbb,Fa,Fb,nsa,nsb]=fpartition(K,F,BC)

[nsn,ns]=sort(BC(:,1));

BC=BC(ns,:);

[n,m]=size(BC);

mm=m-1;

nsa=(1:size(K,1))’;

nsb=[];

for i=n:-1:1

ii=BC(I,1);

for j=m:-1:2

if BC(I,j)==0

jj=mm*ii-(m-j);

nsa(jj,:)=[];

nsb=[nsb;jj];

end

end

end

nsa=sort(nsa);

nsb=sort(nsb);

Kaa=K(nsa,nsa);Kab=K(nsa,nsb);

Kba=K(nsb,nsa);Kbb=K(nsb,nsb);

Fa=F(nsa,1);

Fb=F(nsb,1);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

รูปที่ 17 โปรแกรม MATLAB ส าหรับการวิเคราะห์ไฟไนท์เอลิเมนต์แบบแท่งที่วางตัวในหนึ่งมิติ

รูปที่ 18 โครงถักใน 2 มิติ

รูปที่ 19 เอลิเมนต์แบบแท่งในสองมิติ

1

2 4

3 5

e1

e2

e3

e4 e6

e5

19

เอลิเมนต์แบบแท่งที วางตัวในสองมิติ (2D bar) รูปที่ 18 แสดงโครงถักใน 2 มิติซึ่งประกอบด้วยชิ้นส่วนหรือเอลิเมนต์ทั้งหมด 6 ชิ้น มีจ านวนจุดต่อเท่ากับ 5 จุดต่อ และมีจุดรองรับ 2 จุด อยู่ภายใต้แรงกระท าที่จุดต่อที่ปลายบนด้านขวามือของโครงสร้างดังรูป เนื่องจากจุดต่อเป็นข้อต่อหมุน และไม่คิดแรงเสียดทานในข้อต่อ ดังนั้นเอลิเมนต์แต่ละชิ้นจะรับแรงกดหรือแรงดึงเท่านั้น นั่นหมายความว่าพฤติกรรมการรับแรงและการเสียรูปของแต่ละเอลิเมนต์ในโครงถัก 2 มิติ จะคล้ายกันกับการเสียรูปของโครงสร้างที่ประกอบด้วยเอลิเมนต์แบบแท่งที่วางตัวในหนึ่งมิติ หรือมีความคล้ายกันกับเอลิเมนต์แบบสปริงเชิงเส้นนั่นเอง ด้วยเหตุนี้เราอาจกล่าวได้ว่า โครงถักใน 2 มิติ มีความสมมูลกับการที่เอลิเมนต์ของสปริงเชิงเส้นที่มีการเสียรูปเฉพาะการยืดหรือหดเท่านั้น ประกอบกันและวางตัวใน 2 มิติดังแสดงในรูปที่ 18

รูปที่ 19 แสดงเอลิเมนต์ของโครงถักใน 2 มิติที่ประกอบด้วยจุดต่อสองจุดคือจุด i แบะ j เอลิเมนต์มีพ้ืนที่หน้าตัดเป็น A และมีความยาวเท่ากับ L การเสียรูปของเอลิเมนต์ของโครงถักในสองมิติเมื่อมีแรงกระท า เมื่อสังเกตเทียบกับพิกัดสัมบูรณ์ X-Y แต่ละจุดต่อของโครงถักจะเกิดการกระจัดในแนวแกน X และ Y ทั้งสองจุด ดังนั้นเวคเตอร์ของการกระจัดที่จุดต่อของเอลิเมนต์ของโครงถักใน 2 มิติคือ

j

j

i

i

e

v

u

v

u

r (23)

รูปที่ 20 แสดงระบบพิกัดของระบบที่ใช้ในการอ้างอิงต าแหน่งของเอลิเมนต์ของโครงถัก 2 มิติ จากรูปได้ท าการเพิ่มพิกัดสัมพัทธ์ x′-y′ ซึ่งมีแนวแกน x′ ขนานกับแนวของเอลิเมนต์ ถ้าเราสังเกตเอลิเมนต์เทียบกับพิกัดสัมพัทธ์ รูปแบบของเอลิเมนต์นี้จะคล้ายกันกับเอเลเมนต์แบบแท่งในรุปที่ 15 โดยมีการกระจัดที่จุดต่อเป็น r′e

= {u′x u′y}T (ไม่มีค่าของ { v′x, v′y}) ดังนั้น ค่าพลังงานศักย์ยืดหยุ่นของเอลิเมนต์คือ

j

i

T

j

i

eT

ee u

u

u

u

L

EA

L

EAU

11

11

2

1

11

11

2

1rr (24)

รูปที่ 20 การกระตัดในระบบพิกัดสัมบูรณ์และพิกัดสัมพัทธ์

เราสามารถหาความสัมพันธ์ระหว่าง re ใน (23) และ r′e ใน (24) ได้จากเงื่อนไขที่ว่า การกระจัด u′ ที่จดุใดๆ คือโปรเจคชันของการกระจัด [u v]

T ในแนวแกน x′ ซึ่งสามารถเขียนสมการได้ดังนี้

20

ij

ij

ijij

i

i

jviuiiu i

/

/

///

).(.

R

R

RRR

r

(25)

เมื่อ Ri และ Rj คือเวดเตอร์ต าแหน่งของจุดต่อ i และ j ตามล าดับ เพราะฉะนั้น

jmiljL

YYi

L

XX

YY

XX

Li

ijij

ij

ij

1

(26)

เมื่อ (Xi, Yi) และ (Xj, Yj) คือพกิัดของจุดต่อ i และ j ตามล าดับ (แสดงในรูปที่ 21) แทนค่า (26) ใน (25) จะได้

e

j

j

i

i

j

i

v

u

v

u

ml

ml

u

u

v

umlu

vmuljviuiu

Tr

00

00

).(

(27)

แทนค่า (27) ในสมการพลังงานศักย์ยืดหยุ่นของเอลิเมนต์ของโครงถัก 2 มิติใน (24) จะได้เมตริกซ์ความแข็งของเอลิเมนต์ของโครงถักใน 2 มิติดังนี้

TTk

TrTr

11

11

11

11

2

1

11

11

2

1

L

EA

L

EA

u

u

u

u

L

EAU

Te

eTT

ej

i

T

j

i

e

(28)

และ

22

22

22

22

mmlmml

lmllml

mmlmml

lmllml

L

EAek

(29)

21

รูปที่ 21 ความสัมพันธ์ระหว่างการกระจัดในพิกัดสัมพัทธ์และพิกัดสัมบูรณ์

การวิเคราะห์โครงสร้างแบบโครงข้อหมุนหรือโครงถักโดยใช้โปรแกรมคอมพิวเตอร์จะมีรูปแบบคล้ายกันกับการวิเคราะห์โครงสร้างที่ประกอบด้วยเอลิเมนต์แบบสปริงเชิงเส้น และเอลิเมนต์แบบแท่งที่วางตัวใน 1 มิติ โดยที่เมตริกซ์ความแข็งแสดงในสมการที่ (29) การกระจัดที่จุดต่อของเอลิเมนต์แสดงในสมการที่ (23) ส่วนเวคเตอร์ของแรงภายนอกจะเป็นเวคเตอร์ของแรงย่อยในแนวแกน X และแกน Y กระท าที่จุดต่อต่างๆ เมื่อหาผลเฉลยของสมดุลสถิตแล้ว เราทราบค่าของกระจัดที่จุดต่อทั้งในแนว X และ Y ค่าความเค้นที่กระท ากับเอลิเมนต์สามารถค านวณได้จากสมการ (30) ดังนี้

L

uuE

v

u

v

u

ml

ml

u

u

ij

e

e

j

j

i

i

j

i

Tr00

00

(30)

และแรงกระท าในเอลิเมนต์ค านวณได้จาก

Fe = Aσe (31)

รูปที่ 22 โครงถักสองมิติ

22

รูปที่ 22 แสดงโครงถักใน 2 มิติที่ประกอบด้วยจุดต่อ 4 จุดและเอลิเมนต์ 4 ชิ้น จุดต่อหมายเลข 1 และ 2

ถูกเชื่อมกับพื้นด้วยข้อต่อหมุนใน 2 มิติ และท่ีจุดต่อหายเลข 4 มีแรงในแนวแกน y กระท าในทิศลง ขนาด 1000

N ข้อมูลอื่นๆของโครงสร้างแสดงในรูป เราสามารถค านวณหาค่าพลังงานศักย์รวมของระบบได้ดังนี้

FrrkrrkrrkrrkrTTTTT 444333222111

2

1

2

1

2

1

2

1

เมื่อ

3

3

1

1

1

v

u

v

u

r ,

3

3

2

2

2

v

u

v

u

r ,

4

4

2

2

3

v

u

v

u

r ,

4

4

3

3

4

v

u

v

u

r

22

22

22

22

eeeeee

eeeeee

eeeeee

eeeeee

e

ee

mlmmlm

mllmll

mlmmlm

mllmll

L

EAk

เมื่อ e คือหมายเลขของเอลิเมนต ์

Tvuvuvuvu 44332211r

Tyxyxyxyx FFFFFFFF 4,4,3,3,2,2,1,1,F

ความสัมพันธ์ระหว่างเวคเตอร์การกระจัดที่จุดต่อของเอลิเมนต์และ เวคเตอร์ของการกระจัดที่จุดต่อของโครงสร้างโดยรวม หาได้ดังนี้

rTrr 11

00100000

00010000

00000010

00000001

rTrr 22

00100000

00010000

00001000

00000100

rTrr 33

10000000

01000000

00001000

00000100

rTrr 44

10000000

01000000

00100000

00010000

23

เมื่อแทนค่าในสมการพลังงานศักย์รวมของโครงสร้าง จะได้สมการ

FrrTkTTkTTkTTkTrTTTTTT 444333222111

2

1

จากนั้นท าการค านวณตามกระบวนการในสมการที่ (14) – (17) และเม่ือได้ผลเฉลยแล้ว สามารถค านวณค่าความเค้นและแรงกระท าในเอลิเมนต์ได้โดยใช้สมการ (30) – (31) โปรแกรม MATLAB ส าหรับวิเคราะห์เชิงสถิตของโครงถัก 2 มิติ มี 3 โปแกรมย่อยคือ fea2dbarpre.m

ส าหรับ pre-processing, fea2dbarsol.m ส าหรับ analysis และ fea2dbarpost.m ส าหรับ post-processing ในการรันโปรแกรม จ าเป็นต้องสร้าง input file เพ่ือป้อนข้อมูลของโครงสร้างให้กับคอมพิวเตอร์ รูปที่ 22 แสดงปัญหาการวิเคราะห์เชิงสถิตของโครงถัก 2 มิติ จากรูป เราสามารถสร้าง input file ส าหรับค านวณทางไฟไนท์เอลิเมนต์ของโครงถักนี้ได้ ดังแสดงในรูปที่ 23

จากรูปที่ 23 m-file จะต้องคงค าสั่งในบรรทัดแรกเอาไว้ และชื่อตัวแปรจะไม่เปลี่ยนเป็นอ่ืน (ยกเว้นในกรณีที่นักศึกษามีความเชี่ยวชาญในการเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ของ MATLAB) ตัวแปร node

ใช้ในการระบุต าแหน่งของจุดต่อของโครงถัก โดยเรียงล าดับหมายเลขของจุดต่อตามต าแหน่งของแถวของเมตริกซ์ ในแต่ละแถวของตัวแปร ele เป็นข้อมูลของเอลิเมนต์ที่มีหมายเลขสอดคล้องกับหมายเลขแถวของเมตริกซ์ แต่ละแถวเป็นการบอกการเชื่อมต่อของจุดต่อสองจุด และในคอลัมน์ที่ 3 คือค่าพ้ืนที่หน้าตัดของเอลิเมนต์นั้นๆ ตัวแปร material เป็นการให้ข้อมูลคุณสมบัติของวัสดุที่ใช้ท าโครงสร้างในที่นี้มีสองค่าคือ ค่าโมดูลัสของยังและความหนาแน่น ส่วนตัวแปร F และ BC เป็นการก าหนดเงื่อนไขขอบเขตของแรงและการกระจัดตามล าดับ ซึ่งมีรูปแบบคล้ายกันกับกรณีของ feaspring.m และ fea1dbar.m แต่มีข้อแตกต่างคือ ค่าแรงและการกระจัดจะมีส่วนย่อยในแนวแกน X และ Y

function [node,ele,material,F,BC]=truss

% Do not modify the above command

%

% Input data of a 2-D truss structure for finite element analysis

%

% node = nodal points (Truss joint positions)

% x y

node=[0 0 %node1

0 1.5 %node2

1 0.75%node3

2 1.5];%node4

% element = the metrix of truss elements represented by node number

combination

% node numbers element cross-sectional areas

ele =[1 3 0.001 %element1

2 3 0.001 %element2

2 4 0.001 %element3

3 4 0.001];%element4

%material properties

% E Rho

material=[200e9 7000];

% Nodal forces (external static forces acting on the truss)

24

% x y-direction

F=[4 0 -1000];%node 4

%Boundary conditions

% node no. x-dpm y-dpm

BC=[1 0 0

2 0 0];

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

รูปที่ 23 finite element input file ของโครงสร้างในรูปที่ 22

รูปที่ 24 ก. ผลการรันค าสั่ง fea2dbarpre(‘truss2d01’)

ในการรันโปรแกรมการวิเคราะห์ไฟไนท์เอลิเมนต์ของโครงถักใน 2 มิติ เมื่อท าการสร้าง input file เสร็จแล้วท าการรันค าสั่ง fea2dbarpre(‘input file name’) พร้อมกดปุ่ม Enter บน MATLAB command window

จะได้ผลการรันคือกราฟแสดงรูปร่างของโครงถักดังรูปที่ 24 ก. ซึ่งได้จากการรัน fea2dbarpre(‘truss2d01’) เมื่อตรวจสอบความถูกต้องของโครงสร้างเรียบร้อยแล้ว รันค าสั่ง fea2dbarsol(‘truss2d01’) พร้อมกดปุ่ม Enter บน MATLAB command window จะได้ผลการรันคือเวคเตอร์การกระจัดของจุดต่อในรูปของตัวแปร displm และค่าความเค้นที่เอลิเมนต์ต่างในรูปของตัวแปร sigm ซึ่งถูกบันทึกใน mat-file ชื่อว่า ‘input file

name’ rst.ma ในที่นี้คือไฟล์ truss2d01rst.mat กระบวนการค านวณของการวิเคราะห์ไฟไนท์เอลิเมนต์ของโครงถัก 2 มิติ จะมีรูปแบบคล้ายกันกับโครงสร้างอื่นๆท่ีกล่าวมาแล้ว กล่าวคือเมื่อท าการประกอบเมตริกซ์ความแข็งรวม โปรแกรมจะวนรอบการค านวณเป็นจ านวนรอบเท่ากับจ านวนของเอลิเมนต์ทั้งหมดของโครงสร้าง ในแต่ละรอบของการค านวณ โปรแกรมจะค านวณเมตริกซ์ความแข็งของเอลิเมนต์ตามสมการที่ (29) และรวมเมตริกซ์เหล่านั้นเข้าด้วยกันจนได้เมตริกซ์ความแข็งรวมของโครงสร้าง จากนั้น ท าการวิเคราะห์โครงสร้างโดยการแก้ระบบสมการเชิงเส้น (17) และท าการค านวณค่าความเค้นของเอลิเมนต์ตามกระบวนการในสมการ (30) ขั้นตอนสุดท้าย ท าการรันเพ่ือแสดงผลการค านวณด้วยค าสั่ง fea2dbarpost(‘truss2d01’) พร้อมกดปุ่ม Enter

บน MATLAB command window จะได้ผลของการวิเคราะห์โครงสร้าง ซึ่งแสดงอยู่ในรูปของการเสียรูปและค่าความเค้นของแต่ละเอลิเมนต์ ดังแสดงในรูปที่ 24 ข.

25

รูปที่ 24 ข. ผลการรันค าสั่ง fea2dbarpost(‘truss2d01’)

รูปที่ 25 ความสัมพันธ์ระหว่างพิกัดสัมบูรณ์และพิกัดสัมพัทธ์ของเอลิเมนต์แบบแท่งที่วางตัวใน 3 มิต ิ

การหาค่าเหมาะที สุดของโครงถัก (truss optimisation) ในการออกแบบเหมาะที่สุดของโครงสร้าง ผู้ออกแบบจะต้องค านึงถึงปัจจัยและผลกระทบต่างๆในการ

ออกแบบเพ่ือให้ได้ชิ้นงานออกแบบที่ดีที่สุดตรงตามเป้าหมายที่ต้องการ อีกทั้งยังต้องสอดคล้องกับมาตรฐานและหลักการออกแบบทางวิศวกรรม กระบวนการออกแบบชิ้นงานทางวิศวกรรมสามารถแบ่งออกเป็นสามขั้นตอนหลักกล่าวคือ การออกแบบตามแนวคิด (Concept design) การออกแบบขั้นต้น (Preliminary design) และการออกแบบละเอียด (Detailed design) ซึ่งเป็นขั้นตอนสุดท้ายก่อนที่จะมีการสร้างชิ้นส่วนต้นแบบและพัฒนาเพ่ือเข้าสู่กระบวนการผลิตต่อไป ในอดีตอุตสาหกรรมในประเทศไทยส่วนใหญ่จะนิยมคัดลอกรูปแบบเบื้องต้นของโครงสร้างมาจากต่างประเทศหรือแม้กระทั่งคิดขึ้นมาเองจากประสบการณ์และท าการออกแบบละเอียดแล้วน าเข้าสู่กระบวนการผลิตเลย แต่ด้วยพัฒนาการของคอมพิวเตอร์และวิธีค านวณเชิงตัวเลขในปัจจุบัน ปัญหาที่กล่าวในข้างต้นสามารถแก้ไขได้ การออกแบบโครงสร้างในงานจริงที่มีเครื่องค านวณมา

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

0

0.5

1

1.5

=-2083.3333

= 3.3881e-013

= 2666.6667

= -2083.3333

x

y

Original structure

Displaced structure

26

เกี่ยวข้องจะเป็นการประยุกต์ใช้วิธีค านวณเชิงตัวเลขเช่น การใช้ระเบียบวิธีไฟไนท์เอลิเมนต์เพ่ือวิเคราะห์โครงสร้าง ส่วนการหาค าตอบเหมาะที่สุดใช้วิธีหาค่าเหมาะที่สุดเชิงตัวเลข (Numerical optimisation

methods) ปัญหาคณิตศาสตร์การออกแบบเหมาะที่สุด สามารถเขียนอยู่ในรูปแบบทั่วไปได้ดังนี้

)(min xx

f (32) subject to

gi(x) 0

hj(x) = 0 x

l x x

u เมื่อ n

Rx คือเวคเตอร์ของตัวแปรออกแบบ (design variables) f(x) คือฟังก์ชันเป้าหมาย (objective function)

gi(x) คือเงื่อนไขบังคับแบบอสมการ (inequality constraints)

hj(x) คือเงื่อนไขบังคับแบบสมการ (equality constraints)

xl คือขอบเขตล่างของตัวแปรออกแบบ (lower bounds)

และ xu คือขอบเขตบนของตัวแปรออกแบบ (upper bounds)

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

โดยทั่วไปตัวแปรออกแบบมักจะตั้งให้มีขอบเขตบนและล่างด้วยขีดจ ากัดในการสร้างหรือการจัดหาวัสดุ ตัวแปรออกแบบในการออกแบบโครงสร้างสามารถแบ่งออกเป็นสามชนิดคือ ตัวแปรออกแบบก าหนดโทโปโลยี (topological design variables) ตัวแปรออกแบบก าหนดรูปร่าง (shape design variables) และตัวแปรออกแบบก าหนดขนาด (sizing design variables) ตัวแปรโทโปโลยีมักใช้ในขั้นตอนการออกแบบตามแนวคิดส่วนตัวแปรก าหนดรูปร่างและขนาด นิยมใช้ในการออกแบบขั้นต้น การออกแบบละเอียดสามารถประยุกต์ใช้ตัวแปรได้ทุกชนิดเพ่ือปรับเปลี่ยนโครงสร้างให้ดีขึ้น ทั้งนี้จ านวนของตัวแปรออกแบบในขั้นตอนการออกแบบละเอียดจะน้อยมากเมื่อเทียบกับสองขั้นตอนก่อนหน้านี้

ฟังก์ชันเป้าหมายหมายถึง ปริมาณที่ใช้วัดคุณภาพของระบบที่ท าการออกแบบ เช่น น้ าหนักของโครงสร้างเครื่องบินเพื่อช่วยให้ประหยัดน้ ามัน ราคาของโครงสร้างตึก ราคาและความมั่นคงของระบบโครงข่ายท่อประปา ประสิทธิภาพของเฟืองทด และความแข็งแรงของโครงสร้าง ปัญหาการหาค่าเหมาะที่สุดที่มีเป้าหมายเดียวเรียกว่า การหาค่าเหมาะที่สุดเป้าหมายเดียว (single objective optimisation) ส่วนกรณีท่ีปัญหามีมากกว่าหนึ่งเป้าหมายเรียกว่า การหาค่าเหมาะสมแบบหลายเป้าหมาย (multi-objective optimisation)

เงื่อนไขบังคับคือ ข้อจ ากัดในการออกแบบเหมาะที่สุด ซึ่งสามารถแยกออกเป็น ข้อจ ากัดของตัวแปรออกแบบ (bound constraints หรือ box constraints) กล่าวคือ ตัวแปรออกแบบ ได้ถูกก าหนดขอบเขตเพ่ือความเป็นไปได้ในการน าไปใช้งานจริง นอกจากขอบเขตบนและล่างของตัวแปรออกแบบแล้ว ยังมีเงื่อนไขบังคับในการออกแบบอื่นๆ (design constraints) เช่น ถ้าต้องการหาโครงสร้างที่ใช้รับภาระโดยให้โครงสร้างมีน้ าหนักเบาที่สุด ข้อจ ากัดของการออกแบบคือ โครงสร้างจะต้องไม่เสียหาย (ทุกรูปแบบ) ภายใต้ภาระที่กระท า ปัญหาการออกแบบโครงสร้างเพ่ือใช้ในงานจริงมักต้องมีเงื่อนไขบังคับการออกแบบ เงื่อนไขบังคับสามารถแบ่งเป็นเงื่อนไขบังคับแบบอสมการ (inequality constraints) และเงื่อนไขบังคับแบบสมการ (equality constraints) ในการจ าแนกปัญหาการออกแบบเหมาะที่สุดด้วยการมีอยู่ของเงื่อนไขบังคับ จะได้การหาค่าเหมาะที่สุดแบบไม่มีเงื่อนไขบังคับ (unconstrained optimisation) และการหาค่าเหมาะที่สุดตามเงื่อนไขบังคับ (constrained optimisation) รูปที่ 26 (ก) แสดงภาพอุปมาของการหาค่าเหมาะที่สุดแบบไม่มีเงื่อนไขบังคับ จาก

27

รูปเป็นภาพของคนก าลังเดินลงไปในบริเวณที่เป็นแอ่ง ก าหนดให้ระดับความสูงของแอ่งคือค่าฟังก์ชันเป้าหมาย ดังนั้นต าแหน่งของคนคือเวคเตอร์ตัวแปรออกแบบนั่นเอง ในที่นี้คนก าลังเดินหาจุดที่ต่ าสุดของแอ่ง เส้นทางที่ใช้ในการเดินทางไปยังเป้าหมายถูกก าหนดโดยวิธีหาค่าเหมาะที่สุด รูปที่ 26 (ข) แสดงอุปมาของปัญหาการหาค่าเหมาะที่สุดตามเงื่อนไขบังคับ จากรูป คนก าลังหาทางเดินลงไปยังจุดที่ต่ าสุดของแอ่ง แต่ในกรณีนี้มีรั้วกั้นเอาไว้เป็นเงื่อนไขให้ค้นหาจุดที่มีระดับความสูงน้อยที่สุดภายในเขตรั้วเท่านั้น รั้วที่กันนี้เปรียบเสมือนเงื่อนไขบังคับในรูปแบบอสมการ เส้นทางในการเดินไปสู่จุดที่ระดับความสูงต่ าสุดถูกก าหนดโดยวิธีหาค่าเหมาะที่สุด รูปที่ 27 แสดงตัวอย่างฟังก์ชันเป้าหมาย f(x) = (x-1)

2 ซึ่งมีตัวแปรออกแบบหนึ่งตัว จากรูปหากเป็นการหาค่า

ต่ าสุด จุดเหมาะท่ีสุดคือจุด x* = 1 เมื่อ f(x*) = 0

(ก) (ข) รูปที่ 26 การหาค่าเหมาะที่สุดแบบมีและไม่มีเงื่อนไขบังคับ

รูปที่ 27 ฟังก์ชันเป้าหมายใน 1 มิติ

การหาค่าเหมาะที สุดแบบไม่มีเงื อนไขบังคับ

ตัวอย่างที 1 จงหาผลเฉลยของ 22

21

,)2()1()(min

21

xxfxx

x

จุดเริ่มต้น จุดเริ่มต้น

จุดเหมาะที่สุด จุดเหมาะที่สุด

28

วิธีท า จากฟังก์ชันเป้าหมายซึ่งเป็นฟังก์ชันก าลังสองและมีตัวแปรต้นสองตัวคือ x1 และ x2 ค่าของฟังก์ชันจะมีค่ามากกว่าหรือเท่ากับศูนย์ส าหรับทุกค่าของตัวแปรต้น x = {x1 x2}

T ค่าของ x ที่ให้ค่าฟังก์ชันต่ าสุดคือ x =

{1, 2}T ซึ่งจะได้ค่าฟังก์ชันเป็น f(x) = 0

รูปที่ 28 (ก) – (ค) แสดงพื้นผิวของค่าฟังก์ชันเป้าหมายกับค่าตัวแปรออกแบบรูปแบบต่างๆ

รูปที่ 28 (ก) ฟังก์ชันเป้าหมายของตัวอย่างที 1 (ค าสั่ง mesh)

รูปที่ 28 (ข) ฟังก์ชันเป้าหมายของตัวอยา่งที 1 (ค าสั่ง meshc)

รูปที่ 28 (ค) ฟังก์ชันเป้าหมายของตัวอย่างที 1 (ค าสั่ง contour)

จุดเหมาะ

ที่สุด

จุดเหมาะที่สดุ

จุดเหมาะที่สดุ

29

การหาค่าเหมาะที สุดแบบมีเงื อนไขบังคับ

ตัวอย่างที 2 จงหาค่าต่ าสุดของ

22

2121 )1(),()( xxxxff x (33)

โดยมีเงื่อนไขบังคับ

0810)(

01510)(

1222

2211

xxg

xxg

x

x

รูปที่ 29 (ก) แสดงคอนทัวร์ของฟังก์ชันเป้าหมายซึ่งมีจุดต่ าสุดในกรณีที่ไม่มีเงื่อนไขบังคับอยู่ที่ x = {0, 1}T รูป

ที่ 29 (ข) แสดงคอนทัวร์ของฟังก์ชันเงื่อนไขบังคับ g1 พร้อมทั้งแสดงระดับความสูงของค่าฟังก์ชัน จากรูป เส้นคอนทัวร์ทึบคือขอบเขต g1 = 0 เป็นเขตแดนระหว่างพ้ืนที่ด้านบนซึ่งให้ค่า g1 < 0 และพ้ืนที่ด้านล่างของเขตแดนซึ่งให้ค่า g1 > 0 รูปที่ 29 (ค) แสดงคอนทัวร์และขอบเขตของฟังก์ชันเงื่อนไขบังคับ g2 โดยมีเส้นคอนทัวร์ทึบเป็นเขตแดนระหว่างพ้ืนที่ด้านซ้ายที่ g2 < 0 กับพ้ืนที่ด้านขวาซึ่งให้ค่า g2 > 0

เมื่อน ารูปทั้งสองมารวมกันโดยพิจารณาเฉพาะพ้ืนที่ที่สอดคล้องกับเงื่อนไขการออกแบบของฟังก์ชันนั้นๆ ดังแสดงในรูปที่ 29 (ง) จะได้พ้ืนที่ซึ่งเป็นบริเวณที่สอดคล้องกับเงื่อนไขบังคับทั้งสอง พ้ืนที่ดังกล่าวเรียกว่า บริเวณหาผลเฉลยได้ หรือบริเวณหาค าตอบได้ (feasible region) ซึ่งถ้าเปรียบเทียบกับรูปที่ 26 ก็คือบริเวณที่ถูกล้อมรอบด้วยรั้วนั่นเอง ส่วนบริเวณอ่ืนที่นอกเหนือจากนี้ เรียกว่า บริเวณหาค าตอบไม่ได้ (infeasible region) รูปที่ 29 (จ) เป็นรูปแบบมาตรฐานที่ใช้แสดงปัญหาการหาค่าเหมาะที่สุดแบบมีเงื่อนไขบังคับในปริภูมิสองมิติ ในรูปประกอบด้วยเส้นคอนทัวร์ของฟังก์ชันเป้าหมาย และขอบเขตของเงื่อนไขบังคับพร้อมทั้งระบุบริเวณหาค าตอบได้และบริเวณที่หาค าตอบไม่ได้ จากรูปพบว่า ผลเฉลยของปัญหาการออกแบบ (33) คือจุดตัดระหว่างเงื่อนไขบังคับ g1 และ g2

รูปที่ 29 (ก) คอนทัวร์ของฟังก์ชันเป้าหมาย

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 51

1.5

2

2.5

3

3.5

4

4.5

5

1.95

3.9

5.86

7.81

9.76

11.7

13.7

15.617.6

19.5

21.5

23.4

25.4

27.3

29.3

31.2

33.2

35.1

37.1

39

x1

x 2

Unconstrained optimum

Objective contour

30

รูปที่ 29 (ข) คอนทัวร์ของเงื่อนไขบังคับ g1

รูปที่ 29 (ค) คอนทัวร์ของเงื่อนไขบังคับ g2

รูปที่ 29 (ง) บริเวณหาค าตอบได้

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 51

1.5

2

2.5

3

3.5

4

4.5

5-35

-30

-25

-20

-15

-10

-5

05

10

15 20

25

30

x1

x 2

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 51

1.5

2

2.5

3

3.5

4

4.5

5

-40

-35

-30

-25

-20

-15

-10

-5

0

5

10

15

20

25

30

x1

x 2

บริเวณหาค าตอบได้

31

รูปที่ 29 (จ) ปัญหาการหาค่าเหมาะที่สุด (33)

ตัวอย่างของปัญหาการออกแบบเหมาะที่สุดแบบมีเงื่อนไขบังคับเพ่ิมเติม แสดงในรูปที่ 30 จากรูปเป็นคานยื่นที่มีพ้ืนที่หน้าตัดรูปสี่เหลี่ยมผืนผ้า คานมีความยาว L และมีแรง F กระท าที่ปลายของคานในทิศลง ส่วนปลายอีกด้านถูกยึด (fixed) กับพ้ืน ในการออกแบบโครงสร้างอย่างง่ายนี้ ก าหนดให้ตัวแปรออกแบบคือขนาดของพ้ืนที่หน้าตัดของคาน โดยให้ด้านสูงคือ x1 และด้านกว้างคือ x2 ก าหนดให้ฟังก์ชันเป้าหมายคือมวลของคาน และคานมีโอกาสเกิดความเสียหายเนื่องจากความเค้นที่จุด O อันเนื่องมาจากแรง F มีค่าเกินความเค้นคราก (yield stress) ของวัสดุที่ใช้ท าคานนี้ (ในที่นี้ก าหนดค่าความเค้นคราก yt = 50 kPa) ก าหนดให้ L = 1 m

ค่าแรงกระท า F คือ 200 N และความหนาแน่นของวัสดุมีค่าเป็น = 7000 kg/m3 ปัญหาการหาค่ามวลต่ าสุด

ของคานโดยมีเงื่อนไขบังคับคือคานต้องไม่เกิดความเสียหายจากแรงกระท า F สามารถเขียนได้ดังนี้ จงหาค่าต่ าสุดของ

f(x) = f(x1,x2) = w = Lx1x2

โดยมีเงื่อนไขบังคับ

- yt 0

0.02 m x1, x2 0.08 m

เมื่อ

= (FLx1)/(2I)

2

31

12

1xxI

ปัญหาการหาค่าเหมาะที่สุดนี้มีเงื่อนไขบังคับ 2 รูปแบบคือ เงื่อนไขบังคับแบบอสมการหรือเงื่อนไขบังคับความเค้น (stress constraint) และเงื่อนไขบังคับขอบเขต รูปที่ 31 แสดงปัญหาการหาค่ามวลต่ าสุดของคานยื่นนี้ จากรูป บริเวณหาผลเฉลยได้คือส่วนที่ล้อมรอบด้วยเงื่อนไขบังคับความเค้นและเงื่อนไขบังคับขอบเขต ผลเฉลยของปัญหาการหาค่าเหมาะที่สุดนี้คือจุดตัดระหว่างเงื่อนไขบังคับความเค้นและขอบเขตล่างของ x2 ดังแสดงในรูป

ค่าฟังก์ชันเป้าหมายลดลงตามลูกศร

บริเวณหาค าตอบ

ได้

บริเวณหาค าตอบ

ไม่ได้

g1 = 0 g2 = 0

จุดเหมาะท่ีสุด

32

รูปที่ 30 การหาค่าเหมาะที่สุดของคานยื่น

รูปที่ 31 คอนทัวร์ของการหาค่าเหมาะที่สุดของคานยื่น

การหาค่าเหมาะที สุดด้วยข้ันตอนวิธีวิวัฒนาการ ขั้นตอนวิธีวิวัฒนาการในบทนี้คือวิธีหาค่าเหมาะที่สุดที่มีกระบวนการค านวณเลียนแบบหรือคล้ายคลึงกับพฤติกรรมการวิวัฒนาการของระบบบางอย่างในธรรมชาติ ขั้นตอนวิธีวิวัฒนาการที่เป็นที่รู้จักและนิยมใช้กันมากที่สุดคือขั้นตอนวิธีเชิงพันธุกรรม (genetic algorithms) อย่างไรก็ตามเมื่อมีการค้นคว้าวิจัยงานทางด้านนี้แพร่หลายไปทั่วโลก ได้ก่อให้เกิดวิธีวิวัฒนาการขึ้นมาหลายหลายรูปแบบ ซึ่งนอกจากจะเลียนแบบพฤติกรรมทางธรรมชาติแล้ว ยังขยายไปยังกระบวนการหาค่าเหมาะที่สุดที่เลียนแบบพฤติกรรมของระบบอ่ืนๆ ทั้งที่มีชีวิตและไม่มีชีวิต ด้วยเหตุนี้ จึงมีการก าหนดชื่อของวิธีหาค่าเหมาะที่สุดรูปแบบนี้ใหม่เป็น วิธีศึกษาส านึกขั้นสูง (meta-heuristics) อย่างไรก็ตาม ค าว่าขั้นตอนวิธีวิวัฒนาการก็ยังเป็นที่นิยมเรียกกันอยู่เหมือนเดิม และในบทนี้ หากมีการกล่าวถึงข้ันตอนวิธีวิวัฒนาการจะรวมไปถึงวิธีศึกษาส านึกขั้นสูงทุกรูปแบบ นอกจากนี้วิธีหาค่าเหมาะที่สุดชนิดนี้นิยมเรียกอีกชื่อหนึ่งคือวิธีหาค่าเหมาะที่สุดโดยอาศัยประชากร (population-based optimisers) ซึ่งค าว่าประชากรหมายถึงกลุ่มของผลเฉลยที่ใช้ในแต่ละวงวนของกระบวนการหาค่าเหมาะที่สุด

2

7

12

17

22

27

32

37

42

47

52

57 62

x1

x 2

0.02 0.04 0.06 0.08 0.10.01

0.02

0.03

0.04

0.05

0.06

0.07

0.08

0.09

0.1

L

x2

x1

F

O

33

ขั้นตอนวิธีวิวัฒนาการเมื่อเทียบกับวิธีหาค่าเหมาะที่สุดที่ใช้อนุพันธ์ดังที่กล่าวมาในบทที่ 2 และ 3 จะมีทั้งข้อดีและข้อด้อย ในภาพรวมวิธีวิวัฒนาการมีข้อได้เปรียบคือ การใช้งานง่าย ไม่ต้องค านวณค่าอนุพันธ์ของฟังก์ชันในการหาผลเฉลย สามารถหาผลเฉลยเหมาะที่สุดวงกว้างได้ เป็นวิธีที่ทนทาน (robust) กล่าวคือมีโอกาสเกิดความคลาดเคลื่อนหรือหยุดการค านวณในระหว่างกระบวนการหาค่าเหมาะที่สุดน้อยมาก และที่ส าคัญอีกข้อหนึ่งคือ เมื่อไม่มีการใช้อนุพันธ์ของฟังก์ชัน วิธีหาค่าเหมาะที่สุดเหล่านี้ สามรถประยุกต์ใช้กับปัญหาการออกแบบได้ทุกรูปแบบ ค่าพารามิเตอร์ย่อยของวิธีการเหล่านี้สามารถปรับเปลี่ยนได้ง่าย ไม่เป็นค่าเฉพาะเจาะจงเหมือนวิธีหาค่าเหมาะที่สุดแบบใช้อนุพันธ์ อย่างไรก็ตามวิธีวิวัฒนาการมีข้อด้อยคือ เนื่องจากท าการประยุกต์ใช้กระบวนการสุ่มในการหาค่าเหมาะที่สุดท าให้วิธีการนี้มีสมรรถนะในการหาผลเฉลยต่ าเมื่อเทียบกับวิธีที่ใช้อนุพันธ์ นั่นคือมีอัตราการลู่เข้า (convergence rate) ต่ า และไม่มีความต้องกัน (consistency) ในการหาผลเฉลย (หมายความว่าเมื่อใช้วิธีวิวัฒนาการใดๆ หาค าตอบของปัญหาการออกแบบเดิมหลายครั้ง ผลเฉลยที่ได้จะไม่เหมือนเดิม) นอกจากนี้ เนื่องจากไม่มีค่าอนุพันธ์ของฟังก์ชัน การตรวจสอบเงื่อนไขความเหมาะที่สุดไม่สามารถท าได้ วิธีการนี้ใช้จ านวนครั้งในการหาค่าฟังก์ชันสูงมากเมื่อเทียบกับวิธีใช้อนุพันธ์ เนื่องจากมีอัตราการลู่เข้าต่ าและไม่สามารถรับประกันได้ว่าผลที่ได้เป็นผลเฉลยเหมาะที่สุดจริง ดังนั้น เรามักเรียกค าตอบที่ได้จากการประยุกต์ใช้วิธีเหล่านี้ว่า ค่าใกล้ความเหมาะที่สุด (near optimum) ปัญหาการออกแบบ

ปัญหาการออกแบบที่จะท าการประยุกต์ขั้นตอนวิธีวิวัฒนาการหาผลเฉลยคือปัญหาการออกแบบที่มีเฉพาะเงื่อนไขบังคับหรือขอบเขตของตัวแปรออกแบบ หรือที่ เรียกว่าเงื่อนไขบังคับแบบกล่อง (box

constraints) ปัญหาการออกแบบชนิดนี้เรียกว่า การหาค่าเหมาะที่สุดที่มีเงื่อนไขบังคับแบบกล่อง (box-

constrained optimisation) ซึ่งสามารถแสดงได้ดังนี้ จงหาค่าต่ าสุด f(x) (34) xl x xu

เมื่อ f(x) คือฟังก์ชันเป้าหมาย

x คือเวกเตอร์ตัวแปรออกแบบขนาด n×1

xl คือขอบเขตล่างของตัวแปรออกแบบ

และ xu คือขอบเขตบนของตัวแปรออกแบบ

ขั้นตอนวิธีวิวัฒนาการโดยทั่วไปสามารถหาผลเฉลยของปัญหาการหาค่าเหมาะที่สุดนี้ได้โดยตรง อย่างไรก็ตามเมื่อมีเงื่อนไขบังคับชนิดอ่ืน จ าเป็นต้องเพ่ิมกระบวนการเชิงตัวเลขเข้ามาเพ่ือสามารถดัดแปลงปัญหาการออกแบบให้อยู่ในรูปแบบ (34) เช่นการประยุกต์ใช้เทคนิคฟังก์ชันปรับแก้ (penalty function techniques) เป็นต้น

กระบวนการหาผลเฉลยเหมาะท่ีสุดของวิธีการที่น าเสนอในบทนี้ ส่วนมากจะใช้กลุ่มของเวกเตอร์ตัวแปรออกแบบซึ่งนิยมเรียกว่าประชากร (population) ในการหาค าตอบ ในกรณีของตัวแปรออกแบบจ านวนจริง ประชากรของเวกเตอร์ตัวแปรออกแบบสามารถเขียนแทนด้วย

P = {x1, x2, …, xN} (35) เมื่อ N คือขนาดของประชากรหรือจ านวนเวกเตอร์ตัวแปรออกแบบที่เป็นสมาชิกของประชากร วิธีวิวัฒนาการใช้หลักการค านวณแบบกระท าซ้ า (iterative method) ในการหาผลเฉลย รอบของการค านวณหรือวงวนนิยมเรียนว่ารุ่น (generation) ของประชากรของเวกเตอร์ตัวแปรออกแบบ

34

วิธีวิวัฒนาการเชิงอนุพันธ์ (Differential Evolution, DE) วิธีวิวัฒนาการเชิงอนุพันธ์หรือ DE เป็นวิธีหาค่าเหมาะที่สุดเชิงวิวัฒาการที่พัฒนาขึ้นมาในยุคใกล้เคียงกับ PBIL

และ PSO จุดเด่นของวิธีนี้คือ มีขั้นตอนการค านวณที่ง่าย ไม่สลับซับซ้อนแต่มีสมรรถนะในการค้นหาผลเฉลยเหมาะที่สุดสูง เมื่อเทียบกับข้ันตอนวิธีวิวัฒนาการอื่นๆ กระบวนการค านวณของ DE จะใช้กลุ่มของเวกเตอร์ผลเฉลยหรือประชากรในการหาค าตอบเช่นเดียวกับวิธีก่อนหน้านี้ ประชากรจะท าการวิวัฒนาการไปหาผลเฉลยเหมาะที่สุดด้วยผลต่างของเวกเตอร์ตัวแปรออกแบบ จึงเรียกชื่อว่าวิธีวิวัฒนาการเชิงอนุพันธ์ ตัวด าเนินการของ DE สามารถแบ่งได้เป็นการมิวเทชัน ครอสโอเวอร์ และการคัดเลือก ในที่นี้จะเป็นรายละเอียดของ DE/best/1/bin ซึ่งมีดังนี้

มิวเทชัน

ที่รอบของการค านวณใดๆ ก าหนดให้ประชากรวงวนปัจจุบันคือ P = {x1, x2, …, xN} การสร้างผลเฉลยลูก ui เพ่ือเปรียบเทียบกับผลเฉลยพ่อ-แม่ xi โดยการมิวเทชัน สามารถท าได้โดยใช้สมการ

ui = xi1 + F(xi2 - xi3) (36)

เมื่อ F [0, 1] คือตัวประกอบมาตราส่วน (scaling factor) ui คือผลเฉลยจากการมิวเทชัน

xi1 คือเวกเตอร์ผลเฉลยที่ดีที่สุดในสมาชิกของประชากรวงวนปัจจุบัน

xi2 และ xi3 คือเวกเตอร์ผลเฉลยซึ่งเป็นสมาชิกของประชากรที่ได้มาจากการเลือกแบบสุ่ม ทั้งนี้ xi2 xi3

รูปที่ 35 แสดงการค านวณหาเวกเตอร์ผลเฉลยลูก ui ส าหรับปัญหาการหาค่าเหมาะที่สุดในปริภูมิสองมิติ จากรูปจะเห็นได้ว่าต าแหน่งของ ui ได้จากการเคลื่อนที่จากต าแหน่งของผลเฉลยที่ดีที่สุดไปยังทิศทางซึ่งเป็นผลต่างของเวกเตอร์ 2 เวกเตอร์ที่เลือกขึ้นมาแบบสุ่ม ข้อสังเกตเพ่ิมเติมการเลือก xi2 และ xi3 จะมีผลต่อ ui มาก เพราะจากตัวอย่างในรูปหากสลับต าแหน่งของเวกเตอร์ทั้งสองจะท าให้ ui เคลื่อนที่ไปยังต าแหน่งที่แย่กว่า xi1

รูปที่ 35 มิวเทชันของวิวัฒนาการเชิงอนุพันธ์

x2

x1

จุดเหมาะที่สุด

xi2 xi3

xi2 - xi3

F(xi2 - xi3)

xi1

u

35

ครอสโอเวอร์ เมื่อได้ ui จากการมิวเทชันแล้ว ผลเฉลยลูก ui จะต้องน ามาท าการครอสโอเวอร์กับผลเฉลยพ่อ-แม ่xi ซึง่จะได้ผลเฉลยลูกสุดท้าย vi ในที่นี้การครอสโอเวอร์แบบทวิภาค (binary crossover) เอลิเมนต์ที่ j-th ของ vi

เขียนแทนด้วย vi,j สามารถหาได้จาก

Rji

Rji

ji Crandx

Cranduv

;

;

,

,

, (37)

เมื่อ CR [0, 1] คืออัตราการครอสโอเวอร์ (crossover rate)

การคัดเลือก

เมื่อท าการผลิตเวกเตอร์ผลเฉลยที่เป็นสมาชิกของประชากรลูก vi ด้วยการมิวเทชันและครอสโอเวอร์ต่อเนื่องกันแล้ว ท าการหาค่าฟังก์ชันเป้าหมายของผลเฉลยลูก จากนั้นเปรียบเทียบกับผลเฉลยพ่อ-แม่ต าแหน่งเดียวกัน xi ผลเฉลยที่ดีกว่าจะถูกเลือกเป็นสมาชิกของประชากรในวงวนถัดไป จากนั้นท าการสลับต าแหน่งของสมาชิกในประชากรวงวนถัดไปแบบสุ่ม ด าเนินการซ้ าจนกระทั้ งได้ค่าเหมาะที่สุด กระบวนการค้นหาผลเฉลยเหมาะที่สุดด้วยวิธี DE แสดงในรูปที่ 36

ขั้นตอนเริ่มต้น ก าหนดพารามิเตอร์ที่จ าเป็นทั้งหมด และสร้างประชากรตั้งต้นพร้อมค่าฟังก์ชันเป้าหมายของสมาชิกในประชากร ขั้นตอนค านวณหลัก

1: ถ้าเง่ือนไขการหยุดค านวณเป็นจริง หยุดการค้นหาผลเฉลย ถ้าไม่เป็นจริง ด าเนินการต่อในขั้นตอนที่ 2

2: หาประชากรลูกด้วยการมิวเทชันและครอสโอเวอร์ 3: หาค่าฟังก์ชันเป้าหมายของประชากรลูก 4: ท าการคัดเลือกสมาชิกของประชากรในวงวนถัดไประหว่างประชากรพ่อ-แม่และประชากรลูก 5: สลับต าแหน่งของประชากรชุดใหม่แบบสุ่ม และกลับไปข้ันตอนที่ 1

รูปที่ 36 กระบวนการค านวณของวิธี DE

ตัวอย่างที 2 จากปัญหาการออกแบบ

จงหาค่าต่ าสุด2

516

2

516)( 2

22

421

21

41 xxxxxx

f

x ; -4 xi 4

ถ้าท่ีวงวนปัจจุบัน กลุ่มของอนุภาคหรือต าแหน่งของผลเฉลยคือ

ผลเฉลยที่ 1 2 3 4 5 6

x1 0 -1 -1.5 -3.0 -2 4

x2 2 -3 2.0 -2.0 2 -1

f(x) -19.0000 -49.0000 -38.2188 -68.0000 -48.0000 0

จงหาประชากรส าหรับวงวนถัดไปของวิธี DE วิธีท า ก าหนดให้ F = 0.8 และ CR = 0.7

ผลเฉลยที่ดีที่สุดในประชากรชุดนี้คือ xi1 = {-3.0, -2.0}T ส่วนดัชนี i2 และ i3 ส าหรับผลเฉลยทั้ง 6 สามารถหา

ได้จากการสุ่มดังนี้

36

ผลเฉลยที่ 1 2 3 4 5 6

i2 3 3 4 4 1 4

i3 2 4 5 2 2 2

การมิวเทชันส าหรับเวกเตอร์ลูกตัวที่ 1 หาได้จาก (ใช้ DE/best/1/bin) u1 = {-3.0, -2.0}

T + 0.8[{-1.5, 2.0}

T – {-1, -3}

T] = {-3.5, 3.0}

T

เมื่อด าเนินการมิวเทชันกับสมาชิกทั้งหมด พร้อมทั้งจัดให้อยู่ ในขอบเขตบนและล่างของตัวแปรออกแบบจะได้ประชากรลูกดังนี้ ผลเฉลยที่ 1 2 3 4 5 6

u2 -3.5 -1.5 -4.0 -4.0 -2.0 -4.0

u3 3.0 2.0 -4.0 -1.0 3.0 -1.0

ในกระบวนการครอสโอเวอร์ท าการสุ่มตัวเลขส าหรับเอลิเมนต์ต่างๆของผลเฉลยทั้งหมดได้ดังนี้ ผลเฉลยที่ 1 2 3 4 5 6

rand1 0.3804 0.0759 0.5308 0.9340 0.5688 0.0119

rand2 0.5678 0.0540 0.7792 0.1299 0.4694 0.3371

จากการสุ่มตัวเลขจากตารางด้านบนพบว่าตัวเลขที่มีค่ามากกว่า CR คือเอลิเมนต์ที่ 2 ของผลเฉลยที่ 3 และเอลิเมนต์ที่ 1 ของผลเฉลยที่ 4 นั่นหมายความว่าเอลิเมนต์ทั้งสองต้องใช้ค่าจากประชากรพ่อ-แม่ ส่วนเอลิเมนต์ที่เหลือใช้ค่าจากประชากรลูก ซึ่งจะได้ประชากรลูกสุดท้ายดังนี้ ผลเฉลยที่ 1 2 3 4 5 6

v2 -3.5 -1.5 -4.0 -3.0 -2.0 -4.0

v3 3.0 2.0 2.0 -1.0 3.0 -1.0

F -55.7188 -38.2188 -29.0000 -49.0000 -53.0000 -20.0000

จากนั้นท าการเปรียบเทียบประชากรพ่อ-แม่ กับประชากรลูกเพ่ือคัดเลือกประชากรส าหรับวงวนถัดไปดังนี้ ผลเฉลยที่ 1 2 3 4 5 6

x1 -3.5 -1 -1.5 -3.0 -2.0 -4.0

x2 3.0 -3 2.0 -2.0 3.0 -1.0

f(x) -55.7188 -49.0000 -38.2188 -68.0000 -53.0000 -20.0000

จากนั้นสลับต าแหน่งแบบสุ่มแล้วด าเนินการต่อในวงวนถัดไป

ฟังก์ชันปรับแก้ส่าหรับขั้นตอนวิธีวิวัฒนาการ เนื่องจากข้ันตอนวิธีวิวัฒนาการส่วนใหญ่ เป็นวิธีหาค่าเหมาะที่สุดที่พัฒนาขึ้นมาส าหรับการหาค่าเหมาะที่สุดที่มีขอบเขตของตัวแปรออกแบบ ดังนั้น ในกรณีของการประยุกต์ใช้วิธีเหล่านี้กับปัญหาการออกแบบที่ มีเงื่อนไขบังคับชนิดอ่ืน จ าเป็นต้องมีการประยุกต์ใช้ฟังก์ชันปรับแก้เพ่ือแปลงปัญหาที่มีเงื่อนไขบังคับไปเป็นปัญหาการหาค่าเหมาะที่สุดแบบไม่มีเงื่อนไขบังคับที่สมมูลกัน ได้มีการพัฒนาวิธีฟังก์ชันปรับแก้ส าหรับขั้นตอนวิธีวิวัฒนาการหลากหลายรูปแบบ วิธีการที่ได้รับความนิยมมากที่สุดคือวิธีฟังก์ชันปรับแก้ภายนอก ในหัวข้อนี้จะน าเสนอวิธีฟังก์ชันปรับแก้ 2 รูปแบบซึ่งประกอบด้วยวิธีฟังก์ชันปรับแก้ภายนอก วิธีฟังก์ชันปรับแก้โดยใช้

37

ทฤษฎีเซตคลุมเครือ (fuzzy set theory) และสุดท้ายเป็นวิธีฟังก์ชันปรับแก้ส าหรับการหาค่าเหมาะที่สุดวงกว้าง (global optimisation) ซึ่งเรียกว่ากลไกการมีส่วนร่วม (sharing mechanism)

วิธีฟังก์ชันปรับแก้ภายนอก

เนื่องจากปัญหาการออกแบบที่มีเงื่อนไขบังคับส่วนมากเป็นปัญหาที่มีเฉพาะเงื่อนไขบังคับแบบอสมการ (หรือถ้ามีเงื่อนไขบังคับแบบสมการก็สามารถจัดการได้ด้วยแนวทางอ่ืนๆ) ดังนั้นการน าเสนอวิธีฟังก์ชันปรับแก้ในที่นี้จะพิจารณาเฉพาะปัญหาการออกแบบที่มีเฉพาะเงื่อนไขบังคับแบบอสมการเท่านั้น ซึ่งสามารถแสดงได้ดังนี้ จงหาค่าต่ าสุดของ f(x) (38)

โดยมีเงื่อนไขบังคับ gi(x) 0, i = 1,,m

xl,i xi xu,i, i = 1,,n

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

f(x) = f(x) + p(x) (39)

เมื่อ f คือฟังก์ชันสมมูลหรือฟังก์ชันปรับแก้ และ p คือเทอมปรับแก้ (penalty term) ซึ่งสามารถหาได้จาก

m

i

iprp1

)()( xx (40)

เมื่อ

0)( ; )(

0)(; 0)(

2xx

xx

ii

ii

gg

gp .

โดยทั่วไป ค่าพารามิเตอร์ปรับแก้ r จะตั้งค่าต่ าในช่วงเริ่มต้นหาค่าเหมาะที่สุด และจะมีค่าสูงขึ้นเมื่อจ านวนของวงวนเพ่ิมมากขึ้น รูปที่ 37 แสดงตัวอย่างการค านวณค่าฟังก์ชันปรับแก้ภายนอกด้วยโปรแกรม MATLAB

function fp = fexterior(f,g,r)

n=length(g);

p = 0;

for i=1:n

if g(i) > 0

p=p+g(i)^2;

end

end

fp=f+r*p;

รูปที่ 37 ฟังก์ชันปรับแก้

38

วิธีฟังก์ชันปรับแก้โดยใช้ทฤษฎีเซตคลุมเครือ ส าหรับการประยุกต์ใช้ทฤษฎีเซตคลุมเครือ ที่จุด x ใดๆ เราสามารถค านวณค่าฟังก์ชันภาวะสมาชิก (membership function) ของ x ส าหรับเงื่อนไขบังคับ gi เขียนแทนด้วย Gi ซึ่งมีนิยามดังนี้

ii

iii

i

ii

ii

G

g

dgd

g

dg

i

)( ;1

)( ;)(

1

)( ;0

)(

x

xx

x

x (41)

เมื่อ i และ id คือพารามิเตอร์ที่ก าหนดเพ่ือหาพ้ืนที่หาค าตอบได้ของเงื่อนไขบังคับ gi รูปที่ 38 แสดงรูปทรง

ของฟังก์ชันภาวะสมาชิกซ่ึงจัดว่าเป็นฟังก์ชันต่อเนื่องเป็นช่วงๆ (piecewise continuous)

id

0

0.2

0.4

0.6

0.8

1

1.2

gi(x) i

Gi

0

รูปที่ 38 ฟังก์ชันภาวะสมาชิก

เมื่อค านวณค่าฟังก์ชันภาวะสมาชิกของเงื่อนไขบังคับทั้งหมดที่จุด x แล้ว จากนั้นหาค่าฟังก์ชัน C

ส าหรับผลเฉลย x ได้จากความสัมพันธ์ )()()()( 21 xxxx mC . (42)

ฟังก์ชันปรับแก้โดยใช้ทฤษฎีเซตคลุมเครือสามารถหาได้จาก

DC Kfc

ff

))(1(

)(

)()( x

x

xx . (43)

เมื่อ KD คือค่าสัมประสิทธิ์ปรับแก้ และ c > 0 คือตัวเลขที่ผู้ออกแบบต้องก าหนด ผลเฉลยต่ าสุดของฟังก์ชัน Fz = f(x)/(c + f(x)) จะมีค่าเดียวกันกับผลเฉลยต่ าสุดของ f(x) ยกเว้นกรณีที่ f(x) = c ตัวเลข c ที่เป็นบวกท าให้ค่าฟังก์ชันเป้าหมายสมมูลของผลเฉลยที่เป็นไปได้มีค่าน้อยกว่า 1 เสมอ เนื่องจากค่าฟังก์ชัน Fz มีค่าไม่เกิน 1 ท าให้ง่ายในการก าหนดค่า KD เทียบกับวิธีฟังก์ชันปรับแก้ภายนอกซึ่งมักมีปัญหาในการก าหนดค่าพารามิเตอร์ปรับแก้ r ส่งผลให้ ผลเฉลยเหมาะที่สุดที่ได้มักอยู่นอกพ้ืนที่หาค าตอบได้เสมอ รูปที่ 39 แสดงตัวอย่างการค านวณค่าฟังก์ชันปรับแก้โดยใช้ทฤษฎีเซตคลุมเครือด้วยโปรแกรม MATLAB

39

function fp = ffuzzyset(f,g)

d=0.25;

epsl=0.0001;

KD=5;

n=length(g);

for i=1:n

if g(i) < epsl

muG(i)=1;

elseif g(i) >= epsl&g(i)<d

muG(i)=1-(g(i)-epsl)/d;

elseif g(i) > d

muG(i)=0;

end

end

if min(muG)==1

muC=1;%feasible

elseif max(muG)==0

muC=0;%completely infeasible

else

muC=mean(muG);%transition (infeasible)

end

fp=f/(f+1)+KD*(1-muC);

รูปที่ 39 ฟังก์ชันปรับแก้โดยใช้ทฤษฎีเซตคลุมเครือ

ค าสั่งในโปรแกรม MATLAB

feaspring โปรแกรมไฟไนท์เอลิเมนต์แบบสปริง fea1dbar โปรแกรมไฟไนท์เอลิเมนต์แบบบาร์หนึ่งมิติ fea2dbarpre ส่วนแสดงผลก่อนการรันโปรแกรมไฟไนท์เอลิเมนต์โครงถักสองมิติ ตัวอย่างการรัน figure(1),clf,fea2dbarpre('truss2d01') fea2dbarsol ด าเนินการวิเคราะห์ไฟไนท์เอลิเมนต์โครงถักสองมิติ ตัวอย่างการรัน fea2dbarsol('truss2d01') fea2dbarpost ส่วนแสดงผลการวิเคราะห์ไฟไนท์เอลิเมนต์โครงถักสองมิติ ตัวอย่างการรัน figure(2),clf,fea2dbarpost('truss2d01') Trussoptpre ส่วนแสดงผลก่อนการรันโปรแกรมการหาค่าเหมาะที่สุดของโครงถักสองมิติ ตัวอย่างการรัน figure(3),clf,trussoptpre('trussopt01',ones(10,1)) SODE วิธีวิวัฒนากรเชิงอนุพันธ์ส าหรับการหาค่าเหมาะที่สุดของโครงถักสองมิติ trussoptpost ส่วนแสดงผลก่อนการรันโปรแกรมการหาค่าเหมาะที่สุดของโครงถักสองมิติ ตัวอย่างการรัน figure(4),clf,trussoptpost('trussopt01','trussopt01out') trussoptfea ด าเนินการวิเคราะห์ไฟไนท์เอลิเมนต์โครงถักสองมิติที่เป็นผลเฉลยเหมาะที่สุด ตัวอย่างการรัน trussoptfea('trussopt01','trussopt01out') trussoptfeapost ส่วนแสดงผลการวิเคราะห์ไฟไนท์เอลิเมนต์โครงถักสองมิติที่เป็นผลเฉลยเหมาะท่ีสุด ตัวอย่างการรัน figure(5),clf,trussoptfeapost('trussopt01','trussopt01out')