




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
测试与光电工程学院课程设计任务书 测控技术与仪器 系 090812 班 学号 09081209 姓名 王若珏 课题名称: 电流环磁场的分布 课题要求:1. 建立电流环磁场模型2. 掌握图形的绘制3. 编写图形显示界面4. 显示电流环磁场分布图课题进程:第一周:确定使用哪种计算机语言编程; 编写主要功能。第二周:程序的完善、运行与调试;撰写课程设计报告。 指导教师: 袁丽华 第14页(共13页)【摘要】 MATLAB是由美国MathWorks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 本课程设计根据毕奥一萨伐尔定律推导出圆环电流磁场分布的积分表示,利用MATLAB的符号积分得出计算结果,并绘制磁场分布曲线。并通过GUI制作可交互式界面进行仿真与演示。本课程设计选用MATLAB R2008a软件。 关键词: 圆环电流;磁场;MATLAB;符号积分;GUI 目录一 引言11.1 课题简介11.2 课题制作要点11.3 MATLAB软件1二 理论分析22.1 毕奥一萨伐尔定律22.2 电流元在圆环外的磁场22.3 电流元在圆环内的磁场32.4 距离圆心z处的磁感应强度3三 程序设计43.1 GUI界面设计43.1.1 创建GUI文件43.1.2 GUI布局与控件设计43.1.3 GUI菜单栏设计63.2 功能实现63.2.1 菜单功能63.2.2 绘图设置相关控件功能实现7四 GUI运行效果114.1 GUI初始化效果114.2 菜单栏效果114.3 绘图效果12五 心得体会 13六 参考文献131 引言1.1 课题简介圆电流是一个经典的物理模型。对圆电流内磁场分布特性的研究,在宏观上可以改善线圈绕组在电机中的应用。微观上。可以给分子电流提供理论基础,对进一步研究磁介质的磁性特征也有重要参考价值。本课题主要着重于对电流环磁场进行建模与仿真,根据毕奥一萨伐尔定律通过设定电流环半径、电流强度,模拟不同情况下磁场与磁感线的分布情况,并绘制成图像。 1.2 课题制作要点 电流环磁场参数的设定 电流环磁场的建模与仿真 可交互式GUI界面的设计1.3 MATLAB软件简介MATLAB是由美国MathWorks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。MATLAB是一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C+ 。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能而且对于一些其他软件所没有的功能,MATLAB同样表现了出色的处理能力。同时对一些特殊的可视化要求,另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。 2 理论分析2.1 毕奥一萨伐尔定律毕奥一萨伐尔定律是以实验为基础经过科学抽象而得到的,描述的是电流元在空间任一点产生的磁感应强度。原则上利用毕奥一萨伐尔定律并结合磁感应强度叠加原理,可以计算任意形状的电流所产生的磁场。 毕奥萨伐尔定律指出:载流导线上的电流元在真空中某点P的磁感度dB的大小与电流元的大小成正比,与电流元和从电流元到P点的位矢r之间的夹角 的正弦成正比,与位矢r的大小的平方成反比,即: 上式中,为位矢的单位矢量。此即毕奥萨伐尔定律的公式表述。2.2 电流元在圆环外的磁场 图1 电流元在电流环外的磁场如图1所示,根据毕奥一萨伐尔定律,任一电流元在P点产生的磁感应强度 ,考虑到,, 有(1)。2.3 电流元在圆环内的磁场 图2 电流元在电流环内的磁场 如图2所示,电流元在P点所产生的磁感应强度,即(2)。2.4 距离圆心z处的磁感应强度比较电流元在圆环内、外的磁场表达式,两式仅相差一个负号。该负号体现了两种情况下磁场方向正好相反。若规定垂直纸面向外为磁感应强度的正方向,则电流元在圆环内、外产生的磁感应强度可统一表示为( 2 )式的形式。结合磁感应强度叠加原理,整个圆环电流在距圆心处产生的磁感应强度为: 3 程序设计3.1 GUI界面设计3.1.1 创建GUI文件打开MATLAB软件后,点击菜单栏中的“GUIDE”按钮,进入“GUIDE quick start”,选择“Create New GUI”选项卡,选择“Blank GUI(default)”创建一空白GUI文档。并命名为“cichang1.fig”如图3所示。图3 创建一空白GUI3.1.2 GUI布局与控件设计 GUI布局如图4,所用控件罗列于表1。图4 GUI布局控件名称控件属性控件用途FontSizeString(Title)TagPanel15绘图设置uipanel4放置绘图设置的其他控件Panel15视角切换uipanel3放置用于视角切换的控件Axesaxes1显示磁场及磁感线分布图像Static Text25带电电流环周围空间的磁场分布text1标题Static Text15电流值text3显示Static Text15Atext4电流值单位Static Text15环半径text5显示Static Text15mtext6环半径单位Listbox15电流环的磁场分布图;电流环的磁感线分布图listbox1选择绘图类型Push Button15绘制图像pushbutton2绘制图像Push Button15重置参数pushbutton7重置参数Edit Text15edit3设置电流参数值Edit Text15edit4设置环半径数值Edit Text15测试图edit1显示图像名称Radio Button12自由视角radiobutton1开启三维图像自由视角Radio Button12锁定视角radiobutton1关闭三维图像自由视角表1 所用控件3.1.3 GUI菜单栏设计为使用户获得更方便的使用体验,故增加菜单栏。点击“Menu Editor”进行制作。如图5。图5 菜单栏编辑3.2 功能实现GUI界面设计过后,对相关控件的“View Callbacks”中的函数进行编辑,以实现既定功能。3.2.1 菜单功能(1) 菜单栏中的退出功能 点击“Menu Editor”中的“退出”选项,设置Tag属性为“Untitled_1”,并对回调函数进行编辑。如图6.图6 退出功能编辑程序代码如下:function Untitled_1_Callback(hObject, eventdata, handles)selection=questdlg(是否关闭,get(gcf,Name),窗口?, . Close ,get(gcf,Name),.,是,否,是);if strcmp(selection,否) return; else clc;%当选择关闭时,清空所有matla输入面上的所有错误信息,同时关闭图像窗口 clear all;delete(gcf); End(2) 菜单栏中的说明功能 点击“Menu Editor”中的“说明”选项,设置Tag属性为“Untitled_2”,并对回调函数进行编辑。程序代码如下:function Untitled_2_Callback(hObject, eventdata, handles)msgbox(利用毕奥萨伐尔定律作图,说明)3.2.2 绘图设置相关控件功能实现 (1) 选择绘制图像类型 当选择“listbox1”中的某一选项时,坐标轴下方的“EditText”也显示相应的文字说明。鼠标右键点击“listbox1”选择“View Callbacks”中的“Callback”进行编辑。如图7。图7 程序代码如下:function listbox1_Callback(hObject, eventdata, handles)selected.index=get(handles.listbox1,value);str=get(handles.listbox1,string);set(handles.edit1,string,strselected.index);(2) 绘制图像按钮功能实现 当使用者选择好所要绘制的图像类型后,点击“绘制图像”按钮,则在坐标轴中出现相应的图像。图像下方的文本框中显示图像名称。对“PushButton 2”的回调函数进行编辑。程序代码如下:function pushbutton2_Callback(hObject, eventdata, handles)axes(handles.axes1);cla;popup_sel_index = get(handles.listbox1, Value);Rh=str2double(get(handles.edit4, String); %通过edit4输入环半径值I0=str2double(get(handles.edit3, String); %通过edit3输入电流值switch popup_sel_index case 1mu0=4*pi*1e-7; c0=mu0/(4*pi)*I0; Nh=40; %将电流分段为40段x=linspace(-3,3,Nh);y=x; %确定观察点的范围 thta0=linspace(0,2*pi,Nh+1); %环周的分段数 thta1=thta0(1:Nh);y1=Rh*cos(thta1); %环各段矢量的起点坐标y1,z1;z1=Rh*sin(thta1);thta2=thta0(2:Nh+1); y2=Rh*cos(thta2); %环各段矢量的起点坐标y2,z2; z2=Rh*sin(thta2); xc=0;yc=(y2+y1)/2;zc=(z2+z1)/2; %计算环各段矢量中点的3个坐标分量 dlx=0;dly=y2-y1;dlz=z2-z1; %计算环各段矢量dl的3个长度分量 NGx=Nh;NGy=NGx; %确定网格数for i=1:NGy %循环计算各网格点上的B(x,y)值 for j=1:NGx rx=x(j)-xc;ry=y(i)-yc;rz=0-zc; r3=sqrt(rx.2+ry.2+rz.2).3; dlxr_x=dly.*rz-dlz.*ry; dlxr_y=dly.*rx-dlx.*rz; Bx(i,j)=sum(c0*dlxr_x./r3); %把环各段产生的磁场分量累加 By(i,j)=sum(c0*dlxr_y./r3); B=(Bx.2+By.2).0.5; %计算B的大小 endendsurf(x,y,B); %绘制磁场分布图像shading interpgrid on case 2mu0=4*pi*1e-7; c0=mu0/(4*pi)*I0;Nh=40; x=linspace(-3,3,Nh);y=x; thta0=linspace(0,2*pi,Nh+1); thta1=thta0(1:Nh); y1=Rh*cos(thta1); z1=Rh*sin(thta1); thta2=thta0(2:Nh+1);y2=Rh*cos(thta2); z2=Rh*sin(thta2); xc=0;yc=(y2+y1)/2;zc=(z2+z1)/2; dlx=0;dly=y2-y1;dlz=z2-z1; NGx=Nh;NGy=NGx; for i=1:NGy for j=1:NGx rx=x(j)-xc;ry=y(i)-yc;rz=0-zc; r3=sqrt(rx.2+ry.2+rz.2).3; dlxr_x=dly.*rz-dlz.*ry; dlxr_y=dly.*rx-dlx.*rz; Bx(i,j)=sum(c0*dlxr_x./r3); By(i,j)=sum(c0*dlxr_y./r3); B=(Bx.2+By.2).0.5; end end quiver(x,y,Bx,By,0.5,LineWidth,1); %绘制磁感线图线 grid on end(3) 重置参数按钮功能实现 初始化GUI图形界面:坐标轴中的图像还原为初始时的“测试图”,坐标轴下方的文本框显示文字“测试图”,EditText3、EditText4无显示,Listbox1中选项显示为“电流环的磁场分布图”,视角切换中的单选框选中“视角锁定”。首先对cichang1.fig中的“OpenFunction”进行编辑。程序代码如下:function cichang1_OpeningFcn(hObject, eventdata, handles, varargin)guidata(hObject, handles); if strcmp(get(hObject,Visible),off) surf(peaks); rotate3d off;end然后对PushButton7的回调函数进行编辑。程序代码如下:function pushbutton7_Callback(hObject, eventdata, handles)cla;surf(peaks);rotate3d off;set(handles.radiobutton2,value,1);set(handles.radiobutton1,value,0);set(handles.edit3,string, );set(handles.listbox1,value,1);set(handles.edit4,string, );set(handles.edit1,string,测试图);(4) 视角切换功能实现 当选择“自由视角”时,用户可通过鼠标自由旋转坐标轴中的图像;当选择“锁定视角”时,用户可以锁定任意视角时的图像。 首先对RadioButton2的回调函数进行编辑。程序代码如下:function radiobutton2_Callback(hObject, eventdata, handles)rotate3d off; 然后对RadioButton1的回调函数进行编辑。程序代码如下:function radiobutton1_Callback(hObject, eventdata, handles)rotate3d on; 最后再保存一次“cichang1.fig”。4 GUI运行效果4.1 GUI初始化效果打开“cichang1.fig ”,显示如图8效果。图84.2 菜单栏效果点击菜单栏“退出”选项,显示一对话框,如点击“
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人事聘请合同样本
- 保险赔偿车转让合同样本
- 业主电梯安装合同样本
- 代甲方招聘合同样本
- 上海黄浦汽车租赁合同标准文本
- 供货食品合同样本
- 保洁施工合同样本
- 个人出租农机合同样本
- 兑店转让合同样本
- 兴业银行抵押合同标准文本
- 软件设计说明书概要+详细
- 商品谷物农业课件-高一下学期地理人教版必修2
- DB64∕1539-2020 复合保温板结构一体化系统应用技术规程
- DB4401∕T 5-2018 房屋面积测算规范
- DIN1783厚度在0.35mm以上冷轧的铝及铝塑性合金带材和板材、尺寸
- 脚手架或模板支架立杆底地基承载力计算
- GB∕T 40741-2021 焊后热处理质量要求
- Model5000功率计(介绍及操作)
- 超导材料应用举例PPT课件
- 现场总线技术03 PROFIBUS总线
- 2020年超星尔雅重说中国近代史通识课期末考试答案
评论
0/150
提交评论