女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

關于ADC數值標定轉換為物理量數值的方法

GReq_mcu168 ? 來源:今日頭條 ? 作者:今日頭條 ? 2022-05-26 15:58 ? 次閱讀

處理器經過模數轉換得到數值之后,需要經過進一步的轉換得到表征真實物理量的數值。

得到了物理量數值,就可以進行顯示,故障判斷等操作。

我們需要找到從模數轉換數值到物理量之間的轉換關系;

比如,用14位的ADC對市電電壓進行采樣,得到了某個數據,該數據并不是電壓值,而需要經過轉換關系得到電壓值。

如果傳感器信號處理電路的線性度都比較好,可以在整個測量范圍內采用線性關系進行轉換,如下:

a033c832-dcbb-11ec-ba43-dac502259ad0.png

a0423bba-dcbb-11ec-ba43-dac502259ad0.jpg

ADC與物理量的線性關系

x為ADC讀到的數值,y為物理量的數值,比如電壓值、電流值、溫度值、壓力值等等。

有兩個問題需要注意:

1) k,b的數值從何而來

2) 單片機如何轉換

一、k, b數值的確認

我通常采用三種方法來確認k、b數值:

1)正向推導,根據傳感器、信號處理電路的線性關系推導得到:

以下圖的三相線電壓測量電路為例:

a04f3450-dcbb-11ec-ba43-dac502259ad0.png

三相線電壓測量電路

電壓互感器的參數為:

初次級的變比:1mA:1mA

初級限流電流為:400kΩ;

次級線圈電阻為:17Ω;

次級采樣電阻為:100Ω;

運放組成的處理電路的參數為:

放大倍數:47/(4.7+0.1//0.017)=9.969。

根據這些參數,假設相電壓的真有效值為U,按照下面步驟推導:

  • 初級電流為a056d57a-dcbb-11ec-ba43-dac502259ad0.png

  • 次極輸出電壓=次極電流*100//4700=

a05e8f22-dcbb-11ec-ba43-dac502259ad0.png

  • 運放輸出電壓=次極輸出電壓*放大倍數

a06f2832-dcbb-11ec-ba43-dac502259ad0.png

  • 單片機讀到的14位ADC的數值=

a080d708-dcbb-11ec-ba43-dac502259ad0.png

  • ADC與線電壓的關系為:

a08d6734-dcbb-11ec-ba43-dac502259ad0.png

  • 進一步得到:

a09e5120-dcbb-11ec-ba43-dac502259ad0.png

  • 為了減少量化誤差,提供精度,我們對換算得到的電壓保留一位小數,當用整數來表示需,需要擴大10倍,得到:

a0b0fc1c-dcbb-11ec-ba43-dac502259ad0.png

從而得到了ADC與擴大10倍的線電壓之間的線性轉換關系,其k=3.302264,b=0;

2)分段線性化以及最小二乘法確認轉換關系

在另一篇文章中詳述。

二、 單片機如何轉換

當我們得到ADC數值與物理量之間的線性轉換關系:

a033c832-dcbb-11ec-ba43-dac502259ad0.png

我們需要在程序中將物理量計算出來。

低端的單片機都沒有硬件浮點數計算能力,即使是32位的cortex-M0/cortex-M3內核的處理器(如STM32F0xx以及STM32F1xx系統處理器)也沒有硬件浮點數計算能力。

當我們通過浮點數進行轉換運算時,會消耗大量的時間。

我的做法是,將k轉變為整以一個整數后再除以另一個整數,

而對物理量保留小數點,利用擴大整10倍的整數進行存儲時,b可以直接四舍五入為整數;

即:

a0c4d7c8-dcbb-11ec-ba43-dac502259ad0.png

,其中,M、N、b都是整數。

在STM32F103的處理器上,我做了一些測算:

采用64MHz的時間頻率,

計算65535次的浮點數轉換的耗時為:164ms。

單次運算耗時為:2.5us。

轉化為整數乘除運算,計算65535次耗時為:20ms。

單次運算耗時為:0.31us。

當轉為整數運算時,可能會擴大舍入誤差。

我的做法是,根據整數M、N的位數取大數,比如16位的數。

如果k小于1,則將N固定為65535。

M=round(k*65535)。

如果k大于等于1,則將M固定為65535。

N=round(65535/k)。

在上例中,k=3.302264,則M=65535,N=round(65535/3.302264)=19845。

const STRConfigCalDef g_pt_calvoldefs[PT_VOLTAGE_NUM] =
{
{65535, 19845, 0},
{65535, 19845, 0},
{65535, 19845, 0}
};
U16  pt_calval(U16 val, U16 pm, U16 pn, signed int pk,){
U32 uwDataA;
signed int uwDataB;
U16 resval;
uwDataA = (U32)val * pm;
if(pn == 0){
pn = 1;
}
uwDataA = (U32)val * pm;
uwDataA = (U32)uwDataA / pn;
uwDataB = (signed int)uwDataA;
uwDataB = uwDataB + pk;
if(uwDataB < 0){
uwDataB = 0;
}
  if(uwDataB > 65535){
uwDataB = 65535;
}
resval = (U16)uwDataB;
return(resval)
}

a0d21f46-dcbb-11ec-ba43-dac502259ad0.jpg

轉為整數運算的轉換算法

審核編輯 :李倩


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

    關注

    2563

    文章

    52573

    瀏覽量

    763720
  • adc
    adc
    +關注

    關注

    99

    文章

    6639

    瀏覽量

    548260
  • 數值
    +關注

    關注

    0

    文章

    80

    瀏覽量

    14532

