MatLab与控制系统仿真(重点编程)

合集下载

控制系统MATLAB仿真与应用课程设计

控制系统MATLAB仿真与应用课程设计

控制系统MATLAB仿真与应用课程设计

1. 选题背景

现代工业领域,控制系统是自动化生产过程中不可或缺的一部分。因此,控制系统课程在自动化工程专业中被广泛开设。其中,MATLAB作为自动化领域常用的仿真软件,能够快速、有效地建立和分析控制系统模型,被广泛应用于自动化工程课程中。在此基础上,控制系统MATLAB仿真与应用课程设计成为了自动化工程专业不可或缺的一部分。本文旨在探讨控制系统MATLAB仿真与应用课程设计的内容和方法。

2. 课程设计内容

2.1 课程设计的目标

控制系统MATLAB仿真与应用课程设计的目标是通过理论学习和实际实践,使学生熟悉控制系统的基本理论和仿真方法,掌握MATLAB仿真软件的基本操作和控制系统建模方法,同时在课程的实践环节中,能够完成基于MATLAB的控制系统仿真设计任务,提高学生的综合能力和实践能力。

2.2 课程设计的内容

课程设计主要包括以下内容:

2.2.1 控制系统理论基础

•控制系统基本概念和分类

•控制系统数学模型及其性质

•控制系统稳定性和响应特性分析

•PID控制器设计方法与参数调整技巧

2.2.2 MATLAB基础

•MATLAB软件环境介绍

•MATLAB基本语法和数据类型

•MATLAB常用函数和命令介绍

•MATLAB绘图和数据可视化

2.2.3 控制系统MATLAB仿真案例设计

•基于MATLAB的控制系统建模方法

•控制系统仿真设计实例讲解与分析

•控制系统故障诊断与调试方法介绍

•控制系统实验结果分析和讨论

2.3 课程设计的实践环节

课程设计中,学生要根据课程设计的要求,完成相应的仿真实验。实验包括但不限于以下内容:

《MATLAB与控制系统仿真》实验报告

《MATLAB与控制系统仿真》实验报告

《MATLAB与控制系统仿真》实验报告

一、实验目的

本实验旨在通过MATLAB软件进行控制系统的仿真,并通过仿真结果分析控制系统的性能。

二、实验器材

1.计算机

2.MATLAB软件

三、实验内容

1.搭建控制系统模型

在MATLAB软件中,通过使用控制系统工具箱,我们可以搭建不同类型的控制系统模型。本实验中我们选择了一个简单的比例控制系统模型。

2.设定输入信号

我们需要为控制系统提供输入信号进行仿真。在MATLAB中,我们可以使用信号工具箱来产生不同类型的信号。本实验中,我们选择了一个阶跃信号作为输入信号。

3.运行仿真

通过设置模型参数、输入信号以及仿真时间等相关参数后,我们可以运行仿真。MATLAB会根据系统模型和输入信号产生输出信号,并显示在仿真界面上。

4.分析控制系统性能

根据仿真结果,我们可以对控制系统的性能进行分析。常见的性能指

标包括系统的稳态误差、超调量、响应时间等。

四、实验步骤

1. 打开MATLAB软件,并在命令窗口中输入“controlSystemDesigner”命令,打开控制系统工具箱。

2.在控制系统工具箱中选择比例控制器模型,并设置相应的增益参数。

3.在信号工具箱中选择阶跃信号,并设置相应的幅值和起始时间。

4.在仿真界面中设置仿真时间,并点击运行按钮,开始仿真。

5.根据仿真结果,分析控制系统的性能指标,并记录下相应的数值,

并根据数值进行分析和讨论。

五、实验结果与分析

根据运行仿真获得的结果,我们可以得到控制系统的输出信号曲线。

通过观察输出信号的稳态值、超调量、响应时间等性能指标,我们可以对

控制系统计算机仿真(MATLAB) 全文-职业教育-文档在线

