哈工大系统辨识实验一教材
- 格式:docx
- 大小:110.44 KB
- 文档页数:13
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 错误!未找到引用源。
系统辨识及自适应控制一、课程说明课程编号:090148Z10课程名称:系统辨识及自适应控制/ System Identification and Adaptive Control课程类别:专业课学时/学分: 32/2(其中实验学时:6 )先修课程:自动控制理论、线性代数适应专业:自动化、测控技术与仪器、智能科学与技术、电气工程及其自动化教材、教学参考书:1.杨承志、孙棣华等.系统辨识与自适应控制.重庆:重庆出版社.2003年;2.徐湘元.自适应控制理论与应用.北京:电子工业出版社.2007年;3.庞中华,崔红.系统辨识与自适应控MATLAB 仿真.北京:北京航空航天大学出版社.2009年二、课程设置的目的意义系统辨识与自适应控制是电气信息类专业大学本科高年级学生的一门专业选修课程,是现代控制理论的一个重要组成部分。
通过该课程的学习,帮助学生了解系统辨识与自适应控制的基本原理和算法,掌握系统数学模型的建立方法及自适应控制系统的设计方法和技巧,为培养学生成为控制学科的高级工程技术人才奠定基础。
三、课程的基本要求知识:掌握系统辨识与自适应控制的基本概念和基本原理,最小二乘参数辨识方法,最小方差自校正控制方法,广义最小方差自校正控制方法,极点配置自校正控制方法,自校正PID控制方法,自校正内膜控制方法,自校正模型算法控制方法,基于Lyapunov稳定性理论的模型参考自适应控制方法等。
能力:从实际应用的角度出发,针对具有一定程度不确定性的被控对象,能够运用上述方法和知识设计一般的自适应控制系统,满足控制系统的基本控制要求。
素质:拓展学生在控制工程领域的设计思路,丰富学生对控制系统的设计方法;通过对不确定性被控对象特点的分析、难于控制问题的解决培养学生发现问题、分析问题、解决问题的科研素养。
四、教学内容、重点难点及教学设计注:实践包括实验、上机等五、实践教学内容和基本要求通过实验,帮助学生巩固、加深理解课堂所学基本理论知识,在Matlab/SimuLink仿真计算平台中实现系统模型参数辨识和含噪声干扰系统的自六、考核方式及成绩评定1、平时成绩占40%:包括作业、上机实验考核以及平时上课考核;七、大纲主撰人:大纲审核人:。
模式识别实验报告本次报告选做第一个实验,实验报告如下:1 实验要求构造1个三层神经网络,输出节点数1个,即多输入单输出型结构,训练它用来将表中的第一类样本和第二类样本分开。
采用逐个样本修正的BP算法,设隐层节点数为4,学习效率η=0.1,惯性系数α=0.0;训练控制总的迭代次数N=100000;训练控制误差:e=0.3。
在采用0~1内均匀分布随机数初始化所有权值。
对1)分析学习效率η,惯性系数α;总的迭代次数N;训练控制误差e、初始化权值以及隐层节点数对网络性能的影响。
要求绘出学习曲线----训练误差与迭代次数的关系曲线。
并将得到的网络对训练样本分类,给出错误率。
采用批处理BP算法重复1)。
比较两者结果。
表1 神经网络用于模式识别数据(X1、X2、X3是样本的特征)2 BP 网络的构建三层前馈神经网络示意图,见图1.图1三层前馈神经网络①网络初始化,用一组随机数对网络赋初始权值,设置学习步长η、允许误差ε、网络结构(即网络层数L 和每层节点数n l );②为网络提供一组学习样本; ③对每个学习样本p 循环a .逐层正向计算网络各节点的输入和输出;b .计算第p 个样本的输出的误差Ep 和网络的总误差E ;c .当E 小于允许误差ε或者达到指定的迭代次数时,学习过程结束,否则,进行误差反向传播。
d .反向逐层计算网络各节点误差)(l jp δ如果l f 取为S 型函数,即xl e x f -+=11)(,则 对于输出层))(1()()()()(l jp jdp l jp l jp l jp O y O O --=δ 对于隐含层∑+-=)1()()()()()1(l kj l jp l jp l jp l jp w O O δδe .修正网络连接权值)1()()()1(-+=+l ip l jp ij ij O k W k W ηδ式中,k 为学习次数,η为学习因子。
η取值越大,每次权值的改变越剧烈,可能导致学习过程振荡,因此,为了使学习因子的取值足够大,又不至产生振荡,通常在权值修正公式中加入一个附加动量法。
(5)重新编写一个setup.s,然后将其中的显示的信息改为:“Now we are in SETUP”。
再次编译,重新用make命令生成BootImage,结合提示信息和makefile文修改build.c,具体将setup.s改动如下:mov cx,#27mov bx,#0x0007 ! page 0, attribute 7 (normal)mov bp,#msg1mov ax,#0x1301 ! write string, move cursorint 0x10dieLoop:j dieLoopmsg1:.byte 13,10,13,10.ascii "Now we are in SETUP".byte 13,10,13,10将build.c改动如下:if(strcmp("none",argv[3]) == 0)//添加判断return 0;if ((id=open(argv[3],O_RDONLY,0))<0)die("Unable to open 'system'");// if (read(id,buf,GCC_HEADER) != GCC_HEADER)// die("Unable to read header of 'system'");// if (((long *) buf)[5] != 0)// die("Non-GCC header of 'system'");for (i=0 ; (c=read(id,buf,sizeof buf))>0 ; i+=c )if (write(1,buf,c)!=c)die("Write call failed");close(id);fprintf(stderr,"System is %d bytes.\n",i);if (i > SYS_SIZE*16)die("System is too big");return(0);(6)验证:用make是否能成功生成BootImage,运行run命令验证运行结果。
(5)重新编写一个setup.s,然后将其中的显示的信息改为:“Now we are in SETUP”。
再次编译,重新用make命令生成BootImage,结合提示信息和makefile文修改build.c,具体将setup.s改动如下:mov cx,#27mov bx,#0x0007 ! page 0, attribute 7 (normal)mov bp,#msg1mov ax,#0x1301 ! write string, move cursorint 0x10dieLoop:j dieLoopmsg1:.byte 13,10,13,10.ascii "Now we are in SETUP".byte 13,10,13,10将build.c改动如下:if(strcmp("none",argv[3]) == 0)//添加判断return 0;if ((id=open(argv[3],O_RDONLY,0))<0)die("Unable to open 'system'");// if (read(id,buf,GCC_HEADER) != GCC_HEADER)// die("Unable to read header of 'system'");// if (((long *) buf)[5] != 0)// die("Non-GCC header of 'system'");for (i=0 ; (c=read(id,buf,sizeof buf))>0 ; i+=c )if (write(1,buf,c)!=c)die("Write call failed");close(id);fprintf(stderr,"System is %d bytes.\n",i);if (i > SYS_SIZE*16)die("System is too big");return(0);(6)验证:用make是否能成功生成BootImage,运行run命令验证运行结果。
《系统辨识基础》课程大纲■课程编号:40250203■课程序号:0■课程名称:系统辨识基础Fundamentals of System Identification■任课教师:萧德云■学时:总学时48,3学时/周■学分:3学分■教材:方崇智萧德云,《过程辨识》,清华大学出版社,1988■教学要求:①掌握系统辨识的基本概念、基本知识、理论和方法。
②通过实验(实验一、二)和作业加深对辨识理论和方法的理解。
■成绩评定:①期末考试(主要考查基本概念、基本知识和基本理论),占80%。
②完成教学实验(实验一、二)和课程作业,占20%。
■教学内容:Part I 理论教学(课内48学时)第1章辨识的一些基本概念(3讲)内容:系统和模型概念、建模方法、辨识定义、辨识问题的表达形式、辨识算法的基本原理、误差准则、辨识的内容和步骤、辨识的应用。
参考书:《过程辨识》§1.1-§1.8第2章随机信号的描述与分析(3讲)内容:随机过程的基本知识、相关函数、协方差函数、谱密度函数、线性过程在随机输入下的响应、白噪声及其产生方法、M序列及其性质。
参考书:《过程辨识》§2.1-§2.3,§2.5-§2.6第3章过程的数学描述(1讲)内容:连续系统的输入输出模型、离散系统的输入输出模型、数学模型之间的等价变换、噪声模型及其分类。
参考书:《过程辨识》§3.1,§3.3-§3.4第4章经典的辨识方法(4讲)内容:Levy法、相关分析法、实验一辅导。
参考书:《过程辨识》§4.1,§4.4-§4.5第5章最小二乘参数辨识方法(7讲)内容:最小二乘法的基本概念、最小二乘问题的提法、最小二乘问题的解、最小二乘参数估计的收敛性、最小二乘参数估计的几何解析、最小二乘参数估计的统计性质、最小二乘参数估计的递推算法、最小二乘递推算法的几种变形。
一、实验目的1. 理解系统辨识的基本概念和原理。
2. 掌握递推最小二乘算法在系统辨识中的应用。
3. 通过实验,验证算法的有效性,并分析参数估计误差。
二、实验原理系统辨识是利用系统输入输出数据,对系统模型进行估计和识别的过程。
在本实验中,我们采用递推最小二乘算法对系统进行辨识。
递推最小二乘算法是一种参数估计方法,其基本思想是利用当前观测值对系统参数进行修正,使参数估计值与实际值之间的误差最小。
递推最小二乘算法具有计算简单、收敛速度快等优点。
三、实验设备1. 电脑一台,装有MATLAB软件。
2. 系统辨识实验模块。
四、实验步骤1. 打开MATLAB软件,运行系统辨识实验模块。
2. 在模块中输入已知的系数a1、a2、b1、b2。
3. 生成输入序列u(t)和噪声序列v(t)。
4. 将输入序列u(t)和噪声序列v(t)加入系统,产生输出序列y(t)。
5. 利用递推最小二乘算法对系统参数进行辨识。
6. 将得到的参数估计值代入公式计算参数估计误差。
7. 仿真出参数估计误差随时间的变化曲线。
五、实验结果与分析1. 实验结果根据实验步骤,我们得到了参数估计值和参数估计误差随时间的变化曲线。
2. 结果分析(1)参数估计值:通过递推最小二乘算法,我们得到了系统参数的估计值。
这些估计值与实际参数存在一定的误差,这是由于噪声和系统模型的不确定性所导致的。
(2)参数估计误差:从参数估计误差随时间的变化曲线可以看出,递推最小二乘算法在短时间内就能使参数估计误差达到较低水平。
这说明递推最小二乘算法具有较好的收敛性能。
(3)参数估计误差曲线:在实验过程中,我们发现参数估计误差曲线在初期变化较快,随后逐渐趋于平稳。
这表明系统辨识过程在初期具有较高的灵敏度,但随着时间的推移,参数估计误差逐渐减小,系统辨识过程逐渐稳定。
六、实验结论1. 递推最小二乘算法在系统辨识中具有较好的收敛性能,能够快速、准确地估计系统参数。
2. 实验结果表明,递推最小二乘算法能够有效减小参数估计误差,提高系统辨识精度。
系统辨识考点1、辨识定义:是在输入和输出数据的基础上,从一组给定的模型类中,确定一个与所测系统等价的模型。
2、系统辨识步骤 辨识目的及先验知识试验设计输入输出数据采集、处理模型结构选取与辨识模型参数辨识模型验证合格?最终模型YN3、递推最小二乘辨识模型4、广义最小二乘和增广最小二乘的区别广义最小二乘法是对系统过程模型的输入、输出和过程噪声加以变换(滤波)变成一般最小二乘法的标准格式,再用一般最小二乘法()1111ˆˆˆT N N N N N N y ++++=+-θθK φθ()111111T N N N N N N -++++=+K P φφP φ111TN N N N N+++=-P P K φP对系统的参数进行估计。
增广矩阵法就是使系统模型变成符合一般最小二乘法的标准格式的,并将模型参数和噪声模型参数同时估计出来的方法。
增广矩阵法用近似估计的噪声序列代替白噪声序列。
这和广义最小二乘法的不同点在于:后者噪声模型参数的估计和系统模型参数的估计是交替地进行的。
5、数据饱和的原因和解决方法① 参数缓慢变化(易产生数据饱和现象)解决方法:渐消记忆最小二乘、限定记忆最小二乘② 参数突变但不频繁?????6、自适应系统定义、分类自适应控制系统是一种特殊形式的非线性控制系统。
系统本身的特性(结构和参数)、环境及干扰的特性存在各种不确定性。
在系统运行期间,系统自身能在线地积累与实行有效控制有关的信息,并修正系统结构的有关参数和控制作用,使系统处于所要求的(接近最优的)状态。
⎧⎪⎪⎧⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎨⎪⎩⎪⎪⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎩⎩增益列表补偿法最小方差控制算法预测控制算法随机自适应控制系统极点配置控制算法控制算法参数最优化设计方法模型参考自适应控制系统李亚普诺夫稳定性理论设计方法波波夫超稳定性理论设计方法PID。
实验1 白噪声和M序列的产生
实验报告
哈尔滨工业大学
航天学院控制科学与工程系
专业:自动化
班级:110410420
姓名:
日期:2014 年10 月12 日
1.实验题目:白噪声和M序列的产生
3、M 序列生成原理
用移位寄存器产生M 序列的简化框图如下图所示。
该图表示一个由4个双稳态触发器顺序连接而成的4级移位寄存器,它带有一个反馈通道。
当移位脉冲来到时,每级触发器的状态移到下一级触发器中,而反馈通道按模2加法规则反馈到第一级的输入端。
1、生成均匀分布随机序列
(1)利用混合同余法生成[0, 1]区间上符合均匀分布的随机序列,并计算该序列的均值和方差,与理论值进行对比分析。
要求序列长度为1200,推荐参数为a=65539,M=2147483647,0<x 0<M 。
(2)将[0, 1]区间分为不重叠的等长的10个子区间,绘制该随机序列落在每个子区间的频率曲线图,辅助验证该序列的均匀性。
(3)对上述随机序列进行独立性检验。
(该部分为选作内容)
2、生成高斯白噪声
利用上一步产生的均匀分布随机序列,令n=12,生成服从N(0,1)的白噪声,序列长度为100,并绘制曲线。
3、生成M 序列
M 序列的循环周期取为63126=-=P N ,时钟节拍Sec 1=∆t ,幅度1=a ,逻辑“0”为a ,逻辑“1”为-a ,特征多项式65()F s s s =⊕。
生成M 序列的结构图如下所示。
x(j+1)=x(j);
end
x(1)=temp;
end
for i=1:Np
if(y(i)==0)
y(i)=a;
else
y(i)=-a;
end
end
figure(5)
stairs(y);
ylim([-1.5,1.5]);
7.实验结果及分析
实验1.1
程序运行计算出序列的均值:mean_r =0.4897,与理论值0.5很接近;序列的方差var_r =0.0824,与理论值1/12很接近
使用混合同余法得到生成的0-1均布随机序列如下所示:
得到的该随机序列落在10个子区间的频率曲线图如下:
从上图可以发现用混合同余法得到的随机序列平均分布性较好。
实验1.2
生成的白噪声信号如下图所示:
生成的白噪声的频率统计图如下:
从上图中,我们可以看到,生成的白噪声信号基本服从N(0,1)分布
实验1.3
生成的M序列如下图所示:
验证M序列性质:
均衡特性:m序列每一周期中 1 的个数比0 的个数多 1 个(-a和a的个数差1)测试程序:
a=sum(y==0)
b=sum(y==1)
得到结果:a =31
b =32
结论:从测试结果看每一周期中一的个数比0的个数多1个,与结论相符。
游程特性:m序列的一个周期(p=2n-1)中,游程总数为2n-1。
其中长度为k的游程个数占游程总数的1/2k=2-k,而且,在长度为k游程中,连1游程与连0 游程各占一半,其中1≤k≤(n-2)。
长为(n-1)的游程是连0 游程,长为n 的游程是连 1 游程。
测试程序:
%游程性质测试程序
zero=1;one=1;
M_zero=zeros(1,16);
M_one=zeros(1,16);
for i=1:63
if(i<=62)
if(y(i)==1)
if(y(i)~=y(i+1))
M_one(one)= M_one(one)+1;
one=one+1;
else
M_one(one)= M_one(one)+1;
end
else
if(y(i)~=y(i+1))
M_zero(zero)=M_zero(zero)+1;
zero=zero+1;
else
M_zero(zero)=M_zero(zero)+1;
end
end
else
if(y(i)==1)
if(y(i)==y(1))
one=one+1;
M_one(one)=M_one(one)+1;
end
else
if(y(i)==y(1))
zero=zero+1;
M_zero(zero)=M_zero(zero)+1;
end
end
end
end
display(M_zero);
display(M_one);
得到的M序列0,1游程结果分别如下所示:
M_zero =
1 2 1 1 1 5 4 3 1 2 1 3 2 2 1 1
M_one =
2 2 1 1 6 1 2 1 1 4 1
3 1 1 2 2
发现游程特性符合结果。
移位相加特性:m序列和它的位移序列模二相加后所得序列仍是该m序列的某个位移序列。
测试程序:
%移位相加特性验证
M1=circshift(y',3)' %将所产生的M序列向左移位3
M2=xor(y,M1) %将所产生的移位序列与原M序列模2相加
flag=0;
i=1;
while 1
if(circshift(M2',i)'==y)
flag=1;
break;
end
i=i+1;
end
display(flag) %显示标志位
display(i) %显示移位次数
实验结果如下所示:
flag = 1
i =29
说明M序列移位29次后与相加后的M序列相等。
8.结论
本次试验主要实践了混合同余法,正态分布随机数产生方法,M序列生成原理,生成均匀分布随机序列,生成高斯白噪声,生成M序列。
使用混合同余法生成了服从N(0,1)分布的随机序列,同时根据独立同分布中心极限定理,得到了高斯白噪声。
在实验1-3中使用6个移位寄存器和反馈通道生成了周期为63的M序列,同时验证了M序列的相关性质,从结果看,完全成立。
本次实验主要是对M序列和其相关性质有了更深入的了解,同时也进一步熟悉了MATLAB,收获颇多。