You are on page 1of 19

IntroductionMATLAB(Thai) For ElectricalEngineering UBU 1

MATLAB

MATLAB เปนโปรแกรมที่เหมาะสมกับการพัฒนาแบบจําลอง และการจําลองแบบ (simulation)

กระบวนการทางวิศวกรรม เมื่อเปรียบเทียบกับการใชภาษาอื่นๆเชน C หรือ FORTRAN จะพบวา โปรแกรม

MATLAB มี built-in function หลากหลายและเรียกใชงานไดงายกวา ไมวาจะเปนฟงกชันการคํานวณ เชิงตัวเลข

การแสดงผล และการติดตอกับผูใ ช (user interface) โปรแกรม MATLAB สามารถเรียกโปรแกรม ที่มีอยูแลวทั้ง

ภาษา C และ FORTRAN มาใชงานได อีกทั้งยังเปนภาษาที่มีโครงสรางเปน module ทําใหสามารถ นําโปรแกรม

ยอยที่เคยพัฒนามาใชใหมได

โครงสรางของโปรแกรม MATLAB ประกอบดวย 5 สวนใหญๆ คือ

1.ภาษาโปรแกรม MATAB

เปนโปรแกรมภาษาชั้นสูงที่ใชควบคุม flow statements ฟงกชัน โครงสรางขอมูล input/ output และ

ลักษณะของโปรแกรม Object-Oriented Programing ทําใหการเขียนไมยุงยากเมื่อเทียบกับภาษาอืน่

2.สถาปตยกรรมในการทํางานของ MATLAB

คือการจัดการตัวแปรใน workspace การนําขอมูลผานคาตัวแปรเขาออกและกลุมเครื่องมือตางๆและ

สามารถตรวจสอบความผิดพลาดของโปรแกรมที่เขียนขึน้ ได

ภาควิชาวิศวกรรมไฟฟาและอิเล็กทรอนิกส มหาวิทยาลัยอุบลราชธานี
IntroductionMATLAB(Thai) For ElectricalEngineering UBU 2

3.ฟงกชนั ในการคํานวณทางคณิตศาสตร

จะมีไลบรารีทวั่ ไปที่ใชในการคํานวณอยางกวางเชน sine,cosine และพีชคณิตเชิงซอน โดยสามารถนําไป

ประยุกตเปนฟงกชันหรือไลบรารีเพิ่มเติมขึ้นจากไลบรารีที่ใชกันทัว่ ไป เชนในการหา eigenvalue และ eigenvectors

การแยกตัวประกอบของเมตริกซ การวิเคราะหขอมูล การหาความนาจะเปน และการแกปญหาของระบบสมการเชิง

เสนที่เปนวิชาพื้นฐานสาขาวิชาตางๆ

4.Handle Graphics

ระบบกราฟกของ MATLAB จะประกอบดวยคําสั่งชั้นสูงสําหรับการพล็อตกราฟโดยมีพนื้ ฐาน

แนวความคิดวาทุกๆสิ่งหนาตางของรูปภาพของโปรแกรม MATLAB เปนวัตถุ

5.The MATLAB Application Program Interface (API)

เพื่อใชในการสนับสนุนการติดตอจากภายนอกโดยใชโปรแกรมทีเ่ ปน mex ไฟลซึ่งเปนไฟลที่เขียนโดย

mex ซึ่งจะใชเรียกจากโปรแกรมภาษา C และ Fortran ที่มีการเชื่อมตอกับโปรแกรมของ MATLAB ก็ได

การใช MATLAB

หลังจากเรียกโปรแกรม MATLAB ขึ้นมา ตัวโปรแกรมจะเริ่มการทํางานดวยการเรียก batch file ที่มีชื่อวา

“matlabrc.m’ ขึ้นมาเพื่อ set up คาตั้งตนตางๆ ไฟล “matlabrc.m” นี้โดยปกติจะอยูที่ root directory ของ MATLAB

สําหรับ version 4 และอยูใ น $\toolbox\local สําหรับ version 5(เมื่อ $ เปน MATLAB root directory) การ

เปลี่ยนแปลงคาตั้งตนของโปรแกรม สามารถทําไดโดยแกไขไฟลนี้

หลังจากนัน้ ในหนาตางของโปรแกรม MATLAB เราจะเห็น prompt “»“ (หรือ “ป” ถาใช screen font เปน

ภาษาไทย) Prompt นี้จะเปนเครื่องหมายแสดงวา MATLAB พรอมที่จะรับคําสั่ง โดยคําสั่งใน MATLAB จะเหมือน

