有限单元法基础 -- ING

本文深入解析虚位移原理、最小势能原理、卡氏定理等核心力学概念,阐述其在弹性、塑性及非保守系统中的应用。通过质点、离散质点系及连续介质的实例,详细说明虚功原理的数学表达与物理意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本概念

  • 虚位移原理 / 最小势能原理 / 卡氏第一定理(principle of virtual displacment / principle of minimum potential energy / Castigliano principle)
  • 虚应力原理 / 最小余能原理  /  卡氏第二定理 (principle of virtual stress / Principle of complementary energy / Castigliano principle)

其中,最小势能原理和最小余能原理在 弹性保守系统 内成立。而虚位移、应力原理对于弹性,塑性,非保守力均成立。

  • 虚功原理

满足力学机理的方程求解方法(待扩充)

  • 变分法
  • 偏微分方程的数值解法
  • 有限元 / 有限差分 / ...

力学内容

  • Lagrangian mechanics and Hamiltonian Mechanics
  • analytical mechanics

-------------------------------------------------------------------------------------------------------------------------------

虚功原理扩展阅读,copy form 知乎

作者:知乎用户
链接:https://www.zhihu.com/question/23984667/answer/88051972
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

这三个原理核心基础是虚功原理(Principle of Virtual Work, PVW)。它的结论是当且仅当对于任意虚位移(admissible),外力做的虚功和内力做的虚功相等时(总虚功为零),系统是平衡的。用公式表示即:
[公式]

现在从以质点为例对虚功原理进行解释。如下图所示,该质点在n个力的作用下在某一位置处于平衡状态。


通过平衡方程可知:
[公式]

 

现在我们假设有一个任意的虚位移[公式]
[公式]

这样我们就可以计算总的虚功(力在虚位移上做的功):
[公式]

于是我们可以得到结论: 对于一个质点,当且仅当对于任意虚位移,虚功为零时,质点处于平衡状态。这是PVW对于质点的描述。

注:由于对于单个质点没有系统内的内相互作用力,所以所有虚功为外力所做的虚功。

现在我们来看对于离散质点系(分刚体和变形体),虚功原理是如何描述的。

 

如上图所示,质点i受到净外力[公式]和净内力[公式]。内力即系统中质点间的相互作用。现在假设给刚体加一个虚位移,导致各个质点产生了虚位移[公式],那么外力做的虚功是:
[公式]

现在来看内力做的虚功。令[公式]表示质点j对于质点i的作用力,[公式]为变形前质点j相对于i的位置向量,[公式]为质点i和j在虚位移变形后的相对位置变化向量。那么内力做的虚功为:
[公式]

对于刚体,由于任意两质点的相对位置恒定,所以[公式]为0。但如果质点系内有两个质点由弹簧相连,那么[公式]就不为0。

对于离散质点系,虚功原理表述为:当且仅当[公式]时,系统处于平衡。

 

最后我们来看最重要的可变形连续介质的虚功原理描述。
对于一个受体力(body force)和surface traction的三维弹性体,其平衡方程为:
[公式]
(注:[公式],因为i=1,2,3,所以一共有三个方程分别代表三个方向上的平衡。为了方便以下均用index notation)

traction的边界条件为:
[公式]

平衡方程在整个区域[公式]内的所有点上都满足,边界条件在整个边界[公式]上的所有点上都满足。假定我们给物体在x,y,z三个方向上分别施加虚位移[公式]。现在我们将平衡方程和边界条件的式子和虚位移相乘并在相应区域上积分,再相加可以得到:
[公式]
上式等于0是因为括号里的项在积分区域里的每一点上都等于0,那么将它乘以一个任意项(虚位移任意)依然等于0,所以积分也为0。

然后我们使用分部积分:
[公式]

再由Cauchy's relationship,得到:
[公式]

然后是应变-位移关系:
[公式]

所以:
[公式]
(注:因为[公式]对称,而[公式]是反对称,所以两者相乘为零,因此[公式])

将上述三式带入总方程,可得到:
[公式]

等式的左边是内力做的虚功(internal virtual work),右边是外力做的虚功(external virtual work)

所以对于连续变形介质,虚功原理的表述是:对应于所有允许的任意虚位移场,如果内应力做的虚功等于外力做的虚功,那么该物体处于平衡状态。用公式表示为:
[公式]

另外补充一点,虚功原理也适用于非保守系统,所以不仅适用于弹性变形,也适用于塑性变形。

