第4章MATLAB程序设计 《计算机仿真技术与CAD》
计算机仿真技术与CAD基于MATLAB的控制系统第四版课程设计

计算机仿真技术与CAD基于MATLAB的控制系统第四版课程设计一、课程设计的背景随着计算技术的发展,越来越多的机电设备采用了控制系统,从而提高了生产力和工作效率。
因此,控制系统的设计和仿真技术也得到了越来越广泛的应用。
为了提高控制系统的性能,提高系统的可靠性和稳定性,需要采用控制系统设计和仿真技术。
在此背景下,本次课程设计旨在通过MATLAB软件对控制系统进行仿真设计,从而提高学生的控制系统设计和仿真技能。
二、课程设计的目的本次课程设计的目的主要包括以下几个方面:1.提高学生的控制系统设计和仿真能力;2.增强学生的MATLAB编程技术;3.帮助学生理解控制系统的基本原理及其应用;4.增强学生团队合作和沟通能力。
三、课程设计的内容和要求本次课程设计主要有以下内容和要求:3.1 选题背景和意义选题需要有明确的背景和意义,可以结合实际应用场景进行选择。
3.2 系统分析与模型建立学生需要对待设计的控制系统进行系统分析,并建立相应的模型。
包括控制系统的框图、信号流图、传递函数、状态空间等。
3.3 控制器的设计与仿真学生需要对设计的控制系统设计相应的控制器,并进行仿真评估。
包括根轨迹法、频域设计法、状态反馈控制、PID控制等。
3.4 性能分析与评价学生需要对仿真结果进行性能分析与评价。
包括阶跃响应,超调量,稳态误差等。
3.5 实验设计与编程实现学生需要将设计的控制系统进行实验设计,并用MATLAB编写程序进行实现与测试。
3.6 结果分析与总结学生需要对实验结果进行分析与总结,从控制效果、系统应用等方面加以评价。
四、课程设计的实施方法本次课程设计的实施方法主要包括以下几个方面:1.采取团队合作的方式进行任务分配和工作安排;2.利用网上资源和实验平台,进行实践学习与实验操作;3.在课程设计的过程中,主要采用课堂授课和实验操作相结合的方式进行;4.通过实验操作和讨论,进行知识交流和实践探索。
五、课程设计的评价方法本次课程设计的评价主要从以下几个方面进行:1.对学生在选题、模型分析、控制器设计、仿真评价等方面的表现和成果进行评价;2.对学生实验操作能力和MATLAB编程水平进行评价;3.对团队合作和沟通能力进行评价;4.对报告和总结的撰写质量进行评价。
计算机仿真技术与CAD基于MATLAB的控制系统第四版教学设计

计算机仿真技术与CAD基于MATLAB的控制系统第四版教学设计一、教学目标本教学设计旨在帮助学生了解计算机仿真技术和CAD基于MATLAB的控制系统的基本概念和实际应用。
通过本教学,学生将学会以下内容:1.了解计算机仿真技术和CAD基于MATLAB的控制系统的基本概念和实际应用;2.掌握MATLAB软件的使用方法;3.掌握控制系统仿真技术和CAD的基本操作方法;4.学会使用MATLAB对控制系统进行仿真分析、数据处理和结果呈现;5.培养学生的实际操作和问题解决能力。
二、教学内容(一)计算机仿真技术基础课程1.计算机仿真技术基础概念;2.计算机仿真技术基础工具;3.计算机仿真技术基础数据处理;4.计算机仿真技术实际应用。
(二)CAD控制系统基础课程1.CAD控制系统基础概念;2.CAD控制系统基础工具;3.CAD控制系统基础数据处理;4.CAD控制系统实际应用。
(三)MATLAB基础课程1.MATLAB基础概念;2.MATLAB基础工具;3.MATLAB基础数据处理;4.MATLAB实际应用。
(四)控制系统仿真课程1.控制系统仿真基础概念;2.控制系统仿真基础工具;3.控制系统仿真基础数据处理;4.控制系统仿真实际应用。
三、教学方法1.讲授法:通过授课,让学生了解计算机仿真技术和CAD基于MATLAB的控制系统的基本概念和实际应用;2.实验法:通过实验,让学生掌握MATLAB软件的使用方法和控制系统仿真技术的基本操作方法;3.问题解决法:通过让学生解决实际问题,培养学生的实际操作和问题解决能力。
四、教材参考1.《MATLAB数学计算》;2.《现代控制理论与应用》;3.《控制系统设计》;4.《计算机仿真技术入门与实践》。
五、教学考核1.期末考试:主要考察学生对计算机仿真技术和CAD基于MATLAB的控制系统的基本概念和实际应用的理解;2.实验报告:主要考察学生的实际操作和问题解决能力。
六、教学进度课程名称讲课时间实验时间计算机仿真技术基础课程 2 4CAD控制系统基础课程 2 4MATLAB基础课程 2 4控制系统仿真课程 2 4七、教学反思本教学设计结合了计算机仿真技术和CAD基于MATLAB的控制系统的基本概念和实际应用,使学生能够更加全面地了解和掌握这一领域的知识。
计算机仿真技术及CAD

