5.1 and 5.2 传递函数的时域辨识 [系统辨识理论及Matlab仿真]
- 格式:ppt
- 大小:865.50 KB
- 文档页数:48
《自动控制原理》MATLAB中的传递函数模型实验一、实验目的1、熟练运用matlab软件,求解控制系统数学模型2、掌握传递函数在matlab中的表达方法3、掌握matlab求解拉氏变换和反变换4、掌握matlab求系统极值点和零点判断系统稳定性二、实验仪器Matlab2014b版三、实验原理(一)MATLAB中的传递函数模型传递函数在matlab中的表达方法控制系统的传递函数模型为:在MATLAB中,分子/分母多项式通过其系数行向量表示,即:num = [b0 b1 … bm]den = [a0 a1 … an]此时,系统的传递函数模型用tf函数生成,句法为:sys=tf(num, den) 其中,sys为系统传递函数。
如:num = [1 5 0 2]; den = [2 3 15 8];则:sys=tf(num, den)输出为:Transfer function:若控制系统的模型形式为零极点增益形式:此时,系统的传递函数模型用zpk函数生成,句法为:sys=zpk(z, p, k)。
zpk函数也可用于将传递函数模型转换为零极点增益形式,句法为:zpksys=zpk(sys)如:z=[-0.5 -1 -3]; p=[1 -2 -1.5 -5]; k=10;sys=zpk(z, p, k)传递函数的转换[num,den]=zp2tf(z,p,k)[z,p,k]=tf2zp(num,den)实际系统往往由多个环节通过串联、并联及反馈方式互连构成。
MATLAB提供的三个用于计算串联、并联及反馈连接形成的新系统模型的函数。
series函数计算两子系统串联后的新系统模型。
句法:sys = series(sys1, sys2)sys1, sys2分别为两子系统模型parallel函数计算两子系统并联后的新系统模型。
句法: sys = parallel(sys1, sys2)feedback函数计算两子系统反馈互联后的新系统模型。
时域控制理论工程中的系统辨识与滤波设计时域控制理论工程涉及到系统辨识和滤波设计两个重要方面。
系统辨识是指通过分析系统输入与输出之间的关系,建立系统的数学模型;滤波设计则是为实现所期望的控制效果,设计合适的滤波器对信号进行处理。
本文将就这两个方面进行详细的探讨。
一、系统辨识系统辨识是时域控制理论工程中的核心内容之一,它旨在通过实验数据或观测数据建立系统的数学模型。
常用的系统辨识方法包括参数辨识、非参数辨识和结构辨识等。
1. 参数辨识参数辨识是一种根据已知输入输出数据来识别系统参数的方法。
通过假设系统满足某种数学模型(如ARX模型、ARMA模型等),可以通过最小二乘法、最大似然估计等方法估计参数的值。
参数辨识方法适用于线性系统,且要求系统具有一定的稳定性。
2. 非参数辨识非参数辨识是一种不依赖于系统模型假设的辨识方法。
主要通过频域分析或自回归-移动平均模型(ARMA)来描述和分析系统的频率响应性质。
这种方法在系统具有非线性、非稳态或随机性质的情况下更为适用。
3. 结构辨识结构辨识是一种通过试验和观测数据来确定系统的结构模型的方法。
它可以用于估计系统的状态方程、传递函数、状态空间模型等。
常用的结构辨识方法包括系统辩识算法、频域辩识法和小波分析法等。
二、滤波设计滤波设计是时域控制理论工程中的另一个重要环节。
通过设计适当的滤波器,可以实现对信号的滤波处理,达到所需的控制效果。
1. 低通滤波器低通滤波器主要用于去除高频噪声、抑制高频分量。
在时域控制工程中,低通滤波器对于滤除系统中的高频干扰信号具有重要作用。
2. 高通滤波器高通滤波器主要用于滤除低频分量,提取系统中的高频信号。
在某些情况下,需要突出系统的高频响应,这时可以使用高通滤波器。
3. 带通滤波器带通滤波器可以通过滤除信号的低频和高频成分,仅保留某一频率范围内的信号。
在时域控制理论工程中,带通滤波器常常用于提取特定频率范围内的控制信号。
4. 带阻滤波器带阻滤波器可以阻断某一特定频率范围内的信号,也被称为陷波器。
基于MATLAB的自动控制系统时域频域分析与仿真摘要自动控制系统就是在无人直接操作或干预的条件下,通过控制装置使控制对象自动的按照给定的规律运行,使被控量按照给定的规律去变化的系统。
在现代工业生产中,自动控制系统已经遍布每一个角落,对于线性时不变控制系统,可以通过时域、频域分析法来分析系统的性能,但是对于多输入多输出的控制系统,时域、频域分析已经无能为力,鉴于这样的控制系统,可以通过线性系统的状态空间分析法来分析。
本文针对自动控制系统的设计很大程度上还依赖于实际系统的反复实验,结合具体的实例,介绍了利用先进的MATLAB软件对自动控制系统进行时域、频域分析与仿真和线性系统状态空间分析的方法,通过快速直观的仿真和分析达到自动控制系统的优化。
关键词:MATLAB 自动控制系统时域频域状态空间ABSTRACTAutomatic control system makes object operate according to a certain law automatically to let the controlled quantity change by given law on the condition that nobody operate and control directly. Automatic control system exists every corner of the world in the modern industrialized production, which can analyze the performance of the system by time domain and frequency domain for the linear time-invariant control systems. However, to the system with multiple inputs and multiple outputs, the way to analyze through time domain and frequency domain can not do anything . Due to the control system, it can analyze through linear system state space. Due to this point that the design of automatic control system largely depends on repeated practice and modification, combined with the concrete example,this paper introduces the ways to analyze and simulate the time domain and frequency domain and linear system state space of automatic control system by advanced MATLAB,it can reach the optimal of automatic control system by direct and fast.Key words: MATLAB Automatic control system Time domain Frequency domain State space目录一绪论 (1)1.1 题目背景、研究意义 (1)1.2 国内外研究现状 (1)1.3 研究内容 (1)二自动控制系统基础 (2)2.1 自动控制系统的概述 (2)2.2 开环、闭环控制系统 (2)2.3 控制系统的性能要求 (3)三MATLAB基础介绍 (4)3.1 MATLAB简介 (4)3.2 Simulink简介 (4)3.3 Simulink仿真过程 (4)3.4 Simulink仿真实例 (5)四自动控制系统的时域分析 (7)4.1 时域分析简介 (7)4.2 动态过程与动态性能 (7)4.3 稳态过程与稳态性能 (7)4.4 控制系统的稳定性 (8)4.5 时域分析法的MATLAB实现 (8)4.5.1 控制系统的动态性能分析 (8)4.5.2 控制系统的稳态性能分析 (10)4.5.3 控制系统的稳定性分析 (11)五自动控制系统的频域分析 (13)5.1 频域分析法简介 (13)5.2 有关频率分析法的几个概念 (13)5.3 频率特性的性能指标 (13)5.4 频域分析法的MATLAB实现 (14)5.4.1 Bode图的绘制 (14)5.4.2 Bode图分析控制系统的稳定性 (15)六线性系统的状态空间分析 (18)6.1 状态空间模型 (18)6.2 状态反馈 (18)6.3 控制系统的可控性和可观性 (19)6.3.1 控制系统的可控性 (19)6.3.2 控制系统的可观性 (20)6.4 极点配置 (21)6.4.1 极点配置简介 (21)6.4.2 单输入单输出系统的极点配置 (21)七总结 (24)参考文献 (25)一绪论1.1题目背景、研究意义自动控制技术在航空航天、机器人控制、导弹制造及等高新技术领域中的应用越来越深入广泛,自动控制理论和技术必将进一步发挥更加重要的作用。
由系统阶跃响应辨识传递函数的Matlab 实现方法典型二阶系统传递函数为:121)(22++=Ts s T s G ξ工业生产过程中,大多数系统的阶跃响应曲线是临界阻尼或过阻尼的,即ξ≥1。
只要求出T 和ξ就能确定系统的传递函数。
G(s)可以分解为:))((1)(212ωω++=s s T s G其中,[][]11112221--=-+=ξξωξξωTT1ω、2ω都是实数且均大于零。
则有:211ωω=T ,21212ωωωωξ+= 传递函数进一步化为:))(()(2121ωωωω++=s s s G因此,辨识传递函数就转化为求解1ω、2ω。
当输入为单位阶跃函数时,对上式进行拉普拉斯反变换,得系统时域下的单位阶跃响应为:t te et y 212111221)(ωωωωωωωω---+--=, 即 tteet y 21211122)(1ωωωωωωωω-----=-令1ω=2ωk )1(>k,得tk t ek e k k t y 22111)(1ωω-----=-⎥⎦⎤⎢⎣⎡--=---t k t e k e k k 2)1(2111ωω对上式两边取以e 为底的对数得[]⎥⎦⎤⎢⎣⎡-+--=---t k e k t k k t y 2)1(211ln 1ln )(1ln ωω 当∞→t 时,⎥⎦⎤⎢⎣⎡---t k e k 2)1(11ln ω0→,则上式化简为 []t k k t y 21ln )(1ln ω--=-,该式的形式满足直线方程b at t y +=)(*其中,)(*t y =[])(1ln t y -,1ln,2-=-=k kb a ω)1(>k 通过最小二乘算法实现直线的拟合,得到a ,b 的值,即可得到1ω、2ω的值,进而可得系统的传递函数。
Matlab 程序代码 %identification.mclcclose allt=[1 3 5 7 9 11 13 15 17 19];y=[0.149086 0.5890067 0.830617 0.933990 0.973980 0.991095 0.995868 0.998680 0.999490 0.999850]; %实验数据,数据来源:《系统辨识方法及应用》.国防工业出版社 y2=log(1-y); plot(t,y2,'*'); grid onpm=polyfit(t,y2,1) value=polyval(pm,t); hold onplot(t,value,'r')title('\fontname{黑体}\fontsize{20}y(t)=at+b') w2=-pm(1)w1=w2/(1-exp(-pm(2))) T=1/sqrt(w1*w2)theta=(w1+w2)/(2*sqrt(w1*w2)) z=[];p=[-w1 -w2]; k=w1*w2; sys=zpk(z,p,k) figure(2)step(sys,[0:0.5:20]); axis([0 20 0 1.2]) hold on plot(t,y,'r*')运行结果:系统的传递函数为)4797.0)(126.1(54034.0)(++=S S S G 阻尼比为0925.1=ξ自然振荡周期为T=1.3604 s。
基于MATLAB自动控制系统时域频域分析与仿真MATLAB是一款强大的数学软件,也是自动控制系统设计的常用工具。
它不仅可以进行时域分析和频域分析,还可以进行相关仿真实验。
本文将详细介绍MATLAB如何进行自动控制系统的时域和频域分析,以及如何进行仿真实验。
一、时域分析时域分析是指对系统的输入信号和输出信号进行时域上的观察和分析,以了解系统的动态特性和稳定性。
MATLAB提供了一系列的时域分析工具,如时域响应分析、稳态分析和步骤响应分析等。
1.时域响应分析通过时域响应分析,可以观察系统对于不同的输入信号的响应情况。
在MATLAB中,可以使用`lsim`函数进行系统的时域仿真。
具体步骤如下:- 利用`tf`函数或`ss`函数创建系统模型。
-定义输入信号。
- 使用`lsim`函数进行时域仿真,并绘制系统输出信号。
例如,假设我们有一个二阶传递函数模型,并且输入信号为一个单位阶跃函数,可以通过以下代码进行时域仿真:```num = [1];den = [1, 1, 1];sys = tf(num, den);t=0:0.1:10;u = ones(size(t));[y, t, x] = lsim(sys, u, t);plot(t, y)```上述代码中,`num`和`den`分别表示系统的分子和分母多项式系数,`sys`表示系统模型,`t`表示时间序列,`u`表示输入信号,`y`表示输出信号。
通过绘制输出信号与时间的关系,可以观察到系统的响应情况。
2.稳态分析稳态分析用于研究系统在稳态下的性能指标,如稳态误差和稳态标准差。
在MATLAB中,可以使用`step`函数进行稳态分析。
具体步骤如下:- 利用`tf`函数或`ss`函数创建系统模型。
- 使用`step`函数进行稳态分析,并绘制系统的阶跃响应曲线。
例如,假设我们有一个一阶传递函数模型,可以通过以下代码进行稳态分析:```num = [1];den = [1, 1];sys = tf(num, den);step(sys)```通过绘制系统的阶跃响应曲线,我们可以观察到系统的稳态特性。
Matlab的系统辨识和参数估计方法一、引言Matlab是一种强大的计算机软件,被广泛应用于各个领域的科学研究和工程实践。
在信号处理、控制系统设计等领域,系统的辨识和参数估计是一项重要的任务。
本文将介绍Matlab中常用的系统辨识和参数估计方法,包括参数辨识、频域辨识、时域辨识等方面。
同时,还将探讨这些方法的优势和局限性。
二、参数辨识参数辨识是一种推断系统输入和输出之间关系的方法。
Matlab提供了多种参数辨识工具箱,例如System Identification Toolbox。
其中,最常用的方法包括最小二乘法、极大似然法、递归最小二乘法等。
最小二乘法是一种经典的参数估计方法,通过最小化测量值与预测值之间的差异来估计参数。
Matlab中的lsqcurvefit函数可以用于最小二乘拟合曲线。
例如,通过拟合一组数据点得到一个最优的曲线,可以估计曲线的参数。
极大似然法是一种基于概率统计的参数估计方法,通过最大化观测数据出现的似然函数来估计参数。
Matlab中的mle函数可以用于极大似然估计。
例如,在某个信号的概率密度函数已知的情况下,可以通过观测到的样本来估计概率密度函数的参数。
递归最小二乘法是一种递归更新参数的方法,可以在随时间变化的系统中实时地进行参数估计。
Matlab中的rls函数可以用于递归最小二乘估计。
例如,在自适应滤波中,可以通过递归最小二乘法来实时估计信号的参数。
三、频域辨识频域辨识是一种基于频谱分析的参数估计方法,可以在频率域中确定系统的特性。
Matlab提供了多种频域辨识工具箱,例如System Identification Toolbox和Signal Processing Toolbox。
其中,最常用的方法包括功率谱密度估计、自相关函数法、协方差法等。
功率谱密度估计是一种常用的频域参数估计方法,可以估计信号在不同频率上的能量分布。
Matlab中的pwelch函数可以用于功率谱密度估计。
求系统的传递函数的方法在控制系统中,传递函数是描述输入信号和输出信号之间关系的数学模型。
它是系统的重要属性,能够帮助我们分析系统的稳定性、动态响应和频率特性等。
求系统的传递函数的方法有多种,取决于系统的性质和所采用的建模方法。
以下是一些常见的方法:1. 物理建模法:对于具有明确物理意义和参数的系统,可以通过建立系统的物理方程来求解传递函数。
例如,对于机械系统可以通过牛顿力学方程,对于电路系统可以通过欧姆定律和基尔霍夫定律等来建立方程并求解传递函数。
2. 线性化法:对于非线性系统,可以通过在某一工作点处进行线性化来近似系统的动态行为。
线性化可以将非线性系统转化为线性系统,并利用线性系统的数学工具来求解传递函数。
线性化方法通常包括泰勒级数展开和小信号假设等。
3. 系统辨识法:对于未知系统或无法准确建立物理方程的系统,可以通过实验数据来识别系统的传递函数。
系统辨识方法可以分为基于时域数据的辨识和基于频域数据的辨识。
常用的系统辨识方法包括最小二乘法、极大似然法和频域辨识法等。
4. 转移函数法:对于线性时不变系统,可以通过拉普拉斯变换将系统的微分方程转化为复频域的代数方程。
然后通过对代数方程进行处理,可以得到系统的传递函数。
转移函数法适用于具有连续时间和离散时间的线性系统。
5. 状态空间法:对于具有多个输入和输出的系统,可以使用状态空间描述来求解传递函数。
状态空间法是一种基于系统的状态变量和状态方程的建模方法,通过矩阵运算可以得到系统的传递函数。
状态空间法适用于具有连续时间和离散时间的线性系统。
无论采用哪种方法,求解系统的传递函数都需要系统的特性和参数的输入。
因此,在实际应用中,需要通过实验数据、物理模型或者系统辨识等方式来获取系统的特性和参数。
传递函数的求解对于系统分析、控制器设计和系统优化等方面都具有重要意义,是控制工程中的基础内容。
MatIab技术时域分析方法时域分析是信号处理中的一个重要领域,它主要研究信号在时间域内的变化规律。
MatEb作为最常用的科学计算软件之一,提供了丰富的时域分析工具和函数,便于工程师和科研人员对信号进行分析和处理。
本文将介绍一些常用的MaUab技术时域分析方法,以及它们在实际应用中的一些案例。
一、时域分析的基本概念时域分析是将信号视为时间的函数,对信号在时间域内进行描述和分析。
通过时域分析,我们可以获得信号的幅值、相位、周期性等特性,从而更好地理解和处理信号。
在MatIab中,使用波形图和信号处理工具箱中的函数可以方便地进行时域分析。
二、波形图分析波形图是时域分析的基本工具之一,通过绘制信号在时间轴上的变化来直观地观察信号的特征。
在MaUab中,我们可以使用p1ot函数来画出信号的波形图。
例如,以下代码可以绘制一个简单的正弦信号的波形图:ZmatIabt=0:0.01:1;%时间范围为0到1,采样频率为IooHZf=1;%正弦信号频率为IHZA=I;%正弦信号幅值为1x=A*sin(2*pi*f*t);%生成正弦信号p1ot(t,X);%绘制波形图波形图可以直观地显示信号的频率、幅值、周期等特性,对于初步了解信号非常有帮助。
三、傅里叶变换傅里叶变换是时域分析的重要方法之一,它可以将信号从时域转换到频域。
频域分析可以更好地揭示信号的频率成分和频谱特征,对于滤波、谱估计等应用具有重要意义。
在MaHab中,我们可以使用fft函数进行傅里叶变换。
傅里叶变换的输出是一个复数数组,其中包含信号的频谱信息。
为了更好地显示信号的频谱,我们通常会进行幅度谱和相位谱的分析。
以下是一个简单的例子:'''ma11abFs=1000;%采样频率为IOOOHzt=0:1/Fs:1;%采样点数为1000f=10;%正弦信号频率为IOHzX=sin(2*pi*f*t);%生成正弦信号N=Iength(X);%信号长度X=fft(x);%进行傅里叶变换frequencies=Fs*(0:(N/2))/N;%计算频率轴amp1itude=abs(X(kN∕2+1));%计算幅度谱phase=ang1e(X(kN∕2+1));%计算相位谱subp1ot(2,1,1);p1ot(frequencies,amp1itude);%绘制幅度谱X1abe1CFrequency(Hz)');y1abe1('Amp1itude,);subp1ot(2,1,2);p1ot(frequencies,phase);%绘制相位谱X1abeICFrequency(Hz)');y1abe1('Phase');四、自相关函数和互相关函数自相关函数和互相关函数是时域分析中用于测量信号相似性和信号之间的关系的重要方法。
Matlab基于时域响应曲线的系统辨识对系统进行分析的主要问题是依据输入信号和系统的特性来预测系统的输出。
对系统进行控制的主要问题是依据系统的特性设计一个或几个控制器来控制输入,使系统输出满足一定的要求。
与之相反,系统辨识所要研究的基本问题正是它们的逆问题。
系统辨识包括两个方面:结构辨识和参数估计。
在实际的辨识过程中,我们经常对结构辨识和参数估计这两个问题一起研究讨论,尽管使用的方法各有不同,但它们是可以交织在一起进行的。
:Matlab是由许多工具组合而成。
这些工具能够帮助用户更方便地使用Matlab提供的各类功能函数和系统文件,其中大多数工具都是采用的图形用户界面,包括其命令键入窗口、历史命令窗口、桌面、调试器、编辑器、路径搜索和用于帮助用户浏览工作空间和检查文件的浏览器。
随着Matlab 变得越来越商业化以及软件本身在功能上不断地升级,Matlab的用户界面也变得越来越美观、精致,逐渐向着Windows标准界面看齐,人机交互性也变得更加强大,操作方式也更加趋向于用户的使用习惯。
而且新版本的Matlab8.5 RXXa提供了完整的联机查询、帮助系统,可以让用户的使用起来更加得心应手。
编程环境简单方便,同时为用户提供了比较完善的测试系统,Matlab还有一个比较显著的特点就是用户编写完成的程序不需要经过编译就可以直接运行,不仅如此,当用户编写的程序存在问题时,它还能够及时地报告出现的程序错误的位置,同时给出对错误原因的分析。
Matlab同样也是个高级的矩阵语言,它包含许多功能函数、控制语句、数据结构、输入和输出语句和面向对象编程特点。
用户即可以在命令窗口中直接输入语句与执行命令同步,也可以在编辑器中预先编写好一个可执行的应用程序(俗称M文件)后再运行。
新版本的Matlab语言是基于现如今被广泛使用的C++语言设计的,因此语法特点与C++语言有着许多的相似之处,但是又比C++更为简单,更加符合多数用户对数学表达式的书写习惯,使得更加利于非计算机专业的用户使用。
最近在做一个项目的方案设计,应各位老总的要求,只有系统框图和器件选型可不行,为了凸显方案设计的高大上,必须上理论分析,炫一下“技术富”,至于具体有多大实际指导意义,那就不得而知了!本人也是网上一顿百度,再加几日探索,现在对用matlab 实现系统辨识有了一些初步的浅薄的经验,在此略做一小节。
必须要指出的是,本文研究对象是经典控制论理最简单最常用的线性时不变的siso 系统,而且是2阶的哦,也就是具有如下形式的传递函数:121)(22++=Ts s T s G ξ 本文要做的就是,对于有这样传递函数的一个系统,要辨识得到其中的未知数T , ξ!!这可是控制系统设计分析的基础哦,没有系统模型,啥理论、算法都是白扯,在实际工程中非常重要哦! 经过总结研究,在得到系统阶跃响应实验数据之后(当然如果是其他响应,也有办法可以辨识,在此还是只讨论最简单的阶跃响应实验曲线,谁让你我是菜鸟呢),利用matlab 至少可以有两种方法实现实现(目前我只会两种,呵呵)!一、函数法二、GUI 系统辨识工具箱下面分别作详细介绍!一、 函数法看官别着急,先来做一段分析(请看下面两排红*之间部分),这段分析是网上找来的,看看活跃一下脑细胞吧,如果不研读一下,对于下面matlab 程序,恐怕真的就是一头雾水咯!*******************************************************************************G(s)可以分解为:))((1)(212ωω++=s s T s G其中, [][]11112221--=-+=ξξωξξωTT1ω、2ω都是实数且均大于零。
则有:211ωω=T ,21212ωωωωξ+=传递函数进一步化为:))(()(2121ωωωω++=s s s G 因此,辨识传递函数就转化为求解1ω、2ω。
当输入为单位阶跃函数时,对上式进行拉普拉斯反变换,得系统时域下的单位阶跃响应为:tteet y 212111221)(ωωωωωωωω---+--=即 tteet y 21211122)(1ωωωωωωωω-----=-令1ω=2ωk )1(>k,得tk t ek e k k t y 22111)(1ωω-----=-⎥⎦⎤⎢⎣⎡--=---t k t e k e k k 2)1(2111ωω 对上式两边取以e 为底的对数得[]⎥⎦⎤⎢⎣⎡-+--=---t k e k t k k t y 2)1(211ln 1ln )(1ln ωω 当∞→t 时,⎥⎦⎤⎢⎣⎡---t k e k 2)1(11ln ω0→,则上式化简为[]t k k t y 21ln )(1ln ω--=-该式的形式满足直线方程b at t y +=)(*其中,)(*t y =[])(1ln t y -,1ln ,2-=-=k kb a ω)1(>k通过最小二乘算法实现直线的拟合,得到a ,b 的值,即可得到1ω、2ω的值,进而可得系统的传递函数。