matlab上。机。
实。习。报。告。
系别姓名:班级:
学号:设计题目
单神经元pid控制系统**
一、 目的和要求。
1、学会收集和查阅资料。
2、学会针对控制系统建立数学模型的方法,掌握控制器的设计方法。
3、了解matlab软件的用途。
4,掌握matlab软件m文件的写法。
三、 matlab简介。
在科学研究和工程应用中,往往要进行大量的数学计算,其中包括矩阵运算。这些运算一般来说难以用手工精确和快捷地进行,而要借助计算机编制相应的程序做近似计算。目前流行用basic、fortran和c语言编制计算程序, 既需要对有关算法有深刻的了解,还需要熟练地掌握所用语言的语法及编程技巧。
对多数科学工作者而言,同时具备这两方面技能有一定困难。通常,编制程序也是繁杂的,不仅消耗人力与物力,而且影响工作进程和效率。为克服上述困难,美国mathwork公司于1967年推出了“matrix laboratory”(缩写为matlab)软件包,并不断更新和扩充。
目前最新的版本(windows环境)是一种功能强、效率高便于进行科学和工程计算的交互式软件包。其中包括:一般数值分析、矩阵运算、数字信号处理、建模和系统控制和优化等应用程序,并集应用程序和图形于一便于使用的集成环境中。
在此环境下所解问题的matlab语言表述形式和其数学表达形式相同,不需要按传统的方法编程。不过,matlab作为一种新的计算机语言,要想运用自如,充分发挥它的威力,也需先系统地学习它。但由于使用matlab编程运算与人进行科学计算的思路和表达方式完全一致,所以不象学习其它高级语言--如basic、fortran和c等那样难于掌握。
实践证明,你可在几十分钟的时间内学会matlab的基础知识,在短短几个小时的使用中就能初步掌握它。从而使你能够进行高效率和富有创造性的计算。 matlab大大降低了对使用者的数学基础和计算机语言知识的要求,而且编程效率和计算效率极高,还可在计算机上直接输出结果和精美的图形拷贝,所以它的确为一高效的科研助手。
自推出后即风行美国,流传世界。
综上所述,matlab语言有如下特点:
1.编程效率高。
它是一种面向科学与工程计算的高级语言,允许用数学形式的语言编写程序,且比basic、fortran和c等语言更加接近我们书写计算公式的思维方式,用matlab编写程序犹如在演算纸上排列出公式与求解问题。因此,matlab语言也可通俗地称为演算纸式科学算法语言由于它编写简单,所以编程效率高,易学易懂。
2.用户使用方便。
matlab语言是一种解释执行的语言(在没被专门的工具编译之前),它灵活、方便,其调试程序手段丰富,调试速度快,需要学习时间少。人们用任何一种语言编写程序和调试程序一般都要经过四个步骤:编辑、编译、连接以及执行和调试。
各个步骤之间是顺序关系,编程的过程就是在它们之间作瀑布型的循环。matlab语言与其它语言相比,较好地解决了上述问题,把编辑、编译、连接和执行融为一体。它能在同一画面上进行灵活操作快速排除输入程序中的书写错误、语法错误以至语意错误,从而加快了用户编写、修改和调试程序的速度,可以说在编程和调试过程中它是一种比vb还要简单的语言。
具体地说,matlab运行时,如直接在命令行输入mailab语句(命令),包括调用m文件的语句,每输入一条语句,就立即对其进行处理,完成绩译。连接和运行的全过程。又如,将matlab源程序编辑为m文件,由于mat1ab磁盘文件也是m文件,所以编辑后的源文件就可直接运行,而不需进行编译和连接。
在运行m文件时,如果有错,计算机屏幕上会给出详细的出错信息,用户经修改后再执行,直到正确为止。所以可以说,mat1ab语言不仅是一种语言,广义上讲是一种该语言开发系统,即语言调试系统。
3.扩充能力强。
高版本的matlab语言有丰富的库函数,在进行复杂的数**算时可以直接调用,而且matlab的库函数同用户文件在形成上一样,所以用户文件也可作为matlab的库函数来调用。因而,用户可以根据自己的需要方便地建立和扩充新的库函数,以便提高matlab使用效率和扩充它的功能。另外,为了充分利用fortran、c等语言的资源,包括用户已编好的fortran,c语言程序,通过建立me调文件的形式,混合编程,方便地调用有关的fortran,c语言的子程序。
4.语句简单,内涵丰富。
mat1ab语言中最基本最重要的成分是函数,其一般形式为「a,b,c……」fun(d,e,f,……即一个函数由函数名,输入变量d,e,f,……和输出变量a,b,c……组成,同一函数名f,不同数目的输入变量(包括无输入变量)及不同数目的输出变量,代表着不同的含义(有点像面向对象中的多态性。这不仅使matlab的库函数功能更丰富,而大大减少了需要的磁盘空间,使得matlab编写的m文件简单、短小而高效。
5.高效方便的矩阵和数组运算。
matlab语言象basic、fortran和c语言一样规定了矩阵的算术运算符、关系运算符、逻辑运算符、条件运算符及赋值运算符,而且这些运算符大部分可以毫无改变地照搬到数组间的运算,有些如算术运算符只要增加“·”就可用于数组间的运算,另外,它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效、方便,这是其它高级语言所不能比拟的。在此基础上,高版本的matlab已逐步扩展到科学及工程计算的其它领域。因此,不久的将来,它一定能名符其实地成为“万能演算纸式的”科学算法语言。
6.方便的绘图功能。
matlab的绘图是十分方便的,它有一系列绘图函数(命令),例如线性坐标、对数坐标,半对数坐标及极坐标,均只需调用不同的绘图函数(命令),在图上标出图题、xy轴标注,格(栅)绘制也只需调用相应的命令,简单易行。另外,在调用绘图函数时调整自变量可绘出不变颜色的点、线、复线或多重线。这种为科学研究着想的设计是通用的编程语言所不及的。
总之,matlab语言的设计思想可以说代表了当前计算机高级语言的发展方向。我们相信,在不断使用中,读者会发现它的巨大潜力。
四、matlab的m文件的程序控制流语句介绍。
matlab语言的程序结构与其它高级语言是一致的,分为顺序结构,循环结构,分支结构。
1、 顺序结构。
顺序结构是matlab中最常用的程序结构,也是执行效率最高的程序结构。顺序结构的语句是按照书写的前后顺序来执行的。
2、 循环结构。
matlab用于循环结构的语句有两种:“for……end”循环和“while……end”循环。
1) for…end语句。
利用“helpfor”或“docfor”可以获得关于该语句的使用手册。“for…end”语句适用于循环次数确定的情况,将循环变量的初值、判别和变化放在循环开头。“for…end”语句的调用形式是:
for i=表达式 (表达式为一个向量)语句1;
语句n;end
2) while……end语句。
对于循环次数不能预先确定,而是由某个逻辑条件来控制循环次数的情况,matlab提供了“while…end”来实现。和“for…end”语句类似,“while…end”语句也允许嵌套。
while…end”语句的一般形式是:
while 表达式。语句1;
语句n;end
表达式一般是由逻辑运算和关系运算以及一般运算组成的,以判断循环的进行和停止;只有表达式的值非0,继续循环;直到表达式的值为0,循环停止。
3、 分支结构——根据一定条件来执行的各条语句。
1) if——else——end语句有三种形式。
if 表达式。
执行语句;end
if 表达式———是。
语句1;else———否。
语句2;end
if 表达式1———多分支。
语句1;else if 表达式2
语句2;else if 表达式3
语句3;else
语句n;end
如果表达式1的值为真,则执行语句1;如果为假,则判断表达式2,如果为真,则执行语句2,否则向下执行。
2) “switch”语句来实现多重分支结构。其用法:
switch 表达式(%可以是标题或字符串)
case 值1
语句1case 值2
语句2case 值3语句3
otherwise
语句。end
表达式的值和那种情况(case)的值相同,就执行那种情况中的语句,如果不同,则执行otherwise中的语句。格式中也可以不包括otherwise,这时如果表达式的值与列出的各种情况都不同,则继续向下执行。
4、 二维显示指令介绍。
1) plot(x):x为长度为n的数值向量,坐标的纵坐标是向量x,横坐标为matlab系统根据x向量的元素序号自动生成的从1开始的向量。
2) plot(x,y): 纵坐标是y,横坐标是x。x,y向量的数目必须相等。
3) axis([x1,x2,y1,y2]):设定坐标轴的范围。
4) plot (x):x为m*n的矩阵, plot(x)命令为矩阵的每一列画出一条线,共n条,曲线的横坐标为向量1:m,m是矩阵的行数。
5) plot(z): 可以复制复向量曲线它与(plot(real(z),imag(z))等效,以实部为横坐标,虚部为纵坐标。
6) plot(x1,y1,x2,y2...绘制多条曲线。
绘制图形的一般步骤:
1) 曲线数据备份。
对于二维曲线,横坐标和纵坐标数据变量;
对于三维曲面,矩阵参变量和对应的函数值。
2) 指定图形窗口和子图位置:
默认时,打开figure no.1窗口或当前窗口,当前子图;
也可以打开指定的图形窗口和子图。
3) 设置曲线的绘制方式:
线型,色彩,数据点形。
4) 设置坐标轴:
坐标的范围,刻度和坐标分格。
5) 图形注释。
图名,坐标名,图例,文字说明。
6) 着色,明暗,灯光,材质处理(仅对三维图形处理)
7) 视点,三度(横,纵,高)比(仅对三维图形处理)
8) 图形的精细修饰 (图形句柄操作):
利用对象属性值设置。
利用图形窗工具条进行设置。
课程设计报告格式 课程设计
洛阳理工学院。课程设计说明书。课程名称。设计课题。专业。班级。学号。姓名。完成日期2014年12月26日。问题描述 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的内容要求。基本要求 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的基本要求。测试数据 小四宋体,行间距单倍行距,每...
课程设计总结,课程设计报告
课程设计总结,课程设计报告。3.尝试应用项目管理软件进行项目进程的规划管理 绘制甘特图,不作硬性要求 二 选题说明。人事管理是企业信息管理的重要部分,面对大量的人事工资信息,财务部门采用人力处理将浪费大量的时间 人力和物力,且数据的准确性低。因此,开发一个界面友好,易于操作的人事工资管理软件进行自动...
课程设计 课程设计报告格式
学校名。课程设计报告。课程名称 c语言程序设计 系别 专业班级 学号。姓名。课程题目 企业人事管理系统 完成日期 指导老师 年月日。附件。课程设计的内容。企业人事管理系统 本项目的目标是开发一个功能实用,操作简便,简单明了的人事管理系统。能够录入人事的基本资料,在操作上能够完成诸如添加 修改 删除 ...