在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

博文 | 使用 NXP RT1170 的 QDC 外設與增量編碼器測量電機轉速

大大通 ? 2022-09-13 14:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1.概述

2.正交編碼器信號與測速方法介紹

3.RT1170 QDC 解碼器用于測速的寄存器介紹

4.軟件中的測速處理流程

5.測速處理代碼

6.測試方法

7.測試結果

8.參考資料

1. 概述

電機控制中,大部分都有速度環控制,電機轉子速度的獲取可以從絕對值編碼器直接讀取、測量霍爾編碼器每隔 60 °的脈沖信號時間進行計算、測量增量編碼器多個脈沖(M 法)或單個脈沖之間(T 法)的時間來計算, 本文主要講述如何使用 NXP RT1170 的增強型 QDC 外設和增量編碼器測量電機轉子速度的方法。

2. 正交編碼器信號與測速方法介紹

正交編碼器輸出 A、B、Z 信號,3 個信號都為方波信號,當電機正向旋轉時,A 信號超前 B 信號 90 度,反轉時 B 信號超前 A 信號 90度,Z 信號為歸零信號,轉子轉一圈產生一瞬間的脈沖信號,主要用于圈數計數或 A、B 信號的脈沖數歸零,下圖為編碼器 A、B 信號示意圖,圖片來自 RT1170 參考手冊。

速度的測量的可以通過讀取編碼器的脈沖計數(兩次速度環控制周期之間的脈沖數)計算出間隔角度,RT1170 的 QDC 自動捕獲兩次速度環之間脈沖數的定時器計數,從而知道時間:T = 定時器計數 * (1/定時器頻率)。

當兩次速度環之間有多個脈沖時,相當于 M 法測速;當電機速度很快,中間只有一個脈沖計數時,相當于 T 法。

3fcfae66-3085-11ed-9ade-dac502259ad0.png

3. RT1170 QDC 解碼器用于測速的寄存器介紹

RT1170 的 QDC 外設檢測 A、B 信號邊沿(可開啟濾波和反向),判斷相位關系,對位置寄存器 UPOS、LPOS 進行加或者減操作,當反向時,寄存器 CTRL2 的 DIR 位給出方向信息。

在速度環中每次讀取 POSD 寄存器時,QDC 自動將保存兩次速度環之間的脈沖差值的 POSD 保存到 POSDH,同時清零 POSD,同時將這些脈沖之間所經過脈沖計數由POSDPER保存到POSDPERH 供軟件讀取。

LASTEDGE( Last Edge Time Hold Register )對兩次脈沖數之間進行計數,主要用于 T 法測速和 0 速檢測(當 LASTEDGE 計滿溢出時判斷為速度為 0 速,因為長時間沒有脈沖邊沿產生)。

下圖為 QDC 外設信號流程和寄存器框圖。

3fe46536-3085-11ed-9ade-dac502259ad0.png

4. 軟件中的測速處理流程

如圖所示,當兩次速度環之間有脈沖數時,即 POSDH 不為 0 時,使用脈沖數除以時間的方式進行速度計算,按下圖左方處理,如果兩次速度環之間有方向變化判定為 0 速(剛好反向的情況)。

如果兩次速度環周期之間沒有脈沖,則使用 LASTEDGEH 來進行速度估算,因為電機速度太低,長時間沒有脈沖產生,如果電機是勻速的,估算的速度就比較準確的,根據方向使用 Speed = C/M 計算,當 LASTEDGEH 太大時,判定電機停止為 0 速。

400a9620-3085-11ed-9ade-dac502259ad0.png

5. 測速處理代碼

QDC 測速代碼,其處理和上圖中的處理流程一致,軟件只需要較少的操作即可計算出速度。代碼如下所示:

其他初始化代碼詳見工程文件。

