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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

關(guān)于ADC數(shù)值標(biāo)定轉(zhuǎn)換為物理量數(shù)值的方法

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

當(dāng)處理器經(jīng)過模數(shù)轉(zhuǎn)換得到數(shù)值之后,需要經(jīng)過進一步的轉(zhuǎn)換得到表征真實物理量的數(shù)值。

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

我們需要找到從模數(shù)轉(zhuǎn)換數(shù)值到物理量之間的轉(zhuǎn)換關(guān)系;

比如,用14位的ADC對市電電壓進行采樣,得到了某個數(shù)據(jù),該數(shù)據(jù)并不是電壓值,而需要經(jīng)過轉(zhuǎn)換關(guān)系得到電壓值。

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

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

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

ADC與物理量的線性關(guān)系

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

有兩個問題需要注意:

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

2) 單片機如何轉(zhuǎn)換

一、k, b數(shù)值的確認

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

1)正向推導(dǎo),根據(jù)傳感器、信號處理電路的線性關(guān)系推導(dǎo)得到:

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

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

三相線電壓測量電路

電壓互感器的參數(shù)為:

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

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

次級線圈電阻為:17Ω;

次級采樣電阻為:100Ω;

運放組成的處理電路的參數(shù)為:

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

根據(jù)這些參數(shù),假設(shè)相電壓的真有效值為U,按照下面步驟推導(dǎo):

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

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

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

  • 運放輸出電壓=次極輸出電壓*放大倍數(shù)

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

  • 單片機讀到的14位ADC的數(shù)值=

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

  • ADC與線電壓的關(guān)系為:

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

  • 進一步得到:

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

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

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

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

2)分段線性化以及最小二乘法確認轉(zhuǎn)換關(guān)系

在另一篇文章中詳述。

二、 單片機如何轉(zhuǎn)換

當(dāng)我們得到ADC數(shù)值與物理量之間的線性轉(zhuǎn)換關(guān)系:

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

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

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

當(dāng)我們通過浮點數(shù)進行轉(zhuǎn)換運算時,會消耗大量的時間。

我的做法是,將k轉(zhuǎn)變?yōu)檎砸粋€整數(shù)后再除以另一個整數(shù),

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

即:

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

,其中,M、N、b都是整數(shù)。

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

采用64MHz的時間頻率,

計算65535次的浮點數(shù)轉(zhuǎn)換的耗時為:164ms。

單次運算耗時為:2.5us。

轉(zhuǎn)化為整數(shù)乘除運算,計算65535次耗時為:20ms。

單次運算耗時為:0.31us。

當(dāng)轉(zhuǎn)為整數(shù)運算時,可能會擴大舍入誤差。

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

如果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

轉(zhuǎn)為整數(shù)運算的轉(zhuǎn)換算法

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2561

    文章

    52198

    瀏覽量

    761690
  • adc
    adc
    +關(guān)注

    關(guān)注

    99

    文章

    6611

    瀏覽量

    547729
  • 數(shù)值
    +關(guān)注

    關(guān)注

    0

    文章

    80

    瀏覽量

    14511

原文標(biāo)題:ADC數(shù)值標(biāo)定轉(zhuǎn)換為物理量數(shù)值的方法及注意事項

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

