產(chǎn)品分類

      當(dāng)前位置: 首頁 > 傳感測(cè)量產(chǎn)品 > 工業(yè)傳感器 > 霍爾傳感器

      類型分類:
      科普知識(shí)
      數(shù)據(jù)分類:
      霍爾傳感器

      控制器霍爾傳感器:一種無霍爾傳感器的永磁同步電機(jī)控制器[實(shí)用新型專利]

      發(fā)布日期:2022-10-09 點(diǎn)擊率:82


      控制器<a title=霍爾傳感器:一種無霍爾傳感器的永磁同步電機(jī)控制器[實(shí)用新型專利] 第1張" title="控制器霍爾傳感器:一種無霍爾傳感器的永磁同步電機(jī)控制器[實(shí)用新型專利] 第1張-傳感器知識(shí)網(wǎng)"/>

      控制器霍爾傳感器:一種無霍爾傳感器的永磁同步電機(jī)控制器[實(shí)用新型專利]

      專利內(nèi)容由知識(shí)產(chǎn)權(quán)出版社提供
      摘要:
      本實(shí)用新型公開了一種無霍爾傳感器的永磁同步電機(jī)控制器,所述下導(dǎo)熱片用于吸收電路
      板底部所產(chǎn)生的熱量,所述上導(dǎo)熱片用于吸收電路板頂部的元器件所產(chǎn)生的熱量,所述下導(dǎo)熱片上的
      所述散熱翅片吸收所述下導(dǎo)熱片的熱量,所述上導(dǎo)熱片上的所述散熱翅片吸收所述上導(dǎo)熱片的熱量,
      所述翅片與空氣接觸散發(fā)熱量,避免了電路板底部和頂部的熱量堆積,通過所述水泵使得冷卻液在所
      述上導(dǎo)熱片和所述下導(dǎo)熱片中流動(dòng),使得所述上導(dǎo)熱片和所述下導(dǎo)熱片熱量進(jìn)一步減少,使得電路板
      頂部的熱量進(jìn)一步減少,過散熱孔將無霍爾傳感器的永磁同步電機(jī)控制器通熱空氣排出,同時(shí)通過兩
      個(gè)所述散熱風(fēng)扇加速空氣的流通,進(jìn)一步降低熱量堆積。
      申請(qǐng)人:
      江陰富茂電機(jī)技術(shù)有限公司
      地址:
      江蘇省無錫市江陰市石莊璜石路532號(hào)
      國籍:
      CN
      代理機(jī)構(gòu):
      南京蘇博知識(shí)產(chǎn)權(quán)代理事務(wù)所(普通合伙)
      代理人:
      陳婧
      更多信息請(qǐng)下載全文后查看
      控制器霍爾傳感器:一種無霍爾傳感器的永磁同步電機(jī)控制器[實(shí)用新型專利]  第2張

      控制器霍爾傳感器:無刷電機(jī)控制器分析(1.1)SimpleFOC位置檢測(cè)傳感器例程源碼分析

      位置檢測(cè)傳感器主要有3種,編碼器、霍爾傳感器、磁傳感器,編碼器一般指AB相正交脈沖的增量器件,有的還會(huì)有一個(gè)Z相信號(hào),用來指示零位;霍爾傳感器一般是指ABC三個(gè)成120度角度間隔排列的器件,這種傳感器一般集成在電機(jī)內(nèi)部,電機(jī)每轉(zhuǎn)一圈會(huì)生成6N個(gè)信號(hào),每個(gè)信號(hào)代表電機(jī)轉(zhuǎn)到了特定的角度;磁編碼器本質(zhì)上也是靠霍爾效應(yīng)檢測(cè),但它是一種輸出絕對(duì)位置的器件,這類傳感器一般都有多種接口,如SPI、IIC、模擬值或PWM占空比。
      圖一、SimpleFOC Library編碼器驅(qū)動(dòng)和例程文件目錄ABZ正交編碼ABZ正交編碼器原理圖二、正交編碼器原理與信號(hào)波形
      SimpleFOC Library設(shè)計(jì)了兩種正交編碼器的計(jì)數(shù)方法:
      正交計(jì)數(shù):對(duì)信號(hào)A和B的每次跳變都進(jìn)行采樣,這樣在每個(gè)脈沖周期內(nèi)將有四次信號(hào)跳變,采樣四次,計(jì)數(shù)四次(即CPR Count Per Rotation),具體計(jì)算見以下源碼。 普通計(jì)數(shù):對(duì)信號(hào)A和B的上升沿進(jìn)行計(jì)數(shù),這樣每個(gè)脈沖周期內(nèi)將有兩次信號(hào)跳變,采樣兩次,但只對(duì)某一個(gè)通道計(jì)數(shù)一次(即PPR Pulses Per Rotation),具體計(jì)算見以下源碼。 正交模式下CPR=PPR*4 普通模式下CPR=PPR,顯然正交模式下分辨率更高,但系統(tǒng)開支也更大,如果對(duì)分辨率要求不高可以使用普通模式。
      MCU對(duì)A和B信號(hào)線連接的兩個(gè)IO口使能外部中斷,中斷回調(diào)函數(shù)中實(shí)現(xiàn)了計(jì)數(shù),回調(diào)函數(shù)源碼如下所示,A和B兩個(gè)通道的回調(diào)函數(shù)內(nèi)容一樣,只以A通道為例說明。
      圖三、正交模式下計(jì)數(shù)方法ABZ正交編碼器源碼
      //定義對(duì)象,使能外部中斷
      Encoder encoder = Encoder(2, 3, 8192);      //定義正交編碼器對(duì)象,連接到2和3號(hào)引腳,編碼器PPR=8192
      void doA(){encoder.handleA();}              //A通道中斷回調(diào)函數(shù)
      void doB(){encoder.handleB();}              //B通道中斷回調(diào)函數(shù)
      encoder.enableInterrupts(doA, doB);         //使能外部中斷,設(shè)置回調(diào)函數(shù)
      void Encoder::enableInterrupts(void (*doA)(), void(*doB)(), void(*doIndex)())
      {
       // attach interrupt if functions provided
       switch(quadrature){        //quadrature:是否開啟正交模式
      case Quadrature::ON:
       // A callback and B callback
       if(doA != nullptr) attachInterrupt(digitalPinToInterrupt(pinA), doA, CHANGE);
       if(doB != nullptr) attachInterrupt(digitalPinToInterrupt(pinB), doB, CHANGE);
       break;
      case Quadrature::OFF:
       // A callback and B callback
       if(doA != nullptr) attachInterrupt(digitalPinToInterrupt(pinA), doA, RISING);
       if(doB != nullptr) attachInterrupt(digitalPinToInterrupt(pinB), doB, RISING);
       break;
       }
       //如果有Z相信號(hào)線,使能Z相的中斷
       if(hasIndex() && doIndex != nullptr) attachInterrupt(digitalPinToInterrupt(index_pin), doIndex, CHANGE);
      }
      //  Encoder interrupt callback functions
      // A channel
      void Encoder::handleA()
      {
       bool A = digitalRead(pinA);                       //測(cè)量A引腳高低電平
       switch (quadrature)
       {
      case Quadrature::ON:                            //正交模式下:
      // CPR=4xPPR
      if ( A != A_active )                           //如果A引腳狀態(tài)不等于"當(dāng)前記錄的狀態(tài)"
      {
        //如果A引腳"當(dāng)前記錄的狀態(tài)"等于B引腳"當(dāng)前記錄的狀態(tài)"計(jì)數(shù)+1
        //對(duì)應(yīng)圖六中左側(cè)A信號(hào)的上升沿與下降沿狀態(tài)
        //否則為逆時(shí)針旋轉(zhuǎn),計(jì)數(shù)-1
        pulse_counter += (A_active == B_active) ? 1 : -1;
        pulse_timestamp = _micros();
        A_active = A;                                 //更新A引腳當(dāng)前狀態(tài)
      }
      break;
        case Quadrature::OFF:                             //普通模式下
        // CPR=PPR
      if(A && !digitalRead(pinB))                     //如果A引腳是高電平且B引腳是低電平
      {
        pulse_counter++;                              //計(jì)數(shù)+1,對(duì)應(yīng)圖六中左上角A上升沿狀態(tài)
        pulse_timestamp = _micros();
      }
      break;
        }
      }
      其實(shí)STM32的定時(shí)器是有編碼器計(jì)數(shù)功能的,但這里這種使用外部中斷計(jì)數(shù)的方法更通用,兼容各種MCU,但是編碼器分辨率太高的話會(huì)導(dǎo)致頻繁進(jìn)入中斷。
      ABZ正交編碼器例程

      #include

      //初始化,IO設(shè)置
      encoder.init();
       //使能外部中斷
      encoder.enableInterrupts(doA, doB);
      Serial.println("Encoder ready");
      _delay(1000);
      }
      void loop() {
       // display the angle and the angular velocity to the terminal
      Serial.print(encoder.getAngle());       //串口打印當(dāng)前角度-弧度,多圈值(非0--2Π)
      Serial.print(" ");
      Serial.println(encoder.getVelocity());  //當(dāng)前速度,弧度每秒
      //這個(gè)測(cè)速方法混合了時(shí)間和頻率測(cè)量技術(shù),在高速或低速時(shí)都可以得到較真實(shí)的速度
      }
      霍爾傳感器霍爾傳感器的原理圖四、無刷電機(jī)內(nèi)置編碼器安裝位置
      如上圖所示,右側(cè)的3個(gè)器件就是霍爾傳感器,它們成120度夾角安裝,也有60度安裝的,但控制邏輯不一樣。本節(jié)以一對(duì)極120度夾角電機(jī)模型說明。一對(duì)極指轉(zhuǎn)子只有一對(duì)磁鐵NS極,圖四為多對(duì)極電機(jī)。
      圖五、一對(duì)極單機(jī)模型
        按特定的組合給電機(jī)的UVW三相供電,如U+,V-,W斷開,此時(shí)電機(jī)轉(zhuǎn)子將轉(zhuǎn)到某一固定位置,假設(shè)為扇區(qū)Sector1,然后切換供電狀態(tài)為W+,V-,U斷開,電機(jī)將繼續(xù)旋轉(zhuǎn)60度到扇區(qū)二,按特定的順序依次切換供電狀態(tài),電機(jī)將會(huì)一直轉(zhuǎn)動(dòng)下去,共有6種供電狀態(tài),對(duì)應(yīng)著6個(gè)扇區(qū),6種霍爾傳感器的觸發(fā)狀態(tài),如下圖所示。
      圖六、霍爾的六種觸發(fā)狀態(tài)圖七、霍爾狀態(tài)波形圖
        霍爾傳感器就是根據(jù)這六種狀態(tài)確定轉(zhuǎn)子的位置,加上這6種狀態(tài)的循環(huán)次數(shù)就是當(dāng)前電機(jī)轉(zhuǎn)子的真實(shí)位置。
      參考文章:
      無刷電機(jī)霍爾120度控制和60度控制到底是怎么回事?
      //HallSensor.h
      //霍爾傳感器狀態(tài)與扇區(qū)對(duì)應(yīng)關(guān)系
      // seq 1 > 5 > 4 > 6 > 2 > 3 > 1     000 001 010 011 100 101 110 111
      const int8_t ELECTRIC_SECTORS[8] = { -1,  0,  4,  5,  2,  1,  3 , -1 };
       霍爾位置傳感器的程序源碼與ABZ正交編碼器程序源碼基本相同,引腳配置和外部中斷設(shè)置基本相同,主要內(nèi)容在updateState函數(shù)中,下邊簡單分析updateState函數(shù)。
      霍爾傳感器源碼
      void HallSensor::updateState()
      {
      long new_pulse_timestamp = _micros();
      //刷新三個(gè)霍爾傳感器的狀態(tài)
      int8_t new_hall_state = C_active + (B_active << 1) + (A_active << 2); //去除噪聲  // glitch avoidance #1 - sometimes we get an interrupt but pins haven't changed if (new_hall_state == hall_state) { return;  } hall_state = new_hall_state; //匹配當(dāng)前所在扇區(qū) int8_t new_electric_sector = ELECTRIC_SECTORS[hall_state]; static Direction old_direction; // if (new_electric_sector - electric_sector > 3) {    //如從扇區(qū)0轉(zhuǎn)到了扇區(qū)5,則循環(huán)次數(shù)-1
      //underflow
      direction = Direction::CCW;
      electric_rotations += direction;
       } else if (new_electric_sector - electric_sector < (-3)) {//如從扇區(qū)5轉(zhuǎn)到了扇區(qū)0,則循環(huán)次數(shù)+1    //overflow direction = Direction::CW; electric_rotations += direction;  } else { direction = (new_electric_sector > electric_sector)? Direction::CW : Direction::CCW;
       }
      electric_sector = new_electric_sector;
       // glitch avoidance #2 changes in direction can cause velocity spikes.  Possible improvements needed in this area
      if (direction == old_direction) {
      // not oscilating or just changed direction
      pulse_diff = new_pulse_timestamp - pulse_timestamp;
       } else {
      pulse_diff = 0;
       }

      pulse_timestamp = new_pulse_timestamp;
      total_interrupts++;
      old_direction = direction;
      if (onSectorChange != nullptr) onSectorChange(electric_sector);
      }
      霍爾傳感器例程
       例程與ABZ編碼器的例程基本相同,不再贅述。
      磁編碼器
      磁編碼器有基于霍爾效應(yīng)原理的,也有基于磁阻效應(yīng)的。SimpleFOC項(xiàng)目使用的有以下幾種,這里以AS5600說明。

      MagneticSensorI2CConfig_s AS5600_I2C = {
       .chip_address = 0x36,
       .bit_resolution = 12,
       .angle_register = 0x0C,
       .data_start_bit = 11
      };

      MagneticSensorI2CConfig_s AS5048_I2C = {
       .chip_address = 0x40,  // highly configurable.  if A1 and A2 are held low, this is probable value
       .bit_resolution = 14,
       .angle_register = 0xFE,
       .data_start_bit = 15
      };

      MagneticSensorSPIConfig_s AS5147_SPI = {
       .spi_mode = SPI_MODE1,
       .clock_speed = ,
       .bit_resolution = 14,
       .angle_register = 0x3FFF,
       .data_start_bit = 13,
       .command_rw_bit = 14,
       .command_parity_bit = 15
      };
      // AS5048 and AS5047 are the same as AS5147
      MagneticSensorSPIConfig_s AS5048_SPI = AS5147_SPI;
      MagneticSensorSPIConfig_s AS5047_SPI = AS5147_SPI;

      MagneticSensorSPIConfig_s MA730_SPI = {
       .spi_mode = SPI_MODE0,
       .clock_speed = ,
       .bit_resolution = 14,
       .angle_register = 0x0000,
       .data_start_bit = 15,
       .command_rw_bit = 0,  // not required
       .command_parity_bit = 0 // parity not implemented
      };
      磁編碼器的原理圖八、單對(duì)極性磁編碼器
        AS5600是基于霍爾的旋轉(zhuǎn)磁位置傳感器,有12位高分辨率,使用平面?zhèn)鞲衅鱽韺⒋怪庇谛酒砻娴拇艌?chǎng)分量轉(zhuǎn)換為電壓。它有3種輸出方式,模擬值,PWM和IIC。
      磁編碼器例程--模擬值模式
      //examplessensor_testmagnetic_sensorsmagnetic_sensor_analog_examplefind_raw_min_maxfind_raw_min_max.ino
      #include

      // read the data msb and lsb
      wire->requestFrom(chip_address, (uint8_t)2);
      for (byte i=0; i < 2; i++) { readArray[i] = wire->read();
       }
       // depending on the sensor architecture there are different combinations of
       // LSB and MSB register used bits
       // AS5600 uses 0..7 LSB and 8..11 MSB
       // AS5048 uses 0..5 LSB and 6..13 MSB
      readValue = ( readArray[1] &  lsb_mask );
      readValue += ( ( readArray[0] & msb_mask ) << lsb_used ); return readValue; } (完)

      控制器霍爾傳感器:電動(dòng)車控制器的霍爾線,按顏色接好沒反應(yīng),怎么辦?

      無刷電機(jī),需要靠霍爾來提供位置換向,讓三相電機(jī)在某個(gè)時(shí)刻保持每兩個(gè)線圈之間通電,常見的霍爾是120°的安裝方式的,也就是霍爾傳感器的電角度是相差120°的,還有一種是相差60°的,不能互用了。如果霍爾接錯(cuò)了,或者信號(hào)不準(zhǔn)確,繞組導(dǎo)通并沒有按照設(shè)計(jì)進(jìn)行,電機(jī)當(dāng)然是無法正常運(yùn)轉(zhuǎn)的,而且如果導(dǎo)通錯(cuò)誤,可能會(huì)造成開關(guān)管短路引起驅(qū)動(dòng)器燒掉,或者電機(jī)出現(xiàn)問題,請(qǐng)關(guān)注:容濟(jì)點(diǎn)火器
      單個(gè)霍爾,有一條紅色線是正極線,一般是12-20伏的,另外一條黑色線是負(fù)極,其他一條別的顏色的就是信號(hào)線了。
      一般電動(dòng)車負(fù)極都是連成一體的,所以電機(jī)用到的三個(gè)霍爾,可以把負(fù)極短接一起,正極也短接一起,這樣每個(gè)霍爾還有一條信號(hào)線,加起來正常會(huì)有5條線輸出。
      這是單個(gè)霍爾的三條線,一般有字體那面朝上,從左到右,分別是電源正極,電源負(fù)極,信號(hào)線。
      這是把電源正負(fù)短接一起的三個(gè)霍爾接法,輸出往往會(huì)對(duì)應(yīng)有三條黃綠藍(lán)三種顏色的信號(hào)線,對(duì)應(yīng)電機(jī)線圈的黃綠藍(lán)線圈線來接就是了。對(duì)于120°的霍爾而已,更換時(shí)候,霍爾需要反過來裝配,而且必須插入鋼片的槽里邊,用膠水固定好,如果沒有固定好,當(dāng)然也無法正常工作的。
      但是有些廠家,故意把線顏色搞得和別人不一樣了,這種情況,信號(hào)線接錯(cuò)了,應(yīng)該是電機(jī)反轉(zhuǎn),可以調(diào)轉(zhuǎn)一下兩條線就好了。如果控制器有自適應(yīng)功能的,這幾條信號(hào)線可以隨便接,它會(huì)自動(dòng)識(shí)別的。
      如果接上都沒有反應(yīng),可能是霍爾問題,或者電源線接錯(cuò)了,或者插頭存在接觸不良等問題。
      舉報(bào)/反饋

      控制器霍爾傳感器:直流無刷電機(jī)控制器中的霍爾傳感器是做什么用的

      直流電機(jī)控制板里面的霍爾傳感器是用來檢測(cè)電機(jī)的轉(zhuǎn)動(dòng)速度用的。在有些應(yīng)用的場(chǎng)合,需要對(duì)電機(jī)進(jìn)行調(diào)速,要保證電機(jī)在某個(gè)速度下面保持不變,所以就要加一個(gè)檢測(cè)速度的傳感器進(jìn)行反饋,主控板根據(jù)檢測(cè)的速度值來輸出不同的控制脈沖信號(hào),最終達(dá)到快速調(diào)整電機(jī)轉(zhuǎn)速的目的。也叫做霍爾編碼器。

      編碼器的分類

      從編碼器檢測(cè)原理上來分,還可以分為光學(xué)式、磁式、感應(yīng)式、電容式。常見的是光電編碼器和霍爾編碼器。光電編碼器是屬于光學(xué)式編碼器,而霍爾編碼器則屬于磁式編碼器。

      編碼器的原理

      1、光電編碼器的原理解析

      光電編碼器是一種通過光電轉(zhuǎn)換將輸出軸上的機(jī)械幾何位移量轉(zhuǎn)換為脈沖數(shù)字量的傳感器。由光電碼盤和光電檢測(cè)裝置組成。光電碼盤是在一定直徑的圓板上等分地開通若干個(gè)長方形的小孔。由于光電碼盤與電動(dòng)機(jī)同軸,電動(dòng)機(jī)旋轉(zhuǎn)時(shí),檢測(cè)裝置檢測(cè)輸出對(duì)應(yīng)的脈沖信號(hào),一般輸出A,B兩路具有一定相位差的方波信號(hào),通過兩路輸出信號(hào),可判斷電機(jī)的轉(zhuǎn)動(dòng)方向。
      2、霍爾編碼器的原理解析

      霍爾編碼器則是一種通過磁電轉(zhuǎn)換將輸出軸上的機(jī)械幾何位移量轉(zhuǎn)換成脈沖或數(shù)字量的傳感器。霍爾編碼器由霍爾碼盤和霍爾傳感器組成。霍爾碼盤在一定直徑的圓板上等分地布置有不同的磁極。霍爾碼盤與電機(jī)同軸,電機(jī)旋轉(zhuǎn)時(shí),霍爾元件檢測(cè)輸出對(duì)應(yīng)的脈沖信號(hào),一般輸出A,B兩路具有一定相位差的方波信號(hào),通過兩路輸出信號(hào),可判斷電機(jī)的轉(zhuǎn)動(dòng)方向。

      兩種編碼器的檢測(cè)原理是一樣的,都是通過輸出A,B相的方波信號(hào)來檢測(cè)。只不過光電式的編碼器精度要比霍爾式編碼器的精度高許多。

      簡單的檢測(cè)原理示意圖:
      如何計(jì)算轉(zhuǎn)速?

      計(jì)算電機(jī)的轉(zhuǎn)速都是通過檢測(cè)輸出脈沖的個(gè)數(shù)來進(jìn)行計(jì)算的。其大概原理是:比如一個(gè)500線的電機(jī)(轉(zhuǎn)一圈會(huì)輸出500個(gè)脈沖),只要通過單片機(jī)定時(shí)器設(shè)定一個(gè)固定的檢測(cè)時(shí)間,假如定時(shí)1S的時(shí)間,然后通過單片機(jī)的外部中斷或者輸入捕獲等方式獲得1S鐘內(nèi)的脈沖個(gè)數(shù),假如1S內(nèi)檢測(cè)到1000個(gè)高電平(1000個(gè)脈沖),那么就代表了電機(jī)剛好轉(zhuǎn)過兩圈,這時(shí)就可以根據(jù)輪子的直徑來算出其對(duì)應(yīng)的轉(zhuǎn)速了。

      為了提高檢測(cè)精度,你還可以通過同時(shí)檢測(cè)AB相兩路輸出的高低電平,具體和檢測(cè)一路的原理類似。
      總結(jié):在電機(jī)加裝一個(gè)霍爾傳感器無非就是為了測(cè)定電機(jī)的轉(zhuǎn)速來使用的,一般傳感器可以給控制器提供一個(gè)反饋的信號(hào),根據(jù)反饋信號(hào)就可以進(jìn)行信號(hào)的調(diào)制,形成一個(gè)閉環(huán)控制方式。

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

      上一篇: 電氣控制線路圖控制原

      推薦產(chǎn)品

      更多
      主站蜘蛛池模板: 国产免费一区二区三区在线观看| 日本v片免费一区二区三区| 国产AV一区二区三区无码野战| 人妻无码久久一区二区三区免费| 久久精品一区二区三区日韩 | 欧洲精品一区二区三区| 内射白浆一区二区在线观看| 99久久综合狠狠综合久久一区| 成人国产精品一区二区网站| 国产精品av一区二区三区不卡蜜 | 国产在线视频一区| 亚洲AV成人一区二区三区观看 | 一区二区三区在线免费观看视频| 亚洲日韩精品国产一区二区三区| 91精品一区国产高清在线| 日本中文一区二区三区亚洲| 天天视频一区二区三区| 久久婷婷色一区二区三区| 精品视频一区二区三区四区五区| 美女免费视频一区二区三区| 成人在线观看一区| 亚洲一区二区无码偷拍| 波多野结衣一区视频在线 | 国产精品一区电影| 国产一区在线电影| 一区二区三区免费高清视频| 国产成人精品一区二区三区| 精品国产香蕉伊思人在线在线亚洲一区二区| 日本在线电影一区二区三区| 视频一区在线播放| 国产精品成人一区二区| 国产一区二区三区免费观看在线| 国产一区二区三区在线看| 国产精品毛片VA一区二区三区| 亚洲一区精品视频在线| 男人的天堂av亚洲一区2区| 2018高清国产一区二区三区| 国产MD视频一区二区三区| 精品日本一区二区三区在线观看| 国产精品区一区二区三| 精品一区二区三区高清免费观看 |