系统辨识-最小二乘法MATLAB仿真

合集下载

系统辨识最小二乘Matlab仿真

系统辨识最小二乘Matlab仿真

系统辨识和最小二乘参数估计Matlab仿真一、系统辨识在控制系统的分析中,首先要建立系统的数学模型,控制系统的数学模型是定量描述系统或过程内部物理量(或变量)之间关系的数学表达式。

一般来说,建立控制系统数学模型有两种基本方法:(1)机理建模(白箱模型):即根据系统内在运行机制、物料和能量守恒等物理学、化学规律建立系统的数学模型,一般步骤如下:Step1:根据系统工作原理及其在控制系统中的作用,确定输入和输出;Step2:根据物料和能量守恒等关系列写基本方程式;Step3:消去中间量;Step4:获得系统模型;(2)实验法建模(黑箱模型):即对于机理尚不清楚或机理过于复杂的系统,可以人为的对其施加某种测试信号,并记录其输出响应,或者记录正常运行时的输入输出数据,然后利用这些输入输出数据确定系统模型结构和参数。

多年来,系统辨识已经发展为一门独立学科分支,通过系统辨识建立一个对象的数学模型,通常包括两方面的工作:一是模型结构的确定(模型的类型、阶次),二是模型参数估计。

根据时间是否连续,参数模型又可以分为连续时间系统模型和离散时间系统参数模型,这两类模型均可采用输入输出模型和状态空间模型描述,离散系统采用差分方程描述,以单输入单输出(SISO)离散系统参数模型为例。

1.确定性模型SISO系统确定性模型可表示为:u(k)和y(k)分别为输入和输出,d为纯延时。

2.随机性模型如果受到随机扰动,则式子可写为:为系统随机扰动,其结构如图:系统辨识的一般步骤如图:从图中可以看出,利用辨识的方法建立系统数学模型,从实验设计到模型获得,需要这些步骤。

二、最小二乘参数估计1.批处理最小二乘考虑以下CAR模型:为白噪声,结构参数na、nb和d已知,参数估计的任务就是根据可测量的输入输出,确定如下参数:仿真实例:式中,为方差为1的白噪声,选用幅值为1的逆M序列作为输入,LS算法进行参数估计,仿真结果如图:仿真程序(Matlab):%批处理最小二乘参数估计(LS)clear all;a=[1 -1.5 0.7]'; b=[1 0.5]'; d=3; %对象参数na=length(a)-1; nb=length(b)-1; %na、nb为A、B阶次L=500; %数据长度uk=zeros(d+nb,1); %输入初值:uk(i)表示u(k-i)yk=zeros(na,1); %输出初值x1=1; x2=1; x3=1; x4=0; S=1; %移位寄存器初值、方波初值xi=randn(L,1); %白噪声序列theta=[a(2:na+1);b]; %对象参数真值for k=1:Lphi(k,:)=[-yk;uk(d:d+nb)]'; %此处phi(k,:)为行向量,便于组成phi矩阵y(k)=phi(k,:)*theta+xi(k); %采集输出数据IM=xor(S,x4); %产生逆M序列if IM==0u(k)=-1;elseu(k)=1;endS=not(S); M=xor(x3,x4); %产生M序列%更新数据x4=x3; x3=x2; x2=x1; x1=M;for i=d+nb:-1:2uk(i)=uk(i-1);enduk(1)=u(k);for i=na:-1:2yk(i)=yk(i-1);endyk(1)=y(k);endthetae=inv(phi'*phi)*phi'*y' %计算参数估计值thetae2.递推最小二乘在批处理最小二乘法时,由于每次处理的数据量较大,而且常常要求对象参数能够在线实时估计,解决的方法就是将其化成递推算法,其基本思想为:算法介绍:仿真实例:式中,为方差为0.1的白噪声,取初值,选择方差为1的白噪声作为输入信号u(k),采用RLS算法进行参数估计,仿真结果如图:仿真程序(Matlab):%递推最小二乘参数估计(RLS)clear all; close all;a=[1 -1.5 0.7]'; b=[1 0.5]'; d=3; %对象参数na=length(a)-1; nb=length(b)-1; %na、nb为A、B阶次L=400; %仿真长度uk=zeros(d+nb,1); %输入初值:uk(i)表示u(k-i)yk=zeros(na,1); %输出初值u=randn(L,1); %输入采用白噪声序列xi=sqrt(0.1)*randn(L,1); %白噪声序列theta=[a(2:na+1);b]; %对象参数真值thetae_1=zeros(na+nb+1,1); %thetae初值P=10^6*eye(na+nb+1);for k=1:Lphi=[-yk;uk(d:d+nb)]; %此处phi为列向量y(k)=phi'*theta+xi(k); %采集输出数据%递推最小二乘法K=P*phi/(1+phi'*P*phi);thetae(:,k)=thetae_1+K*(y(k)-phi'*thetae_1);P=(eye(na+nb+1)-K*phi')*P;%更新数据thetae_1=thetae(:,k);for i=d+nb:-1:2uk(i)=uk(i-1);enduk(1)=u(k);for i=na:-1:2yk(i)=yk(i-1);endyk(1)=y(k);endplot([1:L],thetae); %line([1,L],[theta,theta]); xlabel('k'); ylabel('参数估计a、b');legend('a_1','a_2','b_0','b_1'); axis([0 L -2 2]);。

