控制系统仿真_薛定宇第九章_分数阶系统的分析与设计

合集下载

东北大学薛定宇 控制系统及计算机仿真chap 9

东北大学薛定宇 控制系统及计算机仿真chap 9

微积分计算:glfdiff()、fode_sol()

线性分数阶系统分析与设计
类的建立:@fotf;fotf.m、display.m 重载函数(FOTF互连)支持 *、+、feedback()


时域与频域分析:重载函数尽量控制系统工具箱 函数同名,且调用方式尽可能保持一致

step(), lsim(), bode(), nyquist(), nichols(), isstable(), norm()
国家级精品课程
控制系统仿真与CAD
第十一章 分数阶系统的分析与设计
东北大学信息学院 薛定宇
第十一章 分数阶系统的分析与设计


基于传统微积分理论的控制都是整数阶控制 误用的词:分数阶更确切的名称是非整数阶 本章主要内容
分数阶微积分的定义与计算 分数阶线性微分方程的求解 分数阶传递函数模型 —— FOTF 类
16/20

例11-13 分数阶微分方程 传递函数


输入信号

检验:用步长0.0005
控制系统仿真与CAD 国家级精品课程
2015/12/10
17/20
11.5 分数阶系统的设计

分数阶PID控制器

Igor Podlubny

分数阶对象最优分数阶PID控制器设计界面
控制系统仿真与CAD 国家级精品课程

微分、积分

扩展:统一微积分
控制系统仿真与CAD 国家级精品课程
2015/12/10
3/20
分数阶微积分的历史

法国数学家Guillaume Franç ois Antoine L’Hô pital

分数阶系统的分数阶PID控制器设计

分数阶系统的分数阶PID控制器设计

分数阶系统的分数阶PID控制器设计
薛定宇;赵春娜
【期刊名称】《控制理论与应用》
【年(卷),期】2007(24)5
【摘要】对于一些复杂的实际系统,用分数阶微积分方程建模要比整数阶模型更简洁准确.分数阶微积分也为描述动态过程提供了一个很好的工具.对于分数阶模型需要提出相应的分数阶控制器来提高控制效果.本文针对分数阶受控对象,提出了一种分数阶PID控制器的设计方法.并用具体实例演示了对于分数阶系统模型,采用分数阶控制器比采用古典的PID控制器取得更好的效果.
【总页数】6页(P771-776)
【作者】薛定宇;赵春娜
【作者单位】东北大学,信息科学与工程学院,辽宁,沈阳,110004;东北大学,信息科学与工程学院,辽宁,沈阳,110004
【正文语种】中文
【中图分类】TP273
【相关文献】
1.一种分数阶系统的内模控制器设计方法 [J], 张博;赵志诚;王元元
2.分数阶系统的自适应PID控制器参数优化 [J], 张艳珠;葛筝;王艳梅
3.带有传感器故障的不确定分数阶系统观测器设计 [J], 张雪峰;刘博豪
4.含有关联噪声的非线性分数阶系统的扩展卡尔曼滤波器设计 [J], 高哲; 陈小姣
5.一类分数阶系统的分析及控制器设计 [J], 王晓燕;王东风;韩璞
因版权原因,仅展示原文概要,查看原文内容请购买。

分数阶微积分的分数阶控制系统仿真研究的毕业论文

分数阶微积分的分数阶控制系统仿真研究的毕业论文
3.4 本章小结..................................................................................................................31
4分数阶控制系统的仿真..............................................................................................32
1.3本文研究容.............................................................................................................3
2数学理论基础....................................................................................................... ........3
2.1数学基本函数.............................................................................................................4
2.2 分数阶微积分的定义................................................................................................8
4.1整数阶控制系统仿真实例.......................................................................................32

控制系统计算机辅助设计-MATLAB语言和应用

控制系统计算机辅助设计-MATLAB语言和应用

2018/10/16
控制系统计算机辅助设计-MATLAB语言与应用
11

我国较有影响的控制系统仿真与计算机辅助设计 成果是中科院系统科学研究所韩京清研究员等主 持的国家自然科学基金重大项目开发的CADCSC 软件。 清华大学孙增圻、袁曾任教授的著作和程序。 以及北京化工学院吴重光、沈成林教授的著作和 程序等。
控制系统计算机辅助设计-MATLAB语言与应用
13


2018/10/16

系统仿真领域有很多自己的特性,如果能选择一种 能反映当今系统仿真领域最高水平,也是最实用的 软件或语言介绍仿真技术,使得读者能直接采用该 语言解决自己的问题,将是很有意义的。
实践证明,MATLAB 就是这样的仿真软件,由于 它本身卓越的功能,已经使得它成为自动控制、航 空航天、汽车设计等诸多领域仿真的首选语言。 所以在本书中将介绍基于 MATLAB/Simulink的控 制系统仿真与设计方法及其应用。
控制系统计算机辅助设计-MATLAB语言与应用
2
2018/10/16
1.1 控制系统计算机辅助设计 技术的发展综述

