系统辨识作业解析

合集下载

系统辨识与自适应控制作业

系统辨识与自适应控制作业

系统辨识与自适应控制学院:专业:学号:姓名:系统辨识与自适应控制作业一、对时变系统进行参数估计。

系统方程为:y(k)+a(k)y(k-1)=b(k)u(k-1)+e(k) 其中:e(k)为零均值噪声,a(k)=b(k)=要求:1对定常系统(a=0.8,b=0.5)进行结构(阶数)确定和参数估计;2对时变系统,λ取不同值(0.9——0.99)时对系统辨识结果和过程进行比较、讨论3对辨识结果必须进行残差检验解:一(1):分析:采用最小二乘法(LS):最小二乘的思想就是寻找一个的估计值,使得各次测量的与由估计确定的量测估计之差的平方和最小,由于此方法兼顾了所有方程的近似程度,使整体误差达到最小,因而对抑制误差是有利的。

在此,我应用批处理最小二乘法,收敛较快,易于理解,在系统参数估计应用中十分广泛。

作业程序:clear all;a=[1 0.8]'; b=[ 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' %计算参数估计值thetae结果:thetae =0.7787 ,0.5103真值=0.8,0.5解:一(2):采用遗忘因子递推最小二乘参数估计;其仿真算法如下:Step1:设置初值、,及遗忘因子,输入初始数据;Step2:采样当前输入和输出数据;Step3:利用含有遗忘因子的递推公式计算、和;Step4:k=k+1,返回Step2继续循环。

系统辨识作业

系统辨识作业

系统建模方法大作业1.考虑如下系统y() 1.5(1)0.7(2)(3)0.5(4)()k y k y k u k u k k ξ--+-=-+-+式中,()k ξ为白噪声。

取初值6(0)10P I =,ˆ(0)0θ=。

分别选择M 序列和方差为1的正态分布白噪声作为输入信号()u k ,采用递推最小二乘算法进行参数估计,迭代L=400步停止计算。

要求i) 给出基本迭代公式;ii) 画出程序流程框图;iii) 画出输入输出数据曲线、参数估计曲线、误差曲线;提示:产生长度为L 方差为1的正态分布白噪声,相应的MATLAB 命令为 randn (L,1)。

