You are on page 1of 11

บทที่ 2

ทฤษฎีและหลักการ

ในบทนี้จะกล่าวถึงทฤษฎีและหลักการพื้นฐานในการนาไปประยุกต์ใช้งานเขียนโปรแกรม
การทดลองต่างๆ โดยใช้ Matlab Simulink รวมถึงการใช้งาน Fio Board

2.1 MATLAB เบือ้ งต้ น

โปรแกรม Matlab หรื อ Matrix Laboratory ได้เริ่ มพัฒนาครั้งแรกโดย Dr. Cleve Molor ซึ่ ง
เขียนโปรแกรมนี้ ข้ ึนมาด้วยภาษา Fortran โดยโปรแกรมนี้ ได้พฒั นาภายใต้โครงการ LINPACK
และ EISPACK Matlab เป็ นโปรแกรมที่ออกแบบมาสาหรับการคานวณทางคณิ ตศาสตร์ โดยทัว่ ไป
โดยเฉพาะอย่า งยิ่งการค านวณเวกเตอร์ และเมทริ กซ์ ทั้งในระบบจานวนจริ งและระบบจานวน
เชิงซ้อน ซึ่ งเป็ นการเหมาะสมเป็ นอย่างมากสาหรับการใช้งานในการคานวณวิเคราะห์และออกแบบ
ระบบ (System Design) ในทางวิศวกรรมทุกสาขา
Matlab เป็ นโปรแกรมคอมพิวเตอร์ สมรรถนะสู งใช้ในการคานวณทางเทคนิค Matlab ได้
รวมการคานวณ การเขียนโปรแกรม และการแสดงผลรวมกันอยู่ในตัวโปรแกรมเดี ยวได้อย่างมี
ประสิ ทธิ ภาพ และอยู่ในลักษณะที่ง่ายต่อการใช้งาน นอกจากนี้ ลกั ษณะของการเขียนสมการใน
โปรแกรมก็จะเหมือนการเขียนสมการคณิ ตศาสตร์ งานที่ใช้ Matlab ก็เช่น การคานวณทัว่ ไป การ
สร้ า งแบบจาลอง การวิเคราะห์ข ้อมูล การแสดงผลในรู ปกราฟแบบทัว่ ไปและกราฟทางด้า น
วิทยาศาสตร์และวิศวกรรมสามารถสร้างโปรแกรมในลักษณะที่ติดต่อกับผูใ้ ช้ทางกราฟฟิ ก
การท างานของ Matlab จะสามารถท างานได้ท้ งั ในลักษณะของการติ ดต่อโดยตรง
(Interactive) คือการเขียนคาสั่งเข้าไปทีละคาสั่ง เพื่อให้ Matlab ประมวลผลไปเรื่ อยๆ หรื อสามารถ
ที่จะรวบรวมชุ ดคาสั่งเหล่านั้นเป็ นโปรแกรมก็ได้ ข้อสาคัญอย่างหนึ่ งของ Matlab คือข้อมูลทุกตัว
จะถูกเก็บในลักษณะของ array โดยในแต่ละตัวแปรจะได้รับการแบ่งเป็ นส่ วนย่อยเล็กๆ ขึ้น (หรื อ
จะได้รับการแบ่งเป็ น element นัน่ เอง) ซึ่ งการใช้ตวั แปรเป็ น array ในMatlab นี้ เราไม่จาเป็ นที่
จะต้องจอง dimension เหมือนกับการเขียนโปรแกรมในภาษาทัว่ ๆ ไป ซึ่ งทาให้เราสามารถที่จะ
แก้ปัญหาของตัวแปรที่อยูใ่ นลักษณะเวกเตอร์และเมทริ กซ์ได้โดยง่าย ทาให้ลดเวลาการทางานลงได้
อย่างมากเมื่อเทียบกับการเขียนโปรแกรมโดย C หรื อ Fortran
นอกเหนือจากตัวโปรแกรม Matlab เองแล้ว บริ ษทั Math Works ผูผ้ ลิต Matlab ยังได้ผลิต
เครื่ องมือที่เรี ยกว่า Toolbox หรื อ Simulink ซึ่ งเป็ นโปรแกรมที่ เขียนขึ้ นเพื่อประกอบกับการใช้
Matlab สาหรับงานที่จาเพาะเจาะจงหลายประเภท Simulink นั้นเป็ นการนาเอาโปรแกรมที่เขียนขึ้น
5

