1. 1、本文档共41页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
系统辨识

实 验 报 告课程名称:系统辨识院 系:信息学院自动化系班 级:自实1001学生姓名:马耀元学生学号: 2010014033指导教师:李宏光日 期:2012/12/16前言本学期系统辨识课程的实验共有四个。分别有矩阵相乘、矩阵求逆、伪随机m序列产生、系统模型输出序列产生,以及最小二乘成批算法和最小二乘递推算法分别来求系统模型参数的程序。报告中另外加写了白噪声序列产生程序的三种方法、任意m序列产生,以及矩阵转置、矩阵加减、随机矩阵生成、任意文件读取任意矩阵、任意输入数据类型然后自动查找有用数据并生成矩阵,以及循环变动屏幕颜色、播放自定义音律等其他程序函数,总共有32个函数,其中7个函数已能实现四个实验所需的所有功能,其他均是为完善程序和使程序在任意情况下灵活使用,以及确保程序反复运行、任意操作、均保持健壮性、力求程序保持完美、界面友好,而不仅局限于课程要求。本程序是用visual studio 2010所写,在名为“系统辨识”的工程文件里面完成。其中有一个名为“myy”类文件,其头文件里包含所有的成员函数,以及所需要作为通讯接口的公有变量。而在“系统辨识”的cpp文件中,作为程序入口的main函数里,调用“myy.h”的诸多函数,而每个函数几乎都有公用的接口变量,进行不同函数间的通信,进而实现各式各样的功能。本程序一共提供16个基本功能,当然可以自定义其他函数调用方案,进而实现其他功能。而且程序可以循环执行,不用退出,所有函数的结果都会保存在相应文件中,不止在控制台输出。最主要的是,不会因为任何操作失误而有中断退出。而且可以选择提示语言的种类,有汉语和英语两种。每执行一功能后,屏幕会更换一个漂亮的颜色,而且有可以打开或关闭音乐的功能函数。程序概况程序共有16个供选择的功能。分别为:1:手工输入一个矩阵并求矩阵转置、行列式的值、矩阵的逆或部分逆变换的结果。2:手工输入两个矩阵并求矩阵相加、相减、相乘的结果。3:手工输入两个矩阵自动求上述两个功能的所有函数的结果.4,5,6是随机矩阵操作,与前3个功能唯一不同的是,产生矩阵只需要输入矩阵的行和列,以及矩阵元素的取值范围,和元素是浮点型还是整形,即一共需确定四个参数,即可获得矩阵,然后执行所有相关操作。7,8,9是从文件中读取矩阵,并执行所有矩阵操作函数。文件可以是任意的,因为读文件函数的方法是:利用读字节来判断当前字符是数字或是负号,若是则光标退回,并读一个浮点型数据,矩阵列数加1,若遇到换行符或封号,则矩阵的行数加1,矩阵列数清0.若是其他字符,则跳过去,这样就可以实现任意文件读取矩阵的功能了。当然,作业没有要求这样做,因为我们需要解决的不是特殊问题,没人会那么无聊,故意把文件弄乱,然后测试你的程序,但是,出于兴趣,我还是选择了这么做。在此函数的基础上,我另外写了一个简单的从文件读数据的函数。10:m序列产生程序。执行程序时,会提问如果不懂m序列产生机制,则打开一个help文件,里边告诉m序列产生原理,以及常用的本原多项式。然后会再提示是否懂不懂,如果不懂,则又打开一个文件,是一个m序列产生的例子,即每一步都列出来,让读者明白其原理。接着,可以输入本原多项式,我们可以任意输入不法字符,但是其只提取有用的信息,即1和0,其他忽略。然后输入初始序列,同样随意输入,但是输入的有效个数必须和本原多项式相等或大于,否则提示继续输入。但是,程序本身不会奔溃或者出错。唯一可能出现的是,m序列可能不成功,因为本原多项式是输出一个合理的m序列的关键。11:白噪声产生程序。程序提供了3种方法产生白噪声序列。分别为:1:乘同余法2:迭代取中法 3:混同取余法。同时,我又把这些序列做了方差处理,即近似标准的高斯白噪声序列。并且给出了每个算法的最佳参数,当然也提供自定义输入参数,但是效果不太好。诸多参数均是从相关文献里查取的,是大家公认的理想参数。我们可以输出任意长度、并且序列不同的白噪声序列,和老师的对比,发现效果类似,有时会更好,当然也会差,因为模型参数辨识的输入信号不同,结果也会有所差异。12,13:最小二乘成批算法。12为多次求平均法,即把500个数据分10次完成,最后把每次的结果求平均,原因是想避免大矩阵相乘,但效果不佳,因为算法本来就是要很多数据,然后逐渐收敛才能获得参数,所以12的辨识结果不太好。13则是一次利用500个数据辨识的结果,它虽然用了大矩阵相乘,但是辨识效果很好。14,15:最小二乘递推算法。14为完全调用函数方法,即不直接构造矩阵,均是从终端文件中构造并读取,然后操作,再保存到终端文件中,这样是为了节省计算机内存,但是速度特别慢。主要是我想多利用我自己编写的函数,不然,用到的只有两个,即相乘和求逆了。此方法主要是一直针对文件,而不是计算机内存。15为直接构造矩阵法,即在

文档评论(0)

allap + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档