系统辨识

合集下载

系统辨识算法

系统辨识算法

系统辨识算法一、引言系统辨识是指通过对系统输入输出数据进行观测和分析,从而建立数学模型以描述和预测系统行为的过程。

系统辨识算法是在给定输入输出数据的基础上,利用数学方法和计算机模拟技术,对系统的结构和参数进行估计和辨识的算法。

系统辨识算法在控制工程、信号处理、机器学习等领域具有广泛的应用。

二、系统辨识方法系统辨识方法可以分为参数辨识和非参数辨识两类。

1. 参数辨识参数辨识是指通过对系统模型中的参数进行估计,来描述和预测系统的行为。

常用的参数辨识方法有最小二乘法、最大似然估计法、递推最小二乘法等。

最小二乘法是一种基于最小化误差平方和的优化方法,通过优化目标函数来估计参数值。

最大似然估计法是一种基于概率统计理论的方法,通过似然函数最大化来估计参数值。

递推最小二乘法是一种基于递推迭代的方法,通过更新参数估计值来逼近真实参数值。

2. 非参数辨识非参数辨识是指通过对系统的输入输出数据进行分析,来估计系统的结构和参数。

常用的非参数辨识方法有频域分析法、时域分析法、小波分析法等。

频域分析法是一种基于信号频谱特性的方法,通过对输入输出信号的频谱进行分析,来估计系统的频率响应。

时域分析法是一种基于信号时域特性的方法,通过对输入输出信号的时序关系进行分析,来估计系统的时域特性。

小波分析法是一种基于小波变换的方法,通过对输入输出信号的小波变换系数进行分析,来估计系统的时频特性。

三、系统辨识应用系统辨识算法在实际工程中有着广泛的应用。

1. 控制工程系统辨识算法在控制系统设计中起到关键作用。

通过对控制对象进行辨识,可以建立准确的数学模型,从而设计出性能优良的控制器。

例如,在自适应控制中,可以利用系统辨识算法来实时辨识系统模型,从而根据实际系统特性调整控制器参数。

2. 信号处理系统辨识算法在信号处理领域有重要应用。

通过对信号进行辨识,可以提取信号的特征和结构,从而实现信号去噪、信号分析、信号识别等目标。

例如,在语音信号处理中,可以利用系统辨识算法来建立语音模型,进而实现语音识别和语音合成。

机械系统的系统辨识与参数辨识

机械系统的系统辨识与参数辨识

机械系统的系统辨识与参数辨识在机械工程领域,系统辨识和参数辨识是非常重要的研究方向。

系统辨识主要是指从输入和输出的测量数据中,通过建立数学模型来揭示系统的特性和行为规律。

而参数辨识则是指利用已知的数学模型,从实测数据中确定模型的参数值。

这两个方法的应用可以帮助工程师深入理解和优化机械系统的性能。

系统辨识方法的应用非常广泛,可以用于各种不同的机械系统,包括机器人、汽车、航空航天设备等。

通过系统辨识,工程师可以了解系统的内部结构和动力学特性,从而优化系统设计和控制策略。

例如,在机器人领域,系统辨识可以帮助研究人员确定机器人的动力学参数,从而实现更加精确的轨迹跟踪和运动控制。

在汽车行业,系统辨识可以用于优化发动机燃油效率和悬挂系统的动力学性能。

系统辨识的方法包括基于物理模型和基于数据的方法。

基于物理模型的方法主要是通过建立数学模型来描述系统的动力学特性。

这种方法需要事先了解系统的机械结构和物理参数,然后使用数学工具,如微分方程和线性代数等,来推导系统的动力学模型。

基于数据的方法则是基于实测数据来推断系统的动力学特性。

这种方法不需要事先了解系统的物理参数,而是通过对输入和输出数据进行统计分析和数学建模,来揭示系统的动力学行为。

参数辨识是系统辨识的一个重要组成部分。

在实际应用中,通常需要确定系统模型中的参数值。

参数辨识的方法可以分为线性和非线性方法。

线性参数辨识方法通常是通过最小二乘法或极大似然法来确定参数值。

而非线性参数辨识方法则需要使用更加复杂的数学工具,如优化算法或贝叶斯推断方法等。

参数辨识的目标是使得建立的数学模型和实测数据之间的误差最小化。

机械系统的系统辨识和参数辨识在实际应用中存在一定的挑战和困难。