23
2.仿真软件的发展
近四十年来,仿真软件充分吸收了仿真 方法学、计算机、网络、图形/图像、多 媒体、软件工程、系统工程、自动控制、 人工智能等技术成果,从而得到了很大 发展。 仿真软件也从初期的机器代码,经历较 高级的编程语言,面向问题描述的仿真 语言,发展到模块化概念,并进而发展 到面向对象编程,图形化模块编程等。
37
(3) 控制系统CAD在控制系统教学中的应用也是十分 明显的,借助于控制系统CAD程序,可以加深学生对 控制系统理论的学习和理解。同时由于减少了许多繁 杂的手工计算,从而可以提高学习效率。过去在课堂 学习中只能举一些低阶系统和简单参数的例子,以便 于手工能够计算。今天借助于计算机,更为接近实际 的高阶系统也可作为学生的练习。从而使他们能得到 更多的实际训练,较早地获得实际控制系统设计的经 验。
6
2. 仿真的定义
对于比较简单的被控对象,可以在实际 系统上进行实验和调整来获得较好的整定参 数。 但是在实际生产过程中,大部分的被控 对象是比较复杂的,并且要考虑安全性、经 济性以及进行实验研究的可能性等,这在现 场实验中往往不易做到,甚至根本不允许这 样做。
7
例如研究导弹飞行、宇航、反应堆控制 等系统时,不经模拟仿真实验就进行直接实 验,将对人类的生命和健康带来很大的危险, 这时,就需要把实际系统建立成物理模型或 数学模型进行研究,然后把对模型实验研究 的结果应用到实际系统中去,这种方法就叫 做模拟仿真研究,简称仿真。
21
1.硬件的发展
40年代出现了模拟计算机,这时的计算 机大都是用来设计飞机的专用计算机。 50年代初,出现了通用的模拟计算机。 50年代末,数字计算机有了很大发展, 加上这时期在微分方程数值解的理论方 面又有很大的发展,所以在几种高级语 言(如FORTRAN,ALGOL等)出现以后, 在50年代末期,数字计算机便在非实时 仿真方面开始得到广泛的应用。
《计算机仿真技术》PPT课件

