物理电气信息学院自控系
宋 娟
2012年8月
Matlab语言基本知识(一)
1. 掌握MATLAB常用命令 clc clear help save load format lookfor who whos what which 清除命令窗口中内容 清除工作空间中变量 对所选函数的功能、调用格式及相关函数给出说明 将工作空间中变量存储到MAT文件中 从MAT文件中读取变量到工作空间中 显示命令窗口数据格式 查找具有某种功能的函数但却不知道该函数的准确名称 查询工作空间中的变量信息 查询工作空间中变量,同时包括变量详细信息 列出指定目录下的M文件、MAT文件、MEX文件和Class 显示指定的外部函数(M文件)所在的目录
>> who %列出工作空间中变量 Your variables are: a ans b c
>> whos %列出工作空间中变量,同时包括变量详细信息 Name Size Bytes Class
a 1x1 8 double array ans 1x1 8 double array b 1x1 8 double array c 1x3 24 double array Grand total is 6 elements using 48 bytes
>>save test %将工作空间中变量存储到test.mat文件中
>>load test %从test.mat文件中读取变量到工作空间中
>>clc %清除命令窗口中内容
>>clear %清除工作空间中变量
>>format %命令窗口数据显示格式命令
>>help %函数名(回车) %对所选函数的功能、调用格式及相关函数给出说明
>>which %显示指定的外部函数(M文件)所在的目录
如:which abc
则系统会显示文件abc所在的目录
>>what %列出指定目录下的M文件、MAT文件、MEX文件和Class
>>lookfor %查找具有某种功能的函数但却不知道该函数的准确名称
如: lookfor Lyapunov 可列出与Lyapunov有关的所有函数。
2. MATLAB变量与运算符
变量命名规则如下:
(1)变量名可以由英语字母、数字和下划线组成 (2)变量名应以英文字母开头 (3)长度不大于31个 (4)区分大小写
MATLAB中设置了一些特殊的变量与常量,列于下表。
表1 MATLAB的特殊变量与常量 功能说明 变量名 默认变量名,以应答最近一次操作运算结果 虚数单位 圆周率 浮点数的相对误差 最大的正实数 变量名 ANS i或j pi eps realmax 功能说明 最小的正实数 无穷大 不定值(0/0) 函数实际输入参数个数 函数实际输出参数个数 realmin INF(inf) NAN(nan) nargin nargout MATLAB运算符,通过下面几个表来说明MATLAB的各种常用运算符
表2 MATLAB算术运算符 操作符 功能说明 操作符 加 + \\ 减 - .\\ 矩阵乘 * / 数组乘 .* ./ 矩阵乘方 ^ ' 数组乘方 .^ .' 表3 MATLAB关系运算符 操作符 == ~= > < >= <= 功能说明 矩阵左除 数组左除 矩阵右除 数组右除 矩阵转置 数组转置 功能说明 等于 不等于 大于 小于 大于等于 小于等于 表4 MATLAB逻辑运算符 逻辑运算符 逻辑运算 & and | or ~ not xor 表5 MATLAB特殊运算 功能说明示例 符号 1:1:4;1:2:11 . 分隔行 .. 分隔列 … % 构成向量、矩阵 ! 构成单元数组 = 说明 逻辑与 逻辑或 逻辑非 逻辑异或 符号 : ; , () [] {} 功能说明示例 注释 调用操作系统命令 用于赋值 3. MATLAB的一维、二维数组的访问
表6 子数组访问与赋值常用的相关指令格式 指令功能 数组A中r指定行、c指定列之元素组成的子数组 数组A中r指定行对应的所有列之元素组成的子数组 数组A中c指定列对应的所有行之元素组成的子数组 数组A中各列元素首尾相连组成的“一维长列”子数组 \"一维长列\"子数组中的第i个元素 数组A中r指定行、c指定列之元素组成的子数组的赋值 数组全元素赋值,保持A的行宽、列长不变,A、D两组元素总合应相同 指令格式 A(r,c) A(r,:) A(:,c) A(:) A(i) A(r,c)=Sa A(:)=D(:) 4. MATLAB的基本运算
表7 两种运算指令形式和实质内涵的异同表 数组运算 矩阵运算 指令 含义 指令 含义 非共轭转置 共轭转置 A.' A’ 把标量s赋给A的每个元素 A=s 标量s分别与B元素之和 s+B s-B,B-s 标量s分别与B元素之差 标量s分别与A元素之积 标量s分别与A每个元素之积 s.*A s*A B阵的逆乘s s./B,B.\\s 标量s分别被B的元素除 s*inv(B) A的每个元素自乘n次 A阵为方阵,自乘n次 A.^n A^n 对A各元素分别求非整数幂 方阵A的非整数乘方 A.^p A^p A+B A-B A.*B A./B B.\\A exp(A) A+B 对应元素相减 A-B 对应元素相乘 A*B A的元素别B的对应元素除 A/B 与上相同 B\\A 以自然数e为底,分别以A的元素expm(A) 对应元素相加 为指数,求幂 矩阵相加 矩阵相减 内维相同矩阵相乘 A右除B A左除B A的矩阵指数函数 A的矩阵对数函数 A的矩阵平方根函数 log(A) 对A的各元素求对数 sqrt(A) 对A的各元素求平方根 5. MATLAB的常用函数
logm(A) sqrtm(A) 表8 标准数组生成函数 指令 含义 指令 diag 产生对角形数组(对高维不适用) randn 产生单位数组(对高维不适用) eye rand magic 产生魔方数组(对高维不适用) rands ones 产生全1数组 zeros size( ) 返回指定矩阵的行数和列数 length() 含义 产生正态分布随机数组 产生(0,1)均匀分布随机数组 产生(-1,1)均匀分布随机数组 产生全0数组 返回指定矩阵的最大长度 指令 diag flipud fliplr reshape rot90 det rank inv eig ' 6. 多项式运算
表9 数组操作函数 含义 提取对角线元素,或生成对角阵 以数组“水平中线”为对称轴,交换上下对称位置上的数组元素 以数组“垂直中线”为对称轴,交换左右对称位置上的数组元素 在总元素数不变的前提下,改变数组的“行数、列数” 矩阵逆时针旋转90度 方阵的行列式值 矩阵的秩 矩阵求逆 矩阵的特征值 矩阵转置 poly —— 产生特征多项式系数向量 roots —— 求多项式的根 p=poly2str(c,‘x’) —(将特征多项式系数向量c转换为以习惯方式显示是多项式) conv, convs ——多项式乘运算 deconv——多项式除运算 polyder(p) ——求p的微分
polyder(a, b) —— 求多项式a,b乘积的微分
[p,q]=polyder(p1,p2) ——求解多项式p1/p2微分的有理分式
poly(p,A) ——按数组运算规则求多项式p在自变量A的值 polym(p,A) ——按矩阵运算规则求多项式p在自变量A的值
7. MATLAB的其他常用函数的使用练习 (1) sin cos asin acos tan atan等 exp log log10 log2 pow sqrt等 abs angle real imag
fix floor ceil rem sign round
sum min max
(2) all any find isempty isinf
各函数的用法不清楚时,请使用help命令。
Matlab语言基本知识(二)
1. 程序设计基本知识 for循环结构
语法:for i=初值:增量:终值
语句1 …… 语句n end
说明:1)i=初值:终值,则增量为1。
2)初值、增量、终值可正可负,可以是整数,也可以是小数,只须符合数学逻辑。
while 循环结构 语法:while 逻辑表达式
循环体语句 end
说明:1)whiIe结构依据逻辑表达式的值判断是否执行循环体语勾。若表达式的值
为真,执行循环体语句一次、在反复执行时,每次都要进行判断。若表达式的值为假,则程序执行end之后的语句。
2)为了避免因逻辑上的失误,而陷入死循环,建议在循环体语句的适当位
置加break语句、以便程序能正常执行。(执行循环体的次数不确定;每一次执行循环体后,一定会改变while后面所跟关系式的值。) 3)while循环也可以嵌套、其结构如下: while逻辑表达式1
循环体语句1 while逻辑表达式2
循环体语句2 end
循环体语句3 end
if-else-end分支结构 if 表达式 1
语句1
else if 表达式 2(可选)
语句2
else(可选)
语句3
end end
说明:1)if结构是一个条件分支语句,若满足表达式的条件,则往下执行;若
不满足,则跳出if结构。
2)else if表达式2与else为可选项,这两条语句可依据具体情况取舍。 3)注意:每一个if都对应一个end,即有几个if,记就应有几个end。
switch-case结构 语法:switch表达式
case常量表达式1 语句组1 case常量表达式2 语句组2 ……
otherwise 语句组n end
说明:1)switch后面的表达式可以是任何类型,如数字、字符串等。
2)当表达式的值与case后面常量表达式的值相等时,就执行这个case后面的语句组如果所有的常量表达式的值都与这个表达式的值不相等时,则执行otherwise后的执行语句。
程序流程控制指令 break、return、pause 2. 函数文件的结构和编写方法
函数只能在函数体内对变量进行操作,也就是只能访问函数本身工作空间中的变量。
M函数文件的结构:
(1) 函数定义行(function) (2) H1行(函数帮助文本的第一行) (3) 函数帮助文本 (4) 函数体 (5) 注释
函数文件编写后,保存时,其文件名必须与函数名相同。 注意:函数名不要与MATLAB自身的函数命令相同。 3. 初步掌握程序的调式方法
1)直接调试法
利用echo命令:在程序的适当位置添加keyboard命令;设置或去掉断点等。 keyboard命令:在程序中加入keyboard命令,可暂停程序运行,将控制权交
给键盘,此时可显示程序中变量的值或对其进行修改,完成后键入return命令返回。
2)调试器的使用
Debug菜单说明:(有相应的快捷键) Step 单步运行
Step in 单步运行,遇到函数时进入函数,仍单步运行
Step out 如果是在函数中,跳出函数;如果不在函数中,
直接运行到下一个断点处
Save and Run 存储文件并开始运行,如文件是已存储过的,则
该菜单变为Run,当程序暂停在断点处时,该菜单项变为Continue
Go Until Cursor 直接运行到光标所在位置 Exit Debug Mode 退出调试方式
Matlab语言基本知识(三)
1.了解图形窗口与坐标系的概念
MATLAB图形窗口如下:
窗口的设置: >>axis([0,2,0,4])
>>axis square
2.二维图形的绘制
(1)plot函数的多种调用方法: plot(y) y为向量
plot(t,y) t为向量、y为矩阵 plot(t,y) t、y为矩阵
例:y=[0 0.6 2.3 5 8.3 11.7 15 17.7 19.4 20]; plot(y)
(2)多组变量绘图:plot(x1, y1, 选项1, x2, y2, 选项2, ……) 上面的plot格式中,选项是指为了区分多条画出曲线的颜色、线型及标记点而设定的曲线的属性。MATLAB在多组变量绘图时,可将曲线以不同的颜色、不同的线型及标记点表示出来。这些选项如下表所示:
各种颜色属性选项 选 项 意 义 选 项 意 义 红色 粉红 ‘r’ ‘m’ 绿色 青色 ‘g’ ‘c’ 兰色 白色 ‘b’ ‘w’ 黄色 黑色 ‘y’ ‘k’ 各种线型属性选项 选 项 ‘-’ ‘:’ 意 义 实线 点线 选 项 ‘--’ ‘-.’ 意 义 虚线 点划线 选 项 意 义 用上三角绘制各数据点 ‘.’ 用下三角绘制各数据点 ‘+’ 用右三角绘制各数据点 ‘*’ 用左三角绘制各数据点 ‘ 。’ 用五角星绘制各数据点 ‘s’或squar 用六角星绘制各数据点 ‘d’或diamond 注意掌握各选项的作用与用法以及hold on与hold off的用法。 (3)对数坐标图形绘制
semilogx() semilogy() loglog() (4)极坐标图形绘制
polar(theta, rho,‘属性选项’)
(5)子图绘制:掌握subplot( ) 的用法
subplot(n,m,k)或subplot(nmk)
其中:n,m分别表示将窗口分割的行数和列数 3.图形修饰与标注
(1)坐标轴的标题:title函数
(2)坐标轴的说明:xlabel和ylabel函数 (3)图形说明文字:text和gtext函数 (4)给图形加网格:grid函数
(5)在图形中添加图例框:legend函数 (6)用鼠标点选屏幕上的点:ginput函数 4.图形的修改
(1) 采用设句柄修改; set函数;get函数;
gcf:获得当前图形窗口的句柄; gca:获得当前坐标轴对象的句柄; gco:获得当前对象的句柄。 如:
A.要对图形窗口的底色进行修改,可用:
set(gcf, ‘Color’, [1,1,1])------将图形窗口底色设为白色 B.要把当前X轴的颜色改为绿色,可用: set(gca, ‘Xcolor’, [0,1,0]) (2) 在图形窗口上直接修改。
各种标记点属性选项 意 义 选 项 用点号绘制各数据点 ‘^’ 用‘+’号绘制各数据点 ‘v’ 用‘*’号绘制各数据点 ‘>’ 用‘。’号绘制各数据点 ‘<’ 用正方形绘制各数据点 ‘p’ 用菱形绘制各数据点 ‘h’ Matlab语言基本知识(四)
1.系统数学模型的几种表示方法 (1)传递函数模型
4(s2)(s26s6)2 G(s)332s(s1)(s3s2s5)>>num=4*conv([1,2],conv([1, 6, 6],[1, 6, 6]));
>>den=conv([1,0],conv([1,1],conv([1,1],conv([1,1],[1,3,2,5]))));
表示下列传递函数模型
4s2G(s)3
s2s5G(s)1
(2s1)(s2)(2)零极点模型
G(s)=
k(sz1)(sz2)(sz3)(szm)
(sp1)(sp2)(sp3)(spn)将零点、极点及K值输入即可建立零极点模型。 z=[-z1,-z2 …,-zm] p=[-p1,-p2 …,-pn]
k=k
多项式求根的函数:roots ( ) 调用格式: z=roots(a)
其中:z — 各个根所构成的向量 a — 多项式系数向量
两种模型之间的转换函数: [z ,p ,k]=tf2zp(num , den); [num , den ]=zp2tf(z ,p ,k)
(3)状态方程模型
01x101x12x1ux22xy011x2
A=[0 1;-1 –2];B=[0;1];C=[0 1];D=0; s=ss(A,B,C,D);
系统状态方程转换为系统零极点模型及传递函数模型的函数。
[num , den]=ss2tf(A ,B ,C ,D , iu ) %iu—表示输入的序号(对多输入系统) [z, p ,k]=ss2zp(A ,B ,C ,D , iu ) %[z ,p ,k]:表示对第iu个输入信号的传递函数的零极点。
[A , B ,C ,D]= tf2ss (num , den) [A , B ,C ,D]=zp2ss(z ,p ,k)
(4)feedback()函数:系统反馈连接
调用格式:sys=feedback(s1,s2,sign)
2.控制系统的稳定性分析方法
(1)求闭环特征方程的根;
(2)化为零极点模型,看极点是否在s右半平面; (3)对状态空间形式(闭环),求A阵的特征值eig(A);
判断如下系统的稳定性:
1 G(s)=3 2ss2s23
可编程如下:
numg=1; deng=[1 1 2 23]; numf=1; denf=1;
[num,den]= feedback(numg,deng,numf,denf,-1);
roots(den)
判断状态空间形式描述的系统的稳定性,两个输入。
A=[0 1 –1;-6 –11 6;-6 –11 5]; B=[0 0 1]; C=[1 0 0]; D=0;
[z1,p1,k1]=ss2zp(A,B,C,D,1)
[z2,p2,k2]=ss2zp(A,B,C,D,2) ii=find(real(p1)>0),n1=length(ii); ii1= find(real(p2)>0),n2=length(ii1); if (n1+n2>0),disp(‘system is Unstable’) else
disp(‘system is Stable’); end
3.控制系统根轨迹绘制
rlocus() 函数:功能为求系统根轨迹 rlocfind():计算给定根的根轨迹增益
sgrid()函数:绘制连续时间系统根轨迹和零极点图中的阻尼系数和自然频率栅格线
4.控制系统频域分析基本方法
(1)Bode图:bode()函数
(2)Nyquist图:nyquist()函数 (3)稳定裕度计算:margin( )函数
综合应用:
A=[0 1 –1;-6 –11 6;-6 –11 5]; B=[0 0 1]; C=[1 0 0]; D=0;
=logspace(-1,1);
[m,p]=bode(A,B,C,D,1,)
subplot(211),semilogx(,20*log10(m)); subplot(212),semilogx(,p); [X,Y]=nyquist(A,B,C,D,1,); plot(X,Y)
[Gm,Pm,cg,CP]=margin(A,B,C,D)
5.线性系统时间响应分析
step( )函数:求系统阶跃响应
impulse( )函数:求取系统的脉冲响应 lsim( )函数:求系统的任意输入下的仿真
Matlab语言基本知识(五)
1.SIMULINK简介
SIMULINK是MATLAB软件的扩展,它是实现动态系统建模和仿真的一个
软件包,它与MATLAB语言的主要区别在于,其与用户交互接口是基于Windows的模型化图形输入,其结果是使得用户可以把更多的精力投入到系统模型的构建,而非语言的编程上。
所谓模型化图形输入是指SIMULINK提供了一些按功能分类的基本的系统模块,用户只需要知道这些模块的输入输出及模块的功能,而不必考察模块内部是如何实现的,通过对这些基本模块的调用,再将它们连接起来就可以构成所需要的系统模型(以.mdl文件进行存取),进而进行仿真与分析。 2.SIMULINK的启动
进入SIMULINK界面,只要你在MATLAB命令窗口提示符下键入‘SIMULINK’,按回车键即可启动SIMULINK软件。在启动S IMULINK软件之后,SIMULINK的主要方块图库将显示在一个新的Windows中。 如图5-1所示:
► 在MATLAB命令窗口中输入simulink :
结果是在桌面上出现一个称为Simulink Library Browser的窗口,在这个窗口中列出了按功能分类的各种模块的名称。
图5-1 SIMULINK的主要方块图库
3.SIMULINK的模块库介绍
►SIMILINK模块库按功能进行分为以下8类子库: Continuous(连续模块) Discrete(离散模块)
Function&Tables(函数和平台模块) Math(数学模块) Nonlinear(非线性模块)
Signals&Systems(信号和系统模块) Sinks(接收器模块) Sources(输入源模块) 4.SIMULINK简单模型的建立 (1)建立模型窗口
(2)将功能模块由模块库窗口复制到模型窗口 (3)对模块进行连接,从而构成需要的系统模型 5.SIMULINK功能模块的处理
(1)模块库中的模块可以直接用鼠标进行拖曳(选中模块,按住鼠标左键不放)而放到模型窗口中进行处理。
(2)在模型窗口中,选中模块,则其4个角会出现黑色标记。此时可以对模块进行以下的基本操作:
移动:选中模块,按住鼠标左键将其拖曳到所需的位置即可。若要脱离线而
移动,可按住shift键,再进行拖曳;
复制:选中模块,然后按住鼠标右键进行拖曳即可复制同样的一个功能模块; 删除:选中模块,按Delete键即可。若要删除多个模块,可以同时按住Shift
键,再用鼠标选中多个模块,按Delete键即可。也可以用鼠标选取某区域,再按Delete键就可以把该区域中的所有模块和线等全部删除;
转向:为了能够顺序连接功能模块的输入和输出端,功能模块有时需要转向。
在菜单Format中选择Flip Block旋转180度,选择Rotate Block顺时针旋转90度。或者直接按Ctrl+F键执行Flip Block,按Ctrl+R键执行Rotate Block。 改变大小:选中模块,对模块出现的4个黑色标记进行拖曳即可。 模块命名:先用鼠标在需要更改的名称上单击一下,然后直接更改即可。名
称在功能模块上的位置也可以变换180度,可以用Format菜单中的Flip Name来实现,也可以直接通过鼠标进行拖曳。Hide Name可以隐藏模块名称。 颜色设定: Format菜单中的Foreground Color可以改变模块的前景颜色,
Background Color可以改变模块的背景颜色;而模型窗口的颜色可以通过Screen Color来改变。
参数设定:用鼠标双击模块,就可以进入模块的参数设定窗口,从而对模块
进行参数设定。参数设定窗口包含了该模块的基本功能帮助,为获得更详尽的帮助,可以点击其上的help按钮。通过对模块的参数设定,就可以获得需要的功能模块。
属性设定:选中模块,打开Edit菜单的Block Properties可以对模块进行属
性设定。包括Description属性、 Priority优先级属性、Tag属性、Open function属性、Attributes format string属性。其中Open function属性是一个很有用的属性,通过它指定一个函数名,则当该模块被双击之后,Simulink就会调用该函数执行,这种函数在MATLAB中称为回调函数。
模块的输入输出信号:模块处理的信号包括标量信号和向量信号;标量信号
是一种单一信号,而向量信号为一种复合信号,是多个信号的集合,它对应着系统中几条连线的合成。缺省情况下,大多数模块的输出都为标量信号,对于输入信号,模块都具有一种“智能”的识别功能,能自动进行匹配。某些模块通过对参数的设定,可以使模块输出向量信号。 6.SIMULINK应用举例
以具有双积分环节的系统G(S)为例,该系统的开环是不稳定的,为了使系统稳定,使用超前校正环节K(S)进行串联校正,见图5-2。
G(S)1S2K(S)10(S10)(S5)+ - K(S)G(S) 图5-2 系统结构框图
在建模之前,你需要创建一个工作区域。创建一个工作区域的方法为,选择File 项,然后再选择New,这将开始一个新的窗口,其窗口名为“Untiledl”,可以在该窗口内构造系统模型,并称这个窗口为工作窗口。
为了得到这个系统的阶跃响应,可以由两个传递函数、一个求和点、一个输入源及两个输出观测点等6个部分组成这个系统。
输入源的元件位于Sources 库;传递函数与综合点方块都位于线性部分(Linear)库中。用同样方法,可将该库中的Transfer Fcn与Sum图形拖曳到工作空间,然后关闭Linear库;
如何得到其仿真的输出结果。在Sinks库中有三个功能方块可用于显示或存储输出结果。Scope 功能块可以像一台示波器,实时地显示任何信号的仿真结果。To Workspace功能块可以把输出值以矢量的形式存储在MATLAB工作空间中,这样可以在MATLAB环境下分析与绘制其输出结果。To File功能块可以把数据存储到一个给定名字的文件中。用同样方法,将Scope拖曳到工作空间,并关闭Sinks库窗口。
打开Sum功能块,在List of Signs处输入“+”、“-”符号。如果综合点超过了两个输入点,只要简单地输入其正、负号,即可自动地增加其相应地输入点。
打开StepFcn功能块,有三个空白框可以填入参数。Steptime是阶跃响应的初始时间。此项可填0,即零时刻开始阶跃响应。另外两项为初始值(Initial value)和终值(Final value)。这两项可分别输入0和1。
打开工作空间功能块。输入y作为变量名(Variable name),对应最大行数项(Maximum number of rows),输入100。每一行对应一个时间间隔。在系统仿真过程中,可以输入0到9.9,间隔为0.1,生成100个点。
最后,要将这些方块连接起来。除Sources与Sinks功能块外,所有其他方块中至少有一个输出点,即在方块旁有一个符号﹥指向外面,也至少有一个输入点,即在方块旁有一个符号﹥指向里面,Sources功能块没有输入点,只有输出点,而Sinks功能块没有输出点,因此它仅有一个输入点。系统的仿真方块图见图5-3。
7.SIMULINK仿真的运行
构建好一个系统的模型之后,接下来的事情就是运行模型,得出仿真结果。运行一个仿真的完整过程分成三个步骤:设置仿真参数、启动仿真和仿真结果分析。
图5-3 系统的仿真方块图
(1)设置仿真参数和选择解法器
设置仿真参数和选择解法器,选择Simulation菜单下的Parameters命令,就会弹出一个仿真参数对话框,它主要用三个页面来管理仿真的参数。
I.Solver页,它允许用户设置仿真的开始和结束时间,选择解法器,说明解法器参数及选择一些输出选项。
★ 仿真时间:注意这里的时间概念与真实的时间并不一样,只是计算机仿真中对时间的一种表示,比如10秒的仿真时间,如果采样步长定为0.1,则需要执行100步,若把步长减小,则采样点数增加,那么实际的执行时间就会增加。一般仿真开始时间设为0,而结束时间视不同的因素而选择。总的说来,执行一次仿真要耗费的时间依赖于很多因素,包括模型的复杂程度、解法器及其步长的选择、计算机时钟的速度等等。
★ 仿真步长模式:用户在Type后面的第一个下拉选项框中指定仿真的步长选取方式,可供选择的有Variable-step(变步长)和Fixed-step(固定步长)方式。变步长模式可以在仿真的过程中改变步长,提供误差控制和过零检测。固定步长模式在仿真过程中提供固定的步长,不提供误差控制和过零检测。用户还可以在第二个下拉选项框中选择对应模式下仿真所采用
II. Workspace I/O页,作用是管理模型从MATLAB工作空间的输入和对它的输出。
III.Diagnostics页,允许用户选择Simulink在仿真中显示的警告信息的等级。
(2)启动仿真
I.设置仿真参数和选择解法器之后,就可以启动仿真而运行。
选择Simulink菜单下的start选项来启动仿真,如果模型中有些参数没有定义,则会出现错误信息提示框。如果一切设置无误,则开始仿真运行,结束时系统会发出一鸣叫声。
II.除了直接在SIMULINK环境下启动仿真外,还可以在MATLAB命令窗口中通过函数进行,格式如下:
[t,x,y]=sim(‘模型文件名’,[to tf],simset(‘参数1’,参数值1,‘参数2’,参数值2, …))
其中to为仿真起始时间,tf为仿真终止时间。[t,x,y]为返回值,t为返回的时间向量值,x为返回的状态值,y为返回的输出向量值。simset定义了仿真参
数,包括以下一些主要参数:
AbsTol:默认值为1e-6设定绝对误差范围。
Decimation:默认值为1,决定隔多少个点返回状态和输出值。 Solver:解法器的选择。
最后一步是仿真(Simulation),可以通过选择仿真菜单(Simulation Menu)执行仿真命令。有两个可以供选择的项:Start(开始执行)与Parameters(参数选择)。在参数选择中,可以有几种积分算法供选择。对于线性系统,可以选择Linsim算法。对应项分别输入如下参数:
Start Time 0 (开始时间) Stop Time 9.9 (停止时间)
Rilative Error 0.001 (积分一步的相对误差) Minimum Step Size 0.1 (最小步长) Maximum Step Size 0.1 (最大步长)
在Return Variable方框中,还可以输入要返回的变量参数。如在此方框中填入t, 在仿真之后可以在MATLAB工作空间中得到两个变量, 即t与y。参数选择完毕后,关闭该窗口。
此时,你可以选择Start启动仿真程序,在仿真结束时,计算机会用声音给予提示。阶跃响应图如图5-4所示。
图5-4 阶跃响应图
因篇幅问题不能全部显示,请点此查看更多更全内容