首先,机械系统往往具有复杂的非线性特性,这使得建立准确的数学模型非常困难。

其次,实际采集到的输入和输出数据可能受到噪声和干扰的影响,这会导致辨识结果的误差。

另外,系统辨识和参数辨识需要大量的计算和数据处理,对计算资源和存储空间有一定的要求。

第02讲系统辨识三要素

第02讲系统辨识三要素

第02讲系统辨识三要素系统辨识是指通过对系统输入和输出数据的观测和分析,求解出系统的数学模型的过程。

系统辨识主要有两种方法:非参数辨识和参数辨识。

在进行参数辨识时,需要确定三个基本要素,分别是模型结构、参数估计方法和误差分析方法。

本文将详细介绍这三个要素。

首先,模型结构是系统辨识的核心要素之一、模型结构决定了辨识出的数学模型与实际系统之间的对应关系。

模型结构的选择需要根据实际问题和已有的知识和经验来确定。

常用的模型结构包括线性模型、非线性模型、时变模型等。

例如,对于一个物理系统来说,可以尝试使用一阶惯性环节、二阶惯性环节等常见的线性模型结构进行辨识;对于一个生物系统来说,可以采用Lotka-Volterra模型等非线性模型结构进行辨识。

选择合适的模型结构可以提高系统辨识的精度和可靠性。

其次,参数估计方法是指在给定模型结构的情况下,通过对系统输入和输出数据进行处理和分析,求解出模型参数的过程。

参数估计方法分为两类:最小二乘法和最大似然法。

最小二乘法通过最小化观测数据与模型预测数据之间的残差平方和来估计模型参数;最大似然法通过最大化观测数据的似然函数来估计模型参数。

当观测数据服从高斯分布时,最小二乘法和最大似然法等效。

参数估计方法的选择需要根据数据性质和实际问题来确定。

对于小样本数据,最大似然法常常具有更好的效果;对于大样本数据,最小二乘法通常是更好的选择。

最后,误差分析方法是指用来评估辨识结果的准确性和可信度的方法。

误差分析方法主要包括残差分析、模型检验和辨识结果评价等。

残差分析是通过分析辨识结果与观测数据之间的差异来评估模型拟合程度的方法。

模型检验是通过将辨识结果应用到实际应用中,观察其预测能力和鲁棒性来评价模型的有效性。

辨识结果评价是通过计算模型的性能指标,如均方误差、决定系数等来评估辨识结果的准确性和可靠性。

误差分析方法的选择需要根据实际问题和辨识结果的要求来确定。

对于较为简单的问题,可以选择较为简单的误差分析方法;对于复杂的问题,需要选择更为精确和全面的误差分析方法。

系统辨识的基本步骤

系统辨识的基本步骤

系统辨识的基本步骤
系统辨识的基本步骤包括:
1.数据采集:从现实世界中获取需要识别的信息,例如人脸图像、
语音信号、文字等。

数据采集的质量直接影响到后续的识别效果,因此需要注意采集环境、采集设备等因素。

2.特征提取:从采集到的数据中提取出具有代表性的特征。

3.模型建立:根据提取的特征,建立相应的模型。

4.模型训练:使用训练数据对模型进行训练,调整模型参数,提高
模型的准确性和鲁棒性。

5.模型评估:使用测试数据对模型进行评估,计算模型的精度、召
回率、F1值等指标,以检验模型的性能。

6.模型应用:将训练好的模型应用于实际场景中,进行目标检测、
分类、跟踪等任务。

在实际应用中,还需要根据具体的问题和任务进行适当的调整和改进,以提高系统的性能和适应性。

《系统辨识》课件

《系统辨识》课件

脉冲响应法
总结词
脉冲响应法是一种通过输入和输出数据 估计系统脉冲响应的非参数方法。
VS
详细描述
脉冲响应法利用系统对单位脉冲函数的响 应来估计系统的动态特性。通过观察系统 对脉冲输入的输出,可以提取出系统的传 递函数。这种方法同样适用于线性时不变 系统,且不需要知道系统的具体数学模型 。
随机输入响应法

