zoukankan      html  css  js  c++  java
  • 尝试为有限元模拟加入场的控制

    现在尝试用maya场去影响有限元模拟,这样就可以利用maya现有的变形功能,创造出更丰富的效果。

    初步的想法收到Example-Based Elastic Materials的启发,利用场给每个节点施加额外的力。

    但是这样会导致一个问题。

    原来的优化模型中,弹力、惯性力都是保守力,也就是说,这些力做功与路径无关,于是它们各自对应一个能量。弹力对应的是弹性势能,惯性力也有对应的能量形式。整个算法框架就是力图最小化这个能量。

    现在引入场之后,并不保证引入的场是保守的,例如阻尼场就并不是保守的。于是,整个系统的能量不能简单写成位置的函数,而是包含对路径的积分。
    引入场之后某时刻系统总能量增量
    dE = (fe + fi + ff + fc) * dx
    其中fe是弹力,fi是惯性力,ff是场力,fc是约束反力
    fc * dx = 0,假定约束为理想约束
    fe * dx = dWe = We(x1) - We(x0),给定本构模型,弹性势能We便有封闭形式
    fi * dx = -ma * dx
    ff * dx = dWf 但是不能写成Wf(x1) - Wf(x0)的形式,因为场不一定能够写成势能形式
    但是,dWf = 总是可以通过ff * dx求得。

    从另一个角度看,虽然就某个场的定义形式来看,其未必是保守的;但是,我认为,对于具体的某一时刻的运动,可以用一个保守场去等效。例如对于在阻尼场中运动的一个粒子,其t时刻的受力便取决于此时它的速度,速度一旦给定,力便随之给定。阻尼力在此时做的功dWf = ff * dx 便与一个方向与此相同的均匀力场(力处处相同)一样。于是,可以用此力场替代之。





  • 相关阅读:
    export ,export default 和 import 区别 以及用法
    koa2 安装环境
    Webstorm在MAC下的安装方法
    Mac 下搭建vue开发环境
    Mac系统下安装Vue-cli详细步骤
    npm 安装vue 报错Failed at the chromedriver@2.34.0 install script 'node install.js'
    #001 WebStrom SVN使用技巧
    #006 dependencies和devDependencies的区别
    #001 GIT创建分支
    #003 React 组件 继承 自定义的组件
  • 原文地址:https://www.cnblogs.com/dydx/p/4368106.html
Copyright © 2011-2022 走看看