控制系统计算机辅助设计-MATLAB语言和应用
- 格式:ppt
- 大小:131.50 KB
- 文档页数:26
仿真工具(Matlab及其在控制系统中的应用)一、引言:Matlab 是matrix laboratory 的缩写1、基础部分矩阵运算,如矩阵的加、减、乘、逆阵、乘方;矩阵的超越函数(指数,对数,开方);三角变换,正交变换,秩等等。
2、提供了大量的数学基本函数及基本运算和逻辑运算,如:abs(绝对值或复数模值),sqrt方根,sin, cos, tan及反函数,指数,对数,Г函数,Bessel 函数等等。
3、提供了二维、三维作图功能。
Plot,Subplot。
4、在基本运算和函数的基础上安装有专用工具包,如:控制系统工具箱,辩识,优化,信号处理工具箱等。
5、因此,可以用来作通用计算,解代数方程,数字信号处理,自动控制理论与仿真辨识等等。
二、基本使用方法:1、Matlab就如同其名字,基础是进行数字矩阵或复数矩阵的运算。
在Windows系统中,分二中主要窗口:命令窗口和图形窗口。
命令窗口中可直接用Matlab提供的基本数学运算和逻辑运算及其函数,如同一张演算纸,同时可用图形函数控制图形窗口的显示。
Matlab如此的给予解释命令的方式,类似于解释性的BASIC语言一般。
如在命令窗口键入:A=[1,2,3; 4,5,6; 7,8,9]B=A’则1 4 7B= 2 5 83 6 9若C=A+B则2 6 10C= 6 10 1410 14 18又如求多项式X4-5X2+4的根,则可用p=[1,0,-5,0,4]r=roots(p)可得:r=[+2,-2,1,-1]2、由于解决问题往往由许多命令组成,因此,在Matlab中一般采用建立M文件的方法,内容包括运算命令与函数集合,也有如其他高级语言类似的条件判断,循环等等编程语句。
M文件是一个文本文件,可用任何文本编辑器进行编辑。
3、例1: 由y=X3-6X2+11X-6及随机函数产生一组数据,然后作曲线拟合,并绘图比较。
其M文件为:% LCL1.M demo polyval and polyfitclcclgp=[1,-6,11,-6];x=0:.25:4;% rand('')% y=polyval(p,x)+rand(x);y=polyval(p,x)+rand(size(x))c=polyfit(x,y,3)fit=polyval(c,x);plot(x,fit,x,y,'o')title('Test polyfit Function');xlabel('metrix x 0.25 step');ylabel('compare y1 and y2');end图形窗口图为右如下图所示。
MATLAB语言及应用教程
1、MATLAB简介
MATLAB(即matrix laboratory)是美国MathWorks公司出品的商业
数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技
术计算语言和交互式环境。
MATLAB 不仅只是一个计算器,它还是一个完
整的编程语言。
MATLAB是一种具有矩阵语法的高级语言,用于构建专用的算法,处
理和可视化数据,提供深入的分析,以及创建强大的应用程序和系统。
MATLAB包括大量的可用函数和程序,用于帮助您解决各种各样的计算机
问题。
MATLAB可以帮助您节省时间,减少编程中的错误,提高工作效率,从而为您创造机会。
2、MATLAB组成
(1)命令窗口:MATLAB命令窗口是主要用户接口。
它是一个交互式
终端,用于输入数学表达式,变量和命令,并查看结果。
(3)图形化编程工具箱:图形化编程工具箱是一种图形化编程环境,可让您创建自定义MATLAB程序和应用程序,而无需手动编写MATLAB代码。
(4)函数库:MATLAB函数库是MATLAB软件包括的主题特定函数库。
MATLAB软件在计算机控制系统教学中的应用计算机控制系统是电气自动化技术、计算机控制技术等专业的一门重要专业核心课程。
它涉及电路、电子技术、自动控制原理及数学等多门学科,概念多、理论性强、与工程实践联系密切。
近年来,随着计算机技术和仿真软件的不断发展和完善,仿真软件逐渐渗透到计算机控制系统课程的教学中。
本文介绍了MATLAB在计算机控制系统教学中的主要应用,例如模拟控制器的离散化参数计算、响应曲线的描绘和控制系统仿真,并用实例说明MATLAB软件在计算机控制系统教学中的重要作用。
一、数字PID控制器的设计PID控制器是一种线性控制器,它将给定值与实际输出值的偏差e(t)的比例、积分和微分进行线性组合,形成控制量u(t)输出,如图1所示。
图1 PID控制框图连续系统中PID控制器的传递函数为。
对PID控制器中三个环节的作用总结如下[1]:(1)比例P环节:成比例地反映偏差,偏差一旦出现立即产生控制作用,从而减小偏差;但P环节不能消除静差,且Kp过大会引起系统不稳定。
(2)积分I环节:主要用于消除静差,提高系统的无差度;但积分作用太强会使系统超调变大,甚至出现振荡。
(3)微分D环节:反映偏差信号的变化趋势,并能在偏差变得过大之前引入有效地早期修正信号,从而加快系统的响应速度,减小超调和调节时间,克服振荡,改善系统的动态性能;但Td过大也会使系统不稳定。
可见,Kp、Ti、Td对系统的闭环响应有很大的影响,只有选择合适的Kp、Ti、Td,才能获得理想的系统响应。
若已知某伺服系统的对象传递函数,采样周期T=0.1s,为了研究由P、PID数字控制器组成闭环系统的单位阶跃响应,首先应求被控对象的广义脉冲传递函数再根据离散控制理论,可以求出系统的闭环脉冲传递函数为:则系统的单位阶跃响应为:若控制器采用比例控制,即,将其带入可求出闭环脉冲传递函数为[2] 进而求出系统的闭环响应为若控制器采用PID控制,即,求解过程更加复杂。
Matlab在工业控制系统设计中的应用指南在现代工业领域中,控制系统设计起着至关重要的作用。
控制系统通过对机械、电气、液压等工业过程进行监测和调节,实现工业流程的稳定和优化。
而在控制系统设计中,Matlab作为一种强大的工具,可以为工程师提供许多有效的方法和技术。
本文将探讨Matlab在工业控制系统设计中的应用指南,希望能够帮助读者更好地理解和应用这一工具。
一、Matlab的基本特性Matlab是一种高级技术计算语言和环境,可以支持各种数学计算和数据分析任务。
其特点包括:1. 简洁的数据表示和操作语法:Matlab提供了方便的数据结构和操作符,可以轻松处理矩阵、向量和多维数组等数据类型。
2. 多种算法和数值计算函数:Matlab内置了丰富的数值计算函数,可以用于求解线性方程组、傅里叶变换、最优化等各种数学运算。
3. 富有表现力的图形绘制功能:Matlab可以生成高质量的二维和三维图形,用于可视化数据和分析结果。
这对于控制系统设计中的信号分析和系统响应的可视化非常有帮助。
二、Matlab在模型开发中的应用控制系统设计的第一步是模型开发,即建立系统的数学模型。
Matlab提供了许多工具和函数,可以用于系统模型的建立和验证。
以下是几个常用的应用:1. 系统特性分析:Matlab可以通过频率响应、单位阶跃响应和冲击响应等方法,分析系统的频域和时域特性。
这有助于设计合适的控制策略。
2. 系统辨识:Matlab提供了多种系统辨识工具,例如最小二乘法、递推最小二乘法等,可以从实际测量数据中识别出系统的数学模型。
3. 状态空间分析:Matlab支持状态空间模型的表达和运算,可以进行系统的控制设计和性能分析。
三、Matlab在控制系统设计中的仿真和验证在控制系统设计的中间阶段,仿真和验证是非常重要的。
Matlab提供了强大的仿真工具和函数,可以帮助工程师快速评估和优化控制策略。
以下是几个常用的应用:1. 系统仿真:Matlab可以通过建立系统模型和控制算法,进行系统的行为仿真。
附录二 MATLAB语言及其在控制领域中的应用1 MATLAB语言基础1.1 使用MATLAB的窗口环境MATLAB语言是一种广泛应用于工程计算及数值分析领域的新型高级语言,自1984年由美国MathWorks 公司推向市场以来,历经十多年的发展与竞争,现已成为国际公认的最优秀的工程应用开发环境。
MATLAB功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。
在欧美各高等院校,MATLAB已经成为线性代数、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等课程的基本教学工具,成为大学生、硕士生以及博士生必须掌握的基本技能。
1.1.1 MATLAB语言的显著特点(1)具有强大的矩阵运算能力Matrix Laboratory(矩阵实验室),使得矩阵运算非常简单。
(2)是一种演算式语言MATLAB的基本数据单元是不需要指定维数,也不需要说明数据类型的矩阵(向量和标量为矩阵的特例),且数学表达式和运算规则与通常习惯相同。
顾MATLAB语言编程简单,使用方便。
1.1.2 MATLAB命令窗口(1)启动MATLAB命令窗口安装好MATLAB之后,双击MATLAB图标,就可进入命令窗口,此时系统处于准备接受命令的状态,可在命令窗口中直接输入命令语句。
MATLAB语句形式:>>变量=表达式通过等于符号将表达式的值赋予变量。
回车后该语句被执行,窗口自动显示语句执行结果。
如希望结果不显示,在语句后加一分号“;”。
此时结果虽没显示,但它依然被赋值并在MATLAB工作空间中分配了内存。
(2)命令行编辑器方向键和控制键可以编辑修改已输入的命令↑:回调上一行命令↓:回调下一行命令1.1.3 变量和数值显示格式(1)变量(a)变量的命名变量的名字必须以字母开头(不能超过19个字符),之后可以是任意字母、数字或下划线;变量名称区分字母的大小写;变量中不能包含有标点符号。
(b)变量操作在命令窗口中,同时存储着输入的命令和创建的所有变量值,它们可以在任何需要的时候被调用。
Matlab在控制系统设计和仿真中的应用控制系统在工程领域中扮演着至关重要的角色。
它们用于调节、监控和稳定各种物理和工业过程,以确保系统的正常运行。
Matlab是一种强大而灵活的数学软件工具,被广泛应用于控制系统设计和仿真中。
在本文中,我们将探讨Matlab在控制系统的应用,以及它为工程师和科学家们带来的益处。
1. 控制系统的建模和仿真控制系统的建模是设计和分析的基础。
Matlab提供了丰富的工具箱和函数,用于生成系统的数学模型。
这些模型可以是连续时间的,也可以是离散时间的,以及线性或非线性的。
通过使用Matlab的控制系统工具箱,工程师可以根据实际过程的物理特性和参数,准确地建立系统模型。
一旦模型被建立,仿真就成为了非常有用的工具。
Matlab提供了强大的仿真功能,可以帮助工程师评估系统的性能和稳定性,甚至预测其行为。
通过输入不同的控制策略和参数,工程师可以验证不同方案的有效性,以及系统在不同条件下的响应。
2. 控制系统设计在控制系统设计过程中,Matlab可以起到关键的作用。
Matlab提供了广泛的控制设计工具箱,可以帮助工程师选择合适的控制算法和方法。
PID控制器是最常用的控制器之一。
通过Matlab的PID工具箱,工程师可以进行PID控制器的参数调整和性能评估。
此外,Matlab还提供了其他高级控制算法,如模型预测控制(MPC)和自适应控制,以满足不同应用的需求。
Matlab的优化工具箱也为控制系统设计提供了极大的帮助。
工程师可以使用这些工具来优化控制算法的性能和参数,以实现系统的最佳响应和稳定性。
3. 控制系统实现和验证控制算法的实现是控制系统设计的最终目标。
Matlab不仅可以帮助工程师在仿真环境中验证控制算法的有效性,还可以直接生成嵌入式代码,用于在硬件设备上实现控制。
这大大简化了控制系统的部署和实际应用过程。
4. 控制系统故障诊断和故障恢复控制系统故障是不可避免的。
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软件的使用方法,从而在实际工作中发挥出更高的效能。
第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 控制器消除稳态误差。