线性系统模型具有叠加性和齐次性,即 多个输入产生的输出等于各自输入产生 的输出的叠加,且相同输入产生的输出
与输入的倍数关系保持不变。
线性系统模型可以通过频域法和时域法 进行辨识,频域法主要通过频率响应函 数进行辨识,时域法则通过输入和输出
数据直接计算系统参数。
非线性系统模型
非线性系统模型具有非叠加性和非齐次性,即多个输 入产生的输出不等于各自输入产生的输出的叠加,且 相同输入产生的输出与输入的倍数关系不保持不变。
递归最小二乘法
递归最小二乘法是一种在线参数估计方法,通过递归地更新参数估计值来处理动态系统。在系统辨识中,递归最小二乘法常 用于实时估计系统的参数。
递归最小二乘法的优点是能够实时处理动态数据,且对数据量较大的情况有较好的性能表现。但其对初始参数估计值敏感, 且容易陷入局部最优解。
广义最小二乘法
广义最小二乘法是一种改进的最小二乘法,通过考虑误差的 方差和协方差来估计参数。在系统辨识中,广义最小二乘法 常用于处理相关性和异方差性问题。
系统辨识
目录
• 系统辨识简介 • 系统模型 • 参数估计方法 • 非参数估计方法 • 系统辨识的局限性与挑战 • 系统辨识的应用案例
01
系统辨识简介
定义与概念
定义
系统辨识是根据系统的输入和输出数 据来估计系统动态特性的过程。

系统辨识与模型预测控制

系统辨识与模型预测控制

系统辨识与模型预测控制系统辨识与模型预测控制是现代控制理论中的关键概念,它们在工程领域中被广泛应用于系统建模及控制设计中。

本文将详细介绍系统辨识与模型预测控制的基本概念、原理、方法和应用。

一、系统辨识系统辨识是指通过实验数据对系统的动态行为进行建模和估计的过程。

它可以帮助我们了解系统的性质和结构,并在控制系统设计中提供准确的数学模型。

系统辨识的主要任务是确定系统的参数和结构,并评估模型的质量。

1.1 参数辨识参数辨识是系统辨识的主要内容之一,它通过收集系统的输入和输出数据,并根据建模方法对参数进行估计。

常用的参数辨识方法包括最小二乘法、极大似然法、频域法等。

参数辨识的结果对建模和控制设计具有重要的指导意义。

1.2 结构辨识结构辨识是指确定系统的数学结构,即选择合适的模型形式和结构。

常用的结构辨识方法有ARX模型、ARMA模型、ARMAX模型等。

结构辨识的关键是根据系统的性质和实际需求选择适当的模型结构,以保证模型的准确性和有效性。

二、模型预测控制模型预测控制是一种基于系统动态模型的控制方法,它通过在线求解最优控制问题实现对系统的控制。

模型预测控制通过对系统未来动态行为的预测,结合控制目标和约束条件,求解优化问题得到最优控制输入。

它具有优良的鲁棒性和适应性,并且能够处理多变量、非线性以及时变系统的控制问题。

2.1 模型建立模型预测控制的第一步是建立系统的数学模型,通常采用系统辨识的方法得到。

模型可以是线性的或非线性的,根据实际需求选择适当的模型结构和参数。

2.2 控制器设计模型预测控制的核心是设计控制器,控制器的目标是使系统输出跟踪参考轨迹,并满足约束条件。

控制器设计通常通过求解一个离散时间最优控制问题来实现,常用的方法有二次规划、线性规划、动态规划等。

2.3 优化求解模型预测控制的关键是求解最优控制问题,将系统的模型和控制目标转化为一个优化问题,并通过数值优化方法求解得到最优解。

常用的优化算法包括线性规划、非线性规划、遗传算法等。

系统辨识与控制

