这个例子展示了如何使用MATLAB连接到Analog Devices ADALM1000源测量单元,配置它,并进行电流和电压测量来表征LED。
daqlist
ans =表1×5VendorID的DeviceID DeviceInfo描述模型 ________ ________ _______________________________ ___________ ________________________ " adi”“SMU1”“模拟设备公司。ADALM1000" "ADALM1000" [1×1 daq.adi.DeviceInfo]
ADIDaq = daq“阿迪”);
ADALM1000器件能够在同一通道上同时提供电压和测量电流。在此模式下设置设备。
增加一个设备号为SMU1,通道号为A的模拟输出通道,测量类型为电压。
addoutput (ADIDaq“smu1”,“一个”,“电压”);
增加一个设备号为SMU1,通道号为A的模拟输入通道,测量类型为current。
addinput (ADIDaq“smu1”,“一个”,“当前”);
确认通道配置。
ADIDaq。渠道
ans =1×2对象索引类型设备通道测量类型范围名称 _____ ____ ______ _______ _____________________ __________________ __________ 1“ao”“SMU1”“A”“电压(SingleEnd)”"0到+5.0伏特" "SMU1_A" 2 "ai" "SMU1" "A" "电流" "-0.20到+0.20 A" "SMU1_A_1"
将一个LED与330-串联 电阻之间的ADALM1000通道A和地面。交替施加5v和0v。
为iLoop = 1:5通过产生5伏的输出打开LED。写(ADIDaq 5);暂停(0.2);通过产生0伏输出关闭LED。写(ADIDaq 0);暂停(0.2);结束
为了了解LED的I-V特性,扫描从0v到5v的电压值范围,并测量每个值的电流。所有测量数据的聚合提供了在一定电压范围内通过LED的电流图表。
V = linspace(0,5,250)';i = readwrite(ADIDaq,v,“OutputFormat”,“矩阵”);
当你有测量数据时,你可以将其可视化。您还可以计算一个数学模型,在测量范围内近似LED的行为。
绘制测量数据。情节(v,我,“线宽”2);持有在;网格在;ylabel (“我(安培)”);包含(“V (V)”);标题({“LED I-V特性曲线”;'和五阶多项式近似'});
使用五阶多项式拟合数据,并将获取的数据与五阶多项式近似的LED模型叠加。
approxPoly = polyfit(v,i,5);
画出近似的数据。
情节(v, polyval (approxPoly, v),“- k”,“线宽”1);
基于五阶多项式近似,你可以找到表示曲线线性增加部分的一阶近似。LED打开时的电压大约是这条线与电压轴相交的地方。
求出穿过信号的线性部分的直线。
normErr = -1;errThreshold = 0.001;numPointsForLine = numel(v) - 10;而(numPointsForLine >) && (normErr < errThreshold)近似= polyval(approxPoly,v(numPointsForLine:end));[linearPoly, errorStruct] = polyfit(v(numPointsForLine:end),approximation, 1);numPointsForLine = numPointsForLine - 5;normErr = errorStruct.normr;结束
在测量范围内计算线性多项式。与代表任何泄漏电流的水平线相交的值就是LED打开时的电压。
LEDThreshold = 1.2;漏水电流=平均值(i(v
画出曲线的线性部分。
情节(v (minIndex-1:结束),polyval (linearPoly, v (minIndex-1:结束),“红色”,“线宽”2,“线型”,“——”)
圈出LED打开时的大概电压。
leakageCurrent情节(v (minIndex),“o”,“线宽”2,“MarkerSize”, 20岁,“MarkerEdgeColor”,“红色”)标题(sprintf (计算LED开启时的电压:%1.2fVv (minIndex)));
写(ADIDaq 0);近清晰ADIDaq