1 Introduction

Topology optimization of structures considering dynamic characteristics has drawn the interests of many researchers since 1990s. Generally speaking, the dynamics related topology optimization is much more intricate than the one concerning static characteristics only. Some typical obstacles include the so-called localized modes (Pedersen 2000), the possible non-differentiability of the eigenfrequencies (Seyranian et al. 1994; Du and Olhoff 2007; Zhou et al. 2017b) and the higher computational cost when compared to static analysis (Liu et al. 2015; Yoon 2010).

Basically, existing literatures on the dynamics related topology optimization can be categorized into three groups:

  • In the first group, the eigenfrequencies of structures are the topic, either the eigenfrequencies of some fixed orders (Seyranian et al. 1994; Huang et al. 2010; Zhan et al. 2009; Ma and Kikuchi 1995; Díaz and Kikuchi 1992; Zhou et al. 2017b) or the eigenfrequency gap (Du and Olhoff 2007; Jensen and Pedersen 2006; Halkjær et al. 2006) is taken as the objective function. The goal is to maximize the eigenfrequency or the eigenfrequency gap with limited material usage.

  • In the second group, the steady-state frequency response of structures is of interests and the goal is to minimize the structural response under the harmonic excitation of some fixed frequencies or among some frequency ranges (Jensen 2007). The objective function may be taken as the dynamic compliance (Ma et al. 1993; Olhoff and Du 2016), the (weighted) amplitude of the displacements (Olhoff and Niu 2016; Yu et al. 2013; Shu et al. 2011) of some specified nodes, etc.

  • In the third group, the transient response of structures is concerned and the aim is to minimize the structural response at some fixed time or in a time range under transient time-domain excitation. For an insight into this group, we recommend the review paper (Kang et al. 2006) and the references therein.

In the simplest vibration isolation theory of single-dof system, the vibration isolation system is composed of the vibration source (the machines), the isolators and the ground. While in engineering practice the supporting structure is often included in the system to link different machines and to facilitate the installation and maintenance.

As shown in Fig. 1, in this paper we focus on the design of an vibration isolation system where both the dynamic and the static characteristics of the system, as well as the vibration isolation performance should be considered simultaneously. More specifically, the locations of machines, the locations of isolators and the layout of supporting structure will all be taken as design variables so that the whole system can be synthesized.

Fig. 1
figure 1

A vibration isolation system adapted from engineering practice. The orange one is the supporting structure. The strong oliver ones (generators) are the machines and the vibration source in this system. The black ones are the rubber isolators

The continuum (i.e. the supporting structure) will be designed using normal topology optimization techniques. When optimizing the locations, the intuitionistic idea of taking coordinates of isolators and machines as parameters and conducting the parametric optimization to find the best coordinates would be very inefficient. FEA programs in solid mechanics are based on Lagrangian mesh, so modifying the coordinates of the isolators would directly lead to the time-consuming remeshing process. In this paper we will choose the best locations among some predefined positions. This way optimizing the locations can be formulated as 0-1 programming problems. By using a special trick that treating the 0-1 sequence as binary bits, the number of design variables can be further reduced and the constraints can be implicitly included in the objective function. So the solution of the 0-1 programming problems can be quite efficient.

Figure 2 illustrates the simplified model of the original physical system(cf. Fig. 1). Considering the essential difference between the machines, the isolators (which are modeled as discrete point-masses and spring elements respectively) and the supporting structure (which is modeled as continuum shell elements), it is both appropriate and advantageous to design the supporting structure and the isolators in separate stages by using the strategy of divide-and-conquer. However the change in the topology of the structure will surely influence the optimal locations of isolators and machines, and vice versa. So the design of the supporting structure and the locations should be included in a closed-loop to fully take into account the interactions between each other. This way, the whole system may be designed by the multilevel optimization method.

Fig. 2
figure 2

The vibration isolation system. The machines are modeled as the point-masses. Each isolator is modeled as a springs group (with stiffness in X, Y and Z directions). Note that the locations and number of the isolators, as well as the locations of machines are indeed not determined in the beginning, the isolators and machines in this figure are only for illustrative propose. The origin of the coordinate system is located at the center of the upside of the plate

The techniques of decomposition and multilevel optimization have been discussed extensively in the literature. Readers interested in this topic can refer to the Chapter 11 of Haftka’s monograph (Haftka and Gürdal 2012) and the references therein. Optimizing the locations of machines and isolators together with the topology of continuum structures in an vibration isolation system seems to be new in the research area of topology optimization and has not been investigated by others. But optimizing the supports in truss structures (Tanskanen 2006; Liu et al. 2014; Wang and Chen 1996; Wang et al. 2004; Okwudire and Lee 2013) and continuum structures (Xia et al. 2014; Xia and Shi 2016) can be found in the literature.

The remaining parts are arranged as follows. In Section 2 basic FEA procedure is briefly reviewed, followed by some objective functions that will be used in this paper. In Section 3 a reference case is introduced to act as a baseline for all optimized designs. In Section 4 all factors including locations of machines, locations of isolators and layout of supporting structure are considered separately to find out which factor has the most important influence on objective functions. In Section 5 all factors are considered simultaneously in a multilevel optimization frame to achieve the goal of synthesizing the whole system. Some discussions are given in Section 6. Finally in Section 7 some conclusions are drawn. The sensitivity information of the objective functions w.r.t. elemental fictitious density which will be used in topology optimization of the supporting structure is given in the Appendix.

2 Basic FEA procedure and formulation of objective functions

2.1 Basic FEA procedure

The motion equation of the structural dynamicsFootnote 1 is given by

$$ \boldsymbol{M\ddot{u}}+\boldsymbol{Ku} = \boldsymbol{f} $$
(1)

where \(\boldsymbol {M},\boldsymbol {K} \in \mathbb {R}^{{n_{\text {dof}}} \times {n_{\text {dof}}}}\) are the global mass matrix and stiffness matrix respectively; \(\boldsymbol {f},\boldsymbol {u} \in \mathbb {R}^{{n_{\text {dof}}}}\) are the global load and displacement vector respectively; \(\mathbb {R}\) is the real subspace; n dof is the number of DOFs in the FEA model.

