系统辨识的Matlab实现方法(手把手)
matlab中systemidentification

matlab中systemidentification
System Identification Toolbox是MATLAB中的一个工具箱,用于通过观察系统输入和输出之间的关系,自动地从数据中提取数学模型,并进行参数估计和模型验证。
系统辨识(System Identification)是指通过实验数据来推测未知的控制系统或物理系统的动态模型,主要包括系统的传递函数、状态空间模型或差分方程模型等。
MATLAB提供了许多函数来进行系统辨识,如:
1. iddata:用于从实验数据创建实验数据对象
2. idss:用于创建状态空间模型对象
3. idtf:用于创建传递函数模型对象
4. idpoly:用于创建基于自回归多项式的ARX模型对象
此外,MATLAB还提供了基于不同算法的辨识方法,如ARX算法、ARMAX算法、Box-Jenkins算法、OE算法、BJ算法等。
系统辨识在控制工程、机械工程、航空航天等领域有着广泛的应用,例如用于飞机或汽车的控制、传感器模型的辨识、医疗设备的建模等。
matlab系统辨识的原理

matlab系统辨识的原理Matlab系统辨识的原理Matlab是一种强大的数学软件,可以用于各种科学计算和数据分析。
其中,系统辨识是Matlab的一个重要应用领域。
系统辨识是指通过对系统输入输出数据的分析,推断出系统的数学模型,从而实现对系统的预测、控制和优化。
本文将从Matlab系统辨识的原理、方法和应用三个方面进行介绍。
一、原理Matlab系统辨识的原理基于系统的输入输出数据,通过对数据进行处理和分析,推断出系统的数学模型。
具体来说,系统辨识的过程可以分为以下几个步骤:1. 数据采集:通过实验或仿真等方式,获取系统的输入输出数据。
2. 数据预处理:对采集到的数据进行滤波、降噪、去趋势等处理,以提高数据的质量和可靠性。
3. 模型结构选择:根据系统的特点和应用需求,选择合适的模型结构,如ARMA、ARIMA、ARMAX等。
4. 参数估计:利用最小二乘法、极大似然法等方法,对模型的参数进行估计。
5. 模型检验:通过残差分析、模型预测等方法,对模型的拟合程度和预测能力进行检验。
二、方法Matlab系统辨识的方法主要包括时间域方法、频域方法和时频域方法三种。
1. 时间域方法:时间域方法是指通过对系统的输入输出数据进行时域分析,推断出系统的数学模型。
常用的时间域方法包括ARMA、ARIMA、ARMAX等。
2. 频域方法:频域方法是指通过对系统的输入输出数据进行频域分析,推断出系统的数学模型。
常用的频域方法包括FFT、AR、ARMA等。
3. 时频域方法:时频域方法是指通过对系统的输入输出数据进行时频分析,推断出系统的数学模型。
常用的时频域方法包括小波变换、Wigner-Ville分布等。
三、应用Matlab系统辨识的应用广泛,主要包括以下几个方面:1. 预测:通过对系统的历史数据进行分析,预测未来的趋势和变化。
2. 控制:通过对系统的数学模型进行分析和优化,实现对系统的控制和调节。
3. 诊断:通过对系统的输入输出数据进行分析,诊断系统的故障和异常。
matlab的n4sid函数

matlab的n4sid函数
n4sid函数是MATLAB中的一个系统辨识函数,用于从时间序列数据
中估计线性动态系统的模型参数。
该函数使用N4SID算法,该算法是一种
基于子空间方法的系统辨识技术。
N4SID算法的核心思想是将时间序列数据转化为特征向量序列,并分
析这些向量的子空间结构,从而得到系统的状态空间表达式。
具体而言,
N4SID算法分为两个主要步骤:子空间辨识和模型参数估计。
在模型参数估计步骤中,N4SID算法使用正交投影法(Orthogonal Projection,OP)来估计系统的状态空间模型。
通过对SIM矩阵进行正交
投影,可以得到模型的状态转移矩阵、观测矩阵和噪声协方差矩阵等参数。
使用MATLAB中的n4sid函数,可以利用N4SID算法对时间序列数据
进行实时辨识和模型参数估计。
该函数的基本语法如下:
sys = n4sid(data, order)
其中,data是输入的时间序列数据,可以是一维向量或二维矩阵;order是系统的阶数,表示需要辨识的模型的状态空间维度。
n4sid函数会返回一个状态空间模型sys,包括状态转移矩阵A、观
测矩阵C、控制矩阵B和噪声协方差矩阵D等参数。
通过sys可以进行系
统的状态预测、控制设计和系统辨识等操作。
除了基本的n4sid函数外,MATLAB还提供了一些变种函数,如
n4sidOptions和n4sidplot,用于设置算法的参数和可视化辨识结果。
总之,n4sid函数是MATLAB中用于系统辨识的重要工具,可以方便地从时间序列数据中估计线性动态系统的模型参数,对系统的建模和分析非常有用。
matlab系统辨识工具箱

