Simple free body diagram ของระบบลอยตัวด้วยแม่เหล็กแสดงได้โดยภาพดังนี้
สามารถเขียนสมการได้ดังนี้
ความเร็วของมวลแสดงได้โดย
(1)
จากกฎข้อที่สองของนิวตันจะได้
(2)
M คือมวล (0.491 kg)
g ความเร่งจากแรงโน้มถ่วง (9.81 m/s^2)
\(f_{v}\)คือสัมประสิทธิแรงเสียดทานของอากาศ 0.04 Ns/m
c คือค่าคงที่แรงแม่เหล็ก (0.3 Nm/A^2)
L คือค่าอินดักแต๊น (0.2H)
R คือค่าความต้านทาน (50 Ohm)
x คือค่าระยะการยก (กำหนดไว้ 0.06m)
จัดรูปสมการ (2)
(3)
จาก Kirchhoff voltage law จะได้สมการ
(4)
จัดรูปสมการ (4)
(5)
กำหนดให้
สมการ (1) , (3) และ (5) สามารถจัดรูปใหม่ได้เป็น
(6)
จะได้สมการไม่เชิงเส้น เราจะควบคุมระบบรอบๆ จุดสมดุลหนึ่งเท่านั้น จึงต้องทำการ Linearized สมการ (6) โดยการคำนวณหาจุดสมดุล
ให้สมการ (6) = 0 จะได้
(7)
แทนค่าลงในสมการ (7)
(8)
จะได้จุดสมดุล 2 จุดคือ \(x_{1}=0.06\; x_{2}=0\; x_{3}=-0.800983\) และ \(x_{1}=0.06\; x_{2}=0\; x_{3}=0.800983\) โดย \(x_{3}\) มีสองค่าทั้งนี้ก็เพราะกระแสวิ่งทางใดก็ได้เกิดอำนาจแม่เหล็กทั้งสองทาง ซึ่งในบล็อกนี้จะขอใช้ค่าบวก
ทำการ Linearization รอบจุดสมดุล
(9)
แทนสมการ (6) และค่าที่ได้จากการแก้สมการ (8) ลงในสมการ (9)
(10)
สามารถเขียนเป็นสมการเสตทได้ดังนี้
(11)
ทำการทดสอบระบบโดยการรับสคริปบน Matlab ดังนี้
%state parameters
A = [ 0 1 0
245 -0.0814 -24.47
0 0 -250];
B = [ 0
0
5 ];
C = [ 1 0 0 ];
%pole location
poles = eig(A)
t = 0:0.01:2;
u = zeros(size(t));
x0 = [0.01 0 0];
sys = ss(A,B,C,0);
[y,t,x] = lsim(sys,u,t,x0);
plot(t,y)
title('Open-Loop Response to Non-Zero Initial Condition')
xlabel('Time (sec)')
ylabel('Ball Position (m)')
จะได้ผลตอบสนองดังนี้
จากสคริป พบว่าระบบมีโพล ดังนี้ poles = 15.6118 ,-15.6932 , -250.0000 จะพบว่ามีโพล 1 ตัวอยู่ด้านขวาของ Complex plan ซึ่งทำให้ระบบไม่มีเสถียรภาพ สอดคล้องกับกราฟผลตอบสนองระยะของ x เพิ่มมากขึ้นเรื่อยๆ หมายถึงอำนาจแม่เหล็กไม่สามารถยึดเหนี่ยวมวลไว้ในตำแหน่งทำงาน หลุดร่วงออกห่างจากจุดทำงานมากขึ้นเรื่อยๆ
ดาวน์โหลด matlab file ได้ที่นี่