第一篇:北航物理实验GPS模拟与声源定位实验报告
声源定位C++程序
#include
cout << “声源坐标为:(”< if(acos(D/sqrt(pow(A,2)+pow(B,2)))+angle2 < pai/2)else angle1 = angle2x1*(pow(x2,2)+pow(y2,2)-pow(c*dt2,2));B = y2*(pow(x1,2)+pow(y1,2)-pow(c*dt1,2))c*dt2*(pow(x1,2)+pow(y1,2)-pow(c*dt1,2));double x0,x1,x2,y0,y1,y2,t0,t1,t2,t3,A,B,D,angle1,angle2,dt1,dt2,r;x0=0,x1=0,x2=0.45;y0=0,y1=0.3,y2=0;int i = 8;while(i--){ cout <<“请输入第<<8-i<<”组时间数y据Y“<< endl;cin >> t0 >> t1 >> t2>> t3;t0 = t0 / 1000000;t1 = t1 / 1000000;t2 = t2 / 1000000;dt1 = t1t0;} // end main; 程序运行: 2、GPS模拟 C++程序: #include void GPS(double x[10] , double y[10] , double t[10] , double x1 , double y1 , int num){ double a1,a2,a3,a4,b1,b2,mult,D=0,E=0;int i;while(1){ a1 = a2 = a3 = a4 = b1 = b2 = 0;for(i = 0;i < 10;i ++){ a1 = a1-(3*pow((x[i]-x1),2)+pow((y[i]/1000-y1),2)-pow(c*t[i]/1000000,2));a2 = a2+2*(x[i]/1000-x1)*(y1-y[i]/1000);a3 = a2;a4 = a4-(3*pow((y[i]-y1),2)+pow((x[i]/1000-x1),2)-pow(c*t[i]/1000000,2)); b1 = b2 = b1+(pow((x[i]/1000-x1),2)+pow((y[i]/1000-y1),2)-pow(c*t[i]/1000000,2))*(x1-x[i]/1000);b2+(pow((x[i]/1000-x1),2)+pow((y[i]/1000-y1),2)-pow(c*t[i]/1000000,2))*(y1-y[i]/1000);} //end for;mult = a3/a1;a4-= a2*mult;b2-= b1*mult;E = b2/a4;D =(b1-a2*E)/a1;x1 += D;y1 += E;if((pow(D,2)+pow(E,2))< min)break;} // end while;x1 = x1*1000;y1 = y1*1000;cout <<”点P“<< num <<”定位于: X = “<< fixed << setprecision(8)<< x1;cout <<”(mm), Y = “<< fixed << setprecision(8)<< y1 <<”(mm)“< GPS(x,y,t1,0,0,1);GPS(x,y,t2,0,0.3,2);GPS(x,y,t3,0.45,0,3);cin>>yy;return 0;int yy;double t1[10] , t2[10] , t3[10] , x[10] , y[10]; cout << ”请输入时间数据Y(us)与坐标数据Y(mm):“ << endl;int i;for(i = 0;i <= 9;i ++){ cout << ”第“ << i+1 << ”组" << endl;cin >> t1[i] >> t2[i] >> t3[i] >> x[i] >> y[i];} // end for; } // end main; 运行结果: 1、声源定位: #include int main(){ double x0,x1,x2,y0,y1,y2,t0,t1,t2,t3,A,B,D,angle1,angle2,dt1,dt2,r;x0=0,x1=0,x2=0.3;y0=0,y1=0.45,y2=0.45;int i = 8;while(i--){ cout <<“请输入第”<<8-i<<“组时间数据”<< endl; cin >> t0 >> t1 >> t2>> t3; t0 = t0 / 1000000; t1 = t1 / 1000000; t2 = t2 / 1000000; dt1 = t0t2; A = x2*(pow(x1,2)+pow(y1,2)-pow(c*dt1,2))y1*(pow(x2,2)+pow(y2,2)-pow(c*dt2,2)); D = c*dt1*(pow(x2,2)+pow(y2,2)-pow(c*dt2,2))acos(D/sqrt(pow(A,2)+pow(B,2))); r =(pow(x1,2)+pow(y1,2)-pow(c*dt1,2))/(2*(x1*cos(angle1)+y1*sin(angle1)+c*dt1)); cout << “声源坐标为:(”< y1 += E; if((pow(D,2)+pow(E,2))< min) break;} // end while;x1 = x1*1000;y1 = y1*1000; cout <<“点P”<< num <<“定位于: X = ”<< fixed << setprecision(8)<< x1;cout <<“(mm), Y = ”<< fixed << setprecision(8)<< y1 <<“(mm)”< int main(){ int yy;double t1[10] , t2[10] , t3[10] , x[10] , y[10];cout << “请输入时间数据(us)与坐标数据(mm):” << endl;int i;for(i = 0;i <= 9;i ++){ cout << “第” << i+1 << “组:” << endl; cin >> t1[i] >> t2[i] >> t3[i] >> x[i] >> y[i];} // end for; GPS(x,y,t1,0,0.45,1);GPS(x,y,t2,0.3,0.45,2);GPS(x,y,t3,0,0,3);cin>>yy;return 0;} // end main; FPGA电气技术实践 实验报告 院(系)名称 专业名称 学生学号 学生姓名 指导教师 宇航学院 飞行器设计与工程(航天) XXXXXXXX XXXXXX XXXX 2017年11月XX日 ` ` 实验一 四位二进制加法计数器与一位半加器的设计 实验时间:2017.11.08(周三)晚 实验编号20 一、实验目的 1、熟悉QuartusII的VHDL的文本编程及图形编程流程全过程。 2、掌握简单逻辑电路的设计方法与功能仿真技巧。 3、学习并掌握VHDL语言、语法规则。 4、参照指导书实例实现四位二进制加法计数器及一位半加器的设计。 二、实验原理 .略 三、实验设备 1可编程逻辑实验箱EP3C55F484C8 一台(包含若干LED指示灯,拨码开关等)2计算机及开发软件QuartusII 一台套 四、调试步骤 1四位二进制加法计数器 (1)参照指导书实例1进行工程建立与命名。(2)VHDL源文件编辑 由于实验箱上LED指示灯的显示性质为“高电平灭,低电平亮”,为实现预期显示效果应将原参考程序改写为减法器,且”q1<= q1+1”对应改为”q1<= q1-1”,以实现每输入一个脉冲“亮为1,灭为0”。 由于参考程序中的rst清零输入作用并未实现,所以应将程序主体部分的最外部嵌套关于rst输入是否为1的判断,且当rst为1时,给四位指示灯置数”1111”实现全灭,当rst为0时,运行原计数部分。 (3)参照指导书进行波形仿真与管脚绑定等操作,链接实验箱并生成下载文件(4)将文件下载至实验箱运行,观察计数器工作现象,调试拨动开关查看是否清零。可以通过改变与PIN_P20(工程中绑定为clk输入的I/O接口)相连导线的另一端所选择的实验箱频率时钟的输出口位置,改变LED灯显示变化频率。 并且对照指导书上对实验箱自带时钟频率的介绍,可以通过改变导线接口转换输入快慢,排查由于clk输入管脚损坏而可能引起的故障。 ` 2一位半加器 (1)参照指导书实例1进行工程建立与命名。 (2)图形源文件编辑:由于实验箱上LED指示灯的显示性质为“高电平灭,低电平亮”,为实现预期显示效果应将原电路图中两个输出管脚与非门串联以实现原参考输出“高电平亮,低电平灭”。 (3)参照指导书进行波形仿真与管脚绑定等操作,链接实验箱并生成下载文件(4)将文件下载至实验箱运行,观察半加器工作现象,调试拨动开关查看进位与置数指示是否正常工作。 五、实验现象 1.四位二进制加法计数器 SW1下拨为0时,四个LED指示灯可以对输入脉冲从”0000”到”1111”进行十六位循环计数(其中亮为1,灭为0)。SW1上拨为1时可以实现四个LED灯保持全灭清零。且四位二进制加法计数器功能成功实现 2.一位半加器 SW1与SW2输入分别为”00”、”01”、”10”、”11”时,进位指示与置数指示灯分别显示”00”、”01”、”01”、”10”(其中亮为1,灭为0)。且一位半加器功能成功实现。 六、实验代码 1四位二进制加法计数器(已修改) entity count4 is port(clk:in std_logic;--waishizhong,fpga_ex2_6 rst:in std_logic;--F1 pin-ab15 q:out std_logic_vector(3 downto 0));--led4-1 end;architecture b1 of count4 is signal q1:std_logic_vector(3 downto 0); begin process(clk,rst) begin if(rst='0')then if(clk'event and clk='1')then q1<= q1-1; end if; else q1<=“1111”; end if; end process;` q<=q1;end 2一位半加器 七、结果分析 1若在加载运行文件后实验箱上无反应,可以通过更换不同频率输入管脚查看是否为实验箱自带时钟的故障。 2实验箱上LED显示灯与设计逻辑相反时可以通过修改程序逻辑或给电路图添加非门实现正逻辑显示。 ` 实验二 16×16LED点阵四字循环显示 实验时间:2017.11.08(周三)晚 实验编号20 一、实验目的 1、掌握VHDL编程技巧和各种输入输出显示方法。 2、学习并分析指导书中实例,从中发现感兴趣的题目,并以此自设计一个有内容,功能稍复杂的主、子程序综合应用例程,实现调试与验证。 3、实现LED点阵“高山仰止”四字清晰循环显示。 二、实验原理 .1 LED显示原理 16×16扫描LED点阵的工作原理同8位扫描数码管类似,其结构示意图(图1)与等效电路图(图2)如下。它有16个共阴极输出端口,每个共阴极对应有16个 LED显示灯,所以其扫描译码地址需4位信号线(管脚对应COL1-COL4),从右起为第一列且COL1-4对应”0000”。其汉字扫描码由16位段地址(从下至上管脚对应ROW1-ROW16)输入。本设计选用的LED列扫描,汉字信号行输入的方式,显示完整汉字。 图1 16×16LED点阵 图2 16×16点阵LED等效电路 列循环扫描,通过对每一列的扫描来完成对字母的现实,本设计为使列扫描符合视觉暂留要求,扫描频率至少大于16×8=128Hz,周期小于7.8ms,以此给人以连续的感觉。汉字的信息储存 用动态分时扫描技术使LED点阵模块显示图像,需要进行两步工作。第一步是在程序中建立汉字数据库。第二步是在扫描模块的控制下,配合列扫描的次序正确地输出这些数据。获得图像数据的步骤是,先将要显示的每一幅图像画在一个如(图3)所示的被分成16×16共256个小方格的矩形框中,再在有笔划下落处的小方格里填上“1”,无笔划处填上“0”,这样就形成了与这个汉字所对应的二进制数据在该矩形框上的分布,汉字取模可由专用软件进行。 ` 图3 16*16点阵显示模块 由于本实验箱为从右至左依次对应”0000”列到”1111”列,从下至上为最高位到最低位,于平时习惯的认字方向相反,所以注意在逐列扫描的设计中要对字取“反模”。 例如要在右边起第2列的从上到下数2、4、6、8行亮,则列编号为”0001”、行输入为”***0”就可以实现了。 3延时环节 为使汉字不断地循环显示,并且使每个汉子显示后停留,就需要在中间加一定的延时和循环环节。在这一环节中,可以通过修改每个显示和停留周期包含的总时钟脉冲数值来控制每个字的显示时间,运用状态机设计方法给四个汉字对应的不同输入状态进行编码,即可使汉字依次清晰显示。 三、实验设备 1可编程逻辑实验箱EP3C55F484C8 一台(包含16×16LED点阵一组等)2计算机及开发软件QuartusII 一台套 四、调试步骤 1建立工程,命名为ledgrq1616。建立VHDL程序文件命名为1ed1616grq.vhd。2按照第六部分原程序输入代码,并按所示表格绑定管脚。编写程序及绑定管脚时时注意第二部分中所叙述的扫描显示顺序以及对应取反字模的方法。 3编译无误后开启实验箱,生成.sof传输文件并下载至实验箱,确保运行模式为1,且CPRL_SW拨码开关为”00XX”。 4观察实验箱上现象,通过改接不同频率的脉冲输入管脚或改变每个字符停留周期包含的总脉冲数来保证有足够快的扫描频率与大约每个字大约一秒多的充足停留时间,并查看是否有“高山仰止”四字依次有停顿的清晰的循环显示。 五、实验现象 当时钟输入线接FRQH_Q2(3000000Hz)管脚时,设定每个周期为5000000个脉冲时,` 实现“高山仰止”在16×16LED点阵上清晰循环显示。 六、实验代码 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity led1616grq is port(clk: in std_logic;--时钟 data: out std_logic_vector(15 downto 0);--行输入 addrs: out std_logic_vector(3 downto 0));--列地址 end led1616grq; architecture chw_arc of led1616grq is signal fenpin:std_logic_vector(1 downto 0);--分频信号 signal ad:std_logic_vector(3 downto 0);--地址中转信号 begin process(clk)--产生一个大约1s的分频信号模块 variable cnt:integer:=0; variable tmp:std_logic_vector(1 downto 0); begin if clk'event and clk='1' then if cnt<5000000 then cnt:=cnt+1; else cnt:=0; if tmp=“11” then tmp:=“00”; else tmp:=tmp+1; end if; end if; end if; fenpin<=tmp;end process; process(clk)--送16位地址程序 variable js:integer:=0; variable cnt:std_logic_vector(3 downto 0); begin if clk'event and clk='1' then if js<10000 then js:=js+1; else js:=0;` if cnt=“1111” then cnt:=“0000”; else cnt:=cnt+1; end if; end if; end if;ad<=cnt; end process;process(fenpin,ad) begin case fenpin is--besure to get the opposite model of the word--and exchange the hight 8bit to the low 8bit --then write begin 1111 to 0000 when “00”=> case ad is --”高”的字模 when “0000”=>data<=“***0”;--00 00 when “0001”=>data<=“***0”;--04 00 when “0010”=>data<=“***0”;--04 FE when “0011”=>data<=“***0”;--04 82 when “0100”=>data<=“***0”;--04 02 when “0101”=>data<=“***0”;--F4 7A when “0110”=>data<=“***0”;--94 4A when “0111”=>data<=“***0”;--94 4A when “1000”=>data<=“***0”;--96 4A when “1001”=>data<=“***1”;--95 4A when “1010”=>data<=“***0”;--94 4A when “1011”=>data<=“***0”;--F4 7A when “1100”=>data<=“***0”;--04 02 when “1101”=>data<=“***0”;--04 02 when “1110”=>data<=“***0”;--04 FE when “1111”=>data<=“***0”;--04 00 when others=>null; end case; when “01”=> case ad is when “0000”=>data<=“***0”;--0000 “山”的字模 when “0001”=>data<=“***0”;--0000 when “0010”=>data<=“***0”;--7FF0 when “0011”=>data<=“***0”;--2000 when “0100”=>data<=“***0”;--2000 ` when “0101”=>data<=“***0”;--2000 when “0110”=>data<=“***0”;--2000 when “0111”=>data<=“***1”;--3FFF when “1000”=>data<=“***0”;--2000 when “1001”=>data<=“***0”;--2000 when “1010”=>data<=“***0”;--2000 when “1011”=>data<=“***0”;--2000 when “1100”=>data<=“***0”;--3FF0 when “1101”=>data<=“***0”;--0000 when “1110”=>data<=“***0”;--0000 when “1111”=>data<=“***0”;--0000 when others=>null; end case; when “10”=> case ad is when “0000”=>data<=“***0”;--0000 “仰”的字模 when “0001”=>data<=“***0”;--0000 when “0010”=>data<=“***0”;--07FC when “0011”=>data<=“***0”;--0804 when “0100”=>data<=“***0”;--0404 when “0101”=>data<=“***1”;--FFCF when “0110”=>data<=“***0”;--0000 when “0111”=>data<=“***0”;--0402 when “1000”=>data<=“***0”;--0804 when “1001”=>data<=“***1”;--1FCF when “1010”=>data<=“***0”;--0000 when “1011”=>data<=“***1”;--0007 when “1100”=>data<=“***0”;--FFF8 when “1101”=>data<=“***0”;--0060 when “1110”=>data<=“***0”;--0080 when “1111”=>data<=“***0”;--0100 when others=>null; end case; when “11”=> case ad is when “0000”=>data<=“***0”;--0000“止”的字模 when “0001”=>data<=“***0”;--4000 when “0010”=>data<=“***0”;--4000 when “0011”=>data<=“***0”;--4040 when “0100”=>data<=“***0”;--4040 when “0101”=>data<=“***0”;--4040 when “0110”=>data<=“***0”;--4040 when “0111”=>data<=“***0”;--4040 ` when “1000”=>data<=“***1”;--7FFF when “1001”=>data<=“***0”;--0400 when “1010”=>data<=“***0”;--0400 when “1011”=>data<=“***0”;--0400 when “1100”=>data<=“***1”;--7FFF when “1101”=>data<=“***0”;--4000 when “1110”=>data<=“***0”;--4000 when “1111”=>data<=“***0”;--4000 when others=>null; end case; when others=>null; end case;end process;addrs<=ad;end chw_arc; 管脚绑定如下: 七、结果分析 设备调试与程序调试一样均为FPGA目标器件功能实现的必须工作,根据加载后实际显示情况,同样可以反推出QuartusII无法直接报错的引脚绑定方面的问题以及程序书写逻辑问题,实验中具体出现的情况如下: (1)显示为一团不断闪烁的重叠形状 原因:可能为间隔时间太短 措施:应增大间隔周期数,延长停顿 `(2)字符形状与设计不同/错位 原因:如果为行顺序错位或乱序,但每一列仍为从右至左扫描,可能为ROW1-15管脚绑定错位:如果为列出现顺序及显示正确但位置错位,可能为CLK1-3管脚绑定错位;上述两种情况也可同时发生。 措施:将时钟输入频率放缓至可以看清每一列出现的顺序位置及显示内容,与所设计的字模对照,判断是哪几个ROW管脚及CLK错位,重新绑定即可。 (3)实验箱开启后毫无显示 原因:可能是工作模式的拨码开关并非”00XX”,或时钟管脚故障。 措施:选用其他频率的管脚试接;若排除管脚问题,查看模式显示数码管数值是否为1,如不是,改变工作模式,重新加载文件。 ` 实验三 蜂鸣器/扬声器电子音乐演奏 实验时间:2017.11.15(周三)晚 实验编号20 一、实验目的 1、熟练掌握QuartusII平台各模块操作及实验箱调试方法。 2、用元件例化语句调用方式,任意自选题设计一个有内容,功能较复杂的主、子程序综合应用的多模块集成例程,并实现调试与验证。 3、实现电子音乐《天空之城》的主旋律循环播放,并通过LED灯指示音符。 二、实验原理 .1、电子音符演奏 乐曲硬件电路产生音乐是和音乐频率和音乐的持续时间有关;音符的持续时间需根据乐曲的速度和每个音符的节拍数来确定。设计所用简谱及音符和频率的关系如下: 2、演奏节拍控制 该演奏电路演奏的乐曲是《天空之城》,其最小的节拍为1拍,将1拍的时长定位0.25S,则只需要再提供一个4Hz的时钟频率即可产生1拍的时长(5Hz由24MHz的基准频率分频产生),对于占用时间较长的节拍,(一定是节拍的整数倍),如全音符为4拍,2/4音符为2拍,1/4音符为1拍。 3、演奏电路模块 乐曲硬件演奏电路系统主要有音调分频器和乐曲存储模块两个部分组成,其余还有音乐节拍发生器等等。音调分频器对24MHz(由基准频率产生)的频率进行分频,得到与各个音节对应的频率输出。乐曲存储模块产生节拍控制和音阶选择信号,即在此模块中写入一个乐曲曲谱真值序列,由一个计数器来控制此序列的输出,而由计数器的计` 数时钟信号作为乐曲节拍控制信号。 4程序设计思路 实验中采用层次化设计思路,音乐发生器的设计包括四个模块:时钟分频模块、自动演奏模块、音符显示模块、音调分频模块。分好层次之后,编写每个模块的程序。 时钟分频模块通过基准时钟频率clk(24MHz)产生两个时钟信号。自动演奏模块接收4hz的时钟信号,输出音调代码。显示模块利用音调代码查找并输出对应LED灯显示情况。同时将音调对应的给8盏LED指示灯,分别显示高中低音符。音调分频模块接收音调代码对应的分频系数,并据此分频,将对应频率的信号输出给扬声器供其发声。 三、实验设备 1可编程逻辑实验箱EP3C55F484C8 一台(含蜂鸣器、扬声器、若干LED灯等)2计算机及开发软件QuartusII 一台套 四、调试步骤 1建立工程,命名为grqbeep01。建立VerilogHDL程序文件命名为grqbeep01.v。2按照第六部分原程序输入代码,并按所示表格绑定管脚。 3编译无误后开启实验箱,将时钟输入管脚P20接Q0(24000000Hz)。 4生成.sof传输文件并下载至实验箱,确保运行模式为3,且CPRL_SW拨码开关为”0110”。 5观察实验箱上现象,确定蜂鸣器与扬声器的器件使用设定方法,对比其效果差异。 五、实验现象 1跳线BZ1未调整时 下载完毕,听到完整的由蜂鸣器播放的循环《天空之城》音乐,可是声音很小,LED指示灯显示没有错误。 2跳线BZ1由23调整到12时 下载测试,听到声音洪亮的循环播放的《天空之城》音乐,并且音调很好,数码管显示音符正常,实现预期功能。 六、实验代码 `timescale 1ns / 1ps module grqbeep01(clk,beep,led);input clk;//时钟管脚 ` output beep;//蜂鸣器管脚 output [7:0]led;//led指示管脚 reg beep;reg [22:0]i;reg clk_4hz;reg [7:0]led; reg [16:0]count,div_num;reg [6:0]music;//以下为主体 always@(posedge clk)//4hz生成部分 begin if(i==23'h47868c)begin i<=0; clk_4hz=~clk_4hz;end else i=i+1'b1;end always@(posedge clk_4hz)begin if(music==7'd122)//总共的音符节拍数 music<=0;else music<=music+1'b1;end always@(posedge clk)begin if(count==div_num)begin count<=0;beep=~beep;end else count<=count+1'b1;end parameter//输入查表可得的低中高音符赫兹数 L0=17'h00000, L1=17'h1754e, L2=17'h14c81, L3=17'h1284a, L4=17'h117A8, L5=17'h14e70, L6=17'h0ddf2, L7=17'h0c5ba, M1=17'h0ba9e, ` M2=17'h0a648, M3=17'h0941f, M4=17'h08bcf, M5=17'h07c90, M6=17'h06ef9, M7=17'h062dd, H1=17'h05d68, H2=17'h05322, H3=17'h04a11, H4=17'h045e9, H5=17'h3e48, H6=17'h377d, H7=17'h316f;always@(posedge clk_4hz)begin case(music)//乐谱输入 7'd0:div_num=M6;7'd1:div_num=M7;7'd2:div_num=H1;7'd3:div_num=H1;7'd4:div_num=H1;7'd5:div_num=M7;7'd6:div_num=H1;7'd7:div_num=H1;7'd8:div_num=H3;7'd9:div_num=H3;7'd10:div_num=M7;7'd11:div_num=M7;7'd12:div_num=M7;7'd13:div_num=M7;7'd14:div_num=M7;7'd15:div_num=M7;7'd16:div_num=M3;7'd17:div_num=M3;7'd18:div_num=M6;7'd19:div_num=M6;7'd20:div_num=M6;7'd21:div_num=M5;7'd22:div_num=M6;7'd23:div_num=M6;7'd24:div_num=H1;7'd25:div_num=H1;7'd26:div_num=M5;7'd27:div_num=M5;7'd28:div_num=M5;7'd29:div_num=M5;` 7'd30:div_num=M5;7'd31:div_num=M5;7'd32:div_num=M2;7'd33:div_num=M3;7'd34:div_num=M4;7'd35:div_num=M4;7'd36:div_num=M4;7'd37:div_num=M3;7'd38:div_num=M4;7'd39:div_num=M4;7'd40:div_num=H1;7'd41:div_num=H1;7'd42:div_num=M3;7'd43:div_num=M3;7'd44:div_num=M3;7'd45:div_num=M3;7'd46:div_num=H1;7'd47:div_num=H1;7'd48:div_num=M7;7'd49:div_num=M7;7'd50:div_num=M7;7'd51:div_num=M3;7'd52:div_num=M4;7'd53:div_num=H1;7'd54:div_num=H1;7'd55:div_num=M7;7'd56:div_num=M7;7'd57:div_num=M7;7'd58:div_num=M7;7'd59:div_num=M7;7'd60:div_num=M7;//第二段乐谱 7'd61:div_num=M6;7'd62:div_num=M7;7'd63:div_num=H1;7'd64:div_num=H1;7'd65:div_num=H1;7'd66:div_num=M7;7'd67:div_num=H1;7'd68:div_num=H1;7'd69:div_num=H3;7'd70:div_num=H3;7'd71:div_num=M7;7'd72:div_num=M7;` 7'd73:div_num=M7;7'd74:div_num=M7;7'd75:div_num=M7;7'd76:div_num=M7;7'd77:div_num=M3;7'd78:div_num=M4;7'd79:div_num=M6;7'd80:div_num=M6;7'd81:div_num=M6;7'd82:div_num=M5;7'd83:div_num=M6;7'd84:div_num=M6;7'd85:div_num=H1;7'd86:div_num=H1;7'd87:div_num=M5;7'd88:div_num=M5;7'd89:div_num=M5;7'd90:div_num=M5;7'd91:div_num=M5;7'd92:div_num=M5;7'd93:div_num=M2;7'd94:div_num=M3;7'd95:div_num=M4;7'd96:div_num=M4;7'd97:div_num=H1;7'd98:div_num=H1;7'd99:div_num=H1;7'd100:div_num=M7;7'd101:div_num=H1;7'd102:div_num=H2;7'd103:div_num=H2;7'd104:div_num=H3;7'd105:div_num=H3;7'd106:div_num=H1;7'd107:div_num=H1;7'd108:div_num=H1;7'd109:div_num=M7;7'd110:div_num=M6;7'd111:div_num=M6;7'd112:div_num=M7;7'd113:div_num=M7;7'd114:div_num=M5;7'd115:div_num=M5;7'd116:div_num=M6;` 7'd117:div_num=M6;7'd118:div_num=M6;7'd119:div_num=M6;7'd120:div_num=M6;7'd121:div_num=M6;endcase end always@(div_num)//定义每一种音符的LED指示方案 begin case(div_num) L5,H5:led=8'b1111_1111;L6,H6:led=8'b0111_1111;L7,M1:led=8'b0011_1111;M2,M3:led=8'b0001_1111;M4,L4,H4,M5:led=8'b0000_1111;M6,M7:led=8'b0000_0111;H1,L1:led=8'b0000_0011;H2,L2:led=8'b0000_0001;H3,L3:led=8'b0000_0000;default: led=8'bx;endcase end endmodule 管脚绑定如下: 七、结果分析 1实验指导书由于篇幅有限,并未介绍全部硬件的管脚连接与使用方法,但是实验室中的完整实验箱说明书可以查阅到所有硬件资料。例如本实验中,指导书上只是概略提及了模式3中有BZSP接口可以实现蜂鸣器/扬声器放音,却并未提及调用切换方法,在老师帮助下在实验箱完整说明书中找到BZ1跳线使用方法,最终实现扬声器响亮播放。 2实验中的实际运行输入时钟频率必须与程序设计频率完全一致,设计程序也要优先参考实验箱所提供的自身时钟,否则输出音调和分频后的输出节拍均会因基准频率不符而有明显变化,可能有完全变调或频率过低而声音失真的情况。 ` 实验感想 本次实验前后时间跨度有三周,从中收获的不仅仅是指导书中的一种新的Ada类编程语言的使用方法,更是一种对于短时间内接纳新的理论并迅速结合已知储备,实现实践运用与二次创新的能力锻炼。 能够借此机会下定决心,实现很久之前就有的学习Verilog的目标,更加深刻感受到C类编程语法的强大之处,同时也再一次锻炼了查找学习资源与阅读自学的能力。 为了能够深刻学习并学以致用,以上三个实验只是成果的一小部分,关于TFT_LCD以及LCD1602的驱动控制,以及Verilog语法规范与设计思路所读的40多篇文献,与两本课本,调试的17组程序,虽然来不及在课堂上展示,但是在我自己购置的手册齐全的DJ51单片机与我的TMS320F28335的DSP开发板上,均实现了非常令人喜悦的显示效果。而且实际上我所缺的,不能很方便找到的资源,其实就是那本完整的硬件说明书,但是至于其他,收获惊喜的比想象多了不少。对于硬件控制设计的理解也从大二的“仅仅是单片机”“不就是驱动个电机吗”,有了更多的深入的思考。 毕竟,“高山仰止,景行行止,虽不能至,心向往之”。 各种编程语言与平台,最终都是用不同的方式叙述同一种逻辑。编程的使用,只是让构思的逻辑与想法最快生成可以感受到的成果的途径,是表达的工具,也是最基础的链接理论到实物的媒介,但是其中最不可替代的只是一直存在的想法而已。 ` 记忆金属水车演示实验报告 可靠性与系统工程学院 13141011 张勇 一、实验原理: 记忆金属水车利用的是记忆金属材料的“形状记忆效应”。记忆金属材料主要包括钛-镍系形状记忆合金、铜基系形状记忆合金和铁系形状记忆合金等。记忆金属材料有以下特点: 1、弯曲量大,塑性高; 2、在记忆温度以上恢复以前形状; 3、当温度达到某一数值时,材料内部的晶体结构会发生变化,从而导致了外形的变化。 “形状记忆效应”是指具有一定形状的固体材料,在某一低温状态下经过塑性变形后,通过加热到这种材料固有的某一临界温度以上时,材料又恢复到初始形状的现象。利用的是某些合金在固态时其晶体结构随温度发生变化的规律。这个临界温度称为“变态温度”,各种合金都有自己的变态温度。 记忆金属水车利用的就是形状记忆效应,当被高温加热时金属片恢复到初始形状,给水一个作用力,同时水给金属片一个反作用力,使水车转动。 二、记忆金属的应用: 形状记忆材料作为新型功能材料在航空航天、自动控制系统、医学、能源等领域具有重要的应用。形状记忆合金已广泛用于人造卫星天线、机器人和自动控制系统、仪器仪表、医疗设备和能量转换材料。 1、高技术中的应用: 形状记忆合金应用最典型的例子是制造人造卫星天线。由Ti—Ni 合金板制成的天线能卷入卫星体内,当卫星进入轨道后,利用太阳能或其他热源加热就能在太空中展开。 2、智能方面的应用: 形状记忆合金兼有感知和驱动功能,若复合在工作机构中并配上微处理器,便成为智能材料,可广泛用于各种自动调节和控制装置。如农艺温室窗户的自动开闭装置,自动电子干燥箱,自动启闭的电源开关,火灾自动报警器,消防自动喷水龙头等。 3、在能量转换中的应用: 形状记忆合金可作为能量转换材料一热发动机。它是利用状记忆合金在高温和低温时发生相变,伴随形状的改变,产生极大的应力,从而实现热能=机械能的相互转换。 4、医学上的应用: 作医用生物材料使用的主要是Ti-Ni合金。Ti-Ni合金强度高,耐腐蚀,抗疲劳,无毒副作用,生物相容性好,可以埋入人体作生物硬组织的修复材料。可作为消除凝固血栓用的过滤器、人工心脏等。 课程代码 : 0517 70 09 9 研究生课程试卷 2017-2018学年 第一学期期末 《飞行力学实验I》 飞行原理实验报告 考试时间 2018 年 11 月 1 日 姓名: 苏雨 学号: ZY1805316 专业: 飞行器设计 指导教师: 王维军 北京航空航天大学 航空科学与工程学院 2018 年 11 月 飞机失速尾旋现象研究 第一章:失速尾旋现象介绍 在我从事航模生涯这些年以来,有一种十分危险的飞行现象,导致了我多架模型飞机坠毁。这就是在飞行中有时会出现飞机突然失去控制,一边下坠,一边偏侧翻转,操纵无效直到坠地。经查阅资料,了解到这种飞行现象称为失速尾旋。 失速:失速是当机翼攻角(迎角)增大到一定的程度(临界迎角)后,机翼上表面气流分离,导致升力减小所发生的现象。飞机将低头下沉,直至获得足够升力飞行。在高度低时发生失速是危险的,高度足够高时,可以练习失速的改出,改出失速的基本操作是迅速推杆到底采用俯冲姿态,等速度大于等于 1.3 倍失速速度时,缓慢向后拉杆改出至平飞。 尾旋(螺旋):当一侧机翼先于另一侧机翼失速时,飞机会朝先失速的一侧机翼方向沿飞机的纵轴旋转,称为螺旋或尾旋。发生螺旋式非常危险的事情,有些飞机在设计制造时是禁止飞机进入螺旋的,这样的飞机进入螺旋姿态后,很难改出。可以改出的飞机改出尾旋的基本方法是推杆到底,并向相反方向拉杆,如果发动机以高速运转,必须立即收油门到慢车,向螺旋相反方向蹬满舵,螺旋停止后,使用失速改平的方法。成功的关键是飞行员的技术和飞机的性能。 全世界每年飞机事故中因失速发生的占事故总数约 30%~40%,如果飞行员认知不清、处置不及时准确,飞机很可能在极短时间内进入失速尾旋,若在低空小高度时飞机进入失速尾旋处置不当,很可能会造成机毁人亡的等级事故,研究失速与尾旋的预防措施与改出方法,对考核飞机边界飞行的操控性、安全性,挖掘飞机的机动性能以及保证战斗生存率与飞行安全意义重大。 第二章:失速尾旋现象 原理分析2.1 失速现象原理分析 飞机在飞行时,机翼翼型中心与气流来流方向的夹角为迎角,当迎角增加到抖振迎角时,机翼上气流开始分离,机翼开始出现了抖振,此时机翼升力系数还在上升,当迎角增加到临界迎角时,机翼表面气流分离出现了严重分离,飞机升力系数急剧下降,可见失速根源是由于机翼表面气流分离造成,失速也包括平尾、鸭翼等控制翼面的气流分离,导致机翼和飞机其它控制翼面失去部分或全部效能,在失速过程中如果飞机升力支撑不了飞机重量,飞机就会掉高度(图 1、图 2),临界迎角表征着飞机抗失速能力,飞机临界迎角越大,飞机抗失速能力越大,其中一代、二代战机临界迎角约为 10°~25°、三代战机约为 25°~50°、四代战机约为 50°~70°,飞行中仰角,其中θ为俯仰角、φ为偏航角、γ为滚转 角(下同)。 图 图 1 1 飞机失速状况 在失速初期,机翼翼型中心迎角小于抖动迎角,机翼气流虽然分离,但对其它翼面无影响,此时飞行员对飞机操纵感觉仍正常。 当继续增大接近抖振迎角时,飞机结构对翼面上较强的分离气流产生气动激励振动响应现象,即机翼抖振,同时飞机也可能出现轻微自动仰俯和机头横摆等现象。 在失速中期,机翼翼型中心迎角介于抖振迎角和临界迎角之间,飞行员可以明显感觉翼面出现较强的抖振现象,但升力仍然随迎角增大而增大。 飞机失速后期,机翼翼型中心迎角超过临界迎角时,飞机进入深失速,翼面上强烈的气流分离会影响到副翼、平尾、方向舵等后翼面的稳定性,使飞机出现了剧烈抖振与颠簸、侧滑、航向发散(如俯仰振荡、机头摇晃等不稳定现象)、飞机下坠、飞行阻力增加、飞行速度急剧减小等变态现象。 2.2 2 尾旋 现象原理分析 飞机失速后期,当翼型中心迎角远超过临界迎角后,失速加剧,飞机速度、升力、舵面操纵性、航向稳定性都会减小,飞机带有侧滑现象,当一侧机翼先于另一侧机翼失速(侧滑时,侧滑侧机翼先失速)时,飞机会朝先失速的一侧机翼方向沿飞机的纵轴边滚转边急剧下滑(侧滑角很大,侧滑小球甚至偏置极限),同时也绕立轴、横轴不断旋转,飞机出现这种重心沿小半径螺旋线轨迹急剧下滑的气动自转现象,说明飞机已经进入失速尾旋,飞行员必须立即处置。可见失速与尾旋的主要危害是来自飞机的变态失控、飞行员失去方向感、飞机安全高度丧失三个方面。 正螺旋是由正飞进入的螺旋,发生正螺旋时,飞行员身体一直没有离开座椅,飞机座舱盖基本向上,通过前风挡看到机头在地面画圈,看不到旋转地中心地标;反螺旋是由倒飞进入的螺旋,发生反螺旋时,飞行员身体离开座椅,头盔顶着座舱盖,飞机座舱盖基本冲下,能看到旋转地中心地标;根据尾旋时飞机俯仰角的不同,尾旋还可分为陡尾旋、缓尾旋和平尾旋。 图 图 2 2 飞机尾旋 第三章: 飞机失速尾旋的预防3.1 飞机设计中预防 尾旋 措施 飞机设计中预防失速尾旋的措施主要有:合理设计飞机增升装置(如加装鸭翼、边条翼、涡流发生器、吹风襟翼、翼刀等),采用新的飞行控制技术(如放宽静稳定性 RSS 控制技术、推力矢量控制技术、主动涡流控制 AVC 技术、机动载荷控 VLC 技术、多变量重构技术等),能使飞机临界迎角不断扩大,飞机甚至在 0°-360°迎角范围,飞机操控性依然稳定;优化迎角限制器(推杆器或抖杆器)、音响与灯光等失速告警装置设计,使告警鲜明可靠;视情增装尾旋改出伞和尾旋改出火箭,使飞机进入尾旋后仍然能从容安全地改出。 3.2 2 飞行操作 中预防 尾旋 措施 在飞力实验课程中操作塞斯纳飞机进行飞行时就能发现,当飞机速度很低,并且操纵杆控制量较大,打舵较猛时飞机容易发生失速。因此,为了避免飞机失速和失速尾旋,飞机在包括盘旋、收敛转弯等特技机动飞行时,飞行员对杆舵的动作量不要过大过猛,否则俯迎角变化速率过快,在惯性作用下,飞机很容易出现迎角超控现象,尤其对于后掠翼和三角翼飞机或是临界迎角较小的飞机,飞行员更应依据飞行速度时刻掌控好飞行迎角。 在飞行员训练时,应当防患于未然,加入失速尾旋改出科目训练。更换机型飞行与危险科目飞行,飞行前要有技术交底、编写专门的应急处置预案,并组织必要的飞行预先演练,飞行员对抖动迎角、临界迎角、失速告警、演练高度、飞 机最低安全高度、飞行包线边界等飞行知识有充分的认知。 3.3 3 飞行环境中预防 尾旋 措施 避免飞机在恶劣气象条件下,如风切变、垂直阵风、飓风、晴空湍流、飓风、突风等大气乱流,或过冷雨雪和霜冻等气象条件下飞行,以免飞机迎角增大到临界迎角以上而造成飞机失速。一旦飞机不可避免地进入结冰区时,通常情况下应迅速改变飞行高度、飞机增速、减小飞机俯仰角、及时脱离结冰层区域,同时打开飞机防冰系统,对发动机、空速管、迎角与侧滑角传感器等部件加温,尽早酝酿失速尾旋改出程序,必要时抛掉飞机外挂,同时要求飞行员柔和操纵杆舵。此外,飞行中应避免飞机进入其它飞机尾流。 第四章:失速尾旋的处理措施41.1 失速的改出措施 在飞力实验课程操纵塞斯纳飞机进行模拟飞行时,我有意让飞机处于低速大迎角状态,使飞机失速。经多次实验,我发现当飞机失速后,应当停止过于猛烈的拉杆,让飞机先俯冲一段距离,待飞机速度恢复至 70-80mile/h 左右时,柔和将飞机拉至平飞,再缓缓爬升恢复高度。切忌猛烈拉杆或打副翼。4..2 2 尾旋 的改出措施 改出尾旋关键是迅速制止飞机旋转,然后设法减小飞机迎角,降低飞机的姿态角,通过下降高度换取速度,要求飞机心须有足够安全高度(2000m~2500m以上为宜),然后依据飞机滚转速度、载荷、下坠速度、姿态、剩余高度等情况视情实施改出。改出尾旋方法很多,基本要点为用脚蹬蹬平方向舵(方向舵中立)或反尾旋滚转方向蹬舵(只有反尾旋方向蹬舵才能滞转,切忌反尾旋滚转方向压驾驶杆),以修正侧滑和滞转(侧滑带来的尾旋滚转是顺机翼失速、旋转一侧);副翼中立(驾驶杆横向中立)或顺尾旋滚转方向压驾驶杆(能够迅速滞转);如果发动机以高速运转,须立即收油门到慢车,当旋转完全被制止、迎角完全减小、飞机速度恢复足够大后,再柔和拉杆改出尾旋,改出过程中要沉着冷静注意侧滑仪、速度表、高度表。 第五章:小结 飞机的失速尾旋现象虽然一度被称为“死亡陷阱”,但我们只要搞清它的发生机理,在飞机设计和飞行员训练中采取预防措施,研究新的防尾旋措施,例如:“反尾旋伞”,失速尾旋也会变得不那么可怕。第二篇:声源定位和GPS模拟实验编程
第三篇:FPGA实验报告北航电气技术实验
第四篇:北航物理演示实验
第五篇:北航飞力实验课实验报告