系统辨识与控制
神经网络控制
神经网络控制是一种基于人工神经网络的智能控制策略,通过训练神经网络来逼近复杂的 非线性映射关系,实现对系统的控制。
强化学习
强化学习是一种基于试错的智能控制策略,通过与环境进行交互并学习最优策略来实现对 系统的控制。
06 系统辨识与控制的应用案 例
工业控制系统
自动化生产线控制
通过系统辨识技术,对生产线上的设备进行建模,实现自动化控 制,提高生产效率。
对系统的控制。
02
反步控制
反步控制是一种基于递归设计的非线性控制策略,通过将系统分解为多
个子系统并分别设计控制器来实现对系统的控制。
03
自适应控制
自适应控制是一种处理参数不确定性和外界干扰影响的控制策略,通过
在线调整控制器参数来适应系统参数的变化和外界干扰的影响。
智能控制技术
模糊控制
模糊控制是一种基于模糊逻辑和模糊集合论的控制策略,通过将专家的经验转化为模糊规 则来实现对系统的控制。
系统辨识与控制
目录
• 系统辨识简介 • 系统数学模型 • 系统辨识方法 • 系统控制简介 • 控制策略与技术 • 系统辨识与控制的应用案例
01 系统辨识简介
定义与目的
定义
系统辨识是根据系统的输入和输出数 据来估计系统动态特性的过程。
目的
通过系统辨识,可以建立系统的数学 模型,为控制、预测、优化等提供基 础。
卫星姿态控制
通过系统辨识技术对卫星 的姿态进行建模和控制, 确保卫星的稳定运行和数 据的准确传输。
火箭推进系统控制
利用系统辨识技术对火箭 推进系统的动态特性进行 建模,实现精确的推进控 制和自主发射。
机器人控制系统
工业机器人控制
通过系统辨识技术对工业机器人的动态特性进行建模,实现精确 的运动控制和自主作业。

《系统辨识》新方法

《系统辨识》新方法

《系统辨识》新方法引言系统辨识是指通过收集系统的输入和输出数据,建立数学模型来描述系统的动态特性和行为规律的过程。

它在工程控制、通信系统、经济学、生物学等领域都有着广泛的应用。

传统的系统辨识方法包括最小二乘法、频域法、状态空间法等,然而这些方法在处理高维复杂系统时往往面临着诸多困难和局限性。

开发新的系统辨识方法成为当前研究的重要方向之一。

1. 基于深度学习的系统辨识方法深度学习是近年来发展迅猛的机器学习方法,其在图像识别、语音识别等领域已经取得了巨大的成功。

研究者们开始将深度学习方法引入系统辨识领域,希望通过深度神经网络对系统的非线性动态进行建模。

与传统的线性模型相比,深度学习方法更加灵活和准确,能够处理更加复杂的系统动态特性。

有研究者利用深度学习方法对非线性动力学系统进行辨识,取得了较好的效果。

这为系统辨识方法带来了新的思路和突破口。

2. 基于信息论的系统辨识方法信息论是研究信息传输、存储和处理的数学理论。

近年来,一些研究者开始探索将信息论方法引入系统辨识领域。

信息论方法可以量化系统输入与输出之间的信息流动,从而揭示系统的动态行为。

使用信息论方法进行系统辨识,不仅可以对系统的稳定性和故障诊断进行分析,还可以对系统的冗余信息和关键信息进行提取,提高辨识的准确性和鲁棒性。

基于信息论的系统辨识方法正逐渐受到研究者的重视。

3. 基于数据驱动的系统辨识方法传统的系统辨识方法需要先对系统的数学模型进行假设和构建,然后根据收集到的数据对模型进行参数估计和验证。

然而在实际应用中,许多系统的动态特性往往十分复杂,很难通过已知的数学模型来描述。

一些研究者开始提倡使用数据驱动的方法进行系统辨识。

即直接利用系统的输入和输出数据,通过数据挖掘和模式识别技术来揭示系统的内在规律和动态特性。

这种方法不需要对系统进行先验假设,能够更好地适应复杂系统的辨识需求。

4. 基于机器学习的系统辨识方法机器学习是一种实现人工智能的方法,其包括监督学习、无监督学习、强化学习等技术。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

系 统 辨 识 作 业系统辨识作业:•已知某系统为单输入/单输出系统,其测量噪声为有色噪声,分布未知。

现给出一个实验样本(如下表所示),求该系统模型。

说明:可采用GLS ,ELS ,IV 等,要定阶,要比较仅用RLS 的计算结果 一、问题分析在估计模型参数时需要已知模型的阶数,但是由于本系统模型阶数也是未知的,所以本系统需要先由输入/输出数据通过辩识得出系统的阶数。

然后根据辨识的系统阶数再分析求解系统模型。

二、模型阶数的辨识按照品质指标“残差平方总和”定阶,如高阶系统模型相应的系数为零,则可退化成相应的低阶系统即低阶模型可视为高阶模型的特例。

理论上高阶模型的精度不低于低阶模型,但是考虑到计算机的舍入误差的影响,过高的阶数亦能引起模型精度的下降。

一般说低阶模型描述粗糙,高阶模型精度高,但是代价亦大。

