系统辨识
系统辨识算法

系统辨识算法一、引言系统辨识是指通过对系统输入输出数据进行观测和分析,从而建立数学模型以描述和预测系统行为的过程。
系统辨识算法是在给定输入输出数据的基础上,利用数学方法和计算机模拟技术,对系统的结构和参数进行估计和辨识的算法。
系统辨识算法在控制工程、信号处理、机器学习等领域具有广泛的应用。
二、系统辨识方法系统辨识方法可以分为参数辨识和非参数辨识两类。
1. 参数辨识参数辨识是指通过对系统模型中的参数进行估计,来描述和预测系统的行为。
常用的参数辨识方法有最小二乘法、最大似然估计法、递推最小二乘法等。
最小二乘法是一种基于最小化误差平方和的优化方法,通过优化目标函数来估计参数值。
最大似然估计法是一种基于概率统计理论的方法,通过似然函数最大化来估计参数值。
递推最小二乘法是一种基于递推迭代的方法,通过更新参数估计值来逼近真实参数值。
2. 非参数辨识非参数辨识是指通过对系统的输入输出数据进行分析,来估计系统的结构和参数。
常用的非参数辨识方法有频域分析法、时域分析法、小波分析法等。
频域分析法是一种基于信号频谱特性的方法,通过对输入输出信号的频谱进行分析,来估计系统的频率响应。
时域分析法是一种基于信号时域特性的方法,通过对输入输出信号的时序关系进行分析,来估计系统的时域特性。
小波分析法是一种基于小波变换的方法,通过对输入输出信号的小波变换系数进行分析,来估计系统的时频特性。
三、系统辨识应用系统辨识算法在实际工程中有着广泛的应用。
1. 控制工程系统辨识算法在控制系统设计中起到关键作用。
通过对控制对象进行辨识,可以建立准确的数学模型,从而设计出性能优良的控制器。
例如,在自适应控制中,可以利用系统辨识算法来实时辨识系统模型,从而根据实际系统特性调整控制器参数。
2. 信号处理系统辨识算法在信号处理领域有重要应用。
通过对信号进行辨识,可以提取信号的特征和结构,从而实现信号去噪、信号分析、信号识别等目标。
例如,在语音信号处理中,可以利用系统辨识算法来建立语音模型,进而实现语音识别和语音合成。
第02讲系统辨识三要素

第02讲系统辨识三要素系统辨识是指通过对系统输入和输出数据的观测和分析,求解出系统的数学模型的过程。
系统辨识主要有两种方法:非参数辨识和参数辨识。
在进行参数辨识时,需要确定三个基本要素,分别是模型结构、参数估计方法和误差分析方法。
本文将详细介绍这三个要素。
首先,模型结构是系统辨识的核心要素之一、模型结构决定了辨识出的数学模型与实际系统之间的对应关系。
模型结构的选择需要根据实际问题和已有的知识和经验来确定。
常用的模型结构包括线性模型、非线性模型、时变模型等。
例如,对于一个物理系统来说,可以尝试使用一阶惯性环节、二阶惯性环节等常见的线性模型结构进行辨识;对于一个生物系统来说,可以采用Lotka-Volterra模型等非线性模型结构进行辨识。
选择合适的模型结构可以提高系统辨识的精度和可靠性。
其次,参数估计方法是指在给定模型结构的情况下,通过对系统输入和输出数据进行处理和分析,求解出模型参数的过程。
参数估计方法分为两类:最小二乘法和最大似然法。
最小二乘法通过最小化观测数据与模型预测数据之间的残差平方和来估计模型参数;最大似然法通过最大化观测数据的似然函数来估计模型参数。
当观测数据服从高斯分布时,最小二乘法和最大似然法等效。
参数估计方法的选择需要根据数据性质和实际问题来确定。
对于小样本数据,最大似然法常常具有更好的效果;对于大样本数据,最小二乘法通常是更好的选择。
最后,误差分析方法是指用来评估辨识结果的准确性和可信度的方法。
误差分析方法主要包括残差分析、模型检验和辨识结果评价等。
残差分析是通过分析辨识结果与观测数据之间的差异来评估模型拟合程度的方法。
模型检验是通过将辨识结果应用到实际应用中,观察其预测能力和鲁棒性来评价模型的有效性。
辨识结果评价是通过计算模型的性能指标,如均方误差、决定系数等来评估辨识结果的准确性和可靠性。
误差分析方法的选择需要根据实际问题和辨识结果的要求来确定。
对于较为简单的问题,可以选择较为简单的误差分析方法;对于复杂的问题,需要选择更为精确和全面的误差分析方法。
系统辨识的基本步骤

