一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

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

GReq_mcu168 ? 來(lái)源:今日頭條 ? 作者:今日頭條 ? 2022-05-26 15:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

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

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

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

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

有兩個(gè)問(wèn)題需要注意:

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

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

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

我通常采用三種方法來(lái)確認(rèn)k、b數(shù)值:

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

以下圖的三相線電壓測(cè)量電路為例:

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

三相線電壓測(cè)量電路

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

初次級(jí)的變比:1mA:1mA

初級(jí)限流電流為:400kΩ;

次級(jí)線圈電阻為:17Ω;

次級(jí)采樣電阻為:100Ω;

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

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

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

  • 初級(jí)電流為a056d57a-dcbb-11ec-ba43-dac502259ad0.png

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

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

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

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

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

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

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

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

  • 進(jìn)一步得到:

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

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

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

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

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

在另一篇文章中詳述。

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

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

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

我們需要在程序中將物理量計(jì)算出來(lái)。

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

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

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

而對(duì)物理量保留小數(shù)點(diǎn),利用擴(kuò)大整10倍的整數(shù)進(jìn)行存儲(chǔ)時(shí),b可以直接四舍五入為整數(shù);

即:

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

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

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

采用64MHz的時(shí)間頻率,

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

單次運(yùn)算耗時(shí)為:2.5us。

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

單次運(yùn)算耗時(shí)為:0.31us。

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

我的做法是,根據(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ù)運(yùn)算的轉(zhuǎn)換算法

審核編輯 :李倩


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

    關(guān)注

    2565

    文章

    52974

    瀏覽量

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

    關(guān)注

    99

    文章

    6698

    瀏覽量

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

    關(guān)注

    0

    文章

    80

    瀏覽量

    14581

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

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

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

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

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

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

    開(kāi)關(guān)輸入和模擬輸入各代表什么意思,有什么區(qū)別,你了解嗎?看完這篇文章全明白!

    “1” 和 “0”,分別對(duì)應(yīng)高電平和低電平。 模擬輸入是指輸入連續(xù)變化的物理量信號(hào)的過(guò)程。這些物理量包括但不限于電壓、電流、壓力、溫度、速度、流量、濃度、濕度、位移等,其信號(hào)在時(shí)間和數(shù)值
    的頭像 發(fā)表于 10-22 16:25 ?2582次閱讀

    plc模擬的計(jì)算與優(yōu)勢(shì)

    模擬是指那些連續(xù)變化的物理量,它們可以在一定范圍內(nèi)取任意值。這些物理量包括但不限于電壓、電流、壓力、溫度、速度和流量等。在PLC系統(tǒng)中,模擬需要通過(guò)傳感器將其
    的頭像 發(fā)表于 09-16 10:16 ?883次閱讀

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

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

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

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

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

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

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

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

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

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

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

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

    電感傳感器能夠測(cè)量哪些物理量?

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

    4-20mA信號(hào)的轉(zhuǎn)換方法

    4-20mA信號(hào)是一種模擬信號(hào),常用于工業(yè)自動(dòng)化領(lǐng)域,用于傳輸傳感器測(cè)量的物理量,如溫度、壓力、流量等。在數(shù)字控制系統(tǒng)中,需要將4-20mA信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),以便進(jìn)行進(jìn)一步的處理和分析
    的頭像 發(fā)表于 08-11 14:11 ?3906次閱讀

    PLC對(duì)模擬信號(hào)的處理過(guò)程及方法 詳解版

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

    傳感器可測(cè)量的不包括什么

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