function Result=Central_Difference(Elements,Material,Support,Free,M,C,f,fs)
%Input
% Elements: a structure containing Elements{i}.DOFs and Elements{i}.Material
% where Elements{i}.DOFs=[j k] means element i connect DOF j with k
% and Elements{i}.Material=m assign material m to element i
% Material: a structure containing material properties for bilinear springs
% where Material{m}.k1 is Spring stiffness
% Material{m}.x1 is Spring deformation beyond which the stiffness decreases
% Material{m}.k2 is Reduced stiffness
% Support: a vector of support (Fixed) DOFs of size (nSupport,1)
% Free: a vector of free DOFs of size (nFree,1)
% M:mass matrix (nFree*nFree)
% C:damping matrix (nFree*nFree)
% f:external force matrix(nFree,N)
% fs: sampling frequency
% where N is the length of data points of dynamic force
% Output:
% Result: is a structure consist of
% Result.Displacement: Displacement (nFree*N)
% Result.Velocity: Velocity (nFree*N)
% Result.Acceleration: Acceleration (nFree*N)
%-----------------------------------------
[n, N]=size(f);
dt=1/fs; %Sampling rate
x(:,1)=zeros(n,1); %initial conditions
v(:,1)=zeros(n,1); %initial conditions
[F_i, ~]=Element_Analysis(Elements,Material,Support,Free,x(:,1));
a(:,1)=M\(f(:,1)-C*v(:,1)-F_i); %initial conditions
%Initial Calculations
x_i_1=x(:,1)-v(:,1)*dt+a(:,1)*dt^2/2;
K_hat=M/dt^2+C/(2*dt);
aa=M/dt^2-C/(2*dt);
bb=-2*M/dt^2;
for i=1:1:N-1
F_hat=f(:,i)-aa*x_i_1-bb*x(:,i)-F_i;
x(:,i+1)=K_hat\F_hat;
[F_i, ~]=Element_Analysis(Elements,Material,Support,Free,x(:,i+1));
v(:,i+1)=(x(:,i+1)-x_i_1)/(2*dt);
a(:,i+1)=(x(:,i+1)-2*x(:,i)+x_i_1)/dt^2;
x_i_1=x(:,i);
end
Result.Displacement=x;
Result.Velocity=v;
Result.Acceleration=a;
end
没有合适的资源?快使用搜索试试~ 我知道了~
采用中心差分法的显式动力学求解器 matlab代码.rar
共7个文件
m:6个
png:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 56 浏览量
2024-10-29
22:43:36
上传
评论
收藏 49KB RAR 举报
温馨提示
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
资源推荐
资源详情
资源评论
收起资源包目录
采用中心差分法的显式动力学求解器 matlab代码.rar (7个子文件)
采用中心差分法的显式动力学求解器 matlab代码
Example.m 1KB
Central_Difference.m 2KB
1.png 48KB
Element_Analysis.m 928B
Get_F_i.m 307B
Bilinear_Model.m 228B
Matrix_Assembly.m 327B
共 7 条
- 1
资源评论
天天Matlab代码科研顾问
- 粉丝: 3w+
- 资源: 1882
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功