Matlab平台下的仪表仿真技术.docx

上传人:b****0 文档编号:9779468 上传时间:2023-05-21 格式:DOCX 页数:19 大小:563.86KB
下载 相关 举报
Matlab平台下的仪表仿真技术.docx_第1页
第1页 / 共19页
Matlab平台下的仪表仿真技术.docx_第2页
第2页 / 共19页
Matlab平台下的仪表仿真技术.docx_第3页
第3页 / 共19页
Matlab平台下的仪表仿真技术.docx_第4页
第4页 / 共19页
Matlab平台下的仪表仿真技术.docx_第5页
第5页 / 共19页
Matlab平台下的仪表仿真技术.docx_第6页
第6页 / 共19页
Matlab平台下的仪表仿真技术.docx_第7页
第7页 / 共19页
Matlab平台下的仪表仿真技术.docx_第8页
第8页 / 共19页
Matlab平台下的仪表仿真技术.docx_第9页
第9页 / 共19页
Matlab平台下的仪表仿真技术.docx_第10页
第10页 / 共19页
Matlab平台下的仪表仿真技术.docx_第11页
第11页 / 共19页
Matlab平台下的仪表仿真技术.docx_第12页
第12页 / 共19页
Matlab平台下的仪表仿真技术.docx_第13页
第13页 / 共19页
Matlab平台下的仪表仿真技术.docx_第14页
第14页 / 共19页
Matlab平台下的仪表仿真技术.docx_第15页
第15页 / 共19页
Matlab平台下的仪表仿真技术.docx_第16页
第16页 / 共19页
Matlab平台下的仪表仿真技术.docx_第17页
第17页 / 共19页
Matlab平台下的仪表仿真技术.docx_第18页
第18页 / 共19页
Matlab平台下的仪表仿真技术.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Matlab平台下的仪表仿真技术.docx

《Matlab平台下的仪表仿真技术.docx》由会员分享,可在线阅读,更多相关《Matlab平台下的仪表仿真技术.docx(19页珍藏版)》请在冰点文库上搜索。

Matlab平台下的仪表仿真技术.docx

Matlab平台下的仪表仿真技术

 

《Matlab平台下的仪表仿真技术》

实验报告

 

班级:

371711班

学号:

37171114

姓名:

苑海涛

 

2010年12月

一、实验目的

用MATLAB软件仿真设计一些常用的飞行仪表(高度表、转弯侧滑仪、地平仪等)。

通过仪表仿真增加对飞机性能的了解,熟悉飞行仪表的工作原理,并能够进行仿真设计。

二、实验内容

使用MATLAB软件设计气压高度表并进行仿真。

三、实验要求

提供在功能上和外观上尽可能逼真的气压式高度表,可以实现至少两种类型高度(如标准气压高度、场压高度)的切换显示。

四、实验原理

图1各种高度示意图

高度表原理:

利用标准大气压下高度与大气压力的关系,利用真空膜盒测量大气压力,从而表示飞行高度。

理论依据:

在标准大气条件下,高度和大气压力具有一一对应的关系。

图2标准大气条件下高度和大气压力的关系

五、程序设计思路

本程序分为三个模块,分别是界面模块、指针数字模块和停止模块。

界面模块完成界面整体布局,以及程序载入时各参量变量的初始化工作。

指针数字模块主要实现是指针的移动和整千米一下数字的显示,完成指针加数字结合的显示气压高度的功能。

停止模块实现仿真过程中的停止功能。

六、详细程序流程

 

界面模块:

在程序加载时被调用,开始绘制表盘及指针。

此处在GUI界面内添加了开始、停止、加速、减速及输入高度的一些功能。

指针数字模块:

此模块主要实现高度的显示。

首先单击开始,高度表按照预先设定的速度匀速升高,再单击结束时可以停止。

在高度显示过程中若点击加速或者减速,在下一次开始时高度表的变化速度相应的增加或者减少。

当有高度输入时,高度表的起始显示从此高度开始,高度表相当于始终显示的是绝对高度。

停止模块:

当想结束程序时可以单击,用于停止程序。

七、仿真界面(程序运行截图和说明)

Figure1是程序载入时的截图。

Figure2是程序在仿真时的截图。

此时上升速度比较小,运行一段时间才到21m

Figure3是加速后过了一段时间的显示高度为672m

Figure4是在相对高度输入5000时,高度表从5km开始显示,此时为5112m。

Figure5是程序结束时截图,说明结束时指针显示保留。

八、实验体会

通过本课程的学习,对于MATLAB语言有了大致了解,以及MATLAB平台下的仪表仿真技术有了初步认识。

完成大作业是一个很考验人也很锻炼人的过程。