ภาควิชาวิศวกรรมไฟฟาและอิเล็กทรอนิกส มหาวิทยาลัยอุบลราชธานี
IntroductionMATLAB(Thai) For ElectricalEngineering UBU 3

คําสั่งในภาษาอื่นๆ แตหลังจากกดปุม enter แลว MATLAB จะทําการประมวลผลของคําสั่งที่ปอนเขาไป และแสดง

ผลลัพธ ตัวอยางเชน

» 3+5*7^2
ans =
248
» x=3*5/4
x=
3.7500

จะสังเกตไดวาในกรณีแรกคาที่ไดจะถูกเก็บไวในตัวแปรทีช่ ื่อวา ans แตในครัง้ ตอมาจะถูกเก็บในตัวแปร x ทั้งนี้

เนื่องจาก ถาไมไดกําหนด MATLAB จะเก็บคาไวในตัวแปร ans ในกรณีที่ไมตองการใหแสดงผลลัพธ ก็สามารถ

เติมเครื่องหมาย ; ที่ทายคําสั่งผลการคํานวณก็จะไมแสดงใหเห็น เชน

» 3+5*7^2;
สวนในกรณีทตี่ องการเขียนคําสั่งมากกวาหนึ่งคําสั่งในบรรทัดเดียวกันสามารถใช ‘;’ หรือ ‘,’ คั่นระหวางคําสั่งได

โดยผลลัพธจะถูกแสดงเมื่อใช ‘,’ เชน

» x=3; y=x+5*7^2 หรือ » x=3, y=x+5*7^2


สิ่งที่ควรระวังในการเขียนโปรแกรมคือ เครื่องหมาย “=” ในการเขียนโปรแกรมจะมีความหมายวา ใหนําคาทีไ่ ดจาก

การคํานวณทางดานขวามือของเครื่องหมายมาใสในตัวแปรทางดานซายมือ ดังนั้น ทางดานซายมือของเครื่องหมาย

จะตองเปนตัวแปรโดด ไมสามารถมีการคํานวณได สวนกรณีที่ตองการใชการเทากันทางตรรก จะตองใช

เครื่องหมาย “==” หรือ “~=”สําหรับความไมเทากัน

ภาควิชาวิศวกรรมไฟฟาและอิเล็กทรอนิกส มหาวิทยาลัยอุบลราชธานี
IntroductionMATLAB(Thai) For ElectricalEngineering UBU 4

ตัวแปรใน MATLAB

ใน MATLAB จะตองกําหนดตัวแปรทุกตัวกอนทีจ่ ะใช ตัวแปรทีถ่ ูกกําหนดขึ้นใน จะถูกเก็บไวใน

หนวยความจําจนกวาจะถูกสั่งลบทิ้งไป โดยคําสั่ง clear เชน clear A จะเปนการลบตัวแปร A สวน clear all จะ

เปนการลบตัวแปรทุกตัวจากหนวยความจํา ซึ่งเปนคําสั่งที่ควรจะใชกอนเริ่มเขียนโปรแกรมใหม เพื่อใหแนใจวา

คาตัวแปรที่ใชทุกคาไดถูกกําหนดอยางถูกตอง ไมใชคาที่มาจากการคํานวณอื่น

อีกคําสั่งที่สําคัญคือคําสั่ง help ซึ่งเปนคําสั่งเรียก on-line help ของ MATLAB คําสั่งนี้มีประโยชนมาก ใน

กรณีที่ไมทราบความหมายหรือวิธกี ารใชคําสั่ง เชน ตองการรูว ิธกี ารใช size

» help size
SIZE Size of matrix.
D = SIZE(X), for M-by-N matrix X, returns the two-element row vector D = [M, N] containing the number of
rows and columns in the matrix. For N-D arrays, SIZE(X) returns a 1-by-N vector of dimension lengths. Trailing
singleton dimensions are ignored.
[M,N] = SIZE(X) returns the number of rows and columns in separate output variables. [M1,M2,M3,...,MN] =
SIZE(X) returns the length of the first N dimensions of X. M = SIZE(X,DIM) returns the length of the dimension
specified by the scalar DIM. For example, SIZE(X,1) returns the number of rows.
See also LENGTH, NDIMS.
MATLAB จะแสดงทั้งคําอธิบายและวิธีการใชคําสั่ง size ตลอดจนคําสั่งอื่นๆที่เกี่ยวของ