控制系统计算机仿真(MATLAB) 全文-职业教育-文档在线
7 、功能齐备的自动控制软件工具包。
界面友好、用户使用方便
A、MATLAB具有良好的用户界面与易学易用的 帮助系统(help)。
B、MATLAB程序设计语言把编辑、编译、连接、 执行、调试等多个步骤融为一体。
C、MATLAB语言可设置中断点 ,存储多个中间 结果 , 除此以外 ,它还可以进行跟踪调试。
功能齐备的自动控制软件工具包
Control Systems Toolbox:控制系统工具箱 Neural Network Blockset: 神经网络模块库 Fuzzy Logic Toolbox:模糊逻辑工具箱 Power System Blockset: 电力系统模块库
上机实验要求
1、上机做实验时间4 :00~5 :50 ,每次根据 本人所做实验结果给出一次平常成绩, 但超过时间无成绩;
2 、上课及上机做完实验之前不允进行与本 课无关的内容 ,否则取消上课机会;
3 、无故3次不上课取消考试资格。
第一章 控制系统及仿真概述
一 、控制系统计算机仿真的基本概念
1、系统计算机仿真 2、控制系统计算机仿真的过程
二 、控制系统MATLAB计算及仿真
1、 MATLAB简介(Matrix Laboratory) 2、MATLAB主要特点
系统计算机仿真
控制系统的仿真 ,就是以控制系统 的模型为基础 ,主要以数学模型代替实 际控制系统 , 以计算机为工具 ,对控制 系统进行实验和研究的一种方法。

MATLAB控制系统各种仿真例题(包括simulink解法)

MATLAB控制系统各种仿真例题(包括simulink解法)

一、 控制系统的模型与转换

