数值计算系统的总能量和检查解决

25日视图(30天)
你好,
我有一个简单的代码编写的一个3自由度阻尼cart-mass系统。我的目标是,除了通过求解瞬时位移和速度,也检查解决通过确定能源系统中,应不断的在任何时刻t。
在第一种情况下的阻尼常数“c”设置为0,我得到预期结果,作为潜在的(PE)和动能的总和(KE)能量几乎是沿着整个解决方案的时间常数(我认为这是合理的能量的总和不能完全恒定在这种情况下自解算器不是可圈可点,但随时启发我如果事实并非如此)。然而,在第二种情况下,包括阻尼在哪里,我发现由于阻尼耗散的能量远远大于potenial和动能的总和在任何时间点,这似乎不合理(我期待:KE + PE在t +总耗散能量从0到时间t = KE + PE在时刻0)。
这使我想到我的问题:我有什么地方做的不对的解算器,它不考虑到阻尼正确,还是我做错了什么,我从阻尼计算损耗的能量?
提前谢谢你的帮助,
国民党。
清晰;clc
%用户输入
%系数
m = 3;%,公斤
k = 20;%弹簧常数,N / m
c = 2;%阻尼常数,Ns / m
%的自由度
N = 3;
%解算器输入
达峰时间= 30;%最大解决时间
vi = 2;% Intiial速度1自由度
%的矩阵
M =诊断接头(repmat (M, 1, N));
K = tridiag (repmat (K, 1, N + 1));
C = tridiag (repmat (C、N + 1));
%的颂歌的解决方案
tspan =[0达峰时间];
第六y0 = [0 (1, N) 0 (N - 1)];
[t、y] =数值(@ (t, y) odefcn (t、y、M、K、C、N), tspan, y0);
(Ec, En) =能量(y、M、K、C、N);
%绘制
次要情节(2,1,1)
yyaxis正确的
情节(t y (:, 1: N))
ylabel (“位移”);包含(“时间”)
网格
yyaxis
情节(t y (:, N + 1:2 * N))
ylabel (“速度”);包含(“时间”)
传奇(sprintfc (“质量% d '1:N))
网格
次要情节(2,1,2)
yyaxis正确的
情节(t, Ec)
ylabel (“动+势能”);包含(“时间”)
yyaxis
情节(t, En)
ylabel (“消散的能量”);包含(“时间”)
网格
%能量函数
函数(Ec, En) =能量(ymat M K、C、N)
%的索引
我= N;
j = N + 1;
k = 2 * N;
%提取变量
y = ymat(:, 1:我)”;
dy = ymat (:, j, k)”;
%的能量方程
柯= 0.5 * dy ' * M * dy;%的动能
PE = 0.5 * y ' * K * y;%势能
铁= abs (y ' * C * dy);%耗散能量
电子商务=诊断接头(KE + PE);
En = cumsum(诊断接头(FE));
结束
%的颂歌函数
函数dydt = odefcn (~ y、M、K、C、N)
%的索引
我= N;
j = N + 1;
k = 2 * N;
% Preallocate
dydt = 0 (k, 1);
%方程
dydt(1:我)= y (j, k);
dydt (j, k) = M \ (- c * y (j: k) - k * y(1:我));
结束
% Tri-diagonal矩阵函数
函数X = tridiag (x_c)
x(:: 1) =诊断接头(x_c (1: end-1));
x(:: 2) =诊断接头(x_c(2:结束);
x(:: 3) =诊断接头(-x_c (2: end-1), 1);
x(:: 4) =诊断接头(-x_c (2: end-1), 1);
X = (X, 3)总和;
结束

接受的答案

大卫Goodmanson
大卫Goodmanson 2019年11月24日
编辑:大卫Goodmanson 2019年11月24日
嗨增量,
问题是在耗散能量的计算不是任何类型的笔(y C dy / dt),而是的总和
穴= dy Cdy / dt = C (dy / dt) ^ 2 dt。
我只是把t带到了能量函数(自然t被包括在调用这个函数),用纯朴的cumtrapz函数积分。能量函数变得
函数(Ec, En) =能量(t ymat M K、C、N)
% ^
% %索引
我= N;
j = N + 1;
k = 2 * N;
%提取变量
y = ymat(:, 1:我)”;
dy = ymat (:, j, k)”;
%的能量方程
柯= 0.5 * dy ' * M * dy;%的动能
PE = 0.5 * y ' * K * y;%势能
铁= abs (dy ' * C * dy);%耗散能量<—
电子商务=诊断接头(KE + PE);
En = cumtrapz (t,诊断接头(FE));< %——
结束
这事以后的工作。
防晒的个人喜好我发现Ec的情节,En,不完全是误导,但是有两个不同的垂直尺度很难说的眼睛是怎么回事。诊断我只去了一个简单的情节(t, Ec, t, En)。
3评论
jasem卡迈勒
jasem卡迈勒 2分钟前
我感兴趣的代码能量测量(消散,潜在和K.E)你能请给我代码matlab如果你可能确定。
这是我的电子邮件:
jasem.m.kamel@gmail.com
提前谢谢。

登录置评。

更多的答案(0)

类别

找到更多的在编程帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!