คําสั่งในการออกจากโปรแกรม MATLAB คือ exit

Function ใน MATLAB

การใช MATLAB แบงออกไดเปน 2 วิธคี ือ การพิมพคาํ สั่งที่หนาตางของ MATLAB โดยตรง ซึ่งไดกลาว

ไปแลว และการใช M-file หรือการเขียนโปรแกรมใน batch และ function file ซึ่งเปนชุดคําสั่งที่เขียนไวใน file อื่น

แตสามารถเรียกใชไดดวยคําสั่งเดียว

ภาควิชาวิศวกรรมไฟฟาและอิเล็กทรอนิกส มหาวิทยาลัยอุบลราชธานี
IntroductionMATLAB(Thai) For ElectricalEngineering UBU 5

M-file จะเปนการเขียนโปรแกรมใน MATLAB เพื่อสั่งให MATLAB ทํางานที่ซับซอน หรือในกรณีที่มี

ชุดคําสั่งยาวหลายบันทัด การเขียน M-file จะตองใช editor ในการเขียน ซึ่ง default editor ใน ver.4 จะเปน NotePad

และ ver.5 จะเปน MEdit

Function จะแตกตางกับ batch file ตรงที่ function จะมีการรับ-สงคาตัวแปร และ function ไมสามารถ

ทํางานไดโดยลําพัง ตัวอยางของ func

Operators and special characters.

Arithmetic operators.
+ plus - Plus
+ uplus - Unary plus
- minus - Minus
- uminus - Unary minus
* mtimes - Matrix multiply
.* times - Array multiply
^ mpower - Matrix power
.^ power - Array power
\ mldivide - Backslash or left matrix divide
/ mrdivide - Slash or right matrix divide
.\ ldivide - Left array divide
./ rdivide - Right array divide

Relational operators.
== eq - Equal
~= ne - Not equal
< lt - Less than
> gt - Greater than
<= le - Less than or equal
>= ge - Greater than or equal
ภาควิชาวิศวกรรมไฟฟาและอิเล็กทรอนิกส มหาวิทยาลัยอุบลราชธานี
IntroductionMATLAB(Thai) For ElectricalEngineering UBU 6

Logical operators.
& and - Logical AND
| or - Logical OR
~ not - Logical NOT
Special characters.
: colon - Colon
( ) paren - Parentheses and subscripting
[ ] paren - Brackets
{ } paren - Braces and subscripting
. punct - Decimal point
.. punct - Parent directory
... punct - Continuation
, punct - Separator
; punct - Semicolon
% punct - Comment
! punct - Invoke operating system command
= punct - Assignment
' punct - Quote
.' transpose - Transpose

การคํานวณซ้ําหลายครั้งในMATLAB นั้น ทําไดเหมือนกับการใชโปรแกรมอืน่ คือการใช for กับ while loop ความ

แตกตางระหวาง for กับ while คือ for จะสามารถกําหนดลวงหนาไดวา จะใหทําซ้ํากี่ครั้ง ในขณะที่ while จะใช

“ขอแม” เปนตัวกําหนดวาจะทําซ้ํากี่ครั้ง

ภาควิชาวิศวกรรมไฟฟาและอิเล็กทรอนิกส มหาวิทยาลัยอุบลราชธานี
IntroductionMATLAB(Thai) For ElectricalEngineering UBU 7

for n=strt:step:stp, while (condition),


statement statement
end end

Problem: van der Waals equation of state for gas can be written as

⎛ a ⎞ P: pressure (atm) R: gas constant (0.08206 atm L /g-mol K)


⎜ P + 2 ⎟ (V − b ) = RT
⎝ V ⎠
27 ⎛ R 2TC2 ⎞ RTC V: molar volume(L/g-mol) TC: critical temperature
a= ⎜ ⎟ b=
64 ⎝ PC ⎠ 8 PC

T: temperature (K) PC: critical pressure

Calculate the temperature of ammonia and plot the PT graph, when pressure varies from 50 to 100 atm. V = 40

L/g-mol, TC = 405.5 K, PC = 111.3 atm. Compare the van der Waals equation and the ideal gas law.

การแปลงฟูเรียรเต็มหนวย

