def __init__(self,params,symname='Ubeam',symlabel='beam', **kwargs): """Create a continous beam element. params should be a dictionary with keys 'mu', 'L', and 'EI'. If the beam is more than 1 dimensional (i.e. if maxsize!=4), than params should specify 'EI1' and 'EI2' as well as 'EA', 'm11', 'GJ' if axial and torsional analysis is to be performed. kwargs must include {'usez':True} if a 4x4 beam element should model bending about the z-axis. The y-axis is used if 'usez' is False or not specified.""" if kwargs.has_key('usez'): self.usez=kwargs['usez'] kwargs.pop('usez') else: self.usez=False TMMElementLHT.__init__(self,'beam',params,symname=symname,symlabel=symlabel,**kwargs)
def __init__(self,params,**kwargs): """Create a rigid mass element. params should be a dictionary with keys 'L', 'm', 'r', and 'I'. 'L' is the length of the element. 'm' is the mass of the element. 'r' is the distance to the center of gravity of the link. 'I' is the second moment of inertia and it should be a vector if this is a 2 or 3D link. kwargs should contain {'usez':True} if a 4x4 rigid mass element should model rotation about the z-axis.""" if kwargs.has_key('usez'): self.usez=kwargs['usez'] kwargs.pop('usez') else: self.usez=False TMMElementLHT.__init__(self,'rigid',params,**kwargs)
def __init__( self, link0symlabel, joint1symlabel, link1symlabel, avssymlabel, Ga=1, axis=1, maxsize=4, label="", **kwargs ): L0 = "L" + link0symlabel L1 = "L" + link1symlabel m1 = "m" + link1symlabel r1 = "r" + link1symlabel Iz1 = "I" + link1symlabel c1 = "c" + joint1symlabel k1 = "k" + joint1symlabel tau = "tau" + avssymlabel gain = "Ka" + avssymlabel Gc = "Gc" + avssymlabel values = [L0, L1, m1, r1, Iz1, c1, k1, tau, gain, Gc, Ga] keys = ["L0", "L1", "m1", "r1", "Iz1", "c1", "k1", "tau", "gain", "Gc", "Ga"] params = {} for key, value in zip(keys, values): params[key] = rwkmisc.symstr(value) # params[key]=ModelSpec.Par(value) params["axis"] = axis TMMElementLHT.__init__(self, "accelfb", params, maxsize=maxsize, label=label, **kwargs)
def __init__(self,params,symlabel='M',**kwargs): """Create a 2 by 2 mass element. params is a dictionary with only one key: params={'m':##.##} (the mass of the cart).""" TMMElementLHT.__init__(self,'rigid',params,maxsize=2,symlabel=symlabel,**kwargs)
def __init__( self, link0, joint1, link1, avs, Ga=1, axis=1, maxsize=4, label="", symlabel="accelfb", symname="Uaccelfb", compensators="Ga", **extraargs ): """Initializes the accelerometer feedback element. link0, joint1, link1, and avs are all TMMElement's that must be passed in. Their parameters are used in creating the transfer matrix for acceleration feedback.""" l0params = link0.params # a = -(L0*m1*r1*s^2-c1*s-k1)/(c1*s+k1); # b = -((L0*m1*r1^2-L0*L1*m1*r1+Iz1*L0)*s^2+(c1*L1+c1*L0)*s+k1*L1+k1*L0)/(c1*s+k1); # c = L0/(c1*s+k1); # d = L0*L1/(c1*s+k1); L0 = l0params["L"] l1params = link1.params L1 = l1params["L"] m1 = l1params["m"] r1 = l1params["r"] Iz1 = l1params["I"] j1params = joint1.params c1 = j1params["c"] k1 = j1params["k"] gain = avs.params["Ka"] Gc = avs.params["Gc"] params = { "L0": L0, "L1": L1, "m1": m1, "r1": r1, "Iz1": Iz1, "c1": c1, "k1": k1, "axis": axis, "gain": gain, "Gc": Gc, "Ga": Ga, } if avs.params.has_key("tau"): params["tau"] = avs.params["tau"] for curkey, curvalue in params.iteritems(): if curkey != "Ga": if shape(curvalue): curvalue = copy.deepcopy(curvalue)[0] params[curkey] = curvalue TMMElementLHT.__init__( self, "accelfb", params, maxsize=maxsize, label=label, symlabel=symlabel, symname=symname, compensators=compensators, **extraargs ) # set up symbolic params sL0 = "L" + link0.symlabel sL1 = "L" + link1.symlabel sm1 = "m" + link1.symlabel sr1 = "r" + link1.symlabel sIz1 = "I" + link1.symlabel sc1 = "c" + joint1.symlabel sk1 = "k" + joint1.symlabel stau = "tau" + avs.symlabel sgain = "Ka" + avs.symlabel sGc = "Gc" + avs.symlabel sGa = "Ga" values = [sL0, sL1, sm1, sr1, sIz1, sc1, sk1, stau, sgain, sGc, sGa] keys = ["L0", "L1", "m1", "r1", "Iz1", "c1", "k1", "tau", "gain", "Gc", "Ga"] symparams = {} for key, value in zip(keys, values): symparams[key] = rwkmisc.symstr(value) # params[key]=ModelSpec.Par(value) symparams["axis"] = axis self.symparams = symparams