1=+10**[*0*1]k p h h p h-(1)z(k)=1.5*z(k-1)-0.7*z(k-2)+u(k-3)+0.5*u(k-4)h1=[-z(k-1),-z(k-2),u(k-3),u(k-4)]c1=c0+k1*[z(k)-h1'*c0](2)(3)1.当输入为M序列时L=15; % M序列的周期y1=1;y2=1;y3=1;y4=0; %四个移位寄存器的输出初始值for i=1:L; %开始循环,长度为Lx1=xor(y3,y4); %第一个移位寄存器的输入是第三个与第四个移位寄存器的输出的x2=y1; %第二个移位寄存器的输入是第一个移位寄存器的输出x3=y2; %第三个移位寄存器的输入是第二个移位寄存器的输出x4=y3; %第四个移位寄存器的输入是第三个移位寄存器的输出y(i)=y4; %取出第四个移位寄存器的幅值为"0"和"1"的输出信号,即M 序列if y(i)>0.5,u(i)=-0.03; %如果M序列的值为"1", 辨识的输入信号取“-0.03” else u(i)=0.03; %如果M序列的值为"0", 辨识的输入信号取“0.03” end %小循环结束y1=x1;y2=x2;y3=x3;y4=x4; %为下一次的输入信号做准备end %大循环结束,产生输入信号ufigure(1); %第一个图形title('输入M序列') %图形标题stem(u),grid on %显示出输入信号径线图并给图形加上网格z(4)=0;z(3)=0;z(2)=0;z(1)=0; %设z的前四个初始值为零for k=5:15; %循环变量从3到15z(k)=1.5*z(k-1)-0.7*z(k-2)+u(k-3)+0.5*u(k-4); %输出采样信号end%RLS递推最小二乘辨识c0=[0.001 0.001 0.001 0.001]'; %直接给出被辨识参数的初始值,即一个充分小的实向量p0=10^6*eye(4,4); %直接给出初始状态P0,即一个充分大的实数单位矩阵E=0.000000005; %取相对误差E=0.000000005c=[c0,zeros(4,14)]; %被辨识参数矩阵的初始值及大小e=zeros(4,15);for(n=1:400); %迭代次数for k=5:15; %开始求Kh1=[-z(k-1),-z(k-2),u(k-3),u(k-4)]';x=h1'*p0*h1+1;x1=inv(x); %开始求K(k)k1=p0*h1*x1; %求出K的值d1=z(k)-h1'*c0; c1=c0+k1*d1; %求被辨识参数ce1=c1-c0; %求参数当前值与上一次的值的差值e2=e1./c0; %求参数的相对变化e(:,k)=e2; %把当前相对变化的列向量加入误差矩阵的最后一列c0=c1; %新获得的参数作为下一次递推的旧参数c(:,k)=c1; %把辨识参数c 列向量加入辨识参数矩阵的最后一列p1=p0-k1*k1'*[h1'*p0*h1+1]; %求出 p(k)的值p0=p1; %给下次用%如果参数收敛情况满足要求,终止计算end%小循环结束end %大循环结束c,e %显示被辨识参数及其误差(收敛)情况%分离参数a1=c(1,:);a2=c(2,:);b1=c(3,:);b2=c(4,:);ea1=e(1,:);ea2=e(2,:);eb1=e(3,:);eb2=e(4,:);figure(2); %第二个图形i=1:15; %横坐标从1到15plot(i,a1,'r',i,a2,':',i,b1,'g',i,b2,':') %画出a1,a2,b1,b2的各次辨识结果title('递推最小二乘参数辨识') %图形标题figure(3); %第三个图形i=1:15; %横坐标从1到15plot(i,ea1,'r',i,ea2,'g',i,eb1,'b',i,eb2,'r:') %画出a1,a2,b1,b2的各次辨识结果的收敛情况title('辨识精度') %图形标题辨识曲线图:2当输入为随机正态分布时u=randn(L,1); %产生随机正态分布白噪声figure(1); %第一个图形title('输入正态分布白噪声') %图形标题stem(u),grid on %显示出输入信号径线图并给图形加上网格z(4)=0;z(3)=0;z(2)=0;z(1)=0; %设z的前四个初始值为零for k=5:15; %循环变量从3到15z(k)=1.5*z(k-1)-0.7*z(k-2)+u(k-3)+0.5*u(k-4); %输出采样信号end%RLS递推最小二乘辨识c0=[0.001 0.001 0.001 0.001]'; %直接给出被辨识参数的初始值,即一个充分小的实向量p0=10^6*eye(4,4); %直接给出初始状态P0,即一个充分大的实数单位矩阵E=0.000000005; %取相对误差E=0.000000005c=[c0,zeros(4,14)]; %被辨识参数矩阵的初始值及大小e=zeros(4,15);for(n=1:400); %迭代次数for k=5:15; %开始求Kh1=[-z(k-1),-z(k-2),u(k-3),u(k-4)]';x=h1'*p0*h1+1;x1=inv(x); %开始求K(k)k1=p0*h1*x1; %求出K的值d1=z(k)-h1'*c0; c1=c0+k1*d1; %求被辨识参数ce1=c1-c0; %求参数当前值与上一次的值的差值e2=e1./c0; %求参数的相对变化e(:,k)=e2; %把当前相对变化的列向量加入误差矩阵的最后一列c0=c1; %新获得的参数作为下一次递推的旧参数c(:,k)=c1; %把辨识参数c 列向量加入辨识参数矩阵的最后一列p1=p0-k1*k1'*[h1'*p0*h1+1]; %求出 p(k)的值p0=p1; %给下次用%如果参数收敛情况满足要求,终止计算end%小循环结束end %大循环结束c,e %显示被辨识参数及其误差(收敛)情况%分离参数a1=c(1,:);a2=c(2,:);b1=c(3,:);b2=c(4,:);ea1=e(1,:);ea2=e(2,:);eb1=e(3,:);eb2=e(4,:);figure(2); %第二个图形i=1:15; %横坐标从1到15plot(i,a1,'r',i,a2,':',i,b1,'g',i,b2,':') %画出a1,a2,b1,b2的各次辨识结果title('递推最小二乘参数辨识') %图形标题figure(3); %第三个图形i=1:15; %横坐标从1到15plot(i,ea1,'r',i,ea2,'g',i,eb1,'b',i,eb2,'r:') %画出a1,a2,b1,b2的各次辨识结果的收敛情况title('辨识精度') %图形标题辨识曲线:2.考虑如下确定性系统() 1.5(1)0.7(2)(3)0.5(4)y k y k y k u k u k --+-=-+-采用梯度校正算法进行参数估计,通过相对误差准则停止计算。

系统辨识最小二乘法大作业 (2)

系统辨识最小二乘法大作业 (2)

系统辨识大作业最小二乘法及其相关估值方法应用学院:自动化学院学号:姓名:日期:基于最小二乘法的多种系统辨识方法研究一、实验原理1.最小二乘法在系统辨识中用得最广泛的估计方法是最小二乘法(LS)。

设单输入-单输出线性定长系统的差分方程为(5.1.1)式中:为随机干扰;为理论上的输出值。

只有通过观测才能得到,在观测过程中往往附加有随机干扰。

的观测值可表示为(5.1.2)式中:为随机干扰。

由式(5.1.2)得(5.1.3)将式(5.1.3)带入式(5.1.1)得(5.1.4)我们可能不知道的统计特性,在这种情况下,往往把看做均值为0的白噪声。

设(5.1.5)则式(5.1.4)可写成(5.1.6)在观测时也有测量误差,系统内部也可能有噪声,应当考虑它们的影响。

因此假定不仅包含了的测量误差,而且包含了的测量误差和系统内部噪声。

假定是不相关随机序列(实际上是相关随机序列)。

现分别测出个随机输入值,则可写成个方程,即上述个方程可写成向量-矩阵形式(5.1.7) 设则式(5.1.7)可写为(5.1.8)式中:为维输出向量;为维噪声向量;为维参数向量;为测量矩阵。

因此式(5.1.8)是一个含有个未知参数,由个方程组成的联立方程组。

如果,方程数少于未知数数目,则方程组的解是不定的,不能唯一地确定参数向量。

如果,方程组正好与未知数数目相等,当噪声时,就能准确地解出(5.1.9)如果噪声,则(5.1.10)从上式可以看出噪声对参数估计是有影响的,为了尽量较小噪声对估值的影响。

在给定输出向量和测量矩阵的条件下求系统参数的估值,这就是系统辨识问题。

可用最小二乘法来求的估值,以下讨论最小二乘法估计。

2.最小二乘法估计算法设表示的最优估值,表示的最优估值,则有(5.1.11)写出式(5.1.11)的某一行,则有(5.1.12) 设表示与之差,即-(5.1.13)式中成为残差。

把分别代入式(5.1.13)可得残差。

设则有(5.1.14) 最小二乘估计要求残差的平方和为最小,即按照指数函数(5.1.15) 为最小来确定估值。

系统辨识大作业1201张青

系统辨识大作业1201张青

《系统辨识》大作业学号:********班级:自动化1班姓名:**信息与控制工程学院自动化系2015-07-11第一题模仿index2,搭建对象,由相关分析法,获得脉冲响应序列ˆ()g k,由ˆ()g k,参照讲义,获得系统的脉冲传递函数()G z和传递函数()G s;应用最小二乘辨识,获得脉冲响应序列ˆ()g k;同图显示两种方法的辨识效果图;应用相关最小二乘法,拟合对象的差分方程模型;构建时变对象,用最小二乘法和带遗忘因子的最小二乘法,(可以用辨识工具箱) 辨识模型的参数,比较两种方法的辨识效果差异;答:根据index2搭建结构框图:相关分析法:利用结构框图得到UY 和tout其中的U就是题目中要求得出的M序列,根据结构框图可知序列的周期是1512124=-=-=npN。

在command window中输入下列指令,既可以得到脉冲相应序列()g k:aa=5;NNPP=15;ts=2; RR=ones(15)+eye(15); for i=15:-1:1UU(16-i,:)=UY(16+i:30+i,1)'; endYY=[UY(31:45,2)];GG=RR*UU*YY/[aa*aa*(NNPP+1)*ts]; plot(0:2:29,GG) hold onstem(0:2:29,GG,'filled') Grid;title('脉冲序列g(τ)')最小二乘法建模的响应序列由于是二阶水箱系统,可以假设系统的传递函数为221101)(sa s a sb b s G +++=,已知)(τg ,求2110,,,a a b b已知G (s )的结构,用长除法求得G(s)的s 展开式,其系数等于从 )( g 求得的各阶矩,然后求G(s)的参数。

得到结果: a1 =-1.1561 a2 =0.4283 b0 =-0.0028 b1=0.2961在command window 中输入下列指令得到传递函数:最小二乘一次算法相关参数%最小二乘法一次完成算法 M=UY(:,1); z=UY(:,2); H=zeros(100,4); for i=1:100 H(i,1)=-z(i+1); H(i,2)=-z(i); H(i,3)=M(i+1); H(i,4)=M(i); endEstimate=inv(H'*H)*H'*(z(3:102)) %结束得到相关系数为:Estimate =-0.7866 0.1388 0.5707 0.3115带遗忘因子最小二乘法:%带遗忘因子最小二乘法程序M=UY(:,1);z=UY(:,2);P=1000*eye(5); %Theta=zeros(5,200); %Theta(:,1)=[0;0;0;0;0];K=zeros(4,400); %K=[10;10;10;10;10];lamda=0.99;%遗忘因数for i=3:201h=[-z(i-1);-z(i-2);M(i);M(i-1);M(i-2)];K=P*h*inv(h'*P*h+lamda);Theta(:,i-1)=Theta(:,i-2)+K*(z(i)-h'*Theta(:,i-2));P=(eye(5)-K*h')*P/lamda;endi=1:200;figure(1)plot(i,Theta(1,:),i,Theta(2,:),i,Theta(3,:),i,Theta(4,:),i,Theta(5,:) )title('带遗忘因子最小二乘法')grid%结束Estimate 可由仿真图得出,可知两种方法参数确定十分接近。

系统辨识大作业加学习心得

系统辨识大作业加学习心得

论文系统辨识姿态角控制1.系统辨识概述辨识、状态估计和控制理论是现代控制理论三个相互渗透的领域。

辨识和状态估计离不开控制理论的支持,控制理论的应用又几乎不能没有辨识和状态估计技术。

随着控制过程复杂性的提高,控制理论的应用日益广泛,但其实际应用不能脱离被控对象的数学模型。

然而在大多数情况下,被控对象的数学模型是不知道的,或者在正常运行期间模型的参数可能发生变化,因此利用控制理论去解决实际问题时,首先需要建立被控对象的数学模型。

系统辨识正是适应这一需要而形成的,他是现代控制理论中一个很活跃的分支。

社会科学和自然科学领域已经投入相当多的人力去观察、研究有关的系统辨识问题。

系统辨识是建模的一种方法,不同的学科领域,对应着不同的数学模型。

从某种意义上来说,不同学科的发展过程就是建立他的数学模型的过程。

辨识问题可以归结为用一个模型来表示可观系统(或将要改造的系统)本质特征的一种演算,并用这个模型吧对客观系统的理解表示成有用的形式。

当然可以刻有另外的描述,辨识有三个要素:数据,模型类和准则。

辨识就是按照一个准则在一组模型类中选择一个与数据拟合得最好的模型。

总而言之,辨识的实质就是从一组模型类中选择一个模型,按照某种准则,使之能最好地拟合所关心的实际过程的静态或动态特性。

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

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

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

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

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

南京理工大学“系统的数学建模与辨识”实验报告及作业

南京理工大学“系统的数学建模与辨识”实验报告及作业

A(q ) y(k ) B(q )u(k ) C (q ) (k )
需要估计的参数:
1
1
1
[c]T
已知数据构成的向量:
(k ) [ y(k 1) ... y(k na) u(k d ) ... u(k nb d ) (k 1) ... (k nc)] 其中, (k 1) ... (k nc) 为噪声项。
2.2 数据处理
为了提高辨识精度,实验者必须对原始数据进行剔除坏数据、零均值化、工 频滤波等处理。
2.3 离线辨识
利用处理过的数据,选择某种辨识方法;如 RLS、RELS、RIV 或 RML 等 参数估计算法,以及 F 检验法或 AIC 定阶法。离散估计出来模型参数和阶次, 并计算相应的模型静态增益,同时比较利用不同方法所得到的辨识结果。
三、实验步骤
3.1 设置硬件
在实验之前根据实验手册,要做好基本的准备工作。连上实验室无线以后, 设置好服务器(嵌入式温度控制器)和客户端(PC 机)的 IP 地址以及系统参数设置。
3.2 电炉升温
关好电炉的门,打开实验端软件。根据操作界面上设置好“预加热电压”和
2015 级硕研“系统的数学建模与辨识”实验报告和作业
A(q 1 ) y(k ) B(q 1 )q d u(k ) C (q 1 ) (k ) 系统模型的结构。利用 RELS 辨识方法和
程序,依次确定系统的阶次,延时和参数,分析辨识结果得出结论。
四、离散辨识
离线辨识确定系统模型的阶次,延时和参数。可采用残差平方总和 J 和 F 校 验法确定系统的阶次和延时,这里采用 RELS 算法进行辨识参数。 增广矩阵法是一种用于实时过程控制中系统参数估计的较好方法, 可同时获 得系统参数和噪声模型参数。 改写 LS 模型为

系统辨识大作业

系统辨识大作业

系统辨识大作业专业班级:自动化09-3学号:09051325姓名:吴恩作业一:设某物理量Y与X满足关系式2=++,实验获得一批数据Y aX bX c如下表,试辨识模型参数,,a b c。

(15分)解答:问题描述:由题意知,这是一个已知模型为Y=aX2+bX+c,给出了10组实验输入输出数据,要求对模型参数a,b,c进行辨识。

问题求解:这里对该模型参数辨识采用最小二乘法的一次算法(LS)求解。

2=++可以写成矩阵形式Y=AE+e;其中A=[X^2,X,1]构成, Y aX bX c利用matlab不难求解出结果。

运行结果:利用所求的的参数,求出给定的X对应的YE值,列表如下做出上表的图形如下12345678910xyy=ax 2+bx+c 参数求解结果分析:根据运行结果可以看出,拟合的曲线与真是观测的数据有误差,有出入,但是误差较小,可以接受。

出现误差的原因,一方面是由于给出的数据只有十个点,数据量太少,难以真正的充分的计算出其参数,另外,该问题求解采用的是LS 一次算法,因此计算方法本身也会造成相应的误差。

作业二:模仿实验二,搭建对象,由相关分析法,获得脉冲相应序列()g k,由()G z;和传递函数g k,参照讲义,获得系统的脉冲传递函数()G s及应用相关最小二乘法,拟合对象的差分方程模型;加阶跃()扰动,用最小二乘法和带遗忘因子的最小二乘法,辨识二阶差分方程的参数,比较两种方法的辨识差异;采用不少于两种定阶方法,确定对象的阶次。

对象模型如图:利用相关分析法,得到对象的脉冲相应序列。

如下图:(1).由脉冲相应序列,求解系统的脉冲传递函数G(z)Transfer function:0.006072 z^2 + 0.288 z + 0.1671-------------------------------z^2 + 0.1018 z - 0.7509Sampling time: 2(2).由脉冲相应序列求解系统的传递函数G(s)Transfer function:(0.04849+2.494e-018i)-----------------------s^2 + 0.1315 s + 0.6048(3).利用相关最小二乘法拟合系统的差分方程模型如下:(4).在t=100,加入一个0.5的阶跃扰动,,利用RLS求解差分方程模型:RLS加入遗忘因子之后与未加之前的曲线情况如下:未加遗忘因子之前参数以及残差的计算过程加入0.99的遗忘因子得到的参数辨识过程与残差的变化过程根据上面两种方法所得到的误差曲线和参数过渡过程曲线,我们可以看出来利用最小二乘法得到的参数最终趋于稳定,为利用带遗忘因子的最小二乘算法,曲线参数最终还是有小幅度震荡。

系统辨识大作业.

系统辨识大作业.

一、 问题描述考虑仿真对象:()0.9(1)0.15(2)0.02(3)0.7(1)0.15(2)()z k z k z k z k u k u k e k +-+-+-=---+ e() 1.0e(1)0.41e(2)(),~(0,1)k k k v k v N λ+-+-=式中,u(k)和z(k)是输入输出数据,v(k)是零均值、方差为1的不相关的随机噪声;u(k)采用与e(k)不相关的随机序列。

1. 设计实验,产生输入输出数据;2. 使用基本最小二乘法估计参数;3. 考虑其他适用于有色噪声的辨识方法估计参数;4. 模型验证。

二、 问题分析对于单输入单输出系统(Single Input Single Output, SISO ),如图 1所示,将待辨识的系统看作“灰箱”,它只考虑系统的输入输出特性,而不强调系统的内部机理。

图 1中,输入u(k)和输出z(k)是可以测量的,1()G z -是系统模型,用来描述系统的输入输出特性,y(k)是系统的实际输出。

1()N z -是噪声模型,v(k)是均值为零的不相关随机噪声,e(k)是有色噪声。

图 1 SISO 系统的“灰箱”结构对于SISO 随机系统,被辨识模型()G z 为:12121212()()()1n n nn b z b z b z y z G z u z a z a z a z ------+++==++++ 其相应的差分方程为11()()()n ni i i i y k a y k i b u k i ===--+-∑∑若考虑被辨识系统或观测信息中含有噪声,被辨识模型可改写为11()()()()n ni i i i z k a y k i b u k i v k ===--+-+∑∑式中,z(k)为系统输出量的第k 次观测值;y(k)为系统输出量的第k 次真值,y(k-1)为系统输出量的第k-1次真值,以此类推;u(k)为系统的第k 个输入值,u(k-1)为系统的第k-1个输入值;v(k)为均值为0的不相关随机噪声。

系统辨识实验答案相关分析法

系统辨识实验答案相关分析法

实验一辩识离散线性系统脉冲响应特性的相关分析法实验步骤及问题1.首先采用批量算法,步骤如下:(1)首先产生M序列。

通过Matlab软件编程产生M序列,程序如下。

x1=1;x2=1;x3=1;x4=1;m=15;for i=1:my4=x4;y3=x3;y2=x2;y1=x1;x4=y3;x3=y2;x2=y1;x1=xor(y3,y4);if y4==0u(i)=-1;elseu(i)=y4;endendm=u%grapheri1=i;k=1:1:i1;subplot(3,1,1)plot(k,u,k,u,'rx')xlabel('k')ylabel('m序列')title('移位寄存器产生的m序列')产生的M序列如下图所示:(2)系统输出y (k) + a 1y (k-1) + a 2y (k-2) = b 1u (k-1-d) + b 2u (k-2-d)式中参数值为a1=-0.9,a2=0.5,b1=1.1,b2=0.5,d=0时产生的图形如下:(3)采用建议的系统参数a 和b ,观察冲激响应曲线的真值,并估计系统的整定时间Ts ;改变系统参数a 和b ,查看其对结果的影响。

利用批量算法求脉冲响应。

脉冲响应估计值为:1.1928 2.2057 2.6252 1.9906 1.2154 0.9030 0.6983 0.6772 0.8593 1.2405 1.4121 1.5508 1.5512 1.4251 1.3490 图形如下图所示:当改变a, b 参数值时,使5.0,1,5.0,12121===-=b b a a 。

此时的脉冲响应估计值为:1.2900 2.2734 2.7686 2.3477 1.6035 1.1689 0.8643 0.7402 0.8232 1.2314 1.4990 1.7188 1.7344 1.6143 1.5176 脉冲响应图形如下图所示:当改变参数值后,从图形中可以看出脉冲响应的图形形状没有大的改变,但是脉冲响应估计值发生变化。

系统辨识作业:相关分析法,hankel法,WSL,pulseTFTESTMAIN

系统辨识作业:相关分析法,hankel法,WSL,pulseTFTESTMAIN

一:编制以M序列为输入时,脉冲响应的相关分析算法。

根据脉冲响应的相关分析算法:g=H*R*M*Z。

其中p=ones(15);q=eye(15);R=p+q;H=1/16;for j=1:15for i=1:16-jM(i,i+j-1)=u(i)endendfor t=1:15Z(t,1)=Y(1,t)end根据程序可以看到,当M序列确定以后,脉冲响应的估计值完全取决于过程的输出数据。

二:利用Hankel法求系统脉冲传递函数利用脉冲响应的估计值,构造Hankel矩阵,然后球的脉冲传递函数的分子分母系数a和b。

根据给定的脉冲响应gk=[6.989;4.711;3.136;2.137;1.559;1.252;1.096;1.009;0.938;0.860]; 辨识所得系统脉冲传函:Transfer function:4.711 z^2 - 7.01 z + 2.974----------------------------------z^3 - 2.154 z^2 + 1.611 z - 0.4266Sampling time: 0.1三:差分方程法求系统的传递函数由脉冲响应构建线性方程组矩阵,由Aa=B,确定待定系数a,随后生成关于X的特征多项式,求出x的n个解,得到传递函数的极点s,构造c的系数矩阵,求出c.便可确定系统传递函数。

根据所给脉冲响应:gk=[0;0.196;0.443;0.624;0.748;0.831];辨识所得系统传函:Transfer function:8.327e-017 s^2 - 0.01701 s + 0.8613------------------------------------s^3 + 2.607 s^2 + 0.8313 s + 0.01011四:加权最小二乘算法系统的输入信号为一个周期的M序列,z(k)=1.5*z(k-1)-0.7*z(k-2)+u(k-1)+0.5*u(k-2)用理想的输出值作为观测值,给样本矩阵HL和ZL赋值,加权矩阵取单位阵I,则c=c2*c3,其中c1=HL'*HL; c2=inv(c1); c3=HL'*ZL; c简称最小二乘估计值。

系统辨识作业汇总

系统辨识作业汇总

系统建模方法大作业1.考虑如下系统y() 1.5(1)0.7(2)(3)0.5(4)()k y k y k u k u k k ξ--+-=-+-+式中,()k ξ为白噪声。

取初值6(0)10P I =,ˆ(0)0θ=。

分别选择M 序列和方差为1的正态分布白噪声作为输入信号()u k ,采用递推最小二乘算法进行参数估计,迭代L=400步停止计算。

要求i) 给出基本迭代公式;ii) 画出程序流程框图;iii) 画出输入输出数据曲线、参数估计曲线、误差曲线;提示:产生长度为L 方差为1的正态分布白噪声,相应的MATLAB 命令为 randn (L,1)。

1=+10**[*0*1]k p h h p h-(1)z(k)=1.5*z(k-1)-0.7*z(k-2)+u(k-3)+0.5*u(k-4)h1=[-z(k-1),-z(k-2),u(k-3),u(k-4)]c1=c0+k1*[z(k)-h1'*c0](2)(3)1.当输入为M序列时L=15; % M序列的周期y1=1;y2=1;y3=1;y4=0; %四个移位寄存器的输出初始值for i=1:L; %开始循环,长度为Lx1=xor(y3,y4); %第一个移位寄存器的输入是第三个与第四个移位寄存器的输出的x2=y1; %第二个移位寄存器的输入是第一个移位寄存器的输出x3=y2; %第三个移位寄存器的输入是第二个移位寄存器的输出x4=y3; %第四个移位寄存器的输入是第三个移位寄存器的输出y(i)=y4; %取出第四个移位寄存器的幅值为"0"和"1"的输出信号,即M 序列if y(i)>0.5,u(i)=-0.03; %如果M序列的值为"1", 辨识的输入信号取“-0.03” else u(i)=0.03; %如果M序列的值为"0", 辨识的输入信号取“0.03” end %小循环结束y1=x1;y2=x2;y3=x3;y4=x4; %为下一次的输入信号做准备end %大循环结束,产生输入信号ufigure(1); %第一个图形title('输入M序列') %图形标题stem(u),grid on %显示出输入信号径线图并给图形加上网格z(4)=0;z(3)=0;z(2)=0;z(1)=0; %设z的前四个初始值为零for k=5:15; %循环变量从3到15z(k)=1.5*z(k-1)-0.7*z(k-2)+u(k-3)+0.5*u(k-4); %输出采样信号end%RLS递推最小二乘辨识c0=[0.001 0.001 0.001 0.001]'; %直接给出被辨识参数的初始值,即一个充分小的实向量p0=10^6*eye(4,4); %直接给出初始状态P0,即一个充分大的实数单位矩阵E=0.000000005; %取相对误差E=0.000000005c=[c0,zeros(4,14)]; %被辨识参数矩阵的初始值及大小e=zeros(4,15);for(n=1:400); %迭代次数for k=5:15; %开始求Kh1=[-z(k-1),-z(k-2),u(k-3),u(k-4)]';x=h1'*p0*h1+1;x1=inv(x); %开始求K(k)k1=p0*h1*x1; %求出K的值d1=z(k)-h1'*c0; c1=c0+k1*d1; %求被辨识参数ce1=c1-c0; %求参数当前值与上一次的值的差值e2=e1./c0; %求参数的相对变化e(:,k)=e2; %把当前相对变化的列向量加入误差矩阵的最后一列c0=c1; %新获得的参数作为下一次递推的旧参数c(:,k)=c1; %把辨识参数c 列向量加入辨识参数矩阵的最后一列p1=p0-k1*k1'*[h1'*p0*h1+1]; %求出 p(k)的值p0=p1; %给下次用%如果参数收敛情况满足要求,终止计算end%小循环结束end %大循环结束c,e %显示被辨识参数及其误差(收敛)情况%分离参数a1=c(1,:);a2=c(2,:);b1=c(3,:);b2=c(4,:);ea1=e(1,:);ea2=e(2,:);eb1=e(3,:);eb2=e(4,:);figure(2); %第二个图形i=1:15; %横坐标从1到15plot(i,a1,'r',i,a2,':',i,b1,'g',i,b2,':') %画出a1,a2,b1,b2的各次辨识结果title('递推最小二乘参数辨识') %图形标题figure(3); %第三个图形i=1:15; %横坐标从1到15plot(i,ea1,'r',i,ea2,'g',i,eb1,'b',i,eb2,'r:') %画出a1,a2,b1,b2的各次辨识结果的收敛情况title('辨识精度') %图形标题辨识曲线图:2当输入为随机正态分布时u=randn(L,1); %产生随机正态分布白噪声figure(1); %第一个图形title('输入正态分布白噪声') %图形标题stem(u),grid on %显示出输入信号径线图并给图形加上网格z(4)=0;z(3)=0;z(2)=0;z(1)=0; %设z的前四个初始值为零for k=5:15; %循环变量从3到15z(k)=1.5*z(k-1)-0.7*z(k-2)+u(k-3)+0.5*u(k-4); %输出采样信号end%RLS递推最小二乘辨识c0=[0.001 0.001 0.001 0.001]'; %直接给出被辨识参数的初始值,即一个充分小的实向量p0=10^6*eye(4,4); %直接给出初始状态P0,即一个充分大的实数单位矩阵E=0.000000005; %取相对误差E=0.000000005c=[c0,zeros(4,14)]; %被辨识参数矩阵的初始值及大小e=zeros(4,15);for(n=1:400); %迭代次数for k=5:15; %开始求Kh1=[-z(k-1),-z(k-2),u(k-3),u(k-4)]';x=h1'*p0*h1+1;x1=inv(x); %开始求K(k)k1=p0*h1*x1; %求出K的值d1=z(k)-h1'*c0; c1=c0+k1*d1; %求被辨识参数ce1=c1-c0; %求参数当前值与上一次的值的差值e2=e1./c0; %求参数的相对变化e(:,k)=e2; %把当前相对变化的列向量加入误差矩阵的最后一列c0=c1; %新获得的参数作为下一次递推的旧参数c(:,k)=c1; %把辨识参数c 列向量加入辨识参数矩阵的最后一列p1=p0-k1*k1'*[h1'*p0*h1+1]; %求出 p(k)的值p0=p1; %给下次用%如果参数收敛情况满足要求,终止计算end%小循环结束end %大循环结束c,e %显示被辨识参数及其误差(收敛)情况%分离参数a1=c(1,:);a2=c(2,:);b1=c(3,:);b2=c(4,:);ea1=e(1,:);ea2=e(2,:);eb1=e(3,:);eb2=e(4,:);figure(2); %第二个图形i=1:15; %横坐标从1到15plot(i,a1,'r',i,a2,':',i,b1,'g',i,b2,':') %画出a1,a2,b1,b2的各次辨识结果title('递推最小二乘参数辨识') %图形标题figure(3); %第三个图形i=1:15; %横坐标从1到15plot(i,ea1,'r',i,ea2,'g',i,eb1,'b',i,eb2,'r:') %画出a1,a2,b1,b2的各次辨识结果的收敛情况title('辨识精度') %图形标题辨识曲线:2.考虑如下确定性系统() 1.5(1)0.7(2)(3)0.5(4)y k y k y k u k u k --+-=-+-采用梯度校正算法进行参数估计,通过相对误差准则停止计算。

系统辨识作业及答案解析

系统辨识作业及答案解析

一. 问答题1. 介绍系统辨识的步骤。

答:(1)先验知识和建模目的的依据:(2)实验设计:(3)结构辨识:(4)参数估计;(5) 模型适用性检验。

2. 考虑单输入单输岀随机系统,状态空间模型yW = [1小•伙)+咻)转换成ARMA 模型。

答:ARMA 模型的特点是u(k)=O.1 0x(k + 1) =x 伙).2 0. y 伙)=[1 \]x(k) + v(k)3. 设有一个五级移位寄存器,反馈取自第2级和第3级输出的模2加法和匚试说明:(1)其输出序列是什么? (2)是否是M 序列? (3)它与反馈取自第4级与第3级输出模2加法和所得的序列有何不同? (4) 其逆M 序列是什么?答:(1)设设输入序列1 1111(1) 11111(9)01110 (17)00111(25)10011(2) 01111 (10)00111 (18)10011(26)01001(3) 00111 (11)10011 (19)01001(27)10100(4) 10011 (12)01001(20)10100(28)11010(5) 01001 (13)10100(21)11010(29)00111(6) 10100 (14)11010(22)11101(30)01110(7) 11010 (15)11101 (23)01110(31)00111(8) 11101 (16)01110(24)00111(32)10011其输出序列为:1 1 1 1 1 0 0 1 0 1(2) 不是M 序列⑶第4级与第3级模2相加结果(1) 11111(9)11001 (17)01111(25)01100皿+沪20 。

心)+ "伙)(2)01111 (10)01100(18)00111(26)10110(3)00111 (11)10110 (19)00011(27)01011(4)00011 (12)01011(20)10001(28)10101(5)10001 (13)10101(21)01000(29)11010(6)01000 (14)11010(22)00100(30)11101(7)00100 (15)11101 (23)10010(31)11110(8)10010 (16)11110(24)11001(32)01111不同点:第2级和第3级模二相加产生的序列,是从第4时刻开始,每隔7个时刻重复一次:第4级与第3级模2相加产生的,序列,是从第2时刻开始每隔15个时刻重复一次。

系统辨识第三次作业---读文体会

系统辨识第三次作业---读文体会

“系统辨识在实际工业生产过程中应用实例分析”读文心得体会系统辨识第三次作业姓名:罗才宝学号:0953505008专业:09自动化<一> 分析总结该文献首先分析了非线性模型在高速高精数控机床运动控制上的应用是当今控制科学的前沿课题,神经网络作为非线性系统的模型,然而神经网络实现技术的现状,使神经网络应用于高速高精数控机床运动控制受到限制。

然后从工程应用的角度研究基于非线性模型的简化模型-----基于线性特征的机电系统辨识。

本文基本逻辑是:在试验的基础上,采用极大似然法进行了系统辨识得出基本模型,然后用Matlab 进行仿真,证明该辨识方案的正确性,最后进行模型检验与辨识结果分析从而得出结论。

文献还为我们解析了极大似然法,极大似然法:它构造一个以数据和未知参数为自变量的似然函数,并通过极大化这个似然函数,获得模型的参数估计值。

基于自相关函数检验法进行模型检验,还提出了判断模型的好坏的一种依据:如果输出残差序列是(或近似是)零均值的白噪声序列,则认为所获得的辨识模型是较好的模型,否则辨识模型可能是不好的模型。

读文心得体会系统辨识:辨识可以简单定义为系统模型估计,此模型代表现有系统(或待构造系统)的基本特性并以可用的形式提供关于该系统的知识。

辫识方法分为确定性与随机性两种。

辨识方法最重要的发展趋势是解决那些没有解决的辫识问题及解决数字计算与实际应用的复杂性。

极大似然估计,只是一种概率论在统计学的应用,它是参数估计的方法之一。

说的是已知某个随机样本满足某种概率分布,但是其中具体的参数不清楚,参数估计就是通过若干次试验,观察其结果,利用结果推出参数的大概值。

它是建立在极大似然原理的基础上的一个统计方法,极大似然原理的直观想法是:一个随机试验如有若干个可能的结果A,B,C,…。

若在一次试验中,结果A出现,则一般认为试验条件对A出现有利,也即A出现的概率很大。

求极大似然函数估计值的一般步骤:(1)写出似然函数;(2)对似然函数取对数,并整理;(3)求导数;(4)解似然方程。

系统辨识作业

系统辨识作业

系统辨识作业3.考虑如下siso系统作为仿真对象z(k)?1.5z(k?1)?0.7z(k2)?u(k?1)?0.5u(k2)?e(k)其中,?e(k)?为服从n(0,1)分布的白噪声序列;输入信号u(k)采用4阶逆重复m序列,其振幅为1;数据的信噪比=14.3%。

选择的识别模型为z(k)?a1z(k?1)?a2z(k?2)?b1u(k?1)?b2u(k?2)??(k)分别采用最小二乘估计的一次完成算法和最小二乘估计的递推算法进行参数估计。

选择数据长度l=480;选取初始值p0=106i2*2,q0=0.001(要过程)解决方案:>>%最小二乘估计一次完成算法clearall;a=[1-1.50.7]';b=[10.5]';d=3;%对象参数na=length(a)-1;nb=length(b)-1;%na、nb 为a、b阶次l=480;%数据长度英国=[0.0010.0010.0010.001];%输入初始值:UK(I)表示u(k-I)YK=0(Na,1);%输出初始值x1=1;x2=1;x3=1;x4=0;s=1;%移位寄存器初值、方波初值xi=rand(l,1);%白噪声序列θ=[a(2:na+1);b];%对象参数真值fork=1:lphi(k,:)=[-yk;uk(d:d+nb)]';%此处phi(k,:)为行向量,便于组成phi矩阵y(k)=phi(k,:)*theta+xi(k);%采集输出数据im=xor(s,x4);%产生逆m序列ifim==0u(k)=-1;elseu(k)=1;ends=不(s);m=xor(x3,x4);%生成m序列%更新数据x4=x3;x3=x2;x2=x1;x1=m;fori=d+nb:-1:2uk(i)=uk(i-1);enduk(1)=u(k);fori=na:-1:2yk(i)=yk(i-1);endyk(1)=y(k);endThetae=inv(phi'*phi)*phi'*y'%计算参数thetaethetae的估计值=-1.54530.69531.00320.4566>>%最小二乘估计的递推算法;closeall;a=[1-1.50.7]';b=[10.5]';d=3;%对象参数na=length(a)-1;nb=length(b)-1;%na、nb 为a、b阶次l=480;%仿真长度英国=[0.0010.0010.0010.001];%输入初始值YK=0(Na,1);%输出初始值u=rand (L,1);%输入采用白噪声序列席=SqRT(0.1)*RAND(L,1);白噪声序列θ=[a(2:Na+1);b];%对象参数真值θ1=0(na+nb+1,1);%θ初始值p=10^6*眼(4);fork=1:lphi=[-yk;英国(d:d+nb)];%这里φ是列向量y(k)=φ′θ+席(k);%。