การแปลงฟูเรียรเต็มหนวยหรือในตําราบางเลมก็ใชคําวา การแปลงฟูเรียรไมตอเนื่อง (Discrete Fourier

Transform) ไดพัฒนาขึน้ มาเพื่อใชในการแปลงสัญญาณดิจิตอลซึ่งอยูในโดเมนเวลาไปเปนสัญญาณที่อยูในโดเมน

ความถี่ ดังนัน้ จึงกลาวไดวา การแปลงฟูเรียรเต็มหนวยเปนการวิเคราะหสัญญาณในโดเมนความถี่ การแปลงฟูเรียร

เต็มหนวยนี้มวี ิธกี ารในการคํานวณที่ซับซอนมีจํานวนครั้งในการคํานวณมากและใชเวลาในการคํานวณมาก ตอมา

เพื่อลดปญหาดังกลาวจึงไดพัฒนาวิธีการแปลงใหเร็วขึน้ ซึ่งเรียกวา การแปลงฟูเรียรแบบเร็ว (Fast Fourier

Transform: FFT) ซึ่งจะทําใหการคํานวณ DFT ใชการคูณจํานวนเชิงซอนเพียง Nlog 2 N ครั้งเทานั้นหรือทําให

จํานวนครั้งในการคูณตัวเลขลดลงไปถึง N/(log 2 N) เทา การแปลงฟูเยรแบบเรซนีจ้ ะมีการคํานวณคลายกับการแปลง

ฟูเรียรเต็มหนวยแตการแปลงฟูเรียรแบบเร็วจะมีวธิ ีการในการจัดแบงขอมูลแลวทําการคํานวณซึ่งจํานวนขอมูลที่ใช

ในการคํานวณจะตองเปนคา 2 ยกกําลัง ก หรือ (2n ) โดยที่ n เปนจํานวนเต็มบวก ดังนั้นจึงทําใหการแปลงฟูเรียร

ภาควิชาวิศวกรรมไฟฟาและอิเล็กทรอนิกส มหาวิทยาลัยอุบลราชธานี
IntroductionMATLAB(Thai) For ElectricalEngineering UBU 8

แบบเร็วลดเวลาในการคํานวณลงโปรแกรม MATLAB ไดมีฟงกชนั ที่ใชสําหรับการคํานวณหาคาการแปลงฟูเ รียร

เต็มหนวยและการแปลงฟูเรียรแบบเร็วซึ่งมีการะบวนการในการคํานวณสอดคลองกับสมการดังนี้

f (n ) → f (k )
f (k ) = FFT {f (n )}
n −1
f (k ) = ∑ f (n )e − j 2 πnk / N
, k = 0 ,1... , N − 1
n =0

เมื่อทําการเลื่อนคา n ไปหนึ่งคาโดยคาเริ่มที่ n=1 จะมีสมการผลลัพธเปนดังสมการขางลาง

N ⎛ n −1 ⎞
− j 2 π ( k −1 )⎜ ⎟
f (k ) = ∑ f (n )e ⎝ N ⎠
, k = 1,2 , ... , N
n =1

f (n ) ← F (k )
−1 {F ( k )}
f (n ) = FFT
เมื่อทําการแปลงกลับ

N ⎛ n −1 ⎞
j 2 π ( k −1 )⎜ ⎟
∑ F (k )e
1 ⎝ N ⎠
f (n ) = , n = 1,2 , ... N
N k =1

โปรแกรม MATLAB มีฟงกชันที่ใชสําหรบการหาคาการแปลงฟูเรียรเต็มหนวยคือฟงกชัน fft ซึ่งมีวิธีการ

ในการทํานวณหาคาผลลัพธจะสอดคลองกับกระบวนการในการคํานวณจากสมการตาง ๆ ที่กลาวไวขางตน รูปแบบ

การใชงานฟงกชัน fft เปนดังนี้

ภาควิชาวิศวกรรมไฟฟาและอิเล็กทรอนิกส มหาวิทยาลัยอุบลราชธานี
IntroductionMATLAB(Thai) For ElectricalEngineering UBU 9

คําสั่ง รายละเอียด

fft (A) การหาคาการแปลงฟูเรียรเต็มหนวย (DFT) ของเวกเตอร A เมื่อ A คือเวกเตอรที่

แทนจุดของสัญญาณในดดเมนเวลาโดยมีเงื่อนไขวาถาความยาวของเวกเตอร A

มีความยาวเทากับ 2 เมือ่ n เปนจํานวนเต็มบวก โปรแกรม MATLAB จะ