利用Matlab进行系统辨识的技术方法

利用Matlab进行系统辨识的技术方法

利用Matlab进行系统辨识的技术方法在Matlab中进行系统辨识的技术方法主要有参数估计法和非参数估计法两种。

1.参数估计法:参数估计法是通过拟合已知输入和输出数据的数学模型来估计系统的参数。

常用的参数估计方法包括最小二乘法(OLS)、最小二乘法(LSE)、最小二乘法(MLE)和极大似然估计法(MLE)等。

a) 最小二乘法(OLS):OLS方法通过最小化实际输出与模型预测输出之间的误差平方和来估计系统参数。

在Matlab中,可以使用lsqcurvefit函数来实现最小二乘法的系统辨识。

b) 最小二乘法(LSE):LSE方法是通过最小化实际输出与模型预测输出之间的误差平方和来估计系统参数。

在Matlab中,可以使用lsqnonlin函数来实现最小二乘法的系统辨识。

c) 最小二乘法(MLE):MLE方法是通过最大化似然函数来估计系统参数。

在Matlab中,可以使用mle函数来实现最大似然估计法的系统辨识。

2.非参数估计法:非参数估计法不需要事先指定系统的数学模型,而是直接根据输入和输出数据的统计特性进行系统辨识。

常用的非参数估计方法包括频域方法、时域方法和时频域方法等。

a) 频域方法:频域方法通过对输入和输出数据进行频谱分析来估计系统的频率响应。

常用的频域方法包括傅里叶变换、功率谱密度估计和频率响应函数估计等。

在Matlab中,可以使用fft函数和pwelch函数来实现频域方法的系统辨识。

b) 时域方法:时域方法通过对输入和输出数据进行时间序列分析来估计系统的时域特性。

常用的时域方法包括自相关函数估计和互相关函数估计等。

在Matlab中,可以使用xcorr函数来实现时域方法的系统辨识。

c) 时频域方法:时频域方法结合了频域方法和时域方法的优势,可以同时估计系统的频率响应和时域特性。

常用的时频域方法包括短时傅里叶变换和小波变换等。

在Matlab中,可以使用spectrogram函数和cwt函数来实现时频域方法的系统辨识。

用matlab实现最小二乘递推算法辨识系统参数

用matlab实现最小二乘递推算法辨识系统参数