เป็ นฟั งก์ชนั สาหรับ Matlab เพื่อให้ผใู ้ ช้งานมีความสะดวกในการเรี ยกใช้มากขึ้น ทาให้ผใู ้ ช้ไม่
จาเป็ นที่จะต้องสร้างโปรแกรมขึ้นมาใช้งานเองโดย Simulink ที่สร้างขึ้นจะครอบคลุมการทางาน
ด้านต่างๆมากมาย
ลาดับการคานวณหรื ออัลกอริ ทึมเพื่อแก้ปัญหาทางคณิ ตศาสตร์ สามารถนามาเขี ยนเป็ น
ฟั งก์ชนั ที่ตอ้ งมีการผ่านค่าตัวแปรเข้า-ออกจากฟั งก์ชนั หรื อโปรแกรมที่ไม่ตอ้ งผ่านค่าตัวแปรเข้า-
ออกของผูใ้ ช้เองเรี ย กว่า m file Matlab สามารถที่จะท าการค านวณตามล าดับ (Sequential
Execution) ในโปรแกรม m file ที่ผใู ้ ช้เขียนขึ้นและ m file เหล่านี้ ก็อาจจะถูกมองเป็ นฟั งก์ชนั จาก
โปรแกรมอื่นๆ อีก ซึ่ งการผ่านค่าเข้า-ออกฟังก์ชนั ในโปรแกรม Matlab มีความสะดวก เรี ยนรู ้ได้ง่าย
กว่าการใช้ภาษาคอมพิวเตอร์ อื่นในการเขี ยน และเนื่ องจากฟั งก์ชันทางคณิ ตศาสตร์ อื่นๆ ก็มีอยู่
พร้อมแล้วเป็ นจานวนมาก ทาให้การเขียนโปรแกรมด้วย Matlab เป็ นไปด้วยความรวดเร็ ว
การอ่านและเก็บ (Read and Write) ค่าตัวแปรก็สามารถทาได้ท้ งั ในรู ปแบบของ Matlab
(Binary and File) หรื อ ASCII File ก็ได้ ทาให้การเชื่ อมต่อ (Interface) ทางข้อมูลระหว่าง Matlab
กับโปรแกรมอื่นเป็ นไปโดยง่าย

2.2.1 เริ่มต้ นใช้ งาน