收藏 人收藏

    評論

    相關(guān)推薦

    TLV5616數(shù)據(jù)轉(zhuǎn)換過程中當(dāng)數(shù)字量為奇數(shù)值時寫不進去或著轉(zhuǎn)換不出模擬,怎么解決?

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

    ADC08060測試數(shù)值偏低的原因?怎么解決?

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

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

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

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

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

    labview字符串?dāng)?shù)組轉(zhuǎn)化為數(shù)值數(shù)組

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

    plc模擬和數(shù)字量之間的轉(zhuǎn)換方法

    物理量,如溫度、壓力、流量等;數(shù)字量是指離散的物理量,如開關(guān)狀態(tài)、計數(shù)器等。在實際應(yīng)用中,PLC需要對這兩種數(shù)據(jù)類型進行轉(zhuǎn)換,以實現(xiàn)對各種設(shè)備的控制和監(jiān)控。本文將介紹PLC中模擬
    的頭像 發(fā)表于 08-30 10:51 ?5337次閱讀

    模擬4-20ma對應(yīng)的數(shù)字量是多少

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

    將模擬轉(zhuǎn)換為數(shù)字量,采用什么轉(zhuǎn)換

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

    數(shù)字量與模擬的關(guān)系如何算

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

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

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

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

    )。 PLC通過計算轉(zhuǎn)換,將這些模擬信號轉(zhuǎn)換為內(nèi)部的數(shù)值信號。從而實現(xiàn)系統(tǒng)的監(jiān)控及控制。從現(xiàn)場的物理信號到PLC內(nèi)部處理的
    的頭像 發(fā)表于 07-30 16:31 ?754次閱讀
    PLC對模擬<b class='flag-5'>量</b>信號的處理過程及<b class='flag-5'>方法</b> 詳解版

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

    傳感器是一種能夠?qū)?b class='flag-5'>物理量、化學(xué)或生物轉(zhuǎn)換為可測量的電信號的裝置。它們廣泛應(yīng)用于工業(yè)、醫(yī)療、環(huán)境監(jiān)測、交通、農(nóng)業(yè)等領(lǐng)域。然而,并非所有的
    的頭像 發(fā)表于 07-25 09:46 ?1018次閱讀

    數(shù)值比較器的級聯(lián)端有什么作用

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

    PLC獲取模擬方法

    、壓力、流量等,它們經(jīng)過傳感器轉(zhuǎn)換為電信號后,需要被PLC準(zhǔn)確讀取和處理。本文將詳細闡述PLC獲取模擬方法,包括硬件結(jié)構(gòu)、信號轉(zhuǎn)換、編程配置等方面,旨在為讀者提供全面而深入的指導(dǎo)。
    的頭像 發(fā)表于 06-18 10:58 ?1297次閱讀

    請問如何通過UART從ADC傳輸數(shù)值

    你好! 我有一個從 7 個通道讀取數(shù)值ADC_MEASUREMENT 應(yīng)用程序。 我只想通過 UART 將數(shù)值傳送到 Arduino。 模數(shù)轉(zhuǎn)換器的
    發(fā)表于 06-04 12:31
    主站蜘蛛池模板: 深夜福利欧美 | 色播四房间 | 在线免费看高清视频大全 | 久久偷窥视频 | 中国黄色一级毛片 | 色综合久久九月婷婷色综合 | 日韩欧美理论 | 日日躁夜夜躁狠狠天天 | 5060午夜一级 | 黄视频网站免费 | 天天视频国产免费入口 | 亚洲狠狠婷婷综合久久久久图片 | 51视频在线观看免费国产 | 狠狠色噜噜狠狠狠狠2018 | 天堂在线www| 新版天堂中文在线8官网 | a级毛片毛片免费很很综合 a级男女性高爱潮高清试 | 天天操夜夜操美女 | 播五月综合 | 五月婷婷社区 | 色爱综合网欧美 | 国产免费一级高清淫日本片 | 操欧洲美女| 日韩爽片| 欧美疯狂爱爱xxxxbbbb | 国产女人视频免费观看 | 一区二区三区高清在线观看 | 欧美网站色 | 亚洲欧美日本综合 | 天天干天天拍天天操 | 日本三级电影在线观看 | 久久全国免费久久青青小草 | 天天操天天操天天干 | 亚洲三级视频在线观看 | 可以在线看黄的网站 | www.999精品视频观看免费 | 日本成片视频 | 男男gay污小黄文 | 色综合99 | 色先峰 | 日鲁夜鲁鲁狠狠综合视频 |