ใชกระบวนการแปลงฟูเรียรแบบเร็วถาความยาวของเวกเตอร A มีความยาวไม

เทากับ 2 เมื่อ n เปนจํานวนเต็มบวก โปรแกรม MATLAB จะใช

กระบวนการแปลงฟูเรียรเต็มหนวยซึ่งชากวาการแปลงฟูเรียรแบบเร็ว

fft (A,N) การหาคาการแปลงฟูเรียรเต็มหนวย (DFT) ของเวกเตอร A ที่ใหคาผลลัพธจาก

การแปลงมีความยาวเทากับ N เมื่อ A คือเวกเตอรทแี่ ทนจุดของสัญญาณใน

โดเมนเวลา และ N ก็จะทําการเพิ่มคาศูนยใหกับเวกเตอร A มีจุดสัญญาณ

มากกวา N ก็จะทําการตัดคาของเวกเตอร A ใหมีจํานวนจุดสัญญาณเทากับ

เวกเตอร N

ตารางที่2 แสดงคําสั่ง fft การแปลงฟูเรียรเต็มหนวย

จงหาคาการแปลงฟูเรียรของฟงกชัน
⎧4e −2t t ≥0
f (t ) = ⎨
⎩0 t <0

วิธีทํา

กําหนดคาตัวแปรตาง ๆ และใชคําสั่ง fft เพื่อหาคาการแปลงฟูเรียรบนหนาตางคําสั่งไดดังนี้

ภาควิชาวิศวกรรมไฟฟาและอิเล็กทรอนิกส มหาวิทยาลัยอุบลราชธานี
IntroductionMATLAB(Thai) For ElectricalEngineering UBU 10

รูปที่ 2.3 แสดงการแกปญ


 หาดวย MATLAB

นอกจากฟงกชัน fft ที่ใชสําหรัรบหาคาการแปลงฟูเรียรแลวยังมีฟงกชันที่ใชสําหรับหาคาการแปลงฟูเรียร

ผกผันคือฟงกชัน fourier และ ifourier ตามลําดับโดยจะกําหนดคาขอมูลใหเปนตัวแปรหรือจํานวน symbolic ซึ่ง

สามารถอธิบายไดดังตัวอยางตอไปนี้

จงหาการแปลงฟูเรียรของฟงกชันตอไปนีโ้ ดยใชคําสั่ง fourier และเมือ่ หาคาการแปลงฟูเรียรไดแลวใหทําการแปลง

ฟูเรียรผกผันเพื่อดูวาคําตอบถูกตองหรือไมดดยใชคําสั่ง ifourier

g (t ) = 3e −t
2

วิธีทํา

กําหนดคาตาง ๆ ที่ใชในคําสั่งใหเปนตัวแปรหรือจํานวน symbolic แลวหาผลการแปลงฟูเรียรของฟงกชัน

g (t ) = 3e −t โดยใชคําสั่ง fourier แลวหาคาผลการแปลงผกผันของผลลัพธทไี่ พดจากการแปลงฟูเรียรโดยใช


2

คําสั่ง ifourier เพื่อพิสูจนคําตอบไดดังนี้

ภาควิชาวิศวกรรมไฟฟาและอิเล็กทรอนิกส มหาวิทยาลัยอุบลราชธานี
IntroductionMATLAB(Thai) For ElectricalEngineering UBU 11

รูปที่ 2.4 แสดงการแกปญหาดวย MATLAB

เมื่อฟงกชัน ifourier จะพบวาผลลัพธจากการแปลงฟูเรียรผกผันจะมีคาเทากับฟงกชัน g (t ) = 3e −t ดังนั้น


2

ω2

ผลการแปลงฟูเรียรของฟงกชัน g (t ) = 3e −t 2
มีคาเทากับ 3 πe 4

อนุกรมฟูเรียร

อนุกรมฟูเรียรไดถกู นํามาใชกันอยางกวางขวางในการแกปญหาตาง ๆ ในทางวิศวกรรม ฟงกชันสัญญาณที่

เกิดปญหามักเปนฟงกชันคาบซึ่งแทนในเทอมของฟงกชันที่เปนคาบของสัญญาณไซนและโคไซนที่เปนอนุกรมกัน

ซึ่งเรียกวา อนุกรมฟูเรียร เพือ่ งายตอความเขาใจสามารถอธิบายเปนสมการไดดังนี้



f (t ) = ∑f
n =−∞
n e jnω0

t +T 0
1
เมื่อ Fn = ∫ f (t )e
− jnω 0
dt
T0 t