เมื่อเข้ามาที่หน้าต่างโปรแกรม Matlab จะเจอหน้าต่างคาสั่งเป็ นหน้าต่างแรกที่พบ เมื่อเปิ ด
โปรแกรม Matlab การป้ อนคาสั่งต่างๆ จะป้ อนลงในหน้าต่างนี้ เพื่อทาการคานวณและประมวลผล
ต่างๆ และเป็ นหน้าต่างที่ใช้แสดงผลที่ได้จากการประมวลผล ยกเว้นรู ปกราฟซึ่ งจะแยกไปแสดงผล
ในหน้าต่างกราฟ
ในการป้ อนคาสั่งสาหรับการประมวลผลของโปรแกรม Matlab สามารถป้ อนได้ 2 วิธี
ด้วยกันคือ เป็ นการป้ อนคาสัง่ หรื อค่าตัวแปรต่างๆ บนหน้าต่างคาสั่งทีละคาสั่งตามขั้นตอนของการ
แก้ปัญหา หรื อเป็ นการก าหนดค่ าตัวแปรต่ า งๆ และชุ ดค าสั่ง ต่า งๆ ที่ใ ช้ทาการประมวลผลตาม
ขั้นตอนของการคานวณเพื่อแก้ปัญหาลงในไฟล์ ซึ่ งจะต้องเก็บไว้ดว้ ยนามสกุล .m โดยที่จะเรี ยกชุด
ตัวแปรและชุดคาสั่งทั้งหมดที่เขียนในลักษณะนี้วา่ โปรแกรม .m file
สาหรับผูท้ ี่ใช้โปรแกรมคาสั่ง Matlab ครั้งแรก โปรแกรม Matlab มีคาสั่งซึ่ งช่วยดูลกั ษณะ
การใช้งานและความสามารถในการทางานของโปรแกรม Matlab และคาสั่ง Computer ซึ่ งจะแสดง
ชนิดของเครื่ อง Computer ที่เรากาลังใช้งานอยูใ่ นขณะนั้น นอกจากนี้ ยงั มีคาสั่ง Help ซึ่ งจะอธิ บาย
การใช้คาสั่งต่างๆ รวมถึงรู ปแบบคาสั่งที่มีใช้ในโปรแกรม Matlab
สัญลักษณ์หนึ่ งตัวที่ใช้บ่อยในโปรแกรม Matlab คือ % สัญลักษณ์ % เมื่อเป็ นตัวแรกของ
คาสั่งหรื อข้อความใดๆ จะเป็ นเครื่ องหมายที่บอกให้เครื่ องทราบว่าไม่ตอ้ งทาการประมวลผลใดๆ
ต่อคาสั่งหรื อข้อความที่อยู่หลังเครื่ องหมายนี้ วัตถุ ประสงค์ของการใช้เครื่ องหมายนี้ ก็เพื่อเป็ นการ
เขียนคาอธิ บายโปรแกรมในคาสั่ง ของบรรทัดต่อๆ ไปที่เราได้เขียนไว้ ทั้งนี้ เป็ นการเตือนความจา
6

ของเราเองถึ ง ขั้น ตอนการท างานของโปรแกรม หรื อ ผูท้ ี่ จ ะน าโปรแกรมไปใช้ใ ห้เ ข้าใจถึ ง ตัว
โปรแกรมที่เราเขียนนั้น หรื อเรี ยกว่า Script file ซึ่ งหมายถึงไฟล์ที่ถูกเก็บในรู ปของรหัส ASCII
Code โดย m file หรื อ Script file นี้ สามารถสร้ างมาจากโปรแกรม Editor ใดๆ หรื อโปรแกรม
Word Processor ใดๆ ก็ได้ ในการเรี ยกใช้โปรแกรม m-file นี้ สามารถทาได้อย่างง่าย โดยเพียงแต่
พิมพ์ชื่อของ m file โดยไม่ตอ้ งตามด้วยนามสกุล .m ลงในหน้าต่างคาสั่ง โปรแกรม Matlab ก็จะไป
ทาการอ่านคาสั่งใน m file ชื่อนั้นๆ และทาการประมวลผลไปทีละบรรทัดจนจบโปรแกรม

2.2.2 การคานวณพืน้ ฐาน


เมื่อพิมพ์คาสั่งการคานวณที่เครื่ องหมาย “>>” Matlab จะทาการคานวณแล้วจะแสดงผล
คาตอบได้ทนั ที แบบเดียวกับเครื่ องคิดเลข สมมติวา่ ต้องการคานวณ 25+90 สามารถพิมพ์เข้าไปได้
ทันทีดงั นี้ >>25+90 แล้วกด Enter ซึ่ง Matlab จะตอบออกมาทันทีในบรรทัดถัดมาว่า
ans = 115 ดังแสดงในรู ปที่ 2.1
ซึ่ งจะเห็ นว่าลักษณะการเขียนประโยคคณิ ตศาสตร์ จะเหมือนกับการเขียนภาษาสู งทัว่ ไป
โดยจะกระทาในวงเล็บก่อนแล้วค่อนทาข้างนอก

รู ปที่ 2.1 ผลที่ได้จากการคานวณใน Matlab


7

