👨🎓个人主页:研学社的博客
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
形状记忆合金作为种智能材料,以其独特的形状记忆效应和超弹性效应,被广泛的应用到航空航天、土木工程、医疗等许多的工程领域之中。而将形状记忆合金以丝、带、颗粒等形态植入到基体材料中制成的形状记忆合金复合材料一直以来都是智能材料.
研究的热点与重点之一。形状记忆合金纤维增强的复合材料可以实现传统复合材料无法实现的许多特殊功能,因而具有广阔的应用前景。然而,形状记忆合金纤维与基体之间较弱的界面粘结强度在很大程度上限制了其发展与应用。因此,对形状记忆合金复合材料的界面力学特性进行研究变得十分重要。
📚2 运行结果
以上为部分结果图
%% Modified version of UTIA FEM software with UT basic SMA constitutive model
% global (total) minimization via fminunc, gradients & hessian pattern available
% OPTION 1 : trust region - approx gradient, known hessian pattern
% OPTION 2 : trust-region - approx gradient, no hessian pattern
% OPTION 3 : quasi-newton - approx gradient
% OPTION 4 : quasi-newton - no gradient
clear variables
%close all
%clc
add_paths
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% HERE, THE PROJECT AND SUBPROJECT NUMBER IS TO BE CHOSEN:
% CURRENT MODEL -> params.project = 1
params.project = 1;
% EXAMPLE 1 IN MANUSCRIPT -> params.subproject = 10;
% EXAMPLE 2 IN MANUSCRIPT -> params.subproject = 20; (ONE WAY SHAPE MEMORY EFFECT)
% params.subproject = 21; (STRESS-FREE THERMAL CYCLE)
% EXAMPLE 3 IN MANUSCRIPT -> params.subproject = 100; (SUPERELASTIC REGIME)
% -> params.subproject = 101; (PSEUDOPLASTIC REGIME)
params.subproject = 10;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
setup_project_and_subproject; %choosing the problem type & input data
testing.levels = 0;
setup_material; %choosing constutive law and input parameters
setup_parameters_visualization; %choosing visualization parameters
initialize; %basis fuctions, getting parameters & some renaming
for le=1:length(testing.levels) %going through mesh refinement levels-vector
level = testing.levels(le);
fprintf('*************************************************************************');
fprintf('\n'); fprintf('LEVEL %i STARTS \n',level);
fprintf('*************************************************************************');
fprintf('\n');
% mesh setup and various geometrical properties
mesh = setup_mesh(level,params);
params.solver = setup_parameters_solver(mesh,params); % mesh-dependent!
% plotting the original mesh and boundary nodes
if params.visualization.mesh.On && ismember(level,params.visualization.visualizeLevels)
figure; visualize_mesh; save_figure('fig_mesh');
figure; visualize_bc; alpha(0.2); save_figure('fig_bc');
end
for m=1:4 %going through chosen optimization method numbers
if testing.methods_on(m)
fprintf('=========================================================================');
fprintf('\n'); fprintf('OPTION %i STARTS \n',m);
if m == 1
mesh.HstrFullProblem = construct_Hessian(mesh,params); save_figure('fig_hessian');
end
initialize_zero_step;
increment_header;
%the main solver in "zero increment":
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[u, Ju, time, iters, densities, stresses, intvars_p] = zero_step(mesh,u_init,varstruct,params,circshift([0 0 0 1],m,2));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
dissip = 0.0*ones(mesh.ne,1);
save_step_data
varstruct.prev = intvars_p; %upgrade inital condition for "non-zero increments"
% [~,jac] = phider(mesh.coord,[1/3;1/3;1/3],'P1'); %returns gradients of basis fctions & jacobian, from "library_vectorization_faster"
% mesh.volumes_0 = abs(squeeze(jac))/factorial(size(mesh.nodes2coord,2));
%--------------
%TIME EVOLUTION
for increment=1:sum(params.increments)
params.increment = increment; %just for passing to other routines
%initial values of intvars and displacements from previous increment:
if increment > 1 %for the forst increment set already above
varstruct.prev = output.intvars_p_steps{le,m,increment-1};
end
u_init = u; %u_init = output.u_steps{le,m,increment-1};
%displacement update for Dirichlet BC & temperature:
setup_BC_functions; %initial & boundary conditions, varstruct.T is set!!!
increment_header
%the main solver in each increment:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[u, Ju, time, iters, densities, dissip, stresses, intvars_p] = incremental_energy_minimization(mesh,u_init,varstruct,params,circshift([0 0 0 1],m,2));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
save_step_data
plot_mesh_evolution %plotting time-evolution of mesh
end
graphs_plotting %plotting 2D graphs
end
end
time_summary %printing summary of computational performance
end
🎉3 参考文献
部分理论来源于网络,如有侵权请联系删除。
[1]王玉龙. 形状记忆合金复合材料界面力学特性[D].哈尔滨工程大学,2011.
[2]Mirek Frost, Jan Valdman - Vectorized implementation of incremental minimization principle for rate-independent dissipative solids using FEM: constitutive model of shape memory alloys.