早期的控制系统设计可以由纸笔等工具容易地计算 出来,如 Ziegler 与 Nichols 于1942年提出的 PID 经 验公式就可以十分容易地设计出来。
随着控制理论的迅速发展,光利用纸笔以及计算器 等简单的运算工具难以达到预期的效果,加之在计 算机领域取得了迅速的发展,于是很自然地出现了 控制系统的计算机辅助设计 (computer-aided control system design , CACSD)方法。
控制系统计算机辅助设计-MATLAB语言与应用
18

2018/10/16

《控制系统数字仿真与cad》第2章控制系统的数学模型及其转换

《控制系统数字仿真与cad》第2章控制系统的数学模型及其转换
j 1 n i 1
(s z j )
m
式中 zj(j=1,2,…,m) 和pi(i=1,2,…,n) 称为 系统的零点和极点,它们既可以为实数又可 以为复数,而K称为系统的增益。 在MATLAB下零极点模型可以由增益 K和零、 极点所构成的列向量唯一确定出来。即 Z=[z1;z2;…;zm]; P=[p1;p2;…;pn];K=K

例2-3 对于单输入多输出系统 3s 2 s 3 2s 5 G ( s) 3 3s 5s 2 2s 1

解 则可将其用下列MATLAB语句表示 >>num=[0 0 3 2;1 0 2 5];den=[3 5 2 1]; Printsys(num,den) 执行结果为:

对于单输入多输出系统,列向量P中 储存为系统的极点;零点储存在矩阵Z的 列中, Z的列数等于输出向量的维数,每 列对应一个输出,对应增益则在列向量K 中。 因此,系统的零极点模型在MATLAB命 令中可用一个增益向量、零点向量和极 点向量来唯一确定。

【例2-4】已知单入双出系统的零极点模型
执行结果为 num/den= 6s ^3 12s ^ 2 6s 10
s ^ 4 2s ^3 3s ^ 2 s 1
其中MATLAB的printsys( )函数可按特殊格式打印出 状态空间和传递函数表示的系统。 printsys(num,den,‘s’) %显示∕打印连续系统的传 递函数,默认方式; printsys(num,den,‘z’) %显示∕打印离散系统的脉 冲传递函数;
2.1 线性系统数学模型的基本描述方法
根据系统数学描述方法的不同,系统可建立不 同的数学模型。 2.1.1 传递函数 单入单出系统可用高阶微分方程来表示,其一 般形式为:

分数阶控制理论研究

分数阶控制理论研究
针对不同的被控对象,设计出了多种分数阶控制 器,如分数阶PID控制器、分数阶滑模控制器等, 取得了良好的控制效果。
基于MATLAB/Simulink的分数阶控制系统的设计 和仿真平台开发成功,为分数阶控制系统的设计 和应用提供了有效的工具。
针对分数阶控制系统的参数整定问题,提出了一 些有效的参数整定方法,如基于粒子群优化算法 、遗传算法等。
根据不同的分类标准,分数阶控制系统可以分为不同的类型。例如,可以根据分数阶导数的阶数和特征进行分 类,也可以根据系统的结构和功能进行分类。
分数阶控制系统的稳定性分析
分数阶控制系统的稳定性条

对于一个分数阶控制系统,需要满足一定的条件才能 保证系统的稳定性。这些条件包括分数阶导数的性质 、控制器的设计、以及系统的参数等。
加强与国际学术界的交流与 合作,推动我国在分数阶控 制领域的学术研究与应用实 践的发展。
THANKS
谢谢您的观看
电力系统的故障诊断
利用分数阶控制器,可以实现对电力系统的故障诊断和 预警,有效预防和应对各种电力系统故障。
电力系统的优化运行
分数阶控制器可以优化电力系统的运行,例如调整发电 机的励磁控制,提高电力系统的效率和经济性。
05
结论与展望
研究成果总结
分数阶控制系统的稳定性和控制性能得到了充分 验证,实验结果表明分数阶控制器可以有效地提 高系统的鲁棒性和响应速度。
基于时域的鲁棒性分析
利用时域方法分析分数阶控制系统在时域上的鲁棒性,通过状态 空间模型来分析系统的鲁棒性。
基于LMI的鲁棒性分析
利用线性矩阵不等式(LMI)方法,分析并设计具有鲁棒性的分数 阶控制系统。
04
分数阶控制在工程中的应用
分数阶控制在机器人控制系统中的应用

分数阶PIλDμ控制器的设计方法——极点阶数搜索改进法

分数阶PIλDμ控制器的设计方法——极点阶数搜索改进法

