Skip to content
Snippets Groups Projects
Select Git revision
  • 73f7a99689b8da7aada48c43d337b77e9c43a759
  • master default protected
2 results

voxelDesignTool.md

Blame
  • Voxel Design Tool

    This is automated workflow for the inverse design of voxel units that exhibit a desired deformation given input loads. This is the first step for automated to generate a family of voxels similar to DM3 in order to use later for larger scale optimization.

    I formulated the problem as a constrained optimization problem, where, given a dense start domain of fully connected (or locally connected) truss/frame elements, the objective is to minimize the volume (sum of elements' areas) of the structure while respecting the equilibrium and desired deformation. A SIMP penalty pushes the area of members to be either be very big or very small. I derived the gradients for the objective function and the constraints and using MMA (Method of Moving Asymptotes) to do the search.




    Constrained Optimization Formulation for Compliant Mechanisms Design

    \begin{aligned}
    & \underset{\rho^e}{\text{minimize}}
    & & V(\rho^e)=\sum_{e \in \Omega } \rho^e \upsilon^e \\
    & \text{subject to}
    & & K (\rho^e)d-F=0  \\
    & & & g= L_i^T d\leq d_{max,i} \ \ \   \forall i \in 1,..,m \\
    & & &\rho^e_{min} \leq \rho^e \ \ \ \forall \ e
    \end{aligned}

    Using the adjoint method:

    The gradient of objective function:

    f= \sum_{e \in \Omega } \rho^e \upsilon^e \\
    
    \frac{\delta f}{\delta \rho_e}=\sum_{e \in \Omega }  \upsilon^e 

    For each constraint i \forall (1,..,m):

    g_a=L_i^T d - d_{max,i} -\lambda_i^T (Kd-F) \\
    \frac{\delta g_A}{\delta \rho_e}=L_i^T  \frac{\delta d}{\delta \rho_e} -\lambda_i^T(\frac{\delta K(\rho_e)}{\delta \rho_e } d +K \frac{\delta d}{\delta \rho_e}) \\
    = - \lambda_i^T \frac{\delta K(\rho_e)}{\delta \rho_e }d + (L_i^T-\lambda_i^TK) \frac{\delta d}{\delta \rho_e}\\
    
    \therefore K\lambda_i=L_i \\
    \therefore   \frac{\delta g_A}{\delta \rho_e}= - \lambda_i^T \frac{\delta K(\rho_e)}{\delta \rho_e } d \\

    SIMP Penalty (to push the elements to be either 0 or 1)

    K^e=((\rho^e)^\eta +\rho_{min}^e )K_0^e \\
    \frac{\delta f}{\delta \rho^e}=\eta(\rho^e)^{\eta-1}K_0^e

    Results

    2D Optimization


    3D Optimization




    Initial Voxel Results (Truss Elements):

    • Boundary Conditions and Search Domain:
    • Positive Poisson Ratio
    • Auxetic
    • Chiral
    • Shear

    Positive Frame Elements:

    Next Steps

    • Clean Results
    • Desired Elasticity Tensor
    • Take Advantage of symmetry for more refined search
    • Batch Search