Sensitivity Analysis and Filtering of Machinable Parts Using Density-Based Topology Optimization
Abstract
:1. Introduction
1.1. Density-Based Topology Optimization
1.2. Interpolation Scheme: The SIMP
1.3. Filtering: The Density Filter
1.4. Study Description and Novelty
- The initial section discusses the chosen parameter value criteria, along with the load case and material parameters of the main study case for the sensitivity analysis.
- Following that, the parameters used for analyzing the results are presented and explained, with particular emphasis on the measure of the discreteness and the evaluation of the machinability,
- Subsequently, the results of the 92 simulations are presented and analyzed, allowing conclusions related to the aim of the study to be obtained.
- The machining filter is presented and verified through different verification tests.
- Finally, the conclusions drawn from the study and potential avenues for future research are presented.
2. The Case Study
2.1. Parameter Value Selection Criteria
- Values used in other mentioned studies (OS).
- Values derived from the Euclidean distance between the element under analysis and the neighboring layer of elements (ED).
- Large estimated values intended to observe the behavior of the method with extreme values (LV).
2.2. Case Study Description and Material
2.3. Parameters for the Results Analysis
2.3.1. Measure of Non-Discreteness
2.3.2. Machinability
- The external layer (EL): comprising all the elements located on the boundaries of the design domain. These elements are always accessible because they do not have any solid interface with the exterior.
- The core layers (CL): representing the internal solid region, consisting of all the elements forming the shape of the part excluding the frontier elements.
- The frontier layer (FL): consisting of the elements above the density threshold and located between the solid and void phases.
- Elements directly accessible for a tool: These are the elements within the FL that can be readily machined using a tool.
- Elements not directly accessible but machinable by machining a neighboring element: These elements are not directly accessible to a tool but can still be manufactured through the machining of a neighboring element.
- Non-machinable elements: This group consists of elements within the FL that are not machinable.
3. Sensitivity Analysis
- Sim. ID: the identifier of the specific TO case.
- Penalization, p, and Filter Radius, R.
- Iterations: the number of iterations required to achieve the convergence condition. Note that a maximum of 5000 iterations was set, so if the TO reaches this value, convergence is not reached.
- It. Time: the average time the TO took in every iteration.
- Objective, the compliance of the structure, calculated as in Equation (8):
- Non-Discreteness: the described parameter in Section 2.3.1.
- Machinability: the described parameter in Section 2.3.2.
4. Additions to Filtering
4.1. Machining Filter
4.2. Heaviside Step Filter
4.3. Ellipsoid-Shaped Density Filter
5. Results
5.1. Validation
- The case (a) of Figure A1, Figure A2, Figure A3 and Figure A4 of Appendix C.1, Appendix C.2, Appendix C.3 and Appendix C.4 represents the standard case without any additional filter added.
- The case (b) of Figure A1, Figure A2, Figure A3 and Figure A4 of Appendix C.1, Appendix C.2, Appendix C.3 and Appendix C.4 is the resultant shape of the standard case in combination with the Heaviside step filter, with .
- In Figure A1c, Figure A2c, Figure A3c and Figure A4c of Appendix C.1, Appendix C.2, Appendix C.3 and Appendix C.4, the ellipsoid-shaped density filter is applied to the standard case. Fixing the column of in Appendix B.2, Appendix B.3 and Appendix B.4, the radius of each Cartesian direction is chosen in order to obtain the features in that axis of the case in the sensitivity analysis. In this case and are used as filter radii for obtaining a more manufacturable result with the features of and (Appendix B.4) in the x direction, and (Appendix B.4) in the y direction, and and (Appendix B.3) in the z direction.
- In the (d) case, the machining filter is applied to the standard case.
- The case (e) showcases the combination of case (b) and case (c); this is the standard case, with a Heaviside step filter and ellipsoid-shaped density filter combined.
- Finally, the case (f) evidences the resultant shape of the combination of case (e) with the machining filter. In this case, the three additions described in Section 4 are applied.
5.2. Conclusions
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Acknowledgments
Conflicts of Interest
Appendix A
Appendix A.1. Machinability MATLAB® Code
function [machnmbr,grayflag,coreflag,machflag,neigflag,periflag,eroflag] = machnumberx(xPhys,nelx,nely,nelz,th) |
machflag=zeros(size(xPhys)); % If machflag=1 means there’s accesibility |
coreflag=zeros(size(xPhys)); % If coreflag=1 means its not frontier |
neigflag=zeros(size(xPhys)); % If neigflag=1 means acces through neigbourhood |
periflag=zeros(size(xPhys)); % If periflag=1 means its the perimeter of the initial volume |
eroflag=zeros(size(xPhys)); % If eroflag=1 means its removable solid |
for k1=2:(nelz-1) |
for i1=2:(nelx-1) |
for j1=2:(nely-1) |
if xPhys(j1,i1,k1)>=0.5 |
% Count non frontier elements |
if all(xPhys(j1,i1,(k1-1:k1+1))>=th) & all(xPhys(j1,(i1-1:i1+1),k1)>=th) & all(xPhys((j1-1:j1+1),i1,k1)>=th) |
coreflag(j1,i1,k1)=1; |
end |
% Access x direction |
if machflag(j1,i1,k1)==0 && (all(xPhys(j1,1:i1-1,k1)<th) || all(xPhys(j1,i1+1:nelx,k1)<th)) |
machflag(j1,i1,k1)=1; |
end |
% Access throough neighbour x direction |
if (all(xPhys(j1+1,1:i1,k1+1)<=th) || all(xPhys(j1-1,1:i1,k1+1)<=th) || ... |
all(xPhys(j1+1,1:i1,k1-1)<=th) || all(xPhys(j1-1,1:i1,k1-1)<=th) || ... |
all(xPhys(j1+1,i1:nelx,k1+1)<=th) || all(xPhys(j1-1,i1:nelx,k1+1)<=th) || ... |
all(xPhys(j1+1,i1:nelx,k1-1)<=th) || all(xPhys(j1-1,i1:nelx,k1-1)<=th))... |
&& machflag(j1,i1,k1)==0 |
neigflag(j1,i1,k1)=1; |
end |
end |
end |
end |
end |
for k1=1:nelz |
for i1=1:nelx |
for j1=1:nely |
% Count frontier elements |
if (i1==1 | i1==nelx | j1==1 | j1==nely | k1==1 | k1==nelz) & xPhys(j1,i1,k1)>=th & machflag(j1,i1,k1)==0 & neigflag(j1,i1,k1)==0 & coreflag(j1,i1,k1)==0 |
periflag(j1,i1,k1)=1; |
end |
end |
end |
end |
% Percentaje of accesible elements |
machnmbr=((nnz(machflag(:))+nnz(neigflag(:)))*100)/(sum(xPhys(:)>=th)-sum(coreflag(:))-nnz(periflag(:))); |
thmat=zeros(size(xPhys)); |
thmat(find(xPhys>=th))=1; |
grayflag=thmat-(machflag+coreflag+neigflag+periflag); % Flag for frontier elements |
end |
Appendix A.2. Filter Radii MATLAB® Code
function rfil = machradiix(nele,nelx,nely,nelz,xTilde,j1,i1,k1,th) |
% RADIUS IN X DIRECTION |
raccsflag=0; raccnflag=0; racceflag=0; raccwflag=0; |
raccs=0; raccn=0; racce=0; raccw=0; |
rneigsflag=0; rneignflag=0; rneigeflag=0; rneigwflag=0; |
rneigs=0; rneign=0; rneige=0; rneigw=0; |
% RADIUS ACCESS IN X DIRECTION |
% x south direction |
radpos=0; j2=j1-1; |
if xTilde(j2,i1,k1)>=th |
raccs=NaN; |
else |
while raccsflag==0 |
if j2>=1 & all(xTilde(j2,(1:i1-1),k1)<th)==1 |
raccsflag=1; |
elseif j2>=1 |
radpos=radpos+1; |
end |
raccs=j2-j1; |
if (j2>1 & xTilde(j2,i1,k1)<th) & raccsflag==0, j2=j2-1; else raccsflag=1; end |
end |
end |
% x north direction |
radpos=0; j2=j1+1; |
if xTilde(j2,i1,k1)>=th |
raccn=NaN; |
else |
while raccnflag==0 |
if j2<=nely & all(xTilde(j2,(1:i1-1),k1)<th)==1 |
raccnflag=1; |
elseif j2<=nely |
radpos=radpos+1; |
end |
raccn=j2-j1; |
if (j2<nely & xTilde(j2,i1,k1)<th) & raccnflag==0, j2=j2+1; else raccnflag=1; end |
end |
end |
% x east direction |
radpos=0; k2=k1-1; |
if xTilde(j1,i1,k2)>=th |
racce=NaN; |
else |
while racceflag==0 |
if k2>=1 & all(xTilde(j1,(1:i1-1),k2)<th)==1 |
racceflag=1; |
elseif k2>=1 |
radpos=radpos+1; |
end |
racce=k2-k1; |
if (k2>1 & xTilde(j1,i1,k2)<th) & racceflag==0, k2=k2-1; else racceflag=1; end |
end |
end |
% x west direction |
radpos=0; k2=k1+1; |
if xTilde(j1,i1,k2)>=th |
raccw=NaN; |
else |
while raccwflag==0 |
if k2<=nelz & all(xTilde(j1,(1:i1-1),k2)<th)==1 |
raccwflag=1; |
elseif k2<=nelz |
radpos=radpos+1; |
end |
raccw=k2-k1; |
if (k2<nelz & xTilde(j1,i1,k2)<th) & raccwflag==0, k2=k2+1; else raccwflag=1; end |
end |
end |
% RADIUS NEIGHBOURHOOD IN X DIRECTION |
% x south direction |
radpos=0; j2=j1-1; |
if xTilde(j2,i1,k1)>=th |
rneigs=NaN; |
else |
while rneigsflag==0 |
if j2>=1 & all(xTilde(j2,(1:i1),k1)<th)==1 |
rneigsflag=1; |
elseif j2>=1 |
radpos=radpos+1; |
end |
rneigs=j2-j1; |
if (j2>1 & xTilde(j2,i1,k1)<th) & rneigsflag==0, j2=j2-1; else rneigsflag=1; end |
end |
end |
% x north direction |
radpos=0; j2=j1+1; |
if xTilde(j2,i1,k1)>=th |
rneign=NaN; |
else |
while rneignflag==0 |
if j2<=nely & all(xTilde(j2,(1:i1),k1)<th)==1 |
rneignflag=1; |
elseif j2<=nely |
radpos=radpos+1; |
end |
rneign=j2-j1; |
if (j2<nely & xTilde(j2,i1,k1)<th) & rneignflag==0, j2=j2+1; else rneignflag=1; end |
end |
end |
% x east direction |
radpos=0; k2=k1-1; |
if xTilde(j1,i1,k2)>=th |
rneige=NaN; |
else |
while rneigeflag==0 |
if k2>=1 & all(xTilde(j1,(1:i1),k2)<th)==1 |
rneigeflag=1; |
elseif k2>=1 |
radpos=radpos+1; |
end |
rneige=k2-k1; |
if (k2>1 & xTilde(j1,i1,k2)<th) & rneigeflag==0, k2=k2-1; else rneigeflag=1; end |
end |
end |
% x west direction |
radpos=0; k2=k1+1; |
if xTilde(j1,i1,k2)>=th |
rneigw=NaN; |
else |
while rneigwflag==0 |
if k2<=nelz & all(xTilde(j1,(1:i1),k2)<th)==1 |
rneigwflag=1; |
elseif k2<=nelz |
radpos=radpos+1; |
end |
rneigw=k2-k1; |
if (k2<nelz & xTilde(j1,i1,k2)<th) & rneigwflag==0, k2=k2+1; else rneigwflag=1; end |
end |
end |
fil=[raccs raccn racce raccw rneigs rneign rneige rneigw]; |
minValue = min(abs(fil(:))); |
minIndex=find(abs(fil)==minValue); |
if mean(size(minIndex))>1 |
prefil=fil(minIndex); |
rfil=prefil(1); |
elseif isnan(minValue) |
rfil=0; |
else |
rfil=fil(minIndex); |
end |
end |
Appendix A.3. Machining Filter MATLAB® Code
% MACHINABILITY ANALYSIS |
[machnmbr,grayflag,coreflag,machflag,neigflag,periflag,eroflag] = machnumberx(xTilde,nelx,nely,nelz,th); |
checkflag=zeros(size(xPhys)); % Flag for not repeating elements while filtering |
solidflag=zeros(size(xPhys)); |
if loop>=25 |
for k1 = 1:nelz |
for i1 = 1:nelx |
for j1 = 1:nely |
if i1>1 && i1<nelx && j1>1 && j1<nely && k1>1 && k1<nelz |
rfil = machradiix(nele,nelx,nely,nelz,xTilde,j1,i1,k1,th); |
if rfil>0, j2=[j1:min(j1+rfil,nely)]; k2=[k1:min(k1+rfil,nelz)]; |
elseif rfil<0, j2=[max(1,j1+rfil):j1]; k2=[max(1,k1+rfil):k1]; |
else, j2=j1; k2=k1; end |
for k2=k2(1:end) |
for j2=j2(1:end) |
if xTilde(j2,i1,k2)<th && checkflag(j2,i1,k2)==0 && grayflag(j1,i1,k1)==1 |
checkflag(j2,i1,k2)=1; |
end |
end |
end |
end |
end |
end |
end |
end |
if loop>25 |
for k2=1:nelz |
for j2=1:nely |
for i1=1:nelx |
if xTilde(j2,i1,k2) >= th && all(xTilde(j2,1:i1-1,k2)<th) && any(checkflag(j2,i1:end,k2)==1) && i1 > 1 |
xTilde(j2,i1,k2) = xTilde(j2,i1-1,k2); |
checkflag(j2,i1,k2) = 1; |
solidflag(j2,i1,k2) = 1; |
elseif xTilde(j2,i1,k2) >= th && i1 == 1 && any(checkflag(j2,i1:end,k2)==1) |
xTilde(j2,i1,k2) = 0; |
checkflag(j2,i1,k2) = 1; |
solidflag(j2,i1,k2) = 1; |
end |
end |
end |
end |
end |
Appendix B
Appendix B.1. Numerical Results of the Sentitivity Analysis
Sim. ID | Penalization | Filter Radius | Iterations | It. Time [s] | Objective | Non-Discreteness | Machinability |
1 | 3 | 1.5 | 567 | 13.884 | 21.943 | 14.744 | 76.959 |
2 | 4 | 1.5 | 816 | 11.939 | 23.102 | 11.78 | 83.592 |
3 | 5 | 1.5 | 1677 | 11.938 | 26.6456 | 13.481 | 88.424 |
4 | 6 | 1.5 | 1122 | 11.919 | 27.5479 | 12.866 | 91.694 |
5 | 3 | 1.8 | 820 | 11.656 | 23.545 | 17.052 | 83.195 |
6 | 4 | 1.8 | 714 | 11.851 | 24.3423 | 14.309 | 88.123 |
7 | 5 | 1.8 | 765 | 11.813 | 27.4922 | 16.05 | 80.631 |
8 | 6 | 1.8 | 777 | 11.387 | 28..5529 | 14.818 | 89.976 |
9 | 3 | 2 | 1122 | 11.944 | 26..6273 | 17.28 | 85.983 |
10 | 4 | 2 | 624 | 11.229 | 25..0757 | 15.325 | 89.987 |
11 | 5 | 2 | 1048 | 11.618 | 27.2029 | 15.431 | 86.971 |
12 | 6 | 2 | 750 | 14.152 | 29.3505 | 15.861 | 94.034 |
13 | 3 | 2.45 | 1043 | 10.221 | 25.2856 | 20.039 | 91.066 |
14 | 4 | 2.45 | 845 | 9.914 | 27.9992 | 18.703 | 91.904 |
15 | 5 | 2.45 | 953 | 11.012 | 30.9835 | 18.375 | 87.688 |
16 | 6 | 2.45 | 1336 | 10.713 | 32.7265 | 18.054 | 90.878 |
17 | 3 | 2.5 | 1009 | 10.158 | 25.6883 | 20.603 | 91.927 |
18 | 4 | 2.5 | 1345 | 10.036 | 28.412 | 19.025 | 92.277 |
19 | 5 | 2.5 | 1338 | 11.255 | 31.8068 | 18.811 | 88.728 |
20 | 6 | 2.5 | 1253 | 11.784 | 33.5945 | 18.666 | 90.139 |
Sim. ID | Penalization | Filter Radius | Iterations | It. Time [s] | Objective | Non-Discreteness | Machinability |
21 | 3 | 2.9 | 989 | 10.025 | 27.5435 | 22.934 | 92.992 |
22 | 4 | 2.9 | 1212 | 10.278 | 30.833 | 21.347 | 93.632 |
23 | 5 | 2.9 | 1224 | 10.549 | 35.4921 | 21.445 | 89.727 |
24 | 6 | 2.9 | 1082 | 11.362 | 37.2027 | 21.114 | 89.466 |
25 | 3 | 3 | 752 | 10.991 | 27.9193 | 23.285 | 89.966 |
26 | 4 | 3 | 1017 | 10.241 | 31.6539 | 21.926 | 92.385 |
27 | 5 | 3 | 1003 | 10.203 | 36.2139 | 21.896 | 90.352 |
28 | 6 | 3 | 1018 | 10.88 | 38.0111 | 21.506 | 89.577 |
29 | 3 | 3.4 | 628 | 10.129 | 30.2176 | 25.09 | 92.742 |
30 | 4 | 3.4 | 1089 | 10.766 | 35.8477 | 24.691 | 92.343 |
31 | 5 | 3.4 | 752 | 10.997 | 41.52 | 24.442 | 91.737 |
32 | 6 | 3.4 | 449 | 11.209 | 45.7168 | 24.655 | 89.955 |
33 | 3 | 3.47 | 1232 | 10.237 | 30.586 | 25.537 | 93.644 |
34 | 4 | 3.47 | 979 | 10.822 | 36.5405 | 25.151 | 92.466 |
35 | 5 | 3.47 | 545 | 9.888 | 42.4405 | 24.893 | 91.731 |
36 | 6 | 3.47 | 697 | 10.344 | 46.9585 | 25.162 | 89.736 |
37 | 3 | 3.5 | 1068 | 10.577 | 30.7718 | 25.73 | 93.368 |
38 | 4 | 3.5 | 890 | 10.576 | 36.8576 | 25.353 | 92.852 |
39 | 5 | 3.5 | 675 | 10.72 | 42.7654 | 25.069 | 91.84 |
40 | 6 | 3.5 | 686 | 10.207 | 47.569 | 25.362 | 91.116 |
Sim. ID | Penalization | Filter Radius | Iterations | It. Time [s] | Objective | Non-Discreteness | Machinability |
41 | 3 | 3.8 | 695 | 14.976 | 32.6765 | 27.575 | 95.482 |
42 | 4 | 3.8 | 704 | 14.976 | 40.071 | 27.215 | 91.743 |
43 | 5 | 3.8 | 652 | 9.903 | 47.0157 | 26.87 | 91.478 |
44 | 6 | 3.8 | 817 | 11.018 | 54.1068 | 27.279 | 90.762 |
45 | 3 | 4 | 836 | 10.748 | 34.034 | 28.765 | 95.363 |
46 | 4 | 4 | 614 | 11.769 | 42.5076 | 28.438 | 90.458 |
47 | 5 | 4 | 626 | 10.367 | 50.9945 | 28.469 | 89.762 |
48 | 6 | 4 | 584 | 9.966 | 58.6735 | 28.232 | 92.896 |
49 | 3 | 4.2 | 617 | 12.87 | 35.3255 | 29.798 | 95.279 |
50 | 4 | 4.2 | 743 | 10 | 44.8544 | 29.507 | 92.683 |
51 | 5 | 4.2 | 915 | 12.313 | 54.5237 | 29.452 | 90.514 |
52 | 6 | 4.2 | 934 | 10.778 | 63.434 | 29.257 | 93.449 |
53 | 3 | 4.4 | 647 | 10.607 | 36.9453 | 31.019 | 95.679 |
54 | 4 | 4.4 | 501 | 10.435 | 47.8507 | 30.796 | 93.079 |
55 | 5 | 4.4 | 744 | 10.185 | 58.8192 | 30.438 | 94.141 |
56 | 6 | 4.4 | 736 | 9.681 | 69.2076 | 30.209 | 93.676 |
57 | 3 | 4.5 | 1149 | 9.686 | 37.6527 | 31.513 | 96.252 |
58 | 4 | 4.5 | 415 | 10.5277 | 49.3779 | 31.372 | 92.43 |
59 | 5 | 4.5 | 422 | 10.185 | 61.3949 | 31.067 | 93.922 |
60 | 6 | 4.5 | 580 | 9.973 | 72.4609 | 30.8 | 96.268 |
Sim. ID | Penalization | Filter Radius | Iterations | It. Time [s] | Objective | Non-Discreteness | Machinability |
61 | 3 | 4.8 | 1019 | 10.463 | 40.1734 | 33.049 | 97.36 |
62 | 4 | 4.8 | 573 | 10.778 | 54.4644 | 33.106 | 93.393 |
63 | 5 | 4.8 | 699 | 10.476 | 70.182 | 32.808 | 96.059 |
64 | 6 | 4.8 | 528 | 10.727 | 84.8949 | 32.616 | 94.806 |
65 | 3 | 5 | 810 | 9.537 | 41.7655 | 33.98 | 96.755 |
66 | 4 | 5 | 907 | 9.736 | 57.4949 | 33.979 | 92.887 |
67 | 5 | 5 | 851 | 10.553 | 75.8592 | 33.789 | 92.671 |
68 | 6 | 5 | 606 | 11.068 | 93.0405 | 33.562 | 95.795 |
69 | 3 | 5.2 | 779 | 9.313 | 43.6644 | 35.008 | 97.477 |
70 | 4 | 5.2 | 1091 | 9.651 | 61.3489 | 35.032 | 92.34 |
71 | 5 | 5.2 | 1051 | 9.884 | 83.3058 | 34.979 | 92.605 |
72 | 6 | 5.2 | 337 | 9.899 | 104.346 | 34.754 | 95.6 |
73 | 3 | 6 | 535 | 9.224 | 44.6408 | 37.613 | 100 |
74 | 4 | 6 | 505 | 9.413 | 82.3081 | 39.494 | 96.195 |
75 | 5 | 6 | 1149 | 10.701 | 106.722 | 37.338 | 84.818 |
76 | 6 | 6 | 1015 | 10.892 | 138.359 | 37.181 | 85.325 |
77 | 3 | 8 | 473 | 9.941 | 73.6699 | 47.258 | 100 |
78 | 4 | 8 | 396 | 10.078 | 167.952 | 48.21 | 98.516 |
79 | 5 | 8 | 452 | 10.246 | 261.633 | 46.87 | 89.919 |
80 | 6 | 8 | 576 | 10.743 | 432.583 | 46.606 | 89.592 |
Sim. ID | Penalization | Filter Radius | Iterations | It. Time [s] | Objective | Non-Discreteness | Machinability |
81 | 3 | 10 | 381 | 10.982 | 118.666 | 53.618 | 100 |
82 | 4 | 10 | 1144 | 13.666 | 284.998 | 53.272 | 98.14 |
83 | 5 | 10 | 1811 | 14.05 | 219.921 | 38.502 | 100 |
84 | 6 | 10 | 3986 | 17.087 | 314.672 | 37.534 | 100 |
85 | 3 | 15 | 238 | 19.017 | 230.282 | 59.919 | 100 |
86 | 4 | 15 | 1083 | 20.813 | 363.853 | 51.092 | 100 |
87 | 5 | 15 | 5000 | NaN | NaN | NaN | NaN |
88 | 6 | 15 | 5000 | NaN | NaN | NaN | NaN |
89 | 3 | 20 | 119 | 30.664 | 281.498 | 61.537 | 100 |
90 | 4 | 20 | 189 | 33.328 | 1150.9 | 61.91 | NaN |
91 | 5 | 20 | 5000 | NaN | NaN | NaN | NaN |
92 | 6 | 20 | 5000 | NaN | NaN | NaN | NaN |
Appendix B.2. Results of the Sensitivity Analysis for 1.5 ≤ R ≤ 3.4
Appendix B.3. Results of the Sensitivity Analysis for 3.47 ≤ R ≤ 4.7
Appendix B.4. Results of the Sensitivity Analysis for 5 ≤ R ≤ 20
NON-SHOWABLE RESULTS | NON-SHOWABLE RESULTS | ||||
NON-SHOWABLE RESULTS | NON-SHOWABLE RESULTS | ||||
Appendix C
Appendix C.1. Verifications: Superior Perspective View
Appendix C.2. Verifications: Inferior Perspective View
Appendix C.3. Verifications: Lateral View
Appendix C.4. Verifications: Front View
References
- Shiye, B.; Jiejiang, Z. Topology Optimization Design of 3D Continuum Structure with Reserved Hole Based on Variable Density Method. J. Eng. Sci. Technol. Rev. 2016, 9, 121–128. [Google Scholar] [CrossRef]
- Michell, A.G.M. LVIII. The Limits of Economy of Material in Frame-Structures. Lond. Edinb. Dublin Philos. Mag. J. Sci. 1904, 8, 589–597. [Google Scholar] [CrossRef]
- Dorn, W.S.; Gomory, R.E.; Greenberg, H.J. Automatic Design of Optimal Structures. J. Mécanique 1964, 3, 25–52. [Google Scholar]
- Bendsøe, M.P.; Kikuchi, N. Generating Optimal Topologies in Structural Design Using a Homogenization Method. Comput. Methods Appl. Mech. Eng. 1988, 71, 197–224. [Google Scholar] [CrossRef]
- Sigmund, O.; Maute, K. Topology Optimization Approaches. Struct. Multidiscip. Optim. 2013, 48, 1031–1055. [Google Scholar] [CrossRef]
- Liu, K.; Tovar, A. An Efficient 3D Topology Optimization Code Written in Matlab. Struct. Multidiscip. Optim. 2014, 50, 1175–1196. [Google Scholar] [CrossRef]
- Ferrari, F.; Sigmund, O. A New Generation 99 Line Matlab Code for Compliance Topology Optimization and Its Extension to 3D. Struct. Multidiscip. Optim. 2020, 62, 2211–2228. [Google Scholar] [CrossRef]
- Bendsøe, M.P. Optimal Shape Design as a Material Distribution Problem. Struct. Optim. 1989, 1, 193–202. [Google Scholar] [CrossRef]
- Mlejnek, H.P. Some Aspects of the Genesis of Structures. Struct. Optim. 1992, 5, 64–69. [Google Scholar] [CrossRef]
- Kohn, R.V.; Strang, G. Optimal Design and Relaxation of Variational Problems, II. Commun. Pure Appl. Math. 1986, 39, 139–182. [Google Scholar] [CrossRef]
- Haber, R.B.; Jog, C.S.; Bendsøe, M.P. A New Approach to Variable-Topology Shape Design Using a Constraint on Perimeter. Struct. Optim. 1996, 11, 1–12. [Google Scholar] [CrossRef]
- Jog, C.S. A Robust Dual Algorithm for Topology Design of Structures in Discrete Variables. Int. J. Numer. Methods Eng. 2001, 50, 1607–1618. [Google Scholar] [CrossRef]
- Duysinx, P. Layout Optimization: A Mathematical Programming Approach; Danish Centre for Applied Mathematics and Mechanics: Lyngby, Denmark, 1997. [Google Scholar]
- Zhou, M.; Rozvany, G.I.N. The COC Algorithm, Part II: Topological, Geometrical and Generalized Shape Optimization. Comput. Methods Appl. Mech. Eng. 1991, 89, 309–336. [Google Scholar] [CrossRef]
- Andreassen, E.; Clausen, A.; Schevenels, M.; Lazarov, B.S.; Sigmund, O. Efficient Topology Optimization in MATLAB Using 88 Lines of Code. Struct. Multidiscip. Optim. 2011, 43, 1–16. [Google Scholar] [CrossRef]
- Jiang, L.; Wu, C.W. Topology Optimization of Energy Storage Flywheel. Struct. Multidiscip. Optim. 2017, 55, 1917–1925. [Google Scholar] [CrossRef]
- Guest, J.K. Topology Optimization with Multiple Phase Projection. Comput. Methods Appl. Mech. Eng. 2009, 199, 123–135. [Google Scholar] [CrossRef]
- Li, L.; Khandelwal, K. Volume Preserving Projection Filters and Continuation Methods in Topology Optimization. Eng. Struct. 2015, 85, 144–161. [Google Scholar] [CrossRef]
- Tyflopoulos, E.; Flem, D.T.; Steinert, M.; Olsen, A. State of the Art of Generative Design and Topology Optimization and Potential Research Needs. In Proceedings of the DS 91: Proceedings of NordDesign 2018, Linköping, Sweden, 14–17 August 2018. [Google Scholar]
- Bendsøe, M.P.; Sigmund, O. Topology Optimization: Theory, Methods, and Applications, 2nd ed.; Springer Science & Business Media: Berlin/Heidelberg, Germany, 2003. [Google Scholar]
- Bruns, T.E.; Tortorelli, D.A. Topology Optimization of Non-Linear Elastic Structures and Compliant Mechanisms. Comput. Methods Appl. Mech. Eng. 2001, 190, 3443–3459. [Google Scholar] [CrossRef]
- Altair Engineering Inc. Altair OptiStruct Help Guide; Altair Engineering Inc.: Troy, MI, USA, 2023. [Google Scholar]
- Butze, M.; Sert, E.; Öchsner, A. Development of a Topology-optimized Indoor Crane Trolley for Additive Manufacturing. Materwiss Werksttech 2022, 53, 526–535. [Google Scholar] [CrossRef]
- Dassault Systèmes SolidWorks Help Page. Available online: https://help.solidworks.com/ (accessed on 20 April 2024).
- PTC; Tonny Abbey PTC Creo Blogs. Available online: https://www.ptc.com/en/blogs/cad/what-is-topology-optimization (accessed on 20 April 2024).
- Bendsøe, M.P.; Sigmund, O. Material Interpolation Schemes in Topology Optimization. Arch. Appl. Mech. 1999, 69, 635–654. [Google Scholar] [CrossRef]
- Lee, H.Y.; Zhu, M.; Guest, J.K. Topology Optimization Considering Multi-Axis Machining Constraints Using Projection Methods. Comput. Methods Appl. Mech. Eng. 2022, 390, 114464. [Google Scholar] [CrossRef]
- Langelaar, M. Topology Optimization for Multi-Axis Machining. Comput. Methods Appl. Mech. Eng. 2019, 351, 226–252. [Google Scholar] [CrossRef]
- Mirzendehdel, A.M.; Behandish, M.; Nelaturi, S. Topology Optimization with Accessibility Constraint for Multi-Axis Machining. Comput. -Aided Des. 2020, 122, 102825. [Google Scholar] [CrossRef]
- Sigmund, O. Morphology-Based Black and White Filters for Topology Optimization. Struct. Multidiscip. Optim. 2007, 33, 401–424. [Google Scholar] [CrossRef]
- Schevenels, M.; Sigmund, O. On the Implementation and Effectiveness of Morphological Close-Open and Open-Close Filters for Topology Optimization. Struct. Multidiscip. Optim. 2016, 54, 15–21. [Google Scholar] [CrossRef]
- Pellens, J.; Lombaert, G.; Lazarov, B.; Schevenels, M. Combined Length Scale and Overhang Angle Control in Minimum Compliance Topology Optimization for Additive Manufacturing. Struct. Multidiscip. Optim. 2019, 59, 2005–2022. [Google Scholar] [CrossRef]
- Wang, F.; Jensen, J.; Sigmund, O. Robust Topology Optimization of Photonic Crystal Waveguides with Tailored Dispersion Properties. JOSA B 2011, 28, 387–397. [Google Scholar] [CrossRef]
- Prager, W. Optimality Criteria in Structural Design. Proc. Natl. Acad. Sci. USA 1968, 61, 794–796. [Google Scholar] [CrossRef]
- Karush, W. Minima of Functions of Several Variables with Inequalities as Side Conditions; Springer: Basel, Switzerland, 2014. [Google Scholar]
- Bendsøe, M.P. Optimization of Structural Topology, Shape, and Material, 1st ed.; Springer: Berlin/Heidelberg, Germany, 1995; ISBN 978-3-662-03117-9. [Google Scholar]
- Sigmund, O. A 99 Line Topology Optimization Code Written in Matlab. Struct. Multidiscip. Optim. 2001, 21, 120–127. [Google Scholar] [CrossRef]
- Svanberg, K.; Svärd, H. Density Filters for Topology Optimization Based on the Pythagorean Means. Struct. Multidiscip. Optim. 2013, 48, 859–875. [Google Scholar] [CrossRef]
- Wang, F.; Lazarov, B.S.; Sigmund, O. On Projection Methods, Convergence and Robust Formulations in Topology Optimization. Struct. Multidiscip. Optim. 2011, 43, 767–784. [Google Scholar] [CrossRef]
- Vadillo Morillas, A.; Meneses Alonso, J.; Bustos Caballero, A.; Sisamón, C.C.; Ceruti, A. Adaptive Variable Design Algorithm for Improving Topology Optimization in Additive Manufacturing Guided Design. Inventions 2024, 9, 70. [Google Scholar] [CrossRef]
R | 1.5 | 1.8 | 2 | 2.45 | 2.5 | 2.9 | 3 | 3.4 | 3.47 | 3.5 | 3.8 | 4 |
Reason | OS | ED | ED | ED | ED | ED | OS | ED | ED | ED | ED | ED |
R | 4.2 | 4.4 | 4.5 | 4.7 | 5 | 5.2 | 6 | 8 | 10 | 15 | 20 | |
Reason | ED | ED | ED | ED | ED | ED | OS | LV | LV | LV | LV |
Case (a) | Case (b) | Case (c) | Case (d) | Case (e) | Case (f) | Case (g) | |
---|---|---|---|---|---|---|---|
Iterations | 1018 | 1738 | 346 | 2086 | 1087 | 2639 | 790 |
21.5065 | 0.8477 | 28.3512 | 3.901 | 1.1824 | 5.2443 | 6.1459 | |
Machinability | 89.577 | 94.381 | 95.751 | 100 | 95.479 | 100 | 100 |
Compliance | 38.0111 | 19.5020 | 59.1714 | 136.4004 | 21.1516 | 46.4197 | 34.3937 |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2024 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Vadillo Morillas, A.; Meneses Alonso, J.; Bustos Caballero, A.; Castejón Sisamón, C. Sensitivity Analysis and Filtering of Machinable Parts Using Density-Based Topology Optimization. Appl. Sci. 2024, 14, 6260. https://doi.org/10.3390/app14146260
Vadillo Morillas A, Meneses Alonso J, Bustos Caballero A, Castejón Sisamón C. Sensitivity Analysis and Filtering of Machinable Parts Using Density-Based Topology Optimization. Applied Sciences. 2024; 14(14):6260. https://doi.org/10.3390/app14146260
Chicago/Turabian StyleVadillo Morillas, Abraham, Jesús Meneses Alonso, Alejandro Bustos Caballero, and Cristina Castejón Sisamón. 2024. "Sensitivity Analysis and Filtering of Machinable Parts Using Density-Based Topology Optimization" Applied Sciences 14, no. 14: 6260. https://doi.org/10.3390/app14146260
APA StyleVadillo Morillas, A., Meneses Alonso, J., Bustos Caballero, A., & Castejón Sisamón, C. (2024). Sensitivity Analysis and Filtering of Machinable Parts Using Density-Based Topology Optimization. Applied Sciences, 14(14), 6260. https://doi.org/10.3390/app14146260