KR1BTP
(3) 在线的线性二次型最优控制
u(t)KX(t)
精选课件ppt
28
线性二次型调节器设计的MATLAB函数
函数LQR(Linear-quadratic regulator)用于计算连续状 态空间方程
X AX Bu
y CX Du
矩阵P必须满足黎卡提(Riccati) 代数方程:
P A A T P P B 1 B R P Q 0
●线性二次最优调节器的另一种二次型目标函数具有交叉项
J (XTQ X uTR u2XN )du t 0
精选课件ppt
27
线性二次型调节器的设计
线性二次调节器的设计步骤如下:
(1) 解式(4.5-4) Riccati 方程,求得矩阵P。若所求出P
e Ke
为简化起见,令 Kt Ke K
由牛顿定律,转子力矩平衡关系为
J bKi精选课件ppt Nhomakorabea36
由克希霍夫定律
LdiRiuK dt
u 设系统状态 X,i' 并建立以输入电压
为输入,转速 为输出的系统状态空间表达式为
X AX Bu
Y CX
X
i
Y
A
b
J K
L
K
J R
L
,
B
设计任务是要计算反馈 K,使 ABK 的特征值
和期望的极点 P相同.
精选课件ppt
15
极点配置的MATLAB函数
函数ACKER是基于Ackermann算法求 解反馈增益K。
Kak ceA ,rB ,(P )
其中,A,B为系统矩阵;P为期望极点向 量;K为反馈增益向量。
计算机仿真技术与CAD——基于MATLAB的控制系统(第2版)[李国勇]第4章连续系统按环节离散化的数字仿真
![计算机仿真技术与CAD——基于MATLAB的控制系统(第2版)[李国勇]第4章连续系统按环节离散化的数字仿真](https://img.taocdn.com/s3/m/8410cf4752d380eb62946dca.png)
u(kT 1)T
) ]
u[(k T
1)T ] (k
(t T
k t
T) (k
1)T
(4-5)
)
当t=(k+1)T时
uh[(k 1)T ] u(kT)
u[(k
1)T ]
u(kT)
u[(k T
1)T ]
(4-6)
13
今对典型环节中系数a,b,c,d的不同情况,求离散
状态变量式输出量的解。
1.当a≠0,b=0(相应有比例、微分和比例微分等环节) 时,由式(4-4)可得
A a 0, B c
b
b
(4-13)
代入式(4-10)后可得
z[(k 1)] z(kT) cT u(kT) cT u[(k 1)T ]
2b
2b
同样由式(4-8)和式(4-6)两式可得
x[(k 1)T ] z[(k 1)T ] d u(kT) (4-14)
b
17
今将以上三种情况下的典型环节的仿真模 型归纳为一个统一公式
2
4.1 连续系统的离散化
设连续系统的状态空间表达式为
x(t) Ax(t) Bu(t)
y(t
)
Cx(t)
Du(t)
其状态方程的解为
(4-1)
t
x(t) e At x(0) e A(t ) Bu ( )d
0
3
对于kT及(k+1)T两个相邻的采样时 刻,状态变量的值分别为
kT
x(kT) e A(kT ) x(0) e A(kT ) Bu ( )d
if (u>u1)
if ((u-s)>=x1) x=u-s;else x=x1;end
《计算机仿真教案》课件