分数阶PIλDμ控制器的设计方法——极点阶数搜索改进法严慧
【期刊名称】《机械设计与制造工程》
【年(卷),期】2010(039)017
【摘要】基于分数阶被控系统提出了分数阶PIλDμ控制器,该控制器将传统整数阶PID控制器的微分与积分阶数扩展到分数,增加了2个参数μ和λ.相比整数阶PID 控制器,分数阶PIλDμ控制器的设计更加灵活,但设计过程较复杂.在极点阶数搜索法的基础上,提出了分数阶PIλDμ控制器设计的改进方法,其基本原理是,首先估计比例参数KP,其次搜索一对使系统时域性能较好的极点,然后根据时域指标搜索较好的μ,λ并计算出KI,KD,最终设计出合适的分数阶PIλDμ控制器.仿真结果证实,与极点阶数搜索法相比,它的改进法设计出的分数阶PIλDμ控制器能够更好地调节系统,系统响应能够达到更高的时域指标,并且具备很好的动、稳态性能.
【总页数】5页(P44-48)
【作者】严慧
【作者单位】金陵科技学院,信息技术学院,江苏,南京,211169
【正文语种】中文
【中图分类】TP273
【相关文献】
1.控制系统的分数阶建模及分数阶Piλ Dμ控制器设计 [J], 邓立为;宋申民;庞慧
2.一类采用分数阶PIλ控制器的分数阶系统可镇定性判定准则 [J], 高哲
3.分数阶PIλDμ控制器阶数变化对控制性能的影响 [J], 严慧
4.分数阶PIλDμ控制器的设计方法——极点阶数搜索改进法 [J], 严慧
5.分数阶PI^λD^μ控制器参数设计方法——极点阶数搜索法 [J], 严慧;于盛林;李远禄
因版权原因,仅展示原文概要,查看原文内容请购买。

分数阶控制系统

分数阶控制系统
扩展频率分析包括三部分内容 , 第一是分数阶 代数方程的解性质 , 它从复域主黎曼面形变的角度 给出方程具有惟一有效解的充分必要条件 , 这既能 解释构成传递函数基本分数环节的形成依据 , 也提 供了分数系统零极点的定义形式 , 它的主黎曼面有 效解与分数微分方程特征根相统一 , 是联系分数系 统扩展频率分析与时域分析的纽带 。第二是分数系 统扩展频率特性 , 由扩展 Bode 图与 Nyquist 曲线表 示出 , 因为其过程可逆 , 故也可由此对分数阶系统 进行经典频域辨识 。第三是稳定性分析 , 扩展对数 频率判据与 Nyquist 判据分析范围到整个正负频率 域内 , 扩展后的判据将试用于不受阶次复杂性影响 的一般分数系统[7 ,8] 。
(7)
3) 状态空间描述[4] 考虑 ( n , m) 次的分数微分
方程 :
[ DnΠm + a1 D ( n - 1)Πm + …+ an D0 ] x ( t) ≡0
(8)
x (0) = [ x (0) , x′(0) , …, x ( t) (0) ]T
(9)
式中 , m , n 分别为正整数和非负整数 , 且 m 表示
D1Πm x ( t) = Ax ( t)
(11)
x (0) = [ x1 (0) , x2 (0) , …, xn (0) ] T
(12)
式中 , x ( t) ∈Rn , A ∈Rn ×n 。
x ( t) = ( x1 ( t) , x2 ( t) , …, xn ( t) ) T
(13)
扩展频率分析包括三部分内容第一是分数阶代数方程的解性质它从复域主黎曼面形变的角度给出方程具有惟一有效解的充分必要条件这既能解释构成传递函数基本分数环节的形成依据供了分数系统零极点的定义形式它的主黎曼面有效解与分数微分方程特征根相统一是联系分数系统扩展频率分析与时域分析的纽带

面向鲁棒运动控制系统的分数阶PID控制器设计自整定及实验研究博士学位论文

面向鲁棒运动控制系统的分数阶PID控制器设计自整定及实验研究博士学位论文

博士学位论文面向鲁棒运动控制系统的分数阶PID 控制器设计、自整定及实验研究Fractional Order PID controller Synthesis, Auto-tuning and Experiment Studies for Robust Motion Control SystemsbyYongshun JinB. E. (Hunan University) 2004M. S. (Hunan University) 2007A dissertation submitted in partial fulffilement of theRequirements for the degree ofDoctor of EngineeringinElectrical Engineeringto theGraduate SchoolofHunan UniversitySupervisorProfessor Yao JiangangNovember, 2010湖南大学学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。

除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。

对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。

本人完全意识到本声明的法律后果由本人承担。

作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。

本人授权湖南大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

本学位论文属于1、保密□,在年解密后适用本授权书。

2、不保密 。

(请在以上相应方框内打“√”)作者签名:日期:年月日导师签名:日期:年月日摘要随着分数阶微积分理论的发展,越来越多的人关注这一领域的实际应用问题。

分数阶PID控制器的设计及仿真

分数阶PID控制器的设计及仿真