bool_t MCDRV_EncSpeedCalUpdate(enc_block_t *this)
{
  int64_t i64Numerator;
  
  s_statusPass = FALSE;
  
  // Read POSDH, POSDPERH and LASTEDGEH
  this->ui16Dummy = this->pENC_base->POSD;
  this->sSpeed.i16POSDH = this->pENC_base->POSDH;
  this->sSpeed.ui16POSDPERH = this->pENC_base->POSDPERH;
  this->sSpeed.ui16LASTEDGEH = this->pENC_base->LASTEDGEH;
  
  // POSDH == 0
  if(this->sSpeed.i16POSDH != 0)
  {
    // Shaft is moving during speed measurement interval
    this->sSpeed.i16PosDiff = this->sSpeed.i16POSDH;
    this->sSpeed.ui16Period = this->sSpeed.ui16POSDPERH;
    this->sSpeed.ui16Period_1 = this->sSpeed.ui16Period;
    
    if(this->sSpeed.i16PosDiff > 0)
    {
      this->sSpeed.i8SpeedSign = 1;
    }
    else
    {
      this->sSpeed.i8SpeedSign = -1;
    }
    
    if(this->sSpeed.i8SpeedSign == this->sSpeed.i8SpeedSign_1)


{
// Calculate speed
i64Numerator = ((int64_t)(this->sSpeed.i16PosDiff) * this->sSpeed.f32SpeedCalConst); // Q16.0 * Q5.27 = Q21.27
this->sSpeed.f32Speed = (i64Numerator / (uint32_t)(this->sSpeed.ui16Period))<<4; // Q5.27 -> Q1.31
}
else
{
this->sSpeed.f32Speed = 0;
}
this->sSpeed.i8SpeedSign_1 = this->sSpeed.i8SpeedSign;
}
else
{
// Shaft is NOT moving during speed measurement interval
this->sSpeed.ui16Period = this->sSpeed.ui16LASTEDGEH;


if((uint32_t)(this->sSpeed.ui16Period) > 0xF000UL)
{
// Shaft hasn't been moving for a long time
this->sSpeed.f32Speed = 0;
this->sSpeed.i8SpeedSign_1 = this->sSpeed.i8SpeedSign;
}
else
{
// Speed estimation in low speed region
if(this->sSpeed.ui16Period > this->sSpeed.ui16Period_1)
{
if(this->sSpeed.i8SpeedSign > 0)
{
i64Numerator = ((int64_t)(1.0) * this->sSpeed.f32SpeedCalConst);
this->sSpeed.f32Speed = (i64Numerator / (uint32_t)(this->sSpeed.ui16Period))<<4;
}
else
{
i64Numerator = ((int64_t)(-1.0) * this->sSpeed.f32SpeedCalConst);
this->sSpeed.f32Speed = (i64Numerator / (uint32_t)(this->sSpeed.ui16Period))<<4;
}
}
}
}
this->sSpeed.f16SpeedFilt = GDFLIB_FilterIIR1_F16(MLIB_Conv_F16l(this->sSpeed.f32Speed), &this->sSpeed.sENCSpeedFilter);
this->sSpeed.fltSpeed = MLIB_ConvSc_FLTsf(this->sSpeed.f16SpeedFilt, this->sSpeed.fltSpeedFrac16ToAngularCoeff);


return s_statusPass;
}

6.測試方法

使用其他電機拖動帶增量編碼器的伺服電機穩定轉至 1500 RPM,使用激光測速儀進行測速,伺服電機的增量編碼器信號是差分信號,經過功率板將差分信號轉換到單端信號,最后連接到 RT1170 開發板 ENC1 對應的 GPIO 口中,如果電機增量編碼器 AB 輸出信號單端信號可直接連接至 RT1170 開發板。

最后可以在 IAR 中通過 LiveWatch 窗口查看速度變量,檢查與用激光測速器測的速度是否一致。

40451f8e-3085-11ed-9ade-dac502259ad0.jpg

拖動伺服電機轉至 1500RPM