用matlab实现最小二乘递推算法辨识系统参数自动化系统仿真实验室指导教师:学生姓名班级计082-2 班学号撰写时间:全文结束》》-3-1 成绩评定:一.设计目的1、学会用Matlab实现最小二乘法辨识系统参数。

2、进一步熟悉Matlab的界面及基本操作;3、了解并掌握Matlab中一些函数的作用与使用;二.设计要求最小二乘递推算法辨识系统参数,利用matlab编程实现,设初始参数为零。

z(k)-1、5*z(k-1)+0、7*z(k-2)=1*u(k-1)+0、5*u(k-2)+v(k); 选择如下形式的辨识模型:z(k)+a1*z(k-1)+a2*z(k-2)=b1*u(k-1)+b2*u(k-2)+v(k);三.实验程序m=3;N=100;uk=rand(1,N);for i=1:Nuk(i)=uk(i)*(-1)^(i-1);endyk=zeros(1,N); for k=3:N yk(k)=1、5*yk(k-1)-0、7*yk(k-2)+uk(k-1)+0、5*uk(k-2);end%j=100;kn=0;%y=yk(m:j);%psi=[yk(m-1:j-1);yk(m-2:j-2);uk(m-1:j-1);uk(m-2:j-2)];%pn=inv(psi*psi);%theta=(inv(psi*psi)*psi*y);theta=[0 ;0;0;0];pn=10^6*eye(4);for t=3:Nps=([yk(t-1);yk(t-2);uk(t-1);uk(t-2)]);pn=pn-pn*ps*ps*pn*(inv(1+ps*pn*ps));theta=theta+pn*ps*(yk(t)-ps*theta);thet=theta;a1=thet(1);a2=thet(2);b1=thet(3);b2= thet(4);a1t(t)=a1;a2t(t)=a2;b1t(t)=b1;b2t(t)=b2;endt=1:N;plot(t,a 1t(t),t,a2t(t),t,b1t(t),t,b2t(t));text(20,1、47,a1);text(20,-0、67,a2);text(20,0、97,b1);text(20,0、47,b2);四.设计实验结果及分析实验结果图:仿真结果表明,大约递推到第步时,参数辨识的结果基本到稳态状态,即a1=1、5999,b1=1,c1=0、5,d1=-0、7。

Matlab最小二乘系统辨识

Matlab最小二乘系统辨识

