Exemplo n.º 1
0
    def __init__(self, params, topology_factory):

        self.k1 = params['k1']
        self.topology_factory = topology_factory
        self.material = microfem.SoiMumpsMaterial()
        self.ind_size = self.topology_factory.ind_size
        self.name = '--- Fast Cantilever Optimization ---'
    def __init__(self, params, topology_factory):

        self.topology_factory = topology_factory
        self.material = microfem.SoiMumpsMaterial()
        self.n_modes = 1
        self.ind_size = self.topology_factory.ind_size
        self.name = '--- Off Resonance Cantilever Optimization ---'
 def __init__(self, params, topology_factory):
     
     self.a = 5e-6
     self.b = 5e-6
     self.topology_factory = topology_factory
     self.material = microfem.SoiMumpsMaterial()
     self.n_modes = params['nmodes']
     self.n_ratio = params['nratio']
    def __init__(self, params, topology_factory):

        self.f1 = params['f1']
        self.f2 = params['f2']
        self.k1 = params['k1']
        self.k2 = params['k2']
        self.topology_factory = topology_factory
        self.material = microfem.SoiMumpsMaterial()
        self.n_modes = 3
        self.ind_size = self.topology_factory.ind_size
        self.name = '--- Bimodal Cantilever Optimization ---'

        funcs = {'stiffness_placement': self.stiffness_placement,
                 'frequency_minimization': self.frequency_minimization,
                 'stiffness_minimization': self.stiffness_minimization,
                 'stiffness_maximization': self.stiffness_maximization,
                 'frequency_maximization': self.frequency_maximization,
                 'frequency_placement': self.frequency_placement,
                 'k1_k2_place': self.k1_k2_place,
                 'k1_place_k2_min': self.k1_place_k2_min}

        if params['type'] not in funcs:
            raise ValueError('Bimodal type parameter invalid.')
        self.evaluation = funcs[params['type']]
    def __init__(self, params, topology_factory):

        self.f0 = params['f0']
        self.topology_factory = topology_factory
        self.material = microfem.SoiMumpsMaterial()
Exemplo n.º 6
0
# the deflection at a point on the cantilever. The coordinates are in um and
# should be on a solid element.
xtip = 250
ytip = 495

# Combine the above parameters into a Cantilever object in the microfem
# package. Information about the cantilever can be displayed and the topology
# can be plotted.
cantilever = microfem.Cantilever(topology, a, b, xtip, ytip)
cantilever.to_console()
microfem.plot_topology(cantilever)

# The material properties for the SOI Mumps manufacturing process has been
# stored in an object. The plate finite element model requires both the
# cantilever object and material object to initialize.
material = microfem.SoiMumpsMaterial()
fem = microfem.PlateFEM(material, cantilever)

# With the FEM model built, modal analysis can be performed. This returns the
# resonance frequencies and mode shapes of the cantilever. These can then be
# plotted.
n_modes = 3
ws, _, vall = fem.modal_analysis(n_modes=n_modes)

# Using the results of the modal analysis, the frequency, stiffness,
# tip displacement, and mode type (flexural, torsional), can be determined.
coords = (cantilever.xtip, cantilever.ytip)
opr = microfem.PlateDisplacement(fem, coords).get_operator()
mode_ident = microfem.ModeIdentification(fem, cantilever, type_='plate')

freq = np.sqrt(ws) / (2 * np.pi)