第五章 线性控制系统的计算机辅助分析
线性控制系统的计算机辅助分析
第4章 线性控制系统的 计算机辅助设计
单击此处添加副标题
单击此处添加正文,文字是您思想的提炼,请尽量言简意赅的阐述观点。
早期的控制系统分析过程复杂而耗时,如想得到一个系统的冲激响应曲线,首先需要编写一个求解微分方程的子程序,然后将已经获得的系统模型输入计算机,通过计算机的运算获得冲激响应的响应数据,然后再编写一个绘图程序,将数据绘制成可供工程分析的响应曲线。 MATLAB控制系统工具箱和SIMULINK辅助环境的出现,给控制系统分析带来了福音。 控制系统的分析包括系统的稳定性分析、时域分析、频域分析及根轨迹分析。
可控标准型及其MATLAB实现 若系统完全可控,则可利用矩阵Tc将其变换为第一可控规范型 ,其系数阵之间满足关系
添加标题
其中,
添加标题
*
例8:已知系统 的系数阵为
试判断其可控性。若完全可控,则求其第一可控规范型。 >> A=[2 0 0;0 4 1;0 0 4]; >> B=[1;0;1]; >> C=[1 1 0]; >> Tc=ctrb(A,B); >> rank(Tc) >>Ac=inv(Tc)*A*Tc; >> Bc=inv(Tc)*B; >> Cc=C*Tc;
另:首先介绍fliplr( )函数,其变换矩阵行元素的左右顺序。如
A = 1 2 3 4 5 6 7 8 9 10 11 12
fliplr(A)= 4 3 2 1 8 7 6 5 12 11 10 9
例1:系统传函为
#2022
*
例2:离散系统受控对象的传函为
控制器模型为 试分析单位负反馈下的闭环系统稳定性。 z=tf('z',0.1);G=0.00147635*(z^2+3.4040929*z+… 0.71390672)/((z-1)*(z-0.535261429)*(z-0.951229425)); Gc=1.5*(z-0.5)/(z+0.8); GG=feedback(G*Gc,1); [eig(GG) abs(eig(GG))] ans = -0.7991 0.7991 0.9745 + 0.0782i 0.9776 0.9745 - 0.0782i 0.9776 0.5344 0.5344
机电控制工程基础课件:控制系统的计算机辅助分析与设计
控制系统的计算机辅助分析与设计
例 10-10 将例 10 7 给定的系统的传递函数变成系统的 零点和极点模型。
解 可以直接调用 tf2zp ()函数,输入下列语句;
控制系统的计算机辅助分析与设计
即变换后所得的零极点模型为
这里,为了验证 MATLAB 提供的转换函数,还可以调用 zp2tf ()函数将得出的模型变换回原来的模型。在这里需要指 出的是,调用 zp2tf ()函数,其中的零计
说明:指令执行后,矩阵 A 被保存在 MATLAB 的工作间 ( Workspace )中,以备后用。如果用户不用 clear 指令清除它, 或对它重新赋值,那么该矩阵会一直保存在工作间中,直到本 MATLAB 命令窗被关闭为止。
控制系统的计算机辅助分析与设计
4. 语句与变量 MATLAB 采用表达式语言。用户输入的语句由 MATLAB 系统解释运行。 MATLAB语句有两种最常见的形 式: (1 )表达式; (2 )变量 = 表达式。
控制系统的计算机辅助分析与设计
控制系统的计算机辅助分析与设计
3. 简单矩阵的输入 在 MATLAB 中,输入矩阵的方法有多种。这里只简单介 绍矩阵的直接输入法。在 MATLAB 中,不必对矩阵维数作任 何说明,存贮将自动配置。在直接输入矩阵时,矩阵元素用空 格或逗号分隔,矩阵用分号“;”隔离,整个矩阵放在方括号 “[]”里。
控制系统的计算机辅助分析与设计
控制系统的计算机辅助分析与设计
10. 1 MATLAB 入门 10. 2 控制系统的数学模型 10. 3 控制系统的性能分析 10. 4 控制系统的校正设计 习题
控制系统的计算机辅助分析与设计
控制系统数字仿真与cad第5章控制系统的计算机辅助分析
【例5-6】假设系统的开环传递函数为 试求该系统在单位负反馈下的阶跃响应曲线和最大超调量。 解:MATLAB程序为: %ex5_6.m num0=20;den0=[1 8 36 40 0];[num,den]=cloop(num0,den0); t=0:0.1:10;[y,x,t]=step(num,den,t);plot(t,y) M=((max(y)-1)/1)*100;disp([‘最大超调量M=‘ num2str(M) ‘%’]) 执行结果为:最大超调量M=2.5546%,单位阶跃响应曲线如图5-3中曲线所示。
图5-3 例5-6的单位阶跃响应曲线
例5-7 对于典型二阶系统 试绘制出无阻尼自然振荡频率ωn=6,阻尼比ζ分别为0.2,0.4,…,1.0,2.0时系统的单位阶跃响应曲线。
解 MATLAB程序为 %Example5_7.m wn=6;zeta=[0.2:0.2:1.0:2.0]; figure(1);hold on for k=zeta; num=wn.^2; den=[1,2*k*wn,wn.^2]; step(num,den);end title('Step Response');hold off 执行后可得如图5-5所示的单位阶跃响应曲线。 从图中可以看出,在过阻尼( ) 和临界阻尼( ) 响应曲线中,临界阻尼响应应具有最短的上升时间,响应速度最快;在欠阻尼( ) 响应曲线中,阻尼系数越小,超调量越大,上升时间越短,通常取
控制系统仿真_薛定宇第五章 线性控制系统的计算机辅助分析
控制系统仿真与CAD
第五章 线性控制系统的计算机辅助分析
东北大学信息学院 薛定宇
控制系统仿真与CAD 国家级精品课程
2014-12-31
1/139
本章主要内容
线性系统定性分析 线性系统时域响应解析解法 线性系统的数字仿真分析 根轨迹分析 线性系统频域分析 多变量系统的频域分析
如果系统中所有的状态都是可控的,则称该系 统为完全可控的系统。 系统的可控性就是指系统内部的状态是不是可 以由外部输出信号控制的性质
控制系统仿真与CAD 国家级精品课程
2014-12-31
20/139
线性系统的可控性判定
可控性判定矩阵
若矩阵 为满秩矩阵,则系统完全可控 基于 MATLAB 的判定方法
控制系统仿真与CAD 国家级精品课程
2014-12-31
43/139
离散系统的范数定义
范数的 MATLAB 求解
控制系统仿真与CAD 国家级精品课程
2014-12-31
44/139
例5-9 已知离散系统模型
控制系统仿真与CAD 国家级精品课程
2014-12-31
45/139
5-1 系统性质分析小结
控制系统仿真与CAD 国家级精品课程
2014-12-31
14/139
判定的 MATLAB 函数
内部稳定返回0,内部不稳定但输入输出稳定返 回1,否则返回2
控制系统仿真与CAD 国家级精品课程
2014-12-31
15/139
5.1.3 线性系统的线性相似变换
系统的状态方程表示称为系统实现 不同状态选择下,状态方程不唯一 相似变换
3MATLAB线性系统的计算机辅助分析
一般幅值裕度Gm越大,系统对扰动的抑制能力越强。如果Gm<1, 则闭环系统不稳定。同样,相位裕度越大,系统对扰动的抑制能力越强。 如果γ<0,则闭环系统不稳定。 进一步:如果Nyquist图不与负实轴相交,则系统的幅值裕度为无穷大。 如果Nyquist图与负实轴在(-1,j0)与(0,j0)两点之间有若干个交 点,则系统的幅值裕度以离(-1,j0)点最近的点为准。 如果Nyquist图不与单位圆相交,则系统的相位裕度为无穷大。 如果Nyquist图在第三象限与单位圆有若干个交点,则系统的相位 裕度以离负实轴最近的点为准。 MATLAB中提供了margin()函数,可直接求取系统的幅值和相位裕 度。调用格式为: [Gm,γ, ωcg, ωcp]=margin(G); Gm幅值裕度,γ相位裕度, ωcg频率, ωcp剪切频率 若某个裕度为无穷大,则返回Inf,相应的频率值为NaN
MATLAB教程
线性系统的计算机辅助分析
可以看出这样设计的动态性能比较令人满意
---电气工程系研究生
MATLAB教程
线性系统的计算机辅助分析 线性系统频域分析 ---电气工程系研究生
线性系统频域分析
Nyquist提出用于系统稳定性分析的Nyquist定理,Bode提出了另一种 频率响应的分析方法,同时可以分析系统的幅值相位与频率之间的关系 (Bode图),Nichols在Bode图的基础上又进行了重新定义,构成了 Nichols图。这些方法是单变量系统频域分析最重要的方法。而对于多变量 系统,由于信号之间存在相互耦合,如希望对某对输入输出单独设计控制 器,则需要引入解耦。
MATLAB教程
线性系统的计算机辅助分析
生
---电气工程系研究
MATLAB中提供了nyquist()、bode()和nichols()函数分别绘制系统的Nyquist 图、Bode图和Nichols图,调用格式为: Nyquist图 nyquist(G) %不返回变量将自动绘制Nyquist图 nyquist(G,{ωm, ωM}) %给定频率范围绘制Nyquist图 nyquist(G, ω) %给定频率向量ω 绘制Nyquist图 [R,I, ω]=nyquist(G) %计算Nyquist响应数值 nyquist(G1,’-’,G2,’-.b’,G3,’:r’) %绘制几个系统的 Nyquist图 Bode图 bode(G) %不返回变量将自动绘制bode图 bode (G,{ωm, ωM}) %给定频率范围绘制bode图 bode (G, ω) %给定频率向量ω 绘制bode图 [A, Φ, ω]=bode (G) %计算bode响应数值 bode (G1,’-’,G2,’-.b’,G3,’:r’) %绘制几个系统的 bode图 Nichols图 nichols()函数的调用格式与Bode图调用格式完全一致。这时的 grid函数可以叠印出等幅值曲线和等相位曲线。
《线性控制系统理论》课件
延时符
线性控制系统的基本组成
总结词
系统模型的建立是线性控制系统理论的基础。
详细描述
系统模型是对实际物理系统的数学描述,它反映了系统的动态行为和输入输出关系。线性控制系统模型通常由线性微分方程、传递函数和状态空间表达式来表示。
性能指标是评估系统性能的重要依据。
系统性能指标包括稳定性、快速性、准确性和鲁棒性等。这些指标用于衡量系统在不同条件下的性能表现,是系统设计和优化过程中的关键参考。
控制器
作为控制系统的核心,控制器负责接收输入信号并产生输出信号,以控制被控对象的运行状态。常用的控制器有PID控制器、模糊控制器等。
传感器
传感器用于检测被控对象的运行状态,并将检测到的信号转换为电信号或数字信号,传输给控制器。常见的传感器有温度传感器、压力传感器等。
控制算法
控制算法是控制系统的核心,用于计算控制器的输出信号。常用的控制算法有PID控制算法、模糊控制算法等。
延时符
线性控制系统的分析方法
通过建立状态方程和输出方程描述系统动态行为的方法。
状态空间法是一种基于状态变量描述线性控制系统动态行为的方法。通过建立状态方程和输出方程,可以全面地描述系统的运动过程,并方便地进行系统分析和设计。
通过分析系统极点和零点分布影响系统性能的方法。
频率域分析法是一种在频域内分析线性控制系统性能的方法。通过分析系统极点和零点的分布,可以确定系统性能的优劣,如稳定性、快速性和准确性等。
02
状态反馈控制具有较好的鲁棒性和适应性,能够有效地抑制外部干扰和参数变化对系统的影响。
1
2
3
极点配置法是一种通过调整系统极点位置来改善系统性能的方法。
通过合理配置极点位置,可以有效地改善系统的动态特性和稳态精度,提高系统的控制性能。
线性控制系统稳定性的计算机辅助判定方法
关键 词 线性控制系统 劳斯判据 稳定性 计算机程序
A mp td Ai e u g me tM eh d o t bl y o n a n r l S se Co u e - d d J d e n t o f S a i t f Li e r Co to y tm i Lu Qa h n u - u ,Wa g Jn i i ,Z o gJ n y o n u
1 引 言
稳定性 是 系统 的重 要性 能 ,也是 系统 能够 工
( )特 征方 程 的根 都在 S平 面 的左半 边 时 , 1 由起 始 条件所 引起 的响应 ,在时 间越 近于 无穷 时 将 衰 竭 为零 。系统 的零 输入 响 应 具有 收 敛 性质 ,
系统为 稳定 的 。
( C ),b tte t dt n lme o ,w i u g sw e e C s s be o o,i b r g codn LS u h r io a a i t d hc jd e hc rig h h h a i t tep n il o o t r e o , o p t - ie u g m n to ,w i u g sw e e C s o h r cpe fR uh c t n a cm ue a d jd e e tme d hc jd e h t rL S i i i r i r d h h h
1 ee o .T lc mmu ia i n I si t ,Gu z o ie s y nc t n tu e o t i u Un v r i ,Gu y n 5 0 5 h t i a g 5 0 2 ,C i a hn
2 .Mitr e rsnai so c fA rF re i ige g D s c, e ig 10 7 , hn lay R pee tt e f e o i oc n J fn ir t B in 0 0 4 C ia i v i f n t i j
《控制系统计算机辅助设计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
第五章 控制系统计算机辅助分析——根轨迹与频域分析
rlocus:求系统根轨迹。
rlocfind:计算给定一组根的根轨迹增益。 sgrid:在连续系统根轨迹图和零极点图中绘制出阻 尼系数和自然频率栅格。
1、零极点图绘制 MATLAB提供了函数pzmap()来绘制系统的零极点图, 其用法如下:
[p,z]=pzmap(a,b,c,d):返回状态空间描述系统的极点矢量和 零点矢量,而不在屏幕上绘制出零极点图。 [p,z]=pzmap(num,den):返回传递函数描述系统的极点矢量 和零点矢量,而不在屏幕上绘制出零极点图。
2、根轨迹图绘制 rlocus()
(2) 返回参数,不直接绘图
r=rlocus(num,den,k) [r,k]=rlocus(num,den) : 不在屏幕上直接绘出系统的根轨迹图,而根据开环增益 变化矢量k , 返回闭环系统特征方程1+k*num(s)/den(s)=0的根r, 它有length(k)行,length(den)-1列,每行对应某个k值时 的所有闭环极点。或者同时返回k与r。
4、sgrid()函数
sgrid:在现存的屏幕根轨迹或零极点图上绘制 出自然振荡频率wn、阻尼比矢量z对应的格线。 sgrid(‘new’):是先清屏,再画格线。 sgrid(z,wn):则绘制由用户指定的阻尼比矢量 z、自然振荡频率wn的格线。
五. 实例
已知某单位反馈系统的开环传递函数为:
三. 绘制根轨迹的基本规则
1. 根轨迹的连续性和对称性 根轨迹是连续的并且对称于实轴。 2. 根轨迹的分支数、起点和终点 n阶系统有n支根轨迹。 n支根轨迹分别起始于n个开环极点,其中m支终止于有 限的开环零点,另外n-m支将趋向于无穷远处。
三. 绘制根轨迹的基本规则
5.控制系统的计算机辅助分析和设计(4)
Step Response 1.4 w =2 w =4 1.2 w =6 w =8 w =10
线性系统的数字仿真
例5-4
骣 s 2 + 5s + 1 ÷ ç2 ÷ ç 2 ç s + 2s + 3 ÷ ,绘制周期为 的方波输出响应 ÷ 绘制周期为4s的方波输出响应 对二阶系统 H ( s) = ç ÷ ç ÷ ç ÷ s- 1 ç ÷ ç 2 ÷ ç s + s+ 5 ÷ 桫
[u,t] = gensig('square',4,10,0.1); H = [tf([2 5 1],[1 2 3]) ; tf([1 -1],[1 1 5])] lsim(H,u,t) ;
g_openloop=tf([25],[1 4 0]); g_cloop=feedback(g,1); printsys(num,den); t=0:0.01:5; u1=1+0.2*sin(4*t); u2=0.3*t+0.3*sin(5*t); y1=lsim(num,den,u1,t); y2= lsim(num,den,u2,t); plot(t,y1,t,y2); legend('y1','y2');
线性系统的数字仿真
时域响应性能指标 • 两个基本要求:对设定值输入的跟踪、对扰动输入的抑制 两个基本要求:对设定值输入的跟踪、 • 三个衡量标准:跟踪和抑制过程的稳定性、快速性和准确性 三个衡量标准:跟踪和抑制过程的稳定性、 响应分析类型 • 阶跃响应 • 脉冲响应 • 任意输入下的响应
控制系统计算机辅助分析
l ab 311.gf kd .mt n3 控制系统计算机辅助分析控制系统计算机辅助分析就是对描述系统的数学模型进行求解在分析过程中需要以某种数值算法从给定的初始值出发逐步计算出每一个时刻系统的响应即系统的时间响应最后绘制出系统的响应曲线由此来分析系统的性能MA TLAB 控制系统工具箱提供了对系统阶跃响应脉冲响应频域响应等进行分析的函数3.1 控制系统的稳定性分析对于线性如果闭环极点全部在S 平面左半平面则系统是稳定的对于离散时间系统如果系统全部极点都位于Z 平面的单位圆内则系统是稳定的1 利用极点判断系统的稳定性MA TLAB 提供了直接求取系统所有零极点的函数因此可以直接根据零极点的分布情况对系统的稳定性进行判断例系统模型如下所示判断系统的稳定性11221171494528110142841163)(2345623+++++++++=Φs s s s s s s s s s 编写脚本M 文件myfun3_1.m%myfun3_1.m clear clcclose all %系统描述num=[3 16 41 28];den=[1 14 110 528 1494 2117 112];[z,p,k]=tf2zp(num,den); %求系统的零极点ii=find(real(z)>0); %检验零点的实部求取零点实部大于零的个数 n1=length(ii);jj=find(real(p)>0); %检验极点的实部求取极点实部大于零的个数 n2=length(jj);if(n2>0) %判断系统是否稳定 disp('the system is unstable') disp('the unstable pole are:') disp(p(jj)) elsedisp('the system is stable') endpzmap(p,z); %绘制零极点图 p z运行myfun3_1.m the system is stablep = z =-1.9474 + 5.0282i -2.1667 + 2.1538i -1.9474 - 5.0282i -2.1667 - 2.1538i -2998 -1.0000 -2.8752 + 2.8324i -2.8752 - 2.8324il ab 311.gf kd .mt n-0.05502 利用特征值判断系统的稳定性对于线性系统Bu Ax x+=&0111=++++=−−−n n sn n a a a s A sI K 是系统的特征方程特征方程的根为系统的闭环极点例系统状态方程如下所示判断系统的稳定性[]ux y ux x 7165210016127587403622121+−=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡−+⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡−−−=&编写脚本M 文件myfun3_2.ma=[1 2 -1 2;2 6 3 0;4 7 -8 -5;7 2 1 6]; %系统描述 b=[-1 0 0 1]'; c=[-2 5 6 1];d=7;p=poly(a);r=roots(p); %求特征方程的根 ii=find(real(r)>0); %检验的根实部 n=length(ii);if(n>0) %判断系统是否稳定 disp('the system is unstable') elsedisp('the system is stable') end运行myfun3_2.m the system is unstable3 利用李雅普诺夫第二判据判断系统的稳定性对线性定常连续系统状态方程Ax x=&Lyapunov 稳定性分析系统渐进稳定的充要条件为如果对任意给定的对称正定矩阵W 一般取单位矩阵均存在唯一的正定矩阵解P 满足下面的方程A TP+PA= -W 该方程称为Lyapunov 方程 MATLAB 提供了方程的求解函数lyap调用格式为P=lyap AW 如P 为正定的则系统是稳定的 例系统状态方程x x⎥⎦⎤⎢⎣⎡−−=1110&判断系统的稳定性编写脚本M 文件myfun3_3.ma=[0 1;-1 -1]; %系统描述 w=eye(size(a)); p=lyap(a,w);i1=find(p(1,1)>0);n1=length(i1); %检验P 的正定性 i2=find(det(p)>0);n2=length(i2);if(n1>0&n2>0) %判断系统是否稳定 disp('the system is unstable') elsedisp('the system is stable') end运行myfun3_3.m the system is stablel ab 311.gf kd .mt n3.2 控制系统的时域分析对控制系统来说系统的数学模型实际上是某种微分方程或差分方程模型因而在仿真过程中需要以某种数值算法从给定的初始值出发逐步计算出每一个时刻系统的响应即系统的时间响应最后绘制出系统的响应曲线由此来分析系统的性能时间响应研究系统对输入和扰动在时域内的瞬态行为系统特征如上升时间调节时间超调和稳态误差都能从时间响应上反映出来控制系统工具箱提供了对系统阶跃响应脉冲响应等进行仿真的函数如下表4-3-1所示大部分函数都能自动生成时间响应图表4-3-1 时间响应函数及说明函数 说明函数 说明covar 连续系统对白噪声的方差响应 lsim 连续系统对任意输入的响应 dcovar 离散系统对白噪声的方差响应 dlsim 离散系统对任意输入的响应impulse 连续系统的脉冲响应 step 对连续系统的单位阶跃响应 dimpulse离散系统的脉冲响应dstep 对离散系统的单位阶跃响应initial 连续系统的零输入响应 filter 数字滤波器dinitial离散系统的零输入响应1. 控制系统单位阶越响应step()对连续系统的单位阶跃响应调用格式为 • y=step(num,den) • y=step(num,den,t)• y=step(A,B,C,D,iu,T)求得系统对第iu 个输入的脉冲响应其中向量T 为均匀间隔的时间值指明要计算响应的时间点y 的列数与输出的个数相同每列对应一个输出• [y,x]=step(A,B,C,D,iu,T)同时返回状态x 的变化过程 例已知系统的开环传递函数为ss s s s G o 4036820)(234+++=求系统在单位负反馈下的阶跃响应曲线编写脚本M 文件myfun3_m num=[20];den=[1 8 36 40 0]; %开环传递函数描述 [numc,denc]=cloop(num,den); %求闭环传递函数 t=0:0.1:10;step(numc,denc,t); %绘制闭环系统的阶跃响应曲线 disp('系统稳态值dc 为')dc=dcgain(numc,denc) %求稳态值 运行myfun3_m dc = 1闭环系统的阶跃响应曲线如图4-3-1所示dstep()对离散系统的单位阶跃响应l ab 311.gf kd .mt n图4-3-1闭环系统的阶跃响应2. 控制系统单位脉冲响应impulse()连续系统的脉冲响应调用格式为• y=impulse(num,den,t) 用来对传递函数形式进行计算的• y=impulse(A,B,C,D,iu,T)用来求得系统对第iu 个输入的脉冲响应其中向量T 为均匀间隔的时间值指明要计算响应的时间点y 的列数与输出的个数相同每列对应一个输出• [y,x]=impulse(A,B,C,D,iu,T)同时返回状态x 的变化过程Dimpulse()离散系统的脉冲响应调用格式为• y=dimpulse(A,B,C,D,iu,n) 用来求得系统 x(n+1)=Ax(n)+Bu(n) y(n)=Cx(n)+Du(n)对第iu 个输入的脉冲响应其中整数n 为要计算响应的点数y 的列数与输出的个数相同每列对应一个输出• [y,x]=dimpulse(A,B,C,D,iu,n)在得到x 的脉冲响应y的同时返回状态x 的变化过程• y=dimpulse(num,den,n)用来对传递函数形式进行计算3. 控制系统零输入响应对于连续系统和离散系统由初始状态所引起的响应即零输入响应可由函数initial()和dinitial()来求得其调用格式为• [y,x]= initial(A,B,C,D,x0) x0为初始状态 • [y,x]= dinitial(A,B,C,D,x0)4. 任意输入函数响应lsim()连续系统对任意输入的响应调用格式为• Y=lsim(num,den,U,T)对传递函数形式进行计算的• y=lsim(A,B,C,D,U,T)计算出系统对于输入序列U 的响应矩阵U 的每列对应一个输入每行对应一个新的时间点其行数与T 的长度相同• [y,x]=lsim(A,B,C,D,U,T)同时返回状态x 的变化过程Dlsim()离散系统对任意输入的响应• y=dlsim(A,B,C,D,U)计算出系统x(n+1)=Ax(n)+Bu(n) y(n)=Cx(n)+Du(n)对于输入序列的响应其中矩阵U 的每列对应一个输入序列每行对应一个新时间点y 的每列为一个输出• [y,x]=dlsim(A,B,C,D,U)同时返回状态x 的变化过程 • y=dlsim(num,den,U)用来对传递函数形式进行计算的 例求系统余弦响应编写脚本M 文件myfun3_5.m num=[2 5 1]; den=[1 2 3]; t=(0:0.1:10); u=cos(t);lsim(num,den,u,t)l ab 311.gf kd .mt n运行myfun3_5.m系统的余弦响应曲线如图4-3-2所示图4-3-2系统余弦响应 3.3 根轨迹法根轨迹指当开环系统某一参数从零变到无穷大时闭环系统特征方程的根在s 平面上的轨迹一般来说这一参数选作开环系统的增益K 在MA TLAB 中专门提供了绘制根轨迹的有关函数1. 绘制系统的零极点图MA TLAB 提供了pzmap()函数来绘制系统的零极点图调用格式为• [p,z]=pzmap(a,b,c,d)返回状态空间描述系统的极点矢量和零点矢量而不在屏幕上绘制出零极点图• [p,z]=pzmap(num,den)返回传递函数描述系统的极点矢量和零点矢量而不在屏幕上绘制出零极点图• pzmap(a,b,c,d)或pzmap(num,den)不带输出参数项则直接在s 复平面上绘制出系统对应的零极点位置极点用表示零点用o 表示• pzmap(p,z)根据系统已知的零极点列向量或行向量直接在s 复平面上绘制出对应的零极点位置极点用表示零点用o 表示2. 绘制控制系统的根轨迹MA TLAB 提供了函数rlocus()来绘制系统的根轨迹图调用格式为• rlocus(a,b,c,d)或者rlocus(num,den)根据SISO 开环系统的状态空间描述模型和传递函数模型直接在屏幕上绘制出系统的根轨迹图开环增益的值从零到无穷大变化• rlocus(a,b,c,d,k)或rlocus(num,den,k) 通过指定开环增益k 的变化范围来绘制系统的根轨迹图• r=rlocus(num,den,k) 或者[r,k]=rlocus(num,den) 不在屏幕上直接绘出系统的根轨迹图而根据开环增益变化矢量k 返回闭环系统特征方程1k*num(s)/den(s)=0的根r 它有length(k)行length(den)-1列每行对应某个k 值时的所有闭环极点或者同时返回k 与r若给出传递函数描述系统的分子项num 为负则利用rlocus 函数绘制的是系统的零度根轨迹正反馈系统或非最小相位系统 MA TLAB 提供了函数rlocfind()来找出给定的一组根闭环极点对应的根轨迹增益其用法如下• [k,p]=rlocfind(a,b,c,d)或者[k,p]=rlocfind(num,den)它要求在屏幕上先已经绘制好有关的根轨迹图然后此命令将产生一个光标以用来选择希望的闭环极点命令执行结果k 为对应选择点处根轨迹开环增益p 为此点处的系统闭环特征根不带输出参数项[k,p]时同样可以执行只是此时只将k 的值返回到缺省变量ans 中• sgrid 在现存的屏幕根轨迹或零极点图上绘制出自然振荡频率wn 阻尼比矢量z 对应的格线• sgrid(‘new’)是先清屏再画格线• sgrid(z,wn)则绘制由用户指定的阻尼比矢量z 自然振荡频率wn 的格线l ab 311.gf kd .mt n例已知某单位反馈系统的开环传递函数为)102.0)(101.0()(++=s s s ks G 绘制系统的闭环根轨迹并确定使系统产生重实根和纯虚根的开环增益k编写脚本M 文件myfun3_6.m num=1;den=conv([0.01 1 0],[0.02 1]); rlocus(num,den)[k1,p]=rlocfind(num,den) [k2,p]=rlocfind(num,den) title('root locus') 运行myfun3_6.m系统的余弦响应曲线如图4-3-3所示 产生一个光标以用来选择系统产生重实根和纯虚根闭环极点的开环增益k图4-3-3系统根轨迹响应3.4 控制系统的频域分析频率响应是指系统对正弦输入信号的稳态响应从频率响应中可以得出带宽增益转折频率闭环稳定性等系统特征频率特性是指系统在正弦信号作用下稳态输出与输入之比对频率的关系特性频率特性函数与传递函数有直接的关系记为为相频特性)()()(为幅频特性)()()( )()()()()(w w w w X w X w A e w A jw X jw X jw G i o i o w j i o ϕϕϕϕ−====通常将频率特性用曲线的形式进行表示包括对数频率特性曲线和幅相频率特性曲线简称幅相曲线MA TLAB 提供了绘制这两种曲线的函数1. 控制系统Bode 图对数频率特性图包括了对数幅频特性图和对数相频特性图横坐标为频率w 采用对数分度单位为弧度/秒纵坐标均匀分度分别为幅值函数20lgA(w)以dB表示相角以度表示MA TLAB 提供了函数bode()来绘制系统的波特图调用格式为• bode(a,b,c,d)自动绘制出系统的一组Bode 图它们是针对连续状态空间系统[a,b,c,d]的每个输入的Bode 图其中频率范围由函数自动选取而且在响应快速变化的位置会自动采用更多取样点• bode(a,b,c,d,iu)可得到从系统第iu 个输入到所有输出的波特图• bode(num,den)可绘制出以连续时间多项式传递函数表示的系统的波特图• bode(a,b,c,d,iu,w)或bode(num,den,w)可利用指定的角频率矢量绘制出系统的波特图当带输出变量[mag,pha,w]或[mag,pha]引用函数时可得到系统波特图相应的幅值mag 相角pha 及角频率点w 矢量或只是返回幅值与相角相角以度为单位幅值可转换为分贝单位magdb=20log10(mag)• [Gm,Pm,Wcg,Wcp]=margin(num,den)求幅值裕度和相角裕度及对应的转折频率l ab 311.gf kd .mt n例系统传递函数模型为ses s s H 5.03)2(1)(−++=求出有理传递函数的频率响应然后在同一张图上绘出以四阶pade 近似表示的系统频率响应编写脚本M 文件myfun3_7.m num=[1 1];den=conv([1 2],conv([1 2],[1 2])); %有理传递函数模型 w=logspace(-1,2); t=0.5;[mag1,pha1]=bode(num,den,w); %求有理传递函数模型的频率响应 [n2,d2]=pade(t,4); %求系统的等效传递函数 numt=conv(n2,num); dent=conv(d2,den);[mag2,pha2]=bode(numt,dent,w); %求系统的频率响应[Gm,Pm,Wg,Wp]=margin(numt,dent) ) %求系统的值裕度和相角裕度subplot(211) %在同一张图上绘制频率响应曲线 semilogx(w,20*log10(mag1),w,20*log10(mag2),'r--'); title('bode plot')xlabel('frequency-rad/s'); ylabel('gain db'); grid onsubplot(212)semilogx(w,pha1,w,pha2,'r--'); xlabel('frequency-rad/s'); ylabel('phase deg'); grid on运行myfun3_7.m系统的频率响应曲线如图4-3-4所示 得幅值裕度和相角裕度 Gm =14396 Pm =InfWg =2.9334 Wp =NaN 图4-3-4系统频率响应2. 控制系统Nyquist 图对于频率特性函数G(jw)给出w 从负无穷到正无穷的一系列数值分别求出Im(G(jw))和Re(G(jw))以Re(G(jw)) 为横坐标 Im(G(jw)) 为纵坐标绘制成为极坐标频率特性图MA TLAB 提供了函数nyquist()来绘制系统的极坐标图调用格式为• nyquist(a,b,c,d)绘制出系统的一组Nyquist 曲线每条曲线相应于连续状态空间系统[a,b,c,d]的输入/输出组合对其中频率范围由函数自动选取而且在响应快速变化的位置会自动采用更多取样点• nyquist(a,b,c,d,iu)可得到从系统第iu 个输入到所有输出的极坐标图• nyquist(num,den)可绘制出以连续时间多项式传递函数表示的系统的极坐标图 • nyquist(a,b,c,d,iu,w)或nyquist(num,den,w)可利用指定的角频率矢量绘制出系统的极坐标图当不带返回参数时直接在屏幕上绘制出系统的极坐标图图上用箭头表示w 的变化方向负无穷到正无穷 当带输出变量[re,im,w]引用函数时可得到系统频率特性函数的实部re 和虚部im 及角频率点w 矢量为正的部分可以用plot(re,im)绘制出对应w 从负无穷到零变化的部分l ab 311.gf kd .mt n3. 控制系统Nichols 图MA TLAB 提供了函数nichols()来绘制系统的尼柯尔斯图调用格式为• nichols(num,den)可绘制出以连续时间多项式传递函数表示的系统尼柯尔斯图• nichols (a,b,c,d,iu)可得到从系统第iu 个输入到所有输出的尼柯尔斯图3.5 控制系统的能控性和能观测性分析能控性和能观测性是现代控制理论中两个重要的概念是设计控制器和状态估计器的基础在MA TLAB 中可利用ctrb()和obsv()函数直接求出能控性和能观测性矩阵从而确定系统的状态能控性和能观测性例线性系统如下判断系统的能控性和能观测性x y u x x ⎥⎦⎤⎢⎣⎡−=⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡−−=111111113113&编写脚本M 文件myfun3_8m a=[-3 1;1 -3];b=[1 1;1 1]; c=[1 1;1 -1];d=[0];n=2;Uc=ctrb(a,b);V o=obsv(a,c); if(rank(Uc)==n) if(rank(V o)==n)disp('系统能控又能观测') else disp('系统能控,不能观测') endelse if(rank(V o)==n)disp('系统不能控能观测') else disp('系统不能控又不能观测') end end运行myfun3_8m 系统不能控能观测。
控制系统的计算机辅助分析
THANKS
感谢观看
状态空间法的基本概念
状态空间法是现代控制理论的基础,通过引入状态变量的概念,将系统的动态行为描述为一组状态方程。
状态空间法的优点
状态空间法能够全面描述系统的动态特性,包括稳定性、能控性、能观性等,为控制系统的分析和设计提供了统一的 数学框架。
状态空间法在计算机辅助分析中的应用
计算机辅助分析软件能够方便地处理状态空间法中的矩阵运算和图形化表示,使得控制系统的分析和设 计更加高效、准确。
动态规划在最优控制中的 应用
动态规划方法可用于求解离散时间系统和连 续时间系统的最优控制问题。在离散时间系 统中,通过构造状态转移方程和性能指标函 数,将最优控制问题转化为多阶段决策问题 ;在连续时间系统中,则需将问题离散化后
应用动态规划方法求解。
06
现代控制理论在计算机辅 助分析中的应用
状态空间法在现代控制理论中的地位和作用
经典控制理论回顾
01
传递函数
描述线性定常系统动态特性的数学模型,是系统输出量与输入量的拉普
拉斯变换之比。传递函数反映了系统的固有特性,与输入信号无关。
02
频率响应
系统在正弦信号作用下,输出信号的幅值和相位随输入信号频率变化的
关系。频率响应反映了系统对不同频率信号的传递能力。
03
根轨迹法
通过分析系统特征方程的根随系统参数变化而变化的轨迹,来研究系统
04
非线性系统计算机辅助分 析方法
相平面法及其局限性
相平面法
相平面法是一种通过图形表示非线性系统动态行为的方法。在相平面上,系统的状态变量被表示为点,而状态变 量的变化则被表示为点的轨迹。通过观察和分析相平面上的轨迹,可以了解系统的稳定性、周期性和其他动态特 性。
控制系统的计算机辅助分析课件
计算机辅助分析技术在控制系统设计中发挥 着重要作用,通过对系统的数学模型进行仿 真和优化,可以提高系统的性能和稳定性。
故障诊断
通过对系统的历史数据进行分析和处理,计 算机辅助分析技术可以检测出系统的故障, 并预测其发展趋势,有助于及时采取维修和 保养措施。
优化控制
通过计算机辅助分析技术,可以对控制系统 进行优化,提高系统的效率和性能,降低能 源消耗。
计算机辅助分析技术的优缺点
优点
计算机辅助分析技术具有高效、准确、快速等优点,可以大大缩短分析时间,提高分析的精度和效率。同时, 该技术还可以实现远程协作和数据共享,提高工作效率。
缺点
计算机辅助分析技术需要专业的知识和技能,使用成本较高。此外,由于计算机的限制,某些复杂的问题可能 需要更长的处理时间。
02
03
04
传感器
它测量系统的实际输出,并将测 量值传递给控制器。
控制系统的分类
开环控制系统
在这种系统中,控制器没有关于系统输出的反馈信息。
闭环控制系统
在这种系统中,控制器会接收到关于系统输出的反馈信息,并据此调整控制变量。
02
计算机辅助分析技术
计算机辅助分析技术的定义
计算机辅助分析技术是一种基于计算机的分析技术,利用计算机的高速运算和数据处理能力,对控制 系统进行分析和评估。
特定状态的系统。
02
控制系统的核心是控制器,它根据系统的实际输出与
期望输出的差异来调整控制变量。
03
控制系统的目的是确保系统的输出在各种条件下都能
达到期望的结果。
控制系统的基本组成
执行器
它根据控制器的指令来改变控制 变量的值。
第五章 控制系统计算机辅助分析3.
线性定常离散控制系统稳定的充要条件是: --所有的闭环极点均位于复平面上以坐标原
点为圆心的单位圆以内。 因此判断系统稳定性的最直接的方法是求出系统
全部的闭环极点,根据闭环极点在复平面上的位 置判别系统的稳定性。
2019/7/8
2019/7/8
控制系统计算机辅助设计
4
控制系统的稳定性分析
The polynomial s^3-6*s^2-72*s-27 is represented in MATLAB as
p = [1 -6 -72 -27] The roots of this polynomial are returned in a column
MATLAB提供了一个可以直接求取矩阵特征值 (eigenvalues)的函数eig( ),其调用格式为 d = eig(A)
返回列向量d的元素即为矩阵A的特征值。
调用该函数时,也可以给出两个返回值: [V,D] = eig(A)
D为对角矩阵,对角线上的元素即为矩阵A的特征值。 V是由与特征值相对应的特征向量构成的矩阵。 A*V = V*D
控制系统计算机辅助设计
3
控制系统的稳定性分析
一. 特征方程根的求取
n 阶的线性定常系统,其特征方程是一个n次代数 方程。特征方程的根即为系统的闭环极点, MATLAB提供了求取特征方程根的函数roots( ), 其调用格式为
式中,P为特征多项式的系数向量,返回值V是特 征根构成的列向量。
2019/7/8
控制系统计算机辅助设计
12
控制系统的稳定性分析
或者转换为零极点形式
控制系统计算机辅助设计_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 控制器消除稳态误差。
《控制系统仿真与CAD》课程教学日历
5.5多变量系统的频域分析
4
10
第6周
第六章非线性系统的仿真方法
6.1 Simulink建模基础
6.2控制系统建模与仿真
4
实验:系统分析Simulink建模与仿真、非线性系统分析与仿真、子系统与模块封装
2
第7周
6.3 Simulink的高级技术
第七章控制系统的经典设计方法
7.1超前滞后校正器设计
教学日历类别及内容
月份
周次
讲课
作业、习题课、实验、上机※测验
教学大纲分章和题目名称
学时
内容
学时
9
第1周
第一章控制系统仿真与计算机辅助设计概述
1.1为什么采用MATLAB语言?
1.2课程的主要结构
1.3控制系统计算机辅助设计方法概述
第二章MATLAB语言程序设计基础
2.1MATLAB语言程序设计基础
2.2MATLAB语言图形绘制方法
4.3系统模型的4
第4周
4.5线性系统的模型降阶
4.6线性系统的模型辨识
第五章线性控制系统的计算机辅助分析
5.1线性系统的定性分析
4
实验:基本的数学模型与表示、系统模型转换与化简、系统模型辨识
2
第5周
5.2线性系统的时域分析-解析求解与数值求解
5.3线性系统的根轨迹分析
2.3图形用户界面设计技术
4
第2周
第三章科学运算问题的MATLAB求解
3.1线性代数问题求解
3.2代数方程求解
3.3微分方程求解
3.4最优化问题求解
4
实验:MATLAB语言编程、科学绘图与科学运算求解
2
05-03 状态空间解析解
国家精品课程/ 国家精品资源共享课程/ 国家级精品教材国家级十一(二)五规划教材/ 教育部自动化专业教学指导委员会牵头规划系列教材控制系统仿真与CAD第五章线性系统的计算机辅助分析状态空间解析解Analytical Solutions of State Space Equations主讲:薛定宇教授系统的时域响应线性系统时域响应的解析解状态方程的解析解状态增广方法直接积分方法传递函数模型的解析解Laplace 变换与z 变换,延迟问题时域响应的数值解阶跃响应、脉冲响应、任意输入、非零初值问题直接积分方法状态方程的解析解将公式变代码的直接积分语句得到结果后有必要用simplify()函数化简结果 若只需状态变量,则不用乘C例5-10状态方程的解析解 系统的状态方程为状态变量初值输入信号方程的直接求解 系统模型MATLAB语句基于状态增广的解析解方法状态方程模型解析解求解难点想法:如果能用某种方法消去积分项最好状态增广方法如果输入信号为阶跃信号可以引入增广的状态x(t) = u(t)n+1得出“自治系统”模型阶跃响应的解析解一般输入信号的系统增广 一般输入信号模型引入增广状态变量增广状态方程模型增广状态方程的一般形式增广状态方程模型其中解析解MATLAB函数例5-11状态方程的解析解连续系统模型由MATLAB求解析解状态方程的解析解小结状态方程的解析解是线性系统解析解的一种形式,这里只有连续系统的解第一种方法是利用 int 与 expm 等函数直接求解 第二种方法是利用增广状态的方法求解相应的MATLAB函数 s_augment,expm可以求解非零初值的系统模型在某些输入信号下时域响应的解析解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多变量系统 Luenberger 标准型
侧重点:如何用 MATLAB 直接获取标准型
控制系统仿真与CAD 国家级精品课程
2013-5-12
31/139
单变量系统的标准型
传递函数的一般形式
控制系统仿真与CAD 国家级精品课程
2013-5-12
18/139
变换结果
可见,相似变换能改变系统的结构 引入相似变换矩阵,可以将已知系统转换 成其他的形式
控制系统仿真与CAD 国家级精品课程
2013-5-12
19/139
4.1.4 线性系统的可控性分析
可控性定义
假设系统由状态方程 给出,对任 意的初始时刻 ,如果状态中任一状态 可 以从初始状态 处,由有界的输入信号 的驱动下,在有限时间 内能够到达任意预先 指定的状态 ,则称此状态是可控的。
离散系统:pzmap(G),同时画出单位圆
控制系统仿真与CAD 国家级精品课程
2013-5-12
9/139
例5-1 高阶系统稳定性判定
直接分析方法
零极点模型
控制系统仿真与CAD 国家级精品课程
2013-5-12
10/139
例5-2 高阶离散单位负反馈系统模型
MATLAB 求解
控制系统仿真与CAD 国家级精品课程
控制系统仿真与CAD 国家级精品课程
2013-5-12
主要内容
47/139
5.2.1 直接积分方法
状态方程的解析解 直接积分语句
得到结果后有必要用simple()函数化简结果 若只需状态变量,则不用乘C
控制系统仿真与CAD 国家级精品课程
2013-5-12
48/139
例5-10 系统的状态方程为
控制系统仿真与CAD 国家级精品课程
2013-5-12
8/139
基于 MATLAB 的稳定性判定方法
直接判定
状态方程模型、传递函数模型等
eig(G) 可以求出所有特征根 离散系统:abs(eig(G))
由
isstable(G) 也可以用于系统的稳定性判定
图解判定法
连续系统:pzmap(G)
如果系统中所有的状态都是可控的,则称该系 统为完全可控的系统。 系统的可控性就是指系统内部的状态是不是可 以由外部输出信号控制的性质
控制系统仿真与CAD 国家级精品课程
2013-5-12
20/139
线性系统的可控性判定
可控性判定矩阵
若矩阵 为满秩矩阵,则系统完全可控 基于 MATLAB 的判定方法
控制系统仿真与CAD 国家级精品课程
2013-5-12
27/139
可观测性判定
判定矩阵
等同于 对偶系统: Gram 矩阵 MATLAB 求解
系统的可控性判定
控制系统仿真与CAD 国家级精品课程
2013-5-12
28/139
5.1.6 Kalman 规范分解
Kalman 规范分解
控制系统仿真与CAD 国家级精品课程
2013-5-12
5/139
状态方程系统的稳定性
连续线性状态方程
解析阶
稳定性: 矩阵的特征根均有负实部
控制系统仿真与CAD 国家级精品课程
2013-5-12
6/139
离散系统的稳定性
离散系统状态方程
离散系统时域响应解析阶
稳定性判定:所有特征根均在单位圆内
控制系统仿真与CAD 国家级精品课程
其中 逐一判定每个子传递函数的稳定性很烦琐 内部稳定性定理
控制系统仿真与CAD 国家级精品课程
2013-5-12
13/139
内部稳定性定理
闭环系统内部稳定的充要条件为
没有不稳定零点 没有不稳定零极点对消
第一个条件等效于输入输出稳定性 判定第2条件即可 可以编写MATLAB函数判定内部稳定性
控制系统仿真与CAD 国家级精品课程
2013-5-12
2/139
系统的分析方法
充分利用计算机对线性系统进行分析,在统 一的框架下分析各种线性系统的性质 更新系统分析的观念 求解传统方法难以求解的问题
离散系统稳定性如何分析? Nyquist图、Nichols图没有频率信息,如何弥补? 高阶系统的根轨迹如何绘制? 多变量系统如何进行频域分析?
MATLAB 求解 矩阵构造
控制系统仿真与CAD 国家级精品课程
2013-5-12
23/139
例5-5 求 Gram 矩阵
MATLAB 命令
Gram 矩阵
控制系统仿真与CAD 国家级精品课程
2013-5-12
24/139
可控性阶梯分解
对于不完全可控的系统阶梯分解 阶梯标准型
MATLAB 函数调用
控制系统仿真与CAD 国家级精品课程
2013-5-12
4/139
5.1.1 线性系统的稳定性分析
给定线性系统模型,如何分析稳定性?
单位负反馈闭环系统 由控制理论可知,用Routh 表格可以判定该系统稳定性。 Edward John Routh (1831-1907) 历史局限性
控制系统仿真与CAD 国家级精品课程
由可控性判定矩阵
构造矩阵
控制系统仿真与CAD 国家级精品课程
2013-5-12
37/139
得出 Leunberger 变换矩阵
编写 leunberger.m 函数
控制系统仿真与CAD 国家级精品课程
2013-5-12
38/139
MATLAB 函数清单
控制系统仿真与CAD 国家级精品课程
2013-5-12
39/139
标准型的变换方法总结
可控标准型
可观测标准型 Jordan 标准型
Leunberger 标准型
控制系统仿真与CAD 国家级精品课程
2013-5-12
40/139
例5-7
求解可观测标准型
标准型
控制系统仿真与CAD 国家级精品课程
2013-5-12
41/139
例5-8 已知模型,求Luenberger标准型
MATLAB处理
控制系统仿真与CAD 国家级精品课程
2013-5-12
42/139
5.1.8 系统的范数测度及求解
系统也有范数:范数即测度 范数
范数
范数是系统频域响应的峰值
控制系统仿真与CAD 国家级精品课程
2013-5-12
43/139
状态变量初值 输入信号
控制系统仿真与CAD 国家级精品课程
2013-5-12
49/139
5.2.2 基于状态方程的解析解方法
状态方程模型 解析解
求解难点 想法:如果能用某种方法消去积分项最好
控制系统仿真与CAD 国家级精品课程
2013-5-12
50/139
状态增广方法
消除B 矩阵,变成自治系统
处理后的传递函数标准型
其中 由前面给出的传递函数标准型可以直接写 出系统的可控和可观测标准型
控制系统仿真与CAD 国家级精品课程
2013-5-12
32/139
传递函数一般形式
可控标准型
控制系统仿真与CAD 国家级精品课程
2013-5-12
33/139
传递函数一般形式
可观测标准型
可控标准型和可观测标准型对偶 可以用转置表示对偶
2013-5-12
29/139
4个子空间
既不可控又不可观测子空间 可控但不可观测子空间 不可控但可观测子空间 可控且可观测子空间
示意图
控制系统仿真与CAD 国家级精品课程
2013-5-12
30/139
5.1.7 系统状态方程标准型的 MATLAB 求解
常用标准型
单变量系统的标准型
控制系统仿真与CAD 国家级精品课程
2013-5-12
3/139
5.1 线性系统性质分析
主要内容
线性系统稳定性分析 线性反馈系统内部稳定性分析 线性系统的相似变换 线性系统可控性分析 线性系统可观测性分析 Kalman 分解 系统状态方程的标准型 系统的范数测度及求解
非奇异矩阵 状态变换 新状态方程模型
且
控制系统仿真与CAD 国家级精品课程
2013-5-12
16/139
状态变换公式
MATLAB 直接求解方法
也可以根据上面公式进行变换
控制系统仿真与CAD 国家级精品课程
2013-5-12
17/139
例5-3 已知系统和转换矩阵
MATLAB 求解
构造可控性判定矩阵
控制系统仿真与CAD 国家级精品课程
2013-5-12