--- tags: TI instaspin --- # Motor技術研習 HI ALL 這邊未來規劃6堂課供各位快速上手專案[TI_instaspin_indoor_smart_trainer ](https://github.com/TomT0329/TI_instaspin_indoor_smart_trainer)。這分文件大家都可以編輯跟閱讀,有甚麼學理跟新發現還有心得都可以整理在這裡供大家參考,算是一份共筆可以提升學習速度,另外如果在這裡提出問題,我有看到都會回覆請多加利用。除了Clickup以外各種[文件資料](https://hackmd.io/@TomT0329)和[模擬檔案/論文](https://drive.google.com/drive/folders/1TgYMjGAKQsvRNXjpr945gcZa70xunzCD?usp=sharing),另外有關於各種資料看不懂的地方歡迎回饋我會想辦法簡單修改。 ![](https://i.imgur.com/6ulH6yv.png) ## DAY0 開發環境建置 ### Getting START - [x] windows CCS + git bash環境設定 - [x] 詳細閱讀github上的Readme file - [x] 大板子(drv8301-hc-evm)+neo馬達 成功run - [x] 用差動碳棒 current probe量測波型 - [x] 小板子(DRV8300DRGE) + neo馬達成功run +量測波型 - [x] 小板子+隨便一顆馬達 成功run並且量測波型 - [x] 詳細study user.h了解裡面有關於lab1b所需參數的意義 (馬達參數與驅動板參數)==可閱讀TI instaspin文件搭配我的筆記== - [x] 詳細閱讀目前兩塊驅動板的sch - [x] 學習git版本控制 :dart: [V/F control and lab01 我的筆記閱讀這裡](https://hackmd.io/Ez8wGv0RTmCtK8G1QkHDAw#LAB1-%E7%A1%AC%E9%AB%94%E9%A9%97%E8%AD%89) :dart: [inverter參數 馬達參數 讀這裡](https://hackmd.io/Ez8wGv0RTmCtK8G1QkHDAw#SDK-inverter%E5%AE%A2%E8%A3%BD%E5%8C%96%E5%8F%83%E6%95%B8%E8%A8%AD%E5%AE%9A) :dart: [專案Readme.md閱讀](https://github.com/TomT0329/TI_instaspin_indoor_smart_trainer) :dart: [Git 教學和 GitHub 設定指引](/pVhVnxgPT8-He_SYCrDRKA) :dart: [HOW TO SEND COMMIT?](https://cbea.ms/git-commit/) :dart: [What is markdown?](https://www.casper.tw/development/2019/11/23/ten-mins-learn-markdown/) --- ### V/F control (LAB 01b) 這邊是第一次實驗的作業 1.實驗心得 2.目前問題 這邊都可以打上各自的心得/問題,我有看到都會想辦法回覆。 EX: **TOM** 1. 目前關於這個LAB我覺得,因為是開路控制會造成馬達驅動電流過大,但為甚麼?? 1. V/F control需要的馬達參數有.... 2. V/F control可以用在哪裡? 為甚麼要有v/f control? 3. `git log --oneline` `git push` `git pull` `git stash` `git commit -a`這些指令都在幹嘛? --- ![](https://i.imgur.com/ZOXGf8b.png =50%x) #### JACK #### ERIC 問題一: ![](https://i.imgur.com/bDtepnT.png) DRV8300驅動板 ![](https://i.imgur.com/ARi2X78.png) DRV8301驅動板 乍看之下,沒有很大差異,但據稱量測的ADC訊號極性完全不同?? 問題二: 小板子DRV8300有辦法接encoder嗎??? 但紅色MCU板子似乎有QEP的pin 能否簡單講解encoder?? #### Will 1. /* :dart: V/F control and lab01 我的筆記閱讀這裡 :dart: inverter參數 馬達參數 讀這裡 */ 這兩個連結尚未有閱讀權限,再麻煩開通了 2. ![](https://i.imgur.com/3bUK9my.png) ![](https://i.imgur.com/0onO2NT.png) 這個是小板的驅動電路,SNx與SPx是相電阻的接點,接到後面的OPA電路不太清楚用法,,應該是測量相電流的電路,再麻煩講解了。 3.![](https://i.imgur.com/7aNa7fL.jpg) BL90M2 馬達測試OK 4.![](https://i.imgur.com/uivkOVl.png) 邏輯分析儀量到的PWM波型。 其中使用#define USER_PWM_FREQ_kHz 來定義PWM的速度 5. TI的文件-InstaSPIN-FOC™ 和InstaSPIN-MOTION™ 用户指南 [https://e2echina.ti.com/cfs-file/__key/communityserver-discussions-components-files/56/_2875376207635753_fInstaSPIN_2D00_FOC_2221_-_8C54_-InstaSPIN_2D00_MOTION_2221_.pdf](https://) USER_IQ_FULL_SCALE_FREQ_Hz 使用者定義的滿量程頻率 USER_IQ_FULL_SCALE_VOLTAGE_V 使用者定義的IQ滿量程電壓 例如DRV8300DIPW (**小板最大電流30A**) #define USER_ADC_FULL_SCALE_VOLTAGE_V (110.3025) 3.3V/(2^12)X110.3025=0.0888667602539063 0.0888667602539063在除相電阻0.003=**29.62A** USER_IQ_FULL_SCALE_CURRENT_A 使用者定義的IQ滿量程電流 USER_ADC_FULL_SCALE_CURRENT_A 使用者定義的ADC滿量程電流 BL90M規格[https://www.motiontech.com.tw/motor/bl90m/](https://) 24VCD 350w 16A 3000RPM 8P12S 其中 #define USER_MOTOR_NUM_POLE_PAIRS (4) 這邊要填對數 也就是8/2=4 USER_MOTOR_Rs Y接時的電阻 USER_MOTOR_Ls_d 使用手冊都是寫平均定子電桿 USER_MOTOR_Ls_q 使用手冊都是寫平均定子電桿 差異是? USER_MOTOR_RATED_FLUX 甚麼是總磁鍊? #define USER_MOTOR_MAX_CURRENT (12.8) 12.8A是怎麼來的呢? TOM->上述問題與SDK參數設定和硬體電路設定有關DAY1一併講解。 #### Benson 1. 有出現一個無法燒錄的現象,無法開啟../debug/xxx.out檔案。 類似![](https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/908/0027.cap.png =50%x) 有可能是板子壞掉了。 2. IDE當機,無法正常進入燒錄/偵錯模式,可以試著刪除工作環境設定檔,位置 => C:\Users\username\workspace_v12 資料夾。 #### 林聖義 ## DAY1 環境參數鑑別LAB2 LAB3 LAB5 **drv8300小板子 做lab3b drv8301大板子 做lab2a lab3b lab5c** ### 馬達參數鑑別 - [ ] D-Q轉換(clarke and park) - [ ] 拉式轉換 - [ ] PID 控制器 feedback control - [ ] LAB2a 鑑別馬達電氣參數 - [ ] 鑑別原理 - [ ] 馬達參數介紹(Ld Lq Rs) - [ ] What is LTI system? ### SDK客製化參數設定 - [ ] LAB3a ADC offset - [ ] 電路板參數設定 - [ ] IQ system ### J,B參數鑑別 - [ ] LAB5C(motion) 只能用drv8301 用default程式 ### 目前問題 這邊都可以打上各自的心得/問題,我有看到都會回覆。 ![](https://i.imgur.com/ZOXGf8b.png =50%x) #### JACK ... #### ERIC ... #### Will ... #### Benson ... #### 林聖義 ... ## DAY2 FOC控制系統 LAB11 ### 電流迴路 - [ ] current PI controller - [ ] Bode Plot介紹 - [ ] 電流迴路bandwidth設計 - [ ] PWM頻率 vs 系統頻寬 - [ ] Sampling theorem ### 速度迴路 - [ ] speed PI controller - [ ] FOC做動原理(電動車例子) - [ ] Id Iq說明 - [ ] speed loop bandwidth - [ ] FOC內外迴路頻寬介紹 ### TI instaspin LAB11 code review - [ ] Gobal參數 - [ ] DCBUS regulate功能(7th switch) - [ ] main function - [ ] pid參數設定(Gain、Kp、Ki、min、max、ui歸零) - [ ] 角度補償 - [ ] Clarke park運算 - [ ] 無感測驅動lab11 vs lab21(Sliding mode、HFI) - [ ] Inverter架構介紹(with 7th switch) ### 目前問題 這邊都可以打上各自的心得/問題,我有看到都會回覆。 ![](https://i.imgur.com/ZOXGf8b.png =50%x) #### JACK ... #### ERIC ... #### Will ... #### Benson 1. 若有出現you require a target configuration to start a debug session ![](https://imgur.com/MK9yZgv.png =50%x) 則可以到 view -> target configuration 內進行選取target ![](https://imgur.com/jbMf6i8.png =50%x) [Reference url](https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/581433/ccs-tms320f28069m-you-require-a-target-configuration-to-start-a-debug-session) 2. ... #### 林聖義 ... ## DAY3 核心算法-阻抗控制 ### Note https://github.com/simplefoc [阻抗控制簡介](/uuxLZHLURaqnxXp2EU0oYg) [控制系統 基礎複習](/0qwSD4cVTQS2Qx-XD3Q_CQ) [static inline](https://hackmd.io/3O3oe0aZTo2JxPM_zTEUJA#static-inline-function) ### 電路架構 and 位置sensor - [ ] HALL Enoder - [ ] Inverter介紹 ### 阻抗控制 - [ ] 彈簧範例簡介 - [ ] observer原理介紹 - [ ] PI type observer - [ ] reference model ### 阻抗控制實現 - [ ] TI instaspin `PIDhandle` - [ ] static inline function - [ ] PID控制器實現 - [ ] 數位控制Z轉換 - [ ] MATLAB實際模擬 ### 目前問題 這邊都可以打上各自的心得/問題,我有看到都會回覆。 ![](https://i.imgur.com/ZOXGf8b.png =50%x) #### JACK ... #### ERIC ... ![](https://i.imgur.com/ItgLzhP.png) #### Will ... #### Benson ... #### 林聖義 ... ## DAY4 未來規劃 ### UART debug ### 無感測模式選擇 ### 速度控制器響應 ### 心得分享與討論 ### 目前問題 這邊都可以打上各自的心得/問題,我有看到都會回覆。 ![](https://i.imgur.com/ZOXGf8b.png =50%x) #### JACK ... #### ERIC ... #### 魏晁偉 ... #### Benson ... #### 林聖義 >- 在改MW_FRIVER板子腳位定義時,不知道這段電路的ITRIP及Fault要設為什麼, ITRIP是經由U11偵測Y = A | B | C,我的理解是將ITRIP設為GPIO input中斷來處理過流時的行為,但後面的施密特觸發器有何用意?Fault腳位不是會和ITRIP一樣嗎? ![](https://i.imgur.com/bxtJNRd.jpg)