The global stiffness matrix is composed of the elemental stiffness matrix of continuum elements (i.e. the shell elements in this paper) for supporting structure and the spring elements for isolators:

$$ \boldsymbol{K} = \boldsymbol{K}^{\text{sh}} + \boldsymbol{K}^{\text{sp}} $$
(2)

where sh is short for shell elements and sp is short for spring elements. Further K sh and K sp can be expressed as

$$\begin{array}{@{}rcl@{}} &&\boldsymbol{K}^{\text{sh}} = \sum\limits_{i=1}^{{n_{\text{sh}}}}{\boldsymbol{K}_{i}^{\text{sh,e}}} \end{array} $$
(3a)
$$\begin{array}{@{}rcl@{}} &&\boldsymbol{K}^{\text{sp}} = \sum\limits_{j=1}^{n_{\text{sp}}}{\boldsymbol{K}_{j}^{\text{sp,e}}} \end{array} $$
(3b)

where n sh and n sp are the number of shell elements and spring elements respectively. The summation symbol stands for the well-known assembly of the finite elements at corresponding DOFs.

The derivation of \(\boldsymbol {K}_{i}^{\text {sh,e}}\) follows the standard process for the generation of continuum elements(e.g. isoparametric element, Gauss integral etc.) while the \(\boldsymbol {K}_{j}^{\text {sp,e}}\) can be given analytically:

$$ \boldsymbol{K}_{j}^{\text{sp,e}} = \left[\begin{array}{cccccc} {k_{j}^{X}} & 0 & 0 & -{k_{j}^{X}} & 0 & 0 \\ 0 & {k_{j}^{Y}} & 0 & 0 & -{k_{j}^{Y}} & 0 \\ 0 & 0 & {k_{j}^{Z}} & 0 & 0 & -{k_{j}^{Z}} \\ -{k_{j}^{X}} & 0 & 0 & {k_{j}^{X}} & 0 & 0 \\ 0 & -{k_{j}^{Y}} & 0 & 0 & {k_{j}^{Y}} & 0 \\ 0 & 0 & -{k_{j}^{Z}} & 0 & 0 & {k_{j}^{Z}} \end{array}\right] $$
(4)

where \({k_{j}^{X}}\), \({k_{j}^{Y}}\) and \({k_{j}^{Z}}\) are the stiffness of j-th isolator in global X, Y and Z directions respectively. Notice that only translational stiffness is considered here.

Equation (4) gives the formula for spring element connecting two nodes. If a spring element connects a node to the ground, the stiffness matrix has simpler form:

$$ \boldsymbol{K}_{j}^{\text{sp,e}} = \left[\begin{array}{ccc} {k_{j}^{X}} & 0 & 0 \\ 0 & {k_{j}^{Y}} & 0 \\ 0 & 0 & {k_{j}^{Z}} \end{array}\right] $$
(5)

The global mass matrix is composed of the elemental mass matrix of shell elements for supporting structure and point-mass elements that are simplifications of machines:

$$ \boldsymbol{M} = \boldsymbol{M}^{\text{sh}} + \boldsymbol{M}^{\text{pt}} $$
(6)

where pt is short for point-mass. Further M sh and M pt can be expressed as

$$\begin{array}{@{}rcl@{}} \boldsymbol{M}^{\text{sh}} & =& \sum\limits_{i=1}^{{n_{\text{sh}}}}{\boldsymbol{M}_{i}^{\text{sh,e}}} \end{array} $$
(7a)
$$\begin{array}{@{}rcl@{}} \boldsymbol{M}^{\text{pt}} & =& \sum\limits_{j=1}^{n_{\text{pt}}}{\boldsymbol{M}_{j}^{\text{pt,e}}} \end{array} $$
(7b)

where \(\boldsymbol {M}_{i}^{\text {sh,e}}\) and \(\boldsymbol {M}_{j}^{\text {pt,e}}\) are the elemental mass matrix for i-th shell element and j-th point-mass element respectively, n pt is the number of point-mass elements.

The derivation of \(\boldsymbol {M}_{i}^{\text {sh,e}}\) follows the standard process for the generation of continuum elements while \(\boldsymbol {M}_{j}^{\text {pt,e}}\) is simply a diagonal matrix:

$$ \boldsymbol{M}_{j}^{\text{pt,e}} = \left[\begin{array}{ccc} {m_{j}^{X}} & & \\ & {m_{j}^{Y}} & \\ & & {m_{j}^{Z}} \end{array}\right] $$
(8)

where \({m_{j}^{X}}\), \({m_{j}^{Y}}\) and \({m_{j}^{Z}}\) are the mass of j-th point-mass in global X, Y and Z directions respectively. Normally, \({m_{j}^{X}}\), \({m_{j}^{Y}}\) and \({m_{j}^{Z}}\) have the same value.

We are only interested in the steady-state response, so the force and displacement vector can be expressed as:

$$ \begin{array}{l} \boldsymbol{u} = \boldsymbol{U} e^{\text{i}\omega t} \\ \boldsymbol{f} = \boldsymbol{F} e^{\text{i}\omega t} \end{array} $$
(9)

where \(\text {i} = \sqrt {-1}\) is the imaginary unit; \(\boldsymbol {U},\boldsymbol {F}\in \mathbb {R}^{{n_{\text {dof}}}}\) are steady-state amplitudes of dynamic displacement response and excitation force respectively; ω(unit: rad/s) is the excitation frequency.

Substitute (9) into (1), then the state equation (1) can be converted into the following form by eliminating the time-related term e iωt :

$$ \left( -\omega^{2}\boldsymbol{M}+\boldsymbol{K}\right) \boldsymbol{U} = \boldsymbol{F} $$
(10)

Let \(\boldsymbol {S}=\left (-\omega ^{2}\boldsymbol {M}+\boldsymbol {K}\right ) \in \mathbb {R}^{{n_{\text {dof}}} \times {n_{\text {dof}}}}\) denote the dynamic stiffness matrix, (10) can be rewritten as

$$ \boldsymbol{SU} = \boldsymbol{F} $$
(11)