系统辨识的基本步骤
系统辨识的基本步骤包括:
1.数据采集:从现实世界中获取需要识别的信息,例如人脸图像、
语音信号、文字等。
数据采集的质量直接影响到后续的识别效果,因此需要注意采集环境、采集设备等因素。
2.特征提取:从采集到的数据中提取出具有代表性的特征。
3.模型建立:根据提取的特征,建立相应的模型。
4.模型训练:使用训练数据对模型进行训练,调整模型参数,提高
模型的准确性和鲁棒性。
5.模型评估:使用测试数据对模型进行评估,计算模型的精度、召
回率、F1值等指标,以检验模型的性能。
6.模型应用:将训练好的模型应用于实际场景中,进行目标检测、
分类、跟踪等任务。
在实际应用中,还需要根据具体的问题和任务进行适当的调整和改进,以提高系统的性能和适应性。
控制系统中的系统辨识与自适应控制

控制系统中的系统辨识与自适应控制在控制系统中,系统辨识与自适应控制是两个关键的方面。
系统辨识是指通过实验或推理的方法,从输入和输出的数据中提取模型的参数和结构信息,以便更好地理解和控制系统的行为。
而自适应控制是指根据系统辨识得到的模型参数和结构信息,实时地调整控制器的参数以适应系统变化,以提高控制性能。
一、系统辨识1.1 参数辨识参数辨识是指确定系统动态模型中的参数。
常用的方法包括最小二乘法、极大似然估计法等。
最小二乘法是一种常见的参数辨识方法,通过最小化实际输出与模型输出之间的误差平方和来确定参数。
1.2 结构辨识结构辨识是指确定系统动态模型的结构,包括确定系统的阶数、输入输出关系等。
常用的结构辨识方法有ARX模型、ARMA模型等。
ARX模型是指自回归外部输入模型,适用于输入输出具有线性关系的系统。
ARMA模型是指自回归滑动平均模型,适用于输入输出关系存在滞后效应的系统。
二、自适应控制自适应控制是根据系统辨识得到的模型参数和结构信息,动态地调整控制器的参数以适应系统的变化。
常用的自适应控制方法有模型参考自适应控制、模型预测控制等。
2.1 模型参考自适应控制模型参考自适应控制是建立在系统辨识模型基础上的控制方法。
通过将系统输出与参考模型输出进行比较,通过调整控制器参数来减小误差。
常见的模型参考自适应控制方法有自适应PID控制、自适应模糊控制等。
2.2 模型预测控制模型预测控制是一种基于系统辨识模型的控制策略,通过对系统未来的状态进行预测,以求得最优控制输入。
模型预测控制可以同时考虑系统的多个输入和多个输出,具有较好的控制性能。
三、应用案例3.1 机械控制系统在机械控制系统中,系统辨识和自适应控制可以被应用于伺服控制系统。
通过系统辨识可以得到伺服电机的动态模型,然后利用自适应控制方法调整PID控制器的参数,以提高伺服系统的响应速度和稳定性。
3.2 化工控制系统在化工控制系统中,系统辨识和自适应控制可以被应用于控制某个反应器的温度。
系统辨识与模型预测控制

