Document
拖动滑块完成拼图
首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

加速求解多自由度人体弹簧-集中质量模型的优化算法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:北京理工大学

摘要:本发明提供一种加速求解多自由度人体弹簧‑集中质量模型的优化算法,针对输入曲线取样点较多的情况,可以一次性加载完输入曲线并将之保存,之后通过匿名函数的语法多次代入该曲线到计算函数中。针对线性且等时间间隔的插值问题,写出插值点t与插值下标i之间的映射关系,通过dZ0=w1·dZ0i1+w2·dZ0i2线性插值得到dZ0t;通过Z0=w1·Z0i1+w2·Z0i2线性插值得到Z0t;该插值方法能够极大减少运算时间。针对二阶微分方程中的常数项系数,将二阶微分方程中降为一阶微分方程,化简得到更简单的形式,然后通过雅各比矩阵对各部分求偏导便可得到这些常数项系数的数值。本发明极大减少了多自由度人体弹簧‑集中质量系统运动方程的计算时间,有效地提高了计算效率。

主权项:1.加速求解多自由度人体弹簧-集中质量模型的优化算法,其特征在于:人体模型被划分为5个部位,每个部位有水平方向X、垂向Z以及旋转θ三个自由度,整个模型有15个自由度;所提出的15自由度人体集中质量参数模型,存在15个耦合的非齐次微分方程,并且以矩阵形式表示为:M·ddX+C·dX+K·X=fK·Z0+fC·dZ0其中M、K和C分别为15*15质量矩阵、弹簧刚度矩阵和阻尼系数矩阵;ddX、dX和X分别是15*1加速度、速度和位移向量;fk和fc是用于支撑运动的15*1系数向量;dZ0和Z0是外部激励引起的速度和位移;X代表位移X1、X2、X3……X15;dX代表速度dX1、dX2、dX3……dX15;ddX代表加速度ddX1、ddX2、ddX3……ddX15;将该微分方程降为一阶微分方程得到dX=A*X,dZ0,Z0的形式即dX=A·X+b1·dZ0+b2·Z0;具体步骤包括:第一步:globalticks声明全局变量用于显示当前计算位置,令ticks=0表示从第0步开始;第二步:加载加速度曲线,然后设置一个基于MATLAB线性插值的函数用于确认后续dZ0、Z0的加速结果是否正确;并对加速度曲线提前做梯形积分得到速度曲线dZ0,再对dZ0做梯形积分得到位移曲线Z0;第三步:建立关于X的符号向量,由于系统状态是X1、X2、X3……X30,所以代码为x=sym'X',[30,1];第四步:代入自变量X、dZ0和Z0,求dX关于自变量的符号表达式,即dX=odefun[],X,sym'dZ0',sym'Z0';第五步:建立30*30的jacobian矩阵A=symzeros30;然后通过for循环遍历每个自变量,求dX关于每个自变量X的偏导数得到A即A:,i=diffdX,Xi;求dX关于dZ0的偏导数得到b1即b1=diffdX,sym'dZ0';求dX关于Z0的偏导数得到b2即b2=diffdX,sym'Z0';第六步:通过assertalldoubleA*X+b1.*sym'dZ0'+b2.*sym'Z0'-dX==0断言dX=A·X+b1·dZ0+b2·Z0;第七步:通过A=doubleA将A转化为数值矩阵;运用b1=doubleb1将b1转换为数值矩阵;运用b2=doubleb2将b2转换为数值矩阵;第八步:初始化DY数组,然后通过for循环遍历每个时刻,再通过DYi,:=odefun2Ti,Yi,:',t0,dt,dZ0_,Z0_,A,b1,b2导出odefun2中的DY值;再通过ref=odefunTi,Yi,:',dZ0Ti,Z0Ti',获得原本odefun的参考值;接着通过assertmaxabsDYi,:-refmaxmaxabsDYi,:,absref+eps1e-10来断言odefun2输出的值与odefun输出的值误差不超过1e-10;第九步:写出加速版本的odefun即functiondx=odefun2t,X,t0,dt,dZ0_,Z0_,A,b1,b2;该odefun的计算公式为dX=A·X+b1·dZ0+b2·Z0;输入:时间t、状态向量X、初始时刻t0、采样间隔dt、采样向量dZ0、采样向量Z0、系数矩阵A、系数向量b1、系数向量b2;输出:状态导数dXdt;第十步:用全局变量globalticks记录odefun运行次数;ticks=ticks+1表示运行次数增加一次;通过iffloorticks100000==ticks100000表示每100000次调用;然后用dispt输出当前的t值;第十一步:用index=t-t0dt+1求当前时刻t在采样表上的行数,向下取整得到稍早时刻的采样即i1=floorindex;向上取整得到稍晚时刻的采样即i2=ceilindex;稍早时刻采样的权重是1-采样点到时刻t之间的距离即w1=1-index-i1;稍晚时刻采样的权重是1-采样点到时刻t之间的距离即w2=1--i2-index;如果当前时刻对应的行数index恰好是1整数,那么w1=w2,此时ww=2;令w1=w1ww;w2=w2ww;将权重归一化到w1+w2=1的状态;这时通过dZ0=w1·dZ0i1+w2·dZ0i2线性插值得到dZ0t;通过Z0=w1·Z0i1+w2·Z0i2线性插值得到Z0t;最后使用计算公式dX=A·X+b1·dZ0+b2·Z0进行运算;第十二步:写出functiondX=odefun~,X,dZ0,Z0即未加速odefun,该odefun是四阶龙格-库塔方法。

全文数据:

权利要求:

百度查询: 北京理工大学 加速求解多自由度人体弹簧-集中质量模型的优化算法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。

-相关技术