matlab入门学习-06控制系统的分析方法
运用MATLAB对控制系统分析研究
运用MATLAB 对控制系统地分析一、根轨迹分析Ks +1i1•已知系统地前向通道传递函数为G c (s)=,G o (s)=,反馈通道传递函数为 H (s )= ----------s + 5s(s+8) s+2试绘制出系统闭环根轨迹图 • b5E2RGbCAP新建Script 文件,进行编辑程序(wsk1 )如下图1所示.'Editor - D:\Proararn Files\MATLAB,,j 回Edit Text Go CelFile Took9,1X:o e ■希■ ■ 01▼+s 目 瑁 ■ 1.0 +寺 11 x1 - Gc=tf (1, [1 5]):uJ2 - G0=tf ([1 1], [1 80]);3 - [1 21);4 -rlocus (Gc*G0*H :i :5 -v=[-10 10 -10 13]6 -axis (v);grid onLn 4Col 17 OVR1.wsk1程序wsk1运行结果如图2所示.图2.根轨迹图pxc VTanrga p0.58 0.44 0.3 0.1412 10L0.7280.8460.92420.98■ ■L = --1 ■s0.9820.924*■0.84680 72 0.58 0.440.3 0.14r[T / frr r10Root Locus5 0-5 -8-6-4-2 102 Real Axis46 8 10阶系统地响应,并绘制一簇阶跃响应曲线.plEanqFDPw编辑程序(wsk2)如下图3所示•Editor• D:\Progrdm Fi|&s\MATLAB\R2010b\bL 旦・l% Edit 琢 血 Cdl ToolsD 肌…]r■ |•刁 e | * 0 * oE 计口 F ・[11 »冋-1.0+ 亠 1.1 x | 显嶽 Q1 1 -nujn=l ;y=zeros(2C0, I) :i=0; 匚 口|2 -for l)c=0. L; 0. 1:13 -d*n= [l t 2*bc 3 1]; 4-t=[0:0. 1 : 19.9] : 1 5 — sys=tf (anitj den) : t 6 一 i=i+r|17 — y ij=£tep (sys, t ): 3 --±nd9 _ 1 r.mesh*flipud 1y)j [-100 20] 1■^4:'wskl.rfl x wsk2,rri xscriptLn 6C Q I 11 OVR3.wsk2程序wsk2运行结果如下图4所示二、时域分析2.已知二阶系统地传递函数为:,当计=1时,试计算E 从0.1变至1时二图4.阶跃响应曲线(以0.1到1 )3.已知二阶系统为:kW'+cs + k,厂1,2,4 },k= {皿2,29人绘制该系统所对应地三组不同参数下地阶跃响应曲线.DXDiTa9E3d编辑程序(WSk3 )如下图5所示.* Editor - D:\Program Fi I AT LA B\R201C b\bi n\M 「回图5.程序wsk3程序wsk3运行结果如图6所示.1.4c =1 k=1.25c=2 k=2/c=4 k=2 9t i0.6 1.2 0.8 0.4 0.2 104.已知单位反馈开环零极点增益模型为: 图6.不同参数下地阶跃响应3(2s 1)G(汨打G ,试绘制该系统单位斜坡响应曲线,并计算单位斜坡响应地稳态误差 (1 )判断系统稳定性,编辑程序( wsk4 1 )如图 7 所示. 、Editor - Di\Progr^mFile5\MATLA R . File Edit Text Go T QQ I^:o a ■船■眉专*|©0*5;沪[-2 1 0]: InL dl]=ZP2TF(z J p,k): s^tf (nlj dl):sys=feedback (Sj 1); roots (sys. d?n (1Hw£k2.m梵 W5k3.m x iArsk4.1 刈tfileLn 4 Col IQOVR图7.程序wsk4 1程序wsk4 1运行结果如下所示ans =-0.1084 + 1.9541i -0.1084 - 1.9541i -0.7832由于所有根均有负实部,故闭环系统稳定 (2)求单位阶跃响应曲线及稳态误差:编辑程序(wsk4_2 )如下图8所示.j Editor - D:\Prvgram Fi|es\M AT LA DIObVbi n\M 百L」= 旦!File Edit Text Go Tools Debug Desktop »? xh1□已・i器町兔IE矗可口| :cl | 一 | + + 1.1 x | 遼・|~ ]£=6;2z=-0.5:3p=I-2 1 0];4[nl,dl]=zp2tf (Zj pj k):5s=tf (nl, dl):6sys^eedback (s, 1);7t=[0:fl.1:30]:s y=stept J :9subplot (121 pl ot1y). gri d10^s=l-y;11subplot ■ 122)plot *1, es), gridf______________________ wsk3.m * wsk4.1 乂|^wsk4J x |=nplain text file Ln 8 Col 10 OVR图8.程序wsk4_2程序wsk4_2运行结果如图9所示图9.单位阶跃响应曲线及其误差响应曲线(3)求单位斜坡响应曲线及稳态误差:编辑程序(wsk4_3 )如图10 所示.程序wsk4 3运行结果如下图11所示.ess =-0.6678图11.单位斜坡响应曲线及其误差响应曲线三、频域分析图10.程序wsk4 32 7 2 75.已知两个单位负反馈系统开环传递函数分别为:G i (s)=—— ------ , G2(S )= ———— 试s + 5s + 4ss + 5s - 4s用Bode 图法判断闭环系统地稳定性 .编辑程序(wsk5 )如图12所示./ Editor - DAHognam Fi|ei ;\MATLAB\R2D10b\bi"\MI 0,回Ale Edit Text Ga Cell Tools Debug Desktop®? XI 口已■諾、F y 士亘”為•晔盹削”丑”口 ”|二昌喝[■ ]10_ + |_* |i.i ' K I 邀 I Q,________ I1 - nun I -[0 0 0 2.7): 亠口|2 — denl= [1 S 4 0);3 « sysl=tf (imiilj denJ!):4 一 f igure (i) "hold on5 一 [<■… vqSj. vcf]=ii3r|:ii ,i(sysl); 6 一 Aaceintsysl):7 - titn r 对数频率持科圉门:| 8 ― xlabelf 4^^rad/sec*》; 自 « yLabeK^Gahn dB B);10>E11 一 rvun2二[Q 0 0 2.7].. 12 一 den2=[i 5 ^4 0]: 13 — 5ys2=tf CHLU12, dm2). 1*1 - f ig?ire<2):15三[皿叫平?小1:6:]5中讪57竝); 16 一 n.axgiin (sys2): 17 一 title 13 -xlab el 『城至zd/ s ec J);19 = ylabelCGain dE^): .2 usages of "nu... script| Ln 7 Cal IS [ OVR图12.程序wsk5运行程序wsk5结果如图13和图14 所示.可以判定系统1稳定,系统2不稳定.对数频率特性图1频率 rad/sec (rad/sec)xtofl^ea^rrngaM 50-50-100\IQeacDDa G-150 -90-135-180-225-27010 101010 210-2-11图13.传递函数G1伯德图图14.传递函数G 2伯德图版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理 •版权为个人所有This articlein eludes someparts, in cludi ng text, pictures, and desig n.Copyright is pers onal own ership.RTCrpuDGiT用户可将本文地内容或服务用于个人学习、研究或欣赏,以及其他非商业性 或非盈利性用途,但同时应遵守著作权法及其他相关法律地规定,不得侵犯本网 站及相关权利人地合法权利.除此以外,将本文任何内容或服务用于其他用途时, 须征得本人及相关权利人地书面许可,并支付报酬 .5PCzVD7HxAUsers may use the contents or services of this article for pers onal study, researchor appreciati on, and other non-commercial or non-profit purposes, but at the same time, they shall abide by the provisi ons of copyright law and other releva nt laws, and shall not infringe upon the legitimate rights of this website and its releva nt obligees. In additi on, when any content or service of this article is used for other purposes, written permissi on and remun erati on shall be obta ined from the pers on concerned and the releva nt obligee.jLBHmAiLg转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目地地合 理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责-150 -210nraG-2702对数频率特性图2-50-100-240-2 -1 0 110 10 10 10频率 rad/sec (rad/sec)10任.XHAQX74J0XReproducti on or quotati on of the content of this article must be reas on able and good-faith citati on for the use of n ews or in formativepublic free information. It shall not misinterpret or modify the original intention of thecontent of this article, and shall bear legal liability such as copyright. LDAYtRyKfE。
MATLAB中常用的控制系统设计技巧
MATLAB中常用的控制系统设计技巧MATLAB是一种广泛应用于科学与工程计算的高级编程语言和环境。
在控制系统设计中,MATLAB提供了许多强大的工具和函数,可以帮助工程师进行系统建模、分析与设计。
以下是MATLAB中常用的控制系统设计技巧的介绍:1.系统建模2.系统分析3.控制器设计在MATLAB中,有多种方法可以进行控制器设计。
根据系统的需求,可以选择经典(SISO)控制器设计方法,如PID控制器,或者现代(MIMO)控制器设计方法,如线性二次调节器(LQR)。
MATLAB提供了一系列用于系统控制器设计的函数和工具箱,如pidtool、sisotool和lqr。
4.基于优化的设计MATLAB中结合了优化算法和系统设计的功能,可以实现基于优化的控制器设计。
使用MATLAB的优化工具箱,可以通过最小化目标函数来优化控制器的性能指标。
例如,可以使用fmincon函数来优化控制器的参数,以满足给定的性能要求。
5.系统仿真MATLAB中的Simulink工具可以用于系统建模和仿真。
Simulink提供了一个图形化界面,用户可以使用不同的模块来描述系统的结构和行为。
通过连接这些模块,可以构建一个完整的系统模型,并对其进行仿真。
这种图形化的建模和仿真环境使得系统设计更加直观和灵活。
6.多变量系统分析MATLAB中的控制系统工具箱提供了多变量系统分析的功能。
可以使用函数如sigma(奇异值分解)、svd(奇异值分解)等来进行系统的频域分析。
此外,MATLAB还提供了一些用于多变量控制器设计的工具,如H∞合成和μ合成。
7.稳定性分析稳定性是控制系统设计中的一个重要指标。
MATLAB中提供了一些函数和工具箱,可以帮助用户分析系统的稳定性。
例如,可以使用margin 函数来计算系统的增益裕度和相位裕度,以评估系统的稳定性。
Matlab技术控制系统性能分析指南
MatIab技术控制系统性能分析指南概论当今社会,控制系统已成为各种领域中重要的技术和应用之一。
它们被广泛用于工业自动化、机电设备、航天航空等众多领域中。
控制系统的性能分析是确保系统正常运行和提高系统性能的必要步骤。
Mat1ab作为一种功能强大的工具,为控制系统性能分析提供了多种方法和技术。
本文将介绍一些基本的MaIIab技术,帮助读者进行控制系统性能分析。
一、系统建模在进行控制系统性能分析之前,首先需要进行系统建模。
系统建模是将实际物理系统抽象为数学模型的过程。
掌握系统建模方法对于准确分析系统性能至关重要。
Mat1ab提供了一系列工具和函数,可以用于快速建立系统模型。
有两种常用的系统建模方法:时域建模和频域建模。
1.时域建模时域建模基于系统的时间响应特性。
通过测量系统的输入和输出信号,并对其进行采样和离散化,可以得到系统的差分方程。
MaUab中的State-space函数是进行时域建模的常用工具。
它可以根据系统的状态方程和输出方程生成系统模型。
可以使用如下代码进行建模:A=∏2;341;B=[1;1];C=[10];D=O;sys=ss(A,B,C,D);其中,A、B、C和D分别表示状态空间方程的系数矩阵。
利用该函数建立的系统模型可以方便地进行时域性能分析。
2.频域建模频域建模基于系统的频率响应特性。
通过测量系统的输入和输出信号的频谱,并进行信号处理,可以得到系统的传递函数。
Mat1ab中的tf函数是进行频域建模的常用工具。
它可以根据系统的传递函数生成系统模型。
可以使用如下代码进行建模:num=[1];den=[11];sys=tf(num,den);其中,num和den分别表示传递函数的分子和分母系数。
利用该函数建立的系统模型可以方便地进行频域性能分析。
二、系统性能评估建立了系统模型之后,就可以进行系统性能的评估了。
针对不同的性能指标,可以使用不同的分析方法。
1稳态误差分析稳态误差衡量了系统在输入信号为稳态信号时的输出误差。
用MATLAB进行控制系统的动态性能的分析
用MATLAB进行控制系统的动态性能的分析MATLAB是一款功能强大的工具,可用于控制系统的动态性能分析。
本文将介绍使用MATLAB进行动态性能分析的常用方法和技巧,并提供实例来说明如何使用MATLAB来评估和改进控制系统的性能。
控制系统的动态性能是指系统对输入信号的响应速度、稳定性和精度。
评估控制系统的动态性能往往需要分析系统的阶跃响应、频率响应和稳态误差等指标。
一、阶跃响应分析在MATLAB中,可以使用step函数来绘制控制系统的阶跃响应曲线。
假设我们有一个系统的传递函数为:G(s)=(s+1)/(s^2+s+1)要绘制阶跃响应曲线,可以按照以下步骤操作:1.自动生成传递函数:num = [1 1];den = [1 1 1];G = tf(num,den);2.绘制阶跃响应曲线:step(G);二、频率响应分析频率响应分析用于研究控制系统对不同频率输入信号的响应特性。
在MATLAB中,可以使用bode函数来绘制控制系统的频率响应曲线。
假设我们有一个传递函数为:G(s)=1/(s+1)要绘制频率响应曲线,可以按照以下步骤操作:1.自动生成传递函数:num = [1];den = [1 1];G = tf(num,den);2.绘制频率响应曲线:bode(G);运行以上代码,MATLAB将生成一个包含系统幅频特性和相频特性的图形窗口。
通过观察频率响应曲线,可以评估系统的增益裕度(gain margin)和相位裕度(phase margin)等指标。
三、稳态误差分析稳态误差分析用于研究控制系统在稳态下对输入信号的误差。
在MATLAB中,可以使用step函数结合stepinfo函数来计算控制系统的稳态误差。
假设我们有一个传递函数为:G(s)=1/s要计算稳态误差,可以按照以下步骤操作:1.自动生成传递函数:num = [1];den = [1 0];G = tf(num,den);2.计算稳态误差:step(G);info = stepinfo(G);运行以上代码,MATLAB将生成一个阶跃响应曲线的图形窗口,并输出稳态误差等信息。
MATLAB中的控制系统设计方法解析
MATLAB中的控制系统设计方法解析一、引言控制系统设计是现代工程领域中的重要任务之一。
在工程实践中,控制系统的设计往往涉及到模型建立、系统分析、控制器设计和系统性能评估等多个方面。
而在MATLAB软件中,我们可以利用其强大的数值计算能力和丰富的控制系统工具箱,实现高效、准确的控制系统设计。
本文将深入探讨MATLAB中常用的控制系统设计方法,帮助读者更好地理解和运用MATLAB进行控制系统设计。
二、控制系统设计的基础1. 控制系统建模在进行控制系统设计之前,首先需要对被控对象进行建模。
MATLAB提供了多种建模方法和技术,包括基于物理原理的建模、基于数据的建模以及系统辨识等。
对于线性系统,可以使用传递函数模型或状态空间模型进行描述。
而对于非线性系统,则需要使用非线性方程或离散时间模型来进行建模。
2. 系统分析与性能要求在进行控制系统设计之前,我们需要对系统进行详细的分析,并明确性能要求。
MATLAB中提供了丰富的系统分析工具,包括时域分析、频域分析、稳定性分析、灵敏度分析等。
通过这些工具,我们可以清晰地了解系统的动态特性和频率响应,并根据性能要求来选择合适的控制策略。
三、控制器设计方法1. PID控制器设计PID控制器是最常用的控制器之一,它具有简单、易于实现的特点。
在MATLAB中,可以使用pidtune函数进行PID控制器的设计。
该函数通过优化PID参数,使系统的指定性能要求得到满足。
可以根据系统的阶跃响应、频率响应等指标来进行参数优化。
除了pidtune函数,MATLAB中还提供了pid函数和pid2函数,用于生成PID控制器。
2. 线性二次型控制器设计线性二次型控制器(LQR)是一种常用的优化控制方法,它通过优化状态反馈增益矩阵来实现系统的稳定和性能优化。
在MATLAB中,可以使用lqr函数进行LQR控制器的设计。
该函数需要输入系统的状态方程、控制权重矩阵和状态权重矩阵,通过求解Riccati方程得到最优的状态反馈增益矩阵。
MATLAB:经典控制系统的分析和设计
MATLAB:经典控制系统的分析和设计9.3.1 基本操作及命令1. 访问和退出MATLAB在大多数系统中,一旦安装了MATLAB,在调用时,应执行命令MATLAB。
退出MATLAB应执行命令exit或quit。
2. 如何应用MATLAB通常以命令驱动方式应用MATLAB。
当输入单个命令时,MATLAB会立即对其进行处理,并且显示处理结果。
MATLAB 也能够执行存储在文件中的命令序列。
通过键盘输入的命令,应用向上箭头键可以被存取。
通过输入某个最新命令和调用特定的命令行,可以使屏幕内容向上滚动。
3. MATLAB的变量MATLAB的一个特点是变量在应用之前不必是维数确定的。
在MATLAB中,变量一旦被采用,会自动产生(如果必要,变量的维数以后还可以改变)。
在命令exit或quit输入之前,这些变量将保留在存储器中。
为了得到工作空间内的变量清单,可以通过键盘输入命令who,当前存放在工作空间内的所有变量便会显示在屏幕上。
命令clear能从工作空间中清除所有非永久性变量。
如果只需要从工作空间中清除某个特定变量,比如“x”,则应输入命令clear x。
4. 以“%”开始的程序行在本书中,许多MATLAB程序在编写时附有注解和说明,这些注解和说明阐明了发生在程序中的具体进程。
在MATLAB 中以“%”开始的程序行,表示注解和说明。
符号“%”类似于BASIC中“REM”。
以“%”开始的行,用来存储程序的注解或说明,这些注解和说明是不执行的。
这就是说,在MATLAB程序行中,出现在“%”以后的一切内容都是可以忽略的。
如果注解或说明需要一行以上程序行,则每一行均需以“%”为起始。
5. 应用分号操作符分号用来取消打印。
如果语句的最后一个符号是分号,则打印被取消,但是命令仍在执行,而结果不再显示。
这是一个有益的特性,因为打印中间结果可能不必要。
此外,在输入矩阵时,除非最后一行,分号用来指示一行的结束。
6. 应用冒号操作符冒号操作符在MATLAB中起着重要作用。
控制系统的分析方法-MATLAB技术应用
ii=find(条件式)
用来求取满足条件的向量的下标向量,以列向量表示。
例如
条件式real(p>0),其含义就是找出极点向量p中满足实 部的值大于0的所有元素下标,并将结果返回到ii向量中去。这 样如果找到了实部大于0的极点,则会将该极点的序号返回到ii 下。如果最终的结果里ii的元素个数大于0,则认为找到了不稳 定极点,因而给出系统不稳定的提示,若产生的ii向量的元素 个数为0,则认为没有找到不稳定的极点,因而得出系统稳定 的结论。 pzmap(p,z)
系统稳定及最小相位系统的判别 方法
1、间接判别(工程方法) 劳斯判据:劳斯表中第一列各值严格为正,则系统 稳定,如果劳斯表第一列中出现小于零的数值,系 统不稳定。 胡尔维茨判据:当且仅当由系统分母多项式构成的 胡尔维茨矩阵为正定矩阵时,系统稳定。 2、直接判别 MATLAB提供了直接求取系统所有零极点的函数, 因此可以直接根据零极点的分布情况对系统的稳定 性及是否为最小相位系统进行判断。
margin()函数
margin函数可以从频率响应数据中计算出幅值裕度、相角裕度以 及对应的频率。幅值裕度和相角裕度是针对开环SISO系统而言,它 指示出系统闭环时的相对稳定性。当不带输出变量引用时,margin 可在当前图形窗口中绘制出带有裕量及相应频率显示的Bode图,其 中幅值裕度以分贝为单位。 幅值裕度是在相角为-180度处使开环增益为1的增益量,如在-180 度相频处的开环增益为g,则幅值裕度为1/g;若用分贝值表示幅值 裕度,则等于:-20*log10(g)。类似地,相角裕度是当开环增益为1.0 时,相应的相角与180度角的和。
控制系统的稳定性分析
系统稳定及最小相位系统判据
对于连续时间系统,如果闭环极点全部在S平面左 半平面,则系统是稳定的。 对于离散时间系统,如果系统全部极点都位于Z 平面的单位圆内,则系统是稳定的。
控制系统设计与分析MATLAB
控制系统设计与分析MATLAB1. 引言控制系统是现代工程中的重要部分,它在各个领域中起着至关重要的作用。
MATLAB (Matrix Laboratory) 是一种广泛应用于科学与工程计算的高级技术计算与模型设计与仿真软件。
本文将介绍使用MATLAB进行控制系统的设计与分析的基本原理和方法。
2. 控制系统设计2.1. 控制系统概述控制系统主要由输入、输出和控制器组成。
输入是指系统的外部输入信号,输出是系统产生的响应信号,而控制器则决定输出信号如何调整以使系统达到所需的性能指标。
2.2. 开环控制系统设计开环控制系统是一种不考虑系统输出信号对控制器的影响的控制系统。
在MATLAB中,可以使用控制系统工具箱进行开环控制系统的设计。
首先,我们需要构建系统的传递函数模型,然后可以使用工具箱中的函数来设计控制器。
2.3. 闭环控制系统设计闭环控制系统是一种通过系统输出信号反馈给控制器来调整输出信号的控制系统。
在MATLAB中,可以使用控制系统工具箱进行闭环控制系统的设计。
与开环控制系统类似,我们需要构建系统的传递函数模型,并使用工具箱中的函数设计控制器。
不同的是,闭环系统设计中还需要考虑稳定性和性能指标。
2.4. 调整控制器参数在控制系统设计过程中,控制器的参数调整对系统性能有很大影响。
MATLAB 提供了多种方法来帮助我们调整控制器参数,例如PID调节器和根轨迹设计等。
通过实时仿真和反馈,我们可以调整控制器参数以满足系统性能要求。
3. 控制系统分析3.1. 系统响应分析控制系统的性能可以通过分析系统的响应来评估。
在MATLAB中,可以使用step函数、impulse函数和freqresp函数等来分析系统的阶跃响应、脉冲响应和频率响应。
通过分析这些响应,我们可以评估系统的稳定性、阻尼性能和频率特性等指标。
3.2. 频域分析频域分析是通过将输入和输出信号在频域上进行转换来分析系统的特性。
在MATLAB中,可以使用fft函数和bode函数等来进行频域分析。
如何使用Matlab进行控制系统设计和分析
如何使用Matlab进行控制系统设计和分析引言:控制系统是现代工程领域中一个重要的研究方向,它在许多领域中发挥着重要作用,例如航空航天、汽车工程、机械工程等。
Matlab作为一种功能强大的工具,可用于控制系统设计和分析。
本文将介绍如何使用Matlab进行控制系统设计和分析,从基本概念到具体应用等方面进行讲解。
一、Matlab中的控制系统工具箱Matlab提供了控制系统工具箱,该工具箱包含了一系列用于控制系统设计和分析的函数和工具。
通过调用这些函数,我们可以方便地创建、分析和优化控制系统。
二、控制系统的基本概念在进行控制系统设计和分析前,我们需要了解控制系统的基本概念。
控制系统由输入、输出和系统本身组成。
输入是控制系统接收的信号,输出是控制系统产生的信号。
系统本身是由一些元件组成的,例如传感器、执行器和控制器等。
三、Matlab中的控制系统建模在进行控制系统设计和分析前,我们需要对系统进行建模。
建模是指将现实世界中的系统抽象为数学模型。
Matlab提供了建模工具,例如传递函数、状态空间模型等,可以方便地进行系统建模。
四、控制系统的稳定性分析控制系统的稳定性是控制系统设计中一个重要的指标。
Matlab提供了稳定性分析工具,例如根轨迹法、Nyquist法等。
通过分析系统的稳定性,我们可以评估系统的性能。
五、控制系统的性能指标评估除了稳定性外,性能指标也是控制系统设计中需要考虑的因素。
Matlab提供了性能指标评估工具,例如超调量、调节时间等。
通过评估系统的性能指标,我们可以优化控制系统的性能。
六、控制系统的设计和优化控制系统的设计和优化是实际应用中的核心任务。
Matlab提供了控制系统设计和优化工具,例如PID控制器设计、最优控制器设计等。
通过设计和优化控制系统,我们可以提高系统的鲁棒性和性能。
七、控制系统的仿真和验证在设计和优化控制系统后,我们需要进行系统的仿真和验证。
Matlab提供了仿真和验证工具,例如Simulink等。
Matlab中的控制系统设计与实现方法
Matlab中的控制系统设计与实现方法概述:控制系统是现代工程中不可或缺的一部分,在各种领域都有广泛的应用。
而在控制系统的设计与实现中,Matlab作为一种强大的工具和平台,为工程师们提供了方便快捷的方法和功能。
本文将介绍Matlab中控制系统设计与实现的一些常见方法和技巧,帮助读者更好地利用Matlab进行控制系统的开发工作。
一、系统建模与评估系统建模是控制系统设计的第一步,而Matlab中提供了丰富的函数和工具来支持系统建模工作。
首先,可以利用Matlab中的信号处理工具箱进行信号分析和特征提取,从实际系统中采集到的数据中提取出有用的信息。
然后,可以使用系统辨识工具箱来估计系统的传递函数或状态空间模型,并对系统进行参数辨识和误差分析。
此外,还可以使用Matlab中的PID控制工具箱对系统进行仿真和性能评估,从而选择合适的控制器类型和参数。
二、控制系统设计方法在控制系统设计中,经典的PID控制器常常是最常用的一种。
在Matlab中,可以使用pid函数来创建PID控制器,并使用simulink来进行系统仿真。
此外,Matlab还提供了其他类型的控制器设计方法,如模糊控制、自适应控制、最优控制等。
这些控制器设计方法可以根据系统的特点和需求来选择,并用Matlab进行相应的建模、仿真和调试工作。
三、多变量控制系统设计对于多变量控制系统,Matlab中的多变量控制工具箱是一个非常有用的工具。
可以使用此工具箱来设计和调试多变量控制系统,并进行性能分析和优化。
此外,Matlab还支持频域分析和频域设计方法,可以用于对多变量系统进行频谱分析和频域优化。
四、控制系统实现与调试在控制系统设计完成后,需要将设计好的控制器实现到实际系统中,并对系统进行调试和优化。
Matlab提供了一系列的实时控制和调试工具箱,如数据采集工具箱、实时仿真工具箱等,可以帮助工程师们进行控制器的实时实施和调试工作。
此外,Matlab还支持与硬件设备的接口,可以将设计好的控制器实时连接到实际系统中,实现对系统的实时控制与监控。
matlab线性控制系统分析与设计
x1 0 x 2 2 n
x1 0 x 2 u (t ) 2n 2 n 1
MATLAB中状态方程模型的建立使用ss和dss命令。
语法: G=ss(a,b,c,d) %由a、b、c、d参数获得状态方程模型 G=dss(a,b,c,d,e)
Transfer function: 1 ----------------s^2 + 1.414 s + 1
6.1.3 零极点描述法
( s z1 )( s z2 )...( s zm ) G s k ( s p1 )( s p2 )...( s pn )
MATLAB中使用zpk命令可以来实现由零极点得到 传递函数模型。
x1 y (t ) 可以用状态方程描述: d y (t ) x2 d t d y (t ) 1 x dt x 2 y (t ) 2 d y (t ) 2u (t ) 2 n n n dt
Ex Ax Bu y Cx Du
x3
b= u1 x1 x2 x3 ... 1 0 0
0
2
0
3 s^3 + 5 s^2 + 2 s + 1
>> G12=tf(num(2,:),den) Transfer function:
s^2 + 2 s + 3
6.1.4
离散系统的数学描述
1. 状态空间描述法
x(n 1) Ax(n) Bu (n) y (n) Cx(n) Du (n) u为输入向量,x为状态向量,y为输出向量,n为采样时刻
状态空间描述离散系统也可使用ss和dss命令。 语法:
Matlab中的自动控制系统设计方法
Matlab中的自动控制系统设计方法引言自动控制系统设计是工程学和应用科学中的关键领域之一。
它涉及到设计和分析控制系统以实现所期望的性能和稳定性。
在过去的几十年里,Matlab已经成为自动控制系统设计和分析的主要工具之一。
Matlab提供了丰富的工具箱和功能,使得工程师和研究人员能够更有效地进行控制系统设计和模拟。
1. 控制系统建模在进行控制系统设计之前,首先需要建立控制系统的数学模型。
Matlab提供了多种建模工具和方法。
最常用的是使用状态空间表示。
状态空间模型能够描述系统的动态性能,并方便进行系统分析和控制设计。
利用Matlab的控制系统工具箱,我们可以通过输入系统的差分方程或传递函数来生成状态空间模型。
2. 控制系统分析在建立控制系统模型之后,我们可以使用Matlab进行系统分析。
Matlab提供了多种用于控制系统分析的函数和工具箱。
其中一种常用的方法是频域分析。
通过将系统模型转换为频域表示,我们可以分析系统的频率响应和幅频特性。
Matlab的频域工具箱提供了诸如Bode图、Nyquist图和Nyquist稳定性判据等工具,可以帮助我们评估系统的稳定性和性能。
3. 控制系统设计控制系统设计是自动控制系统领域的核心内容。
在Matlab中,我们可以利用多种方法进行控制系统设计。
其中最常用的方法之一是根据系统模型进行极点配置。
极点配置方法通过将系统的闭环极点置于期望的位置来实现所需的性能和稳定性。
使用Matlab的LTI工具箱,我们可以轻松进行极点配置,并优化系统的性能。
另一种常用的设计方法是基于频域特性的控制器设计。
在Matlab中,我们可以使用频域工具箱来设计频率响应规范的控制器。
常用的频域设计方法包括PID控制器设计、根轨迹设计以及H∞优化设计等。
利用Matlab的强大功能,我们可以根据不同的频响规范和性能要求,设计出满足需求的控制器。
4. 控制系统仿真控制系统仿真是自动控制系统设计不可或缺的一部分。
Matlab中的控制系统设计方法介绍
Matlab中的控制系统设计方法介绍引言:在工程学中,控制系统设计是一个重要而复杂的领域。
通过控制系统设计,我们可以实现对各种工程系统的稳定性、响应速度和准确性进行调节和优化。
而作为一种强大而灵活的工具,Matlab在控制系统设计中扮演着重要的角色。
本文将介绍Matlab中的一些常用的控制系统设计方法,旨在为控制系统设计者提供一些指导和帮助。
一、传递函数法传递函数法是控制系统设计中常用的一种方法。
在Matlab中,我们可以使用tf 命令来构建传递函数。
例如,若要构建一个传递函数为G(s) = (s+1)/(s^2+s+1)的系统,可以使用以下代码:G = tf([1 1], [1 1 1]);得到的结果G即为所需的传递函数。
通过传递函数,我们可以对系统进行性能分析和优化。
比如,使用step命令可以绘制系统的单位阶跃响应曲线:step(G);二、状态空间法状态空间法是描述线性时不变系统的一种常用方法。
在Matlab中,我们可以使用ss命令来构建状态空间模型。
例如,若要构建一个状态空间模型为x'=Ax+Bu,y=Cx+Du的系统,可以使用以下代码:A = [1 2; 3 4];B = [1; 1];C = [1 0; 0 1];sys = ss(A, B, C, D);通过状态空间模型,我们可以进行系统的稳定性和可控性分析。
比如,使用eig命令可以计算系统的特征值:eig(A);使用ctrb命令可以计算系统的控制能力矩阵:ctrb(A, B);三、PID控制器设计PID控制器是一种常用且有效的控制器设计方法。
在Matlab中,我们可以使用pid命令来设计PID控制器。
例如,若要设计一个PID控制器,可以使用以下代码:Kp = 1;Ki = 0.1;Kd = 0.2;C = pid(Kp, Ki, Kd);通过PID控制器,我们可以对系统的性能进行调节和优化。
比如,使用feedback命令可以构建闭环系统,并使用step命令绘制系统的单位阶跃响应曲线:sys_cl = feedback(G*C, 1);step(sys_cl);四、根轨迹法根轨迹法是一种图形化的控制系统设计方法。
用matlab实现自动控制系统的分析与设计方案
使用MATLAB对控制系统进行计算机仿真的主要方法是:以控制系统的传递函数为基础,使用MATLAB的Simulink工具箱对其进行计算机仿真研究。
1.时域分析中性能指标为了保证电力生产设备的安全经济运行,在设计电力自动控制系统时,必须给出明确的系统性能指标,即控制系统的稳定性、准确性和快速性指标。
通常用这三项技术指标来综合评价一个系统的控制水平。
对于一个稳定的控制系统,定量衡量性能的好坏有以下几个性能指标:(1)峰值时间tp;(2)调节时间ts;(3)上升时间tr;(4)超调量Mp%。
怎样确定控制系统的性能指标是控制系统的分析问题;怎样使自动控制系统的性能指标满足设计要求是控制系统的设计与改造问题。
在以往进行设计时,都需要通过性能指标的定义徒手进行大量、复杂的计算,如今运用MATLAB可以快速、准确的直接根据响应曲线得出性能指标。
例如:求如下二阶系统的性能指标:首先用MATLAB在命令窗口编写如下几条简单命令:num=[3]; %传递函数的分子多项式系数矩阵den=[1 1.5 3]; %传递函数的分母多项式系数矩阵G=tf(num,den); %建立传递函数grid on; %图形上出现表格step(G) %绘制单位阶跃响应曲线通过以上命令得到单位阶跃响应曲线如图1,同时在曲线上根据性能指标的定义单击右键,则分别可以得到此系统的性能指标:峰值时间tp=1.22s;调节时间ts=4.84s;上升时间tr=0.878s;超调量Mp%=22.1%。
图1 二阶系统阶跃响应及性能指标2.具有延迟环节的时域分析在许多实际的电力控制系统中,有不少的过程特性(对象特性)具有较大的延迟,例如多容水箱。
对于具有延迟过程的电力控制无法保证系统的控制质量,因此进行设计时必须考虑实际系统存在迟延的问题,不能忽略。
所以设计的首要问题是在设计系统中建立迟延环节的数学模型。
在MATLAB环境下建立具有延迟环节的数学模型有两种方法。
运用MATLAB对控制系统分析
运用MATLAB 对控制系统的分析一、根轨迹分析1. 已知系统的前向通道传递函数为Gc(s)=5Ks +,G0(s)=1(8)s s s ++,反馈通道传递函数为H (s )=12s +,试绘制出系统闭环根轨迹图。
新建Script 文件,进行编辑程序(wsk1)如下图1所示。
图1. 程序wsk1程序wsk1运行结果如图2所示。
-10-8-6-4-20246810-10-50510Root LocusReal AxisI m a g i n a r y A x i s图2.根轨迹图二、时域分析2. 已知二阶系统的传递函数为:2nn 22ns 2s )s (ω+ξω+ω=Φ,当ωn=1时,试计算ξ从0.1变至1时二阶系统的响应,并绘制一簇阶跃响应曲线。
编辑程序(wsk2)如下图3所示。
图3.程序wsk2程序wsk2运行结果如下图4所示5105010015020000.511.52图4.阶跃响应曲线(ξ从0.1到1)3. 已知二阶系统为:kcs s k)s (G 2++=,c={1,2,4},k={1.25,2,29},绘制该系统所对应的三组不同参数下的阶跃响应曲线。
编辑程序(wsk3)如下图5所示。
图5. 程序wsk3程序wsk3运行结果如图6所示。
图6. 不同参数下的阶跃响应4.已知单位反馈开环零极点增益模型为:)1s )(2s (s )1s 2(3)s (G -++=,试绘制该系统单位斜坡响应曲线,并计算单位斜坡响应的稳态误差。
(1)判断系统稳定性,编辑程序(wsk4_1)如图7所示。
图7. 程序wsk4_1(2)求单位阶跃响应曲线及稳态误差:编辑程序(wsk4_2)如下图8所示。
图8. 程序wsk4_2程序wsk4_2运行结果如图9所示01020300102030图9. 单位阶跃响应曲线及其误差响应曲线(3)求单位斜坡响应曲线及稳态误差: 编辑程序(wsk4_3)如图10所示。
图10. 程序wsk4_3-1.2-1-0.8-0.6-0.4-0.200.20.40.6图11. 单位斜坡响应曲线及其误差响应曲线三、频域分析5. 已知两个单位负反馈系统开环传递函数分别为:s4s 5s 7.2)s (G 231++=,s4s 5s 7.2)s (G 232-+=试用Bode 图法判断闭环系统的稳定性。
MATLAB 实用教程:第6章 线性控制系统分析与设计
6.4.2 脉冲响应分析
1. 连续系统的脉冲响应 impulse(G, Ts) %绘制系统的脉冲响应曲线 impulse(G1,G2,…,Ts)% 绘 制 多 个 系 统 的 脉 冲 响 应 [y,t,x]=impulse(G,Ts) %得出脉冲响应 说明:G为系统模型;y为时间响应;t为时间向量; x为状态变量响应,t和x可省略;Ts为时间点可省略。
3. 系统根轨迹的设计工具RLTool rltool(G) %打开某系统根轨迹分析的图形界面
练习:
画出最佳二阶系统当输入为脉冲、阶跃信号时的波
形。
>> num=1
>> den=[1 1.414 1];
>> G=tf(num,den);
>> t=0:0.1:20;
>> impulse(G,t) >> hold on >> step(G,t)
G=tf(num,den)
说明:num为分子向量, num=[b1,b2,…,bm,bm+1];
den为分母向量,den=[a1,a2,…,an-1,an]。 例:最佳二阶系统 。
>> num=1;
>> den=[1 1.414 1];
>> G=tf(num,den)
%得出传递函数
6.1.3 零极点描述法
6.2.3 模型对象的属性
1. 模型对象的属性
2. get命令和set命令
MATLAB中常用的控制系统设计技巧
MATLAB中常用的控制系统设计技巧引言控制系统是一种重要的工程应用技术,它在各个领域中被广泛应用。
而MATLAB作为一种功能强大的数学软件,提供了一系列用于控制系统设计和分析的工具箱。
本文将介绍一些在MATLAB中常用的控制系统设计技巧,帮助读者更好地掌握这一领域的知识。
一、传递函数的建模与分析在控制系统设计过程中,传递函数是一个常见的数学模型。
MATLAB提供了多种方法来建立和分析传递函数。
其中一个常用的方法是使用控制系统工具箱中的`tf`函数,它可以根据给定的分子和分母多项式系数来创建传递函数。
例如,我们可以使用以下代码来创建一个传递函数:```num = [1]; % 分子多项式系数den = [1 2 1]; % 分母多项式系数sys = tf(num, den); % 创建传递函数```接下来,我们可以使用`step`函数来绘制系统的阶跃响应曲线,用以分析系统的动态特性。
例如:```step(sys); % 绘制传递函数的阶跃响应```此外,MATLAB还提供了许多其他用于分析传递函数的函数,如`impulse`函数(绘制阶跃响应曲线)、`bode`函数(绘制幅频响应曲线)、`nyquist`函数(绘制Nyquist曲线)等等。
读者可以根据具体需求选择适合的函数进行分析。
二、PID控制器设计PID控制器是一种常用的反馈控制器,在MATLAB中也可以通过控制系统工具箱进行设计和分析。
首先,我们可以使用`pid`函数来创建一个PID控制器对象。
例如:```Kp = 1; % 比例增益Ki = 0.5; % 积分增益Kd = 0.2; % 微分增益ctrl = pid(Kp, Ki, Kd); % 创建PID控制器对象```然后,我们可以将该PID控制器与传递函数进行连接,形成一个闭环系统。
例如:```sys_cl = feedback(ctrl * sys, 1); % 建立闭环系统```最后,我们可以使用`step`函数来绘制闭环系统的阶跃响应曲线,并通过观察曲线来判断控制器参数的优劣。
使用Matlab进行控制系统设计与分析
使用Matlab进行控制系统设计与分析引言:控制系统是现代工程和科学中一个非常重要的领域。
它涉及到将输入信号转换成所需的输出信号,以实现预期的目标。
在控制系统的设计和分析过程中,Matlab 是一个强大而常用的工具。
本文将介绍如何使用Matlab进行控制系统的设计和分析。
一、控制系统基础1.1 控制系统的定义和组成控制系统是由输入、输出、控制器和被控制对象组成的。
输入是控制系统接收的信号,输出是控制系统生成的信号,控制器是控制系统中用于处理输入信号的设备,被控制对象是受到控制器控制的设备或系统。
1.2 控制系统的类型控制系统可以分为开环控制和闭环控制。
开环控制是指输出不会影响输入的控制方式,闭环控制是指输出会影响输入的控制方式。
闭环控制系统具有更好的稳定性和鲁棒性,因此在实际应用中被广泛采用。
二、Matlab在控制系统设计中的应用2.1 建立系统模型在控制系统设计和分析过程中,首先需要建立控制系统的数学模型。
Matlab提供了丰富的工具和函数来建立系统模型,比如利用传递函数、状态空间模型或者差分方程描述系统。
可以使用tf函数、ss函数或者zpk函数来建立模型。
2.2 控制系统设计在控制系统设计中,我们常常需要设计一个控制器来实现系统的期望响应。
Matlab提供了多种控制器设计方法,比如经典控制设计方法和现代控制设计方法。
可以使用pid函数、lqr函数、kalman函数等来设计控制器,根据系统的需求选择合适的方法。
2.3 系统响应分析控制系统设计完成后,需要进行系统响应分析来评估系统的性能。
Matlab提供了丰富的信号处理和分析函数来分析系统的时域响应、频域响应和稳定性。
比如可以使用step函数、bode函数和pzmap函数来绘制系统的步响应、频率响应和零极点图。
三、示例:温度控制系统设计与分析为了更好地说明Matlab在控制系统设计与分析中的应用,接下来将以一个温度控制系统为例进行说明。
3.1 系统建模假设我们需要设计一个用于维持房间温度的温度控制系统。
利用Matlab进行控制系统设计和分析
利用Matlab进行控制系统设计和分析控制系统是各个工程领域中不可或缺的一部分。
它可以用来控制机器人、飞行器、电机以及其他众多的实际工程应用。
Matlab作为一种功能强大的数值计算软件,提供了丰富的工具和函数来进行控制系统设计和分析。
本文将介绍如何利用Matlab来进行控制系统的设计和分析。
一、控制系统基本概念在开始之前,我们先来了解一些控制系统的基本概念。
控制系统由三个基本组成部分构成:输入、输出和反馈。
输入是指信号或者指令,输出则是系统对指令的响应,而反馈则是输出信号对系统输入的影响。
二、Matlab中的控制系统工具箱Matlab提供了专门用于控制系统设计和分析的工具箱。
其中最重要的是Control System Toolbox。
该工具箱中包含了一系列用于控制系统设计和分析的函数和工具。
使用Control System Toolbox,我们可以很方便地进行控制系统的建模、设计和分析。
三、控制系统的建模控制系统的建模是指将实际系统抽象为数学模型。
在Matlab中,我们可以使用State Space模型、Transfer Function模型以及Zero-Pole-Gain模型来描述控制系统。
1. 状态空间模型状态空间模型是一种常用的描述系统动态响应的方法。
在Matlab中,我们可以使用stateSpace函数来创建状态空间模型。
例如,我们可以通过以下方式创建一个简单的二阶状态空间模型:A = [0 1; -1 -1];B = [0; 1];C = [1 0];D = 0;sys = ss(A, B, C, D);2. 传递函数模型传递函数模型是另一种常用的描述系统动态响应的方法。
在Matlab中,我们可以使用tf函数来创建传递函数模型。
例如,我们可以通过以下方式创建一个简单的一阶传递函数模型:num = 1;den = [1 2];sys = tf(num, den);3. 零极点增益模型零极点增益模型是用来描述系统频域特性的一种方法。
MATLAB实现控制系统稳定性分析
MATLAB 实现控制系统稳定性分析稳定是控制系统的重要性能,也是系统能够工作的首要条件,因此,如何分析系统的稳定性并找出保证系统稳定的措施,便成为自动控制理论的一个基本任务.线性系统的稳定性取决于系统本身的结构和参数,而与输入无关.线性系统稳定的条件是其特征根均具有负实部. 在实际工程系统中,为避开对特征方程的直接求解,就只好讨论特征根的分布,即看其是否全部具有负实部,并以此来判别系统的稳定性,由此形成了一系列稳定性判据,其中最重要的一个判据就是Routh 判据.Routh 判据给出线性系统稳定的充要条件是:系统特征方程式不缺项,且所有系数均为正,劳斯阵列中第一列所有元素均为正号,构造Routh 表比用求根判断稳定性的方法简单许多,而且这些方法都已经过了数学上的证明,是完全有理论根据的,是实用性非常好的方法.但是,随着计算机功能的进一步完善和Matlab 语言的出现,一般在工程实际当中已经不再采用这些方法了.本文就采用Matlab 对控制系统进行稳定性分析作一探讨.1 系统稳定性分析的Matlab 实现1.1 直接判定法根据稳定的充分必要条件判别线性系统的稳定性,最简单的方法是求出系统所有极点,并观察是否含有实部大于0的极点,如果有,系统则不稳定.然而实际的控制系统大部分都是高阶系统,这样就面临求解高次方程,求根工作量很大,但在Matlab 中只需分别调用函数roots(den)或eig(A)即可,这样就可以由得出的极点位置直接判定系统的稳定性.已知控制系统的传递函数为()245035102424723423+++++++=s s s s s s s s G (1) 若判定该系统的稳定性,输入如下程序:G=tf([1,7,24,24],[1,10,35,50,24]);roots(G.den{1})运行结果: ans =-4.0000-3.0000-2.0000-1.0000由此可以判定该系统是稳定系统.1.2 用根轨迹法判断系统的稳定性根轨迹法是一种求解闭环特征方程根的简便图解法,它是根据系统的开环传递函数极点、零点的分布和一些简单的规则,研究开环系统某一参数从零到无穷大时闭环系统极点在s 平面的轨迹.控制工具箱中提供了rlocus 函数,来绘制系统的根轨迹,利用rlocfind 函数,在图形窗口显示十字光标,可以求得特殊点对应的K 值.已知一控制系统,H(s)=1,其开环传递函数为:()()()21++=s s s K s G (2) 绘制系统的轨迹图.程序为: G=tf(1,[1 3 2 0]);rlocus(G);[k,p]=rlocfind(G)根轨迹图如图1所示,光标选定虚轴临界点,程序结果为:图1 系统的根轨迹图selected_point =0 - 0.0124ik =0.0248p =-2.0122-0.9751-0.0127光标选定分离点,程序结果为:selected_point =-1.9905 - 0.0124ik =0.0308p =-2.0151-0.9692-0.0158上述数据显示了增益及对应的闭环极点位置.由此可得出如下结论:(1)0<k<0.4时,闭环系统具有不同的实数极点,表明系统处于过阻尼状态;(2)k=0.4时,对应为分离点,系统处于临界阻尼状态;(3)0.4<k<6时,系统主导极点为共轭复数极,系统为欠阻尼状态;(4)k=6时,系统有一对虚根,系统处于临界稳定状态;(5)k>6时,系统的一对复根的实部为正,系统处于不稳定状态.1.3 用Nyquist曲线判断系统的稳定性Matlab提供了函数Nyquist来绘制系统的Nyquist曲线,若式(2)系统分别取k= 4和k= 10(图2为阶跃响应曲线),通过Nyquist曲线判断系统的稳定性,程序如下:num1=[4];num2=[10];den1=[1,3,2,0];gs1=tf(num1,den1);gs2=tf(num2,den1);hs=1;gsys1=feedback(gs1,hs);gsys2=feedback(gs2,hs);t=[0:0.1:25];figure(1);subplot(2,2,1);step(gsys1,t)subplot(2,2,3);step(gsys2,t)subplot(2,2,2);nyquist(gs1)subplot(2,2,4);nyquist(gs2)奈氏稳定判据的内容是:若开环传递函数在s平半平面上有P个极点,则当系统角频率X 由-∞变到+∞时,如果开环频率特性的轨迹在复平面上时针围绕(-1,j0)点转P圈,则闭环系统稳定,否则,是不稳定的.图2阶跃响应曲线当k=4时,从图3中k=4可以看出,Nyquist曲不包围(-1,j0)点,同时开环系统所有极点都位于平面左半平面,因此,根据奈氏判据判定以此构成闭环系统是稳定的,这一点也可以从图2中k=4系统单位阶跃响应得到证实,从图2中k=4可以看出系统约23 s后就渐渐趋于稳定.当k=10时,从图3中k=10可以看图3 Nyquist曲线出,Nyquist曲线按逆时针包围(-1,j0)点2圈,但此时P=0,所以据奈氏判据判定以此构成的闭环系统是不稳定的,图2中k=10的系统阶跃响应曲线也证实了这一点,系统振荡不定。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CH4、控制系统的分析方法
早期的控制系统分析过程复杂而耗时,如想得到一个系统的冲激响应曲线,首先需要编写一个求解微分方程的子程序,然后将已经获得的系统模型输入计算机,通过计算机的运算获得冲激响应的响应数据,然后再编写一个绘图程序,将数据绘制成可供工程分析的响应曲线。
MATLAB控制系统工具箱和SIMULINK辅助环境的出现,给控制系统分析带来了福音。
控制系统的分析包括系统的稳定性分析、时域分析、频域分析及根轨迹分析。
第一节控制系统的稳定性分析
一、系统稳定及最小相位系统判据
❑对于连续时间系统,如果闭环极点全部在S平面左半平面,则系统是稳定的。
❑对于离散时间系统,如果系统全部极点都位于Z平面的单位圆内,则系统是稳定的。
❑若连续时间系统的全部零极点都位于S左半平面;或若离散时间系统的全部零极点都位于Z平面单位圆内,则系统是最小相位系统。
二、系统稳定及最小相位系统的判别方法
1、间接判别(工程方法)
劳斯判据:劳斯表中第一列各值严格为正,则系统稳定,如果劳斯表第一列中出现小于零的数值,系统不稳定。
胡尔维茨判据:当且仅当由系统分母多项式构成的胡尔维茨矩阵为正定矩阵时,系统稳定。
2、直接判别
MATLAB提供了直接求取系统所有零极点的函数,因此
可以直接根据零极点的分布情况对系统的稳定性及是否
为最小相位系统进行判断。
例exp4_1.m 已知某系统的模型如右所示: []u x y u x x 7165210016127
5874036221
21+-=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-+⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡---= 要求判断系统的稳定性及系统是否为最小相位系统。
例exp4_2.m
系统模型如下所示,判断系统的稳定性,以及系统
是否为最小相位系统。
11221171494528110142841163)(234562
3+++++++++=s s s s s s s s s s G
ii=find(条件式)
用来求取满足条件的向量的下标向量,以列向量表示。
例如exp4_1.m中的条件式为real(p>0),其含义就是找出极点向量p中满足实部的值大于0的所有元素下标,并将结果返回到ii
向量中去。
这样如果找到了实部大于0的极点,则会将该极点的
序号返回到ii下。
如果最终的结果里ii的元素个数大于0,则认为
找到了不稳定极点,因而给出系统不稳定的提示,若产生的ii向
量的元素个数为0,则认为没有找到不稳定的极点,因而得出系
统稳定的结论。
pzmap(p,z)
根据系统已知的零极点p和z绘制出系统的零极点图
第二节控制系统的时域分析
一、时域分析的一般方法
一个动态系统的性能常用典型输入作用下的响应来描述。
响应是指零初始值条件下某种典型的输入函数作用下对象的响应,控制系统常用的输入函数为单位阶跃函数和脉冲激励函数(即冲激函数)。
在MATLAB的控制系统工具箱中提供了求取这两种输入下系统响应的函数。
❑求取系统单位阶跃响应:step()
❑求取系统的冲激响应:impulse()
1、step()函数的用法 exp4_3_.m
❑y=step(num,den,t):其中num 和den 分别为系统传递函数描述中的分子和分母多项式系数,t 为选定的仿真时间向量,一般可以由t=0:step:end 等步长地产生出来。
该函数返回值y 为系统在仿真时刻各个输出所组成的矩阵。
❑[y,x,t]=step(A,B,C,D,iu):其中A,B,C,D 为系统的状态空间描述矩阵,iu 用来指明输入变量的序号。
x 为系统返回的状态轨迹。
❑如果对具体的响应值不感兴趣,而只想绘制系统的阶跃响应曲线,可调用以下的格式:
step(num,den);step(num,den,t);step(A,B,C,D,iu,t);step(A,B,C,D,iu); 例exp4_3.m 已知系统的开环传递函数为:s s s s s G o 4036820)(234+++= 求系统在单位负反馈下的阶跃响应曲线。
❑线性系统的稳态值可以通过函数dcgain()来求取,其调用格式为:dc=dcgain(num,den)或dc=dcgain(a,b,c,d) ❑[y,x,t]=step(num,den):此时时间向量t 由系统模型的特性自动生成, 状态变量x 返回为空矩阵。
2、impulse()函数的用法
例exp4_4.m 已知系统的开环传递函数为:s
s s s s G o 4036820)(234+++= 求系统在单位负反馈下的脉冲激励响应曲线。
例exp4_5.m 已知某典型二阶系统的传递函数为: 222
2)(n
n n w s w s w s G ++=ξ,,6.0=ξ5=n w ,求系统的阶跃响应曲线。
例exp4_6.m 已知某闭环系统的传递函数为:25
1096.116.02510)(23++++=s s s s s G 求其阶跃响应曲线。
求取脉冲激励响应的调用方法与step()函数基本一致。
y=impulse(num,den,t);[y,x,t]=impulse(num,den);[y,x,t]=impulse(A,B,C,D,iu,t) impulse(num,den);impulse(num,den,t)
impulse(A,B,C,D,iu);impulse(A,B,C,D,iu,t)
仿真时间t 的选择: ❑对于典型二阶系统根据其响应时间的估算公式 可以确定。
❑对于高阶系统往往其响应时间很难估计,一般采用试探的方法,把t 选大一些,看看响应曲线的结果,最后再确定其合适的仿真时间。
❑一般来说,先不指定仿真时间,由MATLAB 自己确定,然后根据结果,最后确定合适的仿真时间。
❑在指定仿真时间时,步长的不同会影响到输出曲线的光滑程度,一般不易取太大。
❑例exp4_6_.m
n s w t ξ4~3=
二、常用时域分析函数
时间响应探究系统对输入和扰动在时域内的瞬态行为,系统
特征如:上升时间、调节时间、超调量和稳态误差都能从时间响应上反映出来。
MATLAB除了提供前面介绍的对系统阶跃响应、冲激响应等进行仿真的函数外,还提供了大量对控制系统进行时域分析的函数,如:
covar:连续系统对白噪声的方差响应
initial:连续系统的零输入响应
lsim:连续系统对任意输入的响应
对于离散系统只需在连续系统对应函数前加d就可以,如dstep,dimpulse等。
它们的调用格式与step、impulse类似,可以通过help命令来察看自学。