系统辨识与模型预测控制系统辨识与模型预测控制是现代控制理论中的关键概念,它们在工程领域中被广泛应用于系统建模及控制设计中。
本文将详细介绍系统辨识与模型预测控制的基本概念、原理、方法和应用。
一、系统辨识系统辨识是指通过实验数据对系统的动态行为进行建模和估计的过程。
它可以帮助我们了解系统的性质和结构,并在控制系统设计中提供准确的数学模型。
系统辨识的主要任务是确定系统的参数和结构,并评估模型的质量。
1.1 参数辨识参数辨识是系统辨识的主要内容之一,它通过收集系统的输入和输出数据,并根据建模方法对参数进行估计。
常用的参数辨识方法包括最小二乘法、极大似然法、频域法等。
参数辨识的结果对建模和控制设计具有重要的指导意义。
1.2 结构辨识结构辨识是指确定系统的数学结构,即选择合适的模型形式和结构。
常用的结构辨识方法有ARX模型、ARMA模型、ARMAX模型等。
结构辨识的关键是根据系统的性质和实际需求选择适当的模型结构,以保证模型的准确性和有效性。
二、模型预测控制模型预测控制是一种基于系统动态模型的控制方法,它通过在线求解最优控制问题实现对系统的控制。
模型预测控制通过对系统未来动态行为的预测,结合控制目标和约束条件,求解优化问题得到最优控制输入。
它具有优良的鲁棒性和适应性,并且能够处理多变量、非线性以及时变系统的控制问题。
2.1 模型建立模型预测控制的第一步是建立系统的数学模型,通常采用系统辨识的方法得到。
模型可以是线性的或非线性的,根据实际需求选择适当的模型结构和参数。
2.2 控制器设计模型预测控制的核心是设计控制器,控制器的目标是使系统输出跟踪参考轨迹,并满足约束条件。
控制器设计通常通过求解一个离散时间最优控制问题来实现,常用的方法有二次规划、线性规划、动态规划等。
2.3 优化求解模型预测控制的关键是求解最优控制问题,将系统的模型和控制目标转化为一个优化问题,并通过数值优化方法求解得到最优解。
常用的优化算法包括线性规划、非线性规划、遗传算法等。
系统辨识与控制

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

系统辨识理论及应用引言系统辨识是通过对已知输入和输出进行处理,从而识别出系统的数学模型并进行建模的过程。
在现代科学和工程应用中,系统辨识技术被广泛应用于控制系统设计、信号处理、预测和模型识别等领域中。
本文将介绍系统辨识的理论基础、常用方法以及在实际应用中的案例分析,以便读者能够更好地了解系统辨识技术的原理和应用。
系统辨识的理论基础系统辨识的定义系统辨识是一种通过对系统的输入和输出数据进行处理,来推导出系统的数学模型的方法。
系统辨识可以用来描述和预测系统的行为,从而实现对系统的控制和优化。
系统辨识的基本原理系统辨识建模的基本思想是将输入和输出之间的关系表示为一个数学模型。
这个模型可以是线性模型、非线性模型、时变模型等。
在系统辨识中,常用的数学模型包括差分方程模型、状态空间模型、传递函数模型等。
系统辨识的基本原理是通过收集系统的输入和输出数据,然后利用数学方法来推导出系统的数学模型。
这个过程可以看作是一个参数优化的过程,通过不断调整模型参数,使得模型的输出与实际系统的输出尽可能接近。
系统辨识的常用方法系统辨识的常用方法包括参数估计方法、频域分析方法和结构辨识方法。
参数估计方法是最常用的系统辨识方法之一,它通过最小化模型的预测误差来估计模型参数。
常用的参数估计方法包括最小二乘法、最大似然估计法、最小二乘法等。
频域分析方法是基于系统的频率响应特性进行辨识的方法。
常用的频域分析方法包括递归最小二乘法、频域辨识方法等。
结构辨识方法是用来确定系统的结构的方法。
结构辨识方法可以分为模型选择方法和模型结构确定方法。
常用的结构辨识方法包括正则化算法、信息准则准则方法等。
系统辨识的应用控制系统设计系统辨识技术在控制系统设计中起着重要的作用。
通过对系统辨识建模,可以对系统进行建模和优化。
控制系统设计中的系统辨识可以用来预测系统的响应、设计合适的控制器以及优化控制算法。
信号处理系统辨识技术在信号处理中也有广泛的应用。
通过对信号进行系统辨识建模,可以分析信号的特性、提取信号中的有用信息以及去除信号中的干扰等。
系统辨识的基本概念