Matlab最⼩⼆乘系统辨识原理还是⽐较简单的,不赘述,程序⾥⾯的注释也写的⽐较清楚了%仿真对象:y(k)-1.5y(k-1)+0.7y(k-2)=v(k)+u(k)-0.8u(k-1)%辨识模型:y(k)+a1 y(k-1)+a2 y(k-2)=v(k)+b1 u(k)+b2 u(k-1)%数据长度取n=20000,加权矩阵为I,v(k)是服从正态分布的⽩噪声N(0,1),u(k)=sin(k)%待估计参数K=[a1 a2 a3 a4]';准则函数J(K)=(Yn-HnK)'(Yn-HnK);%将辨识模型写为:y(k)=v(k)+a1 y(k-1)+a2 y(k-2)+b1 u(k)+b2 u(k-1)% =v(k)+KHn%Hn=|y(2) y(1)|% |y(3) y(2)|% |.........|clearclose alldata_length=20002;%% 产⽣⽩噪声和输⼊v=randn(1,data_length);v=v./max(v);u=zeros(1,data_length);for k=1:data_lengthu(k)=sin(k);end%% 获得观测值y=zeros(1,data_length);for k=3:data_lengthy(k)=1.5*y(k-1)-0.7*y(k-2)+v(k)+u(k)-0.8*u(k-1);end%% 构造Hn和Y矩阵Hn=zeros(data_length-2,2);count=1;for k=1:10000Hn(k,2)=y(count);count=count+1;Hn(k,1)=y(count);Hn(k,4)=u(count);Hn(k,3)=u(count+1);end%% 求解参数Y=y(3:data_length)';c1=Hn'*Hn;c2=inv(c1);c3=Hn'*Y;K=c2*c3%% 将辨识得到的参数代⼊,得估计输出y_e=zeros(1,data_length);for k=3:data_lengthy_e(k)=K(1)*y_e(k-1)+K(2)*y_e(k-2)+v(k)+K(3)*u(k)+K(4)*u(k-1);end%% 画出实际输出和辨识输出,进⾏对⽐plot((1:data_length),y');title('实际输出')hold onplot((1:data_length),y_e');title('辨识输出')figuresubplot(2,1,1)plot((1:data_length),y');title('实际输出')subplot(2,1,2)plot((1:data_length),y_e');title('辨识输出')。

机械系统辨识及仿真最小二乘法

机械系统辨识及仿真最小二乘法

作业四宋家亮15030024一、实验题目用MatLAB辨识系统,系统输出分别叠加两种不同类型的噪声,针对每一种情况使用最小二乘整批算法、递推算法和广义最小二乘法实现辨识。

图1 图2二、实验思路及目的对图1、图2分别通过构造的系统给定输入(白噪声和M序列)并叠加噪声(白噪声和有色噪声),测得输出数据并显示,对未知系统定阶并用整批、递推、广义最小二乘算法进行辨识,显示辨识结果;比较三种算法对不同噪声模型的辨识精度(λ取相同的值),显示辨识结果的脉冲响应图像并于理想系统响应对比,对结果给予合理的解释;改变 值(0.01,0.02,0.03等),比较辨识结果的精度,说明信噪比对各种算法辨识精度的影响。

三、实验过程1、设计界面利用guide编辑器针对所要实现的功能添加控件进行界面初步的设计,设计结果如图1.1所示图1.12、设置控件属性对界面的控件设置属性,形成实验所需要的最终界面,如图2.1所示:图2.1其中系统噪声和输入信号设置成可选择的属性,其value值作为后面函数中的控制条件,这个刚开始走了弯路,直接用string属性做控制条件,结果发现根本实现不了,请教大神后选择value值作为控制条件,因为value值默认为1,当通过下拉选项选择下一个信号时其value值会自动加1。

如图2.2所示。

图2.23、设计guide回调函数(1)噪声参数输入的回调函数本实验设计成噪声参数可输入的程序,所以为达到这一目的,添加了参数输入控件,通过如图3.1所示打开回调函数,添加如下程序,可以将输入的容转变成数字用于后续函数的运算。

global zaoshengxishuzaoshengxishu=get(handles.zaoshengxishu,'String'); zaoshengxishu=str2num(zaoshengxishu);%将输入的字符串λ变成数值图3.1(2)开始辨识按钮的回调函数(主体程序)如图3.2打开开始辨识按钮回调函数,添加主程序(见附录),这样通过点击该按钮可实现本实验的所有功能。

系统辨识—最小二乘法

系统辨识—最小二乘法

最小二乘法参数辨识1 引言系统辨识是根据系统的输入输出时间函数来确定描述系统行为的数学模型。

现代控制理论中的一个分支。

通过辨识建立数学模型的目的是估计表征系统行为的重要参数,建立一个能模仿真实系统行为的模型,用当前可测量的系统的输入和输出预测系统输出的未来演变,以及设计控制器。

对系统进行分析的主要问题是根据输入时间函数和系统的特性来确定输出信号。

对系统进行控制的主要问题是根据系统的特性设计控制输入,使输出满足预先规定的要求。

而系统辨识所研究的问题恰好是这些问题的逆问题。

通常,预先给定一个模型类μ={M}(即给定一类已知结构的模型),一类输入信号u和等价准则J=L(y,yM)(一般情况下,J是误差函数,是过程输出y和模型输出yM的一个泛函);然后选择使误差函数J达到最小的模型,作为辨识所要求的结果。

系统辨识包括两个方面:结构辨识和参数估计。

在实际的辨识过程中,随着使用的方法不同,结构辨识和参数估计这两个方面并不是截然分开的,而是可以交织在一起进行的。

2 系统辨识的目的在提出和解决一个辨识问题时,明确最终使用模型的目的是至关重要的。

它对模型类(模型结构)、输入信号和等价准则的选择都有很大的影响。

通过辨识建立数学模型通常有四个目的。

①估计具有特定物理意义的参数有些表征系统行为的重要参数是难以直接测量的,例如在生理、生态、环境、经济等系统中就常有这种情况。

这就需要通过能观测到的输入输出数据,用辨识的方法去估计那些参数。

②仿真仿真的核心是要建立一个能模仿真实系统行为的模型。

用于系统分析的仿真模型要求能真实反映系统的特性。

用于系统设计的仿真,则强调设计参数能正确地符合它本身的物理意义。

③预测这是辨识的一个重要应用方面,其目的是用迄今为止系统的可测量的输入和输出去预测系统输出的未来的演变。

例如最常见的气象预报,洪水预报,其他如太阳黑子预报,市场价格的预测,河流污染物含量的预测等。

预测模型辨识的等价准则主要是使预测误差平方和最小。

基于Matlab系统辨识的参数辨识与仿真

基于Matlab系统辨识的参数辨识与仿真

基于Matlab系统辨识的参数辨识与仿真【摘要】论述了系统辨识的基本理论,分别用最小二乘法参数辨识和辅助变量法参数辨识。

根据Matlab系统辨识工具箱中的一些基本函数,结合实例来熟悉基于系统辨识工具箱的建模方法。

【关键词】Matlab;参数辨识;最小二乘法;辅助变量法1.系统辨识的基本理论系统辨识是根据系统的输入输出的时间函数来确定描述系统行为的数学模型,是现代控制理论中的一个分支。

对系统进行分析的主要问题是根据输入时间函数和系统的特性来确定输出信号。

它包括确定系统数学模型结构和估计其参数的方法。

系统辨识的流程如图1所示。

图1 系统辨识过程流程图2.模型参数辨识的方法系统辨识包括模型阶次辨识和参数辨识。

经典参数辨识的方法主要有他包括脉冲响应法、阶跃响应法、频率响应法、最小二乘法、相关分析法、谱分析法和极大似然法等,其中最小二乘法是最基本和最经典的,也是其他方法基本的思想的来源。

比如辅助变量法。

2.1 最小二乘法辨识考虑如下CAR模型:(1)参数估计的任务是根据可测量的输入和输出,确定如下个参数:对象(1)可以写成如下最小二乘形式:(2)现有L组输入输出观测数据:利用最小二乘法得到系统参数的估计值为:(3)2.2 辅助变量法辨识当为有色噪声时,利用最小二乘法进行参数辨识时往往得不到无偏一致的参数估计量。

在这个时候可以引入变量,然后利用最小二乘法进行辨识就可得到无偏一致的参数估计量。

因此,对于线性或本质线性系统,其过程的模型都可以化成最小二乘形式,考虑如下所示的模型方程:(4)将上式写成最小二乘格式,则得:假定存在一个辅助变量矩阵,维数与H相同,它满足以下极限特性:式中Q是非奇异矩阵。

如果辅助变量满足上述条件,则有:(5)图2 系统仿真图3.建模实例3.1 非参数模型辨识某被控对象的数学模型可以表示为:,式中:;为白噪声,编制MATLAB程序,分别对上述对象进行ARX建模和辅助变量法建模,并比较两种方法得到的脉冲响应。

基于MATLAB的广义最小二乘参数辨识与仿真

基于MATLAB的广义最小二乘参数辨识与仿真
e(n+N)


{乞 ,l一




,z+1) 咒+2)
n+N
n= --e(n)
—PQ+1)
--e(n--1) --e(n)
… 一e(咒—,井1)
… 一P瓴—柳+2)




