在线观看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

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

    關注

    142

    文章

    9050

    瀏覽量

    145912
收藏 人收藏

    評論

    相關推薦

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

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

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

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

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

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

    增量旋轉編碼器

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

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

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

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

    伺服電機編碼器分很多種,有直接轉速編碼器、有位置分辨率型編碼器、有高精度位姿編碼輸出和高靈敏度
    的頭像 發表于 07-21 17:01 ?1309次閱讀

    西門子更換電機編碼器設置

    引言 西門子電機和驅動廣泛應用于工業自動化領域,其性能和可靠性得到了廣泛認可。 編碼器的作用 編碼器是一種將機械位置轉換為電信號的傳感,
    的頭像 發表于 06-17 15:10 ?1406次閱讀

    三菱伺服電機編碼器接線方法

    引言 伺服電機是一種高精度、高響應速度的電機,廣泛應用于工業自動化、機器人、數控機床等領域。編碼器作為伺服電機的重要組成部分,其作用是檢測電機
    的頭像 發表于 06-17 14:11 ?2483次閱讀

    伺服電機編碼器的型號怎么看

    編碼器類型,它通過測量電機軸的旋轉角度變化來提供位置和速度信息。增量編碼器通常有兩個輸出信號,分別為A相和B相,它們之間存在90度的相位
    的頭像 發表于 06-17 11:07 ?2014次閱讀

    如何判斷伺服電機編碼器故障?

    伺服電機編碼器是伺服系統中非常重要的部件,它用于測量電機軸的旋轉角度和速度,為控制系統提供反饋信號。如果編碼器出現故障,將直接影響伺服
    的頭像 發表于 06-17 11:05 ?2791次閱讀

    伺服電機編碼器故障及維修AL是什么

    電機的重要組成部分,用于測量電機軸的旋轉角度和速度,實現精確控制。 伺服電機編碼器的類型 增量
    的頭像 發表于 06-17 11:00 ?988次閱讀

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

    在工業自動化和精密測量領域,編碼器是不可或缺的關鍵設備。編碼器能夠將機械位移轉換為電信號,以便于計算機或其他數字系統進行處理。在編碼器的眾多類型中,
    的頭像 發表于 06-03 15:40 ?3001次閱讀

    使用STM32的編碼器接口對接增量編碼器控制電機進行很低速的轉動時,需要如何進行電機轉速測量?

    使用STM32的編碼器接口對接增量編碼器控制電機進行很低速的轉動時,需要如何進行電機轉速
    發表于 04-30 06:05

    永磁同步電機的矢量控制 帶編碼器電機-AB增量編碼器應用指南

    電子發燒友網站提供《永磁同步電機的矢量控制 帶編碼器電機-AB增量編碼器應用指南.pdf》資料免費下載
    發表于 01-30 09:37 ?3次下載
    永磁同步<b class='flag-5'>電機</b>的矢量控制 帶<b class='flag-5'>編碼器</b>的<b class='flag-5'>電機</b>-AB<b class='flag-5'>增量</b>型<b class='flag-5'>編碼器</b>應用指南

    磁性編碼器和光電編碼器的比較

    伺服電機編碼器是一種關鍵的反饋裝置,用于測量和控制電機轉速和位置。在選擇伺服電機
    的頭像 發表于 01-18 10:29 ?3343次閱讀
    主站蜘蛛池模板: 成人精品一区二区三区电影| 午夜影院普通| 你懂的视频在线看| 欧美天天爽| 国产高清色视频免费看的网址| 激情亚洲综合网| 日本成人免费| 亚洲国产欧美视频| 在线免费你懂的| 午夜丁香婷婷| 日本成片视频| 国语自产自拍秒拍在线视频| 俺也来俺也去俺也射| 五月天婷婷丁香| 国内精品手机在线观看视频| 免费h视频在线观看| 久久精品在| 亚洲一区二区免费看| 性欧美hd| 亚洲一区二区三区高清| 在线观看你懂的网站| 色天网站| 狠狠色网站| 天天久| 天天色天天色| 干干人人| 欧美极品第一页| 黄视频免费在线看| 特黄特色的大片观看免费视频| 欧美在线观看视频一区| 国产xxxxxx久色视频在| 岛国三级在线看| 天天爽夜夜爽视频| 天天操天天干天天射| 天天拍夜夜爽| 大香线蕉97久久| 乱色伦肉小说| 日韩美毛片| 美国激情ap毛片| 在线观看天堂| 性夜影院爽黄a爽免费看网站|