Note that when ω = 0, (10) and (11) degenerate into the static equilibrium equation:

$$ \boldsymbol{KU}^{\text{sta}} = \boldsymbol{F}^{\text{sta}} $$
(12)

where F sta is the static load vector.

2.2 The formulation of objective functions

Some objective functions should be set up based on the FEA procedure given in previous section. Only two load cases (i.e. the static response under the static load f = F sta and the steady-state response under the harmonic force \(\boldsymbol {f}=\boldsymbol {F}e^{\text {i} \omega _{\text {E}} t}\)) will be considered, we use the subscripts E and 0 to denote these two load cases. ω E is the working frequency of the machines.

To this point, we have not discussed on the design variables (which will be clarified in detail in Section 4) so temporarily the objective functions will be expressed using state variable U.

When designing a vibration isolation system, at least the following factors should be taken into account:

  • Vibration isolation performance. The most common index to judge the performance of an vibration isolation system is the dynamic forces transmitted into the ground. So this index should be included.

  • Dynamic and static safety of the whole system. That is to say, the system should have enough stiffness under both static and dynamic load cases. Moreover, it is well-known in vibration isolation research area that the seek of vibration isolation performance would sacrifice the safety of the system. Approximately speaking, to achieve better vibration isolation performance, a system should be as soft as possible; while to ensure the safety of the system, the system should be as stiff as possible. That is the reason why the dynamic and static compliance should be included in the objectives.

2.2.1 Dynamic and static compliance

The compliance is originally defined as the inner product of excitation force and displacement response. Here we use the square of the compliance as the first objective function:Footnote 2

$$ h(\boldsymbol{U}) = \left\lvert \boldsymbol{F}^{\top}\boldsymbol{U} \right\rvert^{2} = \left\lvert \boldsymbol{U}^{\top}\boldsymbol{F} \right\rvert^{2} = \boldsymbol{U}^{\top}\boldsymbol{F}\boldsymbol{F}^{\top}\boldsymbol{U} $$
(13)

where ⊤ denotes the transpose of a matrix.

We are only interested in h E(U) and h 0(U) . The former reflects the dynamic stiffness of the structure under the working frequency while the latter implies the static stiffness.

2.2.2 The forces transmitted into the ground

In vibration isolation, special attention is paid to the forces transmitted into the ground because this revels the vibration isolation performance. These forces can be calculated using the displacements at specified DOFs of the isolators:

$$ \def\arraystretch{1.2} \left[\begin{array}{l} F_{\text{I},j}^{X} \\ F_{\text{I},j}^{Y} \\ F_{\text{I},j}^{Z} \end{array}\right] =\left[\begin{array}{lll} {k_{j}^{X}} & & \\ & {k_{j}^{Y}} & \\ & & {k_{j}^{Z}} \end{array}\right] \left[\begin{array}{l} U_{\text{I},j}^{X} \\ U_{\text{I},j}^{Y} \\ U_{\text{I},j}^{Z} \end{array}\right] \qquad j = 1,2,\cdots,n_{\text{I}} $$
(14)

where \({k_{j}^{X}}\), \({k_{j}^{Y}}\) and \({k_{j}^{Z}}\) are the stiffness of j-th isolator in global X, Y and Z directions respectively; U I,j and F I,j are the displacement and reaction force at j-th isolator; n I is the number of isolators connected to the ground.

Equation (14) can be rewritten w.r.t. the global displacement vector :

$$ \def\arraystretch{1.2} \boldsymbol{F}_{\text{I}} = \left[\begin{array}{c} F_{\text{I},1}^{X} \\ F_{\text{I},1}^{Y} \\ F_{\text{I},1}^{Z} \\ {\vdots} \\ F_{\text{I},n_{\text{I}}}^{Z} \end{array}\right] = \boldsymbol{G}_{\text{I}}\boldsymbol{U} \in \mathbb{R}^{3n_{\text{I}}} $$
(15)

where \(\boldsymbol {G}_{\text {I}} \in \mathbb {R}^{3n_{\text {I}} \times {n_{\text {dof}}}}\) is a sparse matrix with only a few nonzeros representing the stiffness of the isolators. Approximately G I can be expressed as

$$ \boldsymbol{G}_{\text{I}} = \sum\limits_{j=1}^{n_{\text{I}}} \left\{ \left[\begin{array}{lll} {k_{j}^{X}} & & \\ & {k_{j}^{Y}} & \\ & & {k_{j}^{Z}} \end{array}\right] \right\} \in \mathbb{R}^{3n_{\text{I}} \times {n_{\text{dof}}}} $$
(16)

where the summation symbol means to arrange the block matrices columnwise while placing the stiffness terms in the corresponding DOFs in each row.

Generally there is more than one isolator in the vibration isolation system, so the forces have to be accumulated to account for different isolating positions as well as different directions. This way the following scalar function is set up to represent the forces transmitted into the ground:

$$ \begin{array}{ll} J(\boldsymbol{U}) & = \sum\limits_{j=1}^{n_{\text{I}}} \left\{ {\left( F_{\text{I},j}^{X}\right)^{2}+ \left( F_{\text{I},j}^{Y}\right)^{2}+ \left( F_{\text{I},j}^{Z}\right)^{2}} \right\} \\ & = {\boldsymbol{F}_{\text{I}}^{\top} \boldsymbol{F}_{\text{I}}} = \boldsymbol{U}^{\top}\boldsymbol{G}_{\text{I}}^{\top}\boldsymbol{G}_{\text{I}}\boldsymbol{U} \end{array} $$
(17)

Obviously J E(U) is a measure of the dynamic forces transmitted into the ground at the working frequency.

2.3 The mathematical model in global form

In the design of an vibration isolation system, the forces transmitted into the ground are normally the most concerned index. Additionally the dynamic and static compliances, which are the indices guaranteeing dynamic and static safety of the system, should never be ignored. Therefore, it is straightforward to come up with the following mathematical model in global form:

