系统辨识与自适应控制--大作业
- 格式:doc
- 大小:349.50 KB
- 文档页数:7
系统辨识与自适应控制学院:专业:学号:姓名:系统辨识与自适应控制作业一、对时变系统进行参数估计。
系统方程为: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继续循环。
2009级本科生 系统辨识及自适应控制 考试题一、 概述系统辨识与自适应控制的关系,以及自适应控制的研究对象和系统辨识的定义?(10分)关系:PPT 1.4图及说明。
自适应控制的研究对象:是具有一定程度不确定性的系统。
系统辨识:就是按规定准则在一类模型中选择一个与数据拟合得最好的模型。
二、描述随机过程统计特性的确定性时间函数有哪些?什么是白噪声,它有哪些特性,有何用途?在系统参数辨识实验中为什么常用M 序列或逆M 序列作为被辨识对象的输入信号?(20分)确定性时间函数有:均值函数、方差函数、均方值函数、相关函数等白噪声:一种均值为零,谱密度为非零常数的平衡随机过程白噪声特性:(1)是一种随机过程信号(2)没有记忆性,任意两时刻之间的值不相关(3)均值为零,方差为常数(4)功率谱密度函数为常数用途:(1)作为系统输入时,为系统的单位脉冲响应(2)作为被辨识系统输入时,可以激发系统的所有模态,可对系统充分激励(3)作为被辨识系统输入时,可防止数据病态,保证辨识精度(4)产生有色噪声原因:白噪声是一种理想的随机过程,若做为系统辨识的输入信号,则过程的辨识精度将大大提高,但是白噪声在工程上难以实现,因为工业设备无法按白噪声的变化特性运行。
M 序列与白噪声性质相近,保留了其优点,工业上可以接受。
但是M 序列含有直流成分,将造成对辨识系统的“净扰动”,而逆M 序列将克服这一缺点,是一种比M 序列更为理想的伪随机码序列。
三、简述在下列参数辨识公式中:111111ˆˆˆ[(1)()]()[()()]1[()]T N N N N T N N N T N N N K y N N K P N N P N P I K N P θθϕθϕλϕϕϕλ++-+++⎧⎪=++-⎪=+⎨⎪⎪=-⎩(1)系数λ的作用(10分);(2)初始值P0如何设定?说明理由(10分)。
(1)加权系数,削弱旧数据产生的误差,对新数据的误差乘以大的加权,其值愈小,跟随时变参数的能力就愈强,但参数估计精度愈低。
1.1讨论系统方程为:(信噪比)至少30%)()1()()1()(k e k u k b k ay k y +-=-+)(k e 为零均值白噪声, =)(k a=)(k b 要求对系统参数辨识进行讨论(1) 定常系统 a=0.8,b=0.5参数递推估计 (2) 时变系统 取不同值是的不同结果并讨论。
(1)取初值P (0)=I 、∧θ(0)=0选择方差为1的白噪声作为输入信号u (k ),L=300,采用RLS 算法进行参数估计,代码及仿真结果图如下: clear all ;close all ;a=[1 0.8]';b=[0.5]';d=1; %对象参数na=length(a)-1;nb=length(b)-1; %na 、nb 为A 、B 阶次L=300; %仿真长度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:2 uk(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','b_0');axis([0 L -2 2]);图1-1 递推最小二乘法的参数估计结果(2))取初值P (0)=I 、∧θ(0)=0选择方差为1的白噪声作为输入信号u (k ),取 分别为0.91,0.95,0.98,1.00时,L=600,采用FFRLS 算法进行参数估计,代码及仿真图如下所示:clear all ;close all ;a=[1 0.8]';b=[0.5]';d=1; %对象参数na=length(a)-1;nb=length(b)-1; %na 、nb 为A 、B 阶次L=600; %仿真长度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); %白噪声序列thetae_1=zeros(na+nb+1,1); %thetae初值P=10^6*eye(na+nb+1);lambda=0.98; %遗忘因子范围[0.9 1]for k=1:Lif k==301a=[1 0.6]';b=[0.3]'; %对象参数突变endtheta( : ,k)=[a(2 : na+1);b]; %对象参数真值phi = [-yk;uk(d:d+nb)]; %´此处phi为列向量y(k)=phi'*theta( : ,k) + xi(k); %采集输出数据%遗忘因子递推最小二乘法·¨K=P*phi/(lambda+phi'*P*phi);thetae( : ,k)=thetae_1 + K*(y(k)-phi'*thetae_1);P=(eye(na+nb+1)-K*phi')*P/lambda;%更新数据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);endsubplot(1,2,1)plot([1:L],thetae(1:na,:));hold on;plot([1:L],theta(1:na,:),'k:'); xlabel('k');ylabel('参数估计a');legend('a_1');axis([0 L -2 2]);subplot(1,2,2)plot([1:L],thetae(na+1:na+nb+1,:));holdon;plot([1:L],theta(na+1:na+nb+1,:),'k:');xlabel('k');ylabel('参数估计b');legend('b_0');axis([0 L -0.5 2]);图1-2-1 遗忘因子递推最小二乘法的参数估计结果(λ=0.91)图1-2-2 遗忘因子递推最小二乘法的参数估计结果(λ=0.95)图1-2-3遗忘因子递推最小二乘法的参数估计结果(λ=0.98)图1-2-4 遗忘因子递推最小二乘法的参数估计结果(λ=1)由以上可以看出,技术对于参数突变的系统,采用FFRLS算法也能够有效地进行参数估计。
Harbin Institute of Technology系统辨识与自适应控制实验报告题目:渐消记忆最小二乘法、MIT方案与卫星振动抑制仿真实验专业:控制科学与工程姓名:学号: 15S******指导老师:日期: 2015.12.06哈尔滨工业大学2015年11月本实验第一部分是辨识部分,仿真了渐消记忆递推最小二乘辨识法,研究了这种方法对减缓数据饱和作用现象的作用;第二部分是自适应控制部分,对MIT 方案模型参考自适应系统作出了仿真,分别探究了改变系统增益、自适应参数的输出,并研究了输入信号对该系统稳定性的影响;第三部分探究自适应控制的实际应用情况,来自我本科毕设的课题,我从自适应控制角度重新考虑了这一问题并相应节选了一段实验。
针对挠性卫星姿态变化前后导致参数改变的特点,探究了用模糊自适应理论中的模糊PID 法对这种变参数系统挠性振动抑制效果,并与传统PID 法比较仿真。
一、系统辨识1. 最小二乘法的引出在系统辨识中用得最广泛的估计方法是最小二乘法(LS)。
设单输入-单输出线性定长系统的差分方程为:()()()()()101123n n x k a x k a k n b u k b u x k n k +-+⋯+-=+⋯+-=,,,, (1.1) 错误!未找到引用源。
式中:()u k 错误!未找到引用源。
为控制量;错误!未找到引用源。
为理论上的输出值。
错误!未找到引用源。
只有通过观测才能得到,在观测过程中往往附加有随机干扰。
错误!未找到引用源。
的观测值错误!未找到引用源。
可表示为: 错误!未找到引用源。
(1.2)式中:()n k 为随机干扰。
由式(1.2)得错误!未找到引用源。
()()()x k y k n k =- (1.3)将式(1.3)带入式(1.1)得()()()()()()()101111()nn n i i y k a y k a y k n b u k b u k b u k n n k a k i n =+-+⋯+-=+-+⋯+-++-∑ (1.4)我们可能不知道()n k 错误!未找到引用源。
自适应控制习题(徐湘元,自适应控制理论与应用,电子工业出版社,2007)【2-1】设某物理量丫与XI 、X2、X3的关系如下:丫=0 1X1 + 0 2X2+0 3X3由试验获得的数据如下表。
试用最小二乘法确定模型参数 0 1、0 2和0 3X1:0.620.40.420.820.660.720.380.520.450.690.550.36X2:12.014.214.612.110.88.2013.010.58.8017.014.212.8 X3:5.206.100.328.305.107.904.208.003.905.503.806.20 Y: 51.649.948.550.649.748.842.645.937.864.853.445.3【2-3】考虑如下模型其中w(t)为零均值、方差为1的白噪声。
根据模型生成的输入/输出数据u(k)和y(k), 分别采用批处理最小二乘法、具有遗忘因子的最小二乘法(入 =0.95)和递推最小二乘法 估计模型参数(限定数据长度 N 为某一数值,如N=150或其它数值),并将结果加以比 较。
【2-4】 对于如下模型(1 _0.8z 10.15z 2)y(k) 一(z 20.5z 3)u(k) - (1 - 0.65z 1- 0.1z 2)w(k)其中w(k)为零均值、方差为1的白噪声。
根据模型生成的输入/输出数据u(k)和y(k), 分别采用增广最小二乘法和随机逼近法进行模型参数估计,并比较结果。
(提示:w(t)可以用MATLAB^的函数“ randn ”产生)。
【3-1】 设有不稳定系统: (1z 1)y(k)- z ^(10.9z 1)u(k)期望传递函数的分母多项式为Amz z mr且无稳态误差。
试按照极点配置方法设计控制系统,并写出控制表达式。
【3-2} 设有被控过程:一 -_(1 1.7z 1 0.6z 2)y(k)z 2(11.2z 1)u(k) 一 ~- 一--1.3z0.5z u(t)w(t)I 0.3z 21 - - T ()(10.5),期望输出y 跟踪参考输入y ,y(t)给定期望传递函数的分母多项式为(1)(1 0.61 0.08 2),试按照极点配置方 A m zzz法设计控制系统,使期望输出无稳态误差,并写出控制表达式 u(k)。
论文系统辨识姿态角控制1.系统辨识概述辨识、状态估计和控制理论是现代控制理论三个相互渗透的领域。
辨识和状态估计离不开控制理论的支持,控制理论的应用又几乎不能没有辨识和状态估计技术。
随着控制过程复杂性的提高,控制理论的应用日益广泛,但其实际应用不能脱离被控对象的数学模型。
然而在大多数情况下,被控对象的数学模型是不知道的,或者在正常运行期间模型的参数可能发生变化,因此利用控制理论去解决实际问题时,首先需要建立被控对象的数学模型。
系统辨识正是适应这一需要而形成的,他是现代控制理论中一个很活跃的分支。
社会科学和自然科学领域已经投入相当多的人力去观察、研究有关的系统辨识问题。
系统辨识是建模的一种方法,不同的学科领域,对应着不同的数学模型。
从某种意义上来说,不同学科的发展过程就是建立他的数学模型的过程。
辨识问题可以归结为用一个模型来表示可观系统(或将要改造的系统)本质特征的一种演算,并用这个模型吧对客观系统的理解表示成有用的形式。
当然可以刻有另外的描述,辨识有三个要素:数据,模型类和准则。
辨识就是按照一个准则在一组模型类中选择一个与数据拟合得最好的模型。
总而言之,辨识的实质就是从一组模型类中选择一个模型,按照某种准则,使之能最好地拟合所关心的实际过程的静态或动态特性。
通过辨识建立数学模型的目的是估计表征系统行为的重要参数,建立一个能模仿真实系统行为的模型,用当前可测量的系统的输入和输出预测系统输出的未来演变,以及设计控制器。
对系统进行分析的主要问题是根据输入时间函数和系统的特性来确定输出信号。
对系统进行控制的主要问题是根据系统的特性设计控制输入,使输出满足预先规定的要求。
而系统辨识所研究的问题恰好是这些问题的逆问题。
通常,预先给定一个模型类{}M(即给定一类已知结构的模型),一类输入信号u和等价准则(,)JLyyM(一般情况下,J是误差函数,是过程输出y和模型输出yM的一个泛函);然后选择是误差函数J达到最小的模型,作为辨识所要求的结果。
系统辨识与自适应控制实验报告一、实验目的1.了解最小二乘算法的实现;2.使用最小二乘法一次完成算法、递推最小二乘法以及广义最小二乘法对系统进行辨识。
二、实验容设单输入-单输出系统的差分方程为y(k)=-取真实值=[ 1.642 0.715 0.39 0.35] ,输入数据如下表所列。
k u(k) k u(k) k u(k)1 1.147 11 -0.958 21 0.4852 0.201 12 0.810 22 1.6333 -0.787 13 -0.044 23 0.0434 -1.589 14 0.947 24 1.3265 -1.052 15 -1.474 25 1.7066 0.866 16 -0.719 26 -0.3407 1.152 17 -0.086 27 0.8908 1.157 18 -1.099 28 1.1449 0.626 19 1.450 29 1.177 10 0.43320 1.15130 -0.390用的真实值利用查分方程求出作为测量值,为均值为0,方差为0.1,0.5的不相关随机序列。
(1) 用最小二乘法估计参数(2) 用递推最小二乘法估计参数θ。
(3) 用辅助变量法估计参数θ。
(4) 设,用广义最小二乘法估计参数θ。
(5) 用增广矩阵法估计参数θ详细分析和比较所获得的参数辨识结果,并说明上述参数辨识方法的优点。
三、 实验设备Matlab 软件,PC 机一台。
四、实验原理4.1 最小二乘一次完成算法 4.1.1 公式 辨识参数L T LL TL LS y XX X 1)(-Λ=θ上式中4.1.2 程序流程图图 1最小二乘一次完成程序流程图4.2 递推最小二乘算法4.2.1 递推公式公式为其中,4.2.2 算法流程图图 2 递推最小二乘法实现程序框图4.3 增广最小二乘递推算法4.3.1 递推公式公式为:其中,4.3.2 算法流程图图 3 增广最小二乘法算法流程图五、实验结果5.1 最小二乘法一次完成实验结果XL =0 0 0 00 0 0 00 0 0.2010 1.1470-0.4798 0 -0.7870 0.20101.0245 -0.4798 -1.5890 -0.7870-0.4439 1.0245 -1.0520 -1.5890 0.9629 -0.4439 0.8660 -1.0520 -1.2332 0.9629 1.1520 0.8660 0.5840 -1.2332 1.5730 1.1520 -1.0939 0.5840 0.6260 1.5730 0.5840 -1.0939 0.4330 0.6260 -0.5647 0.5840 -0.9580 0.4330 0.7317 -0.5647 0.8100 -0.9580 -0.7784 0.7317 -0.0440 0.8100 0.4885 -0.7784 0.9470 -0.0440 -0.5996 0.4885 -1.4740 0.9470 0.8786 -0.5996 -0.7190 -1.4740 -0.2177 0.8786 -0.0860 -0.7190 0.0144 -0.2177 -1.0990 -0.0860 0.5907 0.0144 1.4500 -1.0990 -1.1611 0.5907 1.1510 1.4500 0.5277 -1.1611 0.4850 1.1510 -0.6284 0.5277 1.6330 0.4850 -0.1521 -0.6284 0.0430 1.6330 0.1108 -0.1521 1.3260 0.0430 -0.6053 0.1108 1.7060 1.3260 -0.2147 -0.6053 -0.3400 1.70600.3208 -0.2147 0.8900 -0.3400 -0.6014 0.3208 1.1440 0.8900 0.0005 -0.6014 1.1770 1.1440 yL =0.4798-1.02450.4439-0.96291.2332-0.58401.0939-0.58400.5647-0.73170.7784-0.48850.5996-0.87860.2177-0.0144-0.59071.1611-0.52770.62840.1521-0.11080.60530.2147-0.32080.6014-0.00050.4302辨识参数矩阵c =1.64200.71500.39000.3500a1 =1.6420;a2 =0.7150;b1 =0.3900;b2 =0.3500 下图为输入、输出矩阵的根径图图 4最小二乘法一次实现输入输出根径图5.2 递推最小二乘法算法辨识结果系统输出矩阵:y =Columns 1 through 130 0 0.4798 -1.0245 0.4439 -0.9629 1.2332 -0.5840 1.0939 -0.5840 0.5647 -0.7317 0.7784Columns 14 through 26-0.4885 0.5996 -0.8786 0.2177 -0.0144 -0.5907 1.1611 -0.5277 0.6284 0.1521 -0.1108 0.6053 0.2147Columns 27 through 30-0.3208 0.6014 -0.0005 0.4302辨识参数矩阵(辨识过程执行26次即满足了误差要求):c =Columns 1 through 130.0010 0 0.0010 0.5690 1.3863 1.64201.6420 1.6420 1.6420 1.6420 1.6420 1.6420 1.64200.0010 0 0.0010 0.0010 -0.2821 0.7150 0.7150 0.7150 0.7150 0.7150 0.7150 0.7150 0.71500.0010 0 0.0719 1.0162 0.5392 0.3900 0.3900 0.3900 0.3900 0.3900 0.3900 0.3900 0.39000.0010 0 0.4057 0.2403 0.3239 0.3500 0.3500 0.3500 0.3500 0.3500 0.3500 0.3500 0.3500Columns 14 through 261.6420 1.6420 1.6420 1.6420 1.6420 1.6420 1.6420 1.6420 1.6420 1.6420 1.6420 1.6420 1.64200.7150 0.7150 0.7150 0.7150 0.7150 0.7150 0.7150 0.7150 0.7150 0.7150 0.7150 0.7150 0.71500.3900 0.3900 0.3900 0.3900 0.3900 0.3900 0.3900 0.3900 0.3900 0.3900 0.3900 0.3900 0.39000.3500 0.3500 0.3500 0.3500 0.3500 0.3500 0.3500 0.3500 0.3500 0.3500 0.3500 0.3500 0.3500辨识误差矩阵:e =Columns 1 through 130 0 0 567.9876 1.4365 0.1844 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.00000 0 0 0 -283.1457 -3.5341 -0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.00000 0 70.9263 13.1283 -0.4694 -0.2767 0.0000 0.0000 -0.0000 -0.0000 0.0000 -0.0000 -0.00000 0 404.7388 -0.4078 0.3479 0.0807 -0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000Columns 14 through 260.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.00000.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.00000.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 -0.00000.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000输入输出根径图图 5 递推最小二乘法输入输出根径图辨识参数过程图 6 递推最小二乘法辨识参数(辨识过程)辨识误差:图 7 递推最小二乘法辨识过程中的误差曲线5.3 增光最小二乘法实验结果随机噪声e0 =Columns 1 through 130.8017 0.3112 0.0400 1.5927 2.1796 -0.2063 0.4197 -0.4914 0.9967 -2.0484 1.3063 0.5351 0.5779Columns 14 through 261.5297 0.0416 0.1831 -0.9543 -1.3474 -0.3873 0.5971 -0.2250 -1.0173 1.3889 -0.3959 0.3049 0.3154Columns 27 through 300.0668 0.7128 0.0522 -1.3478考虑噪声的系统输出矩阵y =Columns 1 through 130 0 1.3292 -2.8976 3.0444 -3.4535 4.0637 -1.2169 1.8419 -1.5061 0.3942 -3.0734 2.3278Columns 14 through 26-0.7705 1.1973 -0.1962 0.3711 -0.4941 -1.4314 1.2987 -1.5689 0.0303 1.8310 0.3403 -0.3472 0.5176Columns 27 through 30-1.1419 -0.4368 0.0696 1.6791不考虑噪声的系统输出矩阵ys =Columns 1 through 130 0 0.4798 -2.4191 2.9124 -3.8936 3.4635 -3.4509 0.1092 -1.3596 1.5440 0.2076 4.7453Columns 14 through 26-1.3584 -0.0452 -1.6585 -1.3303 -0.7543 0.0873 2.8846 -0.1526 2.2396 1.8786 -2.4398 -1.3358 1.4562Columns 27 through 30-0.1371 1.7331 2.2914 1.0575不考虑噪声时的模型输出ym =Columns 1 through 130 0 0.8502 -2.7124 3.2115 -4.4770 4.5771 -3.4086 0.1092 -1.3596 1.5440 0.2076 4.7453Columns 14 through 26-1.3584 -0.0452 -1.6585 -1.3303 -0.7543 0.0873 2.8846 -0.1526 2.2396 1.8786 -2.4398 -1.3358 1.4562Columns 27 through 30-0.1371 1.7331 2.2914 1.0575考虑噪声时的模型输出ymd =Columns 1 through 130 0 1.3292 -2.8976 3.0444 -3.4535 4.0637 -1.2169 1.8419 -1.5061 0.3942 -3.0734 2.3278Columns 14 through 26-0.7705 1.1973 -0.1962 0.3711 -0.4941 -1.4314 1.2987 -1.5689 0.0303 1.8310 0.3403 -0.3472 0.5176Columns 27 through 30-1.1419 -0.4368 0.0696 1.6791辨识参数矩阵:c =Columns 1 through 130.0010 0 0.0010 1.5171 1.6829 1.84351.8250 1.6529 1.6420 1.6420 1.6420 1.6420 1.64200.0010 0 0.0010 0.0010 -0.1409 0.7419 0.6281 0.7388 0.7150 0.7150 0.7150 0.7150 0.71500.0010 0 0.1268 1.0576 0.8180 0.3002 0.4168 0.3921 0.3900 0.3900 0.3900 0.3900 0.39000.0010 0 0.7190 0.6789 0.7019 0.4396 0.1656 0.3522 0.3500 0.3500 0.3500 0.3500 0.35000.0010 0 -0.1988 0.0261 0.0572 -0.0988 -0.0852 1.0030 1.0000 1.0000 1.0000 1.0000 1.00000.0010 0 0.2540 0.6848 0.6545 1.34961.4284 1.6100 1.6420 1.6420 1.6420 1.6420 1.64200.0010 0 0.4430 0.0984 0.1605 0.2657 0.6386 0.7305 0.7150 0.7150 0.7150 0.7150 0.7150Columns 14 through 261.6420 1.6420 1.6420 1.6420 1.6420 1.6420 1.6420 1.6420 1.6420 1.6420 1.6420 1.6420 1.64200.7150 0.7150 0.7150 0.7150 0.7150 0.7150 0.7150 0.7150 0.7150 0.7150 0.7150 0.7150 0.71500.3900 0.3900 0.3900 0.3900 0.3900 0.3900 0.3900 0.3900 0.3900 0.3900 0.3900 0.3900 0.39000.3500 0.3500 0.3500 0.3500 0.3500 0.35000.3500 0.3500 0.3500 0.3500 0.3500 0.3500 0.35001.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.00001.6420 1.6420 1.6420 1.6420 1.6420 1.6420 1.6420 1.6420 1.6420 1.6420 1.6420 1.6420 1.64200.7150 0.7150 0.7150 0.7150 0.7150 0.7150 0.7150 0.7150 0.7150 0.7150 0.7150 0.7150 0.7150Columns 27 through 301.6420 1.6420 1.6420 1.64200.7150 0.7150 0.7150 0.71500.3900 0.3900 0.3900 0.39000.3500 0.3500 0.3500 0.35001.0000 1.0000 1.0000 1.00001.6420 1.6420 1.6420 1.64200.7150 0.7150 0.7150 0.7150辨识参数误差矩阵e =1.0e+003 *Columns 1 through 130 0 0 1.5161 0.0001 0.0001 -0.0000 -0.0001 -0.0000 -0.0000 -0.0000 -0.0000 -0.00000 0 0 0 -0.1419 -0.0063 -0.0002 0.0002 -0.0000 0.0000 0.0000 -0.0000 -0.00000 0 0.1258 0.0073 -0.0002 -0.0006 0.0004 -0.0001 -0.0000 -0.0000 -0.0000 -0.0000 -0.00000 0 0.7180 -0.0001 0.0000 -0.0004 -0.0006 0.0011 -0.0000 0.0000 -0.0000 -0.0000 0.00000 0 -0.1998 -0.0011 0.0012 -0.0027 -0.0001 -0.0128 -0.0000 0.0000 0.0000 0.0000 -0.00000 0 0.2530 0.0017 -0.0000 0.0011 0.0001 0.0001 0.0000 -0.0000 0.0000 0.0000 0.00000 0 0.4420 -0.0008 0.0006 0.0007 0.0014 0.0001 -0.0000 0.0000 0.0000 -0.0000 0.0000Columns 14 through 260.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.00000.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000-0.0000 -0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 -0.00000.0000 0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000 0.0000 -0.0000 -0.0000 -0.0000-0.0000 -0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 -0.0000 -0.0000 -0.00000.0000 0.0000 0.0000 0.0000 0.0000 0.00000.0000 0.0000 0.0000 -0.0000 -0.0000 0.0000 0.0000-0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 -0.0000Columns 27 through 300.0000 -0.0000 -0.0000 0.00000.0000 -0.0000 -0.0000 0.00000.0000 -0.0000 -0.0000 -0.0000-0.0000 0.0000 -0.0000 -0.00000.0000 0.0000 0.0000 -0.00000.0000 0.0000 0.0000 0.00000.0000 -0.0000 0.0000 0.0000输入输出根径图:图 8 增广最小二乘法输入输出根径图辨识过程的参数:图 9 增广最小二乘法辨识过程参数辨识过程中的误差图 10 增广最小二乘法辨识过程中的误差系统输出矩阵和模型输出矩阵的对比:图 11 系统输出矩阵和模型输出矩阵的对比图六、结果分析利用最小二乘法对系统进行辨识,能够在最小误差平方的意义上对实验数据实现最好的拟合。
最小二乘类辨识方法的比较摘要本文系统的探讨了三种最小二乘类辨识方法的原理和性能,结果证明:最小二乘法不适合实时处理,在同等情况下,递推最小二乘的辨识速度较快,但在有色噪声干扰下效果不理想,广义最小二乘法的辨识效果最好,且不受噪声是否有色的影响,但是费时最多。
关键词:辨识方法,辨识速度,辨识效果ABSTRACTThis article system discussed three kinds of least square identification method principle and performance, the results prove that: the least squares method is not suitable for real-time processing, in the same circumstances, recursive least squares identification rate is rapidder, but in colored noise the effect is not ideal, the generalized least squares identification effect is best, and is not affected by noise or colored effects, but the most time-consuming.Key words: identification method, identification speed, effect of identification1 引言系统辨识是一门介于现代控制理论和系统理论的边缘学科.它将现代控制论的平滑、滤波、预测和参数估计理论,以及系统论的系统分析方法和建模思想应用于自然科学、社会科学和工程实践中的各个领域,与各个领域的专业知识相给合,形成了一个个新的交叉学科分支。
1 辨识的对象模型假设有一理想数学模型,它的离散化方程如下式所示:() 1.8(1)0.3(2) 1.2(1)(2)()y k y k y k u k u k e k +-+-=-+-+式中,()e k 是服从正态分布的白噪声)1,0(N ,()k u 为系统输入,()k y 为系统输出。
现在输入信号采用4阶M 序列,其幅值为1。
假设系统的模型阶次是已知的,即1212()(1)(2)(1)(2)()y k a y k a y k bu k b u k e k +-+-=-+-+。
下面采用递推最小二乘参数辨识。
2 递推最小二乘参数辨识方法简单的最小二乘参数辨识一次性方法计算复杂,不能够进行在线辨识,而且所需要的计算存储空间很大,而很多计算都是重复的计算。
为了解决这个问题,并实现在线的实时辨识,引入递推的最小二乘参数辨识。
递推最小二乘参数辨识的整体思想是,最新辨识出来的参数是建立在上次辨识的参数基础上,根据最新得到的辨识数据,对辨识的参数添加了一个参数增量。
下面利用数学语言对递推最小二乘参数辨识方法进行描述。
根据最小二乘原理,用N 次观测数据,得出参数向量θ的最小二乘估计lθˆ1()()T T N N NH H H Y N θ-= (1) 其中,ˆNθ表示根据N 次观测数据所得到的最小二乘值计量,下表N 表示该符号代表N 次观测数据构成的矩阵。
()[(1),(2),...,()]T Y N y y y N = (2)N H =(0).....(1)(0).....(1)(1).....(2)(1).....(2)..(1).....()(1).....()y y n u u n y y n u u n y N y N n u N u N n ----⎡⎤⎢⎥----⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥------⎣⎦(3)然后令1()TN N N P H H -=,且N P 是一方阵,它的维数取决于未知数的个数,而与观测次数无关。
则11111TN N N N P P h h --+++⎡⎤=+⎣⎦ (4) 式中1N h +表示第1N +次观测数据。
利用矩阵反演公式计算(4)式1111111111T T TN N N N N N N N N N N N P P h h P P h I h P h h P ---+++++++⎡⎤⎡⎤=+=-+⎣⎦⎣⎦ (5) 式中11TN N N I h P h ++⎡⎤+⎣⎦是一个标量,其求逆只是一个简单的除法。
令1111TN N N N I h P h γ-+++⎡⎤=+⎣⎦,于是有1111T N N N N N N P I P h h P γ++++⎡⎤=-⎣⎦,则最小二乘估计量ˆN θ的表达式可改写为1ˆ()T N N N P h Y N θ+=,于是第1N +次观测数据所得到的最小二乘值计量为111111ˆˆ(1)(1)T T N N N N N N P h Y N P P h Y N θθ++++++⎡⎤=+=++⎣⎦由(4)式可知111T T TN N N N P P h h +++=- (6)于是111ˆˆˆ(1)T N N N N N K Y N h θθθ+++⎡⎤=++-⎣⎦ (7)111N N N K P h +++= (8)将上述的推导过程总结如下:1111111111ˆˆˆy(1)1T N N N N N N N N TN N N T N N N N K N h P h K h P h P I K h Pθθθ++++++++++⎧⎡⎤=++-⎣⎦⎪⎪=⎨+⎪⎪⎡⎤=-⎣⎦⎩ 3 辨识过程整体上的辨识过程流程图如下图所示:图-1 递推最小二乘参数辨识流程示意图详细步骤如下所示:1 在此选择4阶的M 序列。
这样,M 序列的最大循环周期长度为15(bit )。
首先利用MATLAB 程序生成4阶幅值为1的M 序列和服从正态分布的白噪声序列。
2 根据上述的输入序列,带入待辨识的系统模型中,得到一系列对应的输出信号序列。
然后根据输入和输出序列,组建辨识所需的观测矩阵。
本系统的观测矩阵形式如下:(2)(1)(2)(1)(3)(2)(3)(2)(14)(13)(14)(13)m y y u u y y u u H y y u u --⎡⎤⎢⎥--⎢⎥=⎢⎥⎢⎥--⎣⎦3选取待辨识的参数向量为模极小的数值,选取迭代矩阵P 的初值为极大的矩阵,如20,100.P I σσ==4 计算增益矩阵G(1)()()1()(1)()TP k k G k k P k k φφφ-=+- 其中T ()[(1) ... () (1) ... u() ]q b k y k y k n u k k n φ=------5 将上述的初值和增益矩阵G(k)代入上述的递推最小二乘参数辨识方程组中进行循环计算。
直到计算的结果精度符合要求或者迭代的次数达到最大为止。
4 辨识结果与分析利用matlab 对上述系统进行辨识方针,输入的M 序列如下图所示:图-2 M序列信号图辨识的结果如下图所示:图-3 递推最小二乘参数辨识结果图辨识结果与真实的系统参数对比:对结果的分析:1 利用递推最小二乘参数辨识方法,能够很好的辨识出系统的参数,并且最后收敛稳定。
其实,对于稳定的系统,递推最小二乘算法随着递推次数的增加,所得到的辨识结果将会越来越接近真实值。
但是对于其他系统,则会存在数据饱和的现象,随着递推次数的增加,辨识结果不但不接近真实数值,反而出现发散的情况。
对于这种情况,需要在递推最小二乘参数辨识法的基础上进一步进行修改,得到限定记忆法和加权最小二乘参数辨识法。
2 本次仿真所采用的M序列阶次很小,明显导致了参数仿真得到的递推估计曲线在开始的5秒钟内变化非常剧烈,而且非常不光滑。
5 仿真源程序%利用递推最小二乘法进行参数辨识%%%%%%%%%%产生M序列L=15; %M序列的周围位数y1=1;y2=1;y3=1;y4=0; %四个移位积存器的输出初始值for i=1:L; %开始循环,长度为Lx1=xor(y3,y4);%第一个移位积存器的输入是第3个与第4个移位积存器的输出的“或”x2=y1;%第二个移位积存器的输入是第3个移位积存器的输出x3=y2;%第三个移位积存器的输入是第2个移位积存器的输出x4=y3;%第四个移位积存器的输入是第3个移位积存器的输出y(i)=y4;%取出第四个移位积存器幅值为"0"和"1"的输出信号,if y(i)>0.5,u(i)=-1;%如果M序列的值为"1"时,辨识的输入信号取“-0.03”else u(i)=1;%当M序列的值为"0"时,辨识的输入信号取“0.03”end %小循环结束y1=x1;y2=x2;y3=x3;y4=x4; %为下一次的输入信号做准备end %大循环结束,产生输入信号ufigure(1); stem(u);grid on;title('输入信号')%%%%%%%%%%% 产生白噪声A=6;x0=1;M=255;for k=1:10000x2=A*x0;x1=mod (x2,M);v1=x1/256;v(:,k)=(v1-0.5)*2;x0=x1;v0=v1;endnum=v;k1=k;%%%%%%%%%% 递推最小二乘辨识程序lamt=1;z(2)=0;z(1)=0; %取z的前两个初始值为零for k=3:15; %循环变量从3到15z(k)=-1.5*z(k-1)-0.7*z(k-2)+u(k-1)+0.5*u(k-2)+0*num(1,k);%给出理想辨识输出采样信号endc0=[0.001 0.001 0.001 0.001]';%直接给出被辨识参数的初始值,即一个充分小的实向量p0=10^3*eye(4,4);%直接给出协方差阵初始状态P0,即一个充分大的实数单位矩阵E=0.000000005; %相对误差E=0.000000005c=[c0,zeros(4,14)]; %被辨识参数矩阵的初始值及大小e=zeros(4,15); %相对误差的初始值及大小for k=3:15;h1=[-z(k-1),-z(k-2),u(k-1),u(k-2)]';x=h1'*p0*h1+1*lamt;x1=inv(x); %开始求K(k)k1=p0*h1*x1; %求出K的值d1=z(k)-h1'*c0;c1=c0+k1*d1; %求被辨识参数cp1=1/lamt*(eye(4)-k1*h1')*p0;e1=c1-c0; %求参数当前值与上一次的值的差值e2=e1./c0; %求参数的相对变化e(:,k)=e2; %当前相对变化列向量加入误差矩阵的最后一列c(:,k)=c1; %把辨识参数c列向量加入辨识参数矩阵c0=c1; %新获得的参数作为下一次递推的旧参数p0=p1; %给下次用if e2<=Ebreak; %若参数收敛满足要求,终止计算endend%% %%%%%%%%%得到辨识结果,并作图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;plot(i,a1,'r:',i,a2,'b-.',i,b1,'k--',i,b2,'g','LineWidth',2)legend('a1','a2','b1','b2');title('递推最小二乘参数辨识')(在得到辨识结果之后,对辨识结果图进行坐标注视和图形的修改。
记得到报告中的结果图。
)。