能量函数和能量守恒

在之前的文章1中讨论了与循环坐标相对应的动量守恒定律和动量矩守恒定律,本文将由拉格朗日方程中导出能量函数,进一步讨论能量守恒定律,并给出耗散系统的处理方法,这其中用到的一个关键数学定理是欧拉定理(描述如何将一个齐次函数分解的定理)。

从如下拉格朗日量开始我们的讨论:
L ( q i , q ˙ i , t ) L(q_i,\dot{q}_i,t) L(qi,q˙i,t)

它对时间的全微分是:
d L d t = ∂ L ∂ t + ∑ i ∂ L ∂ q ˙ i d q ˙ i d t + ∑ i ∂ L ∂ q i d q i d t ( 2.49 ) \frac{{\rm d} L}{{\rm d} t} = \frac{\partial L}{\partial t} + \sum_i \frac{\partial L}{\partial \dot{q}_i} \frac{{\rm d} \dot{q}_i}{{\rm d} t} + \sum_i \frac{\partial L}{\partial q_i} \frac{{\rm d} q_i}{{\rm d} t} \qquad (2.49) dtdL=tL+iq˙iLdtdq˙i+iqiLdtdqi(2.49)

结合拉格朗日方程:
∑ i ( d d t ∂ L ∂ q ˙ i − ∂ L ∂ q i ) = 0 ( 2.50 ) \sum_i \left( \frac{{\rm d} }{{\rm d} t} \frac{\partial L}{\partial {\dot q}_i} - \frac{\partial L}{\partial q_i} \right) =0 \qquad (2.50) i(dtdq˙iLqiL)=0(2.50)