分数阶PID控制器的设计及仿真王思明;王欢【摘要】随着分数阶微积分理论的不断发展,PID控制器微积分算子的阶数已经从单纯的整数推向了分数,甚至是复数,所得到的分数阶PID控制器的控制效果也优于传统的PID控制器.基于分数阶微积分理论,采用Oustafod滤波器对分数阶微积分算子进行逼近,得出传递函数,再采用Simulink的子系统封装功能,设计出分数阶PID控制器.通过对控制对象的仿真表明,分数阶PID控制器的控制效果更佳.【期刊名称】《现代防御技术》【年(卷),期】2015(043)006【总页数】5页(P204-208)【关键词】分数阶PID;Oustafod滤波器;封装【作者】王思明;王欢【作者单位】兰州交通大学自动化与电气工程学院,甘肃兰州730070;兰州交通大学自动化与电气工程学院,甘肃兰州730070【正文语种】中文【中图分类】TM571;TP391.9☞仿真技术传统的PID控制器以其结构简单、稳定性强、参数调整便捷等原因,成了众多工业过程的首选,为人类创造了极大价值[1]。

随着控制对象结构的日趋复杂、控制精度的不断提高,传统的PID控制方法已不能完全满足要求。

分数阶PID控制是在传统的PID控制的基础上推广而来,它不但继承了传统PID控制的所有优点,又有传统PID控制所不具备的长处;在控制器的设计上,它仅多了2个可调参数,却能取得更好的控制效果。

因此用它来代替传统的PID控制方法是十分有意义的[2]。

分数阶微积分的基本操作算子为,其中a和t是操作算子的上下限,α为微积分阶次,其定义如下[3-5]:定义1 对于任意的实数m,记m的整数部分为[m],则函数f(t)的α阶微积分为[5-7]定义2 对于任意的实数m-1<α<m,m∈N,则RL微分定义为[8]分数阶积分的RL定义为通过对式(4),(5)进行分析,可将其统一到一个表达式中:定义3 Caputo分数阶微分定义为[9]Caputo分数阶积分定义为将式(7),(8)统一到一个表达式中,结果如下:对于显函数的微积分运算,可以通过分数阶微积分的定义直接求得,可对于隐函数而言,用定义求解就显示无能为力,因此需要采用某种合理的方法,直接由信号的采样点来近似信号的分数阶微积分[5]。

控制系统仿真_薛定宇第一章_控制系统计算机辅助设计概述

控制系统仿真_薛定宇第一章_控制系统计算机辅助设计概述



PID控制器的自整定方法 智能控制
自适应控制:在线辨识和调整控制器参数 模糊逻辑控制器、仿人控制、神经网络控制等


分数阶控制:非整数阶微积分在控制中应用
控制系统仿真与CAD 国家级精品课程
2014-12-31
16/17
1.5 MATLAB版本选择及学习方法

2008a的符号运算工具箱是目前的最高水平
12/17



1999 年MATLAB 5.3,全新最优化工具箱和 Simulink 3 2000 年,MATLAB 6.0,在操作界面上有了很大改观,抛 弃了LINPACK、EISPACK,改用更具优势的 LAPACK 软 件包和 FFTW 系统,速度变得更快,数值性能也更好 2004 年,MATLAB 7.0 版:多领域物理建模仿真策略 MathWorks 公司每年在 3 月和 9 月分别推出 a 版和 b 版, 2008a的符号运算功能达到顶峰 2012年9月,MATLAB 2012b暨8.0版,全新的界面,强大 的仿真功能、更多的工具箱




利用底层语言开发专用 Melsa & Jones:McGraw-Hill,1973 Karl Astrom: INTRAC(IDPAC、MODPAC、SYNPAC、 POLPAC 等,及仿真语言 SIMNON) CLADP(Cambridge linear analysis and design programs) NASA Armstrong:ORACLS(optimal regulator algorithms for the control of linear systems) 孙增圻、袁曾任:清华大学出版社,1988及早期讲义 韩京清等:自然科学基金重大项目:CACSDC

《控制系统计算机辅助设计:MATLAB语言与应用(第2版)》薛定宇_课后习题答案

《控制系统计算机辅助设计:MATLAB语言与应用(第2版)》薛定宇_课后习题答案