$$ \def\arraystretch{1.2} \begin{array}{ll} \text{find} & \{\text{design variables}\} \\ \text{minimize} & \left\{ h_{\text{E}}(\boldsymbol{U}),h_{0}(\boldsymbol{U}), J_{\text{E}}(\boldsymbol{U}) \right\} \\ \text{s.t.} & g_{k}\le 0 \qquad k = 1,2,\cdots,n_{\text{con}} \end{array} $$
(18)

where n con is the number of constraints, the design variables and constraints g k will be made clear afterwards.

3 Reference case

First of all a reference case will be given so that the optimized results can be compared with the reference case to find how much we can gain in objective functions and which factor would have the most important effects on the objective functions.

As shown in Figs. 2 and 3, in reference case there are three machines and four isolators. Some dimensions are also shown in Fig. 2. Nominal stiffness for all isolators is \({k_{j}^{X}}={k_{j}^{Y}}={k_{j}^{Z}}=40\)N/mm, j ∈{1,2,3,4}. Since when carrying out the topology optimization, only γ = 50% (cf. (30)) material will be used, the thickness of the plate is taken as t = 5mm in the reference case so that the mass properties in all cases are identical. Working frequency is ω E = 20Hz = 125.66rad/s. Mass properties of the machines are: m A = m B = 5kg, m C = 20kg. Since the dynamically unbalanced forces come from the eccentric mass, they can be calculated by

$$\begin{array}{@{}rcl@{}} f_{\text{V}} &=& m_{\text{u}}r_{\text{u}}\omega_{\text{E}}^{2}\cos(\omega_{\text{E}}t) \\ f_{\text{H}} &=& m_{\text{u}}r_{\text{u}}\omega_{\text{E}}^{2}\sin(\omega_{\text{E}}t) \end{array} $$
(19)

where the subscript V and E denote vertical and horizontal direction respectively, m u and r u are the eccentric mass and distance respectively.

Fig. 3
figure 3

Reference case. Four isolators(the green circles) located at the corners of the plate are modeled as springs with stiffness in X, Y and Z directions. Three machines(the yellow, blue and pink stars) are modeled as point-masses

However, by using (10) we cannot model the difference in phase angle. So we neglect the difference in phase angle and simply use(units: Newton):

$$ \begin{array}{l} \boldsymbol{f}_{\text{A}} = \boldsymbol{F}_{\text{A}}\sin(\omega t)\qquad \boldsymbol{F}_{\text{A}}=(0,1000,-1000) \\ \boldsymbol{f}_{\text{B}} = \boldsymbol{F}_{\text{B}}\sin(\omega t)\qquad \boldsymbol{F}_{\text{B}}=(-1000,0,-1000) \\ \boldsymbol{f}_{\text{C}} = \boldsymbol{F}_{\text{C}}\sin(\omega t)\qquad \boldsymbol{F}_{\text{C}}=(0,-4000,-4000) \end{array} $$
(20)

where the nonzero values correspond to the amplitudes of the unbalanced forces in (19). Note that the orientations of the forces are in different planes simply because the generators are installed in different directions (cf. Figs. 1 and 2).

It has to be mentioned that, by using constant excitation forces, the load is actually overestimated. But this treatment would make the computation results more conservative.

In static case, only the self weight of the generators need to be considered(units: Newton):

$$ \boldsymbol{F}_{\text{A}}^{\text{sta}} = \boldsymbol{F}_{\text{B}}^{\text{sta}} = (0,0,-50) \qquad \boldsymbol{F}_{\text{C}}^{\text{sta}} = (0,0,-200) $$
(21)

Detailed objective function values corresponding to the reference case are listed in Table 2 with label reference case.

4 Single-level design considering different factors separately

As remarked in previous sections, the state variable U is affected by several factors: the locations of machines, the locations of isolators and the layout of supporting structure. These factors will be considered separately in this section. Thereafter in Section 5 all these factors will be considered simultaneously so that the whole system can be synthesized.

4.1 Optimization on locations of machines using GA

Now we consider the optimization on locations of machines. As shown in Fig. 4, three machines will be installed in yellow, blue and pink areas respectively. The stars denote the possible locations of these machines. In Fig. 5 the labels of all geometrical nodes are listed. Isolators are all placed at their reference locations (i.e. the four corners) in this subsection.

Fig. 4
figure 4

Consider only the locations of machines. Stars denote the possible locations of the machines. The stars with lager size denote the optimal locations obtained by solving (22). Machine 1, 2 and 3 are installed at yellow, blue and pink areas respectively. Green circles denote the locations of the isolators

Fig. 5
figure 5

Labels of nodes. Note that the nodes in this figure are only geometrical nodes, not the nodes in FEA model. The number of nodes in FEA model is much larger

The locations of machines have effects on J E(x), h E(x) and h 0(x). So all these functions are taken as the objective functions, while the constraints are that only one machine can actually be installed in each zone:

