MATLAB与控制系统仿真

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
34
零极点增益模型
零极点模型实际上是传递函数模型的另一种表现形式,其原理是 分别对原系统传递函数的分子、分母进行分解因式处理,以获得 系统的零点和极点的表示形式。
G(s) K (s z1)(s z2 )...(s zm ) (s p1)(s p2 )...(s pn )
K为系统增益,zi为零点,pj为极点
grid on; grid off
图形控制 hold on; hold off
axis([xmin xmax ymin ymax]) subplot(mnk) semilogx;semilogy
25
单窗口多曲线分图绘图
subplot —— 子图分割命令 调用格式:
行 列 绘图序号 subplot(m,n,p) —— 按从左至右,
充分利用Debugger来进行程序的调试(设置 断点、单步执行、连续执行)
设置好MATLAB的工作路径,以便程序运行。
16
图形绘制
图形绘制 plot(y) 图形标注 plot(x,y) 图形控制 plot(x1,y1,option1,x2,y2,option2,…)
17
plot控制
功能:在调用函数plot时,可以指定线型,颜 色,和数据点的图标。
若逻辑表达式的值为假,则判断逻辑表达式2的
值,若为真,则执行语句2,否则向下执行,若
13 所有表达式均为假,执行语句el 。
程序控制语句
• switch语句
switch语句的格式为:
switch 表达式(标量或字符串)
case 值1 语句1
case 值2 语句2 ┅
case 值n
otherwise end
2 矩阵是MATLAB的核心
一、变量与函数
1、变量
MATLAB中变量的命名规则是: (1)变量名必须是不含空格的单个词; (2)变量名区分大小写; (3)变量名最多不超过19个字符; (4)变量名必须以字母打头,之后可以是任意字母 、数字或下划线,变量名中不允许使用标点符号.
3
2、数学运算符号及标点符号
逻辑表达式的值为真则执行语句1,若逻辑表达 式的值为假,则跳过执行语句1而执行语句2, 然后向下执行。
12
程序控制语句
➢ if-elseif格式
if 逻辑表达式1
执行语句1
elseif 逻辑表达式2
执行语句2
……
elseif
逻辑表达式n
执行语句n
else
执行语句el
end
如果逻辑表达式的值为真,则执行语句1,
在线性系统理论中,一般常用的数学模型形式有:传递 函数模型(系统的外部模型)、状态方程模型(系统的 内部模型)、零极点增益模型和部分分式模型等。这些 模型之间都有着内在的联系,可以相互进行转换。
32
传递函数描述
连续系统的传递函数模型
连续系统的传递函数如下:
G(s)
C(s) R(s)
b1s m a1s n
end 步长的缺省值是1。步长可以在正实数或负实数范 围内任意指定,对于正数,循环变量的值大于终止值 时,循环结束;对于负数,循环变量的值小于终止值 时,循环结束。
9
程序控制语句
while循环的基本格式为: while 表达式 循环体 end
若表达式为真,则执行循环体的内容,执 行后再判断表达式是否为真,若为假则跳出循环 体,向下继续执行,否则继续执行循环体。 break:从循环体中跳出,并使循环结束
20 axis square
正正正正正正正
1 正正
0.8
cos(t)
正正
0.6
0.4
0.2
正正正正正
0
-0.2 sin(t)
-0.4
-0.6
-0.8
-1
0
2
4
6
8
10
21
正正t
axis的用法还有: axis([xmin xmax ymin ymax]) —— 用行向量中
给出的值设定坐标轴的最大和最小值。 如axis ([-2 2 0 5]) axis(equal) —— 将两坐标轴设为相等 axis on(off) —— 显示和关闭坐标轴的标
来自百度文库
颜色 magenta(洋红) red(红) blue(兰)默认 black(黑)
图形绘制
图形绘制 图形标注 图形控制
text(x,y,’字符串’) gtext(‘字符串’) title(‘字符串’) xlabel(‘字符串’),ylabel(‘字符串’)
24
图形绘制
图形绘制 figure(1);figure(2);…; 图形标注 figure(n)
10
程序控制语句
• if-else-elseif语句 ➢ if格式: if 逻辑表达式 执行语句 end 当逻辑表达式的值为真,则执行该结构中的执 行语句内容,执行完后向下继续执行,若逻辑 表达式的值为假,跳过结构中的执行语句继续 向下执行。
11
程序控制语句
➢ if-else格式 if 逻辑表达式 执行语句1 else 执行语句2 end
从上至下排列
26
绘图一般步骤
准备绘图需要的数据; 指定绘图的窗口或者区域; 调用基本绘图命令; 选择线型、颜色、数据点形状; 坐标轴控制,包括显示范围、刻度线、比例、
网格线; 标注控制,包括坐标轴名称、标题、相应文本
等。
27
Simulink的操作
28
控制系统的时域分析
求取系统单位阶跃响应:step() 求取系统的冲激响应:impulse()
MATLAB与控制系统仿真
控制工程基础上机辅导
1
MATLAB作为线性系统的一种分析和仿真工具 ,是理工科大学生应该掌握的技术工具,它作为一 种编程语言和可视化工具,可解决工程、科学计算 和数学学科中许多问题。
MATLAB建立在向量、数组和矩阵的基础上, 使用方便,人机界面直观,输出结果可视化。
❖在MATLAB中零极点增益模型用[z,p,K]矢量组表示。即:
❖z=[z1,z2,…,zm]
❖p=[p1,p2,...,pn]
❖K=[k]
35
❖函数tf2zp()可以用来求传递函数的零极点和增益。
零极点增益模型
零点、极点、增益形式(ZPK)表示 – 输入零点和极点列向量及标量形式的增益 – 使用zpk命令建立ZPK对象 例: >> zG=-0.75;pG=[-1;-5];kG=4; >> G2=zpk(zG,pG,kG) 或者: >> G2=zpk(-0.75,[-1;-5],4)
以消除工作空间中其他变量对程序运行的影响。 但注意在子程序中不要用clear。 参数值要集中放在程序的开始部分,以便维护。 要充分利用MATLAB工具箱提供的指令来执行所 要进行的运算,在语句行之后输入分号使其及中 15 间结果不在屏幕上显示,以提高执行速度。
MATLBA程序设计基本原则
程序尽量模块化,也就是采用主程序调用子程 序的方法,将所有子程序合并在一起来执行全 部的操作。
(1)MATLAB的每条命令后,若为逗号或无标点符号,则显 示命令的结果;若命令后为分号,则禁止显示结果.
(2)“%” 后面所有文字为注释. (3) “...”表示续行.
+ 加法运算,适用于两个数或两个同阶矩阵相加.
— 减法运算
* 乘法运算
.* 点乘运算
/ 除法运算
./ 点除运算
^ 乘幂运算
.^ 点乘幂运算
6
MATLAB工作界面 当前路径
工作空间
命令窗口
历史命令
7
MATLAB编辑窗口
设置 取消 进入 断点 断点 函数
跳出 函数
单步 运行
继续 运行
退出 调试
8
程序控制语句
• 循环语句
MATLAB中的循环语句包括for循环和while循环两种。 for循环的基本格式为:
for 循环变量=起始值:步长:终止值 循环体
格式:plot(x,y, ‘color_linestyle_marker’)
说明:参数color_linestyle_marker 为一个字 符串,由颜色、线型、数据点的图标组成。
18
图形加注功能
将标题、坐标轴标记、网格线及文字注
释加注到图形上,这些函数为:
title —— 给图形加标题
xlable —— 给x轴加标注
33
传递函数
MATLAB中创建传递函数(TF)对象 – 创建两个行向量,按降阶顺序分别包含分子和分母 多项式中s各次幂的系数 – 使用tf命令建立TF对象 例如: >> numG=[4 3];denG=[1 6 5]; >> G1=tf(numG,denG) 或 >> G1=tf([4 3],[1 5 6])
b2sm1 ... bns bm1 a2sn1 ... ans an1
对线性定常系统,式中s的系数均为常数,且a1不 等于零,这时系统在MATLAB中可以方便地由分子和分 母系数构成的两个向量唯一地确定出来,这两个向量分 别用num和den表示。
num=[b1,b2,…,bm,bm+1] den=[a1,a2,…,an,an+1] 注意:它们都是按s的降幂进行排列的。
pzmap:绘制线性系统的零极点图 rlocus:求系统根轨迹。 rlocfind:计算给定一组根的根轨迹增益。 sgrid:在连续系统根轨迹图和零极点图中绘制出阻尼系 数和自然频率栅格。
31
控制系统的数学描述与建模
控制系统的数学模型在控制系统的研究中有着相当重要 的地位,要对系统进行仿真处理,首先应当知道系统的 数学模型,然后才可以对系统进行模拟。同样,如果知 道了系统的模型,才可以在此基础上设计一个合适的控 制器,使得系统响应达到预期的效果,从而符合工程实 际的需要。
记、标志 axis auto —— 将坐标轴设置返回自动缺
省值
22
线性和颜色字符定义表
23
字符定义 :
none
线型 实线(默认) 点划线 无线
字符定义 y c g w
颜色 yellow(黄) cyan(青) green(绿) white(白)
字符定义
--
线型 虚线
-.
×+-
点连线
字符定义 m r b k
29
控制系统的频域分析
求取系统对数频率特性图(波特图):bode() 求取系统奈奎斯特图:nyquist()
margin:求幅值裕度和相角裕度及对应的转折频率 freqs:模拟滤波器特性 nichols:求连续系统的尼科尔斯频率响应曲线(即对数 幅相曲线) ngrid:尼科尔斯方格图
30
根轨迹分析函数
4
\ 反斜杠表示左除.
3、数学函数
函数 名 称函 数 名 称
sin(x)
正弦函数
asin(x)
反正弦函数
cos(x)
余弦函数
acos(x)
反余弦函数
tan(x)
正切函数
atan(x)
反正切函数
abs(x)
绝对值
max(x)
最大值
min(x)
最小值
sum(x)
元素的总和
sqrt(x)
开平方
exp(x) 以 e 为底的指数
log(x)
自然对数
log10 (x) 以 10 为底的对数
sign(x)
符号函数
fix(x)
取整
5
4、M文件
M文件建立方法: 1. 在Matlab中,点:File->New->M-file 2. 在编辑窗口中输入程序内容 3. 点:File->Save,存盘,M文件名必须与函数名一致。
Matlab的应用程序也以M文件保存。
ylable —— 给y轴加标注
text —— 在图形指定位置加标注
gtext —— 将标注加到图形任意位置
grid on(off) —— 打开、关闭坐标网格线
legend —— 添加图例
19
axis —— 控制坐标轴的刻度
例:t=0:0.1:10 y1=sin(t);y2=cos(t);plot(t,y1,'r',t,y2,'b--'); x=[1.7*pi;1.6*pi]; y=[-0.3;0.8]; s=['sin(t)';'cos(t)']; text(x,y,s); title('正弦和余弦曲线'); legend('正弦','余弦') xlabel('时间t'),ylabel('正弦、余弦') grid
语句n 语句ow
表达式的值和哪种情况(case)的值相同,就执行哪种情况中的语句,如果都
14
不同,则执行otherwise中的语句。
MATLAB程序编写及调试
MATLBA程序设计基本原则: %后面的内容是程序的注解,要善于运用注解使
程序更具可读性。 养成在主程序开头用clear指令清除变量的习惯,
36
传递函数
两种形式互换 TF形式变换为ZPK形式
– Gzpk=zpk(Gtf) – [zz,pp,kk]=zpkdata(Gzpk,’v’) – %获得G(s)的零点、极点和增益 ZPK形式变换为TF形式 – Svv=tf(Sxx) – [nn,dd]=tfdata(Svv,’v’) – %获得分子分母多项式系数
相关文档
最新文档