根据逼近的观点,定阶往往是考虑多种因素的折衷。

定阶一般是按照假设——检验的步骤进行的,检验过程中往往带有主观成分。

一般说来低阶模型描述粗糙,高阶模型精度高。

残差平方总和J(n)是模型阶数的函数在不同的模型阶数的假设下,参数估计得到的J(n)值亦不同。

定阶的最简单办法是直接用J(n)。

设模型阶数的“真值”为n 0 ,当n < n 0 时随着n 的增加,J(n)值将明显的下降;而当n ≥ n 0 时随着n 的增加,J(n)值变化将不显著。

因此,由J(n)曲线随着n 的增加最后一次陡峭下降的n 值定做n 的估计值。

用数理统计的检验方法,判断n 的增加使得J(n)值改善是否明显。

讨论如下(1).当n=1时程序如下: clearu=zeros(100,1);%构造输入矩阵 z=zeros(100,1);%构造输出矩阵u=[-0.93249 0.34935 0.76165 -0.9964 -0.38894 -0.12288 0.021565 -0.49555 -0.61624 -1.912 0.22207 -0.31231 -0.17866 -1.8356 -0.26472 1.7642 -1.0418 1.1146 -2.0856 0.8152 1.5094 -0.5822 0.61097 0.35521 2.5907 1.5843 -0.9603 -0.27341 0.39947 0.17493 -1.7451 0.8112 1.2645 1.5682 0.63959 -0.47757 0.99697 0.058774 -0.16174 -1.2928 -0.04722 0.73182 -0.19644 0.091783 -1.1908 -0.90716 0.85388 0.33836 0.74074 0.54181 0.15676 -0.50569 -0.17521 1.3255 -2.488 0.50261 -1.1533 0.36407 0.65283 -0.05983∑=-=Nk T Kk y n J 12))(()(θϕ-1.1464 1.1406 1.3891 0.75736 -0.23474 0.1793 0.084435 0.35464 -0.21055 -1.0089 -2.5115 -1.3007 0.91626 1.9674 0.95495 0.499 0.36871 -0.12931 -1.572 -1.0032 1.0072 -0.20873 0.93346 -0.88953 -0.60081 -0.62593 1.4748 -1.2291 0.064272 -1.2139 0.15342 0.11332 0.23502 -1.0776 -0.32697 0.2859 0.67131 1.7297 0.70529 -1.2088]';%输入数据uz=[ 0.28412 -1.2053 -1.8813 -1.7496 -2.8686 -4.9332 -4.6691 -2.8167 -1.2759 -0.7668 -2.6371 -4.317 -6.3424 -7.5086 -7.8543 -7.7153 -3.1131 1.303 5.385 7.1704 6.7143 6.8642 6.8652 6.5386 4.9673 5.1895 5.4094 3.3101 -0.74817 -4.1961 -5.4271 -8.6193 -9.6902 -7.9423 -2.1012 4.2807 8.403 10.151 11.106 9.4447 6.4218 3.5482 2.3237 1.856 1.443 -0.24757 -4.6216 -6.7792 -4.6945 0.31967 4.1559 8.5023 9.8421 9.3436 9.3422 7.1959 3.2164 -1.2355 -4.1895 -4.4498 -4.2321 -4.5896 -4.4376 -1.9601 1.6745 4.572 6.75 8.2541 7.0644 3.8969 -0.72395 -7.4809 -13.613 -16.961 -16.283 -11.596 -4.368 3.5309 8.0703 7.7467 5.2576 4.7738 6.5092 6.221 2.3859 -4.1897 -9.2999 -9.2728 -9.1932 -10.059 -9.7339 -6.3149 -1.5968 3.5503 7.4666 9.883 11.627 11.234 10.671 10.235 ]';%输出数据zr=100;for p=1:(r-2) %利用循环生成观测矩阵h(p,:)=[-z(p+1) u(p+1)]; %endhl=h;for b=1:(r-2) %生成输出矩阵zl(b,:)=[z(b+2)];zl'endzl'%根据最小二乘法公式进行参数辩识c1=hl'*hl;c2=inv(c1);c3=hl'*zl;c=c2*c3;a1=c(1)a2=c(2)j=0;for k=4:100;hl=[-z(k-1);u(k-1)]';x=hl*c;y=z(k)-x;s=y*y;j=j+s;endj仿真结果如下a1 = -0.9280 a2 =1.0351 j = 755.1949(2)当 n=2时程序如下(输入输出数据同上,只给出不同于一阶系统的程序不同之处)其中U、Z分别是作业要求给出得的输入输出,数据输入同上。

r=100;%利用循环生成观测矩阵。

for p=1:(r-2)h(p,:)=[-z(p+1) -z(p) u(p+1) u(p)];endhl=h;%生成输出矩阵。

for b=1:(r-2)zl(b,:)=[z(b+2)];zl'endzl'%根据最小二乘法公式进行参数辩识c1=hl'*hl;c2=inv(c1);c3=hl'*zl;c=c2*c3;%Q ls%输出辩识参数a1=c(1)a2=c(2)b1=c(3)b2=c(4)j=0;%求J(n)for k=4:100; %开始求Kh1=[-z(k-1),-z(k-2),u(k-1),u(k-2)]';x=h1*c;y=z(k)-x;s=y*y;j=j+s;endj仿真结果如下a1 = -1.6585 b1 = 0.9656 a2 = 0.8266 b2 = 0.3972 j=98.9904(3)当n=3时程序如下(只给出与一阶系统的不同之处)r=100;for p=2:(r-2)h(p,:)=[-z(p+1) -z(p) -z(p-1) u(p+1) u(p) u(p-1)];Endhl=h;for b=2:(r-2)zl(b,:)=[z(b+2)];zl'endzl'c1=hl'*hl;c2=inv(c1);c3=hl'*zl;c=c2*c3;a1=c(1)a2=c(2)a3=c(3)b1=c(4)b2=c(5)b3=c(6)j=0;for k=4:100;hl=[-z(k-1);-z(k-2);-z(k-3);u(k-1);u(k-2);u(k-3)]';x=hl*c;y=z(k)-x;s=y*y;j=j+s;endj仿真结果如下a1 =-1.9030 a2 =1.2235 a3 = -0.1934 b1 = 0.9392 b2 = 0.1779 b3 = -0.3438 j = 87.6641数据分析如下利用LS法先对系统参数进行初步辩识并根据其确定残差平方总和J(n) 结果如下:阶数辩识n a i b i J (n) 1-0.9280 1.0351 755.1949 2 -1.6585 0.8266 0.96560.3972 98.99043 -1.9030 1.2235 -0.1934 0.93920.1779 -0.343887.6641根据公式,我们可以计算出相应的J (N )变化率:T (1)=6.62897 T (2)=0.1292由此我可以看出,在由一阶到二阶的T (1)很大,说明J (N )有一个很明显的变化,而T (2)很小,说明随着阶数的增加J (N )的变化很小,据此我们有理由相信该系统应该是二阶的。

三、模型参数的辩识 1)、由上面的过程我们得到该系统是二阶的,又考虑到有色噪声的影响,所以采用递推增广最小二乘法(RELS )进行辩识。