ถาให f(t) ซึ่งเปนฟงกชันที่มคี าบ T ดังนั้นจะได


1
f (t ) = a 0 + a1 cos ω 0t + a 2 cos 2ω 0t +... +b 1 sin ω 0t + b 2 sin 2ω 0t +..
2

ภาควิชาวิศวกรรมไฟฟาและอิเล็กทรอนิกส มหาวิทยาลัยอุบลราชธานี
IntroductionMATLAB(Thai) For ElectricalEngineering UBU 12

เราสามารถเขียนอนุกรมฟูเรียรแบบตรีโกณมิติใหอยูในรูปผลบวกไดดังนี้

f (t ) = a 0 + ∑{a n cos( n ω 0t ) +b n sin( n ω 0t )}
n =1

เมือสัมประสิทธิ์ของอนุกรมฟูเรียรมีคาเทากับ
t +T 0

a0 = ∫ f (t )dt
t

t +T 0

an = ∫ f (t ) cos( nω t )dt
t
0

t +T 0

bn = ∫ f (t ) sin( nω t )dt
t
0

จากสมการที่ให f(t) ซึ่งเปนฟงกชันที่มีคาบ T เรียกวาอนุกรมฟูเรียรแบบตรีโกณมิติ (Trigonometric

Fourier Series) และพบวาอนุกรมฟูเรียรเปนผลรวมขององคประกอบคลื่นซายนที่มีความถี่ตา งกันหลายความถี่

องคประกอบคลื่นซายนที่ความถี่ตาง ๆ ω0 = nω0 นี้จะเรียกวา

ฮารโมนิคที่ n (n-th harmonic) เนื่องจากมีคาบเวลาเหมือนกัลฟงกชันดังนั้นจะไดความถี่พื้นฐานมีคา เปน



ω0 =
T

พิจารณาความสัมพันธระหวางฟงกชันไซนและโคไซนของอนุกรมฟูเรียรแลวหาความสัมพันธกับ

สัมประสิทธิ์อนุกรมฟูเรียรทไี่ ดกลาวมาขางตนจะไดวา

a0 = F0

F0 = F- n = ½( an - jbn )

a0 = 2Re {Fn}

bn = -2 Im { Fn}

ภาควิชาวิศวกรรมไฟฟาและอิเล็กทรอนิกส มหาวิทยาลัยอุบลราชธานี
IntroductionMATLAB(Thai) For ElectricalEngineering UBU 13

จงหาคาอนุกรมฟูเรียรของรูปขางลางนี้

วิธีทํา

จากรูปจะไดฟง กชัน f(t) =10/0.25 t เมื่อ 0< t<0.25

กําหนดคาตัวแปรตาง ๆ และใชคําสั่ง fft เพื่อหาคาการแปลงฟูเรียรบนหนาตางคําสั่งไดดังนี้

ภาควิชาวิศวกรรมไฟฟาและอิเล็กทรอนิกส มหาวิทยาลัยอุบลราชธานี
IntroductionMATLAB(Thai) For ElectricalEngineering UBU 14

รูปที่ 2.5 แสดงการแกปญหาดวย MATLAB

การแปลงลาปลาซ (Laplace transform)

การหาคาลาปลาซเปนการแปลงฟงกชนั หนึ่งเปนอีกฟงกชันหนึ่งซึ่งเราสามารถนําการแปลงลาปลาศไปใช

สําหรับหาคําตอบของสมการเชิงอนุพันธเชิงเสนที่มีสัมประสิทธิ์เปนคาคงตัวในรุปของปญหาเงื่อนไขคาเริ่มตน เชน

การหาคาอินทิกรัล และการแกสมการอินทิกรัล วิธีการแปลงลาปลาซนํามาใชในการแกสมการอนุพันธนั้นมีขอดี

คือ การใชวิธขี องเฮวิไซดทาํ ใหเราสามารถเปลี่ยนสมการอนุพนั ธไปสูสมการพคชคณิตได และการกําหนดเงื่อนไข

เริ่มตนจะทําใหไดคําตอบที่สอดคลองกับปญหาพีชคณิตอยางอัตโนมัติ มักพบในสมการเชิงอนุพันธแบบไม

ตอเนื่อง ในหัวขอนี้เราจะอธิบายถึงทฟษฎีการแปลงลาปลาซเบื้องตนและการใชงานโปรแกรม MATLAB ในการ