2.2.3 เมทริกซ์
โปรแกรม Matlab มีการใช้ฟังก์ชนั หลายๆ ตัวเพื่อสร้างเมทริ กซ์พิเศษขึ้น โดยเมทริ กซ์
เหล่านี้อาจมีการใช้เฉพาะงาน หรื ออาจใช้ในการคานวณตามเทคนิคการคานวณต่างๆ โดยส่ วนมาก
เมทริ กซ์เหล่านี้มกั ตั้งขึ้นใกล้เคียงกับการทางานของเมทริ กซ์น้ นั ๆ
การป้ อนค่าให้กบั สมาชิ กในเมทริ กซ์สามารถทาได้โดยสมาชิก ในหนึ่ งแถวจะแบ่งด้วยการ
เว้นวรรค (Space) แต่ละแถวจะแบ่งด้วยเครื่ องหมาย “ ; ” (Semicolon) หรื อด้วยการกด Enter เช่น
>>F=[3 5 7 ; 11 17 18]; Enter
ตัวอย่างเช่น ต้องการทาตารางสู ตรคูณ ในการคิดคือให้มองตารางสู ตรคูณเป็ นเมทริ กซ์เกิด
จาก P = เมื่อ X เป็ นเวกเตอร์ หลัก (Column Vector) ดังนั้นสร้างเวกเตอร์ ข้ ึนมาหนึ่ งเวกเตอร์ มี
ค่าจาก 1 ถึง 12 โดยใช้คาสั่งคือ
>>X=1:12; Enter

>>X=X; Enter

>>P=X*X Enter
P=
ดังแสดงในรู ปที่ 2.2

รู ปที่ 2.2 แสดงตารางสู ตรคูณแม่ 2 ถึงแม่ 12


8

2.2 SIMULINK เบือ้ งต้ น

โปรแกรม Matlab สามารถจาลอง ทดสอบ และวิเคราะห์การทางานของระบบพลศาสตร์


ในเชิ งเวลา ได้โดยการใช้ Simulink ซึ่ งเป็ นเครื่ องมือ Toolbox ที่อยู่ในโปรแกรม Matlab โดยจะ
ทางานภายใต้หน้าต่างที่เป็ นการเชื่ อมต่อทางรู ปภาพ (GUI) ของ Simulink เท่านั้น คาว่า Simulink
มาจากคาสองคาคือ Simulation และ Link การใช้งาน Simulink จะกระทาโดยการนา Block ใน
หน้าต่าง Library-Simulink มาต่อกันตามที่เราต้องการ และสามารถจาลองระบบได้ท้ งั ระบบที่เป็ น
เชิ งเส้น ไม่เป็ นเชิ งเส้น ระบบเวลาต่อเนื่ องและไม่ต่อเนื่ อง การจาลองระบบสามารถกระทาได้โดย
ป้ อนอินพุตที่ป้อนเข้าไป

2.2.1 การเริ่มต้ นใช้ งาน


เมื่ อเริ่ มต้นใช้งาน Simulink โปรแกรม Matlab จะกาหนดชื่ อหน้า ต่าง Simulink โดย
อัตโนมัติเป็ น untitled หน้าต่ าง Simulink นี้ จะทางานเชื่ อมต่อกับหน้าต่า งคาสั่ งของโปรแกรม
Matlab โดย Simulink สามารถรับส่ งข้อมูลผ่าน Workspace ของหน้าต่างคาสั่ง ในกรณี ที่ระบบใช้
ฟั งก์ชนั หรื อ Block ที่เป็ น To Workspace ตลอดจน Block ของหมวดหมู่ต่างๆ ที่ไม่ได้กาหนดค่า
ตัวเลข แต่กาหนดเป็ นค่าตัวแปรในหน้าต่าง Simulink และเมื่อเก็บ (Save as) ระบบที่จาลองได้ดว้ ย
Simulink โปรแกรม Matlab จะกาหนดไฟล์ที่ทาการ Simulink เป็ นชื่อไฟล์นามสกุล .mdl

2.2.2 บนหน้ าต่ าง Library Simulink


