產品分類

      當前位置: 首頁 > 傳感測量產品 > 工業(yè)傳感器 > 霍爾傳感器

      類型分類:
      科普知識
      數據分類:
      霍爾傳感器

      具有 ASEK DLL 諧波線性化功能的先進編程算法

      發(fā)布日期:2022-04-26 點擊率:96

      下載 PDF 版

      作者:K. Robert Bate,
      Allegro MicroSystems, LLC

      介紹

      無論是工業(yè)自動化和機器人技術,還是電動助力轉向和電機位置傳感,許多應用都需要監(jiān)測旋轉軸(以軸上或離軸排列形式)的角度。

      在設計中使用磁體時,磁場輸入在整個旋轉范圍很可能不均勻,它存在固有誤差。這些磁場輸入誤差會導致系統內的測量誤差。線性化能減少這些輸入誤差。

      A1332 和A1335 可采用的諧波線性化能以最多 15 種修正諧波的形式應用線性化,利用快速傅立葉變換 (FFT) 可確定它們的相位和振幅,根據磁體在角度傳感器 IC 周圍的一次旋轉產生的數據可完成 FFT。通過使用 Allegro 提供的軟件計算系數,并對片內 EEPROM 進行編程,可使用這種技術。本應用說明介紹了,當 Allegro 提供的軟件不夠靈活或要使用定制軟件時,客戶能使用的功能和處理流程。

      編程要求

      所有軟件都是在使用 .NET 4.0 的 Microsoft Visual Studio 2010 環(huán)境下開發(fā)的。請為您要使用的器件下載命令庫 (C#/.NET),并添加到其所含的 3 個 DLL 的項目參考中。

      收集數據

      首先,關閉所有后線性化算法處理;這包括零點偏移、后線性化旋轉 (RO)、短行程反轉 (IV) 和旋轉晶片位元 (RD)。預線性化調節(jié)可保持開啟,如 ORATE 設置、IIR 過濾器 (FI) 和預線性化旋轉 (LR)。

      沿角度增加的位置移動編碼器。如果角度傳感器 IC 的輸出未相應增大,可設置 LR 位元以反轉角度傳感器 IC 輸出的反向,或在校準時沿反方向轉動編碼器,在此情況下,可能需要設置后線性化旋轉位元 (RO)。參閱《A1332/ A1335 編程參考》了解更多詳情。

      最佳收集方法是按間距相等的步數旋轉目標,這樣產生的數據點數量就是 2 的冪數。通常,32 或 64 個間距均勻的數據點就足夠了。如果不能實現,可收集數據點,然后必須按下節(jié)介紹的方法預處理數據。

      另一種收集所需數據點的方法是多次旋轉目標,然后按預定義的間隔收集數據。當收集到足夠的數據點覆蓋目標的整個旋轉范圍時,接下來必須按下節(jié)介紹的方法預處理數據。

      預處理數據

      如果收集的數據點數量不是 2 的冪數,或者收集的數據點間距不等,必須調整數據點數組的長度并/或使它們間距相等。要對數據執(zhí)行此操作,可調用 ResizePointArray 例程。

      參數 x 是編碼器數值的數組,參數 y 是在該編碼器數值中收集的器件讀數。參數 newSize 是重新調整的數組大小。如果參數 x 設置為空,則假設已按從 0 開始至 360 結束的相等間距收集數值 y。如果參數 x 不是空,則需要在調整數組大小前,為輸入數組排序。

      double[] ResizePointArray(double[] x, double[] y, int newSize)

      此例程會在輸入數組上執(zhí)行三次樣條插值,以采用所需的數據點數量,生成間距相等的數組。

      初始處理

      數據收集完畢,并形成長度為 2 的冪數的數組后,就可以計算諧波系數了。要計算諧波系數,可調用 CalculateHarmonicLinearCoefficients 例程。

      HarmonicCoefficients[] CalculateHarmonicLinearCoefficients (double[] points, out bool pointError)

      其輸入是已收集的角度數組。此例程會執(zhí)行 FFT,并會返回系數數組和一個警告標記。當一個或多個輸入角比例程計算的角度大 20 度時,需要設置點誤差警告標記。

      以一個包含 8 個輸入項的數組為例,例程計算的角度應為 [0, 45, 90, 135, 180, 225, 270, 315]。如果輸入數組是 [0, 45, 90, 135, 180, 204, 270, 315],則例程會設置 pointError,因為第 6 個輸入項的誤差超過 20 度。

      選擇諧波

      當所有諧波系數已計算完畢后,必須選擇所需的諧波。通常,計算例程生成的諧波數量會超過器件能支持的諧波數量,所以,必須選擇一些算法以選擇相關的諧波。

      使用諧波的數量還取決于所用的器件種類和功能。A1332 的諧波最大數量是 15,但如果使用最大值,一些可編程的功能會使用默認值,如短行程設置和特定的 I2C 與 SPI 設置。不使用默認值時,這些可編程功能的諧波最大數量是 9。A1335 的諧波最大數量是 11,但要達到此數量,一些可編程功能會使用默認值,如短行程設置。不使用默認值時,這些可編程功能的諧波最大數量是 8。

      最簡單的算法是按照所需的諧波數量選擇第一個諧波。這種方法很簡單,它選擇的諧波不會對輸出產生顯著的影響。

      Allegro A1335 的示例編程器目前使用的算法是選擇振幅大于 0.3 的諧波。需要注意的是,當前軟件的一個限制是在所選諧波之間只能跳過 4 個諧波。如果跳過的諧波超過 4 個,還需要選擇最后一個選定諧波和所需諧波之間的所有諧波。

      器件編程

      諧波選擇完畢后,可調用例程 GenerateHarmonicLinearizationDevicevalues 生成要寫入器件的數值。

      HarmonicDevicevalues[] GenerateHarmonicLinearizationDevicevalues (HarmonicCoefficients[] coefficients)

      諧波系數傳遞到此例程中,它會返回器件編程所需的一組數值。此例程拋出的唯一異常是在所選系數之間跳過 4 個以上諧波系數的情形。

      要對器件進行諧波線性化編程,必須設置 HL 標記,必須將 HAR_MAX 字段設置為要使用的系數數量,同時必須編寫 HARMONIC_PHASE_n、ADV_n 和 HARMONIC_AMPLITUDE_n 字段。

      代碼實例

      using System;
      using Allegro.ASEK;

      namespace HarmonicLinearizationExample
      {
          public class HarmonicLinearizationExample
          {
              public HarmonicLinearizationExample()
              {
              }

              public void ProgramHarmonicLinearization(string filePath, ASEK asekProgrammer)
              {
                  try
                  {
                      HarmonicCoefficients[] hc;
                      bool pointError = false;
                      double[] points = null;
                      string fieldBuffer = File.ReadAllText(filePath);
                      string line;
                      List

       


      角度輸入文件的格式

      此文件包含一個角度值列表。如果有兩個數值被逗號隔開,則第一個數值是編碼器角度,第二個數值是器件角度。行可以是空白的,如果它們以 # 打頭,則可將其視為注釋。

      角度輸入文件實例:

      329.59
      354.81
      6.832
      13.566
      17.592
      20.228
      22.638
      24.638
      25.956
      27.454
      28.77
      30.054
      30.966

      包含兩列時:

      0,123
      22.5,145.5
      45,168
      67.5,190.5
      90,213
      112.5,235.5
      135,258
      157.5,280.5
      180,303
      202.5,325.5
      225,348
      247.5,10.5
      270,33
      292.5,55.5
      315,78
      337.5,100.5


      下一篇: PLC、DCS、FCS三大控

      上一篇: 索爾維全系列Solef?PV

      推薦產品

      更多
      主站蜘蛛池模板: 日韩精品成人一区二区三区| 久久婷婷色综合一区二区| 无码av不卡一区二区三区| 成人区人妻精品一区二区不卡视频| 91一区二区在线观看精品| 中日av乱码一区二区三区乱码| 国产丝袜一区二区三区在线观看| 一区二区三区四区免费视频| 国产一区二区三区精品视频| 国产一区二区在线观看视频| 亚洲一区二区三区免费在线观看| 亚洲中文字幕无码一区二区三区| 精品人妻一区二区三区四区 | 国产伦精品一区二区三区四区| 99久久精品日本一区二区免费| 久久国产精品视频一区| 成人日韩熟女高清视频一区| 中文字幕在线视频一区| 国产乱码精品一区二区三| 精品女同一区二区三区免费播放| 亚洲乱码一区二区三区在线观看| 爆乳熟妇一区二区三区| 亚洲免费一区二区| 国产日韩高清一区二区三区| 变态调教一区二区三区| 亚洲乱码国产一区网址| 亚洲无线码在线一区观看| 国产午夜精品一区二区三区小说| 国产成人综合精品一区| 国产一区二区高清在线播放| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 日本一区二区三区不卡视频| 伊人久久精品无码麻豆一区| 国模无码一区二区三区| 国产一区二区三区无码免费| 亚洲一区二区三区国产精品| 亚洲熟妇av一区二区三区漫画| 午夜DV内射一区二区| 一区二区三区精密机械| 天堂va在线高清一区| 国产在线一区二区杨幂|