日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SimpleFOC(八)—— 理论+实践 深度分析SVPWM

發布時間:2023/12/10 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SimpleFOC(八)—— 理论+实践 深度分析SVPWM 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 說明
  • 一、有感FOC控制原理
  • 二、SVPWM原理
  • 三、SimpleFOC(不帶電流采樣)的控制原理:
  • 四、SimpleFOC核心代碼
  • 五、代碼實驗
    • 5.1、實驗目的
    • 5.2、硬件準備
    • 5.3、修改代碼 第一階段
      • 5.3.1 打開例程
      • 5.3.2 修改代碼
      • 5.3.3 驗證上傳
      • 5.3.4 電機觀測
      • 5.3.5 修改力矩
      • 5.3.6 修改轉速
    • 5.4、修改代碼 第二階段
      • 5.4.1 修改代碼
      • 5.4.2 驗證上傳
      • 5.4.3 電機觀測
      • 5.4.4 串口操作
      • 5.4.5 觀察三相波形

SimpleFOC的教程比較多,做了一個總的鏈接,歡迎點擊閱讀:SimpleFOC教程鏈接匯總

說明

??SimpleFOC的基本操作在前幾節都已經演示過了,雖然還有很多沒演示的例程,但是觸類旁通,仔細琢磨下難度不大。
??網上關于FOC和SVPWM的文章很多,但大都偏理論,最多用matlab驗證下,本文通過程序演示驗證SVPWM算法,有助于對理論的理解。對理論沒興趣的同學可以跳過。
?

一、有感FOC控制原理


1、測量電機三相定子電流,可得到Ia 和Ib。將三相電流通過Clark變換至兩相電流Iα和Iβ ,
2、按照控制環上一次迭代計算出的電機角度, 通過Park變換得到旋轉坐標系下相互正交的電流Id和Iq,
3、Id、Iq與設定值進行比較得到電流環PI控制器的輸入。調節PI控制器的參數,得到Vd 和Vq ,即要施加到電機上的電壓矢量,
4、通過位置傳感器得到新的電機位置,從而得到新的角度和轉速。新的電機角度可告知 FOC算法下一個電壓矢量在何處,
5、通過使用新的電機角度,Vd 和Vq經過Park逆變換產生下一個正交電壓值Vα、Vβ,
6、采用SVPWM算法判定其合成的電壓矢量位于哪個扇區,計算出三相各橋臂開關管的導通時間,最后經過三相逆變器驅動模塊輸出電機所需的三相電壓。
?

二、SVPWM原理

??由三相功率逆變器的六個功率開關元件組成的特定開關模式產生的脈寬調制波,能夠使電機電流波形盡可能接近于理想的正弦波形。
??請看下面這兩片文章:
《SVPWM算法原理及詳解》https://blog.csdn.net/qlexcel/article/details/74787619,
《SVPWM分析、各個扇區詳細計算以及Matlab仿真》https://blog.csdn.net/michaelf/article/details/94013805,
??推導的結果是一樣的,


??實際上大部分文章的SVPWM的算法結果都是這樣。我覺得這個結果主要是針對無感FOC的算法,無感FOC需要根據Vα和Vβ來確定扇區和角度,但是對于有位置傳感器,特別是有編碼器的電機來說可以直接獲取角度,上面的推導計算過頭了。
?

三、SimpleFOC(不帶電流采樣)的控制原理:


??首先去掉了電流采樣,所以簡單了很多,有位置傳感器,所以不用觀測器估算位置。對空間矢量作用時間可以直接利用下面的公式(這些公式來自《SVPWM分析、各個扇區詳細計算以及Matlab仿真》算法推導的中間狀態,《SVPWM算法原理及詳解》只寫了第一個扇區):

對照矢量圖,可以總結如下:

Udc表示電源電壓(在代碼中是voltage_limit),Uref表示設置的力矩大小(在代碼中是target_voltage),Ts表示PWM周期(代碼中沒有把Ts體現出來,代碼中的T1、T2是周期的百分比)。
??

四、SimpleFOC核心代碼

??在simpleFOC工程中,先來看下被創作者稱之為核心的代碼(代碼路徑: …\Arduino-FOC-minimal\library_source\ BLDCMotor.cpp)

??輸入變量Uq、Ud和角度θ,計算出3路PWM占空比。對照上面的SimpleFOC原理框圖,一個函數基本就把主要工作做完了,確實是核心。
??

五、代碼實驗

5.1、實驗目的

??通過設置不同的Ud和θ角度實現不同的波形輸出,并將三相輸出波形與SVPWM的理論波形做對比。
??本實驗分兩個階段來完成,第一階段先直觀感受下SVPWM參數對電機運轉的影響,第二階段電機三相輸出波形與理論做對比。