原文標題:ADC數值標定轉換為物理量數值的方法及注意事項

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    TLV5616數據轉換過程中當數字量為奇數值時寫不進去或著轉換不出模擬,怎么解決?

    1、TLV5616存在數據間隔轉換 2、 數據轉換過程中當數字量為奇數值時寫不進去或著轉換不出模擬的問題! 芯片工作外圍:5v (VCC
    發表于 02-14 08:12

    ADC08060測試數值偏低的原因?怎么解決?

    請教下,ADC08060 使用中發現部分產品有不良,主要表現在測試的數值在部分條件下偏低,請教下該怎么debug,先查找分析哪些信號會比較好。
    發表于 12-12 07:06

    ADS1120讀取K type的數值很小是怎么回事?

    我參考data sheet Table 22. Register Settings 的設定, 測室溫,讀回的數值對照k type的溫度電壓轉換表,數值極小(
    發表于 12-04 08:03

    用PGA309 -USB DAQ板標定PGA309的過程中,ADC無法采集到電壓信號,為什么?

    在用PGA309 -USB DAQ板標定PGA309的過程中,ADC無法采集到電壓信號,后查找原因發現U20(ADS1100A01IDBVT)以及Q4(MMBT4003)損壞,換完這兩個器件后
    發表于 09-13 07:31

    labview字符串數組轉化為數值數組

    在LabVIEW中,將字符串數組轉換為數值數組是一項常見的任務,尤其是在處理數據采集、信號處理或用戶輸入時。 1. 理解LabVIEW的數據類型 在開始之前,了解LabVIEW中的數據類型是非
    的頭像 發表于 09-04 17:47 ?4862次閱讀

    plc模擬和數字量之間的轉換方法

    物理量,如溫度、壓力、流量等;數字量是指離散的物理量,如開關狀態、計數器等。在實際應用中,PLC需要對這兩種數據類型進行轉換,以實現對各種設備的控制和監控。本文將介紹PLC中模擬
    的頭像 發表于 08-30 10:51 ?5741次閱讀

    模擬4-20ma對應的數字量是多少

    模擬4-20mA轉換為數字量的具體值并不是一個固定的數,因為它取決于所使用的模數轉換器(ADC)的分辨率和量程設置。不過,我們可以根據一般的概念和原理來提供一個大致的
    的頭像 發表于 08-30 09:28 ?8713次閱讀

    將模擬轉換為數字量,采用什么轉換

    (如溫度、壓力、聲音或圖像等隨時間連續變化的物理量)轉變為數字信號(以二進制數值表示的離散信號)。 模數轉換器的轉換過程一般包括四個主要步驟:采樣、保持、量化、編碼。前兩個步驟在采樣-
    的頭像 發表于 08-30 09:24 ?2518次閱讀

    數字量與模擬的關系如何算

    物理量,如電壓、電流、溫度等。它們可以取任意值,并在整個范圍內連續變化。 數字量 :數字量是離散的、不連續變化的,通常表示為二進制代碼(0和1的組合)。數字量在時間上和數值上都是斷續變化的,反映了信息的量化表示。 二、轉
    的頭像 發表于 08-30 09:16 ?1581次閱讀

    電感傳感器能夠測量哪些物理量?

    電感傳感器是一種利用電感效應來檢測物理量的裝置,它將被測量轉換為線圈的自感或互感的變化來測量。電感傳感器能夠測量的物理量相當廣泛,主要包括但不限于以下幾個方面: 位移 :電感傳感器可以直接測量線位移
    的頭像 發表于 08-29 11:08 ?1539次閱讀

    4-20mA信號的轉換方法

    4-20mA信號是一種模擬信號,常用于工業自動化領域,用于傳輸傳感器測量的物理量,如溫度、壓力、流量等。在數字控制系統中,需要將4-20mA信號轉換為數字信號,以便進行進一步的處理和分析
    的頭像 發表于 08-11 14:11 ?3434次閱讀

    PLC對模擬信號的處理過程及方法 詳解版

    )。 PLC通過計算轉換,將這些模擬信號轉換為內部的數值信號。從而實現系統的監控及控制。從現場的物理信號到PLC內部處理的
    的頭像 發表于 07-30 16:31 ?861次閱讀
    PLC對模擬<b class='flag-5'>量</b>信號的處理過程及<b class='flag-5'>方法</b> 詳解版

    傳感器可測量的不包括什么

    傳感器是一種能夠將物理量、化學或生物轉換為可測量的電信號的裝置。它們廣泛應用于工業、醫療、環境監測、交通、農業等領域。然而,并非所有的
    的頭像 發表于 07-25 09:46 ?1103次閱讀

    數值比較器的級聯端有什么作用

    數值比較器是一種數字電路,用于比較兩個數字信號的大小。在數字電路設計中,數值比較器被廣泛應用于各種場景,如算術運算、數據排序、信號處理等。級聯端是數值比較器的一個重要組成部分,它允許多個數值
    的頭像 發表于 07-10 10:37 ?1928次閱讀

    PLC獲取模擬方法

    、壓力、流量等,它們經過傳感器轉換為電信號后,需要被PLC準確讀取和處理。本文將詳細闡述PLC獲取模擬方法,包括硬件結構、信號轉換、編程配置等方面,旨在為讀者提供全面而深入的指導。
    的頭像 發表于 06-18 10:58 ?1433次閱讀