计算机控制与仿真技术(第二版)-第6章 控制系统的MATLAB 7仿真
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(5)[re,im,w]= dnyquist(num,den,Ts,w)
10
6.2.4 求连续系统Nichols曲线的函数
求解连续系统Nichols曲线的函数为nichols(),该函数命令 的调用格式为: (1)[mag,phase,w]= nichols(sys)
(2)nichols(sys)
(5)[mag,phase,w]=dbode(num,den,Ts,w)
8
6.2.3 绘制系统Nyquist曲线的函数
计算及绘制系统Nyquist曲线的函数为nyquist(),该函数命
令的调用格式为:
(1)[re,im,w]=nyquist(sys) (2)nyquist(sys)
(3)nyquist(sys,w)
7
2. 求离散系统Bode图的函数 求解离散系统Bode图的函数为dbode(),该函数命令的调 用格式为: (1)[mag,phase,w]=dbode(a,b,c,d,Ts)
(2)[mag,phase,w]=dbode(a,b,c,d,Ts,iu)
(3)[mag,phase,w]=dbode(a,b,c,d,Ts,iu,w) (4)[mag,phase,w]=dbode(num,den,Ts)
连续系统不同的特点,在编制程序中应针对一些特殊情况 来考虑程序的实现问题。
20
2. 高阶差分方程的仿真 若采样系统直接给出输入/输出闭环Z传递函数GB(z)形式, 即
Y ( z ) b0 b1 z 1 bm z m GB ( z) U ( z ) 1 a1 z 1 a n Z n
(4)nyquist(sys,iu) (5)nyquist(sysl,sys2,…,sysn) (6)nyquist(sysl,sys2,…,sysn,w)
9
如果系统为离散系统,则相应的nyquist函数为 dnyquist(),函数命令调用为: (1)[re,im,w]= dnyquist(a,b,c,d,Ts) (2)[re,im,w]= dnyquist(a,b,c,d,Ts,iu) (3)[re,im,w]= dnyquist(a,b,c,d,Ts,iu,w) (4)[re,im,w]= dnyquist(num,den,Ts)
2
6.1.2 连续系统的单位阶跃响应
求取连续系统单位阶跃响源自文库的函数为step(),该 命令的调用格式为: (1)step(sys)
(2)step(sys,t)
(3)step(sys,iu)
(4)step(sysl,sys2,…,sysn)
(5)[y,t,x]=step(sys)
3
6.1.3 连续系统的单位冲激响应
17
6.3.4 非线性系统离散相似法仿真
1. 典型非线性环节 ① 饱和非线性环节 对系统过渡过程的影响:系统的稳定性变好;过渡过程时间增 长,快速性能降低;超调量下降,动态的平稳性有所改善。 ② 死区非线性 对系统性能的影响:增大系统的稳态误差,降低定位精度;延 长过渡过程时间,使动态性能下降。 ③ 滞环非线性 对系统的性能影响:增加系统静差,降低定位精度;在稳态值 附近以某一幅度进行振荡,即产生自振,对系统的稳定性带来 不利影响。
求连续系统单位冲激响应的函数为impulse(),该 函数命令的调用格式如下: (1)impulse(sys) (2)impulse(sys,t)
(3)impulse (sys,iu)
(4)impulse(sysl,sys2,…,sysN)
(5)[y,t,x]=impulse(sys)
4
6.1.4 连续系统的零输入响应
13
6.3 利用MATLAB语言进行编程仿真
6.3.1 面向传递函数的线性系统仿真
对线性连续系统进行单输入、单输出的处理及仿真可将用
户输入的系统传递函数模型转化为仿真计算模型,再应用数 值积分法进行仿真。
数值积分法中采用四阶龙格—库塔法,可保证系统仿真具备
一定的精度和性能指标要求,实现重复运行,便于研究参数 的变化对系统动态性能的影响,且运行过程直观、形象,修
(2)[Gm,Pm,Wcp,Wcg]= margin(mag,phase,w) (3)margin(sys) (4)margin(mag,phase,w)
12
6.2.6 求系统零极点和根轨迹的函数
1. 求系统零极点的函数 求解连续系统零极点的函数为pzmap(),该函数命令的调用 格式为: (1)pzmap(sys) (2)pzmap(p,z) (3)[p,z]=pzmap(sys) 2. 求系统根轨迹的函数 求解连续系统零极点的函数为clocus(),该函数命令 的调用格式为: (1)clocus (sys) (2)clocus (sys,k) (3)[r,k]= clocus (sys)
18
开 始 输入数据
2.
求离散化系数 , m , j , c , d
仿 真 框 图 及 程 序 实 现
求输入作用 U k 判断入口 非线性及类型
N
Y
调用对应类型自定义函数修正 Yk
求其它输入作用 U dot , U f 求状态和输出 X k , Yk 1
N
判断出口 非线性及类型
第6章 控制系统的MATLAB 7仿真
通过本章学习,应该掌握以下内容:
• 控制系统的时域分析
• 控制系统的频域分析
• 控制系统的稳定性分析
• 利用MATLAB 7语言进行编程仿真
1
6.1 控制系统时域分析的MATLAB实现
6.1.1 概述
MATLAB仿真是用先进的计算机程序来实现动态响应曲线 的绘制过程。MATLAB仿真绘制的响应曲线,纵、横坐标都 自动产生有自适应能力的精确刻度,从曲线的形状可以直接 计算出响应的性能指标。 时域响应的MATLAB仿真方法有两种,一种是在MATLAB 函数指令方式下进行时域仿真;另一种是在SIMULINK窗口 菜单操作方式下进行时域仿真。 MATLAB提供求取连续系统单位阶跃响应函数step(),单位 冲激响应函数impulse(),零输入响应函数initial()及其它函数; 也提供离散系统的单位阶跃响应函数dstep(),单位冲激响应 函数dimpulse(),零输入响应函数dinitial()及其它函数等。
每运算一个时刻值后,要及时刷新和摒弃相应的存储单
元内容。即只保留及其前m个时刻的数值,及其前n个时 刻的数值。
22
本 章 结 束
23
6.2.1 概述
在频域分析法中,利用MATLAB仿真可精确绘制Bode图、 Nyquist曲线图、Nichols曲线图等多种曲线,并可计算系统 的频域性能指标如剪切频率(截止频率)、-穿越频率、 相角稳定裕度、幅值稳定裕度等,以便研究系统控制过程
的稳定性、快速性及稳态精度等性能。
应用MATLAB提供的频域仿真函数与其它函数命令、语 句等,可编制成MATLAB程序,这种在MATLAB的指令方
求连续系统零输入响应的函数为initial(),该 函数命令的调用格式如下: (1)[y,t,x]= initial(sys)
(2)initial(sys,x0)
(3)initial(sys,x0, t) (4)initial(sysl,sys2,…,sysN,x0)
5
6.2 控制系统频域分析的MATLAB实现
式下进行频域仿真也是最常用的实现方法。
6
6.2.2 连续系统的Bode图绘制
1. 求连续系统Bode图的函数
求解连续系统Bode图的函数为bode(),该函数命令的
调用格式为: (1)bode(sys)
(2)bode(sys,iu)
(3)bode(sys,w) (4)bode(sysl,sys2,…,sysn) (5)bode(sysl,sys2,…,sysn,w) (6)[mag,phase,w]=bode(sys)
改参数容易。
14
程序设计思路及其实现: 用MATLAB语言编写的面向传递函数的线性系统仿真 程序命名为CSS1(Control System Simulation 1)。 (1)输入初始数据 (2)形成系统开、闭环的系数矩阵 (3)利用四阶龙格-库塔法运算求解 (4)输出结果 本程序中从第(2)部分到程序末尾可编辑为CSS1.m 文件存储起来。使用时,只要进入到MATLAB命令窗口, 按第(1)部分的给定格式输入系统参数和运行参数,再 调用该文件即可得仿真运算结果。
一般总有n≥m,则相应差分方程:
y k a1 y k 1 a n y k n b0 u k b1u k 1 bm u k m
解该方程可得系统的采样时刻输出响应y(k)。
21
3. 在计算机上实现高阶差分方程的求解应注意以下问题 建立向量存储单元,保存和记忆输入输出前若干时刻的 值。
15
6.3.2 面向结构图的线性系统仿真
1. 程序设计思路及其实现 采用MATLAB语言编程,面向结构图的线性系统仿真程 序命名为CSS2。 (1)输入初始化数据 (2)程序处理 备注: diag( );产生以括号内向量元素为主对角元素的对角阵 P(:,I); 取P阵中第I列的所有元素作为单独列向量
(3)nichols(sys,w) (4)nichols(sysl,sys2,…,sysn)
(5)nichols(sysl,sys2,…,sysn,w)
11
6.2.5 求系统幅值裕度与相位裕度
求解系统幅值裕度与相位裕度的函数为 margin(),该函数命令的调用格式为:
(1)[Gm,Pm,Wcp,Wcg]= margin(sys)
若需要观察其它环节动态响应,可重新输入nout值,再次 运行程序,即可得到另一环节输出变化曲线、数据。
16
6.3.3 线性系统的离散相似法仿真
程序设计思路及其实现: 采用MATLAB语言编程,线性系统离散相似法仿真程序
命名为CSS3。
输入系统各环节参数阵P,连接阵WIJ,运行参数 n,h,L1,T0,Tf,阶跃输入幅值Y0,输出环节编号nout,方法 同CSS2。
Y
调用对应类型自定义函数修正 Yk 1
N
时间到?
Y
输出结果 结 束
19
6.3.5 采样控制系统仿真
1. 采样控制系统的程序实现
采样控制系统的仿真算法可采用差分方程、连续部分按
环节离散化处理、控制器设计为连续系统环节等方法对采 样控制系统进行仿真。
采用MATLAB语言编制程序,需要考虑到采样系统有与