$$ \def\arraystretch{1.2} \begin{array}{ll} \text{find} & x_{i} \in \{0,1\} \qquad i\in Q_{1}\bigcup Q_{2} \bigcup Q_{3} \\ \text{minimize} &\{ J_{\text{E}}(\boldsymbol{x}),h_{\text{E}}(\boldsymbol{x}),h_{0}(\boldsymbol{x}) \} \\ \text{s.t.} &\left\{ \begin{array}{ll} {\sum}_{i}{x_{i}}=1 & \text{for\ } i\in Q_{1}\\ {\sum}_{i}{x_{i}}=1 & \text{for\ } i\in Q_{2}\\ {\sum}_{i}{x_{i}}=1 & \text{for\ } i\in Q_{3} \end{array} \right. \end{array} $$
(22)

where x i is the topological variable showing the existence of machine at Node i, if x i = 0 then no machine will be installed at Node i and the corresponding excitation force will not be applied, if x i = 1 then the machine is installed at Node i and the corresponding force will be applied; Q 1, Q 2 and Q 3 are the index sets signifying all possible locations of machines.

Refer to Figs. 4 and 5, the index sets can be given by

$$ \begin{array}{l} Q_{1}=\{19,\cdots,25,36,\cdots,42,53,\cdots,59\} \\ Q_{2}=\{27,\cdots,33,44,\cdots,50,61,\cdots,67\} \\ Q_{3}=\{105,\cdots,117\} \end{array} $$
(23)

where the total number of members in Q 1, Q 2 and Q 3 is 21, 21 and 13 respectively.

Interpolation formula for point-masses and loads are:

$$ \def\arraystretch{1.5} \begin{array}{l} \bar{m}_{j}^{X,Y,Z} = {m}_{j}^{X,Y,Z}{x}_{j} \\ \bar{F}_{j}^{X,Y,Z} = {F}_{j}^{X,Y,Z}{x}_{j} \end{array} $$
(24)

where \({m}_{j}^{X,Y,Z}\) and \({F}_{j}^{X,Y,Z}\) are the nominal masses and forces located at node i, \(\bar {m}_{j}^{X,Y,Z}\) and \(\bar {F}_{j}^{X,Y,Z}\) are the actual masses and forces used in FEA model.

Equation (22) is a multi-objective optimization problem. A weighted summation of the three sub-objective functions will be taken as the actual objective function:

$$ g_{1}(\boldsymbol{x}) = \alpha_{1}\frac{J_{\text{E}}(\boldsymbol{x})}{J_{\text{E}}^{\text{ref}}}+ \alpha_{2}\frac{h_{\text{E}}(\boldsymbol{x})}{h_{\text{E}}^{\text{ref}}}+ \alpha_{3}\frac{h_{0}(\boldsymbol{y})}{h_{0}^{\text{ref}}} $$
(25)

where g 1(x) is the weighted objective function; \(J_{\text {E}}^{\text {ref}}\), \(h_{\text {E}}^{\text {ref}}\) and \(h_{0}^{\text {ref}}\) denote the reference values corresponding to Fig. 3; \(\alpha _{1}=\alpha _{2}=\alpha _{3}=\frac {1}{3}\) are the weighting coefficients for the three sub-objectives, respectively.

Now we introduce a trick so that the number of design variables can be further reduced. Equation (22) is a 0-1 programming model with only linear constraints that are quite simple indeed. Take machine A(i.e. the yellow zone in Figs. 4 and 5) as an example, determining location of machine A can be regarded as putting a ball into a specific box among 21 blank boxes. If the boxes are numbered from 0 to 20 sequentially, then all possible positions of the ball can be expressed using binary sequence of length 5(since 25 = 32 > 21). So for (22), actually only 14(i.e. 5 + 5 + 4) binary bits are needed to model all possible solutions. The following MATLAB codes further clarify the idea:

figure a

where the input binary variables x A,x B ∈{00000,⋯ , 11111}BIN, x C ∈{0000,⋯ ,1111}BIN, the decimal variables x A A,x B B ∈{0,⋯ ,31}, x C C ∈{0,⋯ ,15}. The variables xAA, xBB and xCC denote the sequence number for locations of machine A, B and C in the index sets Q 1, Q 2 and Q 3. Since there is redundancy in the binary coding, the input binary variables are valid only if x A A ∈{0,⋯ ,20}, x B B ∈{0,⋯ ,20}, x C C ∈{0,⋯12}, otherwise directly setting a large number to the objective function. bin2dec is a built-in function in MATLAB to convert binary string into decimal number.

We comment here that the abovementioned trick is especially useful if the number of design variables is large. For example, if there are in total 1000 possible locations for machine A, then by using the trick we can use only 10 (since 210 = 1024 > 1000) binary bits to represent all possible solutions. Also, it should be noted that by using the trick the linear constraint in (22) is actually implicitly included in the objection function, so no explicit constraint is needed.

Equation (22) can now be solved in a quite efficient manner by using a special version GA published by the authors (Zhou et al. 2017a). Some basic parameters for calling the GA is listed in Table 1. The optimal solution is also shown in Fig. 4 with stars of lager size. The optimal solution (i.e. the optimal locations of the three machines) is reasonable: by installing machines closer to isolators both dynamic and static stiffness can be improved and the forces transmitted into the ground can be decreased.

Table 1 Basic parameters for the GA

The optimal solution is obtained by the GA in less than 20 minutes. The iteration history curve is shown in Fig. 6. From Fig. 6 it can be seen that the solution process converges quite fast. The optimal solution is indeed found at about 25th iteration.

Fig. 6
figure 6

Iteration history for optimizing locations of machines. Vertical axis shows the weighted objective function value of the best individual among the population

The detailed objective function values corresponding to the optimal solution are listed in Table 2 with case label machine loci.

Table 2 Comparisons between different designs

4.2 Optimization on locations of isolators using GA

Usually the isolators are selected among some product catalogs, so the stiffness of a isolator is actually determined when the type and specification is determined. But the locations of isolators must be designed by the engineers. As shown in Fig. 7, the green circles show the possible locations of isolators but in total only 4 isolators will be installed.

Fig. 7
figure 7

Consider only the locations of isolators. Green circles denote the possible locations of the isolators. Specifically, green circles of larger size show the optimal locations of isolators by solving (26). Stars show the locations of machines

The objective is the same as that of Section 4.1, i.e. to minimize J E, h E and h 0 simultaneously while the constraint is that only 4 isolators can actually be used. So the mathematical model can be given by:

$$ \begin{array}{ll} \text{find} & y_{i} \in \{0,1\} \qquad i\in Q_{4} \\ \text{minimize} & \{ J_{\text{E}}(\boldsymbol{y}),h_{\text{E}}(\boldsymbol{y}),h_{0}(\boldsymbol{y}) \} \\ \text{s.t.} &{\sum}_{i}{{y}_{i}}=4 \qquad\text{for\ } i\in Q_{4} \end{array} $$
(26)

where y j is the topological variable showing the existence of isolator at Node j.

Interpolation formula for the stiffness of isolators is given by

$$ \def\arraystretch{1.5} \begin{array}{l} \bar{k}_{j}^{X,Y,Z} = {k}_{j}^{X,Y,Z}{y}_{j} \end{array} $$
(27)

where \({k}_{j}^{X,Y,Z}\) and \(\bar {k}_{j}^{X,Y,Z}\) are the nominal and actual stiffness of i-th isolator.

The index set (cf. Figs. 5 and 7) for all possible locations of isolators is given by

$$\begin{array}{@{}rcl@{}} Q_{4} = \{1,5,9,13,17,35,51,69,85,103,119,\\ 137,141,145,149,153\} \end{array} $$
(28)

where the total number of members in Q 4 is 16.

The weighted objective function is given by

$$ g_{2}(\boldsymbol{y}) = \alpha_{1}\frac{J_{\text{E}}(\boldsymbol{y})}{J_{\text{E}}^{\text{ref}}}+ \alpha_{2}\frac{h_{\text{E}}(\boldsymbol{y})}{h_{\text{E}}^{\text{ref}}}+ \alpha_{3}\frac{h_{0}(\boldsymbol{y})}{h_{0}^{\text{ref}}} $$
(29)

where \(\alpha _{1}=\alpha _{2}=\alpha _{3}=\frac {1}{3}\) are the weighting coefficients of the three sub-objectives, respectively.

Following the same trick as described in Section 4.1, (26) can be transformed into a 0-1 programming model without constraints. Now we repeatedly select one box among 16 boxes for four times. If by accident in any two times the same box is selected, we simply set a large number to the objective function. So in total we need 16 (i.e. 4 × 4, note that 24 = 16) binary bits to solve (26). The following sample codes further clarify the idea:

figure b

where binary variables are in the range {0000,⋯ , 1111}BIN, decimal variables are in the range {0,⋯ ,15}. The variable xAA, xBB xCC and xDD denote the sequence number (from 0 to 15) for locations of isolators in the index sets Q 4.

Since the number of design variables in (26) is very small, the number of design variables are not reduced in this case. But in the new form we are actually solving a 0-1 programming problem without any constraint. Also, if the number of possible locations for the isolators is very large (say, 1000), then by using the trick the number of actual design variables can be greatly reduced.

The optimal location of the four isolators is shown in Fig. 7 with circles of larger size. Iteration history curve is given in Fig. 8. As can be seen from Fig. 7, the optimal solution shown in is reasonable: by installing isolators closer to machines (and the excitation source as well), all the objective functions (J E, h E and h 0) can be improved greatly. The detailed objective function values corresponding to the optimal solution are listed in Table 2 with case label isolator loci.

Fig. 8
figure 8

Iteration history for optimizing locations of isolators

4.3 Optimization on layout of supporting structure based on SIMP model

Finally we consider the layout design of supporting structure. By following previous sections the mathematical model can be given by

$$ \def\arraystretch{1.2} \begin{array}{ll} \text{find} & \rho_{i}\in [\rho_{\min},1] \qquad i\in {\Omega} \\ \text{minimize} & \left\{ J_{\text{E}}(\boldsymbol{\rho}),h_{\text{E}}(\boldsymbol{\rho}),h_{0}(\boldsymbol{\rho}) \right\} \\ \text{s.t.} &{\sum}_{i}{\bar{\rho}_{i} V_{i}}\le \gamma {\sum}_{i}V_{i} \qquad\text{for\ } i\in {\Omega} \end{array} $$
(30)

where ρ i is the design variable, \(\bar {\rho }_{i}\) is the elemental fictitious density, ρ min = 1 × 10−3 is a small number denoting the lower bound of the design variable to avoid numerical instabilities, Ω is the admissible design domain, γ = 50% denotes the material volume fraction, V i is the volume of i-th element.

The elemental fictitious density \(\bar {\rho }_{i}\) is related to the design variable ρ through filtering process and smooth Heaviside projection. The filter is given by:

$$ \tilde{\rho}_{i} = \frac{{\sum}_{j=1}^{n_{\text{sh}}}H_{ij}\rho_{j}}{{\sum}_{j=1}^{n_{\text{sh}}}H_{ij}} \\ $$
(31)

where \(\tilde {\rho }_{i}\) denotes the filtered elemental density, H i j is the weighting coefficient defined as

$$ \begin{array}{l} H_{ij} = \frac{\bar{H}_{ij}}{{\sum}_{j=1}^{n_{\text{sh}}}\bar{H}_{ij}} \\ \bar{H}_{ij} = \max\{r_{\min}-dist(i,j),0\} \end{array} \qquad i,j = 1,2,\cdots,n_{\text{sh}} $$
(32)

where d i s t(i,j) is the Euclidean distance between the geometrical centers of i-th and j-th element. Note that \(\boldsymbol {H}\in \mathbb {R}^{n_{\text {sh}}\times n_{\text {sh}}}\) is a large but sparse matrix which can be generated efficiently.

The smooth Heaviside is given by Wang et al. (2011):

$$ \bar{\rho}_{i} = \frac{\tanh(\beta\eta)+\tanh(\beta(\tilde\rho_{i}-\eta))}{\tanh(\beta\eta)+\tanh(\beta(1-\eta))} $$
(33)

where η = 0.5 is the threshold for fictitious density while β is a parameter controlling the strength of the projection process and can be increased from 1 until 128 during the iteration process (Wang et al. 2011).

The material interpolation follows the famous SIMP model:

$$ \begin{array}{l} \bar{\boldsymbol{K}}_{i}^{\text{sh,e}} = {\boldsymbol{K}}_{i}^{\text{sh,e}}{\bar\rho_{i}^{p}} \\ \bar{\boldsymbol{M}}_{i}^{\text{sh,e}} = {\boldsymbol{M}}_{i}^{\text{sh,e}}{\bar\rho_{i}^{q}} \end{array} $$
(34)

where \(\bar {\boldsymbol {K}}_{i}^{\text {sh,e}}\) and \({\boldsymbol {K}}_{i}^{\text {sh,e}}\) are the nominal and actual elemental stiffness matrix for i-th shell element; \(\bar {\boldsymbol {M}}_{i}^{\text {sh,e}}\) and \({\boldsymbol {M}}_{i}^{\text {sh,e}}\) are the nominal and actual elemental mass matrix for i-th shell element; p = q = 3 is the penalty coefficients (Olhoff and Du 2016; Olhoff and Niu 2016).

The weighted objective function is given by

$$ g_{3}(\boldsymbol{\rho}) = \alpha_{1}\frac{J_{\text{E}}(\boldsymbol{\rho})}{J_{\text{E}}^{\text{ref}}}+ \alpha_{2}\frac{h_{\text{E}}(\boldsymbol{\rho})}{h_{\text{E}}^{\text{ref}}} +\alpha_{3}\frac{h_{0}(\boldsymbol{\rho})}{h_{0}^{\text{ref}}} $$
(35)

To this point, we have not discussed on the influence of weight coefficients, which will be handled in Section 6. Here we simply follow the previous sections to use \(\alpha _{1}=\alpha _{2}=\alpha _{3}=\frac {1}{3}\).

The layout optimization (30) is solved using e04wd in NAG (The Numerical Algorithms Group 2017) toolbox, which we find quite efficient and robust. e04wd uses sequential quadratic programming (SQP) method. The sensitivity information of the objective functions can be found in the appendix section.

Design domain for the layout optimization is shown in Fig. 9. Note that Fig. 9 is the same as Fig. 3 except that the thickness in Fig. 9 is 10mm (so that the mass properties of the optimized design comply with preceding cases). The final optimized layout is shown in Fig. 10. The detailed objective function values are listed in Table 2 with case label layout.

Fig. 9
figure 9

Design domain for layout optimization of supporting structure

Fig. 10
figure 10

Final optimized topology by taking \(\alpha _{1}=\alpha _{2}=\alpha _{3}=\frac {1}{3}\). The pink circles show that machine A and machine B are weakly supported

Although the values in Table 2 seems good, the optimized layout in Fig. 10 shows some imperfections: machine B is supported by a cantilever-like structure, which is unstable from mechanic intuition. As explained in Section 6, by modifying the weight coefficients this phenomenon can be avoided.

5 Multilevel optimization of the system considering all factors

In this section, all the design variables including locations of machines, locations of isolators and layout of supporting structure are considered simultaneously. So we attempt to solve the following problem:

$$ \begin{array}{ll} \text{find} & x_{i}\in\{0,1\}; y_{j}\in\{0,1\}; \rho_{k}\in[\rho_{\min},1] \\ \text{minimize} & \left\{ J_{\text{E}}(\boldsymbol{x},\boldsymbol{y},\boldsymbol{\rho}),h_{\text{E}}(\boldsymbol{x},\boldsymbol{y},\boldsymbol{\rho}),h_{0}(\boldsymbol{x},\boldsymbol{y},\boldsymbol{\rho}) \right\} \\ \text{s.t.} &\left\{ \begin{array}{ll} {\sum}_{i}{x_{i}}=1 & \text{for\ } i\in Q_{1}\\ {\sum}_{i}{x_{i}}=1 & \text{for\ } i\in Q_{2}\\ {\sum}_{i}{x_{i}}=1 & \text{for\ } i\in Q_{3}\\ {\sum}_{j}{y_{j}}=4 & \text{for\ } j\in Q_{4}\\ {\sum}_{k}{\bar{\rho}_{k} V_{k}}\le \gamma {\sum}_{i}V_{i} &\text{for\ } k\in {\Omega} \end{array} \right. \end{array} $$
(36)

where iQ 1Q 2Q 3, jQ 4, k ∈ Ω.

Unfortunately directly putting all design variables in one uniform optimization model would make (36) rather difficult, if not impossible, to solve for the following reasons:

  1. (1)

    x i and y j can only take values in {0,1} and are optimized through genetic algorithm while ρ k can take values in (0,1] and is optimized by gradient-based algorithm.

  2. (2)

    x i , y j and ρ k have different influence on the objective functions. Any changes in x i and y j would directly result in great changes in the objective functions, while the perturbation in some ρ k may have little influence on the objective functions. This implies that the sensitivities of x i , y j and ρ k are of different order of magnitudes. So putting them in a uniform model would cause numerical difficulties.

Therefore it follows that it is both appropriate and advantageous to design the whole system in two stages. In the first stage, the locations of machines and isolators are optimized using genetic algorithm while the layout of the supporting structure is kept unchanged. In the second stage, the layout is optimized using gradient-based algorithm while the locations of machines and isolators are kept unchanged. An iteration is introduced between the two stages in order to guarantee convergence of the whole design problem (36) considering all factors, which actually furnishes the strategy of multilevel optimization (Fig. 11).

Fig. 11
figure 11

Iteration history for the multilevel optimization. \(g=\alpha _{1}\frac {J_{\text {E}}}{J_{\text {E}}^{\text {ref}}}+ \alpha _{2}\frac {h_{\text {E}}}{h_{\text {E}}^{\text {ref}}}+ \alpha _{3}\frac {h_{0}}{h_{0}^{\text {ref}}}\), \(\alpha _{1}=\alpha _{2}=\alpha _{3}=\frac {1}{3}\)

Figure 12 shows the design domain. To account for the volumn fraction γ = %50, the thickness is now 10mm. Green circles show possible locations for isolators; yellow, blue and pink stars show possible locations for machine A, B and C, respectively.

Fig. 12
figure 12

Design domain for multilevel optimization

Figure 13 illustrates how the multilevel optimization will be carried out. The initial values for locations of isolators and machines are the ones corresponding to the reference case (cf. Fig. 3), while ρ 0 is simply taken as uniform elemental densities. In the first stage, the continuum(i.e. the supporting structure) is optimized by solving (30) with locations of isolators and machines fixed. In the second stage, the locations of the machines and isolators are optimized while the layout of continuum is kept unchanged. The mathematical model for this stage can be given by combining (22) and (26):

$$ \def\arraystretch{1.2} \begin{array}{ll} \text{find} & x_{i},y_{j} \in \{0,1\} \\ \text{minimize} &\{ J_{\text{E}}(\boldsymbol{x},\boldsymbol{y}),h_{\text{E}}(\boldsymbol{x},\boldsymbol{y}),h_{0}(\boldsymbol{x},\boldsymbol{y}) \} \\ \text{s.t.} &\left\{ \begin{array}{ll} {\sum}_{i}{x_{i}}=1 & \text{for\ } i\in Q_{1}\\ {\sum}_{i}{x_{i}}=1 & \text{for\ } i\in Q_{2}\\ {\sum}_{i}{x_{i}}=1 & \text{for\ } i\in Q_{3}\\ {\sum}_{j}{y_{j}}=4 & \text{for\ } j\in Q_{4} \end{array} \right. \end{array} $$
(37)

where \(i\in Q_{1}\bigcup Q_{2} \bigcup Q_{3}\) and jQ 4.

Fig. 13
figure 13

The flowchart of multilevel optimization

At the end of each cycle, the convergence is verified by checking the differences between the values of all design variables in current cycle and the previous one. If convergence criteria is not satisfied, the values of all design variables are passed down to the next cycle to act as the initial solution.

Figure 14 gives the iteration history of the multilevel optimization process corresponding to uniform weight coefficients \(\alpha _{1}=\alpha _{2}=\alpha _{3} = \frac {1}{3}\). Figure 11 plots the objective values w.r.t. cycle number, note that each data point in this figure in fact denotes a complete solution of inner optimization subproblem (either for optimizing the locations of components or for optimizing the layout of plate). Some numerical oscillation is present in Fig. 11 simply because of the update of β (cf. (33)) and the explanation after it.) when optimizing the layout of plate.

Fig. 14
figure 14

Iteration history of the multilevel optimization. In each cyle the weight coefficients are \(\alpha _{1}=\alpha _{2}=\alpha _{3} = \frac {1}{3}\)

The detailed values for objective functions are listed in Table 2 with case label multilevel. Note that the computation burden in the multilevel optimization framework is heavy. From Fig. 13 it can be seen clearly that in each cycle both (30) and (37) must be solved. All the numerical results are computed using a Dell Precision T5610 workstation with two Intel(R) Xeon(R) CPU E5-2609 v2 processors. When running GA to optimize locations, 6 workers are used. The whole computation time for Fig. 14 is about 10 hours, which is a little long but can be tolerated.

Notice that the final layout of the supporting structure are also not that perfect since machine B is supported by a cantilever-like structure. As mentioned at the end of Section 4.3, this imperfection is due to the uniform weight coefficients and can be circumvented by decreasing the value of α 1 when optimizing the layout. This issue will be revisited in Section 6.2 in detail.

6 Discussions

6.1 The influence of different factors

As can be seen from Table 2, all the considered factors (i.e. locations of machines, locations of isolators and layout of supporting structure) have great influences on objective functions. The results with single-level optimization in Section 4 reveal that the performance of the whole system can be improved by takeing any one factor into account only. However, when comparing between these factors, it seems that the objective functions are much more sensitive to the locations of machines and isolators than the layout of the supporting structure. This observation may sounds surprising to the topology optimization community, but is reasonable in vibration isolation research area. Recall that when designing a vibration isolation system, the most important consideration is the selection and arrangement of isolators as well as machines.

On the other hand, in some specific case the design of the supporting structure should be given enough attention. A typical example is the design of floating raft in a submarine (Niu et al. 2005; Yang et al. 2017; Meng et al. 2011), where quite a lot of machines are installed on a single huge floating raft that is linked to the wall of the submarine through isolators. From Table 2, we can see that by incorprating both the locations of components and the layout of continuum into a multilevel optimization framework, better design can be obtained.

6.2 The influence of weight coefficients

In previous sections the weight coefficients are simply set to be uniform. However, the weight coefficients α 1,α 2,α 3 in (35) warrants some special attention.

As can be seen from Fig. 10, machine B is weakly supported by a cantilever-like structure, which may be instable from mechanic intuition. We mention that, if (31) and (33) are not applied, the elements near the isolators would also be very weak (i.e. ρ i → 0). In Fig. 14 the similar phenomenon occurs for machine B.

The reason for this phenomenon is the existence of J E in (30). Minimization of J E implies that the forces transmitted into the ground are to be minimized. So it follows that the optimal layout would be the ones cutting off all possible forces transmission paths (then J E = 0). However, due to the existence of h E and h 0, the optimization program would not completely cut off the forces transmission paths, but form some very weak elements to support the machines.

In a vibration isolation system, the most important task for the supporting structure is to link different machines and to supply a stable platform for installing and maintaining the machines. While the isolators, on the other hand, play the key role in improving the vibration isolation performance. More specifically, when designing the supporting structure, the basic requirements are that it should be stable, both statically and dynamically. Therefore it is reasonable to value h E and h 0 much more than J E when carrying out the design of supporting structures.

Figure 15 gives the multilevel optimization results with biased weight coefficients. When optimizing layout of continuum α 1 = 0, α 2 = α 3 = 0.5 is used while \(\alpha _{1}=\alpha _{2}=\alpha _{3}=\frac {1}{3}\) is used when optimizing locations. As can be seen from Fig. 15, the final optimized layout of the supporting structure is much more stable than the one optimized with uniform weight coefficients. However no free lunch can be expected, as shown in the last line of Table 2, the final objective function values would increase when using biased weight coefficients.

Fig. 15
figure 15

Final optimized system with biased weight coefficients. When optimizing locations, the weight coefficients are \(\alpha _{1}=\alpha _{2}=\alpha _{3} = \frac {1}{3}\), while optimizing layout α 1 = 0, α 2 = α 3 = 0.5

However, it has to be admitted that in general there is no universal principles on the choice of weight coefficients. The designers should make their decisions depending on specific occasion and purpose. Calculating the Pareto curve/surface would offer useful information in some cases, but would consume a large amount of computing resources. Engineering experiences are also important to judge the feasibility of the optimized designs and to make the optimized designs acceptable in engineering practice.

7 Conclusions

In engineering practice the optimization of continuum in a vibration isolation system usually comes together with the optimization on locations of machines and isolators. The former has received extensive attentions in structural topology optimization research area while the latter has not. In this paper we make some preliminary attempts to design the whole vibration isolation system by hybrid multilevel optimization methods, where the locations are optimized through genetic algorithm while the layout of supporting structure is optimized by the famous density-based topology optimization methods. Effectiveness of the proposed method is demonstrated by a numerical example adapted and simplified from engineering practice. Numerical results show that the hybrid multilevel optimization framework performs quite well.