由拉格朗日方程(2.50)可知:
∂ L ∂ q i = d d t ∂ L ∂ q ˙ i ( 2.5 0 ′ ) \frac{\partial L}{\partial q_i} = \frac{{\rm d} }{{\rm d} t} \frac{\partial L}{\partial {\dot q}_i} \qquad (2.50') qiL=dtdq˙iL(2.50)

代入(2.49):
d L d t = ∂ L ∂ t + ∑ i ∂ L ∂ q ˙ i d q ˙ i d t + ∑ i q ˙ i d d t ∂ L ∂ q ˙ i ( 2.51 ) \frac{{\rm d} L}{{\rm d} t} = \frac{\partial L}{\partial t} + \sum_i \frac{\partial L}{\partial \dot{q}_i} \frac{{\rm d} \dot{q}_i}{{\rm d} t} + \sum_i \dot{q}_i \frac{{\rm d} }{{\rm d} t} \frac{\partial L}{\partial {\dot q}_i} \qquad (2.51) dtdL=tL+iq˙iLdtdq˙i+iq˙idtdq˙iL(2.51)

(2.51)也可写为:
d L d t = ∂ L ∂ t + ∑ i d d t ( q ˙ i ∂ L ∂ q ˙ i ) ⇒ ∂ L ∂ t + ∑ i d d t ( q ˙ i ∂ L ∂ q ˙ i − L ) = 0 ( 2.5 1 ′ ) \frac{{\rm d} L}{{\rm d} t} = \frac{\partial L}{\partial t} + \sum_i \frac{{\rm d} }{{\rm d} t} \left( \dot{q}_i \frac{\partial L}{\partial {\dot q}_i} \right) \Rightarrow \\ \frac{\partial L}{\partial t} + \sum_i \frac{{\rm d} }{{\rm d} t} \left( \dot{q}_i \frac{\partial L}{\partial {\dot q}_i} - L \right) = 0 \qquad (2.51') dtdL=tL+idtd(q˙iq˙iL)tL+idtd(q˙iq˙iLL)=0(2.51)

根据(2.51’),我们引入能量函数(energy function):
h = ∑ i q ˙ i ∂ L ∂ q ˙ i − L h = \sum_i \dot{q}_i \frac{\partial L}{\partial {\dot q}_i} - L h=iq˙iq˙iLL

于是(2.51’)写为:
− ∂ L ∂ t = d h d t - \frac{\partial L}{\partial t} = \frac{{\rm d} h}{{\rm d} t} tL=dtdh

如果拉格朗日量 L L L不显含时间 t t t(即时间仅在 q i q_i qi q ˙ i \dot{q}_i q˙i中隐含),则力学系统的能量守恒:
h = c o n s t h = {\rm const} h=const

通过拉格朗日函数的齐次分解,并采用欧拉定理(Euler’s theorem,见本文附录)对 h h h进行分解,可以证明 h = T + V h=T+V h=T+V 就是总机械能。于是我们得到结论:如果势函数不显含时间(即拉格朗日量也不显含时间),则力学系统的总机械能守恒

2. 非保守系统(耗散函数为Rayleigh函数的情况)

对于非保守系统而言,摩擦力可以由耗散函数 F \mathcal{F} F导出,并且很容易看出 F \mathcal{F} F h h h的衰减有关。当存在耗散力时,我们已经讨论了拉格朗日方程(文章1的(1.70)):
d d t ∂ L ∂ q ˙ j − ∂ L ∂ q j = − ∂ F ∂ q ˙ j ( 1.70 ) \frac{{\rm d} }{{\rm d} t} \frac{\partial L}{\partial {\dot q}_j} - \frac{\partial L}{\partial q_j} = - \frac{\partial {\mathcal F}}{\partial {\dot q}_j} \qquad (1.70) dtdq˙jLqjL=q˙jF(1.70)

与之相对应的使用 h h h表述的方程为:
∂ L ∂ t + d h d t = ∑ j ∂ F ∂ q ˙ j q ˙ j ( 2.5 9 ′ ) \frac{\partial L}{\partial t} + \frac{{\rm d} h}{{\rm d} t} = \sum_j \frac{\partial {\mathcal F}}{\partial {\dot q}_j} \dot{q}_j \qquad (2.59') tL+dtdh=jq˙jFq˙j(2.59)

已知耗散函数取Rayleigh函数时(文章1(1.67’)), F \mathcal{F} F是广义速度 q ˙ j \dot{q}_j q˙j的二次函数,因此可以对上式右端应用欧拉定理,等于 2 F 2\mathcal{F} 2F,于是(2.59’)写为:
∂ L ∂ t + d h d t = − 2 F \frac{\partial L}{\partial t} + \frac{{\rm d} h}{{\rm d} t} = -2\mathcal{F} tL+dtdh=2F

如果 L L L不显含时间(即 ∂ L / ∂ t = 0 \partial L / \partial t =0 L/t=0),则耗散函数取Rayleigh函数时,机械能 h h h的耗散速率是 2 F 2\mathcal{F} 2F

附录:欧拉定理(Euler’s theorem)

欧拉定理给出了函数 f f f的分解方法,它是说:如果有函数 f = f ( x i ) f = f(x_i) f=f(xi) x i x_i xi n n n阶齐次函数,则 x i x_i xi ∂ f / ∂ x i \partial f/ \partial x_i f/xi的乘积之和可以写为 n f nf nf
∑ i x i ∂ f ∂ x i = n f \sum_i x_i \frac{\partial f}{\partial x_i} = nf ixixif=nf

参考资料

文章1:速度相关势和Rayleigh耗散势函数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/66732.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF控件Grid的布局和C1FlexGrid的多选应用

使用 Grid.Column和Grid.Row布局,将多个C1FlexGrid布局其中,使用各种事件来达到所需效果,点击复选框可以加载数据到列表,移除列表的数据,自动取消复选框等 移除复选框的要注意!!!&am…

ffmpeg7.0 合并2个 aac 文件

ffmpeg7.0 将2个aac文件合并。 #include <stdio.h>// 之所以增加__cplusplus的宏定义&#xff0c;是为了同时兼容gcc编译器和g编译器 #ifdef __cplusplus extern "C" { #endif #include <libavformat/avformat.h> #include <libavcodec/avcodec.h>…

FreePBX 17 on ubuntu24 with Asterisk 20

版本配置&#xff1a; FreePBX 17&#xff08;最新&#xff09; Asterisk 20&#xff08;最新Asterisk 22&#xff0c;但是FreePBX 17最新只支持Asterisk 21&#xff0c;但是21非LTS版本&#xff0c;所以选择Asterisk 20&#xff09; PHP 8.2 Maria DB (v10.11) Node J…

2025-微服务—SpringCloud-1~3

2025-微服务—SpringCloud 第一章、从Boot和Cloud版本选型开始说起1、Springboot版本2、Springcloud版本3、Springcloud Alibaba4、本次讲解定稿版 第二章 关于Cloud各种组件的停更/升级/替换1、微服务介绍2、SpringCloud是什么&#xff1f;能干吗&#xff1f;产生背景&#xf…

php常用开发框架性能对比

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、框架简介&#xff1f;1.1 webman1.2 CodeIgniter(CI框架)1.3 ThinkPHP1.4 Laravel1.5 EasySwoole 二、压测对比1.机器配置2.webman压测2. ThinkPHP压测3. L…

新闻发布及管理系统

文末附有完整项目代码 在信息飞速传播的时代&#xff0c;新闻发布及管理系统变得愈发重要。本文将详细介绍如何设计并实现这样一个系统。 一、项目背景 随着电脑、智能手机等设备的普及&#xff0c;各种网站应运而生。而信息发布是网络的一大特点&#xff0c;人们上网主要是为…

sklearn-逻辑回归-制作评分卡

目录 数据集处理 分箱 分多少个箱子合适 分箱要达成什么样的效果 对一个特征进行分箱的步骤 分箱的实现 封装计算 WOE 值和 IV值函数 画IV曲线&#xff0c;判断最佳分箱数量 结论 pd.qcut 执行报错 功能函数封装 判断分箱个数 在银行借贷场景中&#xff0c;评分卡是…

Http请求响应——请求

Http概述 Http协议&#xff08;HyperText Transfer Protocol&#xff0c;超文本传输协议&#xff09;&#xff0c;是一种用于传输网页数据的协议&#xff0c;规定了浏览器和服务器之间进行数据传输的规则&#xff0c;简单说来就是客户端与服务器端数据交互的数据格式。 客户端…

python学opencv|读取图像(三十一)缩放图像的三种方法

【1】引言 前序学习进程中&#xff0c;我们至少掌握了两种方法&#xff0c;可以实现对图像实现缩放。 第一种方法是调用cv2.resize()函数实现&#xff0c;相关学习链接为&#xff1a; python学opencv|读取图像&#xff08;三&#xff09;放大和缩小图像_python opencv 读取图…

封装红黑树实现map和set

本博客需要红黑树和搜索树二叉树的一些知识以及熟悉map和set的相关函数和迭代器&#xff0c;如果读者还不熟悉可以看这三篇博客&#xff1a;红黑树、二叉搜索树、map、set的使用 红黑树的封装 STL30源码分析 如果想到封装&#xff0c;大家应该会直接把RBtree复制两份&#x…

关于使用FastGPT 摸索的QA

近期在通过fastGPT&#xff0c;创建一些基于特定业务场景的、相对复杂的Agent智能体应用。 工作流在AI模型的基础上&#xff0c;可以定义业务逻辑&#xff0c;满足输出对话之外的需求。 在最近3个月来的摸索和实践中&#xff0c;一些基于经验的小问题点&#xff08;自己也常常…

LeetCode 热题 100_二叉树的最近公共祖先(48_236_中等_C++)(二叉树;深度优先搜索)

LeetCode 热题 100_二叉树的最近公共祖先&#xff08;48_236&#xff09; 题目描述&#xff1a;输入输出样例&#xff1a;题解&#xff1a;解题思路&#xff1a;思路一&#xff08;深度优先搜索&#xff09;&#xff1a; 代码实现代码实现&#xff08;思路一&#xff08;深度优…

HTTP/HTTPS ②-Cookie || Session || HTTP报头

这里是Themberfue 上篇文章介绍了HTTP报头的首行信息 本篇我们将更进一步讲解HTTP报头键值对的含义~~~ ❤️❤️❤️❤️ 报头Header ✨再上一篇的学习中&#xff0c;我们了解了HTTP的报头主要是通过键值对的结构存储和表达信息的&#xff1b;我们已经了解了首行的HTTP方法和UR…

PyCharm+RobotFramework框架实现UDS自动化测试——(二)RobotFramework环境配置

从0开始学习CANoe使用 从0开始学习车载测试 相信时间的力量 星光不负赶路者&#xff0c;时光不负有心人。 文章目录 1.环境准配2.Pycharm中相关配置2.1. 安装Hyper RobotFramework Support 3.脚本执行环境3.1 执行单条的配置3.2 执行全部用例配置 4.工程运行4.1 单条用例运行4.…

Android原生开发同一局域网内利用socket通信进行数据传输

1、数据接收端代码如下&#xff0c;注意&#xff1a;socket 接收信息需要异步运行&#xff1a; // port 端口号自定义一个值&#xff0c;比如 8888&#xff0c;但需和发送端使用的端口号保持一致 ServerSocket serverSocket new ServerSocket(port); while (true) {//这里为了…

腾讯云AI代码助手编程挑战赛-算法小助手

作品简介 一个可以帮助学习计算机各种算法的AI小助手&#xff0c;提升工作效率。 技术架构 使用Html语言完成图形化页面的样式&#xff0c;使用JavaScript语言来操作对应的逻辑代码。 实现过程 1、创建一个界面 2、获取数据 3、添加按钮与功能 4、程序优化调试 开发环境…

使用 IntelliJ IDEA 创建简单的 Java Web 项目

以下是使用 IntelliJ IDEA 创建几个简单的 Java Web 项目的步骤&#xff0c;每个项目实现基本的登录、注册和查看列表功能&#xff0c;依赖 Servlet/JSP 和基本的 Java Web 开发。 前置准备 确保安装了 IntelliJ IDEA Ultimate&#xff08;社区版不支持 Web 应用&#xff09;。…

抓包工具之mitmproxy

一、mitmproxy简介 mitmproxy介绍 mitmproxy又名中间人攻击代理&#xff0c;是一个抓包工具&#xff0c;类似于WireShark、Filddler&#xff0c;并且它支持抓取HTTP和HTTPS协议的数据包&#xff0c;只不过它是一个控制台的形式操作。另外&#xff0c;它还有两个非常有用的组件…

Flutter项目开发模版,开箱即用(Plus版本)

前言 当前案例 Flutter SDK版本&#xff1a;3.22.2 本文&#xff0c;是由这两篇文章 结合产出&#xff0c;所以非常建议大家&#xff0c;先看完这两篇&#xff1a; Flutter项目开发模版&#xff1a; 主要内容&#xff1a;MVVM设计模式及内存泄漏处理&#xff0c;涉及Model、…

rk3568 , buildroot , qt ,使用sqlite, 动态库, 静态库

问题说明&#xff1a; 客户反馈 &#xff0c;buildroot 系统 &#xff0c;使用qt 使用sqlite &#xff0c;有报错&#xff0c;无法使用sqlite. 测试情况说明&#xff1a; 我自己测试&#xff0c;发现&#xff0c; buildroot 自己默认就是 使能了 sqlite 的。 是否解决说明&…