1. 请将下面的传递函数模型输入到matlab 环境。

]52)1)[(2(24)(322

33++++++=s s s s s s s G )

99.02.0)(1(568

.0)(22+--+=z z z z z H ,T=0.1s >> s=tf('s');

G=(s^3+4*s+2)/(s^3*(s^2+2)*((s^2+1)^3+2*s+5)); G

Transfer function:

s^3 + 4 s + 2 ------------------------------------------------------ s^11 + 5 s^9 + 9 s^7 + 2 s^6 + 12 s^5 + 4 s^4 + 12 s^3

>> num=[1 0 0.56];

den=conv([1 -1],[1 -0.2 0.99]); H=tf(num,den,'Ts',0.1)

Transfer function: z^2 + 0.56 ----------------------------- z^3 - 1.2 z^2 + 1.19 z - 0.99

2. 请将下面的零极点模型输入到matlab 环境。请求出上述模型的零极点,并绘制其位置。

)1)(6)(5()1)(1(8)(22

+++-+++=s s s s j s j s s G )

2.8()

6.2)(2.3()(1

511-++=----z z z z z H ,T=0.05s

>>z=[-1-j -1+j]; p=[0 0 -5 -6 -j j];

如何使用Matlab进行控制系统仿真

如何使用Matlab进行控制系统仿真

如何使用Matlab进行控制系统仿真概述

控制系统在工程领域中扮演着重要角色,它用于控制和管理各种工程过程和设备。而控制系统仿真则是设计、开发和测试控制系统的关键环节之一。Matlab作

为一种功能强大的工程计算软件,提供了丰富的工具和功能,可以帮助工程师进行控制系统仿真。本文将简要介绍如何使用Matlab进行控制系统仿真,以及一些实

用的技巧和建议。

1. Matlab的基础知识

在开始控制系统仿真之前,有一些Matlab的基础知识是必要的。首先,了解Matlab的基本语法和命令,熟悉Matlab的工作环境和编辑器。其次,学会使用Matlab的集成开发环境(IDE)进行编程和数学建模。熟悉Matlab的常用函数和工具箱,并了解如何在Matlab中导入和导出数据。

2. 定义系统模型

在进行控制系统仿真之前,需要定义系统的数学模型。根据具体情况选择合适

的建模方法,如传递函数、状态空间或差分方程等。在Matlab中,可以使用tf、ss 或zpk等函数来创建系统模型,并指定系统的参数和输入信号。此外,Matlab还提供了Simulink这一强大的图形化建模环境,方便用户以图形化界面设计系统模型。

3. 设计控制器

控制系统仿真的关键是设计合适的控制器,以实现所需的控制目标。Matlab提

供了各种控制器设计方法和工具,如PID控制器、根轨迹法、频域方法等。用户

可以使用Matlab的Control System Toolbox来设计和分析控制器,并在仿真中进行

验证。此外,Matlab还支持自适应控制和模糊控制等高级控制方法,可根据具体

如何在MATLAB中进行控制系统的建模与仿真

如何在MATLAB中进行控制系统的建模与仿真

如何在MATLAB中进行控制系统的建模与仿真

在现代工程领域中,控制系统的建模与仿真是必不可少的一项技术。MATLAB 作为一种强大的科学计算软件,并提供了丰富的工具箱,可以帮助工程师们快速而准确地进行控制系统的建模和仿真。本文将介绍如何在MATLAB中进行控制系统

的建模与仿真的一般步骤和注意事项。

一、引言

控制系统是一种以实现某种特定目标为目的对系统进行调节和控制的技术,在

现代工程中得到了广泛的应用。控制系统的建模与仿真是控制系统设计的重要环节,通过建立系统的数学模型,可以对系统的性能进行有效地评估和分析,从而为系统的设计和优化提供指导。

二、MATLAB中的控制系统建模工具箱

MATLAB提供了专门的控制系统工具箱,包括线性和非线性系统建模、控制

器设计与分析等功能。其中,Simulink是MATLAB中最重要的控制系统建模工具

之一,它可以方便地用来搭建控制系统的框架,并进行仿真与分析。

三、建立控制系统数学模型

在进行控制系统的建模之前,需要先确定系统的类型和工作原理。常见的控制

系统包括开环控制系统和闭环控制系统。开环控制系统中,控制器的输出不受被控对象的反馈作用影响;闭环控制系统中,控制器的输出受到被控对象的反馈作用影响。

在MATLAB中,可以通过使用Transfer Function对象或State Space对象来表

示控制系统的数学模型。Transfer Function对象用于线性时不变系统的建模,可以

通过给定系统的分子多项式和分母多项式来定义一个传递函数;State Space对象则

MATLAB与控制系统仿真

MATLAB与控制系统仿真
5.丰富的MATLAB工具箱
MATLAB提供丰富的工具箱,是将许多基本功能组合为函数包或可操作的图形界面,极 大的减轻了用户编程的负担。本教材相关的工具箱有:MATLAB通用工具箱、Simulink仿真 工具箱、控制系统工具箱、符号数学工具箱、信号处理工具箱、图象处理工具箱等。
6.MATLAB的兼容功能
具备与C/C++语言、VB、JAVA等语言的编程接口实现混合编程; 应用程序集成,包括发布COM组件及实现DDE动态数据交换等功能。
7.部分常用运算函数示例
初等运算 sqrt( ), exp( ), log( ),log10( ); 三角函数 sin( ),cos( ),tan( ),asin( ),acos( ),atan(); 数据统计函数 max( ),min( ),mean( ),sum( ),sort( )。
在MATLAB工作内存中,驻留了几个由系统本身在启动时定义的变量,我们称为永久变量。
永久变量 eps pi inf或Inf NaN i, j 默认使用i,j为虚数单位标志 注释 系统定义的最小正整数, eps≈2.22e-016 定在计算中某结果小于 eps时系统默认其值为0,也可以视为MATLAB的精度值 圆周率,近似值3.1415926 表示正无穷大
MATLAB与控制系统仿真
1.3 MATLAB基本操作
1.MATLAB R2014a的启动

控制系统的MATLAB计算及仿真

控制系统的MATLAB计算及仿真

控制系统的MATLAB计算及仿真

控制系统是一种用来实现对物理系统或工程系统进行控制的方法和工具。MATLAB是一种强大的计算机软件包,能够方便地进行控制系统的计算和仿真。本文将介绍MATLAB在控制系统中的应用,并以一个简单的例子来说明如何用MATLAB进行控制系统的计算和仿真。

首先,我们需要打开MATLAB软件并创建一个新的脚本文件。在脚本文件中,我们可以使用MATLAB提供的函数来定义控制系统的传递函数和状态空间模型。

例如,我们可以使用tf函数来定义一个传递函数模型。传递函数是描述系统输入与输出之间关系的一种数学模型。以下是一个例子:```MATLAB

s = tf('s');

G=1/(s^2+2*s+1);

```

这个传递函数模型表示一个具有二阶惯性的系统。我们可以使用step函数来绘制系统的阶跃响应曲线:

```MATLAB

step(G);

```

通过运行脚本文件,我们可以得到系统的阶跃响应曲线。此外,MATLAB还提供了许多其他的函数和命令来计算和仿真控制系统。

另外,我们还可以使用stateSpace函数来定义一个状态空间模型。

状态空间模型是控制系统中另一种常用的数学模型。以下是一个例子:```MATLAB

A=[01;-1-1];

B=[0;1];

C=[10];

D=0;

sys = ss(A, B, C, D);

```

这个状态空间模型描述了一个二阶系统的状态方程和输出方程。我们

可以使用step函数来绘制系统的阶跃响应曲线:

```MATLAB

step(sys);

```

通过运行脚本文件,我们可以得到系统的阶跃响应曲线。除了step

Matlab控制模型及仿真技术

Matlab控制模型及仿真技术
控制器设计
基于控制理论,如PID控制、模糊控制、神经网络 控制等,进行控制器设计。
系统验证
通过Matlab的仿真功能,验证所设计的控制系统 的性能。
系统性能分析
01
02
03
稳定性分析
通过Matlab的控制系统工 具箱,分析系统的稳定性。
动态性能分析
分析系统的超调量、调节 时间等动态性能指标。
稳态性能分析
02
控制模型的建立
传递函数模型
总结词
传递函数模型是控制系统中最常用的数学模型之一,它描述了系统输入与输出 之间的关系。
详细描述
传递函数模型基于系统的输入和输出信号,通过拉普拉斯变换或Z变换等方法, 将时域中的系统响应转换为频域中的传递函数。传递函数模型具有明确的物理 意义,能够直观地反映系统的动态特性。
案例二:非线性控制系统仿真
2. 建立非线性系统的数学 模型。
1. 确定系统的非线性特性。
设计步骤
01
03 02
案例二:非线性控制系统仿真
01
3. 使用Matlab的控制系统工具箱进行系统分析和设
计。
02 4. 进行仿真实验,验证系统的性能。
03
案例应用:例如设计一个飞行器控制系统,通过控制
飞行器的姿态和高度等参数,实现稳定的飞行。
控制系统分类
根据不同的分类标准,如控制方式、控制结构、控制 参数等,可以将控制系统分为多种类型。

matlab控制系统仿真课件

matlab控制系统仿真课件
● produce special output only —— 只产生特殊输 出。它的意思是让simulink只在指定的时间点上产 生输出。为此解法器要调整仿真步长以使之和指 定的时间点重合。这个选项在比较不同的仿真时 可以确保它们在相同的时间输出。
仿真参数的设定 (Simulation Parameters)
剪切:选择Edit菜单中的Cut命令, 可以将被选 定模块移到Windows的剪切板上。可供Paste命令重 新粘贴。
拷贝:选择Edit菜单中的Copy命令, 然后将光 标移到要粘贴的地方, 再运行Edit菜单中的Paste命 令,就会在选定的位置上复制出相应的模块。
Simulink本身带有一种更简单的复制操作:
(4)将各个拷贝到的模块按上图所示的方式连接 起来、构成一个闭环PID控制器。
示例二:
程序名:mex3_5_f1.mdl
示例三:
程序名:mex3_5_f2.mdl
6.3 功能模块的处理
1.移动
将光标置于待移动的模块图标上,然后按住鼠标 左键将模块拖到合适的地方即可。模块移动时,它与 其它模块的连线也随之移动。
2.选定
选定一个环节, 单击待选模块, 模块四个角便 出现小黑块, 表示模块被选定。
如果要选择一组模块, 首先按住鼠标左键拉出 一个矩形虚线框, 将所有待选模块包在其中, 然后 松开, 则矩形框里的所有模块同时被选中。

控制系统的MATLAB仿真课件(99页)

控制系统的MATLAB仿真课件(99页)

?
?1 0 0 0 ?
?0?
? ??X?(t)?
? ? ?
0 0
1 0
0 1
0 0
?
?X ?
(t)?
??0??U ?0?
(t)
? ?
?? 1 ? 5 0 ? 2??
??1??
? Y (t)? [3 2 1 0]X (t)
试采用MATLAB 语言求出该系统的状态空间模型。
11
第7章
控制系统的MATLAB仿真
4
第7章
控制系统的MATLAB仿真
7.1.2 零极点增益模型 当连续系统的传递函数表达式采用系统增益、系
统零点与系统极点来表示时,称之为系统零极点增益模 型。系统零极点增益模型是传递函数模型的一种特殊形 式。
离散系统的传递函数零极点增益模型:
G
(z)?
k
(z?
z 1
)(z
?
z )? 2
(z? z ) m
25
第7章
控制系统的MATLAB仿真
(2)在MATLAB 命令窗口输入程序名,程序运行后得 到如下电流环内前向通道的等效传递函数及等效状态 空间模型: Transfer function:
0.96 s + 75
在MATLAB 中,可用函数命令zpk()来建立控制系统 的零极点增益模型,其调用格式和功能分别为:

MATLAB控制系统设计与仿真

MATLAB控制系统设计与仿真

目录分析
1.2 MATLAB的基本 操作
1.1 MATLAB概述
1.3 MATLAB窗口的 基本操作
2.1 MATLAB 的数组与矩 阵运算
2.2多项式及 其运算
3.2基本运算
3.1算术符号操作
3.3复变函数计算 的MATLAB实现
4.1文件与程序结构 4.2参数与变量
4.3数据类型 4.4程序结构
9.3控制系统的波特 图设计
9.4 PID控制器设计
10.2状态反馈与极 点配置
10.1现代控制系统 设计概述
10.3状态观测器
10.4线性二 次型最优控
制器设计
10.5鲁棒控 制系统设计
作者介绍
这是《MATLAB控制系统设计与仿真》的读书笔记模板,暂无该书作者的介绍。
读书笔记
这是《MATLAB控制系统设计与仿真》的读书笔记模板,可以替换为自己的心得。
精彩摘录
这是《MATLAB控制系统设计与仿真》的读书笔记模板,可以替换为自己的精彩内容摘录。
Fra Baidu bibliotek
谢谢观看
4.6 MATLAB函数
4.5程序流控制语 句
4.7 MATLAB程序调 试
5.2经典控制理论 基础
5.1自动控制系统 概述
5.3现代控制理论 基础
6.2 Simulink基本 建模方法

matlab控制系统仿真与应用 第四章

matlab控制系统仿真与应用 第四章

2. ss2zp
功能:变系统状态空间形式为零极点增益形式。 格式: [z,p,k]=ss2zp(A,B,C,D,iu)
说明: 系统状态空间表示和零极点增益表示可分别参考sos2ss和sos2zp函 数。[z,p,k] =ss2zp(A,B,C,D,iu)可将状态空间表示转换成零极点增 益表示,iu用于指定变换所用的输入量。
plot(vc,i); title("current versus capacitor voltage")
xlabel("capacitor voltage")
ylabel("current")
%微分方程函数 function xdot=elecsys(t,x) Vs=1; R=1.4; L=2; C=0.32;
clear
clc
close
t0=0;
tfinal=15;
x0=[0.5;0]; %初始化,电感电流为0,电容电压为0.5v %tol=0.001; %数值计算精度
[t,x]=ode45("elecsys",t0,tfinal,x0);
%elecsys是系统微分方程的描述函数
figure(1)
subplot(211) plot(t,x(:,1))
第四章 控制系统的数学描述与建模
❏ 控制系统的数学模型在控制系统的研究中有着相当重要的地位, 要对系统进行仿真处理,首先应当知道系统的数学模型,然后 才可以对系统进行模拟。同样,如果知道了系统的模型,才可 以在此基础上设计一个合适的控制器,使得系统响应达到预期 的效果,从而符合工程实际的需要。

MATLABSimulink与控制系统仿真实验报告

MATLABSimulink与控制系统仿真实验报告

MATLAB/Simulink 与控制系统仿真实验

报告

姓名:喻彬彬

学号:K031541725

实验1、MATLAB/Simulink 仿真基础及控制系统模型的建立

一、实验目的

1、掌握MATLAB/Simulink 仿真的基本知识;

2、熟练应用MATLAB 软件建立控制系统模型。

二、实验设备

电脑一台;MATLAB 仿真软件一个

三、实验内容

1、熟悉MATLAB/Smulink 仿真软件。

2、一个单位负反馈二阶系统,其开环传递函数为2

10()3G s s s =+。用Simulink 建立该控制系统模型,用示波器观察模型的阶跃响应曲线,并将阶跃响应曲线导入到MATLAB 的工作空间中,在命令窗口绘制该模型的阶跃响应曲线。

3、某控制系统的传递函数为()()()1()Y s G s X s G s =+,其中250()23s G s s s

+=+。用Simulink 建立该控制系统模型,用示波器观察模型的阶跃响应曲线,并将阶跃响应曲线导入到MATLAB 的工作空间中,在命令窗口绘制该模型的阶跃响应曲线。

4、一闭环系统结构如图所示,其中系统前向通道的传递函数为

320.520()0.11220s G s s s s s

+=+++g ,而且前向通道有一个[-0.2,0.5]的限幅环节,图中用N 表示,反馈通道的增益为1.5,系统为负反馈,阶跃输入经1.5倍的增益作用到系统。用Simulink 建立该控制系统模型,用示波器观察模型的阶跃响应曲线,并将阶跃响应曲线导入到MATLAB 的工作空间中,在命令窗口绘制该模型的阶跃响应曲线。

MATLAB与过程控制系统仿真

MATLAB与过程控制系统仿真

MATLAB与过程控制系统仿真

MATLAB是一种非常强大的科学计算软件,它不仅可以用于数学计算

和数据分析,还可以用于过程控制系统的仿真。过程控制系统是指控制工

业过程中的物理或化学变化的系统,如化工、电力、制造等领域的控制系统。在这些系统中,MATLAB可以用于建立模型、仿真系统的动态响应,

并进行控制器设计和性能评估。

首先,MATLAB可以用于建立过程控制系统的模型。模型是对真实系

统行为的数学描述,可以用于预测系统的响应和优化控制器设计。MATLAB

提供了丰富的工具,如符号计算、系统建模工具箱和Simulink,可以帮

助用户方便地建立和修改模型。通过建立准确的过程模型,可以更好地理

解系统行为,优化控制器,提高系统的稳定性和性能。

其次,MATLAB可以用于系统仿真。在系统建模之后,可以使用MATLAB对系统进行仿真,以获得系统在不同条件下的动态响应。MATLAB

提供了一系列的仿真工具和函数,如ode45、lsim等,可以用于求解微分

方程和差分方程,模拟系统的时间响应。仿真可以帮助研究人员观察系统

的动态特性,如过渡过程、稳态误差等,并优化控制器的设计。

另外,MATLAB还可以用于控制器的设计和性能评估。MATLAB提供了

多种控制器设计方法和工具,如PID控制器、频域设计工具箱和最优控制

工具箱等。可以根据系统的需求,使用这些工具进行控制器的设计和调整,并评估控制器的性能。MATLAB还可以进行系统的稳定性分析和频域性能

分析,以帮助用户理解和优化控制器。

最后,MATLAB还可以用于实时仿真和硬件连接。Simulink是MATLAB

Matlab与控制系统仿真部分习题答案

Matlab与控制系统仿真部分习题答案

【4.2】程序:

num=[5,0];den=conv([1,1],conv([1,2],[1,3])); [numc,denc]=cloop(num,den);

[z,p,k]=tf2zp(numc,denc);

[A,B,C,D]=tf2ss(numc,denc);

g_zp=zpk(z,p,k)

g_tf=tf(numc,denc)

g_ss=ss(A,B,C,D)

运行结果:

Zero/pole/gain:

5 s

----------------------------------

(s+0.4432) (s^2 + 5.557s + 13.54)

Transfer function:

5 s

----------------------

s^3 + 6 s^2 + 16 s + 6

a =

x1 x2 x3

x1 -6 -16 -6

x2 1 0 0

x3 0 1 0

b =

u1

x1 1

x2 0

x3 0

c =

x1 x2 x3

y1 0 5 0

d =

u1

y1 0

【4.3】程序:

A=[0 0 0 -1;1 0 0 -2;0 1 0 -3;0 0 1 -4]; B=[0;0;0;1];

C=[1 0 0 0];

g_ss=ss(A,B,C,D)

[num,den]=ss2tf(A,B,C,D);

g_tf=tf(num,den)

[z,p,k]=ss2zp(A,B,C,D);

g_zpk=zpk(z,p,k)

运行结果:

a =

x1 x2 x3 x4

x1 0 0 0 -1

x2 1 0 0 -2

x3 0 1 0 -3

x4 0 0 1 -4

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第 4 章 MatLab 的程序设计

MatLab 是一个工具、开发平台,同时它也是一门编程语言。与在命令窗口用交互的方式工作相比,通过程序运行来解决实际问题,其效率更高,因此,凡是复杂的、大型的应用都是以程序的方式执行。相对其它高级语言, MatLab 更简单、编程的效率更高、调试过程也更容易。

MatLab 中的程序文件是以 m 为后缀,所以通常将 MatLab 的程序文件称为 m 文件。MatLab提供了两种形式的m文件,即:脚本(Script)式m文件(就简称m文件)、函数型 m 文件。在 MatLab 中已经嵌入了一个功能强大的集成开发环境—— m 文件编辑器,用它来进行程序的编辑、修改、调试、运行等,完成应用开发工作。

4.1 MatLab 程序设计基础

通过前面内容的学习,大家对 MatLab 已经有了一个初步的认识和印象,到目前为止,我们都是在“命令”窗口中,以交互的方式运行,完成我们的工作。实际上简单的m 文件,就是一个批处理程序,它是若干条命令的集合。

例:

4.1.1 M 文件规则和属性

函数 M 文件必须遵循一些特定的规则。除此之外,它们有许多的重要属性,这其中包括:

1. 函数名和文件名必须相同。例如,函数 fliplr 存储在名为 fliplr.m 文件中。

2. MATLAB 头一次执行一函数个 M 文件时,它打开相应的文本文件并将命令编辑成存储器的内部表示,以加速执行以后所有的调用。如果函数包含了对其它函

数 M 文件的引用,它们也同样被编译到存储器。普通的脚本 M 文件不被编译,即使它们是从函数 M 文件内调用;打开脚本 M 文件,调用一次就逐行进行注释。

3. 在函数 M 文件中,到第一个非注释行为止的注释行是帮助文本。当需要帮助时,返回该文本。例如, ? help fliplr 返回上述前八行注释。

4. 第一行帮助行,名为 H1 行,是由 lookfor 命令搜索的行。

5. 函数可以有零个或更多个输入参量。函数可以有零个或更多个输出参量。

6. 函数可以按少于函数 M 文件中所规定的输入和输出变量进行调用,但不能

用多于函数M文件中所规定的输入和输出变量数目。如果输入和输出变量数目多于

函数M文件中function语句一开始所规定的数目,则调用时自动返回一个错误。

相对于函数m文件,脚本式m文件就简单多了,它没有严格的格式要求,只要将有关的命令或函数一一敲入即可,但是还是有几个问题需要注意:

1. m文件的名称不得与MatLab的内部函数同名、第一个字符不得为数字(这点与变量的命名规则相同);

2. 最好在文件的头部加上注释,对该m文件的作用、功能作一个简要说明,而在一些重要命令行后也加上注释行,以方便使用者阅读、查找;

3. 要特别注意m文件的保存路径或位置,如果不是保存在MatLab默认的路径下,可以使用addpath函数来设置、添加路径,否则,m文件不能运行。

脚本式m文件与函数m文件还有一个重要区别:脚本式m文件中的变量均为全局变量,而函数m文件中的变量则是局部变量。这可以从这两种程序文件运行后在Workspace 中留下痕迹看出。当然,在函数m文件中也可以专门将某些变量定义为全局变量(关键字是:global)。不过,在使用全局变量(函数 m文件中)时应特别注意:

①.全局变量需要函数体的变量赋值语句之前定义或说明;

②.全局变量名最好是大写,而且要尽量长,能反映它本身的含义;

③•实际编程时,全局变量也要尽可能少用,因为一旦它在一个地方被改变,那么其它包括该变量的函数中都得改变,有时可能会出现意想不到情况。

4.1.2 M文件的组成

函数M文件实例:

function f=fact (n)%函数定义行

%Compute a factorial value %H1 行

%FACT ( N)return the factorial of N,

%usually denoted by N

%Put simply,FACT ( N)is PROD ( 1:N)%帮助文本%注释

相关文档
最新文档