综合实验报告
( 2015 -- 2016年度第一学期)
名 称: 传感器原理与应用 题 目: 院 系: 控制与计算机工程 班 级: 测控1303 学 号: 学生姓名:指导教师: 设计周数: 一周
成 绩:
日期:2016 年1月15
日
一、 课程设计(综合实验) 的目的与要求
1、本实验的目的是配合《传感器原理与应用》课程的传感器静态特性与动态特性相关部分的内容,利用 Matlab/Simulink 进行仿真验证。培养学生利用计算机进行数据处理和模型仿真的能力,为今后从事相关领域的工作打下基础。
2、要求学生了解传感器静态和动态特性的基础知识,掌握 Matlab/Simulink 进行数据分析和仿真的基本方法。具体要求为:掌握基于最小二乘法的数据处理方法,能够进行简单的数据处理;掌握传感器动态特性的分析手段,了解不同阶次特性的基本性质,并能够进行相应的仿真实验,对传感器动态特性有感性认识。
二、 实验正文
1、学习使用 Matlab 进行最小二乘法数据处理,分别通过自己编写函数和使用 Matlab 提供的函数实现相同功能。
①按照最小二乘法原理编写 Matlab 程序。 程序如下:
x=(-200:100:1300);
y=[-5.8914,-3.5536,0,4.0962,8.1385,12.2086,16.3971,20.6443,24.9055,29.129,33.2754,37.3259,41.2756,45.1187,48.8382,52.4103]; z1=sum(x); z2=z1^2;
z3=sum(power(x,2)); z4=sum(x.*y); z5=sum(y); n=length(x);
k=(n*z4-z1*z5)/(n*z3-z2); a0=(z3*z5-z1*z4)/(n*z3-z2); fprintf('k=%f\n',k); fprintf('a0=%f',a0); y1=k*x+a0; plot(x,y1,'-b',x,y,'*r'); 输出结果:
k=0.040274 a0=0.619114
拟合直线和各点的分布图见下图:
-200
[***********]2001400
②采用 Matlab 自带的拟合函数进行线性拟合,对前面的结果验证。 程序如下:
clc syms yt xt; m1=0; m2=0; m3=0; m4=0;
x=(-200:100:1300);
y=[-5.8914,-3.5536,0,4.0962,8.1385,12.2086,16.3971,20.6443,24.9055,29.129,33.2754,37.3259,41.2756,45.1187,48.8382,52.4103]; figure(1);
subplot(3,1,1);stem(x,y,'fill'); xlabel('温度/℃');
ylabel('K型热电偶分度/mV'); title('原始数据点'); axis([-300 1400 -15 60]); for i=1:16; m1=m1+x(i); m2=m2+y(i); m3=m3+x(i)*y(i); m4=m4+x(i)*x(i); end
k=(16*m3-m1*m2)/(16*m4-m1^2); a0=(m4*m2-m1*m3)/(16*m4-m1^2); xt=x; yt=a0+k*xt;
subplot(3,1,2);plot(xt,yt); xlabel('温度/℃');
ylabel('K型热电偶分度/mV'); title('最小二乘法程序拟合曲线'); axis([-300 1400 -15 60]); a=polyfit(x,y,1); xi=-200:0.001:1300; yi=polyval(a,xi);
subplot(3,1,3);plot(xi,yi); xlabel('温度/℃');
ylabel('K型热电偶分度/mV'); title('matlab自带拟合函数拟合曲线'); axis([-300 1400 -15 60]); k a0 a figure(2);
stem(x,y,'fill'); xlabel('温度/℃');
ylabel('K型热电偶分度/mV'); axis([-300 1400 -15 60]); hold on; plot(xi,yi);
legend('原始数据点' ,’拟合曲线’);
sprintf('自带函数拟合直线方程:Y=%0.5gx+%0.5g',a(1),a(2)) 输出结果:
k = 0.0403 a0 = 0.6191 a =
0.0403 0.6191 ans =
自带函数拟合直线方程:Y=0.040274x+0.61911
K 型热电偶分度/m V K 型热电偶分度/m V K 型热电偶分度/m V
原始数据点
6040
200
-200
200
600800温度/℃
最小二乘法程序拟合曲线
400
1000
1200
1400
6040
200
-200
6008001000温度/℃
matlab 自带拟合函数拟合曲线200
400
1200
1400
6040
200
-200
200
400
600温度/℃
800
1000
1200
1400
605040
K 型热电偶分度/m V
3020100-10
-200
200
400
600温度/℃
800
1000
1200
1400
由输出结果可知依据最小二乘法编写的程序与matlab 自带函数相吻合。
③采用 Matlab 自带的拟合函数进行二次曲线拟合,并给出线性拟合的误差分析。 程序如下:
clc
x=(-200:100:1300);
y=[-5.8914,-3.5536,0,4.0962,8.1385,12.2086,16.3971,20.6443,24.9055,29.129,33.2754,37.3259,41.2756,45.1187,48.8382,52.4103];
b=polyfit(x,y,2); xj=-200:0.001:1300; yj=polyval(b,xj); stem(x,y,'fill');
xlabel('温度/℃');
ylabel('K型热电偶分度/mV'); axis([-300 1400 -15 60]); hold on; plot(xj,yj);
legend('原始数据点',’二次拟合曲线’);
sprintf('二次曲线方程:Y=(%0.5g)x^2+%0.5gx+%0.5g',b(1),b(2),b(3))
输出结果:
ans =
二次曲线方程:Y=(4.7012e-07)x^2+0.039757x+0.66142
605040
K 型热电偶分度/m V
3020100-10
-200
200
400
600温度/℃
800
1000
1200
1400
线性拟合误差分析:
clc
x=(-200:100:1300);
y=[-5.8914,-3.5536,0,4.0962,8.1385,12.2086,16.3971,20.6443,24.9055,29.129,33.2754,37.3259,41.2756,45.1187,48.8382,52.4103]; c=polyfit(x,y,1); yn=polyval(c,x); s=yn-y; m=max(s)
v=m/(c(1)*(1300-c(1)*(-200)))
输出结果:
m =
0.6191 v =
0.0118
所以线性拟合后的最大偏差为0.6191mV ,线性度为1.18%。
2、学习传感器动态特性,包括零阶、一阶和二阶传感器动态特性,并采用 Matlab/Simulink 进行仿真验证。 ①对零阶传感器的动态特性进行仿真,并对仿真结果进行讨论。 零阶传感器的方程为:
Y(t)=KX(t), 式中 K----静态灵敏度。 零阶传感器的传递函数为:
Y/X(D)=Y/X(S)=Y/X(jw)=b0/a0=K 仿真程序图与结果图如下:
当K=1.5时
由图可见零阶传感器其输出与输入成正比,并且与信号频率无关,因此无幅值和相位失真问题,因此零阶传感器具有理想的动态特性。
②对一阶传感器的动态特性进行仿真,并对仿真结果进行讨论。 一阶传感器的方程用算子式表示可写成:
(TD+1)Y(t)=KX(t), 式中K---静态灵敏度; T---时间常数。
一阶传感器的运算传递函数为:
W(D)=Y/X(D)=K/(1+TD); 拉氏传递函数为:
W(S)=Y/X(S)=K/(1+TS); 频率传递函数为: W(jw)=Y/X(jw)=K/(1+Tjw); 仿真程序图与结果图如下:
由图可见随着时间的推移正弦信号输出越来越趋于稳定的正弦波,阶跃信号输出越来越接近于1。
③对二阶传感器的动态特性进行仿真,并对仿真结果进行讨论,特别需要对阻尼比系数分情况进行讨论。 运算传递函数为:
W(D)=Y/X(D)=K/(D^2/w0^2+2§D/w0+1) 拉式传递函数为:
W(S)=Y/X(S)=K/(S^2/w0^2+2§S/w0+1) 频率传递函数为:
W(jw)=Y/X(jw)=K/(jw^2/w0^2+2§jw/w0+1) 仿真程序图与结果图如下:
其中§分别为0.5、1、1.5。
由图中看出:
欠阻尼§
临界阻尼§=1时,无过冲现象,经过一段时间趋于原阶跃信号,其所需时间比欠阻尼短;正弦函数稳定后幅值比原信号小。
过阻尼§>1时,无过冲现象,经过一段时间趋于原阶跃信号,其所需时间比临界阻尼短;正弦函数稳定后幅值比原信号小,且比临界阻尼小。
由上可知在§≥1时:§越小,阶跃信号输出越快的趋向于阶跃原信号;§越小,正弦信号输出函数幅值越大。
三、课程设计(综合实验)总结或结论
1、通过这一个星期的课程设计与学习,我重温了一遍传感器原理的基本概念及相关理论,巩固了MATLAB 基本使用方法,掌握了MA TLAB 处理的基本编程技术,实现了数据的最小二乘法线性拟合及传感器的仿真。
2、MA TLAB 是一个很好的编程平台,我要在今后的学习中继续深入学习,让MA TLAB 发挥更大的作用,以帮助学习高深知识。
3、传感器课程设计虽然只有短短的一周,但是它是我们向工程问题靠近的很重要的训练,要体会理论知识必须联系实际,这样才是学习的最佳途径。
四、参考文献
[1] 王化祥, 张淑英 传感器原理及应用 天津大学出版社 第三版 2007.2
综合实验报告
( 2015 -- 2016年度第一学期)
名 称: 传感器原理与应用 题 目: 院 系: 控制与计算机工程 班 级: 测控1303 学 号: 学生姓名:指导教师: 设计周数: 一周
成 绩:
日期:2016 年1月15
日
一、 课程设计(综合实验) 的目的与要求
1、本实验的目的是配合《传感器原理与应用》课程的传感器静态特性与动态特性相关部分的内容,利用 Matlab/Simulink 进行仿真验证。培养学生利用计算机进行数据处理和模型仿真的能力,为今后从事相关领域的工作打下基础。
2、要求学生了解传感器静态和动态特性的基础知识,掌握 Matlab/Simulink 进行数据分析和仿真的基本方法。具体要求为:掌握基于最小二乘法的数据处理方法,能够进行简单的数据处理;掌握传感器动态特性的分析手段,了解不同阶次特性的基本性质,并能够进行相应的仿真实验,对传感器动态特性有感性认识。
二、 实验正文
1、学习使用 Matlab 进行最小二乘法数据处理,分别通过自己编写函数和使用 Matlab 提供的函数实现相同功能。
①按照最小二乘法原理编写 Matlab 程序。 程序如下:
x=(-200:100:1300);
y=[-5.8914,-3.5536,0,4.0962,8.1385,12.2086,16.3971,20.6443,24.9055,29.129,33.2754,37.3259,41.2756,45.1187,48.8382,52.4103]; z1=sum(x); z2=z1^2;
z3=sum(power(x,2)); z4=sum(x.*y); z5=sum(y); n=length(x);
k=(n*z4-z1*z5)/(n*z3-z2); a0=(z3*z5-z1*z4)/(n*z3-z2); fprintf('k=%f\n',k); fprintf('a0=%f',a0); y1=k*x+a0; plot(x,y1,'-b',x,y,'*r'); 输出结果:
k=0.040274 a0=0.619114
拟合直线和各点的分布图见下图:
-200
[***********]2001400
②采用 Matlab 自带的拟合函数进行线性拟合,对前面的结果验证。 程序如下:
clc syms yt xt; m1=0; m2=0; m3=0; m4=0;
x=(-200:100:1300);
y=[-5.8914,-3.5536,0,4.0962,8.1385,12.2086,16.3971,20.6443,24.9055,29.129,33.2754,37.3259,41.2756,45.1187,48.8382,52.4103]; figure(1);
subplot(3,1,1);stem(x,y,'fill'); xlabel('温度/℃');
ylabel('K型热电偶分度/mV'); title('原始数据点'); axis([-300 1400 -15 60]); for i=1:16; m1=m1+x(i); m2=m2+y(i); m3=m3+x(i)*y(i); m4=m4+x(i)*x(i); end
k=(16*m3-m1*m2)/(16*m4-m1^2); a0=(m4*m2-m1*m3)/(16*m4-m1^2); xt=x; yt=a0+k*xt;
subplot(3,1,2);plot(xt,yt); xlabel('温度/℃');
ylabel('K型热电偶分度/mV'); title('最小二乘法程序拟合曲线'); axis([-300 1400 -15 60]); a=polyfit(x,y,1); xi=-200:0.001:1300; yi=polyval(a,xi);
subplot(3,1,3);plot(xi,yi); xlabel('温度/℃');
ylabel('K型热电偶分度/mV'); title('matlab自带拟合函数拟合曲线'); axis([-300 1400 -15 60]); k a0 a figure(2);
stem(x,y,'fill'); xlabel('温度/℃');
ylabel('K型热电偶分度/mV'); axis([-300 1400 -15 60]); hold on; plot(xi,yi);
legend('原始数据点' ,’拟合曲线’);
sprintf('自带函数拟合直线方程:Y=%0.5gx+%0.5g',a(1),a(2)) 输出结果:
k = 0.0403 a0 = 0.6191 a =
0.0403 0.6191 ans =
自带函数拟合直线方程:Y=0.040274x+0.61911
K 型热电偶分度/m V K 型热电偶分度/m V K 型热电偶分度/m V
原始数据点
6040
200
-200
200
600800温度/℃
最小二乘法程序拟合曲线
400
1000
1200
1400
6040
200
-200
6008001000温度/℃
matlab 自带拟合函数拟合曲线200
400
1200
1400
6040
200
-200
200
400
600温度/℃
800
1000
1200
1400
605040
K 型热电偶分度/m V
3020100-10
-200
200
400
600温度/℃
800
1000
1200
1400
由输出结果可知依据最小二乘法编写的程序与matlab 自带函数相吻合。
③采用 Matlab 自带的拟合函数进行二次曲线拟合,并给出线性拟合的误差分析。 程序如下:
clc
x=(-200:100:1300);
y=[-5.8914,-3.5536,0,4.0962,8.1385,12.2086,16.3971,20.6443,24.9055,29.129,33.2754,37.3259,41.2756,45.1187,48.8382,52.4103];
b=polyfit(x,y,2); xj=-200:0.001:1300; yj=polyval(b,xj); stem(x,y,'fill');
xlabel('温度/℃');
ylabel('K型热电偶分度/mV'); axis([-300 1400 -15 60]); hold on; plot(xj,yj);
legend('原始数据点',’二次拟合曲线’);
sprintf('二次曲线方程:Y=(%0.5g)x^2+%0.5gx+%0.5g',b(1),b(2),b(3))
输出结果:
ans =
二次曲线方程:Y=(4.7012e-07)x^2+0.039757x+0.66142
605040
K 型热电偶分度/m V
3020100-10
-200
200
400
600温度/℃
800
1000
1200
1400
线性拟合误差分析:
clc
x=(-200:100:1300);
y=[-5.8914,-3.5536,0,4.0962,8.1385,12.2086,16.3971,20.6443,24.9055,29.129,33.2754,37.3259,41.2756,45.1187,48.8382,52.4103]; c=polyfit(x,y,1); yn=polyval(c,x); s=yn-y; m=max(s)
v=m/(c(1)*(1300-c(1)*(-200)))
输出结果:
m =
0.6191 v =
0.0118
所以线性拟合后的最大偏差为0.6191mV ,线性度为1.18%。
2、学习传感器动态特性,包括零阶、一阶和二阶传感器动态特性,并采用 Matlab/Simulink 进行仿真验证。 ①对零阶传感器的动态特性进行仿真,并对仿真结果进行讨论。 零阶传感器的方程为:
Y(t)=KX(t), 式中 K----静态灵敏度。 零阶传感器的传递函数为:
Y/X(D)=Y/X(S)=Y/X(jw)=b0/a0=K 仿真程序图与结果图如下:
当K=1.5时
由图可见零阶传感器其输出与输入成正比,并且与信号频率无关,因此无幅值和相位失真问题,因此零阶传感器具有理想的动态特性。
②对一阶传感器的动态特性进行仿真,并对仿真结果进行讨论。 一阶传感器的方程用算子式表示可写成:
(TD+1)Y(t)=KX(t), 式中K---静态灵敏度; T---时间常数。
一阶传感器的运算传递函数为:
W(D)=Y/X(D)=K/(1+TD); 拉氏传递函数为:
W(S)=Y/X(S)=K/(1+TS); 频率传递函数为: W(jw)=Y/X(jw)=K/(1+Tjw); 仿真程序图与结果图如下:
由图可见随着时间的推移正弦信号输出越来越趋于稳定的正弦波,阶跃信号输出越来越接近于1。
③对二阶传感器的动态特性进行仿真,并对仿真结果进行讨论,特别需要对阻尼比系数分情况进行讨论。 运算传递函数为:
W(D)=Y/X(D)=K/(D^2/w0^2+2§D/w0+1) 拉式传递函数为:
W(S)=Y/X(S)=K/(S^2/w0^2+2§S/w0+1) 频率传递函数为:
W(jw)=Y/X(jw)=K/(jw^2/w0^2+2§jw/w0+1) 仿真程序图与结果图如下:
其中§分别为0.5、1、1.5。
由图中看出:
欠阻尼§
临界阻尼§=1时,无过冲现象,经过一段时间趋于原阶跃信号,其所需时间比欠阻尼短;正弦函数稳定后幅值比原信号小。
过阻尼§>1时,无过冲现象,经过一段时间趋于原阶跃信号,其所需时间比临界阻尼短;正弦函数稳定后幅值比原信号小,且比临界阻尼小。
由上可知在§≥1时:§越小,阶跃信号输出越快的趋向于阶跃原信号;§越小,正弦信号输出函数幅值越大。
三、课程设计(综合实验)总结或结论
1、通过这一个星期的课程设计与学习,我重温了一遍传感器原理的基本概念及相关理论,巩固了MATLAB 基本使用方法,掌握了MA TLAB 处理的基本编程技术,实现了数据的最小二乘法线性拟合及传感器的仿真。
2、MA TLAB 是一个很好的编程平台,我要在今后的学习中继续深入学习,让MA TLAB 发挥更大的作用,以帮助学习高深知识。
3、传感器课程设计虽然只有短短的一周,但是它是我们向工程问题靠近的很重要的训练,要体会理论知识必须联系实际,这样才是学习的最佳途径。
四、参考文献
[1] 王化祥, 张淑英 传感器原理及应用 天津大学出版社 第三版 2007.2