Matlab控制系统计算机辅助设计
基于MATLAB的控制系统计算机辅助分析ppt
包权
人书友圈7.三端同步
加入以下MATLAB语句可以求系统在阶跃函数作用下的给 定稳态误差终值еsr:
E(s) R(s) C(s) R(s) (s)R(s) 1 (s)R(s)
1
1
G(s) G(s)
R(s)
1
1 G(s)
.R(s)
ess
lim sE(s) s0
Transfer function: 2 s^3 + 4.5 s^2 + s
1 G(s)
若 G s. G0 N (s) ,则结果esr为求系统扰动稳态误差终值;
1 G(s)
补充知识:MATLAB基础Ⅲ
一.MATLAB中的图形工具 LTI Viewer
以【例4.3】系统为例来说明怎样使用MATLAB中,LTI Viewer求系 统的各种性能指标。 ①在买的VIP时长期间,下载特权不清零。
100W优质文档免费下 载
VIP有效期内的用户可以免费下载VIP免费文档,不消耗下载特权,非会员用户需要消耗下载券/积分获取。
部分付费文档八折起 VIP用户在购买精选付费文档时可享受8折优惠,省上加省;参与折扣的付费文档均会在阅读页标识出折扣价格。
⑦ 对建好的系统结构图模型按“zhang4sys1.mdl”命名并存盘
【例4.1】已知二阶系统的超调量σ%=20%,求系统的阻尼比ξ。 【解】程序: sigma=0.2; zeta=((log(1/sigma))^2/((pi)^2+(log(1/sigma))^2))^(1/2) zeta =
0.4559 即求得系统阻尼比ξ=0.4559
【例4.2】已知二阶系统的ξ=0.46,求系统的超调量σ%。 【解】程序: zeta=0.46; sigma=2.7182^(-pi*zeta/(1-(zeta)^2)^(1/2))
控制系统计算机辅助分析的MATLAB实现方法
第8卷 第2期集美大学学报(自然科学版)V ol.8 N o.2 2003年6月Journal of Jimei U niv ersity(Natural Science)Jun.2003[文章编号]1007-7405(2003)02-0145-04控制系统计算机辅助分析的M AT LAB实现方法罗成汉,张富忠,江小霞(集美大学信息工程学院,福建厦门361021)[摘要]阐述了描述控制系统的四种主要数学模型,以及控制系统计算机辅助分析的M A T LAB实现方法,尤其是用Simulink建模,利用L T I V iewer进行系统的辅助分析的方法,该方法能实现从系统建模到系统的分析和仿真,全过程都是可视化操作.[关键词]控制系统;数学模型;计算机辅助分析[中图分类号]T P273[文献标识码]A0 引言控制系统计算机辅助分析是以控制系统的数学模型为基础,以计算机为工具,对控制系统进行实验和研究的一种方法,它为控制系统的设计提供强大的分析工具,可检验控制系统的设计效果.计算机辅助分析必须根据系统的数学模型编制相应的仿真程序.MATLAB语言是一种面向科学与工程计算的高级语言,具有强大的计算功能、计算结果和编程可视化及极高的编程效率,并提供了许多强大功能的工具箱,而且M ATLAB语言易学易用,不要求使用者具备高深的数学与程序的知识,不需要使用者深刻了解算法与编程技巧.因此,在此方面,MATLAB有一般高级语言难以比拟的优势,从而为传统的控制系统辅助分析与设计开辟新的方法与途径提供了充分的条件[1].1 控制系统的数学模型控制系统的数学模型对于控制系统的分析、设计具有十分重要的意义,可以通过解析法、实验法建立系统的数学模型.在M ATLAB中,可用四种数学模型描述线性定常时不变控制系统,包括传递函数模型、零极点增益模型、状态空间模型以及基于传递函数获得的图形化形式———动态结构图,也就是MATLAB里的Simulink结构图模型[2].在MAT LAB中,提供了许多函数建立系统的数学模型,函数tf()建立传递函数模型,函数zpk()建立零极点增益模型,函数ss()建立状态空间模型,这三种系统模型之间可以用函数: ss2tf(a,b,c,d),ss2zp(a,b,c,d),tf2ss(num,den),tf2zp(num,den),zp2ss(z,p,k),zp2tf(z,p,k)来转换.对于结构图模型,可在Simulink工作窗里画出动态结构图模型,其中,输入与输出环节必须采用模块库浏览中“signal and system”中的“in1”与“out1”模块(因为进行何种仿真是由命令确定的),并取扩展名为mdl的某一文件名并存盘.该模型可用linmod()、linmod2()、dlinmod()函数命令将从所保存结构图模型中,提取一个在某一平衡工作点处的线性模型,也将其转换成LTI对象的状态空间模型. [收稿日期]2002-07-03[作者简介]罗成汉(1970-),男,讲师,从事测控系统的教学、科研工作.2 控制系统辅助分析及其相关MA T LAB 函数控制系统辅助分析方法主要有:时域分析、频域分析、稳定性分析、根轨迹分析四种方法.2.1 稳定性分析由控制理论的一般规律可知,对线性系统而言,若一个连续系统的所有极点都位于s 平面的左平面,则该系统为一个稳定的系统;若一个离散系统的所有极点都位于z 平面的单位圆内,则该系统是一个稳定系统.在MATLAB 中,采用直接求根的方法很容易实现.2.2 时域分析时域分析法是根据自动控制系统微分方程,用拉普拉斯变换求解动态响应的过程曲线的方法.典型响应有单位阶跃响应、单位脉冲响应等.时域分析的另外一个目的是求解响应的性能指标,响应的性能指标主要有:峰值时间、超调量、调节时间及上升时间.M ATLAB 跃响应函数step ()、dstep (),脉冲响应函数impluse ()、dim pluse (),也可通过这些函数,可方便地求取系统的相应响应,编写相应的程序求取系统的性能指标.2.3 频域分析频域分析法是自动控制中应用一种数学工具———频率特性来研究系统控制过程性能(稳定性、快速性及稳态精度)的方法,不必直接求解系统的微分方程,而是间接地用系统的开环频率特性曲线,来分析闭环系统的响应,是一种图解的方法.频域分析主要用到三种图:Bode 图、Nyquist 曲线图、Nichols 曲线图.其中Bode 图可以用于分析系统的相角稳定裕度、幅值稳定裕度、剪切频率、-π穿越频率、带宽、扰动抑止及稳定性等.Nyquisrt 与Nichols 曲线图,可以用来分析系统的相角稳定裕度、幅值稳定裕度及其稳定性等.MAT -LAB 提供了求取系统Bode 图函数:bode ()、dbode (),求取系统Nyquist 曲线图函数:nyquist ()、dnyquist (),求取系统Nichols 曲线图函数:nichols ()、dnichols (),求取系统的频域性能指标函数margin (),通过这些函数可方便地绘制相应的曲线图.2.4 根轨迹分析根轨迹分析法是分析与设计线性定常系统特别有效的图解方法,它根据根轨迹法则,迅速地作出近似的根轨迹图,直观地反映系统参数变化时对根分布位置的影响.M ATLAB 提供了绘制根轨迹的相关函数,其中有绘制系统零极点图的函数pzmap ()、求系统根轨迹的函数rlocus (),计算系统根轨迹增益函数rlocfind ().3 控制系统的辅助分析的MA T LAB 实现方法3.1 编程实现应用MATLAB 提供的函数与其他函数、命令、语句,针对实现控制系统各种辅助分析方法,可编制相应的MATLAB 程序.可以在MATLAB 指令窗口中直接输入程序,或者在MATLAB 编辑窗口输入程序,并取扩展名为M 的某一文件名并存盘,运行时只需在MATLAB 指令窗口直接输入该文件名.该方法需要编写大量的程序,并且用户界面不友好,操作不方便.3.2 利用线性定常系统分析工具(LTI Viewer )来实现M ATLAB 控制系统工具箱针对线性定常系统提供了分析工具LTI View er ,它是具有良好图形用户界面(GUI )的交互式LTI 模型分析工具.利用LTI Viewer 可以在图形方式下交互地进行LTI 模·146·集美大学学报(自然科学版)第8卷型的各种时域和频域特性分析,并能直观观察图形方式的结果.LTI View er 允许从MATLAB Workspace 或Simulink 中输入系统的模型.3.2.1 从MATLAB Workspace 输入系统模型首先在MATLAB 的工作区建立LTI 模型,对于传递函数模型、零极点增益模型、状态空间模型可直接在MATLAB 工作区域建立;对于Simulink 的结构图模型,可先转化成状态空间模型,再在M ATLAB 工作区域建立.接着打开LTI View er ,在其File 菜单中,选择import ,在出现对话框中选择模型,把LTI 模型对象从MATLAB 工作空间引入到LTI Viewer 工作空间,同时在LTI View er 窗口中按照缺省设置画出LTI 模型的阶段响应曲线;最后在图形窗口中按下鼠标右键,出现一个上下文菜单,该菜单主要用来调整图形窗口的显示,利用LTI Viewer 能方便地对控制系统进行各种辅助分析,并能求取相应响应曲线的特征值.该方法适合版本较低的M ATLAB ,其LTI View er 不能直接从Simulink 中输入系统的模型,对于版本较高的MA TLAB 采用直接从Simulink 中输入系统的模型更方便.3.2.2 直接从Simulink 中输入系统的模型LTI Viewer 也允许从Simulink 环境中输入系统的结构图模型,这样一来,从系统建模到系统的分析和仿真,全过程都是可视化操作,尤其是对于大型控制系统来说,非常直观、方便.操作流程如下:首先通过Simulink 建立结构图模型并存盘.然后进入LTI Viewer 中设置输入点和输出点:在Simulink 的tools 菜单中,选择Linear analysis ,将出现imput point 、output point 元件窗口,这是LTI View er 提供的元件,其功能是在LTI View er 仿真界面和Simulink 系统模型之间传递信息.元件im -put point 、output point 是LTI Viewer 与Simulink 系统结构图的接口,系统的仿真信息是通过这两个元件在两界面之间传递,具体输入函数的类型和输出方式需在LTI Viewer 仿真界面下设置,现在只需将这两个元件拷贝到Simulink 界面下,用元件imput point 取代模型输入环节in1模块,用元件output point 取代模型输出环节out1模块.最后在LTI Viewer 仿真界面的菜单项Simulink 中,选择get linearized model ,就能对系统进行分析.若建模不是采用in1、out1模块,而是直接采用Control system 工具箱中imput point 、output point 元件,操作更方便,在Simulink 的tools 菜单中,选择Linear analysis ,再在LTI Viewer 仿真界面的菜单项Simulink 中,选择get linearized model ,就能对系统进行分析.4 仿真实例选取某一典型二阶系统的模型:G (s )=16s 2+4s +16,以它为例说明使用LTI View er 对其进行系统分析的步骤:1)在Simulink 中建立如图1所示系统的结构图模型.2)利用控制系统分析工具LT I Viewer 对其进行系统分析,系统分析工具LTI Viewer 的分析界面如图2所示.3)单击Plo t Type 菜单,根据分析需要可选择Step 或Bode 等命令项,方便得到仿真结果,如图3所示的阶跃响应曲线和图4所示的波德图,还可通过设置Characteristics 菜单,对不同类型响应曲线标出相关的特征值,如图3所示,能得到峰值响应.5 结论基于MATLAB 控制系统辅助分析的方法,通过编程实现,需要编写大量程序,并且用户界面不友好,操作不方便;Simulink 非常适合复杂系统的动态建模,LTI View er 是功能十分强大的线性定常系统分析工具,通过Simulink 建模,利用LTI Viewer 直接从Simulink 环境中输入系统的模型,对·147· 第2期罗成汉等:控制系统计算机辅助分析的M AT LA B 实现方法系统进行辅助分析,该方法从系统建模到系统的分析和仿真,全过程都是可视化操作,尤其对于大型控制系统来说,非常直观、方便,为控制系统的设计提供了强大的分析工具.[参考文献][1]张志涌.精通MA T LAB 5.3[M ].北京:北京航空航天大学出版社,2000.[2]黄忠霖.控制系统M A T LAB 计算及仿真[M ].北京:国防工业出版社,2001.Realizing Method for Computer -aided Analysis of ControlSystem Based on MATLAB LanguageLUO Cheng -han ,ZHANG Fu -zhong ,JIANG Xiao -xia(School of I nformation Engineering ,Jimei U niversity ,Xiamen 361021,China )A bstract :Four kinds of major mathematical model of control sy stem are presented ,and how to realize computer -aided analysis of control system based on MAT LAB language is discussed in the paper .The com -pl e te proc ess of operation ,from system model building to system analysis and simulation ,is visual with this method ,that is for building model by use of simulink and computer -aided analysis by use of LTI viewer .Key words :control sy stem ;mathematical model ;computer -aided analy sis ·148·集美大学学报(自然科学版)第8卷。
控制系统计算机辅助设计---MATLAB语言与应用
系统可控性判定
MATLAB 求解
2021/6/22
控制系统计算机辅助设计---MATLAB语言与应用
29
Gram 矩阵满足 Lyapunov 方程 对偶问题
2021/6/22
控制系统计算机辅助设计---MATLAB语言与应用
30
Kalman 规范分解
2021/6/22
控制系统计算机辅助设计---MATLAB语言与应用
61
例4-12 带有复数极点的系统 阶跃响应解析解 解析解
2021/6/22
控制系统计算机辅助设计---MATLAB语言与应用
62
解析解的进一步化简
基于 Euler 公式的化简
其中 新 MATLAB 函数
2021/6/22
控制系统计算机辅助设计---MATLAB语言与应用
63
新 MATLAB 函数清单
38
得出 Leunberge 变换矩阵
编写 leunberge.m 函数
2021/6/22
控制系统计算机辅助设计---MATLAB语言与应用
39
MATLAB 函数清单
2021/6/22
控制系统计算机辅助设计---MATLAB语言与应用
40
2021/6/22
控制系统计算机辅助设计---MATLAB语言与应用
56
解析解求解 解析解求解结果
稳定性
2021/6/22
控制系统计算机辅助设计---MATLAB语言与应用
57
连续系统的解析解法
无重根时部分方式展开
2021/6/22
控制系统计算机辅助设计---MATLAB语言与应用
58
由 Laplace 反变换求解析解 有重根时 相应项的解析解为
控制系统计算机辅助设计-MATLAB语言与应用
20
国际上出版了关于 MATLAB及 CACSD 的专著和教材,但它们大都是MATLAB的
入门教材,并没有真正深入、系统地探讨 CACSD 技术及 MATLAB实现,将MATLAB
的强大功能与控制领域成果有机结合是本 书力图解决的主要问题。
2020/4/12
控制系统计算机辅助设计-MATLAB语言与应用
2020/4/12
控制系统计算机辅助设计-MATLAB语言与应用
17
除了经典的多变量频域方法之外,还出现了一些 基于最优化技术的控制方法,其中比较著名的是 英国学者 John Edmunds 提出的多变量参数最优化 控制方法和英国学者 Zakian 提出的不等式控制方 法等。
与此同时,美国学者似乎更习惯于状态空间的表 示与设计方法。此方法往往又称为时域方法 (timedomain),首先在线性二次型指标下引入了最优控 制的概念,并在用户的干预下(如人工选择加权矩 阵)得出某种最优控制的效果,这样的控制又往往 需要引入状态反馈或状态观测器新的控制概念。
辨识工具箱、鲁棒控制工具箱、多变量频域设计工 具箱、µ分析与综合工具箱、神经网络工具箱、最 优化工具箱、信号处理工具箱、以及仿真环境
Simulink。
2020/4/12
控制系统计算机辅助设计-MATLAB语言与应用
16
1.5 控制系统计算机辅助设计 领域的新方法
早期的 CACSD 研究侧重于对控制系统的计算机辅 助分析上,开始时人们利用计算机的强大功能把 系统的频率响应曲线绘制出来,并根据频率响应 的曲线及自己的控制系统设计经验用试凑的方法 设计一个控制器,然后利用仿真的方法去观察设 计的效果。
2020/4/12
控制系统计算机辅助设计-MATLAB语言与应用
控制系统计算机辅助设计MATLAB语言与应用教学设计
控制系统计算机辅助设计MATLAB语言与应用教学设计背景介绍随着科学技术的不断发展,计算机在各个领域的应用越来越广泛,控制系统也不例外。
计算机辅助设计能够帮助控制系统工程师快速进行系统设计,提高设计效率和精度,降低错误率。
而MATLAB语言作为控制系统领域广泛应用的工具,能够更好地满足工程师的需求。
因此,本文将介绍控制系统计算机辅助设计MATLAB语言与应用教学设计。
教学目标1.熟练掌握MATLAB语言和控制系统的基础知识;2.能够设计控制系统的模型并进行仿真;3.能够分析和优化控制系统的性能参数;4.能够利用MATLAB工具进行控制系统实验。
教学内容本教学设计分为基础篇和进阶篇两部分。
基础篇MATLAB基础1.MATLAB语言环境搭建;2.熟悉MATLAB语言基本语法,如变量、函数、数组等;3.掌握MATLAB的数据类型、运算符及其使用方法;4.掌握MATLAB的流程控制语句;5.掌握MATLAB的图形化操作方法。
控制系统基础1.理解控制系统模型的基本概念;2.熟悉各种控制系统模型及其特点;3.理解闭环控制系统和开环控制系统;4.了解调节器和控制器的基本原理和分类;5.掌握各种控制系统的性能指标,如稳态误差、超调量、调节时间等。
控制系统模型设计与仿真1.构建控制系统模型;2.利用MATLAB进行控制系统建模;3.对控制系统模型进行仿真;4.分析控制系统仿真结果,如阶跃响应、脉冲响应等;5.通过仿真结果优化控制系统模型。
进阶篇PID控制1.理解PID控制器的基本原理和作用;2.了解PID控制器的数学模型及其参数调节方法;3.掌握MATLAB工具在PID控制系统设计中的应用;4.利用MATLAB对PID控制器进行参数优化。
其他控制算法1.了解其他常见控制算法的基本原理,如PI控制、PD控制等;2.掌握MATLAB工具在其他控制算法中的应用;3.对其他控制算法进行仿真和优化。
控制系统实验1.设计控制系统实验方案;2.利用MATLAB工具进行实验数据分析;3.分析实验结果,优化控制系统模型参数。
第4章 基于MATLAB的控制系统计算机辅助分析
(2)用LTI Viewer图形工具求系统阶跃响应的性能指标。
四.滞后系统的时域响应分析
该系统的闭环传递函数为:
Gc ( s )G0 ( s )e s Y (s) (s) U ( s ) 1 Gc ( s )G0 ( s ) H ( s )e s
(一)滞后系统的近似时域分析 典型n阶pade近似传递函数模型为: s 1 p1 (s) 2 p 2 (s) 3 (1) n p n 1 (s) n 2 p n, ( s) s 1 p1 (s) 2 p 2 (s) 3 p n 1 (s) n 2 pade( )函数的调用格式为: [np,dp]= pade(T,n) 其中,T为延迟时间,n为pade近似的阶次。 以上闭环系统的近似传递函数为:
② 点击Sources,选中信号源模块组中的Step模块, 并拖拽到“untitled”模型窗口。
③在各模块库中,选中需要的标准功能模块并拖拽 到“untitled”模型窗口。双击“Transfer Fcn”模块,在得 出的对话框中,分别输入系统的分子和分母参数,即可 得到修改后的系统模型。
④仿真参数的设置
连续系统模块组 离散系统模块组
函数和表模块组 数学运算模块组 非线性模块组 信号与系统模块组 输出模块组 信号源模块组
(二)模型窗口的建立
打开“untitled”窗口有三种方法: ① 在MATLAB的命令窗口中选择 File→New→Model 菜单项; ② 单击Simulink工具栏中的“新建模型”图标; ③ 如 果 Simulink 动 态 结 构 图 已 经 存 在 , 那 么 在 MATLAB指令窗口下直接键入模型文件名字,便会 直接打开该模型动态结构图的模型窗口。
System:Lsys Peak amplitued:1.35 Overshoot(%):34.9 At time:11.3
matlab控制系统计算机辅助设计-长安大学..
联校正和并联校正。
3
6.1 基于传递函数的控制器设计方法
一般的控制目的是使得输出信号能很好地跟踪输入
信号,这样的控制也称为伺服控制。在这个基本的控制 结构下,误差信号E(s)和控制信号 U(s) 一般要求其尽可 能小。如图 6.2 所示系统,由于受控对象和控制器为串 联,故称其为串联控制。常用的串联控制有超前滞后校 正器和PID类控制器。 R(s)
p
φp φz 0
Z
-1/T
-1/ɑT
图6.3 超前网络零、极点在S平面上的分布
5
如图6.4可以看出, 引入这样具有正相位 的校正器,将增大前 向通道的相位,使其 相位“超前”于受控 对象的相位,因此称 为超前校正器。
超前校正器可使 校正后的闭环系统的 阶跃响应的速度加快, 超调量减小。
dB
L( )
在控制工程实践中,综合与校正的方法应根据特定的性能指标来
确定。一般情况下,若性能指标以稳态误差 e ss 、峰值时间 t p 、
最大超调量 p 、和过渡过程时间 t s 、等时域性能指标给出时, 应用根轨迹法进行综合与校正比较方便;如果性能指标是以相角裕 度r幅值裕度 K g 、相对谐振峰值 M 、谐振频率 r 和系统带宽 b r 等频域性能指标给出时,应用频率特性法进行综合与校正更合适。
15
性能指标常取为一个相对于状态x(t)和控制u(t)的二次型 积分性能指标,其形式为:
1 T 1 tf T J x (t f ) F x(t f ) x (t ) Q x(t ) u T (t ) R u (t ) dt 2 2 t0
《控制系统计算机辅助设计MATLAB语言与应用第2版》薛定宇_课后习题答案
【17】
(1)z=xy
>>[x,y]=meshgrid(-3:0.01:3,-3:0.01:3);
z=x.*y;
mesh(x,y,z);
>> contour3(x,y,z,50);
(1)z=sin(xy)
>> [x,y]=meshgrid(-3:0.01:3,-3:0.01:3);
【2】
相应的MATLAB命令:B=A(2:2:end,:)
>>A=magic(8)
A=
642361606757
955541213 515016
174746 202143 4224
4026273736 303133
323435 292838 3925
4123224445191848
491514 5253 11 10 56
【10】
function y=fib(k)
if nargin~=1,error('出错:输入变量个数过多,输入变量个数只允许为1!');endﻭif nargout>1,error('出错:输出变量个数过多!');end
if k<=0,error('出错:输入序列应为正整数!');endﻭifk==1|k==2,y=1;ﻭelsey=fib(k-1)+fib(k-2);endﻭend
858 5954 62 631
>>B=A(2:2:end,:)
B =
955 541213515016
40262737 36303133
41232244451918 48
858 5954 62631
控制系统计算机辅助设计MATLAB语言与应用第三版教学设计
控制系统计算机辅助设计MATLAB语言与应用第三版教学设计课程简介《控制系统计算机辅助设计MATLAB语言与应用》是一门针对控制系统理论与应用的课程,通过教学设定和实践操作让学生掌握MATLAB软件在控制系统设计中的应用。
本门课程主要内容包括控制系统基础、控制系统分析方法、MATLAB软件基础、MATLAB在控制系统设计中的应用等方面。
通过本课程学习,学生将深入掌握控制系统理论和计算机辅助设计方法,熟悉MATLAB语言的使用,掌握MATLAB在控制系统设计中的应用技巧。
教学目标本门课程的教学目标包括:1.掌握控制系统基本概念和控制系统设计原理2.熟悉MATLAB软件的基本操作和函数使用方法3.掌握控制系统仿真分析方法和MATLAB在控制系统设计中的应用技巧4.能够用MATLAB软件完成控制系统设计与仿真分析5.具备独立思考和解决实际问题的能力教学内容本门课程的教学内容主要包括以下几个部分:第一章:控制系统基础•控制系统概述•控制系统分类•控制系统组成结构•控制系统信号与变量•控制系统模型第二章:控制系统分析方法•系统时域分析方法•系统频域分析方法•系统稳定性分析方法第三章:MATLAB软件基础•MATLAB软件界面介绍•MATLAB基本命令与语法•MATLAB数据类型与数据结构第四章:MATLAB在控制系统分析与仿真中的应用•MATLAB在控制系统建模中的应用•MATLAB在控制系统分析与设计中的应用•MATLAB在实时控制中的应用第五章:课程实践项目•课程设计项目介绍•使用MATLAB完成控制系统设计和仿真分析总结本门课程旨在帮助学生掌握控制系统理论和计算机辅助设计方法,提升学生的实际操作能力和解决问题的能力。
通过课程学习与实践操作,可以让学生深入理解控制系统设计原理和MATLAB软件的使用方法,从而在实际工作中发挥出更高的效能。
控制系统计算机辅助设计_MATLAB语言与应用(第2版)薛定宇_课后复习题答案
第1章控制系统计算机辅助设计概述第2章 MATLAB语言程序设计基础第3章线性控制系统的数学模型第4章线性控制系统的计算机辅助分析第5章 Simulink在系统仿真中的应用第6章控制系统计算机辅助设计第1章控制系统计算机辅助设计概述【1】/已阅,略【2】已阅,略【3】已经掌握help命令和Help菜单的使用方法【4】区别:MATLAB语言实现矩阵的运算非常简单迅速,且效率很高,而用其他通用语言则不然,很多通用语言所实现的矩阵运算都是对矩阵维数具有一点限制的,即使限制稍小的,但凡维数过大,就会造成运算上的溢出出错或者运算出错,甚至无法处理数据的负面结果【5】【8】(1)输入激励为正弦信号(2)输入激励为脉冲模拟信号(3)输入激励为时钟信号(4) 输入激励为随机信号(5) 输入激励为阶跃信号δ=0.3δ=0.05δ=0.7结论:随着非线性环节的死区增大,阶跃响应曲线的围逐渐被压缩,可以想象当死区δ足够大时,将不再会有任何响应产生。
所以可以得到结论,在该非线性系统中,死区的大小可以改变阶跃响应的幅值和超调量。
死区越大,幅值、超调量将越小,而调整时间几乎不受其影响第2章 MATLAB语言程序设计基础【1】>> A=[1 2 3 4;4 3 2 1;2 3 4 1;3 2 4 1]A =1 2 3 44 3 2 12 3 4 13 24 1>>B=[1+4i,2+3i,3+2i,4+i;4+i,3+2i,2+3i,1+4i;2+3i,3+2i,4+i,1+4i;3+2i,2+3i,4+i,1+4i]B =1.0000 + 4.0000i2.0000 +3.0000i 3.0000 + 2.0000i4.0000 + 1.0000i4.0000 + 1.0000i 3.0000 + 2.0000i 2.0000 + 3.0000i 1.0000 + 4.0000i2.0000 +3.0000i 3.0000 + 2.0000i4.0000 + 1.0000i 1.0000 + 4.0000i3.0000 + 2.0000i 2.0000 + 3.0000i4.0000 + 1.0000i 1.0000 + 4.0000i >> A(5,6)=5A =1 2 3 4 0 04 3 2 1 0 02 3 4 1 0 03 24 1 0 00 0 0 0 0 5∴若给出命令A(5,6)=5则矩阵A的第5行6列将会赋值为5,且其余空出部分均补上0作为新的矩阵A,此时其阶数为5×6【2】相应的MATLAB命令:B=A(2:2:end,:)>> A=magic(8)A =64 2 3 61 60 6 7 579 55 54 12 13 51 50 1617 47 46 20 21 43 42 2440 26 27 37 36 30 31 3332 34 35 29 28 38 39 2541 23 22 44 45 19 18 4849 15 14 52 53 11 10 568 58 59 5 4 62 63 1>> B=A(2:2:end,:)B =9 55 54 12 13 51 50 1640 26 27 37 36 30 31 3341 23 22 44 45 19 18 488 58 59 5 4 62 63 1∴从上面的运行结果可以看出,该命令的结果是正确的【3】>> syms x s; f=x^5+3*x^4+4*x^3+2*x^2+3*x+6f =x^5 + 3*x^4 + 4*x^3 + 2*x^2 + 3*x + 6>> [f1,m]=simple(subs(f,x,(s-1)/(s+1)))f1 =19 - (72*s^4 + 120*s^3 + 136*s^2 + 72*s + 16)/(s + 1)^5m =simplify(100)【4】>> i=0:63; s=sum(2.^sym(i))s =615【5】>> for i=1:120if(i==1|i==2) a(i)=1;else a(i)=a(i-1)+a(i-2);endif(i==120) a=sym(a); disp(a); endend[ 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040, 1346269, 2178309, 3524578, 5702887, 9227465, 14930352, 24157817, 39088169, 63245986, 102334155, 165580141, 267914296, 433494437, 701408733, 1134903170, 1836311903, 2971215073, 4807526976, 7778742049, , , , , , 5, 7, 2, 9, 1, 20, 61, 81, 42, 723, 565, 288, 853, 141, 0994, 9135, 0129, 9264, 9393, 28657, 78050, 06707, 84757, 91464, , , , , , 8, 5, 3, 8, 31, 89, 20, 09, 29, 738, 167, 905, 072, 977, 6049, 9026, 5075, 4101, 9176, 83277, 82453, 65730, 48183, 413913, 662096, 076009, 738105, 814114, 0552219, 6366333, 6918552, 3284885, 0203437, 93488322, 23691759, 17180081, 40871840]【6】>>k=1;for i=2:1000for j=2:iif rem(i,j)==0if j<i, break;endif j==i, A(k)=i; k=k+1; break; endendendenddisp(A);Columns 1 through 132 3 5 7 11 13 17 19 23 29 31 37 41 Columns 14 through 2643 47 53 59 61 67 71 73 79 83 89 97 101 Columns 27 through 39103 107 109 113 127 131 137 139 149 151 157 163 167 Columns 40 through 52173 179 181 191 193 197 199 211 223 227 229 233 239 Columns 53 through 65241 251 257 263 269 271 277 281 283 293 307 311 313 Columns 66 through 78317 331 337 347 349 353 359 367 373 379 383 389 397 Columns 79 through 91401 409 419 421 431 433 439 443 449 457 461 463 467 Columns 92 through 104479 487 491 499 503 509 521 523 541 547 557 563 569 Columns 105 through 117571 577 587 593 599 601 607 613 617 619 631 641 643 Columns 118 through 130647 653 659 661 673 677 683 691 701 709 719 727 733 Columns 131 through 143739 743 751 757 761 769 773 787 797 809 811 821 823 Columns 144 through 156827 829 839 853 857 859 863 877 881 883 887 907 911 Columns 157 through 168919 929 937 941 947 953 967 971 977 983 991 997【7】说明:h和D在MATLAB中均应赋值,否则将无法实现相应的分段函数功能syms x; h=input(‘h=’); D=input(‘D=’);y=h.*(x>D)+(h.*x/D).*(abs(x)<=D)-h.*(x<-D)【10】function y=fib(k)if nargin~=1,error('出错:输入变量个数过多,输入变量个数只允许为1!');endif nargout>1,error('出错:输出变量个数过多!');endif k<=0,error('出错:输入序列应为正整数!');endif k==1|k==2,y=1;else y=fib(k-1)+fib(k-2);endend【13】-1-0.500.51-1-0.8-0.6-0.4-0.200.20.40.60.81【14】>> t=[-1:0.001:-0.2,-0.1999:0.0001:0.1999,0.2:0.001:1]; y=sin(1./t); plot(t,y);grid on;-1-0.8-0.6-0.4-0.20.20.40.60.81-1-0.8-0.6-0.4-0.200.20.40.60.81【15】(1) >> t=-2*pi:0.01:2*pi; r=1.0013*t.^2;polar(t,r);axis('square')90270180(2) >> t=-2*pi:0.001:2*pi; r=cos(7*t/2);polar(t,r);axis('square')2700902701800(3) >> t=-2*pi:0.001:2*pi;r=sin(t)./t;polar(t,r);axis('square')90180【17】(1)z=xy>> [x,y]=meshgrid(-3:0.01:3,-3:0.01:3);z=x.*y;mesh(x,y,z);>> contour3(x,y,z,50);-2-112-22-10-5510(1)z =sin(xy )>> [x,y]=meshgrid(-3:0.01:3,-3:0.01:3); z=sin(x.*y);mesh(x,y,z);>> contour3(x,y,z,50);-2-112-22第3章 线性控制系统的数学模型【1】(1) >> s=tf('s');G=(s^2+5*s+6)/(((s+1)^2+1)*(s+2)*(s+4)) Transfer function:s^2 + 5 s + 6--------------------------------s^4 + 8 s^3 + 22 s^2 + 28 s + 16(2) >> z=tf('z',0.1);H=5*(z-0.2)^2/(z*(z-0.4)*(z-1)*(z-0.9)+0.6) Transfer function:5 z^2 - 2 z + 0.2---------------------------------------z^4 - 2.3 z^3 + 1.66 z^2 - 0.36 z + 0.6 Sampling time (seconds): 0.1【2】(1)该方程的数学模型>> num=[6 4 2 2];den=[1 10 32 32];G=tf(num,den)Transfer function:6 s^3 + 4 s^2 + 2 s + 2------------------------s^3 + 10 s^2 + 32 s + 32(2)该模型的零极点模型>> G=zpk(G)Zero/pole/gain:6 (s+0.7839) (s^2 - 0.1172s + 0.4252)-------------------------------------(s+4)^2 (s+2)(3)由微分方程模型可以直接写出系统的传递函数模型【5】(1) >> P=[0;0;-5;-6;-i;i];Z=[-1+i;-1-i];G=zpk(Z,P,8)Zero/pole/gain:8 (s^2 + 2s + 2)-------------------------s^2 (s+5) (s+6) (s^2 + 1)(2) P=[0;0;0;0;0;8.2];Z=[-3.2;-2.6];H=zpk(Z,P,1,'Ts',0.05,'Variable','q')Zero/pole/gain:(q+3.2) (q+2.6)---------------q^5 (q-8.2)Sampling time (seconds): 0.05【8】(1)闭环系统的传递函数模型>> s=tf('s');G=10/(s+1)^3;Gpid=0.48*(1+1/(1.814*s)+0.4353*s/(1+0.4353*s));G1=feedback(Gpid*G,1)Transfer function:7.58 s^2 + 10.8 s + 4.8-------------------------------------------------------------- 0.7896 s^5 + 4.183 s^4 + 7.811 s^3 + 13.81 s^2 + 12.61 s + 4.8(2)状态方程的标准型实现>> G1=ss(G1)a =x1 x2 x3 x4 x5x1 -5.297 -2.473 -2.186 -0.9981 -0.7598x2 4 0 0 0 0x3 0 2 0 0 0x4 0 0 2 0 0x5 0 0 0 0.5 0b =u1x1 2x2 0x3 0x4 0x5 0c =x1 x2 x3 x4 x5y1 0 0 0.6 0.4273 0.3799d =u1y1 0Continuous-time state-space model.(3)零极点模型>> G1=zpk(G1)Zero/pole/gain:9.6 (s^2 + 1.424s + 0.6332)--------------------------------------------------------(s+3.591) (s^2 + 1.398s + 0.6254) (s^2 + 0.309s + 2.707)【11】>> Ga=feedback(s/(s^2+2)*1/(s+1),(4*s+2)/(s+1)^2);Gb=feedback(1/s^2,50);G=3*feedback(Gb*Ga,(s^2+2)/(s^3+14))Transfer function:3 s^6 + 6 s^5 + 3 s^4 + 42 s^3 + 84 s^2 + 42 s---------------------------------------------------------------------------s^10 + 3 s^9 + 55 s^8 + 175 s^7 + 300 s^6 + 1323 s^5 + 2656 s^4 + 3715 s^3+ 7732 s^2 + 5602 s + 1400【13】c1=feedback(G5*G4,H3)=G5*G4/(1+G5*G4*H3)c2=feedback(G3,H4*G4)=G3/(1+G3*H4*G4)c3=feedback(c2*G2,H2)=c2*G2/(1+c2*G2*H2)=G3*G2/(1+G3*H4*G4+G3*G2*H1)G=feedback(G6*c1*c3*G1,H1)=G6*c1*c3*G1/(1+ G6*c1*c3*G1*H1)=G6*G5*G4*G3*G2*G1/(1+G3*H4*G4+G3*G2*H1+G5*G4*H3+G5*G4*H3*G3*H4*G4+G5*G4*H3*G3* G2*H1+G6*G5*G4*G3*G2*G1*H1)【14】>> s=tf('s');c1=feedback(0.21/(1+0.15*s),0.212*130/s);c2=feedback(c1*70/(1+0.0067*s)*(1+0.15*s)/(0.051*s),0.1/(1+0.01*s));G=(1/(1+0.01*s))*feedback(130/s*c2*1/(1+0.01*s)*(1+0.17*s)/(0.085*s),0.0044/(1+ 0.01*s))Transfer function:0.004873 s^5 + 1.036 s^4 + 61.15 s^3 + 649.7 s^2 + 1911 s--------------------------------------------------------------------------- 4.357e-014 s^10 + 2.422e-011 s^9 + 5.376e-009 s^8 + 6.188e-007 s^7+ 4.008e-005 s^6 + 0.001496 s^5 + 0.03256 s^4 + 0.4191 s^3+ 2.859 s^2 + 8.408 s 第4章线性控制系统的计算机辅助分析【1】(1) >> num=[1];den=[3 2 1 2];G=tf(num,den);eig(G)ans =-1.00000.1667 + 0.7993i0.1667 - 0.7993i分析:由以上信息可知,系统的极点有2个是在s域的右半平面的,因此系统是不稳定的(2) >> num=[1];den=[6 3 2 1 1];G=tf(num,den);eig(G)ans =-0.4949 + 0.4356i-0.4949 - 0.4356i0.2449 + 0.5688i0.2449 - 0.5688i分析:由以上信息可知,系统的极点有2个是在s域的右半平面的,因此系统是不稳定的(3) >> num=[1];den=[1 1 -3 -1 2];G=tf(num,den);eig(G)ans =-2.0000-1.00001.00001.0000分析:由以上信息可知,系统的极点有2个是在s域的右半平面的,因此系统是不稳定的(4) >> num=[3 1];den=[300 600 50 3 1];G=tf(num,den);eig(G)ans =-1.9152-0.14140.0283 + 0.1073i0.0283 - 0.1073i分析:由以上信息可知,系统的极点有2个是在s域的右半平面的,因此系统是不稳定的(5) >> s=tf('s');G=0.2*(s+2)/(s*(s+0.5)*(s+0.8)*(s+3)+0.2*(s+2));eig(G)ans =-3.0121-1.0000-0.1440 + 0.3348i-0.1440 - 0.3348i分析:由以上信息可知,系统的所有极点都在s域的左半平面,因此系统是稳定的【2】(1) >> num=[-3 2];den=[1 -0.2 -0.25 0.05];H=tf(num,den,'Ts',0.5);abs(eig(H)')ans =0.5000 0.5000 0.2000分析:由以上信息可知,所有特征根的模均小于1,因此该系统是稳定的(2) >> num=[3 -0.39 -0.09];den=[1 -1.7 1.04 0.268 0.024];H=tf(num,den,'Ts',0.5);abs(eig(H)')ans =1.1939 1.1939 0.1298 0.1298分析:由以上信息可知,由于前两个特征根的模均大于1,因此该系统是不稳定的(3) >> num=[1 3 -0.13];den=[1 1.352 0.4481 0.0153 -0.01109 -0.001043];H=tf(num,den,'Ts',0.5);abs(eig(H)')ans =0.8743 0.1520 0.2723 0.2344 0.1230分析:由以上信息可知,所有特征根的模均小于1,因此该系统是稳定的(4) >> num=[2.12 11.76 15.91];den=[1 -7.368 -20.15 102.4 80.39 -340];H=tf(num,den,'Ts',0.5,'Variable','q');abs((eig(H))')ans =8.2349 3.2115 2.3415 2.3432 2.3432分析:由以上信息可知,所有特征根的模均大于1,因此该系统是不稳定的【3】(1) >>-4-3.5-3-2.5-2-1.5-1-0.50x 10-6P ole-Zero Map Real Axis (seconds -1)I m a g i n a r y A x i s (s e c o n d s -1)A=[-0.2,0.5,0,0,0;0,-0.5,1.6,0,0;0,0,-14.3,85.8,0;0,0,0,-33.3,100;0,0,0,0,-10]; eig(A) ans =-0.2000 -0.5000 -14.3000 -33.3000 -10.0000分析:由以上信息可知,该连续线性系统的A 矩阵的所有特征根的实部均为负数,因此该系统是稳定的(2)>>F=[17,24.54,1,8,15;23.54,5,7,14,16;4,6,13.75,20,22.5589;10.8689,1.2900,19.099,…21.896,3;11,18.0898,25,2.356,9];abs(eig(F)') ans =63.7207 23.5393 12.4366 13.3231 19.7275分析:由以上信息可知,该离散系统的F 矩阵的所有特征根的模均大于1,因此该系统是不稳定的【4】>> A=[-3 1 2 1;0 -4 -2 -1;1 2 -1 1;-1 -1 1 -2]; B=[1 0;0 2;0 3;1 1];C=[1 2 2 -1;2 1 -1 2];D=[0 0;0 0];G=ss(A,B,C,D); tzero(G)pzmap(G)ans =-3.6124-1.2765结论:∴可以得到该系统的 零点为-3.6124、-1.2765分析:由以上信息可知,系统的特征根的实部均位于s 域的左半平面,因此该系统是稳定的>> s=tf('s');G=0.2*(s+2)/(s*(s+0.5)*(s+0.8)*(s+3)+0.2*(s+2)); Gc=sscanform(G,'ctrl')Go=sscanform(G,'obsv')a =x1 x2 x3 x4x1 0 1 0 0x2 0 0 1 0x3 0 0 0 1x4 -0.4 -1.4 -4.3 -4.3b =u1x1 0x2 0x3 0x4 1c =x1 x2 x3 x4y1 0.4 0.2 0 0d =u1y1 0Continuous-time state-space model.a =x1 x2 x3 x4x1 0 0 0 -0.4x2 1 0 0 -1.4x3 0 1 0 -4.3x4 0 0 1 -4.3b =u1x1 0.4x2 0.2x3 0x4 0c =x1 x2 x3 x4y1 0 0 0 1d =u1y1 0Continuous-time state-space model.(1)>> num=[18 514 5982 36380 122664 222088 185760 40320];den=[1 36 546 4536 22449 67284 118124 109584 40320];[R1,P1,K1]=residue(num,[den 0]);[R1,P1]ans =-1.2032 -8.0000-1.0472 -7.00000.2000 -6.00000.7361 -5.0000-2.8889 -4.00002.2250 -3.0000-2.0222 -2.00003.0004 -1.00001.0000 0>> [n,d]=rat(R1);sym([n./d]')ans =[ -379/315, -377/360, 1/5, 53/72, -26/9, 89/40, -91/45, 7561/2520, 1][阶跃响应的解析解]y(t)=(-379/315)*e-8t+(-377/360)*e-7t+(1/5)*e-6t+(53/72)*e-5t+(-26/9)*e-4t+(89/40)*e-3t +(-90/45)*e-2t+(7561/2520)*e-t+1(2) >> num=[18 514 5982 36380 122664 222088 185760 40320];den=[1 36 546 4536 22449 67284 118124 109584 40320];[R2,P2,K2]=residue(num,den);[R2,P2]ans =9.6254 -8.00007.3306 -7.0000-1.2000 -6.0000-3.6806 -5.000011.5556 -4.0000-6.6750 -3.00004.0444 -2.0000-3.0004 -1.0000>> [n,d]=rat(R2);sym([n./d]')ans =[ 3032/315, 887/121, -6/5, -265/72, 104/9, -267/40, 182/45, -7561/2520][脉冲响应的解析解]y(t)=(3032/315)*e-8t+(887/121)*e-7t+(-6/5)*e-6t+(-265/72)*e-5t+(104/9)*e-4t+(-267/40) *e-3t+Linear Simulation ResultsA m p l i t u d e(182/45)*e -2t +(-7561/2520)*e -t(3) >> syms t;u=sin(3*t+5); Us=laplace(u) Us =(3*cos(5) + s*sin(5))/(s^2 + 9) >> s=tf('s');Us=(3*cos(5)+s*sin(5))/(s^2+9);num=[18 514 5982 36380 122664 222088 185760 40320]; den=[1 36 546 4536 22449 67284 118124 109584 40320]; G=tf(num,den); Y=Us*G; num=Y.num{1}; den=Y.den{1};[R3,P3,K3]=residue(num,den); [R3,P3] ans =1.1237 -8.0000 0.9559 -7.0000 -0.1761 -6.0000 -0.6111 -5.00002.1663 -4.0000 -1.1973 - 0.0010i 0.0000 +3.0000i -1.1973 + 0.0010i 0.0000 - 3.0000i -1.3824 -3.0000 0.8614 -2.0000 -0.5430 -1.0000 >> [n,d]=rat(R3); sym([n./d]') ans =[109/97, 282/295, -59/335, -965/1579, 951/439, - 449/375 + (18*i)/17981, - 449/375 - (18*i)/17981, -1663/1203, 317/368, -82/151] [正弦信号时域响应的解析解]y(t)=(109/97)*e -8t+(282/295)*e -7t+(-59/335)*e -6t+(-965/1579)*e -5t+(-449/375)*e -4t+(-1663/1203)*e -3t +(317/368)*e -2t +(-82/151)*e -t-2.3947sin(3t) [输出波形]>> num=[18 514 5982 36380 122664 222088 185760 40320]; den=[1 36 546 4536 22449 67284 118124 109584 40320];G=tf(num,den); t=[1:.1:20]';u=sin(3*t+5); lsim(G,u,t);分析:由解析解可知,输出信号的稳态 部分是振荡的,并且其幅值与相位始终 在到达稳态的时候保持不变,因此 右图所示的输出波形与解析解所得的结论是一致的【10】(1)因为PI 或PID 控制器均含有Ki/s 项,这是一个对误差信号的积分环节,假设去掉这一环节,则当Kp →∞,即|e(t)|很小也会存在较大扰动,这会影响到系统的动态特性;当加入这一环节后,如果要求|e(t)|→0,则控制器输出u(t)会由Ki/s 环节得到一个常值,此时系统可以获得较好的动态特性,因此这两个控制器可以消除闭环系统的阶跃响应的稳态误差(2)不稳定系统能用PI 或PID 控制器消除稳态误差。
控制系统计算机仿真(matlab)实验五实验报告
实验五 控制系统计算机辅助设计一、实验目的学习借助MATLAB 软件进行控制系统计算机辅助设计的基本方法,具体包括超前校正器的设计,滞后校正器的设计、滞后-超前校正器的设计方法。
二、实验学时:4 学时 三、实验原理1、PID 控制器的设计PID 控制器的数学模型如公式(5-1)、(5-2)所示,它的三个特征参数是比例系数、积分时间常数(或积分系数)、微分时间常数(或微分系数),因此PID 控制器的设计就是确定PID 控制器的三个参数:比例系数、积分时间常数、微分时间常数。
Ziegler (齐格勒)和Nichols (尼克尔斯)于1942提出了PID 参数的经验整定公式。
其适用对象为带纯延迟的一节惯性环节,即:s e Ts Ks G τ-+=1)( 5-1式中,K 为比例系数、T 为惯性时间常数、τ为纯延迟时间常数。
在实际的工业过程中,大多数被控对象数学模型可近似为式(5-1)所示的带纯延迟的一阶惯性环节。
在获得被控对象的近似数学模型后,可通过时域或频域数据,根据表5-1所示的Ziegler-Nichols 经验整定公式计算PID 参数。
表控制器的参数。
假定某被控对象的单位阶跃响应如图5-4所示。
如果单位阶跃响应曲线看起来近似一条S 形曲线,则可用Ziegler-Nichols 经验整定公式,否则,该公式不适用。
由S 形曲线可获取被控对象数学模型(如公式5-1所示)的比例系数K 、时间常数T 、纯延迟时间τ。
通过表5-1所示的Ziegler-Nichols 经验整定公式进行整定。
如果被控对象不含有纯延迟环节,就不能够通过Ziegler-Nichols 时域整定公式进行PID 参数的整定,此时可求取被控对象的频域响应数据,通过表5-1 所示的Ziegler-Nichols 频域整定公式设计PID 参数。
如果被控对象含有纯延迟环节,可通过pade 命令将纯延迟环节近似为一个四阶传递函数模型,然后求取被控对象的频域响应数据,应用表5-1求取PID 控制器的参数。
Matlab进行控制系统的计算机辅助设计自动控制原理课设
自动控制原理课设报告班级: 08030902 姓名:王勋学号: 26时间:目录一、题目重述 (3)(1)设计目的 (3)(2)设计任务 (3)(3)设计步骤 (3)二、确定开环增益K (3)r三、绘制待校正系统特性曲线 (3)(1)待校正系统的频域特性曲线 (3)(2)待校正系统的时域特性曲线 (4)四、确定校正超前网络的交接频率 (5)五、选择系统的截止频率''c w和校正网络衰减因子α/1 (5)六、估算校正网络滞后部分的交接频率ω (5)a七、校验已校正系统的各项性能指标 (6)(1)动态性能指标 (6)(2)频域性能指标 (7)(3)稳定性 (8)八、校正前后系统的对比 (8)(一)时域性能对比 (8)(二)频域性能对比 (8)九、串联滞后校正可行性分析 (9)(一) 原理分析 (9)(二)可行性分析 (9)附录 (12)MATLAB代码:1、校正前系统 (12)2、校正后系统 (12)3、用matlab绘制校正前后系统的伯德图和响应曲线的对比 (12)4、用matlab求串联滞后系统的传递函数及响应、波特图 (12)参考文献 (14)一、 题目重述(1)设计目的:学习使用Matlab 进行控制系统的计算机辅助设计(2)设计任务:某单位反馈控制系统,其开环传递函数为)2)(1()(++=s s s K s G r (1-1) 试设计一个串联滞后-超前装置,使校正后系统:1、稳态速度误差系数等于101-s ;2、相位裕度045≥γ。
(3)设计步骤:1、用Matlab 编程绘制校正前后系统的伯德图、单位阶跃响应曲线,并从图中得出系统的频域及时域性能指标;2、对校正前后系统的性能进行比较,检验所设计系统性能指标是否达到要求;3、能否设计一个串联滞后校正装置,使系统达到设计要求?若能,将设计结果与串联滞后-超前设计结果进行对比,能得出什么结论?二、确定开环增益r K 由初始条件可知,系统的开环传递函数是:)2)(1()(++=s s s K s G γ,要求校正后的速度误差系数110-=s K v ,首先将传递函数化简成标准形式,可得到: )15.0)(1(2/)(++=s s s K s G γ 根据速度误差系数公式1102K K -==s γν可得到:120K -=s γ,则开环传递函数为: )15.0)(1(10)(++=s s s s G (2-1) 四、 绘制待校正系统特性曲线(1)待校正系统的频域特性曲线图3-1 待校正系统的波特图由上图可得:截止频率c w =s ,幅值裕度h=(dB),相位裕度γ= °,相位穿越频率g w = s ,幅值穿越频率p w = s 。
《MATLAB控制系统计算机辅助设计》实验指导书
自动化专业(12个学时)《控制系统计算机辅助设计》实验指导书刘璎瑛南京农业大学工学院自动化教研室2012年6月目录实验一 Matlab环境熟悉与基本运算 (3)实验二 Matlab语言程序设计 (5)实验三控制系统时、频域仿真 (6)实验四控制系统模型的建立和分析 (8)实验一、Matlab 环境熟悉与基本运算一、实验目的1、掌握 Matlab 软件使用的基本方法;2、熟悉 Matlab 的数据表示、基本运算方法;3、熟悉 Matlab 绘图命令及基本绘图控制。
二、实验原理MATLAB 环境是一种为数值计算、数据分析和图形显示服务的交互式的环境。
MATLAB 有3种窗口,即:命令窗口(The Command Window )、m-文件编辑窗口(The Edit Window )和图形窗口(The Figure Window ),而Simulink 另外又有Simulink 模型编辑窗口。
1.命令窗口(The Command Window )当MATLAB 启动后,出现的最大的窗口就是命令窗口。
用户可以在提示符“>>”后面输入交互的命令,这些命令就立即被执行。
在MATLAB 中,一连串命令可以放置在一个文件中,不必把它们直接在命令窗口内输入。
在命令窗口中输入该文件名,这一连串命令就被执行了。
因为这样的文件都是以“.m ”为后缀,所以称为m-文件。
2.m-文件编辑窗口(The Edit Window )我们可以用m-文件编辑窗口来产生新的m-文件,或者编辑已经存在的m-文件。
在MATLAB 主界面上选择菜单“File/New/M-file ”就打开了一个新的m-文件编辑窗口;选择菜单“File/Open ”就可以打开一个已经存在的m-文件,并且可以在这个窗口中编辑这个m-文件。
三、实验内容:1、矩阵运算(1)矩阵的乘法已知 A=[1 2;3 4]; B=[5 5;7 8]; 求 A^2*B(2)矩阵除法已知 A=[1 2 3;4 5 6;7 8 9]; B=[1 0 0;0 2 0;0 0 3]; 求 A\B,A/B(3)矩阵的转置及共轭转置已知 A=[5+i,2-i,1;6*i,4,9-i]; 求 A.', A'(4)使用冒号选出指定元素已知: A=[1 2 3;4 5 6;7 8 9];求 A 中第 3 列前 2 个元素;A 中所有列第 2,3 行的元素; (5)复数矩阵的生成: 生成矩阵⎥⎦⎤+⎢⎣⎡+j b j b e a j b a ea jb 43422311a ,若a1=3,a2=-2,a3=9,a4=23,b1=5,b2=3,b3=6,b4=33,求出矩阵的具体数值。
控制系统计算机辅助设计MATLAB语言与应用第三版课程设计
控制系统计算机辅助设计MATLAB语言与应用第三版课程设计介绍MATLAB是一种强大的计算机辅助设计工具,它广泛应用于控制系统设计中。
本文将介绍控制系统计算机辅助设计MATLAB语言与应用第三版课程设计,包括课程设计的目的、内容、流程和注意事项。
希望本文能帮助到正在学习或教授这门课程的同学们。
目的控制系统计算机辅助设计MATLAB语言与应用第三版是一门专门为控制系统设计方向的本科生、硕士研究生和工程技术人员定制的课程。
本课程的目的是教授控制系统设计原理、MATLAB编程基础和应用技巧、以及用MATLAB辅助设计控制系统的方法和技术。
通过本课程的学习,学生将掌握MATLAB的基本语法,了解控制系统的基本原理和常见控制器的设计方法,能够使用MATLAB辅助设计控制系统、分析和优化控制系统的性能。
内容控制系统计算机辅助设计MATLAB语言与应用第三版主要包括以下内容:•MATLAB基本语法•系统建模与仿真•PID控制器设计与调节•线性二次调节器设计•状态反馈控制器设计•频域分析与设计•非线性控制系统设计•多变量系统控制流程控制系统计算机辅助设计MATLAB语言与应用第三版课程设计的流程如下:1.阅读课程教材,掌握各个章节的主要内容和知识点。
2.按照教材上的要求完成例题和习题,巩固理论知识并增强编程能力。
3.独立设计一个控制系统,包括系统建模、控制器设计和系统仿真。
4.提交设计报告和MATLAB代码。
注意事项在控制系统计算机辅助设计MATLAB语言与应用第三版课程设计中需要注意以下几点:1.认真学习课程教材,掌握基础理论和编程技能。
2.独立思考和设计,不要复制粘贴别人的代码。
3.注意代码的规范性和清晰性,写注释并保证代码能够正常运行。
4.在控制器设计和系统仿真时,要细心谨慎,注意每一步的操作和结果的正确性。
5.撰写设计报告时,注意排版规范,附上必要的截图和解释,表述清晰明了。
结论控制系统计算机辅助设计MATLAB语言与应用第三版课程设计,是一门重要的课程,掌握好这门课程对于控制系统工程师的未来发展大有裨益。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验目录实验一:Matlab环境熟悉与基本运算(设计型)实验二:Matlab语言程序设计(设计型)实验三:控制系统模型的建立(设计型)实验四:Simulink仿真入门(验证型)实验五:控制系统时域仿真分析(设计型)实验六:Simulink环境下时域仿真实验七:控制系统根轨迹仿真分析实验八:控制系统频域仿真分析(设计型)1、矩阵运算(1)矩阵的乘法A=[1 2;3 4]; B=[5 5;7 8]; y=A^2*B y =105 115229 251(2)矩阵除法A=[1 2 3;4 5 6;7 8 9];B=[1 0 0;0 2 0;0 0 3];y1=A\B警告: 矩阵接近奇异值,或者缩放错误。
结果可能不准确。
RCOND = 1.541976e-18。
y1 =1.0e+16 *-0.4504 1.8014 -1.35110.9007 -3.6029 2.7022-0.4504 1.8014 -1.3511y2=A/B y2 =1.0000 1.0000 1.00004.0000 2.5000 2.00007.0000 4.0000 3.0000(3)矩阵的转置及共轭转置A=[5+i,2-i,1;6*i,4,9-i]; y1=A.' y1 =5.0000 + 1.0000i 0.0000 +6.0000i2.0000 - 1.0000i 4.0000 + 0.0000i1.0000 + 0.0000i 9.0000 - 1.0000iy2=A'y2 =5.0000 - 1.0000i 0.0000 -6.0000i2.0000 + 1.0000i 4.0000 + 0.0000i1.0000 + 0.0000i 9.0000 + 1.0000i实验名称:Matlab环境熟悉与基本运算(设计型)(4)使用冒号选出指定元素A=[1 2 3;4 5 6;7 8 9]; y1=A(1:2,3) y1 =36y2=A(2:3,:) y2 =4 5 67 8 9(5)复数矩阵的生成:syms a1 a2 a3 a4 b1 b2 b3 b4A=[a1+b1*j a2+b2*j;a3*exp(b3*j) a4*exp(b4*j)] A =[ a1 + b1*1i, a2 + b2*1i] [ a3*exp(b3*1i), a4*exp(b4*1i)]a1=3;a2=-2;a3=9;a4=23;b1=5;b2=3;b3=6;b4= 33;A=[a1+b1*j a2+b2*j;a3*exp(b3*j) a4*exp(b4*j)] A =3.0000 + 5.0000i -2.0000 + 3.0000i8.6415 - 2.5147i -0.3054 +22.9980i2、多项式p =1 02 4roots(p)%用roots函数求多项式的根ans =0.5898 + 1.7445i0.5898 - 1.7445i -1.1795 + 0.0000i①A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4]; P=poly(A);poly2sym(P)ans =x^4 - (69*x^3)/10 - (3863*x^2)/50 - (8613*x)/100 + 12091/20②polyval(P,20) ans =7.2778e+04③polyvalm(P,A) ans =1.0e-11 *-0.4093 -0.4849 -0.3876 -0.4519-0.5002 -0.8072 -0.6004 -0.5684-0.4704 -0.6196 -0.6480 -0.5230-0.3297 -0.4455 -0.3595 -0.36383、基本绘图命令(1)t=0:0.01:2*pi;y=cos(t);plot(t,y)运行结果如右图所示:(2)t=0:0.01:2*pi;y1=cos(t-0.25);y2=sin(t-0.5);plot(t,y1,t,y2)运行结果如右图所示:4、基本绘图控制t=0:0.01:4*pi;x1=10*sin(t);plot(t,x1,'-.b*')axis([-20 20 -20 20])grid ontitle('正弦曲线x1=10*sin(t)图') xlabel('t=0:0.01:4*pi')ylabel('x1')text(pi/2,10,'最大值')运行结果如右图所示:1、编写命令文件:计算1+2+…+n<5000 时的最大n 值;解:建立M文件,文件名称记为two1,编辑程序内容如下所示:s=0;n=1;while(s<5000),s=s+n;n=n+1;end,n保存,并在命令窗口中输入two1,运行结果如下所示:two1n =1012、编写函数文件:解:①用for循环结构编写程序:建立函数文件,文件名称记为findsum1,编辑程序内容如下所示:function [ s1 ] =findsum1( )%findsum1 用for循环编写的程序% 求2的0到30次幂的和,s表示和,i表示执行次数s1=0;for i=0:30,s1=s1+2^i;Endend 保存,并在命令窗口中输入[s1]=findsum1( ),运行结果如下所示:[s1]=findsum1( )s1 =2.1475e+09②用while循环结构编写程序:建立函数文件,文件名记为findsum2,编辑程序内容如下所示:function [ s2 ] =findsum2( )%findsum2 用while循环编写的程序% 求2的0到30次幂的和,s表示和,i表示执行次数s2=0;i=0;while(i<=30), s2=s2+2^i; i=i+1;endend实验名称:Matlab语言程序设计(设计型)保存,并在命令窗口中输入[ s2 ]=findsum2( ),运行结果如下所示:[ s2 ] =findsum2( )s2 =2.1475e+093、解:建立M文件,文件名记为two3,编辑程序内容如下:x=input('please input a character:\n','s');if x=='y'||x=='Y',disp('x=1');else if x=='n'||x=='N', disp('x=0');elsedisp('its erro');endend保存,并在命令窗口中输入two2,运行结果如下所示:two2please input a character: nx=0two2please input a character: S its errotwo2please input a character: Yx=1[]4)4()1(234)(2223++++++=s s s s s s s G ;431)(21+++=s s s s G ;123453)(23421++++++=s s s s s s s G1、在MA TLAB 环境中输入下面的系统模型 解:建立M 文件,文件名称记为thr1,编辑程序内容如下所示:统模型的分子系数num=[1,4,3,2]; %系den=conv([1,0,0],conv([1,1],[1,8,20]));%分母系数 G1=tf(num,den);%得到开环系统模型 G2=feedback(G1,1);%得到闭环系统模型[p1,z1]=pzmap(G1)%不加分号,在命令窗口可显示出开环系统的零极点 [p2,z2]=pzmap(G2)% 不加分号,在命令窗口可显示出闭环系统的零极点在命令窗口输入thr1,则得出以下结果: thr1p1 =0 0 -4.0000 + 2.0000i -4.0000 - 2.0000i -1.0000z1 =-3.2695 -0.3652 + 0.6916i -0.3652 - 0.6916ip2 =-3.9174 + 2.1007i -3.9174 - 2.1007i -1.1449 -0.0102 + 0.2972i -0.0102 - 0.2972iz2 =-3.2695 -0.3652 + 0.6916i -0.3652 - 0.6916i2、假设系统由两个模块和串联连接而成,已知且实验名称:控制系统模型的建立和分析(设计型),)1(10)(3+=s s G 控制器并定义一个PID ⎪⎭⎫ ⎝⎛++=04353.04353.0814.11148.0)(s s s G PID 解:建立M 文件,文件名称为thr2,编辑程序内容如下所示:G3=tf([1,1],[1,3,4]);%实验三的第二题,题中的G1(s )模型 G4=tf([1,3,5],[1,4,3,2,1]);% 题中的G2(s )模型G5=series(G3,G4)%用串联函数,将G3和G4模型串联,得到G5模型,在命令窗口显示出模型 Gss=ss(G5)%用ss 得到G5模型的状态方程模型在命令窗口中输入thr2,得到以下运行结果: Transfer function:s^3 + 4 s^2 + 8 s + 5------------------------------------------------- s^6 + 7 s^5 + 19 s^4 + 27 s^3 + 19 s^2 + 11 s + 4 a =x1 x2 x3 x4 x5 x6x1 -7 -2.375 -1.688 -0.5938 -0.3438 -0.25 x2 8 0 0 0 0 0 x3 0 2 0 0 0 0 x4 0 0 2 0 0 0 x5 0 0 0 1 0 0 x6 0 0 0 0 0.5 0 b =u1 x1 1 x2 0 x3 0 x4 0 x5 0 x6 0 c =x1 x2 x3 x4 x5 x6 y1 0 0 0.0625 0.125 0.25 0.3125 d =u1 y1 0Continuous-time model. 3、假设系统的对象模型为解:建立M文件,文件名称为thr3,编辑程序内容如下所示:s=tf('s');%拉氏算子G6=10/((s+1)^3);%实验三第3题的对象模型Gpid=0.48*(1+1/(1.814*s)+0.4353*s/0.04353);%PID控制器G7=series(G6,Gpid);%控制器与对象模型进行串联得到的开环系统模型G8=feedback(G7,1)%闭环系统的传递函数模型[z3,p3,k3]=zpkdata(G7,'v')%得到开环系统的零极点及增益[z4,p4,k4]=zpkdata(G8,'v') %得到闭环系统的零极点及增益在命令窗口中输入thr3,得到以下运行结果Transfer function:3.79 s^2 + 0.379 s + 0.2089------------------------------------------------------- 0.07896 s^4 + 0.2369 s^3 + 4.027 s^2 + 0.458 s + 0.2089z3 =-0.0500 + 0.2294i -0.0500 - 0.2294ip3 =-1.0000 -1.0000 + 0.0000i -1.0000 - 0.0000ik3 =48 z4 =-0.0500 + 0.2294i -0.0500 - 0.2294ip4 =-1.4442 + 6.9670i -1.4442 - 6.9670i -0.0558 + 0.2217i -0.0558 - 0.2217ik4 =484、解:三种典型模型建模函数:①传递函数模型:G=tf(num,den);②零极点增益模型:G=zpk(z,p,k);③状态空间模型:G=ss(A,B,C,D);各种模型之间的转换语句:[A,B,C,D]=tf2ss(num,den); [num,den]=ss2tf(A,B,C,D,iu); [z,p,k]=tf2zp(num,den); [num,den]=zp2tf(z,p,k); [A,B,C,D]=zp2ss(z,p,k); [z,p,k]=ss2zp(A,B,C,D,i)1、搭建下图所示控制系统模型,自己设计输入正弦曲线参数,观察示波器及输出数据。