本发明提供一种基于代理模型的modelica模型参数优化方法,它属于多领域物理系统仿真优化领域,涉及一种多领统一建模语言即modelica语言(以下简称modelica)模型参数优化方法。
背景技术:
modelica是国际仿真界于1997年提出的一种多领域统一建模语言,被广泛应用于多领域物理系统的建模仿真。建模仿真的最终目的是实现优化设计,因此仿真优化伴随着建模仿真技术一起出现。仿真优化的核心环节是在满足约束条件下,采用优化搜索算法寻找一组模型输入参数,使模型某个(某些)仿真输出性能达到最优,即对模型参数进行优化。
吴忠义.基于modelica语言的多领域模型仿真优化研究.系统仿真学报,2009.21(12):3748—3752中介绍了modelica模型的参数优化过程中的优化建模和求解技术,但求解过程基于大量模型仿真计算,求解过程计算量大,难以适应大型模型的参数优化。
技术实现要素:
(一)目的
本发明的目的在于提供了一种实用高效的modelica模型参数优化方法,以改善目前modelica模型参数优化中求解过程计算量大的问题。在优化建模之后,仿真优化过程中先通过较少次数的modelica模型仿真计算构建代理模型,然后利用代理模型参与复杂的优化迭代过程,并通过动态更新减小代理模型与modelica模型的误差,最终得到优化结果。
(二)技术方案
为实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现:
一种基于代理模型的modelica模型参数优化方法,包括建立优化模型、构建代理模型、基于代理模型的优化迭代计算、代理模型动态更新四部分。
所述“建立优化模型”,其做法是以可视化界面实现启发式优化建模。包括选择设计变量、选择优化目标、约束设置、目标函数设置、优化算法设置。
所述“构建代理模型”,其做法是利用一定次数的模型仿真计算构建基于rbf(radialbasisfunction)径向基神经网络(以下简称径向基神经网络)的代理模型,其目的是将代理模型作为modelica模型的近似模型,参与后续计算。
所述“基于代理模型的优化迭代计算”,其做法是采用遗传算法根据设置的约束和目标函数,进行优化迭代计算,其中迭代计算所需仿真结果由代理模型计算得出。
所述“代理模型动态更新”,其做法是根据当前代理模型计算得到满足约束的最优参数组合与此参数组合对应的modelica模型实际仿真计算结果更新当前代理模型。其目的是减少代理模型与modelica模型误差。
本发明一种基于代理模型的modelica模型参数优化方法,包括以下步骤:
步骤1、编译modelica模型并获取模型参数、变量信息;
步骤2、优化建模;
步骤3、生成采样点;
步骤4、对步骤3中生成的所有参数组合逐一进行仿真计算;
步骤5、分析步骤4的仿真计算结果;
步骤6、构建代理模型;
步骤7、利用步骤6中构建的代理模型代替modelica模型进行优化迭代,找到最优参数;
步骤8、将步骤7中得到的最优参数进行仿真计算,如果仿真计算结果与步骤6中构建的代理模型输出结果误差小于设定值,则执行步骤10,否则执行步骤9;
步骤9、利用步骤8中仿真计算结果动态更新步骤6生成的代理模型,然后执行步骤7;
步骤10、步骤7计算得到的最优参数为最终优化结果,参数优化结束。
其中,在步骤1中所述的“参数”,是指在modelica模型中用关键词“parameter”限定的参数,在仿真开始前需要进行赋值,是模型仿真计算依赖的数据;参数优化过程中的“设计变量”即需要调整的数值,均属于参数。
其中,在步骤1中所述的“变量”,是指在modelica模型中无关键词“parameter”限定的变量;变量的值是根据参数和模型中等式仿真计算得到;参数优化过程中的“优化目标”均属于变量。
其中,在步骤2中所述的“优化建模”,其做法是根据步骤1中获得的参数和变量信息,选择需要优化的参数即设计变量,并设参数值的可选区间,选择合适变量作为优化目标,并设置目标函数;目标函数为变量对应的:最大超调量、上升时间、调节时间、稳定值中一项或几项的组合。
其中,在步骤3中所述的“生成采样点”,其做法是根据拉丁超立方采样、网格采样等采样方法,在步骤2中设置的参数区间中生成一定数量的参数组合。
其中,在步骤5中所述的“分析步骤4的仿真计算结果”,其做法是从仿真结果曲线图中自动分析得出最大超调量、上升时间、调节时间、稳定值数据;其目的是将仿真结果根据进行量化,为步骤6提供数据。
其中,在步骤6中所述的“构建代理模型”,其做法是将步骤3中生成的采样点信息和步骤5中对应的仿真结果信息作为学习样本,构建径向基神经网络作为代理模型;径向基神经网络的输入为参数点,输出为参数对应的仿真结果,隐含层的传递函数为高斯函数:
其中,在步骤7中所述的“优化迭代”,其做法是基于遗传方法和代理模型进行优化迭代;包括初始化种群、计算适应度、终止判断、选择、交叉、变异;其中,每一个个体包含一组参数组合、参数对应的仿真结果以及计算得到的适应度;多个个体构成了种群;其中,“计算适应度”的实现方法是将每个个体代表的参数值输入到代理模型中,由代理模型计算得到参数对应的仿真结果,代理模型的输出结果为在步骤2中设置的调节时间、最大超调量等值;将种群中所有个体的调节时间、最大超调量等结果分别按优劣分别量化,然后将每个个体的各项量化结果加权聚合,得到个体的适应度。
其中,在步骤9中所述的“动态更新步骤6生成的代理模型”,其意义是因为在步骤6中得到的代理模型,即径向基神经网络是modelica模型的近似模型,由于代理模型与modelica模型之间误差的存在,使步骤8中的优化结果只是最终结果的近似值;代理模型和modelica模型的误差由径向基神经网络学习过程中设定的误差限决定;在步骤6中,径向基神经网络学习过程中误差限不能设置过小,否则会无法达到学习目标或者出现过拟合现象,即通过一次学习无法获得理想精度的代理模型;因此在本方法中采用的是根据每次优化结果,对代理模型进行动态更新,并通过在不同的参数区域设置不同的误差限,提高径向基神经网络在最优参数附近的精度的方法,从而得到精确的优化结果。
其中,在步骤9中所述的“动态更新步骤6生成的代理模型”,其做法是将步骤8的到最优参数及其对应的仿真结果作为一个学习样本称作重点学习样本,其余样本成为普通样本;在径向基神经网络学习过程中重点样本设置小的误差限,普通样本保持步骤6中的误差限,然后执行步骤6的学习过程;由于步骤8中的优化结果是最终结果的近似值,因此通过动态更新代理模型的方法,得到的代理模型在最优参数附近达到较小误差。
通过以上步骤,本发明提供了一种基于代理模型的modelica模型参数优化方法,达到了提高modelica模型参数优化效率的目的,解决了modelica模型参数优化过程中计算量巨大,难以对大型模型进行参数优化的现实问题。
(三)本发明的有益效果是:
通过本发明所提供的modelica模型参数优化方法,通过对优化求解过程的改进,采用代理模型代替原模型参与优化迭代过程,从而加快了优化问题的求解效率,节省了计算量,同时通过代理模型的动态更新,在最优参数附近参数空间减小了代理模型的误差,从而能够得到高精度的参数优化结果。
附图说明
图1本发明所述一种基于代理模型的modelica模型参数优化方法流程图。
图2电机驱动机械臂运动模型。
图3初始参数仿真计算结果。
图4优化建模界面。
图5代理模型。
图6优化后参数仿真计算结果。
图中序号、符号、代号说明如下:
图2中,pid模块为是控制器,左侧输入为控制信号,下方输入为anglesensor(角度传感器)提供的机械臂当前角度信号。idealgear模块是齿轮变速箱左侧与电机相连,右侧与机械臂相连。signtorquel是机械臂在运动过程中的摩擦阻力。
图3和图6中,横坐标轴为时间,纵坐标轴为机械臂角度,单位为rad(弧度)。
图5中,p、i、分别代表输入参数p、i、d数据,f1~fn为径向基神经网络隐含层,左侧输入为p、i、d参数,右侧输出为隐含层高斯函数输出。y1、y1是径向基神经网络的输出。
具体实施方式
下面结合实例和附图对本发明作进一步说明,但不限定本发明。
本实例为电机驱动机械臂运动模型。如图2所示为模型在openmodelica平台(开源的modelica语言建模和仿真平台)上打开的界面。本模型基于pid控制控制原理控制机械臂转动π(rad),参数优化过程是通过调节控制器的p、i、d三个参数,达到控制机械臂转动π(rad)过程中调节时间和最大超调量同时尽可能达到最小。
本发明一种基于代理模型的modelica模型参数优化方法,见图1所示,它包括以下步骤:
步骤1、编译modelica模型并获取模型参数、变量信息
步骤2、优化建模
步骤3、生成采样点
步骤4、对步骤3中生成的所有参数组合逐一进行仿真计算
步骤5、分析步骤4的仿真计算结果
步骤6、构建代理模型
步骤7、利用步骤6中构建的代理模型代替modelica模型进行优化迭代,找到最优参数
步骤8、将步骤7中得到的最优参数进行仿真计算,如果仿真计算结果与步骤6中构建的代理模型输出结果误差小于设定值,则执行步骤10,否则执行步骤9
步骤9、利用步骤8中仿真计算结果动态更新步骤6生成的代理模型,然后执行步骤7
步骤10、步骤7计算得到的最优参数为最终优化结果,参数优化结束
其中,在步骤1中所述的“编译modelica模型”,是在openmodelica平台对电机驱动机械臂运动模型进行编译,在初始pid参数为15、15、20时,仿真计算结果如图3所示;机械臂的转动π(rad)过程中超调量为0.2784(rad),调节时间为2.5655s。
其中,在步骤2中所述的“优化建模”,其做法是根据步骤1中获得的参数和变量信息,选择pid参数为设计变量,即对pid三个参数进行优化,使机械臂在转动π(rad)过程中超调量和调节时间最小。如图4所示,在选择p、i、d三个参数后,分别为参数设置可选区间,在此例中,p、i、d的可选区间均设置为10~40。优化目标选机械臂角度,目标函数是最大超调量和调节时间最小。
其中,在步骤3中所述的“生成采样点”,其做法是根据拉丁超立方采样,在步骤2中设置的参数区间中生成50组参数组合。
其中,在步骤5中所述的“分析步骤4的仿真计算结果”,其做法是从仿真结果曲线图中自动分析得出最大超调量、调节时间。其目的是将仿真结果根据进行量化,为步骤6提供数据。
其中,在步骤6中所述的“构建代理模型”,其做法是将步骤3中生成的采样点信息和步骤5中对应的仿真结果信息作为学习样本,构建径向基神经网络代理模型,如图5所示。径向基神经网络的输入为参数点p、i、d,输出为参数对应的仿真结果最大超调量和调节时间。f1~fn为径向基神经网络隐含层,隐含层的传递函数为高斯函数:
其中,在步骤7中所述的“优化迭代”,其做法是基于遗传算法和代理模型进行优化迭代。包括初始化种群、计算适应度、终止判断、选择、交叉、变异。其中,每一个个体包含一组p、i、d参数组合、参数对应的最大超调量和调节时间,以及计算得到的适应度。多个个体构成了种群。其中,“计算适应度”的实现方法是将每个个体代表的参数值输入到代理模型中,由代理模型计算得到参数对应的仿真结果,代理模型的输出结果为最大超调量、调节时间。将种群中所有个体的最大超调量、调节时间分别按优劣分别量化,然后将每个个体的最大超调量、调节时间量化结果加权聚合,得到个体的适应度。其中最大超调量、调节时间越小的个体适应度值越大。
其中,在步骤9中所述的“动态更新步骤6生成的代理模型”,其做法是将步骤8的到最优参数及其对应的仿真结果作为一个学习样本称作重点学习样本,其余样本成为普通样本。在径向基神经网络学习过程中重点样本设置小的误差限,普通样本保持步骤6中的误差限,然后执行步骤6的学习过程。由于步骤8中的优化结果是最终结果的近似值,因此通过动态更新代理模型的方法,得到的代理模型在最优参数附近达到较小误差。
其中,步骤10中所述的“最终优化结果”,是指通过该发明提供的方法得到的优化结果。在本例中优化后的p、i、d为23.8095,22.8571,29.5238,在该参数下,机械臂运动π(rad)过程中超调量为0.0045(rad),调节时间为1.1844s,如图6所示。
PHP网站源码临沧营销型网站建设漳州网站定制推荐罗湖关键词按天计费哪家好南宁网站推广推荐上海建站公司长治企业网站设计价格酒泉seo网站优化推荐揭阳网站推广价格黑河SEO按天扣费坪山建设网站公司巴中网站制作推荐上饶网站推广哪家好荆州模板推广推荐泸州至尊标王哪家好安顺百度网站优化排名推荐郴州外贸网站制作报价毕节网站改版报价张家界关键词按天计费价格新乡企业网站建设公司襄樊网站优化排名推荐昭通网页制作公司辽源网站关键词优化价格哈密建站价格内江网络广告推广报价伊犁网页设计哪家好坂田seo优化推荐无锡建站推荐坂田设计网站报价咸阳建设网站开封企业网站设计价格歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运