matlab数学实验实现(共8篇)
数学实验周我们学习了Matlab软件,这是一个十分实用和重要的软件。初次结识MATLAB,感觉这是一个很好的软件,语言简便,实用性强。作为一个新手,想要学习好这门语言,可以说还是比较难的。在我接触这门语言的这些天,一直在上面弄,除了会画几个简单的三维图形,其他的还是有待提高。在这个软件中,虽然有help。大家不要以为有了这个就万事大吉了,反而,从另一个方面也对我们大学生提出了两个要求——充实的课外基础和良好的英语基础。在现代,几乎所有好的软件都是来自国外,假如你不会外语,想学好是非常难的。
Matlab 语言是当今国际上科学界(尤其是自动控制领域)最具影响力、也是最有活力的软件。它起源于矩阵运算,并已经发展成一种高度集成的计算机语言。它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能。
作为一种计算机语言,Matlab体现了与它价值的相符的优点:
1.编程简单使用方便。在这方面我感觉C语言也是一种简单的编程语言。只要入门就很好掌握,但是要学习一门语言不是那么容易的,到目前为止,可以说我还没入门,所以学习起这门语言来很吃力。相对C语言而言,Matlab的矩阵和向量操作功能是其他语言无法比拟的。在Matlab环境下,数组的操作与数的操作一样简单,基本数据单元是不需要指定维数的,不需要说明数据类型的矩阵,而其数学表达式和运算规则与通常的习惯相同。
2.函数库可任意扩充。由于Matlab语言库函数与用户文件的形式相同,用户文件可以像库函数一样随意调用,所以用户可任意扩充库函数。
3.语言简单内涵丰富。在此语言中,最重要的成分是函数,一般形式为:Function[a,b,c„„]=fun(d,e,f„„)Fun是自定义的函数名,只要不与库函数想重,并且符合字符串书写规则即可。
4、简便的绘图功能。MATLAB具有二维和三维绘图功能,使用方法简单。三维曲线是由plot3(x,y,z)命令绘出的,看上去很简单的一个程序,相对C语言而言。极大的方便了绘图的工作和节省工作时间。
5.丰富的工具箱。由于MATLAB 的开放性,许多领域的专家都为MATLAB 编写了各种程序工具箱。这些工具箱提供了用户在特别应用领域所需的许多函数,这使得用户不必花大量的时间编写程序就可以直接调用这些函数,达到事半功倍的效果。
在理论方面,在学习MATLAB过程中,我感觉到它和c语言有许多相似之处,他有c语言的特征,但是比c语言编程计算更加简单,适合于复杂的数学运算。但是MATLAB跟其他语言也有着很大的不同。
众所周知MATLAB是一个基于矩阵运算的软件,但是,真正在运用的时候,特别是在编程的时候,许多人往往没有注意到这个问题。在使用MATLAB时,受到了其他编程习惯的影响,特别是经常使用的C语言。因此,在MATLAB编程时,for循环(包括while循环)到处都是。这不仅是没有发挥MATLAB所长,还浪费了宝贵的时间。我这里想说的一点是,往往在初始化矩阵的时候注意到这个问题,懂得了使用矩阵而不是循环来赋值,但是,在其他环节上,就很容易疏忽,或者说,仍然没有摆脱C++、C的思想。多用help,see also,lookfor,get, set 等常用命令,尽量摆脱c编程的习惯,总爱用循环,能不用的循环的尽量不用,掌握矢量化的精髓。(1)help: 最有效的命令。其实,可以这样说吧,一遇 到什么问题,通常可以从 help 中找到答案。就先说说对help的一些常用方法。
1)命令窗口直接敲“help”,你就可以得到本地机器上matlab的基本的帮助信息。
2)对于某些不是很明确的命令,只知道大体所属范围,譬如说某个工具箱,直接在命令窗口中敲入 help toolboxname,一帮可以得到本工具箱有关的信息:版本号,函数名等。
(2)lookfor:可以说是 matlab中的google。当我们很多什么头绪都没有的时候,我们可以求助于它,往往会收到意想不到的效果。譬如:曾经在gui编程的时候,遇到过这样一个问题:想拖动鼠标时,要出现一个方框,就像你在桌面上拖动鼠标,会出现虚线框一样。当初我也刚开始一定都不知道该查找什么东西,后来想起用它了。于是,>> lookfor Rectangle。这样一条信息:GETRECT Select rectangle with mouse.get,set: GUI object 属性的帮手在GUI编程中,我们可能有时候想改变某些object的属性,或者想让它安装自己的想法实现,但是我们又不记得这些object的属性,更别提怎么设置他们的值了。这时,可以用 get(handles得到此对象的所有的属性及其当前值。用set(handles)可以得到对象所有可以设置的属性及其可能的取值找到我们需要的属性名字和可能的取值之后,就意义用 get(handles,‘propertyname’)取得此属性的值,用set(handles,‘propertyname’,values)设置此对象此属性的值。Edit: 查看m源文件的助手在应用matlab过程中,可能我们想看看它的m源文件,当然用editor定位打开也行,但是我经常采用的式直接在command窗口中用edit funname.m,就省去了定位的麻烦。
Matlab在图形虚拟和数据处理方面有着独特的优势,能有效帮助学生理解和学习物理规律[1]。Matlab在大学物理中应用广泛,近些年,在中学物理教学中也进行了探索和实践。朱云、孟宪松[2]利用Matlab处理实验数据,在用伏安法测定电源电动势和内阻的关系中,记录电压表和电流的示数,通过使用Matlab绘图得出电压和电流的图线,动态演示物体平抛与斜抛运动的图线等。周小奋[3]用实例介绍了Matlab在电场作图和求解极值问题中的应用,利用Matlab画出共线点电荷系统的电场线分布以及两个正点电荷周围的电场线分布。魏义永[4]在课堂上举例阐述应用Matlab编程模拟光的双缝干涉、单缝衍射和光栅衍射的实验现象,提高学生学习光学的兴趣,教学效果明显。朱国强[5]在课堂教学中使用Matlab动态演示异号电荷等势面和电场线的形状。Matlab帮助学生理解物理现象作用是明显的。但是使用Matlab制作物理课例需要耗费很多时间,由于很多一线教师的时间和精力有限,他们并不能系统地学习和使用Matlab。因此,制作出基于Matlab的中学物理实验室系统很有必要。
1 系统总体设计
1.1 系统功能结构
中学物理实验室系统主要由产品介绍、初中物理实验室、高中物理实验室、练习题库和趣味模块5个部分组成。其中,初中物理实验室和高中物理实验室结合中学物理教学实际需求,实验内容涵盖教材各章节和知识点,是教材的同步实验室,并且结果表现形式丰富。同时,初中物理实验室和高中物理实验室提供基于Matlab设计的学生用计算器。练习题库由高中数学题库和初中数学题库两部分组成,均按教材分类,包括章节的检测题、综合检测题、升学考试题、中期模拟卷、期末模拟卷等。趣味模块提供有益智开发大脑的小游戏,让学生在学习过程中劳逸结合,减少枯燥感。系统功能结构如图1所示。
图1 物理实验室系统功能结构
1.2 系统技术路线
(1)开发平台为Matlab R2008a、Flash、Authorware、Microsoft Windows 7;(2)开发语言为Matlab;(3)使用Authorware作为第三方软件平台统筹Matlab和Flash,使之形成一个系统。采用流行的B/S体系架构;(4)使用Photoshop以及Flash进行页面优化;(5)考虑系统的针对性、易用性。系统技术路线如图2所示。
图2 系统技术路线
1.3 系统运行环境
系统操作环境:Microsoft Windows XP、Microsoft Windows 7、Microsoft Windows 8。Matlab软件版本包括Matlab R2008a、Matlab R2008b、Matlab R2009a、MatlabR2009b等,后续升级软件可直接运行中学物理实验室系统的exe程序;如果操作系统为Windows32位系统,则版本为MCR_R2012a_win32;如果操作系统为Windows64位系统,则版本为MCR_R2012a_win64;如果电脑中未安装Flash软件和Authorware软件,则需要进行安装。
2 系统设计与实现
2.1 系统设计思路
由于本系统是通过Matlab软件、Flash软件开发,再通过Authorware兼容平台统筹Matlab和Flash,使之形成一个系统的应用软件。因此,首先使用Matlab语言及其携带的GUI工具,建立良好的人机交互界面,完成部分物理实验室设计,包括初中物理和高中物理模块实现;其次将经过调试的物理实验室利用Matlab自带的Compiler工具,转换为可独立运行的.exe文件,并对转化的.exe文件进行调试;然后使用Flash软件完成部分物理实验的设计、开发和实现;最后使用Authorware平台统筹整体界面设计、开发和实现,具体包括产品介绍、初中物理、高中物理、练习题库和趣味模块。设计路线框架如图3所示。
图3 设计路线框架
2.2 系统仿真实现
2.2.1 Matlab制作实验
中学物理实验室的核心模块采用Matlab可视化图形用户界面设计方法。Matlab设计GUI程序的前台界面有全命令行的M文件编程和GUIDE辅助的图形界面设计两种方式[6]。GUIDE即Maltab提供的GUI程序的集成化设计和开发环境,是一种可视化的图形用户界面设计方法[7]。由于中学物理实验室是教材的同步实验室,其设计与实现根据教材逐一进行。
为了实现Matlab部分功能,需要为系统界面中各控件编写相应的回调函数,以完成系统的功能和目标。回调函数的编写包括各个实验的功能界面、游戏界面等。
采用Matlab Compiler工具实现Matlab/GUI转化成.exe文件,屏蔽Matlab生成.exe文件时出现黑屏问题的方法是通过对compopts.bat添加程序代码。
2.2.2 Flash制作实验
Flash是一款交互式矢量多媒体技术动画软件。它不仅可以通过文字、图片、视频、声音等手段综合展现动画内容,还可以通过强大的脚本语言(Action Script)制件交互动画,其以操作简单、功能强大、易学易用、浏览速度快等特点受到广大动画设计人员的喜爱,在网页动画制作和多媒体课件制作方面有较强优势[8]。Flash软件可以实现多种动画特效,是表现动态过程、阐明抽象原理的一种重要媒体。使用动画设计,有助于学科知识的表达和传播,加深对知识的理解,提高学习兴趣和教学效率,对以抽象教学内容为主的课程应用效果很好[9]。
2.2.3 系统平台制作
Authorware软件采用面向对象的设计思想,采用图标、流线等多媒体开发工具,主要承担多媒体素材的组织任务,能够同多种开发工具兼容,共同实现多媒体功能[10]。Authorware对编程要求较低,不具有编程能力的人员也能创作出一些高水平的多媒体课件。
将Matlab转换成的.exe文件和Flash生成的.exe文件置于第三方平台Authorware软件中,利用Authoeware编辑,统一界面风格,整体打包形成新的.exe文件,即设计出中学物理实验室系统。
3 系统展示
3.1 系统整体界面展示
双击桌面上的“中学物理实验室”图标后,进入系统主界面。整个系统由系统名称和菜单栏组成。菜单栏由“产品介绍”、“初中物理”、“高中物理”、“练习题库”、“趣味模块”等要素构成,整个版面清新明亮、简单美观。
在系统主界面中单击“产品介绍”图标,会弹出系统介绍页面,该页面用简洁的语言介绍了软件主要特点。在系统菜单栏点击“初中物理”图标,会弹出初中物理页面。初中物理涵盖了人教版八年级、九年级的所有实验。在系统的菜单栏点击“高中物理”图标,会弹出高中物理页面。高中物理模块收纳了必修一、必修二、选修3-1、3-2、3-3、3-4的大部分实验。
在系统的菜单栏点击“练习题库”图标,系统就进入练习题库页面。练习题库分为初中物理练习题库和高中物理练习题库;在系统的菜单栏点击“趣味模块”图标时,系统即进入休闲娱乐时刻;当学习完毕点击菜单栏的“退出学习”图标,系统即自动关闭。
3.2 系统实验室展示
中学物理实验室系统由初中物理和高中物理2个模块组成,各模块均包括相应教材的同步实验室模块,实验内容涵盖教材各章节和知识点。下面以高中物理实验室为例,进行实验室功能演示。
在高中物理实验室界面中有带电粒子在电场中的运动、带电粒子在磁场中的运动、欧姆定律、点电荷形成的电场等实验。
(1)带电粒子在电场中的运动。在高中物理实验室的主界面中,用鼠标点击“选修3-1”进入选修3-1实验室的主界面。在该界面用鼠标点击“带电粒子在电场中的运动”,在弹出的界面中点击“演示”按钮,得到的结果如图4(a)和图4(b)所示。
图4 带电粒子在电场中的运动
(2)带电粒子在磁场中的运动。在选修3-1主界面中,用鼠标点击“带电粒子在磁场中的运动”,在弹出的界面中点击“演示”按钮,在弹出的界面中分别输入“带电粒子射入磁场的角度”,点击“Start”按钮,绘制出如图5(a)所示的运动轨迹,点击菜单栏的旋转按钮,实现如图5(b)所示的旋转效果。
4 结语
本文采用Matlab开发了一个通用性强、简单易用的中学物理实验室系统,该系统充分利用Matlab的数值计算能力和数据可视化能力以及强大的绘图功能,实现了物理现象和物理过程的形象化和可视化,有利于开拓学生视野,激发学习兴趣,改善了传统教学方式单一性缺陷,促进了多媒体技术在教学中的应用。
图5 带电粒子在磁场中的运动
摘要:以Matlab为主要开发技术,在Authorware平台下统筹Flash和Matlab软件,根据新课程标准要求设计了中学物理实验室系统。该系统能帮助学生理解和掌握抽象的物理概念,激发学习兴趣,提高教学效率与教学质量。
关键词:Matlab,Flash,Authorware,物理实验教学
参考文献
[1]王付军.Matlab在中学物理教学和实验中的应用[J].中学物理,2010(9):29-31.
[2]朱云,孟宪松.MATLAB软件在中学物理中的实际应用[J].中小学电教,2011(1):101-102.
[3]周小奋.Matlab在中学物理教学中的应用初探[J].物理通报,2011(10):68-71.
[4]魏义永.例析Matlab软件融入光学教学课堂[J].合肥师范学院学报,2011(3):39-41.
[5]朱国强.MATLAB软件在物理教学中的应用[J].物理通报,2014(4):8-12.
[6]史崇升,汤全武,吴佳,等.基于Matlab和B/S的中学数学实验室系统[J].微型机与应用,2014(14):14-16.
[7]陈垚光,毛涛涛,王正林.精通MATLAB GUI设计[M].北京:电子工业出版社,2011.
[8]韩文虹.物理虚拟实验室的设计与实现[D].郑州:郑州大学,2010.
[9]缪亮,贾朝蓉.Flash MX 2004课件制作百例[M].北京:清华大学出版社,2004.
关键词:数学实验方法;数学实验;数学实验课程;灵活性:典型性;规范性
数学实验课程的开设是近十年来数学教育界议论颇多的话题,发表了大量有关数学实验的文章,这些文章探讨了什么是数学实验、数学实验的分类、数学实验的作用和价值、数学实验教学内容的选择、数学实验课程的教学方法、数学实验课程与其他课程的关系等等;出版了几十本各式各样的数学实验的教材;教学实践活动也在很多学校广泛开展.本文把数学实验作为一种数学方法,阐释了数学实验的含义, 数学实验的内容,对数学实验以及数学实验课程的内容进行了分类,并据此探讨分析了数学实验课程教学内容实现方法。
一、数学实验的含义
数学实验是以数学理论知识作为原理,以软件编程、图形演示和数值计算等为实验内容,以实际生活问题和数学教材为实验对象,以计算机作为工具,以分析建模、 模拟仿真、软件求解和总结推广为主要实验方法,并以实验报告为最终体现形式的实践活动。 数学实验的主要任务就是引导学生将实际问题转化为数学模型与实践,再运用现代的计算机技术和数学专业软件(如 SPSS,Matlab,Lingo,Lindo)来进行数学推演和数值计算,以求出实验结果。
二、数学实验的内容
数学实验课程的内容可包括工业、农业、经济、技术、军事等的各种实际问题,也可以是数学本身的一些基础性问题,介绍如何通过建模将实际问题转化为数学问 题,并通过数学软件和计算机技术,使学生掌握用数值模拟的方法解决实际问题。 按其实验内容和性质,常可分为以下六个层次的实验:(1)基础性数学实验。此类实验的目的是要求学生掌握一些常用数学软件包的基本命令,熟悉相关软件的图 形绘制与数值计算等的基本技能。(2)验证性数学实验。 要求学生通过对数学实验现象的观测,验证数学中的基本理论和经典的数学方法,以增强其对数学概念的认识,并揭示数学知识的内涵。(3)研究性数学实验。 要求学生根据教师提出的实验课题设计相应的实验方案,运用数学理论相关知识和数学技巧,寻求解决实际问题的途径,得出研究性结论。(4)应用性数学实验。 要求学生结合实际生活问题,如太阳能房屋的造型设计、股市行情走势分析、基金投资分配等,建立相关数学模型,并运用数学软件进行数值计算,从而指导实际问 题。(5)拓展性数学实验。 要求学生学会揭示数学理论之间的联系并从中拓展发现新的知识,或拓展到其他相关领域(如运筹与优化、数值方法计算、分形与混沌等科学领域)。(6)综合性 数学实验。 其实验目的是要求学生综合掌握前五种数学实验,培养学生综合运用所学知识的能力。
三、数学实验的实现方法
数学实验方法(MathematicalExpermientMethods,简称MEM方法)是指借助于某种客观工具,特别是计算机及数学软件,针对某种数学猜想或假说、某种客观实际问题、数学理论的某个分支和相关的问题,来处理和应用数学理论的一种方法.从这个意义上看,数学实验方法既是数学研究与发现的重要方法,也是数学教育、数学学习的重要方法,同时也是数学应用的重要方法.可见,数学实验方法是一种非常重要的数学方法。
1.数学理论传授型数学实验
数学理论传授型数学实驗指的是以计算机及数学软件为实验工具,以传统的大学数学基本理论和方法为实验内容,通过利用数学软件来计算、证明各种数学问题.这种利用数学实验进行辅助教学的手段,有助于增强教学过程的生动性、直观性以及可操作性,并有助于扩充传统数学的教学内容.实验的目的是加深对基本概念和基础理论的理解,进一步熟练掌握数学计算、论证的方法,能够帮助学生提高学习的兴趣,扩充解决问题的思想与方法.知识传授型数学实验课的教学内容是传统数学课程教学的补充和发展,能够为原来不易求解处理的问题提供有效的解决方法。
2.应用型数学实验
在应用数学解决各种应用问题的过程中,首先是通过背景分析,找到可以利用的数学工具,初步建立起相应的数学问题即数学模型,然后求解数学模型.在求解数学模型过程中,往往涉及到各种复杂、专门的计算,数学软件的使用就是不可避免的,这就需要相应的数学实验方法。
但从本质上讲,仅仅关于数学软件的使用并不是应用型数学实验的全部内容.对于较为复杂的数学建模过程,往往并不是一步两步就能够完全解决问题的,经常需要进行从简单到复杂、从特殊到一般、从多到少、从局部到整体、从不均匀到均匀等的循序渐进的过渡过程,使得所建立的数学模型不断地接近于实际问题的背景、条件、基本事实等等.初期建立的数学模型的结果往往可能与实际规律、性质等状况并不完全吻合,因此还要进行模型的改进、充实、完善等,有时需要对整个模型进行彻底修改,所用的数学理论工具可能完全不同.经过反反复复的修改,最终得到符合实际的数学模型.这个过程实际上就体现了数学实验的过程,这种实验的内容就是相关的数学理论与方法的应用、实验的对象就是相应的客观实际问题,实验的工具就是计算机与相应的数学软件(Matlab、SAS、Mathematica等).这样反复的过程就是数学实验的过程。
3.数学理论研究与探索型数学实验
提出猜想(或假说),在解决客观实际问题的需要和数学理论内部矛盾运动的推动下,要针对某种对象(客观事物对象或数学对象)从数量关系和空间形式上提出某种规律性的猜想(或假说),包括定理、公式、计算方法等,这时可以通过考察对象的某些特殊的具体情形,利用计算机及数学软件的计算、绘图、模拟、符号演算等功能进行数学实验,找出具体的数量关系和形式规律,进而具体地表示出这种猜想(或假说)的形式。
四、结语
数学实验引导学生将实际问题转化为数学模型,再利用现代的计算机技术和专业数学软件来进行数学推演和数值计算,以求出实验结果。通过开展数学实验教学,相关教师的应用教学能力得到了充分的锻炼和展示,学生的应用数学能力和综合素质也能得到很大的提升。数学实验教学不仅为今后数学教育的改革奠定了深厚基础,也为数学教育者设立了进一步实践与探索的方向。
参考文献:
[1] 沈继红,施久玉,等.数学建模[M].哈尔滨:哈尔滨工程大学出版社,1998.
[2] 刘来福,曾文艺.问题解决的数学模型方法[M].北京:北京师范大学出版社,1999.
[3] 萧树铁.数学实验[M].北京:高等教育出版社,1999.
[4] 姜启源.大学数学实验[M].北京:清华大学出版社,2006.
实验指导书
物理与信息工程系
目录
实验一 MATLAB编程环境..............................................3 实验二 矩阵基本运算
(一)..........................................5 实验三 矩阵基本运算
(二)..........................................7 实验四 矩阵分析...................................................9 实验五 分支结构程序设计..........................................11 实验六 循环结构程序设计..........................................13 实验七 文件操作..................................................15 实验八 二维曲线的绘制............................................17 实验九 三维曲线和曲面的绘制......................................19 实验十 MATLAB数据统计处理........................................21 实验十一 多项式四则运算..........................................23 实验十二 线性方程组求解及函数求极值.............................25 实验一 MATLAB编程环境
一、实验目的
1.熟悉MATLAB编程环境
二、实验环境
1.计算机
2.MATLAB7.0集成环境
三、实验说明
1.首先应熟悉MATLAB7.0运行环境,正确操作 2.实验学时:2学时
四、实验内容和步骤
1.实验内容
(1)命令窗口的使用。(2)工作空间窗口的使用。(3)工作目录、搜索路径的设置。(4)命令历史记录窗口的使用。(5)帮助系统的使用。(6)了解各菜单的功能。2.实验步骤
(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。
(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。
(5)检查程序输出结果。
五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验二 矩阵基本运算
(一)一、实验目的
1.通过实验,进一步熟悉MATLAB编程环境 2.通过实验掌握建立矩阵的几种方法 3.通过实验理解常用的矩阵运算
二、实验环境
1.计算机
2.MATLAB7.0集成环境
三、实验说明
1.首先应熟悉MATLAB7.0运行环境,正确操作 2.自主编写程序,必要时参考相关资料 3.实验学时:2学时
四、实验内容和步骤
1.实验内容
(1)设A和B是两个同维同大小的矩阵,问:
1)A*B和A.*B的值是否相等? 2)A./B和B.A的值是否相等?
3)A/B和BA的值是否相等?操作过程参照教材中除法的矩阵生成。4)A/B和BA所代表的数学含义是什么?(2)写出完成下列操作的命令。
1)将矩阵A第2—5行中第1,3,5列元素赋给矩阵B。2)删除矩阵A的第7号元素。3)将矩阵A的每个元素值加30。4)求矩阵A的大小和维数。(3)下列命令执行后,L1、L2、L3、L4的值分别是多少/ A=1:9;B=10-A;L1=A==B;L2=A<=5;L3=A>3&A<7;L4=find(A>3&A<7);2.实验步骤
(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。
(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。
(5)检查程序输出结果。
五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验三 矩阵基本运算
(二)一、实验目的
1.熟悉矩阵的建立方式 2.理解矩阵拆分的方法
3.通过实验进一步掌握矩阵的基本运算
二、实验环境
1.计算机
2.MATLAB7.0集成环境
三、实验说明
1.熟练操作MATLAB7.0运行环境 2.自主编写程序,必要时参考相关资料 3.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时
四、实验内容和步骤
1.实验内容
154831,B253 078(1)已知A3203617求下列表达式的值:
1)A+6B和A2-B+I(I为单位矩阵,matlab中使用eye来生成)2)A*B,A.*B和B*A 3)A/B和BA
4)[A,B]和 [A([1,3],:);B^2](2)已知
0.778023104145655,取出其前三行构成矩阵B,其前两列构成矩A325032543.1469.54阵C,其右下角3×2子矩阵构成矩阵D,B与C的乘积构成矩阵E,分别求E
(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。
(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。
(5)检查程序输出结果。
五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会
实验四
矩阵分析
一、实验目的
1.学会求矩阵的对角线元素、对角阵和逆矩阵 2.学会求矩阵的行列式的值、秩 3.学会求矩阵的特征值和特征向量 4.通过练习熟悉矩阵分析方法
二、实验环境
1.计算机
2.MATLAB7.0集成环境
三、实验说明
1.熟练操作MATLAB7.0运行环境 2.自主编写程序,必要时参考相关资料 3.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时
四、实验内容和步骤
1.实验内容
(1)使用函数,实现方阵左旋90°或右旋90°的功能。例如,原矩阵为A,A左旋后得到B,右旋后得到C。使用函数rot90(A,k)来实现;
101112321471078965,A25811B456,C9836912123121114 710(2)建立一个方阵A,求A的逆矩阵和A的行列式的值,并验证A与A-1是互逆的。A的逆(inv(A));A的行列式(det(A))(3)求下列矩阵的主对角线元素、上三角阵、下三角阵、秩和迹。参考教材
1125141)A3051115030.434322
2)B8.9421 29(4)求矩阵A的特征值。参考教材
10.51 A110.250.50.2522.实验步骤
(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。
(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。
(5)检查程序输出结果。
五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验五
分支结构程序设计
一、实验目的
1.理解MATLAB的编程方法
2.掌握if语句和switch语句的使用 3.掌握分支结构程序设计方法
4.通过练习理解MATLAB编程方法和分支结构程序设计方法。
二、实验环境
1.计算机
2.MATLAB7.0集成环境
三、实验说明
1.熟练操作MATLAB7.0运行环境 2.自主编写程序,必要时参考相关资料 3.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时
四、实验内容和步骤
1.实验内容
(1)从键盘输入一个数,将它反向输出,例如输入693,输出为396(2)输入一个百分制成绩,要求输出成绩等级A,B,C,D,E其中90-100位A,80-89为B,70-79为C,60-69为D,60以下为E 1)分别用if语句和switch语句实现
2)输入百分制成绩后要判断成绩的合理性,对不合理的成绩应输出出错信息
2.实验步骤(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。
(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。
(5)检查程序输出结果。
五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验六
循环结构程序设计
一、实验目的
1、理解循环控制结构的执行过程
2、掌握for语句和while语句的使用
3、掌握循环结构程序设计方法
4、通过练习进一步理解MATLAB的编程方法和循环结构程序设计方法
二、实验环境
1.计算机
2.MATLAB7.0集成环境
三、实验说明
1.熟练操作MATLAB7.0运行环境 2.自主编写程序,必要时参考相关资料 3.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时
四、实验内容和步骤
1.实验内容
(1)编写程序实现求两矩阵A.*B.(2)编写程序实现求矩阵的转置。2.实验步骤
(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。
(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。
(5)检查程序输出结果。
五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会
实验七
文件操作
一、实验目的
1、掌握文件的建立、打开与关闭和文件的读写操作
2、理解文件定位操作
3、通过练习理解文件的基本操作
二、实验环境
1.计算机
2.MATLAB7.0集成环境
三、实验说明
1.熟练操作MATLAB7.0运行环境 2.自主编写程序,必要时参考相关资料 3.实验前应写出程序大致框架或完整的程序代码 4.实验学时:2学时
四、实验内容和步骤
1.实验内容
(1)以读写方式打开二进制格式数据文件,将浮点数X添加到文件末尾,将文件内容以浮点数格式读入变量Z,将文本文件的第二行读入变量H,向文件尾部移动文件指针6个字节。
sin(x1.7)lnx,当x取-3.0、-2.9、-2.8、…、2.8、2.9、3.0时,(2)已知y21cos(x1.7)求各点的函数值。要求:将函数值输出到一个数据文件中;从数据文件中读出数据,求各点函数值的平均值;将平均值添加到数据文件末尾。(3)编写程序,该程序能读取一个文本文件,并能将文本文件中的小写字母转换为相应的大写字母而生成一个新的文本文件。2.实验步骤
(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。
(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。
(5)检查程序输出结果。
五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会
实验八
二维曲线的绘制
一、实验目的
1、理解MATLAB绘图方法
2、掌握绘制二维数据曲线图的方法
3、掌握用plot函数和fplot函数绘制曲线的方法
4、通过练习掌握绘制二维数据曲线图的方法和plot函数和fplot函数的使用
二、实验环境
1.计算机
2.MATLAB7.0集成环境
三、实验说明
1.熟练操作MATLAB7.0运行环境 2.自主编写程序,必要时参考相关资料 3.实验前应写出程序大致框架或完整的程序代码 4.实验学时:2学时
四、实验内容和步骤
1.实验内容
(1)绘制下列曲线:
x1①yx
②ye323x22xrsint
③x2y6④
yrcost22(2)通过用plot和fplot函数绘制ysin1的曲线,并分析其区别。x解释:fplot函数的调用格式为: fplot(fname,lims,tol,选项)
其中fname为函数名,以字符串形式出现,lims为x,y的取值范围,tol为相对允许误差,其系统默认值为2e-3。选项定义与plot函数相同。2.实验步骤
(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。
(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。
(5)检查程序输出结果。
五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验九
三维曲线和曲面的绘制
一、实验目的
1、理解三维曲线的绘制
2、理解曲面图的绘制
3、通过练习熟悉三维曲线和曲面图的绘制方法
二、实验器材
1.计算机
2.MATLAB7.0集成环境
三、实验说明
1.自主编写程序,必要时参考相关资料 2.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时
四、实验内容和步骤
1.实验内容
(1)绘制下列三维曲线
xet/20costt/201)yesint,0t2
2)zt(2)绘制下列曲面图
1)z=5,|x|≤5,|y|≤5
2)f(x,y)xt2yt,0t1 zt351xy22,x3,y3
2.实验步骤
(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(4)编辑程序并进行保存。
(5)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。
(6)检查程序输出结果。
五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验十
MATLAB数据统计处理
一、实验目的
1、掌握MATLAB求最大最小值的方法
2、掌握MATLAB求均值与方差的方法
3、通过练习以下内容熟悉数据统计处理的几种方法
二、实验器材
1.计算机
2.MATLAB7.0集成环境
三、实验说明
1.自主编写程序,必要时参考相关资料 2.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时
四、实验内容和步骤
1.实验内容
利用MATLAB提供的rand函数生成30000个符合均匀分布的随机数,然后检验随机数的性质:均值mean和标准方差std;最大元素max和最小元素min;大于0.5的随机数个数占总数的百分比 2.实验步骤
(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(4)编辑程序并进行保存。
(5)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。(6)检查程序输出结果。
五、实验报告要求
1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验十一
多项式四则运算
一、实验目的
1、掌握多项式求值、求根的方法
2、理解多项式四则运算
3、通过练习熟悉多项式四则运算和多项式求值、求根的方法
二、实验器材
1.计算机
2.MATLAB7.0集成环境
三、实验说明
1.自主编写程序,必要时参考相关资料 2.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时
四、实验内容和步骤
1.实验内容
4322有3个多项式P1(x)x2x4x5,P2(x)x2,P3(x)x2x3,1)求P(x)= P1(x)+ P2(x)P3(x)2)求P(x)的根
3)当x取矩阵A的每一元素时,求P(x)的值,其中
11.21.4 A0.7523.552.504)当以矩阵A为自变量时,求P(x)的值 2.实验步骤(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(4)编辑程序并进行保存。
(5)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。
(6)检查程序输出结果。
五、实验报告要求
1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验十二
线性方程组求解及函数求极值
一、实验目的
1、理解线性方程组求解方法
2、理解函数求极值方法
3、通过练习以下内容熟悉求解线性方程组的方法和函数求极值的方法
二、实验器材
1.计算机
2.MATLAB7.0集成环境
三、实验说明
1.自主编写程序,必要时参考相关资料 2.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时
四、实验内容和步骤
1.实验内容
(1)求下列方程组的解
2x3y5z101)3x7y4z2)
x7yz56x15x22x35x449xx4xx131234 3x4x2x2x123413x19x22x411(2)求下列函数在指定区间的最大值
1x2,x(0,2)
2)f(x)sinxcosx2,x(0,)1)f(x)41x2.实验步骤
(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(4)编辑程序并进行保存。
(5)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。
(6)检查程序输出结果。
五、实验报告要求
实验人员:-------
-------学
号:--------
---------
实验日期:20150618 摘要
本文主要研究的是一级倒立摆的控制问题,并对其参数进行了优化。倒立摆是典型的快速、多变量、非线性、强耦合、自然不稳定系统。由于在实际中有很多这样的系统,因此对它的研究在理论上和方法论上均有深远的意义。本文首先简单的介绍了一下倒立摆以及倒立摆的控制方法,并对其参数优化算法做了分类介绍。然后,介绍了本文选用的优化参数的状态空间极点的配置和PID控制。接着建立了一级倒立摆的数学模型,并求出其状态空间描述。本文着重讲述的是利用状态空间中极点配置实现方法。最后,用Simulink对系统进行了仿真,得出在实际控制中是两种比较好的控制方法。
Abstract
This paper mainly studies the level of the inverted pendulum control problem, and its parameters are optimized.Inverted pendulum is a typical rapid, multi-variable, nonlinear, strong coupling, natural unstable system.In practice, however, because there are a lot of such a system, so the study of it in theory and methodology have profound significance.This article first introduced the inverted pendulum, and simple of the inverted pendulum control method, made a classification and the parameter optimization algorithm is introduced.And then, introduced in this paper, choose the optimization of the parameters of state space pole configuration and PID control.Then set up the level of the mathematical model of inverted pendulum, and find out the state space description.This paper focuses on the pole assignment method is the use of state space.Finally, the system are simulated using Simulink, it is concluded that in the actual control is two good control method.This paper mainly studies the level of the inverted pendulum control problem, and its parameters are optimized.Inverted pendulum is a typical rapid, multi-variable, nonlinear, strong coupling, natural unstable system.In practice, however, because there are a lot of such a system, so the study of it in theory and methodology have profound significance.This article first introduced the inverted pendulum, and simple of the inverted pendulum control method, made a classification and the parameter optimization algorithm is introduced.And then, introduced in this paper, choose the optimization of the parameters of state space pole configuration and PID control.Then set up the level of the mathematical model of inverted pendulum, and find out the state space description.This paper focuses on the pole assignment method is the use of state space.Finally, the system are simulated using Simulink, it is concluded that in the actual control is two good control method.目 录 引言..................................................4 1.1 倒立摆介绍以及应用.........................................4 1.2 倒立摆的控制方法...........................................5
2单级倒立摆数学模型的建立...............................6 2.1传递函数...................................................8 2.2状态空间方程...............................................9
3系统Matlab 仿真和开环响应.............................11 4 系统设计.............................................15 4.1极点配置与控制器的设计....................................15 4.2系统仿真:................................................16 4.3仿真结果..................................................17 4.4根据传递函数设计第二种控制方法-----PID串级控制............18
5结 论
...............................................19引言
1.1 倒立摆介绍以及应用
倒立摆控制系统是一个复杂的、不稳定的、非线性系统,是进行控制理论教学及开展各种控制实验的理想实验平台。对倒立摆系统的研究能有效的反映控制中的许多典型问题:如非线性问题、鲁棒性问题、镇定问题、随动问题以及跟踪问题等。通过对倒立摆的控制,用来检验新的控制方法是否有较强的处理非线性和不稳定性问题的能力。
通过对它的研究不仅可以解决控制中的理论和技术实现问题,还能将控制理论涉及的主要基础学科:力学,数学和计算机科学进行有机的综合应用。其控制方法和思路无论对理论或实际的过程控制都有很好的启迪,是检验各种控制理论和方法的有效的“试金石”。倒立摆的研究不仅有其深刻的理论意义,还有重要的工程背景。在多种控制理论与方法的研究与应用中,特别是在工程实践中,也存在一种可行性的实验问题,使其理论与方法得到有效检验,倒立摆就能为此提供一个从理论通往实践的桥梁,目前,对倒立摆的研究已经引起国内外学者的广泛关注,是控制领域研究的热门课题之一。
倒立摆不仅仅是一种优秀的教学实验仪器,同时也是进行控制理论研究的理想实验平台。由于倒立摆系统本身具有的高阶次、不稳定、多变量、非线性和强耦合特性,许多现代控制理论的研究人员一直将它视为典型的研究对象,不断从中发掘出新的控制策略和控制方法,相关的科研成果在航天科技和机器人学方面获得了广阔的应用。二十世纪九十年代以来,更加复杂多种形式的倒立摆系统成为控制理论研究领域的热点,每年在专业杂志上都有大量的优秀论文出现。因此,倒立摆系统在控制理论研究中是一种较为理想的实验装置。
倒立摆主要应用在以下几个方面:(1)机器人的站立与行走类似于双倒立摆系统,尽管第一台机器人在美国问世至今已有三 十年的历史,机器人的关键技术--机器人的行走控制至今仍未能很好解决。(2)在火箭等飞行器的飞行过程中,为了保持其正确的姿态,要不断进行实时控制。
(3)通信卫星在预先计算好的轨道和确定的位置上运行的同时,要保持其稳定的姿态,使卫星天线一直指向地球,使它的太阳能电池板一直指向太阳。(4)侦察卫星中摄像机的轻微抖动会对摄像的图像质量产生很大的影响,为了提高摄像的质量,必须能自动地保持伺服云台的稳定,消除震动。
(5)为防止单级火箭在拐弯时断裂而诞生的柔性火箭(多级火箭),其飞行姿态的控制也可
以用多级倒立摆系统进行研究。
由于倒立摆系统与双足机器人、火箭飞行控制和各类伺服云台稳定有很大相似性,因此对倒立摆控制机理的研究具有重要的理论和实践意义。
1.2 倒立摆的控制方法
倒立摆有多种控制方法。对倒立摆这样的一个典型被控对象进行研究,无论在理论上和方法上都具有重要意义。不仅由于其级数增加而产生的控制难度是对人类控制能力的有力挑战,更重要的是实现其控制稳定的过程中不断发现新的控制方法,探索新的控制理论,并进而将新的控制方法应用到更广泛的受控对象中。当前,倒立摆的控制方法可分为以下几类 :
(1)线性理论控制方法
将倒立摆系统的非线性模型进行近似线性化处理,获得系统在平衡点附近的线性化模型,然后再利用各种线性系统控制器设计方法,得到期望的控制器。PID控制、状态反馈控制、能量控制]、LQR控制算法是其典型代表。
(2)预测控制和变结构控制方法
预测控制:是一种优化控制方法,强调的是模型的功能而不是结构。变结构控制:是一种非连续控制,可将控制对象从任意位置控制到滑动曲面上仍然保持系统的稳定性和鲁棒性,但是系统存在颤抖。预测控制、变结构控制和自适应控制在理论上有较好的控制效果,但由于控制方法复杂,成本也高,不易在快速变化的系统上实时实现
2单级倒立摆数学模型的建立
在忽略了空气流动,各种摩擦之后,可将倒立摆系统抽象成小车和匀质杆组成的系统,如下图1所示
图1 单级倒立摆模型示意图
那我们在本实验中定义如下变量:
M
小车质量
(本实验系统
1.096 Kg)m
摆杆质量
(本实验系统
0.109 Kg)b
小车摩擦系数(本实验系统
0.1 N/m/sec)l
摆杆转动轴心到杆质心的长度(0.25 m)I
摆杆惯量
(0.0034 kg*m*m)F
加在小车上的力
x
小车位置
φ
摆杆与垂直向上方向的夹角 θ
摆杆与垂直向下方向的夹角(考虑到摆杆初始位置为竖直向下)下面我们对这个系统作一下受力分析。下图2是系统中小车和摆杆的受力分析图。其中,N和P为小车与摆杆相互作用力的水平和垂直方向的分量。
注意:在实际倒立摆系统中检测和执行装置的正负方向已经完全确定,因而矢量方向定义如图,图示方向为矢量正方向。
图2 倒立摆模型受力分析
分析小车水平方向所受的合力,可以得到等式:
应用Newton方法来建立系统的动力学方程过程如下:
分析小车水平方向所受的合力,可以得到以下方程:
FbxN Mx由摆杆水平方向的受力进行分析可以得到下面等式:
Nmd2dt2
(xlsin)
2sinmlcosmlx即 Nm
把这个等式代入上式中,就得到系统的第一个运动方程:
cosml2sinFbxml(Mm)x(1)
为了推出系统的第二个运动方程,我们对摆杆垂直方向上的合力进行分析,可以得到下面方程:
d2Pmgm2(lcos)dtsinml2cos即:Pmgml
力矩平衡方程如下:
PlsinNlcosI
注意:此方程中力矩的方向,由于,coscos,sinsin,故等式前面有负号。
21ImlN3P合并这两个方程,约去和,由得到第二个运动方程:
43mglsinmlcosml2x(2)
设(是摆杆与垂直向上方向之间的夹角),假设与1(单位是
d()20sin,dtcos1,弧度)相比很小,即《1,则可以进行近似处理:。用u来代表被控对象的输入力F,线性化后两个运动方程如下:
4gx3lubxmlx(Mm)(3)
2.1传递函数
对方程组(3)进行拉普拉斯变换,得到
422l(s)sg(s)X(s)s3(Mm)X(s)s2bX(s)sml(s)s2U(s)(4)
注意:推导传递函数时假设初始条件为0。
由于输出为角度,求解方程组(4)的第一个方程,可以得到
4gX(s)[l2](s)3s
把上式代入方程组(4)的第二个方程,得到
(Iml2)g(Iml2)g2(Mm)(s)sb2(s)sml(s)s2U(s)ssmlml
整理后得到传递函数:
ml2sqs443(s)U(s)bml2qs3(Mm)mgl2bmglssqq
22q[(Mm)(Iml)(ml)] 其中
2.2状态空间方程
系统状态空间方程为
AXBuXyCXDu
,x方程组(3)对解代数方程,得到解如下: xx4b3mg4xxu(4Mm)(4Mm)(4Mm)3b3g(Mm)3xu(4Mm)l(4Mm)l(4Mm)l
整理后得到系统状态空间方程:
10x4b0(4Mm)x003b0(4Mm)l03mg(4Mm)03g(Mm)(4Mm)l00x40x(4Mm)u1030(4Mm)l
xx1000x0y0u0010
带入参数可得系统的状态空间方程:
0x100-0.08831670.629317x0000-0.23565527.82850x0x0.883160u1002.35655 xx1000x0y0u0010 3系统Matlab 仿真和开环响应
系统开环稳定性分析
num=[2.35655 0 0];den=[1 0.088167-27.9169-2.30942];sys=tf(num,den)[z,p,k]=tf2zp(num,den);step(sys)%阶跃响应曲线: grid on
阶跃响应曲线
rlocus(sys)%根轨迹
根轨迹
bode(sys)%波特图
[A,B,C,D]=tf2ss(num,den);Q=ctrb(A,B)rank(Q)%系统能控性分析
Q =
1.0000-0.0882 27.9247 0 1.0000-0.0882 0 0 1.0000
ans = 3
由得到的rank(Q)的值可知,原系统的能控性矩阵为3,所以我们可知原系统是不能控的。m=obsv(A,C)rank(m)m = 2.3565 0 0-0.2078 65.7876 5.4423 65.8059-0.3580-0.4798
ans = 3 由得到的rank(m)的值可知,原系统的能观性矩阵为3,所以我们可知原系统是能观的。eig(A)ans =
5.2810-5.2864-0.0827
由eig(A)的值可知系统是不稳定的。4 系统设计
4.1极点配置与控制器的设计
采用极点配置法设计多输出的倒立摆系统的控制方案。可以用完全状态反馈来解决,控制摆杆和小车的位置。
设计状态反馈阵时,要使系统的极点设计成两个主导极点和两个非主导极点,用二阶系统的分析方法确定参数。
根据系统性能要求: 最大超调量10%,调节时间为 1s
-运用超调量计算公式:% 得到0.707wn5.66
1-2 t3
sn P2=-4-4.33j 得到两个主导极点为:P1=-4+4.33j P4=-20 选取两个非主导极点:P3=-20 根据MATLAB求取状态增益矩阵,程序如下: a=[0 1 0 0 0-0.0883167 0.629317 0 0 0 0 1 0-0.23655 27.8285 0];b=[0 0.883167 0 2.35655];p=[-4+4.33j-6-4.33j-20-20];k=acker(a,b,p)k =
-740.4267-247.3685 646.9576 113.8866
4.2系统仿真:
根据状态空间表达式建立一阶倒立摆SimuLink仿真图,如下:
4.3仿真结果
系统仿真图(位置,速度,角度,角速度)
根轨迹
4.4根据传递函数设计第二种控制方法-----PID串级控制
PID控制器系统框图:
经过几次参数调试得出Kp=300,Ki=200,Kd=20满足性能要求,其仿真图形如下:
5结 论
本次设计主要通过PID串级控制和状态空间极点配置的方法对直线一级倒立摆进行校正,通过此次课程,掌握MATLAB的基本使用方法。在课程设计过程中,培养了团队协作能力,刻苦钻研以及编程能力,为今后的学习工作打下了良好的基础。经过这次课程,是我受益匪浅。
第一、学会了如何运用自己所学的知识结合实践
第二、硬件最然需要不断尝试,但不是盲目的调试,而是需要有理论作为指导,指明调整的方向,这样设计系统就会事半功倍。第三、Matlab等工具软件的使用也大大提高了设计系统的速度。这些都是试验中珍贵的收获。
2009
NO.31
SCIENCE & TECHNOLOGY INFORMATION 学 术 论 坛
Matlab/Simulink仿真实验在扩频通信课程教学中的应用 张竞秋
(长春理工大学电子信息工程学院 吉林长春 130022)摘 要:根据扩频通信课程的特点,分析了当前该课程教学存在的问题,提出了采用Matlab/Simulink仿真来弥补实验室实验设备等的不足,并给出了Matlab/Simulink仿真的方法与实例,这是教学改革进程中的有益尝试。关键词:Matlab/Simulink仿真 扩频通信 仿真模型中图分类号:G424文献标识码:A文章编号:1672-3791(2009)11(a)-0236-02近年来,扩频技术迅猛发展,扩频通信不仅在军事通信中占有重要地位,在民用通信中也得到了越来越广泛的应用。《扩展频谱通信》是一门多学科专业交叉渗透的综合课程,它涉及到通信基础理论,对于教授该门课程理论的高校教师来说如何能更充分地表达自己的教学思路,如何更生动形象地开展教学,让学生更形象、更直观地理解所讲授内容历来是探讨的热点,解决上述问题的有效方法是采用计算机仿真技术。Matla/Simulink b仿真在实验教学中的作用
1.1Matlab/Simulink仿真与传统实验比较
通信系统仿真实质上就是把实验硬件搬进了计算机。在实物实验系统中,用各种电子元器件制作出通信系统中的理论模型
所规定的各个模块,再把它们通过导线或电缆等接在一起,然后再用示波器、频谱议、误码仪等通信仪表做各种测量,最后分析测量结果。在仿真实验中也是这样做,只不过所有通信模块及通信仪表的功能都是用程序来实现的,即通信系统的全过程在计算机中仿真运行。仿真实验不像实物实验那样让人感到“真实”,但对于许多通信问题的研究来说的确非常有效。与实物实验相比,Matlab仿真具有如下一些优点。
(1)Matlab可以仿真许多通信系统,通过改变某些参数来观察通信系统的性能,加深学生对知识的理解,从而可以获得比较好的教学效果。
(2)软件实验建设开发周期短,成本低。(3)弥补了由于实验场地、仪器设备和经费缺乏等因素带来的不足,避免了因误操作而对仪器造成的损坏,而且对于某些实验中不易观察到的现象,也可以进行模拟仿真。1.2Matlab/Simulink的功能与特点
Matlab是一套功能强大的工程技术数值运算和系统仿真软件,它具有数值分析、矩阵运算、图形处理、仿真建模、系统控制和优化等功能。运用Matlab进行仿真共有两种途径:一是基于数据流的仿真,它是用Matlab函数以命令行的形式实现,亦即编程实现整个系统的仿真;二是基于时间流的仿真,它是用 Matlab提供的一种可视化仿真模型库——Simulink来实现整个系统的仿真。Simulink提供了许多模型库,用户只需用鼠标将所需模块从库中调出来并连接起来即可。利用Matlab对通信原理课程中
所涉及的内容进行仿真 ,形式生动、形象直
图1 直接扩频发射机仿真系统模型
图2 直接扩频发射机扩频前数据信号频谱
图
直扩发射机扩频后输出信号频谱
236科技资讯 SCIENCE & TECHNOLOGY INFORMATION
学 术 论 坛
观、启发性强,能增强学生的感性认识,加强其对授课内容的理解。
8000次/s,为此,以升速率模块配合采样保持模块将调制输出信号采样速率提高到8000次/s。2.2 仿真结果
仿真执行后,两个频谱仪将分别显示扩频前后的信号频谱,采用BPSK调制的等效低通模型时,调制前后的功率谱相同,如图2所示,可见,数据信号的带宽约100Hz,其功率峰值约为20dB,而扩频输出信号带宽展宽了20倍,为2kHz,其功率峰值下降到约7dB处。仿真输出的时域波形结果如图3所示,图中显示了数据流、PN序列以及扩频输出信号的波形。2009
NO.31 科技资讯
趣,能取得较好的实验效果,弥补通信类课程实验的不足。2 扩展频谱通信系统仿真实例
直接序列扩频通信系统是扩频通信中最典型和最便于理解的扩频方式之一。我们试图通过这一系统的仿真演示过程来说明仿真软件在教学中的突出作用。2.1直接序列扩频通信系统
通过建立如图1所示的仿真模型来研究直接序列扩频通信系统,观察其数据波形、扩频输出波形及扩频调制输出的频谱。仿真模型中,Bernoulli Binary Generator用于产生伪随机扩频序列,其采样时间设置为0.01s.PNSequence Generator用于产生伪随机扩频序列,其采样时间设置为0.0005s.Unipolar toBipolarr Converter用于完成数据和扩频序列的双极性变换,乘法器输出就是扩频输出,其码速率等于采样速
率。扩频输出信号以BPSK方式进行调制。为使频谱观察范围达到4kHz,需要被观察信号的采样速率达到 参考文献
[1]朱近康.扩展频谱通信及其应用[M].北
京:中国科学技术大学出版社,1993.[2]李颖,朱伯立,张威.Simulink动态系统 建模与仿真基础[M].西安:西安电子科技大学出版社,2004.[3]邵玉斌.Matlab/Simulink通信系统建模
与仿真实例分析[M].北京:清华大学出版社,2008.3 结语
Matlab/Simulink作为一种功能强大的工程技术数值运算和系统仿真软件,一直是科研人员作研究的工具,较少用于教学活动中。实践证明:在扩展频谱通信原理的实验教学过程中引入Matlab进行仿真,能帮助学生更好的学习该课程,提高学习兴 图4 直扩发射机扩频前后的信号波形仿真结果(上接2
页)
年1月份以来,荆门市工商局以小批发为重点,开展了农村集贸市场食品安全大检查,查处收缴过期变质食品1191袋、“三无”食品495公斤、假冒食用油310公斤、假冒乳饮品680件,办理涉及食品的违法案件42起[2]。
最后在消费终端,强化农村食品消费环节的监管。对存在食品安全隐患多的小餐馆和小摊点坚决予以取缔。加强对农家宴的卫生监管和技术指导,强化对农村厨师健康体检和培训管理,严厉查处无卫生许可证从事餐饮服务的违法行为,防止发生群体性食物中毒事件。在湖北省对农村城镇、集镇、乡村举办的食品交易会、庙会、食品批发市场、集贸市场以及农村小食品店、个体商贩、小摊点、小作坊、小餐馆开展“拉网式”反复检查,重点检查品种为粮、肉、蔬菜、食用油、奶制品、豆制品、饮料、酒类、保健品、儿童食品、禽蛋及其制品、水产品等。3.3广泛深入地宣传相关法律法规及食品卫生安全知识
推进群防群治机制创新,针对农民群众食品安全意识差、防范能力低的实际,在农村农贸市场和社区街道设置食品安全举报投诉,将12315、12346等食品投诉举报热
线延伸到农村地区,湖北荆门建立村级消
费者投诉站和12315联络站330个。在全市农村设群众维权机构,聘请食品安全协管员和信息员,方便群众快捷、有效地进行投诉,实现食品安全群防群治,综合治理。
数学实验是计算机技术和数学、软件引入教学后出现的新事物。数学实验[1]的目的是提高学生学习数学的积极性, 提高学生对数学的应用意识, 并培养学生用所学的数学知识和计算机技术去认识问题和解决实际问题的能力。不同于传统的数学学习方式, 它强调以学生动手为主的数学学习方式。在数学实验中, 由于计算机的引入和数学软件包的应用, 为数学的思想与方法注入了更多、更广泛的内容, 使学生摆脱了繁重、乏味的数学演算和数值计算, 促进了数学同其他学科之间的结合, 从而使学生有时间去做更多的创造性工作。现在国外小学还开设数学实验室或实验角, 准备各种各样的教具、操作用具, 许多用发现法教学的课就在数学实验室中进行。在如今的大学里, 也加入了这一门课, 比较富有创意。
1 MATLAB的主要功能
MATLAB的数值计算[2]功能在数学类软件中可谓是首屈一指。它可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、链接其他编程语言的程序等, 主要用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等各个领域。
2 MATLAB在数学实验中的应用实例
下面是关于导弹追踪问题的一个实例, 其求解过程充分体现了MATLAB程序设计在数学实验中的重要作用。
设位于坐标原点的甲舰向位于x轴上点A (1, 0) 处的乙舰发射导弹, 导弹头始终对准乙舰。如果乙舰以最大的速度v0 (是常数) 沿平行于y轴的直线行驶, 导弹的速度是5v0, 求导弹运行的曲线方程。又乙舰行驶多远时, 导弹将它击中?
解:假设导弹在t时刻的位置为P (x (t) , y (t) ) , 乙舰位于Q (1, v0t) 。由于导弹头始终对准乙舰, 故此时直线PQ就是导弹的轨迹曲线弧OP在点P处的切线,
又根据题意, 弧OP的长度为│AQ│的5倍,
由式 (1) (2) 消去t整理得模型:
初值条件为:y (0) =0 y' (0) =0
下面给出此模型的MATLAB求解过程:
首先利用MATLAB命令y=dsolve ('5* (1-x) *D2y=sqrt (1+Dy^2) ', 'y (0) =0, Dy (0) =0', 'x')
得到导弹的运行轨迹方程:
其运动轨迹我们使用命令fplot ('-0.625* (1-x) ^0.8+0.4167* (1-x) ^1.2+0.2083', [0, 1])
(为了书写程序的方便, 把分数都用小数进行了替代。)
可以得到导弹的运动轨迹图形为:
易知, 当x=1时y=5/24, 即当乙舰航行到点 (1, 5/2 4) 处时被导弹击中。被击中的时间为:t=y/v0=5/24v0.若v0=1, 则在t=0.21处被击中。
上述问题属典型的二阶非线性微分方程[3]问题, 它的求解用笔算是相当复杂的, 可是这里我们借助MATLAB程序很轻松的就把问题解决了。由此可以看出, MATLAB程序设计在数学实验中作用是非常显著的。
3 结论
围绕数学实验的基本内容, 充分利用MATLAB的强大数值计算和图形功能, 通过简单的编程就可以迅速得出精确的结论, 绘制形象生动的图像。从实验中去学习、探索和发现数学规律, 激发学生学习数学的兴趣, 培养他们利用MATLAB软件及当代最新科技成果的意识, 能将数学、计算机技术有机地结合起来去解决所遇到的实际问题。
参考文献
[1]孙朝仁, 马敏.开展数学实验教学的可行性调查与分析[J].中国数学教育, 2013 (07) :8-12..
[2]张贤明.MATLAB语言及应用案例[M].南京:东南大学出版社, 2010.
关键词:跳频;扩频;m序列;跳频图案
中图分类号:TN914.42
文献标识码:A
DOI:10.3969/j.issn.1003-6970.2015.09.025
0 引言
跳频扩频是无线通信最常用的扩频方式之一。跳频通信系统的收发设备传输无线信号的载波频率按照预定规律或者算法进行离散变化,也就是无线通信中选用的载波频率随伪随机码的控制而随机跳变。“跳频技术”是一种用伪随机码序列进行多频频移键控的一种通信方式,是码控载波频率跳变的一种通信系统。其中跳频频率控制器是核心部件,它具有产生跳频图案、同步和自适应控制等功能,频率合成器在跳频控制器的控制下合成所需要的载波频率,数据终端还需要对接收数据进行差错控制。
跳频通信系统的特点是载波频率在伪随机码的控制下不断地随机跳变,它可以看作是载波频率按一定规律变化的多频频移键控(MFSK)。跳频系统的伪码是用来选择信道,并不直接传输。与一般通信系统相比,跳频通信系统的信道随伪码作随机变化,跟踪其频点十分困难,跳频通信是通信抗干扰领域应用最广的一种通信方式。在军事上,主要用于干扰和抗干扰的斗争,其频谱非常宽,跳频通信比较隐蔽也难以被截获,对方不清楚载频跳变的规律,所以敌人很难追踪信号实施干扰。即使有部分频点被干扰,仍能在其他未被干扰的频点上进行正常的通信。在民用上,跳频技术在移动电话、蓝牙设备、婴儿监视器等方面也有广泛应用。
本文结合QPSK调制和跳频技术,首先研究了跳频调制的原理,然后借助MATLAB/siInulink平台设计了跳频扩频调制器,观察并分析仿真结果。
1 跳频调制原理
跳频通信是一种数字化通信,是扩频通信的一种。在这种通信方式中,信号传输所使用的射频带宽是原基带信号带宽的几十倍、几百倍甚至几千倍。但仅就某一个瞬间来说,它只工作在某一个频率上。跳频扩频就是用扩频的伪随机码序列对近代信号进行移频键控(FSK)调制,使载波的频率高速地跳变。根据跳变的快慢还分为快跳频和慢跳频两类。跳频系统的跳变频率有很多,多达几十个甚至上千个。待传送的信息和这些扩频码的组合实现选择控制,在传送过程中不断跳变。在接收端,由同步系统控制本地发生器产生与发送端完全相同的扩频码进行解扩,然后进行解调正确地恢复原有的信息。
跳频系统占用了比基带信息带宽要宽得多的频带。目前,跳频通信系统由于其保密性好抗干扰性强等优点主要应用在军事领域,跳频系统的组成原理框图如图1所示。
图l中,首先,信源信息经过基带调制得到一个中频信号。由一个伪随机码序列去控制产生频率随机变化的跳频信号,然后用该跳频信号对中频信号进行频率调制,得到频率随机变化的射频信号,发送到信道中。接收端要经过跳频同步系统产生本地跳频信号,本地跳频信号的变化与接收到的跳频信号变化一致,用本地跳频信号进行混频恢复出中频信号。
跳频系统频率的变化规律称为跳频图案,跳频图案在不同时刻有不同的频率选择,它表明什么时间用什么频率进行通信。跳频图案的好坏直接影响跳频通信系统的性能,包括跳频带宽、信道间隔、跳频频率的频点数、跳频速率、跳频周期等。
2 扩频跳频调制器的实现
根据上一节介绍的跳频原理,结合扩频原理,在MATLAB/simulink上搭建跳频扩频调制的仿真模型。跳频和扩频所用到的伪随机序列都采用m序列,采用先扩频后跳频,仿真模型分为扩频部分和跳频部分,下面分别进行介绍。
2.1 扩频模块模型
扩频模块部分采用QPSK扩频,内部结构如图2所示。
图2中,信源信号由随机整数产生器RandomInteger Generatorl产生,经过Unipolar to Bipolarl模块进行单双极性变换转换成双极性信号,然后转换成相互正交的两路信号,再分别与随机码序列相称进行扩频,扩频码由随机码序列产生器PN Se-quence Generator模块产生,然后与相互正交的两路载波信号相乘再相加完成扩频与基带调制,得到一个中频QPSK信号。
2.2 跳频模块模型
跳频模块模型如图3所示。
跳频模块部分重点是跳频图案的产生,图3中用PN码产生器生成的m序列控制压控振荡器来产生跳频图案。仿真中,用来产生跳频图案的m序列长度为15,采样时间为O.Ols,每4位伪随机码转换成十进制数作为VCO的输入,控制VCO产生不断变化的跳频频率,VCO的静态频率设为3000Hz,输入灵敏度设为IOOOHz/V。图2的输出作为图3的输入就得到的跳频扩频调制的结果。
3 仿真结果分析
运行仿真模块,可以得到15位的m序列码为:011110001001101,经过分析可以得到频点数为15个,顺序依次为10K、11K、12K、13K、18K、4K、6K、8K、17K、5K、9K、14K、15K、7K、16K0
运行仿真模块,观察控制VCO的输入电压信号,得到控制信号数值依次为7、8、9、10、15、l、3、5、l4、2、6、ll、l2、4、l3、7、8、9、10……,结合设置的VCO的静态频率为3000Hz,输入灵敏度为IOOOHz/V,计算VCO的输出频率依次为1OK、11K、12K、13K、18K、4K、6K、8K、17K、5K、9K、14K、15K、7K、16K……与分析结果一致。
跳频扩频调制后的信号频谱如图所示4所示。
跳频扩频调制后,信号的中心频率在以上分析得到的15个频率点随机跳变,图4中只截取了四个频率点的频谱图。由于扩频的作用,从频谱图上可以看出,信号的带宽被展宽了,展宽的倍数取决于扩频码的长度。
4 结束语
文中研究了跳频扩频调制的原理,给出了扩频跳频调制器的仿真模型,及模块的参数选取。经过分析,跳频扩频调制器在展宽了信号频谱的同时,使已调信号中心频率随机变化,中心频率跳变规律取决于调频图案的设计,仿真模型是能够正常工作的,产生的频点数与跳频速率与预期一致,。在实际应用中选择合适的PN码长度以及合适的采样时间,就可以得到符合要求的跳频图案。增加PN码长度得到足够多的跳频频点,缩小采样时间得到足够高的跳频速率。
【matlab数学实验实现】推荐阅读:
实验报告matlab09-09
信号系统matlab实验07-27
电机matlab实验报告09-09
matlab实验预习报告09-24
matlab实验指导书10-28
信号与系统matlab实验01-18
matlab作业11-11
matlab课程作业11-09
matlab学习体会05-25
matlab数值分析实例06-21