传感器课程设计报告.docx
- 文档编号:10507190
- 上传时间:2023-02-17
- 格式:DOCX
- 页数:17
- 大小:81.31KB
传感器课程设计报告.docx
《传感器课程设计报告.docx》由会员分享,可在线阅读,更多相关《传感器课程设计报告.docx(17页珍藏版)》请在冰豆网上搜索。
传感器课程设计报告
《传感器原理及应用》综合实验—仿真部分
任务书
一、目的与要求
本实验的目的是配合《传感器原理与应用》课程的传感器静态特性与动态特性相关部分的内容,利用Matlab/Simulink进行仿真验证。
培养学生利用计算机进行数据处理和模型仿真的能力,为今后从事相关领域的工作打下基础。
要求学生了解传感器静态和动态特性的基础知识,掌握Matlab/Simulink进行数据分析和仿真的基本方法。
具体要求为:
掌握基于最小二乘法的数据处理方法,能够进行简单的数据处理;掌握传感器动态特性的分析手段,了解不同阶次特性的基本性质,并能够进行相应的仿真实验,对传感器动态特性有感性认识。
二、主要内容
1、教师讲解Matlab/Simulink使用的基本知识,包括信号源、传递函数、信号显示等内容;
2、学习使用Matlab进行最小二乘法数据处理,分别通过自己编写函数和使用Matlab提供的函数实现相同功能;
3、学习传感器动态特性,包括零阶、一阶和二阶传感器动态特性,并采用Matlab/Simulink进行仿真验证。
(一)数据处理
K型热电偶特性(温度范围在-200~1300℃,查表温度间隔为100℃)如下表所示:
温度(℃)
K型热电偶分度(mV)
-200
-5.8914
-100
-3.5536
0
0
100
4.0962
200
8.1385
300
12.2086
400
16.3971
500
20.6443
600
24.9055
700
29.129
800
33.2754
900
37.3259
1000
41.2756
1100
45.1187
1200
48.8382
1300
52.4103
对该特性进行曲线拟合,要求:
1.按照最小二乘法原理编写Matlab程序;
2.采用Matlab自带的拟合函数进行线性拟合,对前面的结果验证;
3.采用Matlab自带的拟合函数进行二次曲线拟合,并给出线性拟合的误差分析。
(二)传感器动态特性分析
利用Matlab/Simulink对传感器动态特性进行分析,输入信号分别采用为阶跃信号和正弦信号,要求:
1.对零阶传感器的动态特性进行仿真,并对仿真结果进行讨论;
2.对一阶传感器的动态特性进行仿真,并对仿真结果进行讨论;
3.对二阶传感器的动态特性进行仿真,并对仿真结果进行讨论,特别需要对阻尼比系数分情况进行讨论。
三、进度计划
序号
实验内容
完成时间
备注
1
讲解Matlab/Simulink软件的使用方法
1月4日
2
学习传感器静态、动态特性,并采用Matlab/Simulink进行验证
1月5-11日
3
交实验报告,答辩
1月11-12日
4
注:
在不做传感器实验的时间内完成这部分仿真实验。
四、实验成果要求
完成实验报告,实验报告内容应包括上述数据处理和传感器动态特性分析两部分实验分析结果,同时,实验报告附件中应包含:
1.提供曲线拟合部分的自己编写的程序和采用Matlab自带函数进行验证的代码;
2.提供Matlab/Simulink搭建的仿真图。
五、考核方式
交实验报告的同时进行答辩,根据实验报告和答辩情况综合评定成绩。
指导教师:
2010年12月24日
一、目的与要求
本实验的目的是配合《传感器原理与应用》课程的传感器静态特性与动态特性相关部分的内容,利用Matlab/Simulink进行仿真验证。
培养学生利用计算机进行数据处理和模型仿真的能力,为今后从事相关领域的工作打下基础。
要求学生了解传感器静态和动态特性的基础知识,掌握Matlab/Simulink进行数据分析和仿真的基本方法。
具体要求为:
掌握基于最小二乘法的数据处理方法,能够进行简单的数据处理;掌握传感器动态特性的分析手段,了解不同阶次特性的基本性质,并能够进行相应的仿真实验,对传感器动态特性有感性认识。
二、设计内容
1、学习使用Matlab进行最小二乘法数据处理,分别通过自己编写函数和使用Matlab提供的函数实现相同功能。
按照最小二乘法原理编写Matlab程序
程序如下:
clc
symsytxt;
m1=0;
m2=0;
m3=0;
m4=0;
x=[-200-10001002003004005006007008009001000110012001300];
y=[-5.8914-3.553604.09628.138512.208616.397120.644324.905529.12933.275437.325941.275645.118748.838252.4103];
fori=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;%按最小二乘法编写的程序
k%输出k值
a0%输出a0
输出结果:
k=
0.0403
a0=
0.6191
采用Matlab自带的拟合函数进行线性拟合,对前面的结果验证。
clc
symsytxt;
m1=0;
m2=0;
m3=0;
m4=0;
x=[-200-10001002003004005006007008009001000110012001300];
y=[-5.8914-3.553604.09628.138512.208616.397120.644324.905529.12933.275437.325941.275645.118748.838252.4103];
figure
(1);
subplot(3,1,1);stem(x,y,'fill');
xlabel('温度/℃');
ylabel('K型热电偶分度/mV');
title('原始数据点');
axis([-3001400-1560]);
fori=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([-3001400-1560]);
a=polyfit(x,y,1);%使用matlab自带程序进线性拟合
xi=-200:
0.001:
1300;
yi=polyval(a,xi);
subplot(3,1,3);plot(xi,yi);%二者曲线进行比较
xlabel('温度/℃');
ylabel('K型热电偶分度/mV');
title('matlab自带拟合函数拟合曲线');
axis([-3001400-1560]);
k%输出k值
a0%输出a0
a%自带线性拟合系数
figure
(2);
stem(x,y,'fill');
xlabel('温度/℃');
ylabel('K型热电偶分度/mV');
axis([-3001400-1560]);
holdon;
plot(xi,yi);
legend('原始数据点','拟合曲线');
sprintf('自带函数拟合直线方程:
Y=%0.5gx+%0.5g',a
(1),a
(2))
输出结果:
k=
0.0403
a0=
0.6191
a=
0.04030.6191
ans=
自带函数拟合直线方程:
Y=0.040274x+0.61911
由输出结果可知依据最小二乘法编写的程序与matlab自带函数相吻合。
采用Matlab自带的拟合函数进行二次曲线拟合,并给出线性拟合的误差分析。
clc
x=[-200-10001002003004005006007008009001000110012001300];
y=[-5.8914-3.553604.09628.138512.208616.397120.644324.905529.12933.275437.325941.275645.118748.838252.4103];
b=polyfit(x,y,2);
xj=-200:
0.001:
1300;
yj=polyval(b,xj);
stem(x,y,'fill');
xlabel('温度/℃');
ylabel('K型热电偶分度/mV');
axis([-3001400-1560]);
holdon;
plot(xj,yj);
legend('原始数据点','二次拟合曲线');
sprintf('二次曲线方程:
Y=(%0.5g)x^2+%0.5gx+%0.5g',b
(1),b
(2),b(3))
输出结果:
ans=
二次曲线方程:
Y=(4.7012e-007)x^2+0.039757x+0.66142
线性拟合误差分析:
clc
x=[-200-10001002003004005006007008009001000110012001300];
y=[-5.8914-3.553604.09628.138512.208616.397120.644324.905529.12933.275437.325941.275645.118748.838252.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时
输出波形:
由图可见零阶传感器其输出与输入成正比,并且去信号频率无关,因此无幅值和相位失真问题,因此零阶传感器具有理想的动态特性。
对一阶传感器的动态特性进行仿真,并对仿真结果进行讨论。
一阶传感器的方程用算子式表示可写成:
(γD+1)Y(t)=KX(t),
式中K——静态灵敏度;
γ——时间常数。
一阶传感器的
运算传递函数为:
W(D)=Y/X(D)=K/(1+γD);
拉式传递函数为:
W(S)=Y/X(S)=K/(1+γS);
频率传递函数为:
W(jw)=Y/X(jw)=K/(1+γjw);
仿真程序图与结果图如下:
输出波形:
由图可见随着时间的推移正弦信号输出越来越趋于稳定正弦波,阶跃信号输出越来越接近于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时,阶跃函数出现过冲,即超过稳定值,经过一段时间振荡趋于稳定进入+-5%误差带;正弦函数能经过一定时间稳定与原信号曲线幅度一致。
临界阻尼ζ=1时,无过冲现象,经过一段时间趋于原阶跃信号,其所需时间比欠阻尼短;正弦函数稳定后幅值比原信号小。
过阻尼ζ>1时,无过冲现象,经过一段时间趋于原阶跃信号,其所需时间比临界阻尼时间长;正弦函数稳定后幅值比原信号小,且比临界阻尼小。
由上可知在ζ>=1时:
ζ越小,阶跃信号输出越快的趋向于阶跃原信号;ζ越小,正弦信号输出函数幅值越大。
三、课程设计总结
1.通过这两个星期的课程设计与学习,我重温了一遍传感器原理的基本概念及相关理论,巩固了MATLAB基本使用方法,掌握了MATLAB处理的基本编程技术,实现了数据的最小二乘法线性拟合及传感器的仿真。
2.MATLAB是一个很好的编程平台,我要在今后的学习中继续深入学习,让MATLAB发挥更大的作用,以帮助学习高深知识。
3.传感器课程设计虽然只有短短的一周,但是它是我们向工程问题靠近的很重要的训练,我体会理论知识必须联系实际,这样才是学习的最佳途径。
三、参考文献
[1]罗军辉罗勇江等MATLAB7.0在数字信号处理中的应用机械工业出版社第1版2005.5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 传感器 课程设计 报告