7. idfrd
功能:构造idfrd模型 语法: h = idfrd(Response,Freq,Ts) h = idfrd(Response,Freq,Ts,'CovarianceData',Covariance, ... 'SpectrumData',Spec,'NoiseCovariance',Speccov,'P1', ... V1,'PN',VN) h = idfrd(mod) h = idfrd(mod,Freqs) 说明:
y (t ) G (q)u (t ) v(t )
v u 线性对象 y
G (q)u (t ) g (k )u (t k )
k 1
G (q) g (k )q k ;
k 1
q 1u (t ) u (t 1)
其中q为时间平移算子,序列g(k)为对象的脉冲响应模型,v(t)是不可测量 的噪声干扰。频谱表示为
4. idgrey
功能:根据M文件定义idgrey模型 语法:
M=IDGREY(MfileName,ParameterVector,CDmfile,FileArgument) M = IDGREY(MfileName,ParameterVector,CDmfile,... FileArgument,Ts,'Property',Value,..)
y (t ) A1 y (t 1) A2 y (t 2) .... Ana y (t na) B0u (t ) B1u (t 1) ... Bnbu (t nb) e(t ) 其中系数Ak为ny ny维矩阵,Bk 为ny nu维矩阵 (ny为输出参数个数,nu为输入参数个数) 输入参数A为ny ny * (na 1)维的矩阵使得: A(:, :, k 1) Ak A(:, :,1) eye(ny ) B为ny nu * (na 1)维的矩阵使得: B(:, :, k 1) BK ; 参数Ts为采样周期;
使用Matlab进行非线性系统辨识与控制的技巧

使用Matlab进行非线性系统辨识与控制的技巧在控制系统领域,非线性系统一直是研究的重点和难点之一。
与线性系统不同,非线性系统具有复杂的动力学特性和响应行为,给系统的建模、辨识和控制带来了挑战。
然而,随着计算机技术的快速发展,现在可以利用强大的软件工具如Matlab来进行非线性系统辨识与控制的研究。
本文将分享一些使用Matlab进行非线性系统辨识与控制的技巧,希望对相关研究人员有所帮助。
一、非线性系统辨识非线性系统辨识是指通过实验数据来确定系统的数学模型,以描述系统的动态行为。
在非线性系统辨识中,最常用的方法是基于系统响应的模型辨识技术。
这种方法通常包括以下几个步骤:1. 数据采集和预处理:首先,需要采集实验数据以用于系统辨识。
在数据采集过程中,应尽量减小噪声的影响,并确保数据的可靠性。
然后,对采集到的数据进行预处理,如滤波、采样等,以消除噪声和干扰。
2. 模型结构选择:在进行非线性系统辨识时,应选择合适的模型结构来描述系统的动态特性。
常见的模型结构包括非线性自回归移动平均模型(NARMA),广义回归神经网络(GRNN)等。
选择合适的模型结构对于准确地描述系统非线性特性至关重要。
3. 参数估计:根据选定的模型结构,使用最小二乘法或其他参数估计算法来估计模型的参数。
MATLAB提供了多种估计算法和工具箱,如系统辨识工具箱(System Identification Toolbox)等,可方便地进行参数估计。
4. 模型验证与评估:在参数估计完成后,应对辨识的模型进行验证和评估。
常用的方法是计算模型的均方根误差(RMSE)和决定系数(R-squared),进一步提高模型的准确性和可靠性。
二、非线性系统控制非线性系统控制是指通过设计控制策略来实现对非线性系统的稳定和性能要求。
与非线性系统辨识类似,非线性系统控制也可以利用Matlab进行研究和设计。
以下是一些常用的非线性系统控制技巧:1.反馈线性化控制:线性化是将非线性系统近似为线性系统的一种方法。
系统辨识理论及matlab仿真