หาคาผลลัพธจากการแปลงลาปลาซ

ผลการแปลงลาปลาซ

ถา f เปนฟงกชันคาจริงของตัวแปรจริง t เมื่อ t >0 และให S เปนตัวแปรใด ๆ ที่สมมุติใหเปนคาจริงดังนัน้

เราจะไดฟงกชนั F เปนดังนี้

F ( s ) = L {f (t )} = ∫ e − st f (t )dt
0

เราเรียกฟงกชนั F จากสมการขางบนวาผลการแปลงลาปลาซของฟงกชัน f จะแทน F(S) เปน L{f(t)}

และเรียกตัว L วา ตัวแปลงลาปลาซ (Laplace transform operator)

เนื่องจากเราไมสามารถอินทิเกรทสมการขางบนไดโดยตรง เพราะลิมิตของฟงกชันไมจํากัด (Infinity)

ดังนั้นจึงใชรู ปแบบการอินทิเกรตเพื่อหาคาผลการแปลงลาปลาซไดดงั นี้


∞ p

∫e f (t )dt = lim ∫ e − st f (t )dt


− st
p →0
0 0

ภาควิชาวิศวกรรมไฟฟาและอิเล็กทรอนิกส มหาวิทยาลัยอุบลราชธานี
IntroductionMATLAB(Thai) For ElectricalEngineering UBU 15

เราจะใชการแปลงขางเดียว (one-side) ซึ่งสมมุติวาตัวแปร y(t) เปนศูนยเมือง t<0 เชน ฟงกชันขั้นบันได

(step function) ซึ่งมีลักษณะดังรูป

รูปที่ 2.6 แสดงฟงชั่นขั้นบันไดหนึ่งหนวย

ความสูงของขั้นมีคาเทากับ M และเรียกคานีว้ าแมกนิจูด (magnitude) กรณีความสูงเทากับหนึ่งจะเปนฟงกชัน

บันไดหนึ่งหนวยซึ่งกําหนดเปน u0 (t) สามารถอธิบายไดดังนี้

0 t <0

u s (t) = 1 t >0

indeterminate t =0

เราจะเรียกฟงกชันขั้นบันไดหนึ่งหนวยวาฟงกชันเฮวิไซดหนึ่งหนวยหรือฟงกชนั เฮวิไซด (Heaviside

function) และโปรแกรม MATLAB จะมีฟงกชันที่ใชสําหรับการสรางฟงกชัน

แฮวิไซด (heaviside) คือ heaviside (t) ซึ่งจะสรางฟงกชันบันไดหนึ่งหนวย

ฟงกชันขั้นบันไดความสูง M สามารถเขียนเปน y(t) = Mu s (t) เมื่อทําการแปลงลาปลาซจะมีคาเทากับ


∞ ∞
M
L {y (t )} = ∫ M u s (t )e − st
dt = M ∫ e − st d =
0 0
s

ในการหาคาผลการแปลงลาปลาซของอนุพันธที่มีอนั ดับสูงกวาหนึ่งนั้น เราจะใชคําจํากัดความและการ

อินทิเกรต บายพารท โดยกําหนดให f(t) = y’(t) ดังนั้นจะไดวา

ภาควิชาวิศวกรรมไฟฟาและอิเล็กทรอนิกส มหาวิทยาลัยอุบลราชธานี
IntroductionMATLAB(Thai) For ElectricalEngineering UBU 16

