当前位置:文档之家› MATLAB与控制系统仿真

MATLAB与控制系统仿真

在线性系统理论中,一般常用的数学模型形式有:传递 函数模型(系统的外部模型)、状态方程模型(系统的 内部模型)、零极点增益模型和部分分式模型等。这些 模型之间都有着内在的联系,可以相互进行转换。
32
传递函数描述
连续系统的传递函数模型
连续系统的传递函数如下:
G(s)
C(s) R(s)
b1s m a1s n
从上至下排列
26
绘图一般步骤
准备绘图需要的数据; 指定绘图的窗口或者区域; 调用基本绘图命令; 选择线型、颜色、数据点形状; 坐标轴控制,包括显示范围、刻度线、比例、
网格线; 标注控制,包括坐标轴名称、标题、相应文本
等。
27
Simulink的操作
28
控制系统的时域分析
求取系统单位阶跃响应:step() 求取系统的冲激响应:impulse()
格式:plot(x,y, ‘color_linestyle_marker’)
说明:参数color_linestyle_marker 为一个字 符串,由颜色、线型、数据点的图标组成。
18
图形加注功能
将标题、坐标轴标记、网格线及文字注
释加注到图形上,这些函数为:
title —— 给图形加标题
xlable —— 给x轴加标注
❖在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)
10
程序控制语句
• if-else-elseif语句 ➢ if格式: if 逻辑表达式 执行语句 end 当逻辑表达式的值为真,则执行该结构中的执 行语句内容,执行完后向下继续执行,若逻辑 表达式的值为假,跳过结构中的执行语句继续 向下执行。
11
程序控制语句
➢ if-else格式 if 逻辑表达式 执行语句1 else 执行语句2 end
34
零极点增益模型
零极点模型实际上是传递函数模型的另一种表现形式,其原理是 分别对原系统传递函数的分子、分母进行分解因式处理,以获得 系统的零点和极点的表示形式。
G(s) K (s z1)(s z2 )...(s zm ) (s p1)(s p2 )...(s pn )
K为系统增益,zi为零点,pj为极点
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
log(x)
自然对数
log10 (x) 以 10 为底的对数
sign(x)
符号函数
fix(x)
取整
5
ห้องสมุดไป่ตู้、M文件
M文件建立方法: 1. 在Matlab中,点:File->New->M-file 2. 在编辑窗口中输入程序内容 3. 点:File->Save,存盘,M文件名必须与函数名一致。
Matlab的应用程序也以M文件保存。
36
传递函数
两种形式互换 TF形式变换为ZPK形式
– Gzpk=zpk(Gtf) – [zz,pp,kk]=zpkdata(Gzpk,’v’) – %获得G(s)的零点、极点和增益 ZPK形式变换为TF形式 – Svv=tf(Sxx) – [nn,dd]=tfdata(Svv,’v’) – %获得分子分母多项式系数
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,
以消除工作空间中其他变量对程序运行的影响。 但注意在子程序中不要用clear。 参数值要集中放在程序的开始部分,以便维护。 要充分利用MATLAB工具箱提供的指令来执行所 要进行的运算,在语句行之后输入分号使其及中 15 间结果不在屏幕上显示,以提高执行速度。
MATLBA程序设计基本原则
程序尽量模块化,也就是采用主程序调用子程 序的方法,将所有子程序合并在一起来执行全 部的操作。
语句n 语句ow
表达式的值和哪种情况(case)的值相同,就执行哪种情况中的语句,如果都
14
不同,则执行otherwise中的语句。
MATLAB程序编写及调试
MATLBA程序设计基本原则: %后面的内容是程序的注解,要善于运用注解使
程序更具可读性。 养成在主程序开头用clear指令清除变量的习惯,
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 为底的指数
6
MATLAB工作界面 当前路径
工作空间
命令窗口
历史命令
7
MATLAB编辑窗口
设置 取消 进入 断点 断点 函数
跳出 函数
单步 运行
继续 运行
退出 调试
8
程序控制语句
• 循环语句
MATLAB中的循环语句包括for循环和while循环两种。 for循环的基本格式为:
for 循环变量=起始值:步长:终止值 循环体
pzmap:绘制线性系统的零极点图 rlocus:求系统根轨迹。 rlocfind:计算给定一组根的根轨迹增益。 sgrid:在连续系统根轨迹图和零极点图中绘制出阻尼系 数和自然频率栅格。
31
控制系统的数学描述与建模
控制系统的数学模型在控制系统的研究中有着相当重要 的地位,要对系统进行仿真处理,首先应当知道系统的 数学模型,然后才可以对系统进行模拟。同样,如果知 道了系统的模型,才可以在此基础上设计一个合适的控 制器,使得系统响应达到预期的效果,从而符合工程实 际的需要。
grid on; grid off
图形控制 hold on; hold off
axis([xmin xmax ymin ymax]) subplot(mnk) semilogx;semilogy
25
单窗口多曲线分图绘图
subplot —— 子图分割命令 调用格式:
行 列 绘图序号 subplot(m,n,p) —— 按从左至右,
29
控制系统的频域分析
求取系统对数频率特性图(波特图):bode() 求取系统奈奎斯特图:nyquist()
margin:求幅值裕度和相角裕度及对应的转折频率 freqs:模拟滤波器特性 nichols:求连续系统的尼科尔斯频率响应曲线(即对数 幅相曲线) ngrid:尼科尔斯方格图
30
根轨迹分析函数
end 步长的缺省值是1。步长可以在正实数或负实数范 围内任意指定,对于正数,循环变量的值大于终止值 时,循环结束;对于负数,循环变量的值小于终止值 时,循环结束。
9
程序控制语句
while循环的基本格式为: while 表达式 循环体 end
若表达式为真,则执行循环体的内容,执 行后再判断表达式是否为真,若为假则跳出循环 体,向下继续执行,否则继续执行循环体。 break:从循环体中跳出,并使循环结束
充分利用Debugger来进行程序的调试(设置 断点、单步执行、连续执行)
设置好MATLAB的工作路径,以便程序运行。
16
图形绘制
图形绘制 plot(y) 图形标注 plot(x,y) 图形控制 plot(x1,y1,option1,x2,y2,option2,…)
17
plot控制
功能:在调用函数plot时,可以指定线型,颜 色,和数据点的图标。
相关主题