系统辨识理论及matlab仿真系统辨识是一门评估和改进系统性能的研究领域,它利用外部观测数据对系统进行建模,使用这种模型来识别系统行为以及建议改进措施。
它结合了计算机科学、工程学、统计学和应用数学等多种学科的方法。
系统辨识的方法可以用于分析机器人系统、有限元素模型、分散系统和非线性系统等。
系统辨识理论是现代工程中最重要的技术,它能够有效地分析和模拟系统,以解决重大工程挑战。
系统辨识理论的基础可以回溯到20世纪40年代,当时大量研究的重点在于控制系统的设计与形成。
随着进步,它拓展到多种应用,其中包括一般系统建模和优化,以及系统健康监测,智能控制系统,复杂过程建模等等。
Matlab是一种基于矩阵的编程语言,它可以提供强大的工具来支持系统辨识理论的应用。
利用Matlab,可以非常方便地实现模型建模、数据处理、数值求解以及可视化等功能。
此外,它还提供了大量预定义函数,可以极大地简化系统辨识理论中所需要实现的功能,如参数估计、优化、数据验证等。
系统辨识理论和Matlab仿真在工程实践中应用十分广泛,其中最值得一提的有:(1)机器人控制:利用系统辨识理论和Matlab仿真,可以对机器人运动特性进行模型建模,并实现复杂的运动控制;(2)流体动力学:利用系统辨识理论和Matlab仿真,可以对流体动力学进行建模和模拟,以便改善和优化系统性能;(3)模糊控制:利用系统辨识理论和Matlab仿真,可以实现模糊控制系统的建模和仿真,用于实现智能控制等。
系统辨识理论和Matlab仿真的研究成果不仅可以改善系统性能,还可以用于展示系统原理及其实现。
以上是我关于系统辨识理论及Matlab仿真的研究结果及其应用。
经过以上介绍,可以看出系统辨识理论及Matlab仿真在工程应用中有重要的作用,它们为解决复杂工程问题提供了可行的解决方案。
然而,在实际应用过程中,系统辨识理论及Matlab仿真也存在一定的不足,比如误差控制方面的困难,这就要求我们不断改进和完善理论和技术,以提高系统的有效性和可靠性。
matlab的n4sid函数
MATLAB的n4sid函数介绍MATLAB是一款常用的科学计算软件,它提供了许多用于数据分析和建模的函数。
其中,n4sid函数是一个用于系统辨识和模型预测的函数。
在本文中,我们将详细介绍n4sid函数的功能、使用方法以及一些相关的概念。
什么是系统辨识在控制系统设计和信号处理中,系统辨识是一个重要的任务。
系统辨识的目标是根据给定的输入和输出数据,从中推断出系统的动态模型。
系统的动态模型能够帮助我们理解系统的行为,并用于预测系统在未来的响应。
在实际应用中,系统辨识广泛应用于控制系统设计、信号处理、机器学习等领域。
n4sid函数的功能和原理n4sid函数是MATLAB中用于系统辨识的一个工具函数。
它基于ARX(自回归移动平均)模型和ARMA(自回归滑动平均)模型,并使用了奇异值分解(Singular Value Decomposition,SVD)的方法来进行系统辨识和模型预测。
n4sid函数可以从输入和输出数据中自动估计系统的状态空间模型和噪声模型。
在辨识过程中,它会根据给定的输入和输出数据建立一个ARX或ARMA模型,并使用SVD方法进行模型参数的估计和模型预测。
n4sid函数能够估计出一个最佳的状态空间模型,该模型能够最好地拟合给定的数据。
n4sid函数的使用方法使用n4sid函数可以进行系统辨识和模型预测。
下面是n4sid函数的使用步骤:1.准备数据:首先,需要准备输入和输出数据。
输入数据通常是系统的控制信号,输出数据是系统的响应信号。
输入和输出数据可以是时域数据,也可以是频域数据。
2.构建模型:使用n4sid函数可以建立ARX或ARMA模型。
ARX模型是一种将当前时刻的输出与过去时刻的输入和输出相关联的模型;ARMA模型是一种将当前时刻的输出与过去时刻的输入、输出和噪声相关联的模型。
3.辨识系统:将准备好的输入和输出数据传入n4sid函数,该函数会自动辨识系统的状态空间模型和噪声模型。
辨识得到的模型可以用于系统的预测和控制。
MATLAB中常见的自动化建模方法介绍
MATLAB中常见的自动化建模方法介绍随着科技的不断进步,自动化建模在各个领域中变得越来越重要。
MATLAB作为一种强大的数学建模与仿真工具,为研究人员和工程师们提供了许多自动化建模方法。
本文将介绍几种常见的MATLAB中的自动化建模方法,包括系统辨识、机器学习和优化方法。
一、系统辨识系统辨识是在无法直接获得系统模型的情况下,通过对系统输入和输出数据的观测来估计系统模型。
MATLAB提供了多种用于系统辨识的函数和工具箱,其中最常用的是System Identification Toolbox。
System Identification Toolbox提供了参数估计、模型结构选择和模型验证等功能。
在MATLAB中,使用系统辨识工具箱进行模型辨识一般包括以下步骤:收集系统输入和输出数据、选择适当的模型结构、参数估计和模型验证。
通过这些步骤,研究人员可以获得一个能够准确描述系统动态特性的模型。
二、机器学习机器学习是一种通过让计算机从数据中学习,并且在新的数据上做出预测或决策的方法。
在MATLAB中,有多种机器学习算法可供选择,包括支持向量机(SVM)、人工神经网络(ANN)和决策树等。
支持向量机是一种基于统计学习理论的二分类器,其主要思想是通过在高维特征空间中找到一个最优超平面来实现数据分类。
MATLAB中的Support Vector Machines Toolbox提供了一系列用于支持向量机模型的训练和应用的函数。
人工神经网络是一种模拟人脑神经元网络的算法,它可以通过学习样本数据来进行分类、回归、聚类等任务。
MATLAB中的Neural Network Toolbox提供了一系列用于构建、训练和应用神经网络的函数和工具。
决策树是一种通过对数据进行分割来实现分类的方法。
决策树模型通过一系列的判定条件将数据分为不同的类别。
在MATLAB中,可以利用Classification Learner App来构建和训练决策树模型,同时还可利用TreeBagger函数进行随机森林模型的构建和训练。
由系统阶跃响应辨识传递函数的Matlab实现方法
由系统阶跃响应辨识传递函数的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系统辨识工具箱对一个非线性系统进行参数 估计和模型验证。接着,利用得到的模型进行控制系统设 计和仿真,验证控制效果。最后,对非线性系统的辨识和 控制效果进行评估和优化。
系统辨识的步骤与流程
总结词
系统辨识通常包括数据采集、模型建立、参 数估计和模型验证等步骤。
详细描述
在数据采集阶段,需要选择合适的输入信号 ,并记录系统的输入和输出数据。模型建立 阶段则根据输入和输出数据选择合适的模型 形式。参数估计阶段利用选定的模型和采集 的数据来估计模型参数。最后,在模型验证 阶段,通过比较模型的输出与实际系统的输
分析系统的性能指标,如稳定性、 动态响应等,以确定系统是否满 足设计要求。
控制策略设计
根据系统性能分析结果,设计合 适的控制策略,如PID控制、模糊 控制等。
系统优化
通过调整系统参数和控制策略, 优化系统性能,提高系统的稳定 性和动态响应能力。
04
工具箱中的常用函数与模 块
创建模型函数
总结词
用于建立系统辨识模型
05
案例分析
案例一:简单线性系统的辨识与控制
总结词
简单线性系统辨识与控制是使用Matlab系统辨识工具 箱的基础案例,通过该案例可以了解系统辨识的基本 原理和方法。
详细描述
该案例首先介绍了线性系统的基本概念和数学模型, 然后通过Matlab系统辨识工具箱对一个简单的线性系 统进行参数估计和模型验证。最后,利用得到的模型 进行控制系统设计和仿真,验证控制效果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
系统辨识的Matlab实现方法(手把手)最近在做一个项目的方案设计,应各位老总的要求,只有系统框图和器件选型可不行,为了凸显方案设计的高大上,必须上理论分析,炫一下“技术富”,至于具体有多大实际指导意义,那就不得而知了!本人也是网上一顿百度,再加几日探索,现在对用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)(ωωωωωωωω---+--=即 t te et 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程序代码:clcclose 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 onplot(t,y,'r*')打开matlab,新建一个Function,把上述程序段拷进去,保存,运行~~~~~~~~~,运行结果:系统的传递函数为)4797.0)(126.1(54034.0)(++=S S S G 很顺利吧?先高兴一个!问题接着马上就来了,上面这个例子,这个传递函数的极点刚好都是负实数,因此辨识得很顺利,但是如果系统是欠阻尼系统,也就是如果传递函数的根是复数,那么上述函数段,就无能为力咯,会出现说“matlab 无法处理增益为复数情况之类······” 例如)1)(1(2)(j S j S S G -+++=对于这个系统,若果用simulink 做一下阶跃响应,再把实验数据代入上述函数段,那就不行咯!怎么办呢,只能另辟蹊径了!二、(System Identification Tool )系统辨识工具箱早听说matlab 博大精深,神通广大了,于是乎我确定肯定有更简单、直观、强大的工具来完成这小儿科把戏。
查资料琢磨之后,我做了个小实验,在simulink 里验证了该种方法。
该方法的大原则是:在确定了系统的输入输出数据(两个列向量N ×1形式,如果是1×N ,会提示出错!)之后,设计好一定的辨识原则(比如说是2阶?3阶?,传递函数是零极点形式,还是带阻尼形式,等等),然后就交给强大的matlab ,得到辨识结果。
Step by step ,plz ! Step1、 建立模型获取系统输入输出数据图1图1系统的输入是阶跃信号,用Scope1监视,并输出到workspace (这步不会的自己百度哦),采样周期是0.1s,得到输入变量u(101×1的矩阵);本人在系统的阶跃响应上叠加了一白噪声,当然也可以不加噪声,加了噪声就是期望更真实的模拟实际情况,白噪声参数设置见图2图2同样在Scope2监视,也将结果输出到workspace,得到响应数据y(同样也是101×1的矩阵)Step 2、进入辨识工具箱&设置辨识规则直接在command window 输入 ident,回车,进入辨识工具箱图3图3点击import下拉菜单,选时域数据time domain data,见图4图4在下图5红色圈区域输入之前得到的系统输入和输出数据,u和y图5在下图6绿色圈内输入数据的一些信息,因为之前模型中,阶跃起点我是放在0s处的,这里也设置0,如果前面模型仿真是1s,这里应该也是1s;采样时间是0.1s,根据实际情况设置统一哦图6设置完之后,点击import此时界面变成图7图7如果在下图8勾选红框这个选项,就会出现我们刚才设定输入输出数据的曲线,如图9所示,其他勾选项是频域的分析和显示,暂不用它。
图8图9看看与我们实际设置的输入输出是否符合,如果符合,那么我们离成功就不远咯,如果发现异常,那再好好检查一遍,直到确保数据导入没有问题!下面两段红色斜杠之间的内容,对于本实验,可以直接跳过,看一下对后续复杂模型的处理有好处哦,也算全面熟悉一下工具。
////////////////////////////////////////////////////////// /到这接着选preprocess也就是对数据进行预处理了,下拉菜单中有很多种处理方法和手段,有这个心思的人可以挨个试一下功能。
图10图10预处理的对象是working data中的数据,每进行一种预处理在左边就会有新的数据生成,这时只要将新的数据移动到working data 的那个方框,就可以将working data换成你所想处理的数据了,可以这样多次进行处理,得到你最终想用来辨识的数据和用于验证的数据(不需要的数据可以拖到那个trash里面删除,就是回收站了,也可以从回收站中找回的)接下来就是辨识了,首先把辨识用的数据拖到working data那个方框,再把验证的数据拖到validation data那个方框,这个validation data就是最原始数据稍作处理得到的一个更接近理论模型的对象数据,在这实验里,本人用的就是默认数据,也就是不做任何preprocess处理。
///////////////////////////////////////////////////////////点下拉菜单estimate,选你想要的模型,在弹出的对话框中设定参数,图11图11这里边的模型种类比较多,有线性的、非线性的、状态空间的、经典传递函数形式的等等,我们所选的就是图中红色方框process models,单击。
弹出如下界面图12!图12在本实验中,我们做如下设置,见图13红框标出部分。
图13是否有零点、有传递函极点然后点击最下方Estimate,就有模型生成了。
图14图14先勾选上图绿色框选项,看到了什么?给出了拟合率,best fits 98.72有木有??传递函数具体的数值,双击上图红色框,见图15?图15在右边的数据栏中;也就是model views中了,下面有很多可以选择,每选一个就可以生成一幅对应的图,是由用于验证的数据生成的。
把模型拖到to workspace那个方框,再去看workspace,多的那个变量就是你所辨识出的模型了注意:在某个模型或某组数据上点一下,线变细了就不会在图中显示出来了!!!!!!!!最后再一次提出,上述分析并不一定完全正确,可能有些概念并不清晰可靠,当然还有很多功能并没有被发掘,可以确定的是解决这个问题的两个大方向没有问题,若想做到精益求精,还需要再仔细研究斟酌哦!。