6. การศึกษาจากแบบจำลอง
รูปที่ 10 โปรแกรมจำลองระบบควบคุม
เป็นโปรแกรมจำลองระบบการควบคุมของ Rotary Inverted Pendulum โดยโปรแกรมสามารถจำลองกลศาสตร์การเคลื่อนที่ของระบบได้และใช้ทดสอบสมการก่อนนำไปใช้กับระบบจริงเพื่อป้องกันความเสียหายของระบบและเพื่อความสะดวกในการทดลอง
เครื่องมือที่ใช้สร้างโปรแกรม
Python 2.5
Pyode 1.2.0
VPython 5
Panda 3D
ขั้นตอนการสร้างโปรแกรม
-กำหนดสภาพแวดล้อมของระบบ
การกำหนดสภาพแวดล้อมของระบบมีดังนี้ ความกว้างของหน้าต่าง แรงโน้มถ่วง เช่น
scene.height = 800 กำหนดความสูงของหน้าต่าง
scene.width = 800 กำหนดความกว้างของหน้าต่าง
world.setGravity((0,-9.81,0)) กำหนดค่าแรงโน้มถ่วงในระบบ
-สร้างฐานของ Rotary Inverted Pendulum
ในการสร้างฐานของโปรแกรมจะไม่พิจรณาด้านกลศาสตร์โดยมีการแสดงผลเฉพาะวัตถุเท่านั้นดังตัวอย่าง
Box1 = box(pos=(0,1,0), length=10, height=1, width=2)
โดยคำสั้งนี้ระบบจะสร้างกล่องสี่เหลี่ยมอยู่ที่ตำแหน่ง x=0,y=1,z=0 และขนาดของกล่องมีขนาดความกว้าง=2 ยาว=10 และสูง = 1 ดังภาพที่
รูปที่ 11 วัตถุที่ได้จากคำสั่ง(box(pos=(0,1,0), length=10, height=1, width=2))
Box1.rotate(angle=pi/2., axis=(0,1,0), origin=(0,0,0))
คำสั่งนี้ใช้สำหรับสั่งหมุนชิ้นงานโดยจากคำสั่งจะได้กล่องถูกหมุนไป 90 องศาแนวแกน y ดังภาพที่
-
รูปที่ 12 กล่องที่ได้จากคำสั่ง(rotate(angle=pi/2., axis=(0,1,0), origin=(0,0,0)))
- สร้างข้อต่อต่างๆของ Rotary Inverted Pendulum
ในการสร้างข้อต่อต้องสร้างสร้างวัตถุ(Body) ขึ้นมาเมื่อกำหนดว่าวัตถุนั้นๆเป็นวัตถุอ้างอิงของแกนและกำหนดประเภทและค่าต่างๆของข้อต่อ (Joint Parameter) เช่น
j1 = ode.HingeJoint(world)
j1.attach(body1,body2)
j1.setAnchor(body2.getPosition())
จากคำสั่งอธิบายว่า วัตถุ body1 เป็นข้อค่อแบบหมุนกับวัตถุ body2 แต่ยังไม่มีการแสดงผล การแสดงผลทำได้โดยสร้างวัตถุ (Fream) เพื่อสั่งให้ Freamนั้นๆเคลื่อนที่ไปตามตำแหน่งของข้อต่อเช่น
Link.pos= body1.pos
Link.axis = (body4.pos- body1.pos)
ตัวอย่างข้อต่อที่ได้ ดังภาพที่
รูปที่ 13 ข้อต่อ แบบหมุน ที่ได้จากคำสั่ง
ข้อดีของโปรแกรมจำลองการเคลื่อนที่
- สามารถใช้ศึกษาสมการ PID ของระบได้
- สามารถทดลองสมการของระบบก่อนใช้กับระบบจริง
- ลดข้อผิดพลาดและป้องกันการเสียหายของระบบจริง
- สะดวกในการทดลองได้ทุกที่ทุกเวลา
ข้อเสียของโปรแกรมจำลองการเคลื่อนที่
- ค่าอัตราขยายต่างๆที่ได้ไม่สามารถนำมาใช้ได้จริง
- เสียเวลาในการศึกษาและพัฒนามาก