华中科技大学 测控技术与系统实验报告 下载本文

1. 未考虑电阻箱电阻,对电压求2次平均(正反)后得出的实验数据:

单片机显示温度(℃) 1 6 12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92 97 102 107 112 117 122 127 132 137 142 147 152 温度(℃) 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105 110 115 120 125 130 135 140 145 150

电阻箱电阻(Ω) 100.0 102.0 104.0 105.9 107.9 109.9 111.8 113.8 115.8 117.7 119.7 121.7 123.6 125.5 127.5 129.4 131.4 133.4 135.2 137.2 139.1 141.0 143.0 144.9 146.8 148.7 150.6 152.5 154.4 156.3 158.2 电压(V) 1.000 1.015 1.030 1.045 1.060 1.076 1.091 1.105 1.121 1.135 1.150 1.165 1.180 1.196 1.210 1.225 1.240 1.254 1.269 1.284 1.299 1.314 1.329 1.344 1.358 1.373 1.387 1.400 1.416 1.431 1.445 实验数据处理(散点和拟合曲线图见下页图2):

T—U特性关系的拟合曲线为:T=336.729u-337.189 多数温度的测量值与给定值之间的差值为2摄氏度。 绝对误差 △=2℃ 非线性误差 δ=2/150 x100%=1.3%

2. 去除电阻箱电阻(0.45欧姆),对电压求4次平均(2次正反)后得出的实验数据:

单片机显示温度(℃) 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101 106 111 116 121 126 131 136 142 147 152 温度(℃) 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105 110 115 120 125 130 135 140 145 150 电阻箱电阻(Ω) 99.6 101.5 103.5 105.5 107.5 109.4 111.4 113.4 115.3 117.3 119.3 121.2 123.2 125.1 127.0 129.0 130.9 132.9 134.8 136.7 138.7 140.6 142.5 144.4 146.3 148.2 150.2 152.1 154.0 155.9 157.8 电压(V) 1.000 1.015 1.030 1.046 1.062 1.076 1.092 1.107 1.122 1.137 1.153 1.167 1.183 1.197 1.212 1.227 1.242 1.257 1.272 1.286 1.302 1.316 1.331 1.345 1.360 1.374 1.390 1.404 1.418 1.433 1.447 实验数据处理(散点和拟合曲线图见下页图3):

T—U特性关系的拟合曲线为:T=336.729u-337.189

多数温度(0-135℃)的测量值与给定值之间的差值为1摄氏度,仅140-145℃的误差为1℃,测量的准确性得到很大的改善。

绝对误差 △=2℃ 非线性误差 δ=1/150 x100%=1.3% (0-150℃)

附图:

图2 未考虑电阻箱阻值使得拟合曲线

图3 去除电阻箱阻值使得拟合曲线

实验分析:

1) 从以上两组实验的参照中,可以得出,热电阻的电阻箱自身的阻值对误差的测量存在

一定的影响。应该校准电阻箱的阻值进行电压的测量。

2) 温度较高处(140℃以上)的测量误差比温度较低处的测量误差大。观察Pt100的分度

表后发现阻值的变化也并非完全线性变化,如0℃—10℃之间的电阻差为3.96Ω,而到了140℃—150℃之间的电阻差为3.80Ω,发现等温差时的电阻差随着温度的升高在减小,而我们在实验数据拟合时采用最小二乘法拟合,因此这是高温处的误差会比较大的原因。而我也在考虑,对于测得的实验数据要不要使用高次拟合以提高测量精度?(如2次拟合)。

3) 对电压值进行重复多次测量很有必要,能在一定程度上消除重复性带来的误差。能够

提高测量精度。

4) 本次实验中,我们小组有一个不足的地方是仅在数码管上显示温度的个位数以上的位

数,未能显示小数点以后的位数,导致测量精度降低,主要是程序的实现问题。实验后我们积极总结,又重新更改了程序,将在接下来程序注释中对这部分功能进行修正。

实验误差总结:

实验过程中,一旦一些细节不注意,就会给实验带来较大的误差,下面我对本次实验中可能会带来误差的地方进行归纳和总结,我们在实验过程中的误差可能产生的原因带下划线:

自行总结~

七、核心程序注释

// CKXT-I 型综合实验仪上4个按键的控制功能配置的程序 while(1) { //对采集到的温度值进行标定 if(KEY0 == LEFT_KEY) // 在电压为1V时按左键采集记录 { KEY0 &= 0; disp_flag = 0; AD_INL= GetADCResult(0); } if(KEY0 == RIGHT_KEY) // 在电压为1.5V时按子右键采集记录 { KEY0 &= 0; disp_flag = 0; AD_INH= GetADCResult(0); } voltL = AD_INL*2500.0/4096; // 将电压为1V时的AD值转化为电压值 voltH = AD_INH*2500.0/4096; // 将电压为1.5V时的AD值转化为电压值 for(i=0;i<100;i++) // 进行100次采样 { AD_IN = GetADCResult(0); //采集实时电压输入点 voltM = AD_IN*2500.0/4096; //将AD值转化为电压值 volt+=(voltM-voltL)*500/(voltH-voltL)+1000; // 对采集到的电压值进行修正 } volt=volt/100; // 求取100次采样的平均值

if(KEY0 == MID_L_KEY) // 按中左键显示采集的电压值 { KEY0 &= 0; disp_flag = 0; DisIntNum(volt); volt=0; }

if(KEY0 == MID_R_KEY) // 按中右键显示温度值,配置参量disp_flag { KEY0 &= 0; disp_flag = 1; }

if(disp_flag) {

/*将拟合公式计算求得的浮点型温度值乘以10,通过整数的数码管显示出含1个小数点位的温度*/ TEMPERATURE=(336.729*volt+337.189)*10; DisIntNum(TEMPERATURE); CH452_Write(CH452_SET_BIT + 0x002b); //显示小数点 } else { DisIntNum(volt); CH452_Write(CH452_SET_BIT + 0x003b); volt=0; }

//显示小数点

}

// CKXT-I 型综合实验仪上数码管显示程序

void DisIntNum(int num) {

int quotient,remainder; remainder = num; quotient = num/10; CH452_Write(0x0800 + remainder); remainder = quotient; quotient = quotient/10; CH452_Write(0x0900 + remainder); remainder = quotient; quotient = quotient/10; CH452_Write(0x0a00 + remainder); remainder = quotient; quotient = quotient/10;