✅ 博主简介:擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导,毕业论文、期刊论文经验交流。
✅ 如需沟通交流,扫描文章底部二维码。


(1)二硫化钼柔性压阻传感器光电SPICE建模:

针对柔性压阻传感器中二硫化钼异质结构的光学响应特性,建立了包含光生载流效应的SPICE模型。模型分为力敏电阻部分和光电效应部分:力敏电阻部分基于经典的压阻效应等效电路,电阻值随压力呈指数衰减关系,零压电阻15kΩ,满量程500kPa时电阻降至2.4kΩ;光电部分由光控电流源模拟,电流大小遵循I_ph=R_λ·P_opt,其中响应度R_λ=0.42A/W。通过参数提取和拟合,模型在LTspice中仿真与实测I-V特性对比,相对误差<3.2%。该模型为后续信号调理电路提供了真实的前端传感器仿真环境。

(2)斩波PGA与10位SAR ADC电路设计:

为放大惠斯通电桥输出的差分弱信号(满量程±25mV),设计了一种带斩波调制的可编程增益放大器(PGA)。采用经典三运放仪表放大器结构,增益由数字控制选择1、2、4、8、16、32、64、128倍,使用反馈电阻网络实现。输入级加入1kHz斩波开关,将低频闪烁噪声调制到高频,经后续低通滤波后噪声电压降至1.2μVrms。ADC采用10位逐次逼近结构,采样率50kSPS,内部DAC使用高6低4的桥接电容阵列,总电容仅需79个单位电容。采样开关使用栅压自举结构以提高线性度,仿真有效位数达到9.9位,功耗1.2mW。版图设计采用0.18μm CMOS工艺,核心面积0.24mm²。

(3)传感器零点、灵敏度二阶温度补偿与非线性三阶校准算法:

针对压阻式传感器固有的温度漂移和非线性,设计了数字校准算法。零点漂移与温度关系使用二阶多项式补偿:Offset(T)=a0+a1·T+a2·T²,通过三个温度点(-20℃、25℃、70℃)测量标定系数。灵敏度温度漂移同样二阶补偿。非线性误差则采用三阶多项式校正输出:V_out_corrected=c0+c1·V_raw+c2·V_raw²+c3·V_raw³,系数通过最小二乘拟合多个标准压力点获得。该算法在Xilinx Spartan-6 FPGA上实现,占用Slice LUT 872个。经过校准后,传感器在-20℃~85℃范围内,输出精度从不校准时的27.25%FS优化至4.63%FS,提高了约6倍的精度。整体调理电路与传感器联合测试,系统线性度优于0.08%,满足高端工业需求。

import numpy as np
from scipy.optimize import curve_fit

# 压阻传感器SPICE模型参数提取(拟合)
def mos2_resistance_pressure(pressure_kPa):
    R0 = 15e3  # 零压电阻
    k = -0.004  # 衰减系数
    return R0 * np.exp(k * pressure_kPa)

# PGA增益实现
class PGA:
    def __init__(self):
        self.gains = [1,2,4,8,16,32,64,128]
        self.current_gain = 1
    def set_gain_by_code(self, code):
        self.current_gain = self.gains[code]
    def amplify(self, diff_voltage):
        return diff_voltage * self.current_gain

# SAR ADC行为级仿真
def sar_adc_convert(vin, vref=1.8, bits=10):
    comparator_offset = 0.0002
    dout = 0
    vtest = 0
    for i in reversed(range(bits)):
        vtest += vref / (2**(bits-i))
        if vin > vtest + comparator_offset:
            dout += 1 << i
        else:
            vtest -= vref / (2**(bits-i))
    return dout

# 二阶温度补偿系数计算
def calibrate_temperature_offset(temp, zero_offset):
    def model(T, a0, a1, a2):
        return a0 + a1*T + a2*T**2
    params, _ = curve_fit(model, temp, zero_offset)
    return params

# 三阶非线性校正
def nonlinear_correct(raw, coeff):
    c0,c1,c2,c3 = coeff
    return c0 + c1*raw + c2*raw**2 + c3*raw**3

# 主校准流程
def full_calibration(raw_data, temp, pressures_known):
    # 温度补偿
    offsets = raw_data[:3]  # 三个温度零点
    coeff_temp = calibrate_temperature_offset(temp, offsets)
    # 非线性校正
    corrected = nonlinear_correct(raw_data, [0,1,0.001, -0.0001])
    # 计算误差
    error_fs = np.max(np.abs(corrected - pressures_known)) / (max(pressures_known)-min(pressures_known)) * 100
    return corrected, error_fs


如有问题,可以直接沟通

👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