MATLAB:经典控制系统的分析和设计

上传人:gbs****77 文档编号:10666150 上传时间:2020-04-13 格式:DOC 页数:11 大小:83KB
返回 下载 相关 举报
MATLAB:经典控制系统的分析和设计_第1页
第1页 / 共11页
MATLAB:经典控制系统的分析和设计_第2页
第2页 / 共11页
MATLAB:经典控制系统的分析和设计_第3页
第3页 / 共11页
点击查看更多>>
资源描述
MATLAB 经典控制系统的分析和设计 9 3 1 基本操作及命令 1 访问和退出 MATLAB 在大多数系统中 一旦安装了 MATLAB 在调用时 应执行命令 MATLAB 退出 MATLAB 应执行命令 exit 或 quit 2 如何应用 MATLAB 通常以命令驱动方式应用 MATLAB 当输入单个命令时 MATLAB 会立即对其进行处理 并且显示处理结果 MATLAB 也能够执行存储在文件中的命令序列 通过键盘输入的命令 应用向上箭头键可以被存取 通过输入某个最新命令和调用特定的命令行 可以使屏幕内容向 上滚动 3 MATLAB 的变量 MATLAB 的一个特点是变量在应用之前不必是维数确定的 在 MATLAB 中 变量一旦被采用 会自动产生 如果必要 变量的维数以后还可以改变 在命令 exit 或 quit 输入之前 这些变量将保留在存储器中 为了得到工作空间内的变量清单 可以通过键盘输入命令 who 当前存放在工作空间内的所有变量便会显示在屏幕上 命令 clear 能从工作空间中清除所有非永久性变量 如果只需要从工作空间中清除某个特定变量 比如 x 则应输入命 令 clear x 4 以 开始的程序行 在本书中 许多 MATLAB 程序在编写时附有注解和说明 这些注解和说明阐明了发生在程序中的具体进程 在 MATLAB 中以 开始的程序行 表示注解和说明 符号 类似于 BASIC 中 REM 以 开始的行 用来存储程序 的注解或说明 这些注解和说明是不执行的 这就是说 在 MATLAB 程序行中 出现在 以后的一切内容都是可以 忽略的 如果注解或说明需要一行以上程序行 则每一行均需以 为起始 5 应用分号操作符 分号用来取消打印 如果语句的最后一个符号是分号 则打印被取消 但是命令仍在执行 而结果不再显示 这是一 个有益的特性 因为打印中间结果可能不必要 此外 在输入矩阵时 除非最后一行 分号用来指示一行的结束 6 应用冒号操作符 冒号操作符在 MATLAB 中起着重要作用 该操作符用来建立向量 赋予矩阵下标和规定叠代 例如 j k 表示 j j 1 k A j 表示矩阵 A 的第 j 列 A i 表示矩阵 A 的第 i 行 7 输入超过一行的长语句 一个语句通常以回车键或输入键终结 如果输入的语句太长 超出了一行 则回车键后面应跟随由 3 个或 3 个以上圆 点组成的省略号 以表明语句将延续到下一行 下面是一个例子 x 1 234 2 345 3 456 4 567 5 678 6 789 7 890 8 901 9 012 符号 和 前后的空白间隔可以任选 这种间隔通常可以起到改善语句清晰度的效果 8 在一行内输入数个语句 如果在一行内可以把数个语句用逗号或分号隔开 则可以把这数个语句放在一行内 例如 plot x y o text 1 20 System 1 text 1 15 System 2 和 plot x y o text 1 20 System 1 text 1 15 System 2 9 选择输出格式 MATLAB 中的所有计算都是以双精度方式完成的 但是显示输出可以是具有 4 个小数位的定点输出 例如 对于向量 x 1 3 0 00002 MATLAB 有下列输出 x 0 3333 0 0000 如果在矩阵中至少有一个元素不是严格的整数 则有 4 种可能的输出格式 显示的输出量可以利用下列命令加以控制 format short format long format short e format long e 一旦调用了某种格式 则这种被选用的格式将保持 直到对格式进行了改变为止 在控制系统分析中 format short 和 format long 是经常采用的格式 一旦调用了 MATLAB 即使没有输入格式命令 MATLAB 也将以 format short 格式显示数值结果 如果矩阵或向量的所有元素都是严格的整数 则 format short 和 format long 的结果是相同的 10 退出 MATLAB 时如何保存变量 当键入 exit 或 quit 时 MATLAB 中的所有变量将消失 如果在退出以前输入命令 save 则所有的变量被保存在磁盘 文件 matlab mat 中 当再次进入 MATLAB 时 命令 load 将使工作空间恢复到以前的状态 9 3 2 MATLAB 函数 在当前的 MATLAB5 0 及以上版本中 MATLAB 函数的调用格式和其它编程语言是不同的 其典型的调用格式为 返回变量列表 func name 输入变量列表 其中等号左边的变量为返回变量 等号右边的变量为输入变量 MATLAB 允许在函数调用时同时返回多个变量 而一 个函数又可以由多种格式进行调用 例如 bode 函数可以由下面的格式调用 mag phase bode num den w 其中 bode 函数用来求取或绘制系统的 Bode 图 而系统在这里由传递函数分子 num 和分母 den 表示 还可以用下面 的格式调用此函数 mag phase bode A B C D w 其中 A B C D 为系统的状态方程模型 尽管两种调用格式是完全不同的 MATLAB 函数还是会自动识别到底是用 哪种格式调用该函数的 从而得出正确的结论 在当前版本的控制系统工具箱中还允许用线性模型对象变量 G 来描述系统 例如 mag phase bode G w MATLAB 函数在返回变量的格式上可以不同 例如若上面的语句中若没有返回变量 则将自动地绘制系统的 Bode 图 否则将返回计算结果数据 9 3 3 绘制响应曲线 MATLAB 具有丰富的获取图形输出的程序集 命令 plot 可以产生线性 x y 图形 用命令 loglog semilogx semilogy 或 polar 取代 plot 可以产生对数坐标图和极坐标图 所有这些命令的应用方式都是相同的 它们只对如何对坐标轴 进行分度和如何显示数据产生影响 1 x y 图 如果 x 和 y 是同一长度的向量 则命令 plot x y 将画出 y 值对于 x 值的关系图 2 画多条曲线 为了在一幅图上画出多条曲线 采用具有多个自变量的 plot 命令 plot X1 Y1 X2 Y2 Xn Yn 变量 X1 Y1 X2 Y2 等等是一些向量对 每一个 x y 对都可以图解表示出来 因而在一幅图上形成多条曲线 多重变量 的优点是它允许不同长度的向量在同一幅图上显示出来 每一对向量采用不同的线型 在一幅图上画一条以上的曲线时 也可以利用命令 hold hold 命令可以保持当前的图形 并且防止删除和修改比例尺 因此 随后的一条曲线将会重叠地画在原曲线图上 再次输入命令 hold 会使当前的图形复原 3 加进网格线 图形标题 x 轴标记和 y 轴标记 一旦在屏幕上显示出图形 就可以画出网格线 定出图形标题 并且标定 x 轴标记和 y 轴标记 MATLAB 中关于网格 线 标题 x 轴标记和 y 轴标记的命令如下 grid 网格线 title 图形标题 xlabel x 轴标记 ylabel y 轴标记 应当指出 一旦恢复命令 display 通过依次输入相应的命令 就可以将网格线 图形标题 x 轴标记和 y 轴标记叠加 在图形上 4 在图形屏幕上书写文本 为了在图形屏幕的点 x y 上书写文本 采用命令 text X Y text 例如 利用语句 text 3 0 45 sin t 将从点 3 0 45 开始 水平地写出 sin t 另外 下列语句 plot x1 y1 x2 y2 text x1 y1 1 text x2 y2 2 标记出两条曲线 使它们很容易地区分开来 5 图形类型 下列语句 plot X Y x 将利用标记符号 x 画出一个点状图 而语句 plot X1 Y1 X2 Y2 将用虚线画出第一曲线 用加法符号 画出第二条曲线 MATLAB 能够提供的线和点的类型如下 线的类型 点的类型 实线 圆点 短划线 加号 虚线 星号 点划线 圆圈 o 号 6 颜色 下列语句 plot X Y r plot X Y g 表明 第一幅图采用红线 第二幅图采用绿色 号标记 MATLAB 提供的颜色如下 红色 r 绿色 g 蓝色 b 白色 w 无色 i 7 自动绘图算法 在 MATLAB 中 图形是自动定标的 在另一幅图形画出之前 这幅图形作为现行图将保持不变 但是在另一幅图形画 出后 原图形将被删除 坐标轴自动地重新定标 关于暂态响应曲线 根轨迹 伯德图 奈魁斯特图等的自动绘图算 法已经设计出来 它们对于各类系统具有广泛的适用性 但是并非总是理想的 因此 在某些情况下 可能需要放弃 绘图命令中的自动坐标轴定标特性 改用手工选择绘图范围 8 手工坐标轴定标 如果需要在下列语句指定的范围内绘制曲线 v x min x max y min y max 则应输入命令 axis v 式中 v 是一个四元向量 axis v 把坐标轴定标建立在规定的范围内 对于对数坐标图 v 的元素 应为最小值和最大值的常用对数 执行 axis v 会把当前的坐标轴定标保持到后面的图中 再次键入 axis 恢复自动定标 axis square 把图形的范围设定在方形范围内 对于方形长宽比 斜率为 1 的直线恰位于 45o 上 它不会因屏幕的不 规则形状而变形 axis normal 将使长宽比恢复到正常状态 9 3 4 MATLAB 语言的联机帮助功能 本书中将广泛应用 MATLAB 语言和其控制系统工具箱作为辅助工具 并将介绍相关函数的使用 但是以当前的篇幅想 全面介绍 MATLAB 和控制系统工具箱是不可能的 不妨使用 MATLAB 的联机帮助功能 MATLAB 的联机帮助既可以由 help 命令来直接获得 又可以由 MATLAB 图形界面下的 Help 菜单来查询 例如 可以 由 help lyap 命令得出 lyap 函数的联机帮助信息如下 help lyap LYAP Lyapunov equation X LYAP A C solves the special form of the Lyapunov matrix equation A X X A C X LYAP A B C solves the general form of the Lyapunov matrix equation A X X B C See also DLYAP 可见 由这种方法得出的帮助信息包括该函数的解释 函数的调用格式和相关函数名等等 进一步的帮助内容可以查 阅 MATLAB 或相应工具箱手册 还可以用 lookfor 命令在 MATLAB 路径下查询有关的关键词 例如若想查询关键词 Hankel 则可以由下面的命令完成 lookfor hankel HANKEL Hankel matrix BHRDEMO Demo of model reduction techniques Hankel Balanced BST HKSV Hankel singular values and grammians P Q OHKAPP Optimal Hankel norm approximation stable plant OHKDEMO Demo of optimal Hankel model reduction technique OHKLMR Optimal Hankel norm approximation unstable plant 9 4 1 控制系统模型 1 传递函数模型 在 MATLAB 中 直接用分子 分母的系数表示 即 num b1 b2 bm 1 den a1 a2 an 1 而 printsys 命令则用于显示传递函数 例如 num 1 1 den 1 5 9 printsys num den 执行后 其结果为 num den 2 零极点增益模型 在 MATLAB 中 用 z p k 矢量表示 即 z b1 b2 bm p b1 b2 bm k k 3 状态空间模型 在 MATLAB 中 系统可用 a b c d 矩阵组表示 说明 在本书中将不涉及状态方程 4 模型之间的转换 同一个系统可用三种不同的模型表示 为分析系统的特性 有必要在三种模型之间进行转换 MATLAB 的信号处理和 控制系统工具箱中 都提供了模型变换的函数 ss2tf ss2zp tf2ss tf2zp zp2ss zp2tf 它们的作用可用图 9 1 来表示 图 9 1 三种模型之间的转换 图 9 1 三种模型之间的转换 5 系统建模 对简单系统的建模可直接采用三种基本模型 传递函数 零极点增益 状态空间模型 但实际中经常遇到几个简单系 统组合成一个复杂系统 常见形式有 并联 串联 闭环及反馈等连接 l 并联 将两个系统按并联方式连接 在 MATLAB 中可用 parallel 函数实现 l 串联 将两个系统按串联方式连接 在 MATLAB 中可用 series 函数实现 l 闭环 将系统通过正负反馈连接成闭环系统 在 MATLAB 中可用 cloop 函数实现 l 反馈 将两个系统按反馈方式连接成闭环系统 在 MATLAB 中可用 feedback 函数实现 9 4 2 时域分析 控制系统最常用的时域分析方法是 当输入信号为单位阶跃和单位脉冲函数时 求出系统的输出响应 分别称为单位 阶跃响应和单位脉冲响应 在 MATLAB 中 提供了求取连续系统的单位阶跃响应函数 step 单位脉冲响应函数 impulse 零输入响应函数 initial 及任意输入下的仿真函数 lsim 1 step 命令 功能 求阶跃响应 格式 y x step num den t 2 impluse 命令 功能 求脉冲响应 格式 y x impluse num den t 3 lsim 命令 功能 对任意输入的连续系统进行仿真 格式 y x lsim num den u t 其中输入信号为矢量 u 输入信号 u 的行数决定了计算的输出点数 对于单输入系统 u 是一个列矢量 对于多输入系 统 u 的列数等于输入变量数 例如 计算斜坡响应 t 为输入矢量 可以输入如下命令 ramp t y lsim num den rmp t 4 initial 命令 功能 求连续系统的零输入响应 格式 y x t initial a b c d x0 功能 y x t initial a b c d x0 t initial 函数可计算出连续时间线性系统由于初始状态所引起的响应 故而称零输入响应 当不带输出变量引用函数时 initial 函数在当前图形窗口中直接绘制出系统的零输入响应 9 4 3 根轨迹 根轨迹法是分析和设计线性定常控制系统的图解方法 使用十分简便 特别是适用于多回路系统的研究 应用根轨迹 比其它方法更为方便 通常来说 要绘制出系统的根轨迹是很繁琐很难的事 因此在教科书中经常以简单系统的图示解法得到 但在现代计 算机技术和软件平台的支持下 绘制系统的根轨迹变得轻松自如了 在 MATLAB 中 专门提供了绘制根轨迹有关的函 数 rlocus rlocfind pzmap 等 1 pzmap 命令 功能 绘制线性连续系统的零极点图 格式 p z pzmap num den 用 x 号表示极点 用 o 号表示零点 2 rlocus 命令 功能 绘制根轨迹 格式 r k rlocus num den r k rlocus num den k 3 rlocfind 命令 功能 找出给定的一组根对应的根轨迹增益 格式 k poles rlocfind num den k poles rlocfind num den p K 为选点处的根轨迹增益 Pole 为此点处的闭环特征根 4 sgrid 命令 功能 在连续系统根轨迹图和零极点图中绘制出阻尼系数和自然频率栅格 格式 sgrid 或 sgrid new 或 sgrid Z Wn 9 4 4 频域分析 频域分析法是应用频率特性研究控制系统的一种经典方法 采用这种方法可直观地表达出系统的频率特性 分析方法 比较简单 物理概念比较明确 对于诸如防止结构谐振 抑制噪声 改善系统稳定性和暂态性能等问题 都可以从系 统的频率特性上明确地看出其物理实质和解决途径 频率分析法主要包括三种方法 bode 图 幅频 相频特性曲线 nyquist 曲线 nichols 图 1 bode 命令 功能 绘制波特图 格式 mag phase w bode num den mag phase w bode num den w 2 nyquist 命令 功能 绘制乃奎斯特图 格式 re im w nyquist num den re im w nyquist num den w 3 nichols 命令 功能 绘制尼科尔斯图 格式 M P nichols num den 4 margin 命令 功能 求幅值和相角裕量及幅值和相位交界频率 格式 GM PM wcg wcp margin M P
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!