---
# System prepended metadata

title: 馬達探索（歡迎修改及補充）
tags: [控制, 硬體, 軟體]

---

# 馬達探索（歡迎修改及補充）
###### tags: `硬體` `控制` `軟體`
[TOC]
## 物理補充
* [**向量(vector)**](https://zh.wikipedia.org/zh-tw/%E5%90%91%E9%87%8F):指一個同時具有 ==++大小和方向++==，且滿足平行四邊形法則的幾何對象。
    * 運動學中的位移、速度、加速度
    * 力學中的力、力矩
    * 電磁學中的電流密度、磁矩、電磁波
- [**外積(cross product)**](https://www.google.com/search?channel=fs&client=ubuntu&q=%E5%A4%96%E7%A9%8D)：
    - aka :叉積、叉乘、向量積（vector product)。
    - 三維空間中的兩個向量的[二元運算](https://zh.wikipedia.org/zh-tw/%E4%BA%8C%E5%85%83%E8%BF%90%E7%AE%97)，運算結果是向量。
    - 外積還依賴於定向或右手定。
- [**力矩(torque or moment)**](https://zh.wikipedia.org/zh-tw/%E5%8A%9B%E7%9F%A9) : 
    - 扭轉的力，aka 轉矩。
    - 推擠或拖拉涉及到作用力 ，而扭轉則涉及到力矩。
    - 力矩能夠使物體改變其旋轉運動。
    - 徑向向量$r$，與作用力$F$的外積，兩個向量的外積。
    - ![](https://upload.wikimedia.org/wikipedia/commons/0/09/Torque_animation.gif)
    - >Author:[Yawe](https://commons.wikimedia.org/wiki/File:Torque_animation.gif)
- [磁矩(electron magnetic moment)](https://zh.wikipedia.org/zh-tw/%E7%A3%81%E7%9F%A9) : 
    - 磁矩可以用向量表示。
    - ==外磁場的磁鐵，會感受到力矩==，促使其磁矩沿外磁場的磁場線方向排列。
    -  $τ$為力矩、 $B$為磁場：$τ=μ \times B$
        - $μ$為==磁偶極矩==，$I$為電流， $a$為面積向量： $μ=Ia$
        - ![](https://i.imgur.com/kW8FG79.png)
        - >[Author :RockMagnetist](https://en.wikipedia.org/wiki/File:LoopCurrentMagneticMoment.png)
        - [偶極子](https://zh.wikipedia.org/zh-tw/%E5%81%B6%E6%A5%B5%E5%AD%90)
    - 簡易離解 ：電流流過面積與磁場外積  
- [磁場 ＆ 磁鐵](http://wp.chjh.tp.edu.tw/blog/shingfu/files/2012/11/magetic.pdf)
    - 在磁鐵內部，由 S→N，如地球內部。
    - 在磁鐵外部，由 N→S。
- 反電動勢(BEMF)
    - Back ElectroMotive Force
    - Faraday定理
        - V~BEMF~$=-N\frac{\triangle(B*A)}{\triangle t}$，N為線圈匝數、A為面積、B為磁場大小。
        - ![](https://i.imgur.com/04RFRRT.png)
        - 將法拉電律轉換V~BEMF~$=\omega*k_e*sin(\theta+\phi)$，k~e~為常數、$\theta$為角度、$\omega$角速度，$\frac{\triangle B}{\triangle t}$磁通隨著時間的變化量為$\omega*sin(\theta+\phi$。
        - ![](https://i.imgur.com/TKbVPDE.png =50%x)
        - ![](https://i.imgur.com/S9W8xld.png =50%x)
        - ![](https://i.imgur.com/QsiRo1a.png =50%x)
        - [sensorless](https://www.youtube.com/watch?v=teeMdFaykPE&t=491s)

### 馬達基礎介紹
- [馬達小教室](https://vocus.cc/article/62c4f786fd897800014ccec8)

-------------------------------------------
-------------------------------------------
## 分類
- ![](https://i.imgur.com/63nolrm.png =75%x)
    - > [reference](http://www.smim.nchu.edu.tw/DP/mean/10902/%E9%A6%AC%E9%81%94%E7%89%B9%E6%80%A7%E8%88%87%E9%81%B8%E7%94%A8.pdf)
- **永磁同步馬達 (permanent-magnet synchronous motor):** 轉子用永久磁鐵，代替繞線的同步馬達
    - 徑向磁通永磁同
        - **表面式永磁（SPM）馬達：** 永久磁鐵在轉子的外側。
        - **內藏式永磁（IPM）馬達：** 永久磁鐵在轉子的內側。
- 永磁同步馬達和直流無刷馬達差異主要在==磁通及反電動勢==，++永磁同步馬++達的++反電動勢為弦波++，而++直流無刷馬達++的反電動勢為++接近方波的梯形波++。
    - 方波驅動的稱為BLDC；正弦波驅動的稱PMSM。
- **直流有刷馬達**
    - 利用電刷通過直流電及永久磁鐵產生磁場，而形成勞倫茲力(佛萊明左手定則)。
-------------------------------
### Stepper motor
- [wiki](https://en.wikipedia.org/wiki/Stepper_motor)
- [解說](https://www.youtube.com/watch?v=TWMai3oirnM&list=PL1KVSZBJtW0rHjU7qthPjwXhjSQ31a6zL&index=10)
- [解說](https://www.orientalmotor.com.tw/image/web_seminar/stkiso/20130307_stkiso_seminar.pdf?fbclid=IwAR2OxDE8xLtwn-UIK_b2_fF8N4sfxNzHuIus3LpKuIasXy8fiKXin9SR7-M)
- 結構三種種類
    - 電阻 :轉子沒有磁化性且軟鐵加工齒狀( nonmagnetized &soft-iron rotor)
    - 永磁 :轉子具有磁化性（magnetized rotor）
    - 混合 :轉子具有兩極磁性
        :::spoiler 混合步進說明 (請點開)
        - ![](https://i.imgur.com/p4zyMjw.png =50%x)
        - > [圖片出處](https://www.researchgate.net/figure/A-permanent-magnet-stepping-motor-6_fig6_313576027)
        - ![](https://i.imgur.com/CfjBgN8.png =70%x)
        -  > [出處 ＆完整介紹步進馬達](https://www.orientalmotor.com.tw/web_seminar/stkiso2-1-2/)
        :::
    - ![](https://i.imgur.com/BWkMcBh.png =70%x)
    - [補充說明](https://www.microchip.com/stellent/groups/SiteComm_sg/documents/DeviceDoc/en543047.pdf)  
- 線圈繞線方式
    - **Unipolar vs. Bipolar**
        - **unipolar:** 線圈電流只允許一方向流動，由正電流向接地。
        - **bipolar：** 線圈可以正電or負電流向接地。
        - ![](https://i.imgur.com/jnPmo3w.png)
        - > [圖片出處](https://toshiba.semicon-storage.com/ap-en/semiconductor/knowledge/e-learning/stepping-motor/chapter2/unipolar-type-and-bipolar-type.html)
    - **Unifilar vs. Bifilar**
        - **Unifilar :** 線圈纏繞只使用++一條++
        - **Bifilar :** 線圈纏繞使用++兩條++
        - ![](https://i.imgur.com/ncmCPNM.png =70%x)
        - > [圖片出處](https://www.shutterstock.com/zh/image-vector/unifilar-bifilar-trifilar-quadrifilar-coils-1601072479 )
    - Muti-stack
    - linear pulse motor 
#### 名詞解釋
- **步進角(step)**： 每輸入一個Plus，轉子可以移動的角度。 
    - $\theta=\frac{360^{\circ}}{解析度}$ ＆ $\theta=\frac{360^{\circ}}{拍數\backslash(相位)\times齒數（N極＋S極的總齒數）}$  
    - 拍數：完成 ==一個磁場週期性變化所需脈衝(plus)==，例：有四相四拍運行方式即AB-BC-CD-DA-AB or 四相八拍運行方式即 A-AB-B-BC-C-CD-D-DA-A。
        - > [reference](https://www.baike.com/wikiid/1197000289472825140?prd=mobile&view_id=534y1a9yoj8000)
    -  [FYI ](https://www.youtube.com/watch?v=eyqwLiowZiU&list=PLIBx3ROsA6Kc6sSrS1Ed6QaJOpxWE82RR)
    - [FYI ](https://www.youtube.com/watch?v=zlFoSqNqARA)
- **步進數：** $step (unit:stps/rev)=\frac{360^{\circ}}{\theta_{s}}$
- **電氣角(Electrical Angle)** ＝(P/2)x步進角；若一般直流馬達是(P/2)x機械角(360 $^\circ$)。
- **電氣角週期：** 完成u一個步進角，馬達四兩相四極，就是需要4個plus。
- **step angle accuracy**
    - **positional accuracy** :理論位置與實際位置之最大正值誤差及最大負值誤差幅度的一半。
    - **step position error** ：理論位置與實際位置之最大正值誤差及最大負值誤
    - **hysteresis error** ：馬達正轉與反轉一圈後，其測量的差值最大量

- 暫態響應
    - unit step respone
    - 追蹤特性
        - rise time
        - settling time
        - damping
        - resonance 
:::info
[Toshiba](https://toshiba.semicon-storage.com/ap-en/semiconductor/knowledge/e-learning/stepping-motor.html)
:::

------------------------
### 交流馬達
- ![](https://i.imgur.com/zaCvy6j.png)
- [單相](https://www.sphs.hc.edu.tw/ischool/public/resource_view/open.php?file=533ebc03c2845432220daa90c1238d96.pdf)
- [三相](https://www.sphs.hc.edu.tw/ischool/public/resource_view/open.php?file=1fa5ca546ec9e8788a522b7c88c5ac79.pdf)
    - Y接
    - :small_red_triangle:(dalta)接 
-----------------------
## 感測元件
### 編碼器
- [Coordinate Rotation Digital Computer](https://cloud.tencent.com/developer/article/1651716)
    - [Texas](https://www.youtube.com/watch?v=4HxdV5xEe9k)
    - [參考](https://gongkong.ofweek.com/2021-03/ART-310009-11000-30488770.html)
    - [程式](https://blog.csdn.net/Pieces_thinking/article/details/83512820)
    - 透過笛卡兒座標係確定兩點之間關係公式
        - ![](https://i.imgur.com/uBM9sgU.png =50%x)
        - $x_0= rcos\theta - (1)\\y_0= rsin\theta - (2)$ 
        - $x_1= rcos(\theta+\varphi)=rcos\theta  cos\varphi-rsin\theta sin\varphi\\y_1= rsin(\theta+\varphi)=rsin\theta cos\varphi+rcos\theta sin\varphi$ 將(1)(2)式子帶入
        - $x_1 =x_0cos\varphi-y_0sin\varphi\\y_1=y_0cos\varphi+x_0sin\varphi$
        - 將公式簡化為下圖是因為 
            - 对比可知每次旋转的角度是正确的，
            - 只是模值增大了1/cosθ
------------------------------
### 霍爾元件
------------------------------
## 控制
- 應用： 扭矩應用(N*M)、位置應用(RPM)以及速度應用($\theta$)。
### 硬體H橋
- [H橋控制](https://www.youtube.com/watch?v=-M_pQDIOcNo)
    - **Unipolar**
        - Q1 or Q2 常閉
        - Q3 &  Q4 做PWM控制
        - 電流會是單向流入二極體 0 -> (+VDC) or (-VDC) -> 0
        - ![](https://i.imgur.com/3kcerlS.png =30%x)
    - **Bipolar**
        - Q1&Q4  or Q2&Q3 最PWM正反轉控制
        - 馬達有反電動式(冷次定律)，導致會有二極體續流
        - (+VDC) -> (-VDC)  or (+VDC) <- (-VDC)
        - ![](https://i.imgur.com/6ExbCcH.png =30%x)
    - ![](https://i.imgur.com/Ukijxap.png)
---------------------------------------------
<!-- ### C4M_motor 控制方法
- 馬達在cmder GUI **馬達運轉**
    - Unbuntu終端機操作
        - /run.bat motor_iir_RC 4 3 run
    - cmder終端機操作
        - run motor_iir_RC 4 3 run
- 馬達在cmder GUI **馬達數據收集**
    - 觀看makefile資料說明
    - 操作方法舉例
        - make **clt_control_test** command_p=4 data_p=5 len=7 sz=800 mk=220721_1
:::info
[翔竣整理手冊](https://www.facebook.com/messenger_file/?attachment_id=553057736484220&message_id=mid.%24gABONT9rDWs-HJf1h9mA9Lfcex-jO&thread_id=5503398669671119)
[孔博論文](https://drive.google.com/drive/folders/1--ynlEPpBm3oMm23WkdAB8vXwhbV8i5b?fbclid=IwAR1rldFJuBZ5K39SNELh_QahHx90H1MY6IImpQEp-stQX-9lq0hte9qoTuQ)
[微控器](https://drive.google.com/drive/folders/1l0RM2WtE5D7gAa0xoY2MZPQt4-to6XAn)
::: -->

---------------------------------------------
### 軟體
### SVPWM 與 SPWM
![](https://i.imgur.com/NguOKXO.png)
- **SPWM (Sinusoidal PWM):** 利用脈波寬度調製占寬比調製。
    - 如需要1.5V的电压，我只有15V的直流电源，那么我让直流电源接通10%的时间，剩下90%的时间都不工作，这样就可以等效成1.5V了
    - ![](https://i.imgur.com/eHkwf5l.png)
- **SVPWM(Space Vector PWM):** 三相功率逆變器的六個功率開關元件組成，產生的脈寬調製波，輸出電流波形盡可能接近於理想的正弦波形。
    - 可以電壓和電流的幅值和角速度，還可以控制角度位置。
    - ![](https://i.imgur.com/K2DBFnR.png  =75%x)
    - 導通方式 120° or 180°
        - 一種是120°導通方式（兩兩導通，常用於BLDC的變頻調速），在任何時刻都只有不相同的兩隻主管導通，同一相的兩隻主管在一個週期內各導通120°
        - 另一種是180°導通方式（三三導通，用於PMSM），任何時刻都只有不相同的兩隻主管導通，同一相上下兩個橋臂的主管交替導通，各自導通半個週期（180°）
    - 開關每次組合等效圖
        - ![](https://i.imgur.com/tuuj6Mv.png =30%x)
        - 公式 $R+R /R+R=3/2R$
        - ![](https://i.imgur.com/gQIGvf9.png)
:::info
[SVPWM_推薦](https://zhuanlan.zhihu.com/p/303998608)
[SVPWM](https://blog.csdn.net/qq_43503713/article/details/111053661)
[SVPWM](https://blog.csdn.net/qlexcel/article/details/74787619)
[步進馬達SPVWM](https://www.wdfxw.net/doc13121944.htm)
:::

-------------------------------------------
### Full / Half / Micro-stepping
- FULL-STEP DRIVE
![](https://i.imgur.com/Q9AFdbE.png =80%x)
![](https://i.imgur.com/gJjHC9q.png =30%x)

- HALF-STEP DRIVE
![](https://i.imgur.com/zeBIXL9.png =60%x)
![](https://i.imgur.com/RpfqNXv.png =30%x)

- micro-stepping
![](https://i.imgur.com/b1lCSeF.png)
![](https://i.imgur.com/fqCbjdZ.png)

- 提醒
    - 越細越接近弦波，振動越小
    - 若輸入頻率過快，subdivision waveform will not be able to get the desired current waveform

:::info
[link text](https://www.automate.org/case-studies/what-is-the-difference-between-full-stepping-the-half-stepping-and-the-micro-drive
)
[好文章](https://novantaims.com/technology-blog/stepper-motor-basics-half-and-micro-stepping/)
:::

--------------------------------------------
### FOC
1. 將量測馬達三相(實際只要兩相)的BEMF
    - 由兩相電流可以推估是因為Kirchhoff Circuit Laws，所有電流相加等於0。
2. 在將三相BEMF經過數學的$\alpha\beta$向量的合成，
3. 在將合成向量轉換為d-q向量作為90$^\circ$垂直的施力(力矩90$^\circ$為最大概念) ，而計算出數值後，
4. 在加入到PID參數，經過一連串的逆轉換，得到三相弦玻。

:::info
[FOC雉暉君](https://zhuanlan.zhihu.com/p/147659820)
[FOC](https://zhuanlan.zhihu.com/p/147659820)
[FOC_C語言介紹](https://blog.csdn.net/qlexcel/article/details/95227991)
[FOC_C語言](https://www.cirmall.com/circuit/16544/)
[Field Oriented Control](https://www.youtube.com/watch?v=hVHHKv6KW0c&list=PLCo39oJ_0NZ5Y-epv32ilB4zIBuWJUmW4&index=26)
:::

### 弦波與梯形波(方波)控制
- [reference](https://lutron1980.pixnet.net/blog/post/172942740)
- 產生反電動勢，來量測位子。
- ![](https://i.imgur.com/jTvvaQd.png =50%x)
- 梯形波120$^\circ$
    - ![](https://i.imgur.com/M0DjVV4.png =50%x)
    - >Texas
    - 利用六步法控制
    - Hi-Z(高阻抗)"window"，可以量測反電動勢(BEMF)
    - 優點：
        - 因反電動勢，知道馬達位子，且控制效率極高。
        - 可以用於高速控制。
        - 簡單控制。
    - 缺點：
        - 有Torque ripple問題。
        - 且具有嚴重噪音。 
- 梯形波150$^\circ$
    - ![](https://i.imgur.com/yfbgH86.png =50%x)
    - 控制方法跟120度大略相同。
    - 主要採用此方法是，是因為要製造Pseudo-sinusoidal。
    - 優點：
        - 噪音問題比120度好一些。
    - 缺點：
        - 有Torque ripple問題。
        - 且量測反電動勢時間更緊湊。
- Sinusiudal
    - ![](https://i.imgur.com/qYfSq7i.png =75%x)
    - 利用SPWM or SVPWM來模擬正弦波。
    - 優點：
        - 可以改善梯形波的缺點。
        - 但時間可以測量反電動勢。
:::info
[ Comparison of commutation methods ](https://www.youtube.com/watch?v=InzXA7mWBWE)
[link text](https://www.youtube.com/watch?v=xIORHY8Ii90&t=508s)
:::
--------------------

## six-step-model
- [six-step](https://www.youtube.com/watch?v=9NCj6xf0-rs)
    - 就是三個半橋來控制，但因為半橋上下不能同時開，會造成短路，因此投影到在$\alpha\beta$圖裡面，以60度分隔為一個向量，總共有八總開法，可是上橋或下橋全開無作用，因此投影到圖上中心，因此剩下"六種控制步法"。


---------------------------------------------

### ESC(electric Speed controll)
- https://www.yiboard.com/thread-1214-1-1.html
- https://www.youtube.com/watch?v=uOQk8SJso6Q&list=PL1KVSZBJtW0rHjU7qthPjwXhjSQ31a6zL&index=4
- https://www.youtube.com/watch?v=OZNxbxL7cdc
- https://www.youtube.com/watch?v=yiD5nCfmbV0
- ![](https://i.imgur.com/ca9HHve.png)
- [遙控飛機馬達啟動說明](https://www.hobbywing.com/products/pdf/SkyWalkerV2cn.pdf?fbclid=IwAR2EiUP2TVTfOKSOxe5cZ1RiaUsfHq1xgL12HzN_lxeC56nSYMfD9vulaAw)
------------------------------------------------------
------------------------------------------------------
## 數學及演算法
### dq-axis 與 $\alpha\beta$-axis
- 將AC訊號轉為DC訊號，之後將DC進行計算及操作，在轉換為AC電輸出。
- 將正弦波與餘弦玻在時間訊號下，用正交標示，在投影space vector，而這過程就是==AC轉DC過程==。X軸名稱 $\alpha$，y軸稱為$\beta$![](https://i.imgur.com/zL6o085.png =70%x)
>Toutube : Design of photovoltaic systems
- 在經由$\alpha\beta$-axis轉換為dq-axis，而dq-axis永遠正交。![](https://i.imgur.com/k6NgATm.png =50%x)
>Toutube : Design of photovoltaic systems
- 假設一個振幅為R大小為re$^{j\theta}$，而可以改為歐拉公式標示：r($cos\theta+jsin\theta$)。
    - 將R投影在$\alpha\beta$-axis
        - R$_{\alpha\beta}$ =re$^{j\theta}$
    - 將R投影在dp-axis
        - R$_{dq}$ =re$^{j\theta-\rho}$下列推導過程
        - R$_{dq}$ =re$^{j\theta}\cdot e^{-j\rho}$
        - R$_{dq}$ =R$_{\alpha\beta}$ $\cdot e^{-j\rho}$
    - 推導結論
        - $\alpha\beta$-axis to dq-axis是 $\\R_{dq}=R_{\alpha\beta} \cdot e^{-j\rho}$
        - dq-axis to $\alpha\beta$-axis是$\\R_{\alpha\beta}=R_{dq} \cdot e^{j\rho}$
    - 而在這個dq-axis理論下，d永遠去追隨R，而q永遠垂直d，有力矩味道。
- ![](https://i.imgur.com/f0P6vza.png)

- 下方影片有三相弦波推導到$\alpha\beta$-axis。 
:::info
- [ dq-axis theory ](https://www.youtube.com/watch?v=UC5XjoHNQis)
- [dq-axis theory AC to DC transformations](https://www.youtube.com/watch?v=neWm1gtI_UA)
- [dq-axis theory DC to AC transformations](https://www.youtube.com/watch?v=qF5gIsHcoPE&t=667s)
- [ Single phase grid connection system ](https://www.youtube.com/watch?v=DLOV2IIn9iU)
- [SVPWM](https://zhuanlan.zhihu.com/p/414721065)
:::



--------------------------------------------
 ## 補充
- [ ] 环保节能型H桥及SPWM直流电源式逆变器
- 電氣角度=機械角度 x 極對數
- [步進角](https://highscope.ch.ntu.edu.tw/wordpress/?p=19250)
- [磁力偏心](https://www.planetanalog.com/magnetic-position-sensing-for-precision-control-in-robotics/?_ga=2.201527316.483163700.1658988248-938145978.1658762674&_gl=1*mg1q09*_ga*OTM4MTQ1OTc4LjE2NTg3NjI2NzQ.*_ga_ZLV02RYCZ8*MTY1ODk4ODI0OC4zLjEuMTY1ODk4ODI3OC4w)
<!-- - {%pdf http://ww1.microchip.com/downloads/en/appnotes/00822a.pdf  %} -->
- [馬達運動品質的電流控制方法
](https://www.eettaiwan.com/20170218ta31-improving-current-control-for-better-stepper-motor-motion-quality/?fbclid=IwAR2da6LntURxosPsayWuDr2BN6zsxun4p7XRL2Bqr8XJRHW6AAKbxpFCoPE)

### AR model 
- [dsp輸出正弦波](https://blog.csdn.net/weixin_42512699/article/details/117191998)

--------------------------------------------
## 控制板設計
- [參考](https://space.bilibili.com/15363421)

--------------------------------------------
# 書籍
## 步進馬達使用方法
- 若要使步進角越小，提高解析度則
    - 轉子極數對變多
    - 定子相數變多
- 步進馬達相數與特性關係
    - 高解析度:相數越高，能到較高解析度
        - 定位控制精度得到改善
        - 低速轉動失效得到改善
        - 複數步進定位控制，能得到改善阻尼。
    - 低振動化:轉矩漣波，愈多相者，麒麟接香與鄰接相的靜態轉矩曲線焦點轉矩值與最大靜止轉矩之比或差能小。
        - 轉矩漣波，越多相此值變小，對振動化有幫助。
    - 高速化 :多相步進馬達優點，能得到高速響應，步進馬達為同步馬達==線圈電流頻率與轉子轉速成正比==，若變成高速電流頻率引起電氣角速度 $\omega$ 增大，故與線圈電感$L$乘積，電抗$X_L=\omega(2\pi f) L$，高頻電流不容易建立，導致轉矩漸少。
- 若依照步進角公式 $\theta_s=360^\circ/2PN_r=180^\circ/PN_r\\P為相數、N_r極數對(N、S為極一對)$
    - 假設P=2，變成$\theta_s=90^\circ/N_r$，此時的$90^\circ$為電氣角表示的步進角。
- VR型馬達原理
    - 將轉子設計成多數磁構造，將利定子通電，形成轉子被吸引，產生轉矩，是HB步進馬達的做動原理
    - 而步進角＝360$\circ$/齒數/3   


## 筆記
- 步級角度誤差:為收到encoder的數值，減去 (encoder_count除於step)的真實Encoder_count。
- 倍頻率概念為:
    - 偏心誤差倍頻會比較低，因為馬達轉一圈時，偏心誤差週期性較慢產生。
    - 機械製造誤差倍頻率會比較高，因為機械製造週期性頻率較高，簡單說馬達轉一圈時，機械誤差的周期性會較快產生。
        - 上面說明的機械誤差，是指馬達磁鐵、線圈匝數或齒輪公差。