合工大系统辨识作业及答案

合工大系统辨识作业及答案

系统辨识作业一、 简答题1 系统辨识的实验设计应包含那些内容?答:系统辨识实验设计应包含选择实验信号、采样时间、辨识时间、输入输出数据长度等。

2 判断下列是否为一个正确周期的M 序列,并说明原因。

111100010011011 111100********* 答:不是M 序列,因为M 序列的周期为15,由M 序列的性质知序列中“1”的状态应为8个 而第一个中有9个 所以不是M 序列3证明加权最小二乘估计的无偏性。

证明:加权最小二乘估计的解为:()1ˆTT WLSW WY θ-=ΦΦΦ 其中Φ为输入矩阵 W 为加权矩阵 Y 为输出矩阵。

()()11ˆ()T T WLS T TE W W e E W We θθθ--⎡⎤⎡⎤=ΦΦΦΦ+⎣⎦⎢⎥⎣⎦⎡⎤=+ΦΦΦ⎢⎥⎣⎦由于Φ与e 统计独立,则()10T T E W We -⎡⎤ΦΦΦ=⎢⎥⎣⎦即ˆWLS E θθ⎡⎤=⎣⎦所以ˆWLSθ是无偏估计量,命题得证。

4比较最小二乘法、广义最小二乘法和辅助变量法的优缺点。