系统辨识涉及到的主要概念包括输入/ 输出数据、模型结构、算法和系统内 部结构等。这些概念相互关联,共同 构成了系统辨识的基本框架。
02
系统辨识的应用领域
控制系统
控制系统是工程和科学中一个非常重 要的领域,它涉及到对动态系统的建 模、分析和控制。系统辨识在控制系 统中有着广泛的应用,主要用于建立 系统的数学模型。通过输入和输出数 据,利用系统辨识方法可以估计出系 统的参数和状态,进一步用于控制系 统的设计和优化。
背景
随着现代工业和科技的快速发展,许多复杂系统如控制系统 、通信系统、生物系统等都需要精确的数学模型来进行有效 的分析和控制。系统辨识作为获取这些数学模型的关键技术 ,在许多领域中都得到了广泛应用。
系统辨识的定义
定义
系统辨识是根据系统的输入和输出数 据,通过特定的算法和模型结构,来 推断系统的内部结构和动态特性。
例如,在语音识别中,系统辨识可以用于建立语音信号的模型,提高语音识别的准确率;在雷达信号处理中,系统辨识可以 用于估计目标的距离和速度等参数。
机器学习
机器学习是人工智能的一个重要分支,它涉及到从数据中学习和提取知识。系统辨识在机器学习中也 有着重要的应用,主要用于模型的建立和优化。通过系统辨识方法,可以从数据中估计出模型的参数 和结构,进一步用于机器学习的算法设计和优化。
考虑模型的泛化能力
确保模型不仅在训练数据上表现良好,还能对未知数 据进行有效的预测。
进行模型优化和调整
根据验证结果,对模型进行优化和调整,以提高模型 的预测精度和泛化能力。
04
系统辨识的方法
最小二乘法
最小二乘法是一种数学优化技术,通过最小化误差的平方和来寻找数据的最佳函 数匹配。在系统辨识中,最小二乘法常用于参数估计,通过输入和输出数据,估 计系统的参数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作业1如图1.1所示一阶系统,系统传递函数为G(s)=1/(0.1s+1),如果采用M序列作为输入信号进行系统辨识,采用5级移位寄存器产生M序列作为输入信号,取M序列的时钟脉冲△=15ms,a=2辨识该系统的脉冲响应。
并说明取5级移位寄存器合理与否。
图1.1 一阶RC系统答:1.解题步骤1.初始化参数,设置模型参数,设置产生M序列的各个关键参数;2.利用产生伪随机二进制序列信号的函数getPRBS产生M序列,并作为系统输入;3.通过系统模型,产生系统输出,并将输入输出画在同一图中;4.计算系统输入输出相关函数R xy;5.计算系统脉冲估计值ghat和系统真实脉冲输出g2.程序清单主程序clc; close all; clear all;%% InitializationR = 100e3; % system initialization resistance=100k ohmC = 1e-6; % capacitance=1uftc = R*C; % Time Constant% generate M-sequencen=5;a=2; % Level of the PRBSdel = 15e-3; % clock pulse periodN=2^n-1; % Period of M sequence total=2*N;% Generate m-sequence using the 'getPRBS' function Out = getPRBS(n,a,del,total);% Generate response y(t) of the systems = tf('s');G = 1/(tc*s+1);tf = total*del;tim = 0:del:tf-del;y = lsim(G, Out, tim);%plot input and output of the systemfigurestairs(tim,Out);axis([0 1.0 -2.5 2.5]);hold onplot(tim,y,'r');hold off% Compute Rxy(i*del)sum = 0.0;Rxy = [];iDel_vec=[];for i=1:Ntau=i-1;iDel_vec=[iDel_vec;tau*del];for j=1:Nsum=sum+sign(Out(j))*y(j+tau);endRxy_i = (a/N)*sum;sum=0.0;Rxy = [Rxy; tau Rxy_i];end% Compute ghat & gind = length(Rxy);C = -Rxy(ind, 2);S = (N+1)*a^2*del/N;Rxy_iDel = Rxy(:,2);ghat=(Rxy_iDel+ C )/S;ghat(1)=2*ghat(1);g = 10*exp(-10.*iDel_vec);Result = [Rxy ghat g];%list formdisp(' -------------------------------------------');disp(' i Rxy(iDel) ghat g');disp(' -------------------------------------------');disp(num2str(Result));disp(' -------------------------------------------');调用产生M序列的getPRBS函数function Out=getPRBS(n,a,del,total); %Get PRBS signal%parameters are n registers, a, altitude of m sequence, del, clock pulse, total, the length of m-sequence to be requiredOut = []; % Make Empty Out for storing binary sequence% Initialize n Registersfor i = 1:nR(i) = 1;endif (R(n)==1)Out(1) =-a;endif(R(n)==0)Out(1)=a;endfor i=2:totaltemp=R(1);R(1)= xor(R(n-2),R(n)); %modulo 2 adderj=2;while j<=n %registers shifttemp1=R(j);R(j)=temp;j=j+1;temp=temp1;endif (R(n)==1)Out(i) =-a;endif(R(n)==0)Out(i)=a;endend3. 运行结果图1.2 一阶RC 电路M 序列辨识响应图表1-I 输入输出相关函数、脉冲估计值、真实脉冲输出表-------------------------------------------------------------------------------------------i Rxy(iDel) ghat g--------------------------------------------------------------------------------------------0 -0.0319183 2.86143 10 1 0.529696 10.4984 8.60708 2 0.43794 9.01697 7.40818 3 0.358965 7.74186 6.37628 4 0.290991 6.64436 5.48812 5 0.232485 5.69973 4.72367 6 0.182129 4.88668 4.0657 7 0.138787 4.18689 3.49938 8 0.101482 3.58456 3.01194 9 0.0693728 3.06614 2.5924 10 0.0417366 2.61993 2.2313 11 0.0179498 2.23588 1.9205 12 -0.0025236 1.90531 1.65299--------------------------------------------------------------------------------------------timeA m p i t i t u d e一阶RC 系统输入输出曲线图续表1-I 输入输出相关函数、脉冲估计值、真实脉冲输出表-------------------------------------------------------------------------------------------i Rxy(iDel) ghat g-------------------------------------------------------------------------------------------13 -0.0201452 1.6208 1.4227414 -0.0353123 1.37591 1.2245615 -0.0483668 1.16514 1.0539916 -0.0596028 0.983723 0.9071817 -0.0692738 0.827577 0.78081718 -0.0775977 0.693181 0.67205519 -0.0847621 0.577505 0.57844320 -0.0909286 0.477942 0.49787121 -0.0962361 0.392248 0.42852122 -0.100804 0.31849 0.36883223 -0.104736 0.255006 0.31745624 -0.108121 0.200364 0.27323725 -0.111033 0.153334 0.23517726 -0.11354 0.112855 0.20241927 -0.115698 0.078014 0.17422428 -0.117556 0.0480262 0.14995629 -0.119154 0.0222155 0.12906830 -0.12053 0 0.11109-----------------------------------------------------------------------------选取5级移位寄存器作为输入信号合理。
原因是由5级移位寄存器产生的信号既拥有了较好的随机特性,其周期特性又能与本题中的系统相吻合。
由其产生的信号能够较好的激发出系统的输入输出特性。
作业2已知系统的差分方程为:() 1.5(1)0.7(2)(1)0.5(2)()(1)0.2(2)y k y k y k u k y k k k k εεε--+-=-+-+--+- 其中()k ε是均值为0,7.2σ=并服从正态分布的不相关随机噪声,()u k 采用4级移位寄存器产生的幅度为1的M 序列,1ms ∆=。
数据长度取N=240,请绘出Newton-Raphson 方法求参数的极大似然估计程序流程图并附上Matlab 程序。
1. 程序流程图图2.1 程序流程图2.程序清单clcclose allsigma=7.2;%均方差epsilon=0.001;%迭代终止条件total=16;N=240;V=sigma*randn(total,1); %噪声%M序列产生y1=1;y2=1;y3=1;y4=0;for i=1:15x1=xor(y3,y4);x2=y1;x3=y2;x4=y3;y(i)=y4;if y(i)>0.5,u(i)=-1;else u(i)=1;endy1=x1;y2=x2;y3=x3;y4=x4;end%最小二乘一般算法,产生初始估计值a1,a2,b1,b2;z=zeros(1,total);for k=3:totalz(k)=1.5*z(k-1)+0.7*z(k-2)+u(k-1)+0.5*u(k-2)+V(k);end%给样本系数矩阵H=[-z(2) -z(1) u(2) u(1);-z(3) -z(2) u(3) u(2);-z(4) -z(3) u(4) u(3);-z(5) -z(4) u(5) u(4);-z(6) -z(5) u(6) u(5);-z(7) -z(6) u(7) u(6);-z(8) -z(7) u(8) u(7);-z(9) -z(8) u(9) u(8);-z(10) -z(9) u(10) u(9);-z(11) -z(10) u(11) u(10);-z(12) -z(11) u(12) u(11);-z(13) -z(12) u(13) u(12);-z(14) -z(13) u(14) u(13);-z(15) -z(14) u(15) u(14)];Z=[z(3);z(4);z(5);z(6);z(7);z(8);z(9);z(10);z(11);z(12);z(13);z(14);z(15);z(16)];c=inv(H'*H)*H'*Z;a1=c(1);a2=c(2);b1=c(3);b2=c(4);d1=0.1;d2=0.1;theta=[a1,a2,b1,b2,d1,d2]';%参数估计初值v(1)=0;v(2)=0;d_theta1=zeros(6,1);d_theta2=zeros(6,1);v_da1(1)=0;v_da2(1)=0;v_db1(1)=0;v_db2(1)=0;v_dd1(1)=0;v_dd2(1)=0;v_da1(2)=0;v_da2(2)=0;v_db1(2)=0;v_db2(2)=0;v_dd1(2)=0;v_dd2(2)=0;j=1;bef=zeros(6,1);%执行算法while sum(abs(theta-bef))>epsilon%采集输入输出for i=1:N+3x1=xor(y3,y4);x2=y1;x3=y2;x4=y3;y(i)=y4;if y(i)>0.5,u(i)=-1;else u(i)=1;endy1=x1;y2=x2;y3=x3;y4=x4;endy(1)=0;y(2)=0;V=sigma*randn(N+3,1); %噪声y(1)=1;y(2)=0.01;for k=3:N+3y(k)=1.5*y(k-1)-0.7*y(k-2)+u(k-1)+0.5*u(k-2)+V(k)-V(k-1)+0.2*V(k-2);endJ_d=0;JJ_d=0;a1=theta(1);a2=theta(2);b1=theta(3);b2=theta(4);d1=theta(5);d2=theta(6);for k=3:N+3v(k)=y(k)+a1*y(k-1)+a2*y(k-2)-b1*u(k-1)-b2*u(k-2)-d1*v(k-1)-d2*v(k-2);%求取v(k) v_da1(k)=y(k-1)-d1*v_da1(k-1)-d2*v_da1(k-2);v_da2(k)=y(k-2)-d1*v_da2(k-1)-d2*v_da2(k-2);v_db1(k)=-u(k-1)-d1*v_db1(k-1)-d2*v_db1(k-2);v_db2(k)=-u(k-2)-d1*v_db2(k-1)-d2*v_db2(k-2);v_dd1(k)=-v(k-1)-d1*v_dd1(k-1)-d2*v_dd1(k-2);v_dd2(k)=-v(k-2)-d1*v_dd2(k-1)-d2*v_dd2(k-2);d_theta=[v_da1(k),v_da2(k),v_db1(k),v_db2(k),v_dd1(k),v_dd2(k)]';J_d=J_d+v(k)*d_theta;JJ_d=JJ_d+d_theta'*d_theta;endbef=theta;theta=theta-inv(JJ_d)*J_d;v(1)=v(N+1);v(2)=v(N+2);v_da1(1)=v_da1(N+1);v_da2(1)=v_da2(N+1);v_db1(1)=v_db1(N+1); v_db2(1)=v_db2(N+1);v_dd1(1)=v_dd1(N+1);v_dd2(1)=v_dd2(N+1); v_da1(2)=v_da1(N+2);v_da2(2)=v_da2(N+2);v_db1(2)=v_db1(N+2); v_db2(2)=v_db2(N+2);v_dd1(2)=v_dd1(N+2);v_dd2(2)=v_dd2(N+2); %求取误差error1(j)=-1.5-theta(1);error2(j)=0.7-theta(2);error3(j)=1-theta(3);error4(j)=0.5-theta(4);error5(j)=-1-theta(5);error6(j)=0.2-theta(6);v_error(j)=v(N+2);j=j+1;endtheta%输出估计参数%作图figure(1);plot(error1)hold onplot(error2)hold onplot(error3)hold onplot(error4)hold onplot(error5,'r')hold onplot(error6,'r')title('参数估计误差')xlabel('迭代次数')ylabel('误差')hold offfigure(2);plot(-1.5-error1,'b');hold onplot(0.7-error2,'c')hold onplot(1-error3,'g')hold onplot(0.5-error4,'y')hold onplot(-1-error5,'m')hold onplot(0.2-error6,'r')legend('a1','a2','b1','b2','d1','d2',-1) title('参数估计值变化') xlabel('迭代次数') ylabel('参数') hold off3. 程序运行结果表3-I 模型参数辨识结果被估参数 a1 a2 b1 b2 d1 d2 真实值 -1.5 0.7 1.01 0.5 -1.0 0.2 估计值-1.47110.68170.96870.5875-0.95260.191参数估计值的变化过程曲线如图3.2所示,参数误差估计曲线如图3.3所示。