You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python构建含电压读数与电流的ADC电路多变量计算方程

整合ADC电压计算方程(含电流变量)及Python实现

问题分析

你已得到不同电流下的ADC电压计算方程,形式为 V = m*x + b(其中x为ADC读数,V为计算出的电路电压),且斜率m、截距b均随电流I变化。我们可以通过拟合m(I)和b(I)的函数关系,得到同时包含电流I和ADC读数x的统一计算方程。

数据拟合与统一方程

先整理已知的电流-参数对应关系:

  • I=0A:m=0.10680454,b=-7.6688459
  • I=0.4A:m=0.10669344,b=-13.84042838
  • I=1.1A:m=0.10652463,b=-24.9126498

对m与I、b与I分别做线性拟合,得到:

  • 斜率函数:m(I) = -0.000257*I + 0.106805
  • 截距函数:b(I) = -15.2216*I -7.6688

代入原方程后,整合得到统一的电压计算式:

V = (-0.000257*I + 0.106805)*x + (-15.2216*I -7.6688)

也可整理为更直观的形式:

V = 0.106805*x -7.6688 - I*(0.000257*x +15.2216)

Python实现代码

import numpy as np

# 已知的电流、对应斜率、对应截距数据
currents = np.array([0, 0.4, 1.1])
slopes = np.array([0.10680454, 0.10669344, 0.10652463])
intercepts = np.array([-7.6688459, -13.84042838, -24.9126498])

# 线性拟合得到m(I)和b(I)的系数
m_fit = np.polyfit(currents, slopes, 1)  # 系数顺序:[I的系数, 常数项]
b_fit = np.polyfit(currents, intercepts, 1)

def calculate_circuit_voltage(current, adc_reading):
    """
    根据电路电流和ADC读数计算电路电压
    参数:
        current: 电路电流值(单位:A)
        adc_reading: ADC的读数
    返回:
        计算得到的电路电压值
    """
    m = m_fit[0] * current + m_fit[1]
    b = b_fit[0] * current + b_fit[1]
    return m * adc_reading + b

# 示例验证
if __name__ == "__main__":
    # 验证0A、ADC读数100的情况
    print(f"0A, ADC读数100: 计算电压 = {calculate_circuit_voltage(0, 100):.4f}")
    # 验证0.4A、ADC读数100的情况
    print(f"0.4A, ADC读数100: 计算电压 = {calculate_circuit_voltage(0.4, 100):.4f}")
    # 验证1.1A、ADC读数100的情况
    print(f"1.1A, ADC读数100: 计算电压 = {calculate_circuit_voltage(1.1, 100):.4f}")

电流对电压读数影响曲线

电流对电压读数影响曲线

内容的提问来源于stack exchange,提问作者daniel castellanos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 03:40:30