思路如下: ·考虑 CARMA 模型A (z -1) y (k) =B (z -1) u (k) +C (z -1) ε (k)其中:A (z -1) = 1 + a 1 z - 1 +…+ a n z -nB (z -1) = b 1 z - 1 +…+ b n z - nC (z -1) = 1 + c 1 z - 1 +…+ c r z - r还可表示为 :以上两向量均由 2n 维扩展为 (2n+r) 维。

在式Kϕ中若ε ( k-1)、、、ε ( k-r) 是已知量,则可直接用 LS 法估计出 θ ,但是{ ε ( k) }是不可测的未知量。

一个简单可行的方法是用计算的ε ( k -1) 代替ε ( k -1) ,…. ε ( k -r) , { ε ( k) }由下式递推得出:ε (k) = y(k) - ϕk θ k -1 (计算残差) 其中:ϕk = [ -y(k-1),..,-y(k-n) , u(k-1),..,u(k-n) , ε (k-1),.., ε (k-r) ]T递推算式)1()1()()(++-=n J n J n J n T[][]1)2(111,...,,,...,,,...,)(),..,1(),(),...,1(),(),...,1(⨯+=--------=r n Tr n n TKc c b b a a r k k n k u k u n k y k y θεεϕ)()(k k y T kεθϕ+=θ N+1 = θ N + K N+1(y(N+1) – ϕN+1T θ N )ε (N+1) = y(N) - ϕN+1 θ NϕN = [-y(N-1),..,-y(N-n),u(N-1),,u(N-n),ε(N-1),..,ε (N-r) ]T 递推初值:θ 0= 0 ; P 0= 10 6 I; ε (0) = ε (-1) = … = ε (1-r) = 0用matlab 编程实现如下(仅列出程序中除输入输出部分输入输出同上一个程序) c0=[0.001 0.001 0.001 0.001 0.001 0.001]';%直接给出被辨识参数的初始值,即一个充分小的实向量p0=10^6*eye(6,6);%直接给出初始状态P0,即一个充分大的实数单位矩阵 E=5.0e-15;%取相对误差Ec=[c0,zeros(6,99)];%被辨识参数矩阵的初始值及大小 e=zeros(6,100);%相对误差的初始值及大小 v=zeros(1,100);for k=3:100; %开始求Kh1=[-z(k-1),-z(k-2),u(k-1),u(k-2),v(k-1),v(k-2)]';%为求K(k)作准备 x=h1'*p0*h1+1; x1=inv(x); k1=p0*h1*x1; %K d1=z(k)-h1'*c0; c1=c0+k1*d1;%辨识参数c e1=c1-c0;e2=e1./c0; %求参数的相对变化 e(:,k)=e2;c0=c1;%给下一次用v(k)=z(k)-h1'*c0;%预报噪声c(:,k)=c1;%把辨识参数c 列向量加入辨识参数矩阵 p1=p0-k1*k1'*[h1'*p0*h1+1];%find p(k) p0=p1;%给下次用if e2<=E break;%若收敛情况满足要求,终止计算 end%判断结束 end%循环结束c, e, %显示被辨识参数及参数收敛情况a1=c(1,:);a2=c(2,:);b1=c(3,:);b2=c(4,:);c1=c(5,:);c2=c(6,:); i=1:100;plot(i,a1,'r',i,a2,'r:',i,b1,'g',i,b2,'g:',i,c1,'k',i,c2,'k:') 仿真结果如下所示11111+++++=N N T N N N N P P Kϕϕϕ111111++++++-=N N TN NT N N N N NP P P P P ϕϕϕϕ参数收敛图形如下:图形分析:由图象可以看出在n 小于30时系统辨识参数误差比较大,但在n 大于20时随着n 的增大2)、当仅用RLS 做,程序实现如下:(输入输出部分同上)c0=[0.001 0.001 0.001 0.001]';%直接给出被辨识参数的初始值,即一个充分小的实向量p0=10^6*eye(4,4);%直接给出初始状态P0,即一个充分大的实数单位矩阵 c=[c0,zeros(4,99)];%被辨识参数矩阵的初始值及大小 e=zeros(4,100);%相对误差的初始值及大小 for k=3:100; %开始求Kh1=[-z(k-1),-z(k-2),u(k-1),u(k-2)]';%为求K(k)作准备 x=h1'*p0*h1+1; x1=inv(x); k1=p0*h1*x1; %K d1=z(k)-h1'*c0; c1=c0+k1*d1;%辨识参数c e1=c1-c0;e2=e1./c0; %求参数的相对变化 c0=c1;%给下一次用c(:,k)=c1;%把辨识参数c 列向量加入辨识参数矩阵二阶a 1= -1.5691b 1= 1.0045c 1= -0.4163 a 2= 0.7705 b 2= 0.5056c 2= 0.1563p1=p0-k1*k1'*[h1'*p0*h1+1];%find p(k) p0=p1;%给下次用 end%判断结束 end%循环结束c, e, %显示被辨识参数及参数收敛情况 a1=c(1,:) a2=c(2,:) b1=c(3,:) b2=c(4,:) i=1:100;plot(i,a1,'r',i,a2,'r:',i,b1,'g',i,b2,'g:') 仿真结果如下:参数收敛图形如下:三、结论:综上两种辨识做法,我们很容易得看出当n 小于10时,两种方法辨识的结果误差都很大,但两种方法对系统参数辨识的结果与理论值有着明显差别,当n 大于50时两种辨识方法所辨识的模型系统参数都以不同的收敛速度收敛于理论二阶a 1= -1.6585b 1= 0.9656 a 2= 0.8266b 2= 0.3971值,随着n的继续增大两种方法辨识结果的差别也越来越小,但n在20与50之间从图中可以看出递推增广最小二乘法的辨识结果明显好于标准递推最小二乘法。

相关文档
最新文档