第1章节制系统计算机辅助设计概述之袁州冬雪创作第2章 MATLAB语言程序设计基础第3章线性节制系统的数学模子第4章线性节制系统的计算机辅助分析第5章 Simulink在系统仿真中的应用第6章节制系统计算机辅助设计第1章节制系统计算机辅助设计概述【1】已阅,略已阅,略【3】已经掌握help饬令和Help菜单的使用方法【4】区别:MATLAB语言实现矩阵的运算非常简单迅速,且效率很高,而用其他通用语言则否则,很多通用语言所实现的矩阵运算都是对矩阵维数具有一点限制的,即使限制稍小的,但凡维数过大,就会造成运算上的溢出出错或者运算出错,甚至无法处理数据的负面成果【5】【8】(1)输入激励为正弦信号(2)输入激励为脉冲摹拟信号(3)输入激励为时钟信号(4)输入激励为随机信号(5)输入激励为阶跃信号δδδ结论:随着非线性环节的死区增大,阶跃响应曲线的范围逐渐被压缩,可以想象当死区δ足够大时,将不再会有任何响应发生.所以可以得到结论,在该非线性系统中,死区的大小可以改变阶跃响应的幅值和超调量.死区越大,幅值、超调量将越小,而调整时间几乎不受其影响第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 =>> 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 =【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【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 2931 37 41Columns 14 through 2643 47 53 59 61 67 71 73 79 83 89 97 101Columns 27 through 39103 107 109 113 127 131 137 139 149 151 157 163 167Columns 40 through 52173 179 181 191 193 197 199 211 223 227 229 233 239Columns 53 through 65241 251 257 263 269 271 277 281 283 293 307 311 313Columns 66 through 78317 331 337 347 349 353 359 367 373 379 383 389 397Columns 79 through 91401 409 419 421 431 433 439 443 449 457 461 463 467Columns 92 through 104479 487 491 499 503 509 521 523 541 547 557 563 569Columns 105 through 117571 577 587 593 599 601 607 613 617 619 631 641 643Columns 118 through 130647 653 659 661 673 677 683 691 701 709 719 727 733Columns 131 through 143739 743 751 757 761 769 773 787 797 809 811 821 823Columns 144 through 156827 829 839 853 857 859 863 877 881 883 887 907 911Columns 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】【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;【15】(1) >> t=-2*pi:0.01:2*pi;r=1.0013*t.^2;polar(t,r);axis('square')(2) >> t=-2*pi:0.001:2*pi;r=cos(7*t/2);polar(t,r);axis('square')(3)>> t=-2*pi:0.001:2*pi;r=sin(t)./t;polar(t,r);axis('square')(4) >> t=-2*pi:0.001:2*pi;r=1-cos(7*t).^3;polar(t,r);axis('square')【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);z=sin(x.*y);mesh(x,y,z);>> contour3(x,y,z,50);第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:---------------------------------------【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)【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:--------------------------------------------------------------(2)状态方程的尺度型实现>> G1=ss(G1)a =x1 x2 x3 x4 x5x2 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 x5d =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.0000分析:由以上信息可知,系统的极点有2个是在s域的右半平面的,因此系统是不稳定的(2) >> num=[1];den=[6 3 2 1 1];G=tf(num,den);eig(G)ans =分析:由以上信息可知,系统的极点有2个是在s域的右半平面的,因此系统是不稳定的(3)>> num=[1];den=[1 1 -3 -1 2];G=tf(num,den);eig(G)ans =分析:由以上信息可知,系统的极点有2个是在s域的右半平面的,因此系统是不稳定的(4) >> num=[3 1];den=[300 600 50 3 1];G=tf(num,den);eig(G)ans =-1.9152-0.1414分析:由以上信息可知,系统的极点有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分析:由以上信息可知,系统的所有极点都在s域的左半平面,因此系统是稳定的【2】(1) >> num=[-3 2];den=[1 -0.2 -0.25 0.05];H=tf(num,den,'Ts',);abs(eig(H)')ans =分析:由以上信息可知,所有特征根的模均小于1,因此该系统是稳定的(2) >> num=[3 -0.39 -0.09];den=[1 -1.7 1.04 0.268 0.024];H=tf(num,den,'Ts',);abs(eig(H)')ans =分析:由以上信息可知,由于前两个特征根的模均大于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 =分析:由以上信息可知,所有特征根的模均小于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 =分析:由以上信息可知,所有特征根的模均大于1,因此该系统是不稳定的【3】(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 =分析:由以上信息可知,该持续线性系统的A矩阵的所有特征根的实-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)部均为负数,因此该系统是稳定的(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 =分析:由以上信息可知,该团圆系统的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 =【5】>> s=tf('s'); Go=sscanform(G,'obsv') a =x1 x2 x3 x4x1 0 1 0 0x2 0 0 1 0x3 0 0 0 1b =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 x4b =u1x3 0x4 0c =x1 x2 x3 x4y1 0 0 0 1d =u1y1 0Continuous-time state-space model.【9】(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.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 =>> [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+(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.00000.9559 -7.0000-0.1761 -6.0000-0.6111 -5.00002.1663 -4.0000。

控制系统计算机辅助设计_MATLAB语言与应用(第2版)薛定宇_课后复习题答案

控制系统计算机辅助设计_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 控制器消除稳态误差。

控制系统仿真.

控制系统仿真.

PSPICE、ORCAD:通用的电子电路仿真软件,
四、仿真技术的应用
1、航空与航天工业 2、电力工业
3、原子能工业 4、石油、化工及冶金工业 5、非工程领域 医学 社会学 宏观经济与商业策略的研究
五而且 设备可以重复使用。 2、安全,采用仿真实验可以有效降低危险程度,对 系统的研究起到保障作用。 3、快捷,提高设计效率:比如电路设计,服装设计 等等。 4、具有优化设计和预测的特殊功能
MATLAB语言 与 控制系统仿真
二00四年十二月
课程任务
通过本课程的学习,使学生初步掌握当前 流行的MATLAB语言的基础知识,结合所学课 程《自动控制原理》,学会运用MATLAB语言 进行控制系统设计与分析的基本技能,为今后 从事毕业设计、工程设计、产品开发和科学研 究打下较好的基础。
教学内容与学时安排
二、仿真的分类
按模型分类 1、物理仿真:采用物理模型,有实物介入! 具有效果逼真,精度高等优点,但造价高或耗时长, 大多在一些特殊场合下采用(如导弹、卫星一类飞 行器的动态仿真,发电站综合调度仿真与培训系统 等),具有实时性、在线的特点。 2、数学仿真:采用数学模型 在计算机上进行,具有非实时性、离线的特点,经 济、快速、实用。
三、常见的几种仿真软件
适合于元件级仿真。 SYSTEM VIEW:系统级的电路动态仿真软 件 MATLAB:具有强大的数值计算能力,包含 各种工具箱,其程序不能脱离MATLAB环境 而运行,所以严格讲,MATLAB不是一种计 算机语言,而是一种高级的科学分析与计算软 件。 SIMULINK:是MATLAB附带的基于模型化 图形组态的动态仿真环境。
按计算机类型分类
1、模拟仿真:采用数学模型,在模拟计算机 上进行的实验研究。50年代 2、数字仿真:采用数学模型,在数字计算机 上借助于数值计算方法所进行的仿真实验。 60年代

基于分数阶控制的液压加载系统设计与仿真

基于分数阶控制的液压加载系统设计与仿真

基于分数阶控制的液压加载系统设计与仿真麦云飞;童骏民【摘要】针对车辆转向系统的液压力加载测试系统,建立传递函数模型.用时间乘以误差绝对值积分的ITAE性能指标作为评价准则,通过Matlab计算出适用于系统的最优PID控制器控制参数.使用FOMCON工具包创建分数阶PP Dμ控制器.对积分和微分环节选取分数阶参数阶次λ和μ,通过调节微分和积分环节的阶次观察对分数阶控制器的影响.通过控制性能对比,发现阶次取值在0~1范围内,积分阶次对响应的影响要比微分阶次的影响更大.固定最优PID参数,求得λ和μ最优值.仿真表明,其精度满足技术要求,分析系统伯德图可知系统工作稳定,冗余储备高.【期刊名称】《上海理工大学学报》【年(卷),期】2015(037)006【总页数】5页(P589-593)【关键词】液压控制;分数阶PID;最优PID【作者】麦云飞;童骏民【作者单位】上海理工大学机械工程学院,上海200093;上海理工大学机械工程学院,上海200093【正文语种】中文【中图分类】TP273转向器疲劳试验台是用于模拟汽车转向时,所受地面摩擦等负载的模拟加载平台.测试台通过在实验条件下再现转向器所受负载,考核汽车转向系统的性能指标和使用疲劳寿命.本系统是被动式电液力控制系统,承载对象主动运动,力指令信号为实现运动负载的函数,加载系统在跟随其运动的同时进行加载[1].系统需要同时控制承载对象和模拟负载,同时要实现力信号的曲线加载.传统的PID控制器是工业控制中最常用的,而将分数阶控制理论和PID控制器整定理论相结合,这是一个新的研究方向.Podlubny[2]在1999年提出了分数阶PID控制器,记为PIλDμ,其中添加了积分和微分的阶次λ和μ作为两个可调参数,当λ和μ取0或1时,是特定情况的传统PID控制器.分数阶控制点的意义是对经典的整数阶PID控制的扩展,平面上任意点都可以选取,使得结构更灵活,从而得到鲁棒性更好的结果.随着计算机辅助计算的帮助,工程师和科研人员开始在漫射光谱分析、电介质与黏弹性、自动控制领域中应用分数阶微积分理论解决问题.分数阶微积分对于复杂、成比例的过程和事件提供了更完善的数学模型.如今,最常用的定义是Riemann-Liouville定义和Grunwald-Letnikov定义,这些定义在工程问题中的应用也经历了很长时间.根据研究,分数阶PIλDμ对其控制参数及被控参数的变化不敏感.当控制器的参数整定完成后,若在一定范围内变化,分数阶控制器仍能有效的控制,不必重新整定控制参数,并具有基本相同的控制效果,因而具有更强的鲁棒性[2].转向器疲劳试验台的结构原理如图1所示,其中包含两部分:转向器系统和模拟摩擦等负载的加载系统.本文针对负载模拟力加载进行建模与仿真研究.图中:Fc为力传感器测得的液压缸驱动力,N;Fg为液压缸输出力,N;FPM为转向器受到的驱动力,N;Ur为输入信号,V;UF为反馈信号,V;Y2为机械干扰量,m;Y1为传感器末端位移量,m;m为转向器折算质量,kg;Yp为活塞在Fg作用下位移,m;KF=Kε/Ke为力传感器反馈系数,V/N;Kε为传感器变形量电量转换系数,V/m;Ke为力传感器刚度,N/m;K为折算刚度,N/m.图1中右侧是加载液压缸,模拟地面摩擦等负载.从右侧上部开始,控制器通过伺服阀控制加载液压缸对左侧承载对象加载,力传感器将加载液压缸的输出力Fc变成电信号UF反馈给控制器.控制电压与反馈电压的误差信号经控制器送给伺服放大器,被放大后并转换成电流信号输出到伺服阀,使伺服阀输出相应的流量,阀芯移动位移.控制伺服直线液压缸的活塞带动被测工件按输入的信号运动,实现直线运动,负载运动时它的被控量力经由传感器检测并转换成电压信号,与伺服控制器的输入电压信号比较,修正误差[3].图1左侧是转向系统,质量合并简化为轴向方向的一个质量m,通过齿轮齿条传递至转向管柱;左上是一个阀控液压马达,通过输入信号,控制液压马达运动.本系统加载的频率约为50 Hz,只考虑滑阀的传递函数.系统选用MOOG G761系列的双喷嘴挡板式四通滑阀,图2显示了在不同流量情况下滑阀的典型阶跃响应曲线.横坐标为响应时间t,纵坐标为控制流量与额定流量的比值.流量为4,10,19 L/min时,响应曲线相似.伺服阀系统wv的拉普拉斯传递函数为式中:ωv为伺服阀固有频率,rad/s;ξv为伺服阀阻尼比,通常为0.5~0.7;s为拉普拉斯复变量.本文讨论的转向器模拟加载系统的主要控制参数中,部分参数由机械和液压系统设计获得,部分参数由现场调试实测获得,主要参数说明如参考文献[5]中表2所示.其中,油缸有效面积A=76.576×10-5m2,油缸容积Vt=15.315×10-5m3,由此可计算出以下参数为T1=Vt/4βeKce=0.113 s式中:Kce为总流量-压力系数;T1为时间常数;Kc为流量-压力系数,m3/(s·Pa);Ctc 为液压缸总泄漏系数,m3/(s·Pa);βe为液压油弹性模数,N/m3.忽略加载系统的活塞质量,mp≈0,摩擦阻尼Bc≈0,假设力传感器刚度Ke很大,可认为变形量ε=0,近似可得加载系统活塞位移量Y1≈Yp=Y.液压缸加载系统可等效为由转向器质量m和折算刚度K构成的单“质量-弹簧”负载,系统属于单自由度加载系统[6].转向器受到的驱动力的拉普拉斯变换为由式(2)和式(3)得假设流量伺服阀在加载系统中可近似为一阶系统,做出各元件的结构图,依次将各元件的结构图连接起来,得到转向器试验机加载系统方块图,如图3所示.在给定量Ur和转向器的机械干扰量Y2同时作用下的输出量Fc为式中:Ka为放大器增益,A/V;Kq为阀在稳态工作点附近的流量增益系数,m3/(s·A).将式(5)整理后表达式为式中:s.在转向器电液力负载模拟器中,系统的干扰就是转向器的阻力.根据结构不变性原理[7],可以通过补偿器消除Y2带来的干扰,而以活塞速度vy作为物理观测量.图4(a)和4(b)表示了添加补偿器和消除补偿器后的简化过程方框图[8].Wv(s)中参数不变情况下,完全可以补偿两个通道的影响.因为本系统加载的频率超过50 Hz,所以近似认为完全补偿,使得位移Y2对传递函数无干扰影响.设置补偿器后,即可由图4(b)简化方块图求得转向器模拟加载系统的开环传递函数式中,Kv1为伺服阀增益,可求得其闭环传递函数为利用Matlab对系统进行仿真,通过主导极点分析去除高阶次因子,用三阶环节近似表达过程函数.最后简化的传递函数表达式为最优控制即是满足特定具体条件,完成某个控制任务,使选定指标最小或最大的控制.目标函数可以是一个经过设计的性能指标.对于伺服控制系统,输出信号应该更快更准确地对输入信号进行跟踪.常用的性能指标是积分型指标,如绝对误差积分准则IAE、平均误差积分准则ISE、时间乘平方误差积分准则ISTE等,或自行定义(人为引入加权函数突出其他性能指标)[9].在此将使用时间乘绝对误差积分准则ITAE作为评价准则:dt.根据定义,响应和误差积分具有相同权重,按此准则设计的控制系统,可使调节时间缩短,瞬态响应的振荡性小,且对参数具有良好的选择性.通过Matlab Simulink模型仿真,构建如图5所示的闭环系统模型.模型内包含了评价准则当输出1输出为最小时,所得参数为最优解.其中,PID的参数用变量而非具体数值表示.通过自诊定寻优,求得整数阶最优的KP,KI,KD参数.KP=4.776 1,KI=79.111 3,KD=-0.006.图6为最优控制参数下,整数阶PID的最佳响应曲线。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微积分计算:glfdiff()、fode_sol()
线性分数阶系统分析与设计
类的建立:@fotf;fotf.m、display.m 重载函数(FOTF互连)支持 *、+、feedback() 时域与频域分析:重载函数尽量控制系统工具箱
函数同名,且调用方式尽可能保持一致
step(), lsim(), bode(), nyquist(), nichols(), isstable(), norm()
控制系统仿真与CAD 国家级精品课程
2019/8/22
13/20
例11-7 分数阶PID控制器 例11-8
例11-9 反馈系统
控制系统仿真与CAD 国家级精品课程
2019/8/22
14/20
11.3.2 分数阶线性系统分析
稳定性分析
基阶 稳定区域 重载函数编写
isstable.m
其他内容:解析解法、成比例阶系统、微分算子 近似,基于框图的分数阶非线性系统仿真方法
控制系统仿真与CAD 国家级精品课程
2019/8/22
20/20
输入信号单位阶跃 MATLAB求解
解的验证:选择步长为0.001
控制系统仿真与CAD 国家级精品课程
2019/8/22
9/20
11.3 分数阶传递函数模型与分析
Laplace变换在分数阶系统中应用
Laplace变换的重要性质
零初值:
分数阶传递函数
控制系统仿真与CAD 国家级精品课程
2019/8/22
10/20
11.3.1 分数阶传递函数类的编程
分数阶传递函数模型
定义一个类:FOTF类
建立 @fotf 目录
在此目录下至少建立两个文件
fotf.m:创建FOTF对象 display.m:显示该对象的内容
其他该对象的重载函数,置于@fotf 中
控制系统仿真与CAD 国家级精品课程
例11-10
控制系统仿真与CAD 国家级精品课程
2019/8/22
15/20
系统的范数
MATLAB 实现 例11-11 上例的系统范数
系统的频域分析:bode()、nyquist()、nichols() 例11-12 上例频域分析
控制系统仿真与CAD 国家级精品课程
2019/8/22
分数阶微积分研究的开始
早期研究是纯数学研究
控制方面的研究
Manabe,1960开始 Igor Podlubny 1999
控制器、专著
控制系统仿真与CAD 国家级精品课程
2019/8/22
4/20
分数阶微积分的定义
Grünwald-Letnikov定义
Riemann-Liouville定义 Caputo定义——非零初值
16/20
例11-13 分数阶微分方程 传递函数
输入信号 检验:用步长0.0005
控制系统仿真与CAD 国家级精品课程
2019/8/22
17/20
11.5 分数阶系统的设计
分数阶PID控制器
Igor Podlubny
分数阶对象最优分数阶PID控制器设计界面
控制系统仿真与CAD 国家级精品课程
2019/8/2211/源自0 fotf.m 文件——创建类,@fotf 目录中
FOTF对象的输入
控制系统仿真与CAD 国家级精品课程
2019/8/22
12/20
display.m 模型显示 (略) 例11-6
重载函数 (置于@fotf目录)
系统连接:mtimes.m、plus.m、feedback.m等 时域分析:step.m、lsim.m 频域分析:bode.m、nyquist.m、nichols.m 稳定性、范数:isstable.m、norm.m
控制系统仿真与CAD 国家级精品课程
2019/8/22
5/20
分数阶微积分的计算
给定函数采样值 y、时间 t、阶次 g
MATLAB函数的直接调用
g 可以为正数也可以为负数
时间等间距
控制系统仿真与CAD 国家级精品课程
2019/8/22
6/20
分数阶微积分计算举例
函数调用 例11-1 常数的微积分是什么?
国家级精品课程
控制系统仿真与CAD
第十一章 分数阶系统的分析与设计
东北大学信息学院 薛定宇
第十一章 分数阶系统的分析与设计
基于传统微积分理论的控制都是整数阶控制 误用的词:分数阶更确切的名称是非整数阶 本章主要内容
分数阶微积分的定义与计算 分数阶线性微分方程的求解 分数阶传递函数模型 —— FOTF 类
如何在MATLAB下定义并编程新的类、对象
线性分数阶系统的分析 分数阶系统控制器设计
控制系统仿真与CAD 国家级精品课程
2019/8/22
2/20
11.1 分数阶微积分的定义与计算
Newton 和 Leibniz 分别创立了微积分学
Sir Issac Newton的记号
微分
Gottfried Leibniz的记号
微分、积分
扩展:统一微积分
控制系统仿真与CAD 国家级精品课程
2019/8/22
3/20
分数阶微积分的历史
法国数学家Guillaume François Antoine L’Hôpital
1695年,询问Leibniz, n=1/2? Leibniz给出了t 的1/2导数 彼此关于此问题的通信标志
例11-2 正弦函数的分数阶微分
信息量比整数阶微分丰富
控制系统仿真与CAD 国家级精品课程
2019/8/22
7/20
11.2 分数阶线性微分方程的求解
分数阶线性微分方程
闭式算法
MATLAB实现
控制系统仿真与CAD 国家级精品课程
2019/8/22
8/20
例11-4 分数阶微分方程求解
2019/8/22
18/20
例11-23 分数阶受控对象 输入模型
启动optimfopid界面

控制器

控制器
整数阶PID控制器
局限性:受控对象不能含有延迟
控制系统仿真与CAD 国家级精品课程
2019/8/22
19/20
分数阶控制系统小结
给出了分数阶微积分的定义与计算方法
相关文档
最新文档