เมื่อเริ่ มใช้งาน Simulink จะพบหน้าต่าง Library Simulink ที่ประกอบด้วย Block Diagram
ที่เป็ นโหมดของอุ ปกรณ์ ต่า งๆ ที่ จะนาไปใช้ในการจาลองระบบ ซึ่ ง อุ ปกรณ์ เหล่ า นี้ ไม่ ส ามารถ
ทางานได้เพียงตัวเดียวโดดๆ ต้องเชื่ อมต่อกับอุปกรณ์ตวั อื่นถึงจะทางานได้ การเลือกใช้งานโหมด
ใดโหมดหนึ่ งในหน้าต่าง Library Simulink ให้ดบั เบิลคลิกไปที่โหมดนั้นแล้วจะปรากฏหน้าต่าง
แสดงรายละเอียดของ Block ต่างๆ บนหน้าต่าง Library Simulink ของโหมดที่เลือกไว้ออกมา
9

2.2.3 Block Diagram โหมดต่ างๆ ใน Simulink


1. Source

รู ปที่ 2.3 Source

 Constant คือ การให้กาเนิดค่าคงที่


 Signal Generator คือ การกาเนิดสัญญาณใดสัญญาณหนึ่งจากสี่ สัญญาณคือ Sine, Square,
Sawtooth และการกระจายที่ไม่มีรูปแบบของ Random Noise
 Step คือ การให้กาเนิด Step Function
 Ramp คือ การให้กาเนิดสัญญาณ Sine
 From Workspace คือ อ่านค่าข้อมูล (T, U) ที่เป็ นเมทริ กซ์จาก Workspace
 Clock คือ ให้กาเนิ ดเวกเตอร์ เวลา
10

2. Sinks

รู ปที่ 2.4 Sinks

 Scope คือ การแสดงผลสัญญาณระหว่างการจาลองระบบบนออสซิ ลโลสโคป


 To Workspace คือ เก็บค่าข้อมูลไว้ใน Workspace
 Stop Simulation คือ หยุดการจาลองระบบเมื่อค่าอินพุตมีความแตกต่างจากศูนย์
 Display คือ การแสดงค่าข้อมูลบน Block

3. Continuous

รู ปที่ 2.5 Continuous


11

 Integrator คือ การอินทิเกรทสัญญาณ


 Derivative คือ การหาอนุพนั ธ์ในเชิงเวลาของสัญญาณ
 State-Space คือ การสร้างระบบ Line-Time Invariant ในรู ปแบบ State-Space
 Zero-Pole คือ การสร้าง Transfer Function ในรู ปแบบ Zero-Pole

4. Discrete

รู ปที่ 2.6 Discrete

 Zero-Order Hold คือ การสร้างฟังก์ชนั Sample-and-Hold


 Unit Delay คือ การ Delay อินพุตไปหนึ่งคาบตัวอย่าง
 Discrete-Time Integrator คือ การสร้างอินทิเกรท Discrete-Time
 Discrete State-Space คือ การสร้างระบบ Discrete-Time ในรู ปแบบ State-Space
 Discrete Transfer Fcn คือ การสร้าง Discrete-Time Transfer Function
 Discrete Zero-Pole คือ การสร้าง Discrete-Time Transfer Function ในรู ป Zero-Pole
12

5. Math Operations

รู ปที่ 2.7 Math Operations

 Sum คือ การรวมผลรวมอินพุต


 Product คือ การหาค่า Dot Product ของเวกเตอร์อินพุต
 Gain คือการคูณอินพุตด้วยค่าคงที่ (Gain) ที่กาหนด
 Abs คือ การหาค่า Absolute ของอินพุต
 Math Function คือ การหาค่าฟังก์ชนั ทางคณิ ตศาสตร์ ของอินพุต
 Trigonometric Function คือ การหาฟังก์ชนั ตรี โกณมิติของอินพุต
 Rounding Function คือ การหาฟังก์ชนั การปั ดเศษของอินพุต

2.3 การใช้ งาน Fio Board