5.2、硬件準備

序號名稱數量
1Arduino UNO1
2simpleFOCShield V2.0.31
3云臺電機1
412V電源1
5方口USB線1


按照開環模式連接

??

5.3、修改代碼 第一階段

5.3.1 打開例程

5.3.2 修改代碼

??simpleFOC工程以庫的形式安裝到Arduino中,不能修改底層代碼,所以只能把代碼復制出來,以子程序的形式放到當前程序中。之所以選擇standalone例程,是因為這個例程比較簡單,而且本身就是演示矢量控制的。
??①、增加SVPWM算法的子程序
??②、loop循環中調用子程序
??例程為只讀文件,可以驗證上傳,如需保存要“另存為”。

SVPWM子程序(為了讓代碼看起來更簡潔,所以程序中沒有約束條件,參數設置一定要按要求范圍輸入):

void setPhaseVoltage(float Uq, float Ud, float angle_el) {int sector = (angle_el / _PI_3) + 1; // find the sector we are in currentlyfloat T1 = _SQRT3*_sin(sector*_PI_3 - angle_el) * Uq/driver.voltage_limit;float T2 = _SQRT3*_sin(angle_el - (sector-1)*_PI_3) * Uq/driver.voltage_limit;float T0 = 1 - T1 - T2;float Ta,Tb,Tc; switch(sector){case 1:Ta = T1 + T2 + T0/2;Tb = T2 + T0/2;Tc = T0/2;break;case 2:Ta = T1 + T0/2;Tb = T1 + T2 + T0/2;Tc = T0/2;break;case 3:Ta = T0/2;Tb = T1 + T2 + T0/2;Tc = T2 + T0/2;break;case 4:Ta = T0/2;Tb = T1+ T0/2;Tc = T1 + T2 + T0/2;break;case 5:Ta = T2 + T0/2;Tb = T0/2;Tc = T1 + T2 + T0/2;break;case 6:Ta = T1 + T2 + T0/2;Tb = T0/2;Tc = T1 + T0/2;break;default: // possible error stateTa = 0;Tb = 0;Tc = 0;}// calculate the phase voltages and centerfloat Ua = Ta*driver.voltage_limit;float Ub = Tb*driver.voltage_limit;float Uc = Tc*driver.voltage_limit;driver.setPwm(Ua,Ub,Uc); }

5.3.3 驗證上傳

5.3.4 電機觀測

??上電后電機開始轉動,當前的轉動方式其實就是開環速度模式。

5.3.5 修改力矩


??修改Uq值(范圍0—6.928),重新驗證上傳,會發現電機的力矩改變了,如果有萬用表會發現電機的工作電流隨Uq等比例改變。

??注意:Uq值設置越大,力矩越大,電流越大,電機發熱越嚴重。

5.3.6 修改轉速


??修改角度增量,重新驗證上傳,會發現電機的轉速改變了,
??注意:增量越大電機轉速越快,增量太大電機會因失步變振動。
??

5.4、修改代碼 第二階段

??

5.4.1 修改代碼

??在第一階段程序的基礎上,
??①、增加了串口通信子程序,實現通過串口設置電機的電角度,
??②、通信程序放入主循環
??③、角度值由上一節的循環增加變為串口設置。注意為了更加直觀,串口設置的角度單位為“度”,所以會有“度”轉換為“弧度”的計算。

串口通信子程序:

void serialReceiveUserCommand() {// a string to hold incoming datastatic String received_chars;while (Serial.available()) {// get the new byte:char inChar = (char)Serial.read();// add it to the string buffer:received_chars += inChar;// end of user inputif (inChar == '\n') {// change the motor targettheta = received_chars.toFloat();Serial.print("Target Angle:");Serial.println(theta);// reset the command bufferreceived_chars = "";}} }

5.4.2 驗證上傳

5.4.3 電機觀測

??程序運行后,電機固定在0度位置,類似開環位置模式。

5.4.4 串口操作

??通過串口發送角度值(直接發送數字,范圍0—359),電機運動到指定的角度。(此時的角度為電角度,所以電機在一個很小的范圍內運動。比如當前用的電機為7對極,電機從0轉動到360度,轉過了電機的1/7圈。電角度和機械角度的概念請自行百度。)

5.4.5 觀察三相波形

??串口輸入角度,示波器查看三相輸出波形,并與理論做對比。(示波器只有兩個通道,所以三相波形只能通過拼接得到)

①、30度

②、90度

③、150度

④、210度

⑤、270度

⑥、330度

??
??順便說下,Arduino UNO 的PWM頻率是31.25KHz。16MHz晶振,時鐘不分頻,PWM模式為相位校正模式(Phase Correct PWM Mode,在STM32中稱之為 中央對齊模式),16000/256/2=31.25KHz。
??下面是PWM的配置代碼(代碼路徑:…\Arduino-FOC-minimal\library_source\drivers\hardware_specific\atmega328_mcu)

?
?
??本文涉及理論的部分寫的很籠統,存在用詞不準確,語句不通順的問題,請大家不要太糾結,做為一名合格的工程師就是要把科研人員的理論轉變為可以落地的代碼,理論不是我的強項也不是我的目標。
?
?
(完)
?
歡迎加入simpleFOC技術交流群:923734429 群已滿根據提示添加新群 (入群申請寫:CSDN)
?
請繼續閱讀相關文章:
SimpleFOC(一)—— 簡介(附有文件下載鏈接)
SimpleFOC(二)—— 快速入門 (開環控制)
SimpleFOC(三)—— AS5600角度讀取
SimpleFOC(四)—— 閉環控制
SimpleFOC(五)—— 雙電機控制
SimpleFOC(六)—— PowerShield和AS5047P
SimpleFOC(七)——STM32(Bluepill)的應用
SimpleFOC(八)—— 理論+實踐 深度分析SVPWM
SimpleFOC(九)—— 霍爾電機控制

總結

以上是生活随笔為你收集整理的SimpleFOC(八)—— 理论+实践 深度分析SVPWM的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 在线综合色 | 一区不卡视频 | 中文字幕在线播放日韩 | 国产在线黄色 | 国产成人免费在线观看 | 亚洲AV乱码国产精品观看麻豆 | 久久久久久久9999 | 久操福利在线 | jizz处女| 欧美一级在线观看视频 | 国产一区二区三区日韩 | 欧美挤奶吃奶水xxxxx | 一区二区在线视频 | 热99这里只有精品 | 国产成人免费在线视频 | 亚洲美女中文字幕 | 久久精品夜色噜噜亚洲a∨ 中文字幕av网 | 丰满少妇在线观看资源站 | 美女在线免费视频 | 黑人操欧美人 | 欧美精品1区| 婷婷中文在线 | 久久激情网站 | 夜晚福利视频 | 午夜成人鲁丝片午夜精品 | 久久aⅴ国产欧美74aaa | 久久九九视频 | 欧美亚洲伦理 | 久久国产精品免费视频 | 人人草人人 | 成人一级生活片 | 美女试爆场恐怖电影在线观看 | av导航站 | 午夜家庭影院 | 中文字幕在线导航 | 国产精品一二三四区 | 国产一区一区 | www.色香蕉 | 无码一区二区三区在线 | 黄色免费在线网站 | 久草福利在线观看 | 中文字幕人妻熟女在线 | 久热精品免费视频 | 夜色成人 | 国产精品15p | 日韩极品在线观看 | 成人av电影在线播放 | a毛片在线 | 永久免费不卡在线观看黄网站 | 国产高清视频在线免费观看 | 亚洲精品国产成人无码 | 亚洲视频网址 | 黄视频在线免费看 | 国产寡妇亲子伦一区二区三区四区 | 欧美精品99久久久 | 人妻中文字幕一区 | 动漫3d精品一区二区三区乱码 | 在线免费播放av | 波多野结衣黄色 | 国产伦精品一区二区 | 亚洲午夜久久久久久久久红桃 | 亚洲天堂伊人网 | 91蝌蚪少妇偷拍 | 一区二区三区视频在线观看 | 欧美综合视频在线 | 放荡的美妇在线播放 | 大乳村妇的性需求 | 国内视频自拍 | 黑丝美女av | 欧美嫩草影院 | 高清不卡一区二区三区 | 高清视频一区二区三区 | 男人和女人日批 | 日韩丰满少妇无码内射 | 欧美亚洲韩国 | 欧美日韩高清一区二区 国产亚洲免费看 | 国产精品久久精品 | 男男野外做爰全过程69 | 免费看三级黄色片 | 玖草在线观看 | 久久国产成人 | 色屁屁www| 日韩国产精品一区二区 | 少妇扒开粉嫩小泬视频 | 亚洲成人精品一区二区 | 国产成人精品亚洲日本在线观看 | 91免费观看网站 | 嫩操影院 | 日本xxxxwwwww| 亚洲欧洲另类 | 亚洲精品黄色 | 草视频在线 | aaa久久| 在线免费看污片 | 刘亦菲久久免费一区二区 | 在线视频中文字幕 | 蜜桃av免费看 | 艳母日本动漫在线观看 | 精品成人一区二区三区久久精品 |