一P(咒+N一1) --e(n+N二2) … --e(n+^卜铆)
利用普通最小二乘法计算厂的估值: 尹一(f2也)一1(o)Te 4)计算y(惫)和M(惫):
流程图如下:
I给埘亭列的长度M赋值l

J产生所需的输入信号l

l产生随机噪声信号I

l画出输入信号径线图彤及随机噪声图形I

l产生输出采样信号I

区囹 f求出中利用最小_乘法第一次求出8给厂赋初值l
再一次利用残差P用最小_乘法求馄,I ●
l求迭代之后的输入与输出信号I

l计算系统的实际输出响应及模型的响应I
第37卷(2009)第8期
计算机与数字工程
175
l。用广义最小二乘法估计模型参数,选择如下形
式的辨识模型:
y(愚)一口1y(忌一1)一n2y(忌一2)+6l“(忌一1) +62“(忌一2)+e(惫) 由于采用4阶 M序列,所以输入 信号如下:“一idin—
图2系统仿真对象 序列,幅值为1。
put(N1,‘prbs’,[4 1 D;prbs为M序 列,数据长度取为 N1—1023,4阶M
is accurate and SU-
பைடு நூலகம்
perior to LS identification apparently. Key words parameter identification,GLS,simulation
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《系统辨识》基于MATLAB的最小二乘法(一阶)的仿真
clc
clear
% ①白噪声的生成过程如下:
e=randn(1,500);
e=e/std(e);
e=e-mean(e);
A=0; %白噪声的均值为0
B=sqrt(0.1); %白噪声的方差为0.1
e=A+B*e;
%绘制白噪声图
k=1:500;
subplot(4,1,1) %画四行一列图形窗口中的第一个图形
plot(k,e,'r');
xlabel('k'), ylabel('e');title('(0,1)均匀分布的随机序列')
% ②生成M序列的过程如下:
X1=1;X2=0;X3=1;X4=0; %移位寄存器输入Xi初始状态(0101),
Yi寄存器的各级输出
m=500; %M序列的总长度
for i=1:m
Y4=X4; Y3=X3; Y2=X2; Y1=X1;
X4=Y3; X3=Y2; X2=Y1;
X1=xor(Y3,Y4); %异或运算
if Y4==0
U(i)=-1;
else
U(i)=Y4;
end
end
M=U;
u=U;
%绘制M序列图¼
i1=i
k=1:1:i1;
subplot(4,1,2) %画四行一列图形窗口中的第二个图形
plot(k,U,k,U,'rx')
stem(M)
xlabel('k')
ylabel('M序列')
title('移位寄存器产生的M序列')
% ③参数估计的过程如下:
%绘制参数估计的相关图形
z=zeros(1,500); %定义输出观测值的长度
for k=2:500
z(k)=0.9*z(k-1)+u(k-1)+e(k);%用理想输出值作为观测值
end
subplot(4,1,3) %画四行一列图形窗口中的第三个图形
i=1:1:500; %横坐标的范围从1到500,步长为1
plot(i,z) %图形的横坐标是采样时刻i,纵坐标是输出观测值Z,
图形格式为连续曲线
subplot(4,1,4) %画四行一列图形窗口中的第四个图形
stem(z),grid on%画出输出观测值Z的经线图形,并显示坐标网络u,z %显示输入信号和输出观测信号
%给矩阵HL和ZL赋初值
HL(:,1)=-z(1,1:499);
HL(:,2)=u(1,1:499);
ZL(:,1)=z(1,2:500);
%计算参数
c1=HL'*HL; c2=inv(c1); c3=HL'*ZL; c=c2*c3
a1=c(1),b1=c(2) %从中分离出a1¡b1
仿真截图
仿真结果之一:c=-9.018 a1= b1=
1.0108 -9.018 1.0108。

相关文档
最新文档