在开始做高度表时,感到压力很大,MATLAB这门语言以前虽有接触,但基本都停留在一些数学的应用上。

应用用户图形界面还是第一次,当然这才是MATLAB的精华所在。

这次大作业主要参考了老师给提供的第二个例子。

本来想把加速减速功能做成实时可以改变指针速度的,但是实际操作修改程序时,发现这么做还是有些难度的,所以就做成每再次运行程序时才是以最新的速度改变的。

MATLAB不仅是一个工具更是一个值得掌握的软件,它功能强大,并有适合基础比较弱的人掌握,在以后的学习中,我会更加认真学习此软件。

九、程序清单(附关键代码及注释)

alt.m

moreoff

clc

clear

closeall

globalFLAGSTOPiabcDsizeDATAMhptRidxX1idxX2idxY1idxY2idxAxpyp;

c=0;

a=0:

D:

11000;

D=0.1;

a=a/100;

b=a-1;

sizeDATA=max(size(a));

FLAGSTOP=0;

Mh=figure;

set(gcf,'menubar','none','Resize','off','Name','VIRTUALALTITUDEINDICATOR','NumberTitle','off');

axisequal;

boxon

axisoff

holdon

t=-pi:

0.1:

(pi+0.1);

R=12;

fill((R+3)*sin(t),(R+3)*cos(t),'k')

plot(16*cos(pi*1/4),16*sin(pi*1/4),'o','markersize',40,'LineWidth',40,'Color','k')

plot(16*cos(pi*3/4),16*sin(pi*3/4),'o','markersize',40,'LineWidth',40,'Color','k')

plot(16*cos(pi*5/4),16*sin(pi*5/4),'o','markersize',40,'LineWidth',40,'Color','k')

plot(16*cos(pi*7/4),16*sin(pi*7/4),'o','markersize',40,'LineWidth',40,'Color','k')

plot(16*cos(pi*1/4),16*sin(pi*1/4),'o','markersize',25,'LineWidth',20,'Color','w')

plot(16*cos(pi*3/4),16*sin(pi*3/4),'o','markersize',25,'LineWidth',20,'Color','w')

plot(16*cos(pi*5/4),16*sin(pi*5/4),'o','markersize',25,'LineWidth',20,'Color','w')

plot(16*cos(pi*7/4),16*sin(pi*7/4),'o','markersize',25,'LineWidth',20,'Color','w')

plot(16*cos(pi*1/4),16*sin(pi*1/4),'o','markersize',20,'LineWidth',20,'Color','k')

plot(16*cos(pi*3/4),16*sin(pi*3/4),'o','markersize',20,'LineWidth',20,'Color','k')

plot(16*cos(pi*5/4),16*sin(pi*5/4),'o','markersize',20,'LineWidth',20,'Color','k')

plot(16*cos(pi*7/4),16*sin(pi*7/4),'o','markersize',20,'LineWidth',20,'Color','k')

line([16*cos(pi*1/4)+1.6,16*cos(pi*1/4)-1.6],[16*sin(pi*1/4),16*sin(pi*1/4)],'LineWidth',5,'Color',[111]);

line([16*cos(pi*3/4)+1.6,16*cos(pi*3/4)-1.6],[16*sin(pi*3/4),16*sin(pi*3/4)],'LineWidth',5,'Color',[111]);

line([16*cos(pi*5/4)+1.6,16*cos(pi*5/4)-1.6],[16*sin(pi*5/4),16*sin(pi*5/4)],'LineWidth',5,'Color',[111]);

line([16*cos(pi*7/4)+1.6,16*cos(pi*7/4)-1.6],[16*sin(pi*7/4),16*sin(pi*7/4)],'LineWidth',5,'Color',[111]);

plot(R*sin(t),R*cos(t),'Color','w');

plot((R+0.3)*sin(t),(R+0.3)*cos(t),'Color','k');

plot(R*sin(t),R*cos(t),'LineWidth',1.5,'Color','w');

plot(0,0,'o','markersize',6,'LineWidth',5,'Color','w')

%text(-0.5,10,'0','FontSize',12,'FontWeight','bold')

plot((R+0.3)*sin(t),(R+0.3)*cos(t),'LineWidth',2.5,'Color','w')

axisequal;

boxon

axisoff

holdon

fill(R*sin(t),R*cos(t),'k')

p=a;

[sizexpsizeyp]=size(p);

xp=8*cos(p+pi/2);%Ö¸Õë

yp=8*sin(p+pi/2);

idxA=0:

pi/6:

2*pi;

idxX1=12*cos(idxA);%¿Ì¶È

idxY1=12*sin(idxA);

idxX2=11*cos(idxA);

idxY2=11*sin(idxA);

forj=1:

12