การใช้งาน Fio Board เป็ นชุดทดลองโดยใช้ ARM 32-bits CortexTM– M3 Processor เป็ น
MCU เป็ นชุดทดลองที่สามารถทางานร่ วมกับ Matlab Simulink
Fio Board เป็ นบอร์ ดทดลองอิเล็กทรอนิคส์ และเป็ นบอร์ ดที่ถูกออกแบบมาเพื่อการศึกษา
วิชาด้านวิศวกรรมหลายๆ ด้าน เช่น ระบบควบคุม, ระบบอัตโนมัติ, หุ่ นยนต์, ประมวลผลสัญญาณ
Digital (DSP) ฯลฯ จุดเด่นใช้งานง่ายโดยเฉพาะด้านการเขียนโปรแกรม เนื่ องจากเป็ นการเขียน
โปรแกรมแบบ Graphic Programming ผ่าน Simulink ซึ่ งติดตั้งมาพร้อมกัน Matlab จากการติดตั้ง
RapidSTM32-Blockset เพิ่มเติมเพื่อให้ใช้งานได้กบั Fio Board ซึ่ งเป็ น Module หนึ่ งที่ อยู่ใน
โปรแกรม Matlab ทาให้สามารถทาความเข้าใจการทางานของโครงงานทั้งในส่ วนการทางานของ
อุปกรณ์ต่างๆ การติดต่อ สื่ อสาร ระหว่างอุปกรณ์ อัลกอริ ทึม การเขียนโปรแกรมต่างๆ ได้
13

2.3.1 ส่ วนประกอบของ Fio Board


1) Built-in RapidSTM32 native-support boot loader
2) ARM 32-bits CortexTM– M3 Processor (STM32F103RET6)
3) Two on board crystals (ออสซิลเลเตอร์ 2 ตัว)
4) On-board 3.3V regulator up to 800mA (แรงดันภายในบอร์ด)
5) 496 Kbytes available flash memory (หน่วยความจา)
6) Automatic compile and download when used with RapidSTM32 Blockset
(คอมไพล์และดาวโหลดอัตโนมัติเมื่อใช้ Blockset)
7) 3 user LED (red, yellow, green) (หลอด LED 3 ตัว)
8) 2 user logic (H/L) input jumpers Mode selection switch (see details under
OPERATING- MODES section)
9) 10 K potentiometer (ความต้านทานปรับค่าได้ 10 กิโลโอมห์)
10) High capacitance (0.33F) capacitor as RTC backup battery (IC เทียบสัญญาณเวลา
มาตราฐาน)
11) MicroSD socket (ช่องใส่ MicroSD)
12) Four built-in operating modes selectable via jumper settings
13) Rosh compliant (Real Time Operating System)

2.3.2 ความต้ องการของระบบ


ในการท างานของระบบนั้ น ไม่ ข้ ึ นอยู่ ก ับ ระบบปฏิ บ ัติ ก าร สามารถใช้ ไ ด้ ก ับ ระบบ
ปฏิบตั ิการทั้ง 32-bits และ 64-bits แต่ตอ้ งติดตั้งโปรแกรม Matlab เวอร์ ชนั่ 32-bits เท่านั้นเพื่อใช้
ทางานร่ วมกับ RapidSTM32 Blockset
RapidSTM32 Blockset สามารถใช้งานได้กบั ระบบปฏิบตั ิการ Windows XP, Windows
Vista (ทั้ง 32-bits และ 64-bits) และ Windows 7 (ทั้ง 32-bits และ 64-bits)

2.3.3 ซอฟต์ แวร์ ทตี่ ้ องใช้


1) RapidSTM32 Blockset version 0.3.6.1 beta หรื อเวอร์ ชนั ที่ใหม่กว่า
2) Matlab 32-bits 2009a (version 7.8) หรื อเวอร์ชนั ที่ใหม่กว่า
3) Simulink 2009 (version 7.3) หรื อเวอร์ชนั ที่ใหม่กว่า
4) Real-Time Workshop 2009 (version 7.3) หรื อเวอร์ชนั ที่ใหม่กว่า
5) Real-Time Workshop Embedded Coder 2009 (version 5.3) หรื อเวอร์ชนั ที่ใหม่กว่า
14

6) Real View MDK for ARM version 4.0 หรื อเวอร์ชนั ที่ใหม่กว่า
7) Microsoft Windows XP SP2 หรื อเวอร์ชนั ที่ใหม่กว่า
8) Microsoft .Net Framework version 3.5 หรื อเวอร์ชนั ที่ใหม่กว่า

You might also like