答:基本最小二乘对低噪声有效,参数估计值可很快收敛到真值,所需计算量相对较少,但对实际噪声估计有偏。

广义最小二乘法:计算量大,可能不收敛,可能是有偏估计。

但如果对噪声模型用随机逼近法,而对过程模型采取最小二乘法则获得较好形式的广义最小二乘法。

辅助变量法可以一次性完成计算,但是计算量也大,对初值选择很敏感。

5答:对于n 阶系统与n+1阶系统参数估计之间有如下的关系:对于n+1阶系统 ()()()11()()A z y k B z u k e k --=+设其待估参数为()011111...(1)(2)T T Tn n n n n b a b a b a b θθθ++⎡⎤⎡⎤+==⎣⎦⎣⎦ 则(1)()[()]T n A Y n θθθ=-Φ-Φ由题目知n=2时系统参数为准确值,则n=3时按照上式去计算,估算出的系数必远远偏离系统模型参数值。

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

Answer to Program testing
1. generating input-output signalsby mean of MATLAB
Input u(t)
u(t) is the maximum length PRBS with amplitudea 1 and trend ut t 0.0001t
ut t 0.0001t , other parmateres of M-PRBS will be determined by the
examined-students.
Disturbance e t is the Gaussian-distribution white noise with zero mean and
900 1000
t
②the programme of the output signal
%output of system1
A=1;
C=1;
B= [0 1 0.5];
D= [1 -1.5 0.7];
F= [1 -1.5 0.7];
m0= idpoly(A,B,C,D,F);
y1=sim(m0, [u' e1]);
Disturbance e t :
e t is the Gaussian-distribution white noise with zero mean and variances ,Let 0.2 and 1.2 respectively
(1) we choose the data length L=1000 and select the =0.2 as the variance
about it including order and parameters. The unique information is just above data. Please identify the process model, B/F, based on the data and using MATLAB package. Take reference of the examples in the texbook 17.3 to get preliminary models, further models and final choice of model by proper identification method. 3. Compare the obtained models with the true system(original transfer-function). Compare the models obtained under different conditions with each other. Note:The examined-student should give a clear procedure of solving problems and offer flow-chart,etc.
variances ,Let 0.2 and 1.2 respectively. 1. For every system , generate input-output signals by means of MATLAB, select
the data length L=1000. 2. Suppose,now, you view the systemas a black-box ,you don’t know anything
of e(t)
①the programme of the input signal and disturbance signal
N=[1000 1];
BAND1=[0 1];
BAND2=[0 1];
LEVEL1=[-1 1];
LEVEL2=[-sqrt(0.2) sqrt(0.2)];
%input of system1
'e1' ),title(
'white noise with zero mean and variance
0.2' );

figure(2)
plot(t,u,
'b' )
xlabel( 't' ),ylabel(
'u' ),title(
' pseudorandom binary signal'
);
pseudorandom binary signal 1.5
PROBLEM:PROGRAMME TESTING
Given the following SISO systems described by transfer-function containing 4 polynomials:
e
C D
u(t)
B F
Aq 1
Fq
1 1.5 q 1 0.7 q 2
1
2
1.
Bq
q
0.5 q
Cq Dq
1
1
2
1 1.5 q
0.7 q
+ y(t)
Aq 1
Fq
1
2
1 1.5 q
0.7 q
2.
Bq
q 1 0.5 q 2
Cq
1
2
1q
0.2 q
Dq
1 1.5 q 1 0.7 q 2
Input signal u(t) is the Maximum Length PRBS with amplitude a 1 and trend
1
0.5 u
0
-0.5
-1 0
1.5
100 200 300 400 500 600 700 800 900 1000 t
white noise with zero mean and v
ariance 0.2
1
0.5
0 e2
-0.5
-1
-1.5
-2
0
100 200
300 400
500 600 700 800
figure(3)
plot(t,y1)
xlabel( 't' ),ylabel(
'y1' ),title(
' output of the system1'
u1=idinput(N,
'prbs' ,BAND1,LEVEL1);
u2=idinput(N,
'rgs' ,BAND2,LEVEL2);
e1=u2;
for t=1:1000
u(t)=u1(t)+0.0001*t;
end
t=1:1000;
figure(1)
plot(t,e1,
'b' )
xlabel( 't' ),ylabel(
相关文档
最新文档