หน้าแรก คลังความรู้ เวกเตอร์ หมุนแกนพิกัด
Vectors: Forces, Fields & Phasors ดูครบทุกส่วน · 20 หน้า 1 · พื้นฐานเวกเตอร์ 2D / 3D 4 · ไฟฟ้า: สนามและเฟสเซอร์ 5 · ห้องแล็บและเครื่องมือ
// เวกเตอร์ · ส่วนที่ 3 · Rotation of axes & rotation matrices
การหมุนแกนพิกัด: เมทริกซ์หมุน มุมออยเลอร์ และการเปลี่ยนกรอบอ้างอิง
โจทย์พื้นเอียงง่ายขึ้นทันทีเมื่อหมุนแกน x ให้ขนานกับพื้น โดรนรู้ว่าตัวเองเอียงเท่าไรจากการอ่านแรงโน้มถ่วงในแกนของตัวเอง และอินเวอร์เตอร์ขับมอเตอร์ควบคุมกระแสได้นิ่งเพราะหมุนแกนตามโรเตอร์ ทั้งหมดใช้ความคิดเดียว: เวกเตอร์ไม่เปลี่ยน แต่ตัวเลขที่ใช้บรรยายมันเปลี่ยนตามกรอบ บทนี้สร้างเมทริกซ์หมุนจาก dot product แล้วต่อยอดสู่สามมิติ มุมออยเลอร์ และงานไฟฟ้า
สรุปใน 30 วินาที
องค์ประกอบในแกนใหม่ = dot product กับเวกเตอร์หนึ่งหน่วยของแกนใหม่
2D: x ′ = x cos θ + y sin θ , y ′ = − x sin θ + y cos θ x'=x\cos\theta+y\sin\theta,\ y'=-x\sin\theta+y\cos\theta x ′ = x cos θ + y sin θ , y ′ = − x sin θ + y cos θ คือ v ′ = R ( θ ) T v \mathbf v'=R(\theta)^{\mathsf T}\mathbf v v ′ = R ( θ ) T v
R T R = I , det R = 1 R^{\mathsf T}R=I,\ \det R=1 R T R = I , det R = 1 : ความยาวและมุมไม่เปลี่ยน
3D: R = R z ( ψ ) R y ( θ ) R x ( ϕ ) R=R_z(\psi)R_y(\theta)R_x(\phi) R = R z ( ψ ) R y ( θ ) R x ( ϕ ) ลำดับสำคัญ — คูณสลับแล้วได้คนละการหมุน
ค้นหาสูตรในหน้านี้ โหมดฝึกทำ: ซ่อนวิธีทำ
1. แนวคิด: ลูกศรเดิม ตัวเลขใหม่ พื้นฐาน
เวกเตอร์ความยาว 7.21 หน่วยที่ชี้ไปทางหนึ่ง อาจเขียนเป็น (6, 4) ในแกน xy หรือ (7.20, 0.46) ในแกนที่หมุนไป 30° ทั้งสองชุดบรรยายลูกศรเส้นเดียวกัน การเลือกกรอบที่ดีทำให้สมการง่ายลง เช่น ให้แกนหนึ่งขนานกับพื้นเอียง กับเพลามอเตอร์ หรือกับแขนหุ่นยนต์
เครื่องมือที่ทำงานนี้คือ dot product: ถ้า e 1 ′ \mathbf e_1' e 1 ′ คือเวกเตอร์หนึ่งหน่วยของแกน x′ องค์ประกอบ x′ ของ v \mathbf v v คือ v ⋅ e 1 ′ \mathbf v\cdot\mathbf e_1' v ⋅ e 1 ′ (การฉายบนแกนใหม่ ดู Component · Projection )
2. หมุนแกนในระนาบ พื้นฐาน
หมุนแกนไปทวนเข็ม θ เวกเตอร์หนึ่งหน่วยของแกนใหม่คือ e 1 ′ = ( cos θ , sin θ ) \mathbf e_1'=(\cos\theta,\sin\theta) e 1 ′ = ( cos θ , sin θ ) และ e 2 ′ = ( − sin θ , cos θ ) \mathbf e_2'=(-\sin\theta,\cos\theta) e 2 ′ = ( − sin θ , cos θ ) จึงได้
T1 Rotation of axes (2D) องค์ประกอบในแกนที่หมุน θ
x ′ = v ⋅ e 1 ′ = x cos θ + y sin θ , y ′ = v ⋅ e 2 ′ = − x sin θ + y cos θ x'=\mathbf v\cdot\mathbf e_1'=x\cos\theta+y\sin\theta,\qquad y'=\mathbf v\cdot\mathbf e_2'=-x\sin\theta+y\cos\theta x ′ = v ⋅ e 1 ′ = x cos θ + y sin θ , y ′ = v ⋅ e 2 ′ = − x sin θ + y cos θ
[ x ′ y ′ ] = [ cos θ sin θ − sin θ cos θ ] [ x y ] = R ( θ ) T [ x y ] \begin{bmatrix}x'\\y'\end{bmatrix}=\begin{bmatrix}\cos\theta&\sin\theta\\-\sin\theta&\cos\theta\end{bmatrix}\begin{bmatrix}x\\y\end{bmatrix}=R(\theta)^{\mathsf T}\begin{bmatrix}x\\y\end{bmatrix} [ x ′ y ′ ] = [ cos θ − sin θ sin θ cos θ ] [ x y ] = R ( θ ) T [ x y ]
T2 Active vs passive rotation หมุนเวกเตอร์กับหมุนแกน
หมุนเวกเตอร์ (active): v new = R ( θ ) v , หมุนแกน (passive): v ′ = R ( θ ) T v = R ( − θ ) v , R ( θ ) = [ cos θ − sin θ sin θ cos θ ] \text{หมุนเวกเตอร์ (active): }\mathbf v_{\text{new}}=R(\theta)\mathbf v,\qquad \text{หมุนแกน (passive): }\mathbf v'=R(\theta)^{\mathsf T}\mathbf v=R(-\theta)\mathbf v,\qquad R(\theta)=\begin{bmatrix}\cos\theta&-\sin\theta\\\sin\theta&\cos\theta\end{bmatrix} หมุนเวกเตอร์ (active): v new = R ( θ ) v , หมุนแกน (passive): v ′ = R ( θ ) T v = R ( − θ ) v , R ( θ ) = [ cos θ sin θ − sin θ cos θ ]
ความสับสนอันดับหนึ่งของบทนี้: ตำราหุ่นยนต์มักใช้ active ส่วนตำรากลศาสตร์มักใช้ passive ให้ดูว่าอะไรถูกหมุน — ลูกศรหรือแกน
ตัวอย่าง T-1 · อ่านเวกเตอร์ในแกนที่หมุน 30° v = ( 6 , 4 ) \mathbf v=(6,4) v = ( 6 , 4 ) จงหาองค์ประกอบในแกนที่หมุนทวนเข็ม 30°
x ′ = 6 cos 30 ∘ + 4 sin 30 ∘ = 5.196 + 2 = 7.196 x'=6\cos30^\circ+4\sin30^\circ=5.196+2=7.196 x ′ = 6 cos 3 0 ∘ + 4 sin 3 0 ∘ = 5.196 + 2 = 7.196
y ′ = − 6 sin 30 ∘ + 4 cos 30 ∘ = − 3 + 3.464 = 0.464 y'=-6\sin30^\circ+4\cos30^\circ=-3+3.464=0.464 y ′ = − 6 sin 3 0 ∘ + 4 cos 3 0 ∘ = − 3 + 3.464 = 0.464
ตรวจความยาว: 6 2 + 4 2 = 7.211 \sqrt{6^2+4^2}=7.211 6 2 + 4 2 = 7.211 และ 7.196 2 + 0.464 2 = 7.211 \sqrt{7.196^2+0.464^2}=7.211 7.19 6 2 + 0.46 4 2 = 7.211 ✓
v ′ = ( 7.196 , 0.464 ) \mathbf v'=(7.196,\ 0.464) v ′ = ( 7.196 , 0.464 ) — แกน x′ เกือบขนานกับ v จึงได้ y′ เล็ก
เปิด JavaScript เพื่อใช้แล็บ
3. เมทริกซ์หมุนเป็นเมทริกซ์ตั้งฉาก กลาง
T3 Properties of rotation matrices สมบัติของเมทริกซ์หมุน
R T R = R R T = I , R − 1 = R T , det R = + 1 , ∥ R v ∥ = ∥ v ∥ , ( R a ) ⋅ ( R b ) = a ⋅ b R^{\mathsf T}R=RR^{\mathsf T}=I,\qquad R^{-1}=R^{\mathsf T},\qquad \det R=+1,\qquad \lVert R\mathbf v\rVert=\lVert\mathbf v\rVert,\qquad (R\mathbf a)\cdot(R\mathbf b)=\mathbf a\cdot\mathbf b R T R = R R T = I , R − 1 = R T , det R = + 1 , ∥ R v ∥ = ∥ v ∥ , ( R a ) ⋅ ( R b ) = a ⋅ b
ทุกคอลัมน์คือแกนใหม่หนึ่งแกนที่เขียนในกรอบเดิม ถ้า det = −1 คือการสะท้อน (กลับมือ) ไม่ใช่การหมุน อินเวอร์สที่ได้จากการทรานสโพสทำให้คอมพิวเตอร์คำนวณเร็วมาก
เชื่อมกับ เมทริกซ์และการดำเนินการ และ ค่าเฉพาะ : เมทริกซ์หมุนสามมิติมีค่าเฉพาะ 1 หนึ่งค่า เวกเตอร์เฉพาะคู่กับค่านี้คือแกนหมุน
4. ใช้จริงครั้งแรก: พื้นเอียง พื้นฐาน
วางแกน x′ ตามพื้นเอียงมุม θ และ y′ ตั้งฉากพื้น น้ำหนัก W = ( 0 , − m g ) \mathbf W=(0,-mg) W = ( 0 , − m g ) ในแกนเดิม หมุนแกนด้วย T1 ได้ W x ′ = − m g sin θ W_{x'}=-mg\sin\theta W x ′ = − m g sin θ (ลงเนิน) และ W y ′ = − m g cos θ W_{y'}=-mg\cos\theta W y ′ = − m g cos θ (กดพื้น) ทันที ไม่ต้องจำรูปสามเหลี่ยมที่สับสนมุม
ตัวอย่าง T-2 · กล่อง 10 kg บนพื้นเอียง 30°
จงหาองค์ประกอบน้ำหนักขนานและตั้งฉากกับพื้นด้วยการหมุนแกน
W = ( 0 , − 98.1 ) \mathbf W=(0,-98.1) W = ( 0 , − 98.1 ) N, θ = 30°
W x ′ = 0 ⋅ cos 30 ∘ + ( − 98.1 ) sin 30 ∘ = − 49.05 W_{x'}=0\cdot\cos30^\circ+(-98.1)\sin30^\circ=-49.05 W x ′ = 0 ⋅ cos 3 0 ∘ + ( − 98.1 ) sin 3 0 ∘ = − 49.05 N · W y ′ = − 0 ⋅ sin 30 ∘ + ( − 98.1 ) cos 30 ∘ = − 84.96 W_{y'}=-0\cdot\sin30^\circ+(-98.1)\cos30^\circ=-84.96 W y ′ = − 0 ⋅ sin 3 0 ∘ + ( − 98.1 ) cos 3 0 ∘ = − 84.96 N
49.05 N ลงเนิน และ 84.96 N กดพื้น — ต่อด้วยแรงเสียดทานในแล็บด้านล่าง
เปิด JavaScript เพื่อใช้แล็บ
5. หมุนในสามมิติ: Rx Ry Rz และลำดับการหมุน กลาง
T4 Elementary rotations (active, right-hand rule) เมทริกซ์หมุนรอบแกนหลัก
R x ( ϕ ) = [ 1 0 0 0 cos ϕ − sin ϕ 0 sin ϕ cos ϕ ] , R y ( θ ) = [ cos θ 0 sin θ 0 1 0 − sin θ 0 cos θ ] , R z ( ψ ) = [ cos ψ − sin ψ 0 sin ψ cos ψ 0 0 0 1 ] R_x(\phi)=\begin{bmatrix}1&0&0\\0&\cos\phi&-\sin\phi\\0&\sin\phi&\cos\phi\end{bmatrix},\quad R_y(\theta)=\begin{bmatrix}\cos\theta&0&\sin\theta\\0&1&0\\-\sin\theta&0&\cos\theta\end{bmatrix},\quad R_z(\psi)=\begin{bmatrix}\cos\psi&-\sin\psi&0\\\sin\psi&\cos\psi&0\\0&0&1\end{bmatrix} R x ( ϕ ) = 1 0 0 0 cos ϕ sin ϕ 0 − sin ϕ cos ϕ , R y ( θ ) = cos θ 0 − sin θ 0 1 0 sin θ 0 cos θ , R z ( ψ ) = cos ψ sin ψ 0 − sin ψ cos ψ 0 0 0 1
สังเกตเครื่องหมายของ R_y สลับตำแหน่งกับอีกสองตัว เพราะลำดับวงจร z → x (x × z = −y)
T5 Composition is not commutative ลำดับการหมุนสำคัญ
R z ( 90 ∘ ) R x ( 90 ∘ ) i = j แต่ R x ( 90 ∘ ) R z ( 90 ∘ ) i = k R_z(90^\circ)R_x(90^\circ)\,\mathbf i=\mathbf j\qquad\text{แต่}\qquad R_x(90^\circ)R_z(90^\circ)\,\mathbf i=\mathbf k R z ( 9 0 ∘ ) R x ( 9 0 ∘ ) i = j แต่ R x ( 9 0 ∘ ) R z ( 9 0 ∘ ) i = k
ลองกับโทรศัพท์จริง: หมุนรอบแกนตั้งก่อนแล้วพลิก กับพลิกก่อนแล้วหมุน หน้าจอจะชี้คนละทิศ
6. มุมออยเลอร์ Z-Y-X: yaw pitch roll ของโดรนและแขนกล ขั้นสูง
T6 Z-Y-X Euler angles มุมออยเลอร์แบบ yaw-pitch-roll
R = R z ( ψ ) R y ( θ ) R x ( ϕ ) , v world = R v body , v body = R T v world R=R_z(\psi)\,R_y(\theta)\,R_x(\phi),\qquad \mathbf v_{\text{world}}=R\,\mathbf v_{\text{body}},\qquad \mathbf v_{\text{body}}=R^{\mathsf T}\mathbf v_{\text{world}} R = R z ( ψ ) R y ( θ ) R x ( ϕ ) , v world = R v body , v body = R T v world
ψ (yaw) หันรอบแกนตั้ง θ (pitch) เงยรอบแกน y ใหม่ φ (roll) หมุนควงรอบแกน x ใหม่ เมื่อ θ = ±90° จะเกิด gimbal lock (yaw กับ roll กลายเป็นแกนเดียวกัน) ระบบจริงจึงนิยม quaternion ภายใน
T7 Tilt from gravity (accelerometer at rest) หามุมเอียงจากแรงโน้มถ่วง
f body = R T [ 0 0 g ] = g [ − sin θ sin ϕ cos θ cos ϕ cos θ ] ⇒ θ = atan2 ( − f x , f y 2 + f z 2 ) , ϕ = atan2 ( f y , f z ) \mathbf f_{\text{body}}=R^{\mathsf T}\begin{bmatrix}0\\0\\g\end{bmatrix}=g\begin{bmatrix}-\sin\theta\\\sin\phi\cos\theta\\\cos\phi\cos\theta\end{bmatrix}\ \Rightarrow\ \theta=\operatorname{atan2}\!\big(-f_x,\sqrt{f_y^2+f_z^2}\big),\quad \phi=\operatorname{atan2}(f_y,f_z) f body = R T 0 0 g = g − sin θ sin ϕ cos θ cos ϕ cos θ ⇒ θ = atan2 ( − f x , f y 2 + f z 2 ) , ϕ = atan2 ( f y , f z )
yaw หาจากแรงโน้มถ่วงไม่ได้ (การหมุนรอบแกนตั้งไม่เปลี่ยนทิศของ g) ต้องใช้แมกนีโตมิเตอร์ช่วย ดูตัวอย่าง K-5
ตัวอย่าง T-3 · ตรวจมุมเอียงของ IMU
บอร์ดเอียงด้วย ψ = 40°, θ = −25°, φ = 20° จงหาเมทริกซ์ R ค่าที่ accelerometer อ่านได้ขณะนิ่ง และกู้มุมเอียงกลับ
R = R z ( 40 ∘ ) R y ( − 25 ∘ ) R x ( 20 ∘ ) = [ 0.6943 − 0.7147 − 0.0844 0.5826 0.6269 − 0.5173 0.4226 0.3100 0.8517 ] R=R_z(40^\circ)R_y(-25^\circ)R_x(20^\circ)=\begin{bmatrix}0.6943&-0.7147&-0.0844\\0.5826&0.6269&-0.5173\\0.4226&0.3100&0.8517\end{bmatrix} R = R z ( 4 0 ∘ ) R y ( − 2 5 ∘ ) R x ( 2 0 ∘ ) = 0.6943 0.5826 0.4226 − 0.7147 0.6269 0.3100 − 0.0844 − 0.5173 0.8517 , det R = 1
f = R T ( 0 , 0 , 9.81 ) = 9.81 × ( แถวที่ 3 ของ R ) = ( 4.146 , 3.041 , 8.355 ) \mathbf f=R^{\mathsf T}(0,0,9.81)=9.81\times(\text{แถวที่ 3 ของ }R)=(4.146,\ 3.041,\ 8.355) f = R T ( 0 , 0 , 9.81 ) = 9.81 × ( แถวที่ 3 ของ R ) = ( 4.146 , 3.041 , 8.355 ) m/s²
θ = atan2 ( − 4.146 , 3.041 2 + 8.355 2 ) = − 25.0 ∘ \theta=\operatorname{atan2}(-4.146,\sqrt{3.041^2+8.355^2})=-25.0^\circ θ = atan2 ( − 4.146 , 3.04 1 2 + 8.35 5 2 ) = − 25. 0 ∘ , ϕ = atan2 ( 3.041 , 8.355 ) = 20.0 ∘ \phi=\operatorname{atan2}(3.041,8.355)=20.0^\circ ϕ = atan2 ( 3.041 , 8.355 ) = 20. 0 ∘ ✓
ψ = 40° ไม่ปรากฏใน f เลย ยืนยันว่าต้องใช้เซนเซอร์อื่นหา yaw
accelerometer อ่าน (4.15, 3.04, 8.36) m/s² และกู้ pitch −25°, roll 20° ได้ตรง
เปิด JavaScript เพื่อใช้ฉาก 3 มิติ
7. หมุนรอบแกนใด ๆ: สูตรโรดริเกส ขั้นสูง
T8 Rodrigues' rotation formula หมุนรอบแกนหนึ่งหน่วย k ด้วยมุม θ
v rot = v cos θ + ( k × v ) sin θ + k ( k ⋅ v ) ( 1 − cos θ ) \mathbf v_{\text{rot}}=\mathbf v\cos\theta+(\mathbf k\times\mathbf v)\sin\theta+\mathbf k(\mathbf k\cdot\mathbf v)(1-\cos\theta) v rot = v cos θ + ( k × v ) sin θ + k ( k ⋅ v ) ( 1 − cos θ )
อ่านจากเวกเตอร์ล้วน: ส่วนที่ขนานกับแกน k ( k ⋅ v ) \mathbf k(\mathbf k\cdot\mathbf v) k ( k ⋅ v ) ไม่หมุน ส่วนตั้งฉากหมุนในระนาบที่มี v ⊥ \mathbf v_\perp v ⊥ และ k × v \mathbf k\times\mathbf v k × v เป็นแกน — ใช้ทั้ง dot และ cross ในสูตรเดียว
ตัวอย่าง T-4 · หมุนรอบแนวทแยง หมุน i = ( 1 , 0 , 0 ) \mathbf i=(1,0,0) i = ( 1 , 0 , 0 ) รอบแกน k = ( 1 , 1 , 1 ) / 3 \mathbf k=(1,1,1)/\sqrt3 k = ( 1 , 1 , 1 ) / 3 ไป 120°
k ⋅ i = 1 / 3 \mathbf k\cdot\mathbf i=1/\sqrt3 k ⋅ i = 1/ 3 , k × i = ( 0 , 1 , − 1 ) / 3 \mathbf k\times\mathbf i=(0,1,-1)/\sqrt3 k × i = ( 0 , 1 , − 1 ) / 3 , cos 120 ∘ = − 1 2 \cos120^\circ=-\tfrac12 cos 12 0 ∘ = − 2 1 , sin 120 ∘ = 3 2 \sin120^\circ=\tfrac{\sqrt3}{2} sin 12 0 ∘ = 2 3
v = ( − 1 2 , 0 , 0 ) + 1 2 ( 0 , 1 , − 1 ) + 1 3 ( 1 , 1 , 1 ) ( 3 2 ) = ( − 1 2 + 1 2 , 1 2 + 1 2 , − 1 2 + 1 2 ) = ( 0 , 1 , 0 ) \mathbf v=(-\tfrac12,0,0)+\tfrac12(0,1,-1)+\tfrac{1}{3}(1,1,1)(\tfrac32)=(-\tfrac12+\tfrac12,\ \tfrac12+\tfrac12,\ -\tfrac12+\tfrac12)=(0,1,0) v = ( − 2 1 , 0 , 0 ) + 2 1 ( 0 , 1 , − 1 ) + 3 1 ( 1 , 1 , 1 ) ( 2 3 ) = ( − 2 1 + 2 1 , 2 1 + 2 1 , − 2 1 + 2 1 ) = ( 0 , 1 , 0 )
ได้ j \mathbf j j — การหมุน 120° รอบแนว (1,1,1) สลับแกน x → y → z → x เป็นวงจร
8. งานไฟฟ้า: การแปลง Clarke และ Park คือการหมุนแกน ขั้นสูง
มอเตอร์สามเฟสที่ควบคุมด้วย field oriented control (FOC) วัดกระแส i a , i b , i c i_a,i_b,i_c i a , i b , i c ที่เป็นไซน์ แปลงเป็นเวกเตอร์สองมิติ ( i α , i β ) (i_\alpha,i_\beta) ( i α , i β ) บนระนาบนิ่ง (Clarke) ซึ่งหมุนด้วยความเร็วซิงโครนัส จากนั้นหมุนแกนตามมุมโรเตอร์ θ (Park) เวกเตอร์กระแสจึงนิ่งในกรอบ dq ทำให้ตัวควบคุม PI ควบคุมค่าคงที่ได้ เหมือนนั่งบนม้าหมุนแล้วม้าตัวหน้าดูอยู่กับที่
T9 Clarke and Park transforms (amplitude-invariant) การแปลง Clarke และ Park
i α = 2 3 ( i a − 1 2 i b − 1 2 i c ) , i β = 1 3 ( i b − i c ) ; [ i d i q ] = [ cos θ sin θ − sin θ cos θ ] [ i α i β ] i_\alpha=\tfrac23\big(i_a-\tfrac12 i_b-\tfrac12 i_c\big),\quad i_\beta=\tfrac{1}{\sqrt3}(i_b-i_c);\qquad \begin{bmatrix}i_d\\i_q\end{bmatrix}=\begin{bmatrix}\cos\theta&\sin\theta\\-\sin\theta&\cos\theta\end{bmatrix}\begin{bmatrix}i_\alpha\\i_\beta\end{bmatrix} i α = 3 2 ( i a − 2 1 i b − 2 1 i c ) , i β = 3 1 ( i b − i c ) ; [ i d i q ] = [ cos θ − sin θ sin θ cos θ ] [ i α i β ]
เมทริกซ์ Park คือ T1 ทุกประการ — เป็นการหมุนแกนแบบ passive ด้วยมุมไฟฟ้าของโรเตอร์
ตัวอย่าง T-5 · กระแสสามเฟสสมดุล 10 A ที่ ωt = 30° i a = 10 cos ω t , i b = 10 cos ( ω t − 120 ∘ ) , i c = 10 cos ( ω t + 120 ∘ ) i_a=10\cos\omega t,\ i_b=10\cos(\omega t-120^\circ),\ i_c=10\cos(\omega t+120^\circ) i a = 10 cos ω t , i b = 10 cos ( ω t − 12 0 ∘ ) , i c = 10 cos ( ω t + 12 0 ∘ ) จงหา i α , i β i_\alpha,i_\beta i α , i β และ i d , i q i_d,i_q i d , i q เมื่อ θ = ωt = 30°
i a = 8.660 , i b = 0 , i c = − 8.660 i_a=8.660,\ i_b=0,\ i_c=-8.660 i a = 8.660 , i b = 0 , i c = − 8.660 A
Clarke: i α = 2 3 ( 8.660 − 0 + 4.330 ) = 8.660 i_\alpha=\tfrac23(8.660-0+4.330)=8.660 i α = 3 2 ( 8.660 − 0 + 4.330 ) = 8.660 A, i β = ( 0 + 8.660 ) / 3 = 5.000 i_\beta=(0+8.660)/\sqrt3=5.000 i β = ( 0 + 8.660 ) / 3 = 5.000 A → เวกเตอร์ยาว 10 A ที่มุม 30°
Park: i d = 8.660 cos 30 ∘ + 5 sin 30 ∘ = 10.00 i_d=8.660\cos30^\circ+5\sin30^\circ=10.00 i d = 8.660 cos 3 0 ∘ + 5 sin 3 0 ∘ = 10.00 A, i q = − 8.660 sin 30 ∘ + 5 cos 30 ∘ = 0 i_q=-8.660\sin30^\circ+5\cos30^\circ=0 i q = − 8.660 sin 3 0 ∘ + 5 cos 3 0 ∘ = 0 A
ไม่ว่า ωt เป็นเท่าใด ได้ i d = 10 , i q = 0 i_d=10,\ i_q=0 i d = 10 , i q = 0 เสมอ: ไซน์สามเส้นกลายเป็นค่าคงที่สองค่า
i d = 10 i_d=10 i d = 10 A, i q = 0 i_q=0 i q = 0 — นี่คือเหตุผลที่ FOC ควบคุมแรงบิดของมอเตอร์ได้เหมือนมอเตอร์ DC
รายละเอียดการควบคุมอยู่ใน ระบบควบคุมในอิเล็กทรอนิกส์กำลัง และการหมุนของเฟสเซอร์ใน พื้นฐานเฟสเซอร์
9. ข้อผิดพลาดที่พบบ่อย
ข้อผิดพลาด วิธีป้องกัน
ใช้ R แทน Rᵀ (หรือกลับกัน) ถามตัวเองว่าหมุนลูกศรหรือหมุนแกน ตรวจด้วยกรณีง่าย θ = 90°
คูณเมทริกซ์ผิดลำดับ ZYX หมายถึง R z R y R x R_zR_yR_x R z R y R x เวกเตอร์ถูกคูณด้วย R_x ก่อน (อยู่ขวาสุด)
ลืมแปลงองศาเป็นเรเดียนในโปรแกรม Math.cos ใน JavaScript/Python รับเรเดียน
ปัดเศษเมทริกซ์จนไม่ตั้งฉาก ตรวจ R T R ≈ I R^{\mathsf T}R\approx I R T R ≈ I และ det ≈ 1 หลังคำนวณเสมอ
คิดว่าหา yaw จาก accelerometer ได้ การหมุนรอบแกนแรงโน้มถ่วงไม่เปลี่ยนค่าที่อ่าน ต้องใช้เข็มทิศหรือไจโร
10. แบบฝึกหัดพร้อมเฉลย
v = ( 3 , − 4 ) \mathbf v=(3,-4) v = ( 3 , − 4 ) จงหาองค์ประกอบในแกนที่หมุน 90° และ −53.13°
หมุนเวกเตอร์ (1, 2, 0) ด้วย R z ( 90 ∘ ) R_z(90^\circ) R z ( 9 0 ∘ )
accelerometer นิ่งอ่าน (0, 4.905, 8.496) m/s² บอร์ดเอียงอย่างไร?
กระแส i α = 0 , i β = 7 i_\alpha=0,\ i_\beta=7 i α = 0 , i β = 7 A และ θ = 90° จงหา i d , i q i_d, i_q i d , i q
เปิดเฉลย
θ = 90°: (−4, −3) · θ = −53.13° (cos = 0.6, sin = −0.8): x′ = 3(0.6) + (−4)(−0.8) = 5, y′ = −3(−0.8) + (−4)(0.6) = 0 → (5, 0) แกน x′ ชี้ตามเวกเตอร์พอดี
R z ( 90 ∘ ) ( 1 , 2 , 0 ) = ( − 2 , 1 , 0 ) R_z(90^\circ)(1,2,0)=(-2,1,0) R z ( 9 0 ∘ ) ( 1 , 2 , 0 ) = ( − 2 , 1 , 0 )
θ = atan2 ( 0 , 9.81 ) = 0 ∘ \theta=\operatorname{atan2}(0,9.81)=0^\circ θ = atan2 ( 0 , 9.81 ) = 0 ∘ , ϕ = atan2 ( 4.905 , 8.496 ) = 30 ∘ \phi=\operatorname{atan2}(4.905,8.496)=30^\circ ϕ = atan2 ( 4.905 , 8.496 ) = 3 0 ∘ : roll 30° ไม่เงย
i d = 0 ⋅ 0 + 7 ⋅ 1 = 7 i_d=0\cdot0+7\cdot1=7 i d = 0 ⋅ 0 + 7 ⋅ 1 = 7 A, i q = − 0 + 7 ⋅ 0 = 0 i_q=-0+7\cdot0=0 i q = − 0 + 7 ⋅ 0 = 0
11. สรุปสูตร
หัวข้อ สูตร
T1 หมุนแกน 2Dv ′ = R ( θ ) T v \mathbf v'=R(\theta)^{\mathsf T}\mathbf v v ′ = R ( θ ) T v
T2 หมุนเวกเตอร์v new = R ( θ ) v \mathbf v_{\text{new}}=R(\theta)\mathbf v v new = R ( θ ) v
T3 สมบัติR T R = I , det R = 1 R^{\mathsf T}R=I,\ \det R=1 R T R = I , det R = 1
T4 –T6 สามมิติR = R z R y R x R=R_zR_yR_x R = R z R y R x ลำดับสำคัญ
T7 มุมเอียงจาก gθ = atan2 ( − f x , f y 2 + f z 2 ) , ϕ = atan2 ( f y , f z ) \theta=\operatorname{atan2}(-f_x,\sqrt{f_y^2+f_z^2}),\ \phi=\operatorname{atan2}(f_y,f_z) θ = atan2 ( − f x , f y 2 + f z 2 ) , ϕ = atan2 ( f y , f z )
T8 โรดริเกสv cos θ + ( k × v ) sin θ + k ( k ⋅ v ) ( 1 − cos θ ) \mathbf v\cos\theta+(\mathbf k\times\mathbf v)\sin\theta+\mathbf k(\mathbf k\cdot\mathbf v)(1-\cos\theta) v cos θ + ( k × v ) sin θ + k ( k ⋅ v ) ( 1 − cos θ )
T9 Clarke–Parkหมุนแกน αβ ตามมุมโรเตอร์ได้ dq
คำถามที่พบบ่อย หมุนแกนกับหมุนเวกเตอร์ต่างกันอย่างไร? หมุนเวกเตอร์ (active) คือย้ายลูกศรไปชี้ทิศใหม่ในกรอบเดิม v_new = R v ส่วนหมุนแกน (passive) คือเวกเตอร์อยู่ที่เดิมแต่เราอ่านองค์ประกอบในแกนที่หมุนไป v′ = Rᵀ v การหมุนแกนไป +θ ให้องค์ประกอบเหมือนการหมุนเวกเตอร์ไป −θ
เมทริกซ์หมุนมีสมบัติอะไร? คอลัมน์และแถวเป็นเวกเตอร์หนึ่งหน่วยที่ตั้งฉากกัน RᵀR = I จึงหาอินเวอร์สได้ง่าย R⁻¹ = Rᵀ และ det R = +1 การหมุนไม่เปลี่ยนความยาวและมุมระหว่างเวกเตอร์
ลำดับการหมุนสำคัญไหม? สำคัญมากในสามมิติ การหมุนรอบ x แล้ว z ให้ผลต่างจาก z แล้ว x เพราะการคูณเมทริกซ์ไม่สลับที่ มุมออยเลอร์จึงต้องระบุลำดับเสมอ เช่น Z-Y-X (yaw-pitch-roll)
การหมุนแกนเกี่ยวกับมอเตอร์ไฟฟ้าอย่างไร? การแปลง Park ในการควบคุมมอเตอร์แบบ field oriented control คือการหมุนแกน αβ ไปตามมุมโรเตอร์ θ ทำให้กระแสสามเฟสที่เป็นไซน์กลายเป็นค่าคงที่ i_d และ i_q ซึ่งควบคุมด้วย PI ได้ง่าย
มด
อาจารย์มด · ธีรวุฒิ แสวงบุญ อาจารย์สาขาวิชาวิศวกรรมไฟฟ้า มหาวิทยาลัยราชภัฏธนบุรี สมุทรปราการ · ดูโปรไฟล์
บทความอ่านง่ายเกี่ยวกับหัวข้อนี้
ดูบทความทั้งหมด →