line([idxX1(j)+.1,idxX2(j)+.1],[idxY1(j),idxY2(j)],'LineWidth',6,'Color',[.5.5.5]);

end

forj=1:

60

line([12*cos(pi*j/30)+.1,11.5*cos(pi*j/30)+.1],[12*sin(pi*j/30),11.5*sin(pi*j/30)],'LineWidth',3,'Color',[.5.5.5]);

end

forj=1:

60

line([12*cos(pi*j/30),11.5*cos(pi*j/30)],[12*sin(pi*j/30),11.5*sin(pi*j/30)],'LineWidth',3,'Color','w');

end

forj=1:

12

line([idxX1(j),idxX2(j)],[idxY1(j),idxY2(j)],'LineWidth',6,'Color','w');

end

holdon

fortexti=0:

11

text(cos(pi/2-texti*pi/6)*(R-2),sin(pi/2-texti*pi/6)*(R-2),num2str(texti),'FontSize',12,'FontWeight','bold','Color','w')

end

plot(0,0,'o','markersize',6,'LineWidth',5,'color','w')

text(cos(2*pi/2)*(R-6)+0.3-2.5,sin(2*pi/2)*(R-6)+0.1,'ALT',...

'FontSize',24,...

'FontWeight','bold',...

'Color',[0.50.50.5])

text(cos(2*pi/2)*(R-6)-2.5,sin(2*pi/2)*(R-6),'ALT',...

'FontSize',24,...

'FontWeight','bold',...

'Color','w')

text(cos(pi/2)*(R-5)-1.3,sin(pi/2)*(R-5),'Km','FontSize',16,'FontWeight','bold','Color',[0.50.50.5])

text(cos(pi/2)*(R-5)-1.5,sin(pi/2)*(R-5),'Km','FontSize',16,'FontWeight','bold','Color','w')

axisequal;

boxon

axisoff

line([00],[04],'LineWidth',4,'Color','w');

line([00],[08],'LineWidth',2,'Color','w');

uicontrol(Mh,'style','text',...

'unit','normalized','position',[0.5850.480.080.07])

uicontrol(Mh,'style','text',...

'unit','normalized','position',[0.590.4850.070.06],...

'horizontal','center',...

'BackgroundColor','k');

edith=uicontrol(Mh,'style','edit','unit','normalized',...

'position',[0.470.000.110.09],...

'horizontal','center',...

'string','000',...

'callback','c=str2num(get(edith,''string''))');

uicontrol(Mh,'style','push','unit','normalized',...

'position',[0.080.050.110.09],...

'horizontal','left','string','¼ÓËÙ','fontsize',8,...

'callback','FLAGSTOP=0,plotABS');

uicontrol(Mh,'style','push','unit','normalized',...

'position',[0.850.050.110.09],...

'horizontal','left','string','¼õËÙ','fontsize',8,...

'callback','FLAGSTOP=0,plotREL');

uicontrol(Mh,'style','push','unit','normalized',...

'position',[0.080.850.110.09],...

'horizontal','left','string','¿ªÊ¼','fontsize',8,...

'callback','i=1;plotABS');

uicontrol(Mh,'style','push','unit','normalized',...

'position',[0.850.850.110.09],...

'horizontal','left','string','Í£Ö¹','fontsize',8,...

'callback','FLAGSTOP=1;plotSTOP');

plotABS.m

functionplotABS

globalFLAGSTOPiabcDsizeDATAMhptRidxX1idxX2idxY1idxY2idxAxpyp;

D=D+0.1;

p=a+(c/1000)*ones(size(a));

xp=8*cos(pi/2-p*pi/6);%Ö¸Õë

yp=8*sin(pi/2-p*pi/6);

idxA=0:

pi/6:

2*pi;

FLAGSTOP=0

plot(R*sin(t),R*cos(t),'LineWidth',1.5,'Color','w');

plot(0,0,'o','markersize',6,'LineWidth',5,'Color','w')

%text(-0.5,10,'0','FontSize',12,'FontWeight','bold')

plot((R+0.3)*sin(t),(R+0.3)*cos(t),'LineWidth',2.5,'Color','w')

fill(R*sin(t),R*cos(t),'k')

%idxA=0:

pi/6:

2*pi;

%idxX1=12*cos(idxA);%¿Ì¶È

%idxY1=12*sin(idxA);

%idxX2=11*cos(idxA);

%idxY2=11*sin(idxA);

forj=1:

12

line([idxX1(j)+.1,idxX2(j)+.1],[idxY1(j),idxY2(j)],'LineWidth',6,'Color',[.5.5.5]);

end

forj=1:

60