至于虚力原理,不同于虚位移原理中是对位移和应变场进行变分,它是对力和应力场进行变分。一个应用就是Castigliano theorem求解某个节点的位移。即先写出整个结构的能量,再对能量对于待求节点上的力进行偏微分,得到的就是在该力方向上这个节点的位移。

编辑于 2016-10-07

​赞同 115​​15 条评论

​分享

​收藏​感谢收起​

知乎用户

知乎用户

19 人赞同了该回答

抱歉,我是学数学和物理的,不是学工程的。下面的说法比较理论,见谅。

力学第一性原理(或力学最高原理),就是可以由他导出全部力学定律的原理或假设。其在力学之中的地位相当于几何学之中的公理。什么原理可以作为 力学第一性原理呢?
  • 牛顿运动3定律
  • 达朗伯原理(又称动力学虚位移原理,或动力学普遍方程)
  • 在静力学情况下是虚位移原理或虚功原理
  • Lagrange方程
  • 正则方程
  • 哈密顿原理(这是一种变分原理)
以上原理中的任何一个都可以作为 力学的第一性原理,因为它们是相互等价的。


---引用自《分析力学辅助讲义》---清华大学物理学编写---清华校内教材中心有

### Spring Boot 启动配置及相关常见问题 Spring Boot 是一种简化基于 Spring 应用开发的框架,它通过自动配置和约定优于配置的原则来减少开发者的工作量[^3]。以下是有关 Spring Boot 启动配置以及一些常见的启动问题的相关信息。 #### 1. Spring Boot 启动流程概述 当运行 ` SpringApplication.run()` 方时,Spring Boot 开始执行一系列初始化操作。这些操作主要包括加载应用程序上下文、应用自动配置规则、注册 Bean 定义等。具体来说: - **ApplicationContext 初始化**:Spring Boot 使用嵌套的 ApplicationContext 来管理不同层次的应用程序组件。默认情况下,`AnnotationConfigServletWebServerApplicationContext` 被用于 Web 应用程序。 - **自动配置机制**:Spring Boot 自动检测 classpath 中存在的库并启用相应的功能模块。例如,如果存在 Tomcat,则会自动配置一个嵌入式的 Servlet 容器[^1]。 ```java @SpringBootApplication public class MyApplication { public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } } ``` 上述代码片段展示了如何创建一个基本的 Spring Boot 应用程序入口点,并调用了 `run` 方以触发整个生命周期过程。 --- #### 2. 常见启动阶段中的问题及其解决方 ##### (1)依赖冲突导致无正常启动 由于项目中可能存在多个版本的相同库文件,这可能导致类加载失败或其他异常行为。可以利用 Maven 或 Gradle 提供的功能检查实际使用的依赖树结构,并排除不必要的重复项。 解决方案可以通过调整 pom.xml 文件或者 build.gradle 文件内的声明方式完成修正工作。例如,在 Maven 中可采用如下形式指定特定范围内的唯一版本号: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- 锁定 spring 版本 --> <version>${spring.version}</version> </dependency> ``` ##### (2)外部化配置未生效 有时即使设置了 application.properties/yml 文件里的参数值却仍然发现它们并未被正确读取进来。这种情况通常是因为缺少必要的注解支持或者是路径设置错误引起的。 确保所有的自定义属性都加上了对应的 getter/setter 方以便于反射访问的同时还需要确认是否已经开启全局扫描模式(`@ComponentScan`)或将目标包显式加入到组件探测范围内去[^4]。 另外需要注意的是从 Spring Boot 2.x 开始推荐使用 YAML 格式的多文档块来进行环境切换而不是传统的 profiles.d/properties 方案[^2]: ```yaml server: port: 8081 --- spring: profiles: dev logging: level: root: DEBUG --- spring: profiles: prod logging: level: root: WARN ``` ##### (3)端口占用引发的服务不可达状况 每当尝试重新部署服务实例而前次进程尚未完全终止掉的时候就容易遇到此类情形。此时应该先查明当前是否有其他进程正在监听该端口号然后再采取相应措施清理残留资源释放对应端口使用权限给新的请求者接管过来继续提供对外接口服务[^5]. --- ### 总结 以上就是围绕 Spring Boot 启动过程中涉及的一些基础概念介绍以及针对可能出现的各种典型场景所提出的针对性建议方案集合在一起形成的一份综合指南资料内容汇总列表展示出来供大家参考学习之用!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值