407080ac-3085-11ed-9ade-dac502259ad0.png

信號連接實物圖

40d39962-3085-11ed-9ade-dac502259ad0.png

AB 信號連接原理圖

7. 測試結果

IAR DEBUG 后,在 IAR 的 live Watch 窗口中查看 Encoder_Measure_SpeedRPM 變量,其值為 1500RPM 左右,說明測速還是比較準確的。

40ec197e-3085-11ed-9ade-dac502259ad0.png

參考資料

參考手冊:

IMXRT1170RM.pdf

i.MX RT1170 Processor Reference Manual

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 電機
    +關注

    關注

    143

    文章

    9271

    瀏覽量

    148769
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    如何禁用i.MX RT1170 MCU中的M4內核?

    如何禁用 i.MX RT1170 MCU 中的 M4 內核? 您能否提供具體的可行方法? 或者是否可以將內核的工作時鐘頻率降低到 0 ?
    發表于 04-09 07:28

    在IMX RT1170的POR期間,PWM引腳變為高電平是怎么回事?

    我使用GPIO_AD_00生成 PWM 信號,并且工作正常。但是當我在 RT1170 中執行 POR作時。然后 PWM 引腳變高,直到電路板啟動。啟動后,它按預期生成 PWM 信號。但我不希望 PWM 引腳在執行 POR 時變為高電平,直到電路板啟動。您能否就此問題幫助我。
    發表于 03-31 08:22

    RT1170EVKB如何設置CM7和CM4內核來實現它們自己的看門狗外設

    RT1170 EVKB 評估板的看門狗驅動程序示例似乎只適用于CM7內核。 給定一個基本的雙核應用程序,我應該如何設置 CM7 和 CM4 內核來實現它們自己的看門狗外設?如果 CM7
    發表于 03-17 07:03

    伺服電機編碼器怎么選型

    伺服電機編碼器的選型是一個綜合性的過程,需要考慮多個因素以確保所選編碼器能夠滿足系統的性能要求。以下是一些關鍵的選型步驟和考慮因素: 一、明確應用需求 首先,需要明確伺服電機
    的頭像 發表于 03-11 12:01 ?598次閱讀
    伺服<b class='flag-5'>電機</b><b class='flag-5'>編碼器</b>怎么選型

    增量編碼器原理介紹

    增量編碼器是一種將位移信息轉換成周期性電信號,再將電信號轉換成脈沖計數的裝置。
    的頭像 發表于 03-03 10:21 ?877次閱讀
    <b class='flag-5'>增量</b>式<b class='flag-5'>編碼器</b>原理介紹

    伺服電機編碼器故障及維修

    伺服電機編碼器故障及維修,伺服電機編碼器4大常見故障,編碼器信號丟失或不穩定,編碼器零點偏移,
    的頭像 發表于 01-21 14:49 ?1640次閱讀
    伺服<b class='flag-5'>電機</b><b class='flag-5'>編碼器</b>故障及維修

    伺服電機編碼器

    在現代工業自動化和控制系統中,伺服電機編碼器扮演著至關重要的角色。它能夠精確測量電機的位置、速度和方向,為系統提供準確的反饋信息,實現高精度的運動控制。伺服
    的頭像 發表于 01-20 14:01 ?778次閱讀
    伺服<b class='flag-5'>電機</b><b class='flag-5'>編碼器</b>

    增量編碼器單圈和多圈怎么知道,如何分辯?

    在工業自動化領域,增量編碼器是一種常用的測量設備。殊不知,不少人在面對增量編碼器時,經常會對單圈和多圈的類型困惑不已,不知道該如何準確區
    的頭像 發表于 01-09 16:40 ?645次閱讀

    增量式拉線編碼器:精準測量與位移控制的優選解決方案

    在自動化與精密制造領域,精確測量與控制是提升生產效率與產品質量的基石。隨著技術的不斷進步,增量式拉線編碼器作為一種高效、可靠的位移測量工具,正逐漸成為眾多工業應用中的優選解決方案。本文
    的頭像 發表于 12-02 08:47 ?626次閱讀
    <b class='flag-5'>增量</b>式拉線<b class='flag-5'>編碼器</b>:精準<b class='flag-5'>測量</b>與位移控制的優選解決方案

    增量編碼器與絕對值編碼器的區別

    增量編碼器與絕對值編碼器的區別:增量編碼器與絕對值編碼器在精度特點對比
    的頭像 發表于 11-18 16:38 ?2395次閱讀
    <b class='flag-5'>增量</b><b class='flag-5'>編碼器</b>與絕對值<b class='flag-5'>編碼器</b>的區別

    增量編碼器單圈和多圈怎么知道,如何分辯?

    增量編碼器單圈和多圈怎么知道,如何分辯? 單圈編碼器特點: ? 單圈編碼器只能測量一圈內的旋轉角度或位移。一旦旋轉超過一圈,數據就會重新
    的頭像 發表于 10-21 09:42 ?972次閱讀
    <b class='flag-5'>增量</b>式<b class='flag-5'>編碼器</b>單圈和多圈怎么知道,如何分辯?

    光學和磁性增量編碼器之間的差異應用說明

    電子發燒友網站提供《光學和磁性增量編碼器之間的差異應用說明.pdf》資料免費下載
    發表于 09-12 10:07 ?0次下載
    光學和磁性<b class='flag-5'>增量</b><b class='flag-5'>編碼器</b>之間的差異應用說明

    增量旋轉編碼器

    電子發燒友網站提供《增量旋轉編碼器.pdf》資料免費下載
    發表于 09-03 11:51 ?2次下載
    <b class='flag-5'>增量</b>旋轉<b class='flag-5'>編碼器</b>

    恩智浦i.MX RT1170 uSDHC eMMC啟動時間

    大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是恩智浦i.MX RT1170 uSDHC eMMC啟動時間。
    的頭像 發表于 08-08 15:32 ?1097次閱讀
    恩智浦i.MX <b class='flag-5'>RT1170</b> uSDHC eMMC啟動時間

    伺服電機編碼器種類有哪些?

    伺服電機編碼器分很多種,有直接轉速編碼器、有位置分辨率型編碼器、有高精度位姿編碼輸出和高靈敏度
    的頭像 發表于 07-21 17:01 ?2255次閱讀
    主站蜘蛛池模板: 国产三级日本三级韩国三级在线观看 | 欧美性猛交xxxx乱大交高清 | 天天操天天操天天操香蕉 | 色综合888 | 综合五月婷婷 | 美女国产精品 | 欧美五月激情 | 日本一区二区在线免费观看 | 亚洲伊人久久综合影院2021 | 精品国产亚洲人成在线 | 超级毛片 | 中文字幕亚洲一区二区va在线 | 女人张开腿双腿让男人桶 | 亚洲线精品一区二区三区 | 久久青草国产精品一区 | 国产美女久久久久 | 在线观看视频你懂的 | 亚洲欧美国产高清va在线播放 | 婷婷操 | 免费美剧在线观看 | 成人三级在线观看 | 美女视频黄a全部免费看小说 | 免费高清一级欧美片在线观看 | 美女全黄网站免费观看 | 琪琪午夜免费影院在线观看 | 最近新韩国hd视频 | 亚洲乱亚洲乱妇41p国产成人 | 亚洲视频色 | 国产成人精品视频一区二区不卡 | jlzzjlzzjlzz日本亚洲 | 搜索黄色毛片 | 国产亚洲综合一区 柠檬导航 | 日韩电影天堂网 | 201天天爱天天做 | 国产一区精品视频 | 精品精品国产高清a毛片牛牛 | 国产在线色视频 | 日日躁夜夜躁狠狠天天 | 日本久久黄色 | 在线免费成人网 | 欧美一级视频在线高清观看 |