《计算机仿真教案》PPT课件第一章:计算机仿真概述1.1 计算机仿真的概念解释计算机仿真的定义强调计算机仿真在科学研究和工程设计中的重要性1.2 计算机仿真的分类介绍连续系统仿真和离散系统仿真的区别列举常见的计算机仿真方法和技术1.3 计算机仿真的应用领域概述计算机仿真在各个领域的应用实例强调计算机仿真在现代社会中的广泛应用第二章:计算机仿真原理2.1 计算机仿真的基本原理解释计算机仿真的基本原理和方法强调计算机仿真需要基于数学模型和算法2.2 计算机仿真的建模方法介绍常见的建模方法,如机理建模、统计建模和机器学习建模强调建模方法的选择和验证的重要性2.3 计算机仿真的求解方法介绍常见的求解方法,如数值求解、符号求解和优化求解强调求解方法的选择和收敛性的考虑第三章:计算机仿真工具3.1 计算机仿真软件介绍概述常用的计算机仿真软件,如MATLAB/Simulink、Ansys和SolidWorks等强调仿真软件的功能和适用领域3.2 计算机仿真软件的使用方法介绍如何使用计算机仿真软件进行仿真的基本步骤强调仿真软件的操作技巧和注意事项3.3 计算机仿真软件的选用原则讨论如何选择合适的计算机仿真软件强调根据实际需求和预算进行合理选择第四章:计算机仿真实验4.1 计算机仿真实验的设计介绍如何设计和规划计算机仿真实验强调实验设计的合理性和可行性4.2 计算机仿真实验的执行介绍如何执行计算机仿真实验强调实验过程中数据的采集和记录的重要性4.3 计算机仿真实验的结果分析介绍如何分析计算机仿真实验的结果强调结果分析的准确性和可靠性第五章:计算机仿真的评估与优化5.1 计算机仿真的评估方法介绍常见的计算机仿真评估方法,如误差评估、效率评估和可信度评估强调评估方法的选择和实施的重要性5.2 计算机仿真的优化方法介绍常见的计算机仿真优化方法,如参数优化、结构优化和算法优化强调优化方法的选择和实施的有效性5.3 计算机仿真的改进与提升讨论如何根据评估和优化结果改进和提升计算机仿真强调持续改进和更新仿真模型的重要性第六章:计算机仿真的可视化6.1 仿真可视化的概念与意义解释仿真可视化在计算机仿真中的作用强调可视化对于理解和分析仿真结果的重要性6.2 可视化工具与技术介绍常用的仿真可视化工具,如Paraview、Maya和Unity等强调不同工具适用于不同类型的仿真数据6.3 可视化应用案例分析通过案例展示如何将可视化应用于仿真数据的展示和分析强调可视化在帮助决策和优化过程中的作用第七章:计算机仿真的并行计算7.1 并行计算基础介绍并行计算的基本概念和原理强调并行计算在提高仿真效率方面的作用7.2 并行仿真方法介绍并行仿真的常见方法和实现策略强调在不同场景下选择合适的并行仿真方法的重要性7.3 并行仿真工具与平台介绍常用的并行仿真工具和平台,如OpenFOAM和ParaView的并行计算功能强调并行仿真工具的选择和配置的重要性第八章:计算机仿真的不确定性分析8.1 不确定性分析的基本概念解释不确定性分析在计算机仿真中的重要性强调不确定性来源和影响因素的识别8.2 不确定性分析的方法介绍常见的不确定性分析方法,如蒙特卡洛模拟和敏感性分析强调不同方法的应用场景和优缺点8.3 不确定性分析的应用案例通过案例展示如何进行不确定性分析并指导仿真的改进强调不确定性分析在提高仿真可靠性和准确性的作用第九章:计算机仿真的验证与验证9.1 验证和验证的基本概念解释验证和验证在计算机仿真中的重要性强调验证和验证对于确保仿真准确性的作用9.2 验证和验证的方法介绍常见的验证和验证方法,如实验验证、理论验证和同行评审强调不同方法的选择和实施的重要性9.3 验证和验证的应用案例通过案例展示如何进行验证和验证并提高仿真的可信度强调验证和验证在仿真研究和应用中的关键作用第十章:计算机仿真的未来发展趋势10.1 新兴技术对计算机仿真影响讨论新兴技术如、大数据和物联网对计算机仿真的影响强调技术发展对仿真方法和工具的推动作用10.2 计算机仿真的跨学科应用概述计算机仿真在跨学科领域中的应用前景强调跨学科合作对仿真研究和应用的重要性10.3 计算机仿真的挑战与机遇讨论计算机仿真面临的挑战和机遇强调持续学习和发展以应对未来仿真领域的变化重点和难点解析一、计算机仿真的概念与分类:理解计算机仿真的定义及其在不同类型系统中的应用是学习仿真的基础。
计算机仿真技术及CAD 第4章 离散事件计算机仿真
区别
1)离散事件系统中,各事件以某种顺序或在某种条件 下发生,并且大都属于随机性的,或者是由于随机的 输入,或者是由于系统元素的属性值作随机变化,使 得难以用常规的方法去研究。
2)连续系统仿真中,时间常被分割成均等的或非均等 的间隔,并以一个基本的时间间隔计时; 离散事件系统的仿真则常是面向事件的,时间指针往 往不是按固定的增量向前推进,而是由于事件的推动 而随机推进的。
(3)便于排队规则的确定。例如,生产线上待处 理工件的优先级水平有时需要作为“工件”实体的属 性考虑,以便于“按优先级排队”规则的建立与实现。
3) 状态(State):实体的状态指在某一时刻 该实体的所有属性值,系统的状态由系统中各 实体的状态合成。
如在理发店服务系统中“顾客”有“等待服务”, “接受服务”等状态,“服务员”有“忙”和“闲” 等状态。状态可以作为动态属性进行描述。
2) 属性(Attribute): 每一实体所具有的有效 特征称为实体的属性。属性与仿真目的有关, 一般可参照下面原则选取:
(1)便于实体的分类。例如,将理发店顾客的性 别(男、女)作为属性考虑,可将“顾客”实体分为 两类,每类顾客占用不同的服务台。
(2)便于实体行为的描述。例如,将飞机的飞行 速度作为属性考虑,便于对“飞机”实体的行为(如 两地间的飞行时间)进行描述。
活动总是与一个或几个实体的状态相对应。
5)事件(Event):改变系统状态的某一瞬时
操作或行为称为事件。事件通常发生在活动的
开始或结束时刻。
例如,在例4. 1中,可以把“顾客到达”称为一类事 件,因为正是由于顾客到达,系统的状态——服务员 的“状态”才能由闲变忙(如果原先无人排队),或 者使另一系统状态——排队的顾客人数发生变化(队 列人数加1)。 一个顾客接受服务完毕后离开系统,也可以定义成一 类事件,因为服务台由忙变闲或者等待的队列发生变 化。
Matlab与控制系统仿真课程教学大纲
Matlab与控制系统仿真课程教学大纲(总学时数:32,学分数:2)一、课程设计的性质、任务和目的本课程是车辆工程专业选修课程。
通过本课程的学习,使学生初步掌握MATLAB语言的基本知识,结合所学《控制工程基础》课程,学会运用MATLAB语言进行控制系统仿真和辅助设计的基本技能,为今后从事科学研究打下较好的基础。
二、课程设计的内容和基本要求第一章计算机仿真和辅助设计概述了解控制系统计算机仿真和辅助设计的必要性、可能性以及计算机仿真与辅助设计的基本思路、基本方法和发展现状。
第二章MATLAB语言基础第一节使用MATLAB的窗口环境1.MATLAB语言特点2.MATLAB命令窗口掌握语句的输入、语句的显示与否、多行命令、方向键的使用、分页命令。
3.变量和数据显示格式掌握变量的命名方法、数据显示格式的控制命令format、一些特殊的变量。
4.常见的数学运算符及基本的数学函数+、-、*、/、\abs,sin,cos,asin,acos,tan,atan,sqrt,exp,imag,real,sign,log,log10,conj5.MATLAB工作空间掌握who, whos, clear, save, load, quit, exit等命令的使用了解workspace浏览器6.文件管理掌握常用文件管理命令what, delete, dir, type, cd, which掌握MATLAB工作路径的设置7.使用帮助学会用下列帮助和演示命令自学MATLAB语言:help matfun :矩阵函数-数值线性代数help general:通用命令help graphics:通用图形函数help elfun:基本的数学函数help elmat:基本矩阵和矩阵操作help datafun:数据分析和傅立叶变换函数help ops:操作符和特殊字符help polyfun:多项式和内插函数help lang:语言结构和调试help strfun:字符串函数help control:控制系统工具箱函数helpwin:帮助窗口helpdesk:帮助桌面,浏览器模式lookfor命令:返回包含指定关键词的那些项demo:打开示例窗口第二节MATLAB矩阵运算及多项式处理1.矩阵的输入掌握在命令窗口中用键盘输入掌握用语句生成矩阵:[from:step:to];linspace;logspace掌握一些常用特殊矩阵生成:eye(m,n);zeros(m,n);ones(m,n);diag(V);随机矩阵rand() 2.矩阵的运算掌握矩阵的转置、四则运算、逆矩阵与行列式运算:inv(),det();矩阵乘方^,.^矩阵的大小:[m,n]=size(A,x);length(A)=max(size(A));矩阵求秩:rank(A)了解矩阵超越函数3.矩阵操作矩阵的下标:定位矩阵元素A(m,n),A(:,n),A(m,:),A(m1:m2,n1:n2),A(:)矩阵的翻转4.多项式处理多项式的建立与表示方法:用降幂系数的行向量来表示;roots求解多项式等于零的根;poly根据多项式等于零的根求解多项式。
计算机仿真技术与CAD习题答案
第0章绪论0-1 什么是仿真?它所遵循的基本原则是什么?答:仿真是建立在控制理论、相似理论、信息处理技术和计算机技术等理论基础之上的,以计算机和其他专用物理效应设备为工具,利用系统模型对真实或假想的系统进行试验,并借助专家经验知识、统计数据和信息资料对试验结果进行分析和研究,进而做出决策的一门综合性的试验性科学。
它所遵循的基本原则是相似原理。
0-2 仿真的分类有几种?为什么?答:依据相似原理来分:物理仿真、数学仿真和混合仿真。
物理仿真:就是应用几何相似原理,制作一个与实际系统相似但几何尺寸较小或较大的物理模型(例如飞机模型放在气流场相似的风洞中)进行实验研究。
数学仿真:就是应用数学相似原理,构成数学模型在计算机上进行研究。
它由软硬件仿真环境、动画、图形显示、输出打印设备等组成。
混合仿真又称数学物理仿真,它是为了提高仿真的可信度或者针对一些难以建模的实体,在系统研究中往往把数学仿真、物理仿真和实体结合起来组成一个复杂的仿真系统,这种在仿真环节中有部分实物介入的混合仿真也称为半实物仿真或者半物理仿真。
0-3 比较物理仿真和数学仿真的优缺点。
答:在仿真研究中,数学仿真只要有一台数学仿真设备(如计算机等),就可以对不同的控制系统进行仿真实验和研究,而且,进行一次仿真实验研究的准备工作也比较简单,主要是受控系统的建模、控制方式的确立和计算机编程。
数学仿真实验所需的时间比物理仿真大大缩短,实验数据的处理也比物理仿真简单的多。
与数学仿真相比,物理仿真总是有实物介入,效果直观逼真,精度高,可信度高,具有实时性与在线性的特点;但其需要进行大量的设备制造、安装、接线及调试工作,结构复杂,造价较高,耗时过长,灵活性差,改变参数困难,模型难以重用,通用性不强。
0-4 简述计算机仿真的过程。
答:第一步:根据仿真目的确定仿真方案根据仿真目的确定相应的仿真结构和方法,规定仿真的边界条件与约束条件。
第二步:建立系统的数学模型对于简单的系统,可以通过某些基本定律来建立数学模型。
计算机仿真技术及CAD仿真软件-MATLAB
航空宇宙模块集(Aerospace Blockset); 通信模块集(Communications Blockset); 控制系统工具箱(Control Systems Toolbox); 数据获得工具箱(Data Acquisition Toolbox); 模糊逻辑工具箱(Fuzzy Logic Toolbox); 滤波器设计工具箱(Filter Design Toolbox);
15
* Edit 编辑菜单 Undo 撤消上一步操作 Redo 重新执行上一步操作 Cut 剪切 Copy 复制 Paste 粘贴 Paste Special 粘贴特定内容 Select All 全部选定 Delete 删除所选对象 Find 查找所需对象 Find Files 查找所需文件 Clear Command Window 清除命令窗口的内容 Clear Command History 清除历史窗口的内容 Clear Workspace 清除工作区的内容
* Window 窗口菜单 Close All Documents 关闭所有文档 Command Window 选定命令窗口为当前活动窗口 Command History 选定历史窗口为当前活动窗口 Current Directory 选定当前工作目录为当前活动窗口 Workspace 选定工作空间为当前活动窗口
第1章
仿真软件-M数和常用命令的使用; MATLAB的M文件的建立与使用; MATLAB的基本输入/输出函数及其应用; MATLAB的外部命令调用方法; MATLAB的条件转移语句、循环语句等常用控制语句的使用; MATLAB的基本绘图、字符添加、图形控制和图形修饰命令; MATLAB的基本数值运算方法; MATLAB的基本符号运算方法; MATLAB的文件I/O ; MATLAB图形用户界面(GUI)的简单设计; MATLAB编译器的基本应用方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
函数文件中定义的变量为局部变量,也 就是说它只在函数内有效。即在该函数返 回后,这些变量会自动在MATLAB工作空间 中清除掉,这与文本文件是不同的,但可 通过命令 global <变量>
来定义一个全局变量。 函数文件与文本文件另一个区别在于其
第一行是由function开头的,且有函数名 和输入形式参数与输出形式参数,若是没 有这一行的磁盘文件就是文本文件 。
信息工程学院
College of information engineering
再 见!
34
解 可由下列的while循环程序来执行。
%ex4_5.m
ikey=0;
while(ikey==0)
s1=input('若给x赋值请输入[y/n]? ','s');
if(s1=='y'|s1=='Y')
ikey=1; x=1
else if (s1=='n'|s1=='N') ikey=1; x=0, end
%ex4_1_1.m x1=-2;x2=3;x3=1; y1=3*x1+x2+x3 y2=3*x1-x2-x3
6
7
② 当以上文本文件ex4_1_1.m建立后,在 MATLAB 命令窗口中输入 >>ex4_1_1 回车后结果显示: y1=
-2 y2=
-10
8
由于文本文件中的变量为全局变量,故以 上变量x1,x2,x3的值,也可在文本文件外先给 定,此时的文本文件为
%ex4_2.m function [b1,b2]=ex4_2(a1,a2,a3) b1=3*a1+a2+a3; b2=3*a1-a2-a3;
14
② 当以上函数文件ex4_2.m建立后,在 MATLAB命令窗口中输入以下命令
>>x1=-2;x2=3;x3=1;[y1,y2]=ex4_2(x1,x2,x3) 结果显示: y1= -2 y2= -10
2
4.1 MATLAB的M文件
因为MATLAB本身可以被认为是一高效 的语言,所以用它可编写出具有特殊意 义的磁盘文件来,这些磁盘文件是由一 系列的MATLAB语句组成,它既可能是一 系列窗口命令语句,又可以是由各种控 制语句和说明语句构成的函数文件。
由于它们都是由ASCII码构成的, 其 扩展名均为“.m”,故统称为m文件。
else if expression2
statements2
else if expression3
statements3
┇
end
29
例4-5 如果想对一个变量x自动赋值。当从键盘输
入y或Y时(表示是), x自动赋为1值;当从键盘输入n 或N时(表示否), x自动赋为0值;输入其他字符时终 止程序。
if expression
statements
end
当给出的条件式expression成立时,则执行 该条件块结构中的语句内容statements,执
行完之后继续向下执行,若条件不成立, 则跳出条件块而直接向下执行。
25
m
例4-4 求满足 i 1000 的最小m值. i 1
解 MABLAB程序
许多级嵌套的,而且它们之间也允许相互嵌 套,这和C语言等高级程序设计语言是一致的。
22
4.2.2 程序流控制语句
在程序设计语言中,经常会遇到提前终 止循环、跳出子程序、显示执行过程等, 此时就要用到以下控制程序流命令。
1. echo命令 2. break命令 3. continue命令 4. pause命令 5. return命令
5
例4-1 利用MATLAB的文本文件,求方程
y1 y2
3x1 3x1
x2 x2
x3 x3
在x1= -2, x2=3, x3=1时的值。
解 ① 首先在MATLAB的操作界面中,利用菜单命令 FileNewM-File,打开M文件编辑器,然后在编 辑器中根据例中所给方程编写以下文本文件,并以 ex4_1_1为文件名进行保存
和其它高级语言一样,MATLAB也提 供了条件转移语句、循环语句等一些常 用的控制语句,从而使得MATLAB语言 的编程显得十分灵活。
18
4.2.1 循环语句
MATLAB中可以使用两种循环语句: for语句和while语句。
1. for语句的基本格式为
for 循环变量=表达式1: 表达式3: 表达式2
其中 i,j,k,…是相应的实际输入参数, 而y1,y2,y3,…是相应的实际输出参数值。
13
例4-2 利用MATLAB的函数文件,求以下方程
y1 3x1 x2 x3
y2
3x1
x2
x3
在x1= -2, x2= 3, x3= 1时的值
解 ① 由于函数文件的建立与文本文件完全一样,故 应首先根据例中所给方程在MATLAB的M文件编辑器 下,建立以下函数文件ex4_2.m
MATLAB实际上可以认为是一种解释性语 言,用户可以在MATLAB工作环境下一条一条 地键入命令,也可以直接键入用MATLAB的语 言编写的M文件名,或它们结合起来使用,这 样MATLAB软件对此命令或M文件中各条命令 进行翻译,然后在MATLAB环境下对它进行处 理,最后返回运算结果。所以说MATLAB语言 的一般结构为:窗口命令+M文件。
23
4.2.3 条件转移语句 在程序设计中,经常要根据一定的条
件来执行不同的命令。当某些条件满足时, 只执行其中的某个命令或某些命令。在 MATLAB中,条件转移语句包括:
if-else-end语句
switch-case-otherwise语句。
24
1. if-else-end语句的基本格式
在MATLAB中,最简单的条件结构:ifend语句命令格式为
%ex4_4.m mysum=0; for m=1:1000
mysum=mysum+m; if (mysum>1000) break; end end m
运行结果
m= 45
26
注意, 这里使用了break命令,其作用就是中 止上一级的for 语句循环过程,同样while循环 语句也在条件转移语句中起着相当重要的作 用,因为在MATLAB下没有提供绝对转移的 指令。
27
MATLAB还提供了其他两种条件结构: if-else-end 格式和if-else if-end 格式,这 两种格式的调用方法分别为
if expression
statements1
else
statements2
end
28
和
if expression1
statements1
函数文件的功能是建立一个函数,且这个 函数可以同MATLAB的库函数一样使用,它与 文本文件不同,在一般情况下不能单独键入 函数文件的文件名来运行一个函数文件,它 必须由其它语句来调用。
11
函数文件允许有多个输入参数和多个输出 参数值,其基本格式如下
function [f1,f2,f3,…]=fun(x, y, z,…)
4
4.1.1 文本文件 文本文件(也称为脚本文件,简称为
MATLAB的程序)是一系列的MATLAB语句 组成,它类似于DOS下的批处理文件,在 MATLAB的提示符下直接键入文本文件名, 便可自动执行文件中的一系列命令,直至 给出最终结果。 文本文件在工作空间中运算的变量为 全局变量。
break
end
end
30
2. switch-case-otherwise语句的基本格式
MATLAB中switch-case-otherwise语句的调用 格式为
switch switch-expression
case case-expression1
atements1;
case case-expression2
第4章 MATLAB程序设计
本章内容
MATLAB的M文件的建立与使用 ; MATLAB的文本文件与函数文件的区别与特点 MATLAB的循环语句 ; MATLAB的控制语句 ; MATLAB的转移语句 。
1
MATLAB语言仅靠一条一条地输入语句, 难以实现复杂功能,为了实现诸如循环、条件、 分支等功能,MATLAB利用了M文件,M文件 是由一系列的MATLAB语句组成。
16
由于m文件具有普通的文本格式,因 而可以用任何编辑程序建立和编辑,但一 般最常用、而且最为方便地是使用 MATLAB命令窗口的File|New或File|Open 菜单项对m文件进行建立和编辑。
17
4.2 MATLAB的程序结构
MATLAB是一个功能极强的高度集 成化程序设计语言,它具备一般程序设 计语言的基本语句结构,并且它的功能 更强,由它编写出来的程序结构简单, 可读性强。
%ex4_1_2.m y1=3*x1+x2+x3 y2=3*x1-x2-x3
9
当以上文本文件ex4_1_2.m建立后,利用以 下命令,同样可以得到以上结果。
>>x1=-2; x2=3; x3=1; ex1_1_2
10
以上两种方式下,文本文件中变量的值都 被保存下来,这与下面的函数文件是不同的。
4.1.2 函数文件
循环体条件组
end
其执行方式为,若条件式中的条件成立, 则执行循环体的内容,执行后再判断表 达式是否仍然成立,如果表达式不成立, 则跳出循环,向下继续执行。