中国汽车工程师之家--聚集了汽车行业80%专业人士 

论坛口号:知无不言,言无不尽!QQ:542334618 

本站手机访问:直接在浏览器中输入本站域名即可 

  • 2909查看
  • 1回复

请教matlab中ode求解含有质量矩阵的微分方程组问题?

[复制链接]

  • TA的每日心情
    无聊
    10-1-2016 13:38
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 5-11-2011 14:43:14 | 显示全部楼层 |阅读模式

    汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


    最近在做柔性体的动力学方程求解,最终得到的动力学方程形式为:M(t,y)y'=f(t,y),其中,质量矩阵M(t,y)不是常量,是时间t和广义坐标y的函数(当然y也是t的函数)。
    刚开始先用ode45计算,计算过程中提示:
    Warning: Matrix is close to singular or badly scaled.
             Results may be inaccurate. RCOND = 1.920264e-016.
    > In funfun\private\odemassexplicit>ExplicitSolverHandleMass34 at 68
      In ode45 at 327
      In my codes at 260

    于是尝试用ode15s求解,计算过程中提示:
    当地面作用力不取常数,而是按照实际的值设置时,系统提示:
    Warning: Failure at t=3.602455e-003.  Unable to meet integration
    tolerances without reducing the step size below the smallest value
    allowed (6.938894e-018) at time t.

    哪位兄弟遇到过类似的问题,望指教!谢谢
    

    该用户从未签到

    发表于 25-4-2025 11:00:02 | 显示全部楼层
    针对您所描述的问题,即在MATLAB中使用ode求解含有质量矩阵的微分方程组问题,并遇到矩阵接近奇异或不良缩放警告,以下是一些专业建议:

    1. 矩阵条件数:警告信息中提到的RCOND值(条件数)指示矩阵的奇异性或不良缩放情况。可以考虑对质量矩阵进行预处理,如正则化或缩放,以改善其条件数。
    2. 数值稳定性:由于质量矩阵随时间变化,这可能会影响到数值求解的稳定性。尝试使用更高精度的数值方法或调整时间步长。
    3. 方程重写:考虑是否可以将方程重写为更稳定的形式。有时,通过引入新的变量或进行变量替换,可以改善数值求解的稳定性。
    4. 检查函数定义:确保函数定义正确,特别是质量矩阵M(t,y)的计算。任何小的误差在迭代过程中都可能被放大,导致不准确的结果。
    5. 使用专业工具包:考虑使用专门为处理此类问题设计的MATLAB工具包或库,这些工具可能具有处理含时变质量矩阵的微分方程组问题的专门算法。

    如果以上建议仍无法解决问题,建议提供更详细的信息或代码片段,以便进行更具体的分析和建议。
    回复 支持 反对

    使用道具 举报

    快速发帖

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

    GMT+8, 1-6-2025 10:45 , Processed in 0.345810 second(s), 35 queries .

    Powered by Discuz! X3.5

    © 2001-2013 Comsenz Inc.