L{y” (t)} = L{f’(t)” = sL{f(t)} - f(0)

= sL{y’(t)} – y’ (0) = s[sY(s) – y(0)] - y’(0)

= s2 Y(s) – sy(0) –y’ (0)

ดังนั้น

L{y”(t)} = snY(s)-sn-1 y(0)- sn-2 y(0)- … - y2n-1

คุณสมบัติเชิงเสนของการหาคาผลการแปลงลาปลาซ (Linear property to find laplace transtorm)

1. L{f(t)+g(t)} = L{f(t)} + L{g(t)} = F(s) + G(s)


2. L{cf(t)} = cL{f(t)} = cF(s)
โปรแกรม MATLAB มีฟงกชันที่ใชสําหรับหาคาผลการแปลงสาปลาซคือ laplace ซึ่งโครงสราง

ดังตอไปนี้

คําสั่ง รายละเอียด

L = laplace(F) การหาผลการแปลงลาปลาซของฟงกชัน F

L = laplace(F,t) การหาผลการแปลงลาปลาซของฟงกชัน F โดยที่จะแทน t ดวยคาของ S

L = laplace(F,w,z) การหาผลการแปลงลาปลาซของฟงกชัน F เมื่ออินทิกรัลคอนเวอรจดวยคา

ของ W โดยจะแทน Z ดวยคาของ S

ตารางที่3 แสดงคําสั่ง L การแปลงลาปลาซ

เพื่องายตอความเขาใจยิ่งขึน้ เราจะขอยกตัวอยางการใชโปรแกรม MATLAB ในการแปลงสาปลาซไดดังนี้

จงหาผลการแปลงสาปลาซของฟงกชันตอไปนี้

sin ax + cosax

หาคาของ L{sin ax + xosax}

ภาควิชาวิศวกรรมไฟฟาและอิเล็กทรอนิกส มหาวิทยาลัยอุบลราชธานี
IntroductionMATLAB(Thai) For ElectricalEngineering UBU 17

รูปที่ 2.7 แสดงการแกปญหาดวย MATLAB

ดังนั้นผลการแปลงลาปลาซของฟงกชัน sin ax + xosax คือ a/s2+a2 + s/s2+a2

ผลการแปลงลาปลาซผกผัน (Inverse laplace transtorm)

เราไดพิจารณาผลการแปลงสาปลาซ F(s) ของฟงกชัน f(x) จากหัวของขางตนแลว ในหัวขอนี้จะกลาวถึง

การฟงกชัน f(x) เมื่อทราบผลการแปลงลาปลาซของ f(x) เราจะพิจารณาเฉพาะ

f(x) ที่มีความตอเนื่องเปนชวงบนชวงได ๆ ในรูป [0. T] และเปนอันดังเอกซโปเนนเชียล

การหาคาการแปลงผกผันสาปลาซ f(s) เมื่อใหผลการแปลงลาปลาซ F(s) จะทําใหสามารถหาคาไดดังนี้คือ

f(x) = L-1 {F(x)}

ภาควิชาวิศวกรรมไฟฟาและอิเล็กทรอนิกส มหาวิทยาลัยอุบลราชธานี
IntroductionMATLAB(Thai) For ElectricalEngineering UBU 18

โปรแกรม MATLAB มีฟงกชันที่ใชสําหรับการหาคาการแปบงผกผันลาปลาซคือ ilaplace ซึ่งมีโครงสราง

ดังนี้

คําสั่ง รายละเอียด

F = ilaplace(L) การหาผลการแปลงลาปลาซ ผกผัน เมื่อผลการแปลงลาปลาซคือ L

F= laplace(L,y) การหาผลการแปลงลาปลาซผกผัน เมื่อผลการแปลงลาปลาซคือ L โดยที่จะ

แทน y ดวยคาของ t

F = laplace (L,y,x) การหาผลการแปลงลาปลาซผกผัน เมื่อผลการแปลงลาปลาซคือ L และ

อินทิกรัลคอนเวอรจดวยคาของ y โดยจะแทน X ดวยคาของ t

ตารางที่4 แสดงคําสั่ง F=ilaplaceและ F = laplace การแปลงลาปลาซ

เพื่องายตอความเขาใจยิ่งขึน้ เราจะขอยกตัวอยางการใชโปรแกรม MATLANB ในการแปลงลาปลาซผกผัน

ไดดังนี้

จงหาผลการแปลงลาปลาซผกผันของฟงกชันตอไปนี้

24
s + 4 s + 13
2

กําหนดคาตัวแปรโดยการกําหนดใหเปนตัวแปร Symbolic ดวยคําสั่ง syms แลวใชฟงกชัน laplace หาคา

ผลการแปลงลาปลาซผกผันไดดังนี้
⎧ 24 ⎫
หาคาของ L −1 ⎨ 2 ⎬
⎩ s + 4 s + 13 ⎭

ภาควิชาวิศวกรรมไฟฟาและอิเล็กทรอนิกส มหาวิทยาลัยอุบลราชธานี
IntroductionMATLAB(Thai) For ElectricalEngineering UBU 19

รูปที่ 2.8 แสดงการแกปญหาดวย MATLAB

ดังนั้นผลการแปลงลาปลาซผกผันของ 24 คือ 8e-2x sin 3x


s + 4 s + 13
2

ภาควิชาวิศวกรรมไฟฟาและอิเล็กทรอนิกส มหาวิทยาลัยอุบลราชธานี

You might also like