line([12*cos(pi*j/30)+.1,11.5*cos(pi*j/30)+.1],[12*sin(pi*j/30),11.5*sin(pi*j/30)],'LineWidth',3,'Color',[.5.5.5]);

end

forj=1:

60

line([12*cos(pi*j/30),11.5*cos(pi*j/30)],[12*sin(pi*j/30),11.5*sin(pi*j/30)],'LineWidth',3,'Color','w');

end

forj=1:

12

line([idxX1(j),idxX2(j)],[idxY1(j),idxY2(j)],'LineWidth',6,'Color','w');

end

fortexti=0:

11

text(cos(pi/2-texti*pi/6)*(R-2),sin(pi/2-texti*pi/6)*(R-2),num2str(texti),'FontSize',12,'FontWeight','bold','Color','w')

end

while(i

text(cos(pi/2)*(R-5)-1.3,sin(pi/2)*(R-5),'Km','FontSize',16,'FontWeight','bold','Color',[0.50.50.5])

text(cos(pi/2)*(R-5)-1.5,sin(pi/2)*(R-5),'Km','FontSize',16,'FontWeight','bold','Color','w')

text(cos(2*pi/2)*(R-6)+0.3-2.5,sin(2*pi/2)*(R-6)+0.1,'ALT',...

'FontSize',24,...

'FontWeight','bold',...

'Color',[0.50.50.5])

text(cos(2*pi/2)*(R-6)-2.5,sin(2*pi/2)*(R-6),'ALT',...

'FontSize',24,...

'FontWeight','bold',...

'Color','w')

plot(0,0,'o','markersize',6,'LineWidth',5,'color','w')

line([0xp(i)/2],[0yp(i)/2],'LineWidth',4,'Color','w');

line([0xp(i)],[0yp(i)],'LineWidth',2,'Color','w');

pIFun=p(i);

DispStr=num2str(round((pIFun-floor(pIFun))*1000));

ifmax(size(DispStr))==2

DispStr=['0',DispStr];

end

ifmax(size(DispStr))==1

DispStr=['0','0',DispStr];

end

uicontrol(Mh,'style','text',...

'unit','normalized','position',[0.5850.480.080.07])

uicontrol(Mh,'style','text',...

'unit','normalized','position',[0.590.4850.070.06],...

'horizontal','center',...

'BackgroundColor','k',...

'ForegroundColor','w',...

'string',DispStr,...

'fontsize',15);

pause(0.07)

line([0xp(i)/2],[0yp(i)/2],'LineWidth',4,'Color','k');

line([0xp(i)],[0yp(i)],'LineWidth',4,'color','k');

ifFLAGSTOP==1

FLAGSTOP==0;

break

end

i=i+1;

end

line([0xp(i)/2],[0yp(i)/2],'LineWidth',4,'Color','w');

line([0xp(i)],[0yp(i)],'LineWidth',2,'Color','w');

FLAGSTOP==0;

plotREL.m

functionplotREL

globalFLAGSTOPiabcDsizeDATAMhptRidxX1idxX2idxY1idxY2idxAxpyp;

D=D-0.1;

p=a+(c/1000)*ones(size(a));

xp=8*cos(pi/2-p*pi/6);%Ö¸Õë

yp=8*sin(pi/2-p*pi/6);

idxA=0:

pi/6:

2*pi;

FLAGSTOP=0

plot(R*sin(t),R*cos(t),'LineWidth',1.5,'Color','w');

plot(0,0,'o','markersize',6,'LineWidth',5,'Color','w')

%text(-0.5,10,'0','FontSize',12,'FontWeight','bold')

plot((R+0.3)*sin(t),(R+0.3)*cos(t),'LineWidth',2.5,'Color','w')

fill(R*sin(t),R*cos(t),'k')

%idxA=0:

pi/6:

2*pi;

%idxX1=12*cos(idxA);%¿Ì¶È

%idxY1=12*sin(idxA);

%idxX2=11*cos(idxA);

%idxY2=11*sin(idxA);

forj=1:

12

line([idxX1(j)+.1,idxX2(j)+.1],[idxY1(j),idxY2(j)],'LineWidth',6,'Color',[.5.5.5]);

end

forj=1:

60

line([12*cos(pi*j/30)+.1,11.5*cos(pi*j/30)+.1],[12*sin(pi*j/30),11.5*sin(pi*j/30)],'LineWidth',3,'Color',[.5.5.5]);

end

forj=1:

60

line([12*cos(pi*j/30),11.5*cos(pi*j/30)],[12*sin(pi*j/30),11.5*sin(pi*j/30)],'LineWidth',3,'Color','w');

end

forj=1:

12

line([idxX1(j),idxX2(j)],[idxY1(j),idxY2(j)],'LineWidth',6,'Color','w');

end

fortexti=0:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2