中的数据可明确获知,在相同的仿真实验条件下,相较于现有的参 数辨识技术而言,本实施例通过将改进的粒子群算法和复合评价策略相结合,将辨识精度 提升了接近一个数量级,大幅度的提高了参数辨识精度,且平均辨识误差小于8%,同时 90%以上的辨识误差小于5%,这充分证明了本实施例的方法有效的解决了局部极小值的 问题。
[0106] 在对上述115组算例采用不同的队进行复合评价的情况下,各参数的归一化误差 统计平均值如下述表2。
[0107]表2
[0108]
[0110] 表2中的数据表明,随着在复合评价过程中所使用的激励响应数据组的数量的增 加,辨识精度增加了,但是辨识精度增加的速率较减缓。
[0111]由上述的仿真实验结果可知,在本实施例中,复合评价过程的计算耗费约为迭代 计算过程中的1. 2代计算耗费,增加的计算量约2. 4%,从参数辨识效果来看,所增加的计 算耗费是值得的。
[0112] 实施例三、复杂对象的参数辨识装置。该装置的结构如图7所示。
[0113] 图7中,本实施例的复杂对象的参数辨识装置主要包括:初始设置模块700、迭代 模块710、评价模块720以及判断模块730。
[0114] 初始设置模块700主要适于为待辨识参数组赋予不同组的参数值,以初始设置各 粒子的位置。
[0115] 具体的,本实施例中的待辨识参数组包括多个待辨识参数(如两个或者三个或者 四个等),如待辨识参数组包括待辨识目标的质量以及质心位置(三维坐标值)。需要说明 的是,在实际应用中,待辨识参数组所包含的待辨识参数的数量也可以多余四个。本实施例 不限制待辨识参数组所包含的待辨识参数的具体内容。
[0116] 初始设置模块700可以根据一定的数值范围为待辨识参数组中的各个待辨识参 数多次赋予参数值,从而使所有的粒子对应有不同参数值,即不同的粒子的位置并不相同。
[0117] 初始设置模块700可以采用随机生成参数值的方式为待辨识参数组赋予不同组 的参数值,如初始设置模块700在质量的预定数值范围内随机生成一个参数值,并从质心 位置的预定数值范围内随机生成三个参数值,初始设置模块700将这四个参数值赋予待辨 识参数组中的四个待辨识参数,从而初始设置模块700对一个粒子的位置进行了初始化设 置;上述随机生成并赋值的过程被初始设置模块700多次重复执行后,初始设置模块700对 多个粒子的位置分别进行了初始化设置。本实施例中的粒子的数量通常为数百个,粒子的 数量也可以更多。本实施例不限制参数辨识过程中所使用的粒子的数量。
[0118] 在初始设置模块700对各粒子的位置进行初始化设置的同时,还应为每一个粒子 设置初始速度,即初始设置模块700初始化各粒子的速度。初始设置模块700可采用现有 的多种方法对粒子的位置和速度进行初始化设置,本实施例不限制初始设置模块700初始 化粒子的位置和速度的具体实现方式。
[0119] 迭代模块710主要适于计算各粒子在迭代过程中的位置,并根据各粒子的位置利 用各粒子各自对应的一个激励响应数据组确定具有邻域历史最优位置的粒子。
[0120] 具体的,迭代模块710例可以利用粒子群算法(如改进的粒子群算法)来实现上 述迭代步骤。值得注意的是,迭代模块710也可以采用其他算法来实现该迭代步骤;且无论 是采用粒子群算法还是采用其他算法,迭代模块710都不需要对局部极小值与全局极小值 进行区分,迭代模块710只要能够使筛选出的粒子的邻域历史最优位置集合中包含有全局 极小值即可。
[0121] 迭代模块710利用改进的粒子群算法来实现上述迭代步骤,以获得具有邻域历史 最优位置的粒子的一个具体的例子如上述实施例一中针对公式(1)至公式(4)的描述以及 实施例二中的相关描述,在此不再重复说明。
[0122] 在迭代过程中,一些粒子在历次迭代过程中,其误差评价的结果很可能总是较差 (即误差较大),这样的粒子可以称为表现较差的粒子;而一些粒子在历次迭代过程中,其 误差评价的结果可能总是较好(即误差较小),这样的粒子可以称为表现较好的粒子。
[0123] 针对表现较差的粒子,迭代模块710应在迭代过程中将其转移到表现较好的粒子 的附近,具体的例子如上述实施例一中针对公式(5)的描述以及实施例二中的相关描述, 在此不再重复说明。
[0124] 还有,迭代模块710可以对粒子的邻域历史最优位置进行排序,通常情况下,迭代 模块710可以根据当前记录的粒子的邻域历史最优位置信息按照邻域历史最优位置由优 到劣(即误差由小到大)的顺序对粒子的邻域历史最优位置进行排序。
[0125] 评价模块720主要适于按照邻域历史最优位置从优到劣的顺序从未被选取过的 具有邻域历史最优位置的粒子中顺序选取多个粒子,将不同的多个激励响应数据组均作为 筛选评价序列分别对当前选取的多个粒子的邻域历史最优位置进行误差评价。
[0126] 具体的,在迭代模块710已经对粒子的邻域历史最优位置进行了排序的情况下:
[0127] 首先,评价模块720从排好的序列中的未被选取过的粒子中选取预定数量的粒子 (如选取Nf个粒子);其次,评价模块720将多个不同的激励响应数据组分别作为筛选评价 序列,利用上述公式(7)对当前选取的各粒子的邻域历史最优位置分别进行误差评价。
[0128] 需要特别说明的是,评价模块720对不同粒子的邻域历史最优位置进行误差评价 所使用的激励响应数据组应该是相同的;也就是说,评价模块720使用相同的筛选评价序 列对不同粒子的邻域历史最优位置进行误差计算。另外,评价模块720所使用的多个不同 的激励响应数据组是基于多刚体系统中的刚体(如机械臂)的不同构型的激励响应数据 组,如其中第一个激励响应数据组是基于驱动机械臂向左旋转而产生的激励响应数据组, 第二个激励响应数据组是基于驱动机械臂向右旋转而产生的激励响应数据组,第三个激励 响应数据是基于驱动机械臂第1臂节转动而产生的激励响应数据组等等。不同的激励响应 数据组对应的刚体(如机械臂)的构型应具有较大的差异,即筛选评价序列应具有较大的 差异。
[0129] 判断模块730主要适于根据误差评价的结果判断当前选取的粒子中是否存在满 足预设误差要求的粒子,如果存在,则将满足预设误差要求的粒子的邻域历史最优位置所 表示的参数值作为参数辨识结果,否则,在未被选取的粒子达到预定数量时,触发评价模块 继续执行选取和误差评价的操作,而在未被选取的粒子达不到预定数量时,触发初始设置 模块执行初始设置操作。
[0130] 具体的,在评价模块720利用上述公式(7)计算出的多个匕中,如果min(En)满足 预设误差要求,则判断模块730可以将min(En)所对应的粒子的邻域历史最优位置所表 示的参数值作为参数辨识结果;如果min(En)不满足预设误差要求,且排好序的粒子的邻域 历史最优位置序列中未被选取的粒子数量不小于Nf,则判断模块730触发评价模块720,以 便于评价模块720继续从排好序的粒子的邻域历史最优位置序列中继续选取后续的Nf个 粒子;如果min(En)不满足预设误差要求,且排好序的粒子的邻域历史最优位置序列中未被 选取的粒子数量不足Nf个,则判断模块730触发初始设置模块700,以使初始设置模块700 改变为各粒子初始设置的位置和速度,并使迭代模块710利用重新设置的各粒子的位置和 速度进行迭代。
[0131] 在此提供的算法以及显示不与任何特定计算机、虚拟系统或者其它设备固有相 关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所 要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用 各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露 本发明的最佳实施方式。
[0132] 在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施 例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构 和技术,以便不模糊对本说明书的理解。
[0133] 类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在 上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施 例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保 护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面 的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此, 遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身 都作为本发明的单独实施例。
[0134] 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地 改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单 元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或 子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任 何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开 的任何方法或者设备的所有过程或