initialvalues = {}
initialvalues[x] = 1
initialvalues[x_d] = 0

initialvalues[q] = 30 * pi / 180
initialvalues[q_d] = 0 * pi / 180

statevariables = system.get_state_variables()
ini = [initialvalues[item] for item in statevariables]

N = Frame('N', system)
A = Frame('A', system)

system.set_newtonian(N)
A.rotate_fixed_axis(N, [0, 0, 1], q, system)

p1 = x * N.x
p2 = p1 - l * A.y

wNA = N.get_w_to(A)

v1 = p1.time_derivative(N, system)
v2 = p2.time_derivative(N, system)

I = Dyadic.build(A, I_xx, I_yy, I_zz)

BodyA = Body('BodyA', A, p2, m, I, system)
ParticleO = Particle(p2, M, 'ParticleO', system)

stretch = q - q0
statevariables = system.get_state_variables()
ini = [initialvalues[item] for item in statevariables]

N = Frame('N', system)
O = Frame('O', system)
A1 = Frame('A1', system)
B1 = Frame('B1', system)
C1 = Frame('C1', system)
D1 = Frame('D1', system)
A2 = Frame('A2', system)
B2 = Frame('B2', system)
C2 = Frame('C2', system)
D2 = Frame('D2', system)

system.set_newtonian(N)
O.rotate_fixed_axis(N, [0, 0, 1], qO, system)

A1.rotate_fixed_axis(N, [0, 0, 1], qA1, system)
B1.rotate_fixed_axis(N, [0, 0, 1], qB1, system)
C1.rotate_fixed_axis(N, [0, 0, 1], qC1, system)
D1.rotate_fixed_axis(N, [0, 0, 1], qD1, system)

A2.rotate_fixed_axis(N, [0, 0, 1], qA2, system)
B2.rotate_fixed_axis(N, [0, 0, 1], qB2, system)
C2.rotate_fixed_axis(N, [0, 0, 1], qC2, system)
D2.rotate_fixed_axis(N, [0, 0, 1], qD2, system)

pOrigin = 0 * N.x + 0 * N.y
pOcm = x * N.x + y * N.y
pOA = pOcm + lO / 2 * O.x
pOC = pOcm - lO / 2 * O.x
示例#3
0
initialvalues = {}
initialvalues[qA]=0*math.pi/180
initialvalues[qA_d]=1
initialvalues[qB]=0*math.pi/180
initialvalues[qB_d]=1
initialvalues[qC]=0*math.pi/180
initialvalues[qC_d]=0

N = Frame('N',system)
A = Frame('A',system)
B = Frame('B',system)
C = Frame('C',system)

system.set_newtonian(N)
A.rotate_fixed_axis(N,[1,0,0],qA,system)
B.rotate_fixed_axis(A,[0,1,0],qB,system)
C.rotate_fixed_axis(B,[0,0,1],qC,system)

pCcm=0*N.x
w1 = N.get_w_to(C)


IC = Dyadic.build(C,Ixx,Iyy,Izz)

BodyC = Body('BodyC',C,pCcm,mC,IC)

system.addforcegravity(-g*N.y)

# system.addforce(1*C.x+2*C.y+3*C.z,w1)
示例#4
0
initialvalues[qMC_d] = 0

statevariables = system.get_state_variables()
ini = [initialvalues[item] for item in statevariables]

N = Frame('N', system)
O = Frame('O', system)
MA = Frame('MA', system)
A = Frame('A', system)
B = Frame('B', system)
MC = Frame('MC', system)
C = Frame('C', system)
D = Frame('D', system)

system.set_newtonian(N)
O.rotate_fixed_axis(N, [0, 0, 1], qO, system)
MA.rotate_fixed_axis(N, [0, 0, 1], qMA, system)
A.rotate_fixed_axis(N, [0, 0, 1], qA, system)
B.rotate_fixed_axis(N, [0, 0, 1], qB, system)
MC.rotate_fixed_axis(N, [0, 0, 1], qMC, system)
C.rotate_fixed_axis(N, [0, 0, 1], qC, system)
D.rotate_fixed_axis(N, [0, 0, 1], qD, system)

pOrigin = 0 * N.x + 0 * N.y
pOcm = x * N.x + y * N.y
pOA = pOcm + lO / 2 * O.x
pOC = pOcm - lO / 2 * O.x
pAB = pOA + lA * A.x
pBtip = pAB + lB * B.x
vBtip = pBtip.time_derivative(N, system)
示例#5
0
initialvalues[qB_d] = 0 * pi / 180
#initialvalues[wB]=0*pi/180
#initialvalues[a]=0
initialvalues[i] = 0

statevariables = system.get_state_variables()
ini = [initialvalues[item] for item in statevariables]

N = Frame('N', system)
#A = Frame('A',system)
B = Frame('B', system)
M = Frame('M', system)

system.set_newtonian(N)
#A.rotate_fixed_axis(N,[0,0,1],qA,system)
B.rotate_fixed_axis(N, [0, 0, 1], qB, system)

pO = 0 * N.x
#wNA = N.get_w_to(A)
wNB = N.get_w_to(B)
wNA = G * wNB
aNA = wNA.time_derivative()
#wNB = wB*B.z
#aNB = wB_d*B.z

I_motor = Dyadic.build(B, Im, Im, Im)
I_load = Dyadic.build(B, Il, Il, Il)

#Motor = Body('Motor',A,pO,0,I_motor,system)
Motor = Body('Motor', B, pO, 0, I_motor, system, wNBody=wNA, alNBody=aNA)
Inductor = PseudoParticle(0 * M.x,
示例#6
0
initialvalues[qB_d]=0*pi/180
initialvalues[qC]=150*pi/180
initialvalues[qC_d]=0*pi/180
initialvalues[qD]=-30*pi/180
initialvalues[qD_d]=0*pi/180

statevariables = system.get_state_variables()

N = Frame('N',system)
A = Frame('A',system)
B = Frame('B',system)
C = Frame('C',system)
D = Frame('D',system)

system.set_newtonian(N)
A.rotate_fixed_axis(N,[0,0,1],qA,system)
B.rotate_fixed_axis(A,[0,0,1],qB,system)
C.rotate_fixed_axis(N,[0,0,1],qC,system)
D.rotate_fixed_axis(C,[0,0,1],qD,system)

pNA = 0*N.x
pAB = pNA + lA*A.x
pBD = pAB + lB*B.x
pCD = pNA + lC*C.x
pDB = pCD + lD*D.x

points = [pBD,pAB,pNA,pCD,pDB]

statevariables = system.get_state_variables()
ini0 = [initialvalues[item] for item in statevariables]
示例#7
0
initialvalues[wx_d] = 0
initialvalues[wy] = 0
initialvalues[wy_d] = 0
initialvalues[wz] = 0
initialvalues[wz_d] = 0

statevariables = system.get_state_variables()
ini = [initialvalues[item] for item in statevariables]

A = Frame('A', system)
B = Frame('B', system)
C = Frame('C', system)
D = Frame('D', system)

system.set_newtonian(A)
B.rotate_fixed_axis(A, [0, 0, 1], H, system)
C.rotate_fixed_axis(B, [1, 0, 0], -L, system)
D.rotate_fixed_axis(C, [0, 1, 0], Q, system)

pNA = 0 * A.x
pAD = pNA + x * A.x + y * A.y
pBcm = pAD + r * C.z
pDA = pBcm - r * D.z

wAD = A.get_w_to(D)

II = Dyadic.build(B, J, I, J)

BodyD = Body('BodyD', D, pBcm, m, II, system)

#ParticleA = Particle(pAcm,mA,'ParticleA',system)
示例#8
0
initialvalues[qM_d] = 0 * pi / 180
#initialvalues[wB]=0*pi/180
#initialvalues[a]=0
initialvalues[i] = 0

statevariables = system.get_state_variables()
ini = [initialvalues[item] for item in statevariables]

N = Frame('N', system)
A = Frame('A', system)
B = Frame('B', system)
M = Frame('M', system)
Z = Frame('Z', system)

system.set_newtonian(N)
A.rotate_fixed_axis(N, [0, 0, 1], qA, system)
B.rotate_fixed_axis(A, [0, 0, 1], qB, system)
M.rotate_fixed_axis(A, [0, 0, 1], qM, system)

pO = 0 * N.x
pAcm = x * N.x + y * N.y
wNA = N.get_w_to(A)
wAB = A.get_w_to(B)
wAM = A.get_w_to(M)
pBcm = pAcm + l * B.x

vAcm = pAcm.time_derivative()
#wNA = G*wNB
#aNA = wNA.time_derivative()
#wNB = wB*B.z
#aNB = wB_d*B.z
示例#9
0
A2 = Frame('A2', system)
A23 = Frame('A23', system)
A3 = Frame('A3', system)
A34 = Frame('A34', system)

NB1 = Frame('NB1', system)
B1 = Frame('B1', system)
B12 = Frame('B12', system)
B2 = Frame('B2', system)
B23 = Frame('B23', system)

################################################
#Relative frame rotations from newtonian out to distal frames
system.set_newtonian(N)

A1.rotate_fixed_axis(N, [1, 0, 0], qA1, system)
A12.rotate_fixed_axis(A1, [0, 0, 1], t1, system)
A2.rotate_fixed_axis(A12, [1, 0, 0], qA2, system)
A23.rotate_fixed_axis(A2, [0, 0, 1], t2, system)
A3.rotate_fixed_axis(A23, [1, 0, 0], qA3, system)
# A34.rotate_fixed_axis(A3,[0,0,1],t3,system)
#
NB1.rotate_fixed_axis(N, [0, 0, 1], -t0, system)
B1.rotate_fixed_axis(NB1, [1, 0, 0], qB1, system)
B12.rotate_fixed_axis(B1, [0, 0, 1], -t4, system)
B2.rotate_fixed_axis(B12, [1, 0, 0], qB2, system)
B23.rotate_fixed_axis(B2, [0, 0, 1], -t3, system)

################################################
#Define particles at the center of mass of each body
pNO = 0 * N.x
示例#10
0
N = Frame('N', system)
O = Frame('O', system)
A1 = Frame('A1', system)
C1 = Frame('C1', system)
A2 = Frame('A2', system)
C2 = Frame('C2', system)
MA = Frame('MA', system)
A = Frame('A', system)
B = Frame('B', system)
MC = Frame('MC', system)
C = Frame('C', system)
D = Frame('D', system)

system.set_newtonian(N)
O.rotate_fixed_axis(N, [0, 0, 1], qO, system)

A1.rotate_fixed_axis(N, [0, 0, 1], qA1, system)
C1.rotate_fixed_axis(N, [0, 0, 1], qC1, system)

A2.rotate_fixed_axis(N, [0, 0, 1], qA2, system)
C2.rotate_fixed_axis(N, [0, 0, 1], qC2, system)
MA.rotate_fixed_axis(N, [0, 0, 1], qMA, system)
B.rotate_fixed_axis(N, [0, 0, 1], qB, system)
MC.rotate_fixed_axis(N, [0, 0, 1], qMC, system)
D.rotate_fixed_axis(N, [0, 0, 1], qD, system)

pOrigin = 0 * N.x + 0 * N.y
pOcm = x * N.x + y * N.y
pOA = pOcm + lO / 2 * O.x
pOC = pOcm - lO / 2 * O.x
示例#11
0

if __name__=='__main__':
    from sympy import sin, cos
    from math import pi
    sys = System()

    N = Frame('N',system)
    A = Frame('A',system)
    B = Frame('B',system)
    C = Frame('C',system)
    D = Frame('D',system)
    E = Frame('E',system)

    a = Constant('a',4,sys)
#    a = sympy.Symbol('a')    
#    a,b,c,d,e,f,q = sympy.symbols('a b c d e f q')
    qA,qA_d,qA_dd = Differentiable('qA',sys)
    qB,qB_d,qB_dd = Differentiable('qB',sys)
    qC,qC_d,qC_dd = Differentiable('qC',sys)
    qD,qD_d,qD_dd = Differentiable('qD',sys)
    qE,qE_d,qE_dd = Differentiable('qE',sys)

    sys.set_newtonian(N)
    A.rotate_fixed_axis(N,[0,0,1],qA,sys)
    B.rotate_fixed_axis(A,[0,0,1],qB,sys)
    C.rotate_fixed_axis(B,[0,0,1],qC,sys)
    D.rotate_fixed_axis(C,[0,0,1],qD,sys)
    E.rotate_fixed_axis(D,[1,0,0],qE,sys)
    
    a= N.efficient_rep(B,'dot')[frozenset((N.x_sym,B.x_sym))]
示例#12
0
N = Frame('N', system)
A1 = Frame('A1', system)
A2 = Frame('A2', system)
A3 = Frame('A3', system)
B1 = Frame('B1', system)
B2 = Frame('B2', system)
B3 = Frame('B3', system)
C1 = Frame('C1', system)
C2 = Frame('C2', system)
C3 = Frame('C3', system)

S = Frame('S', system)

system.set_newtonian(N)

A1.rotate_fixed_axis(N, [1, 0, 0], qA1, system)
A2.rotate_fixed_axis(A1, [0, 1, 0], qA2, system)
A3.rotate_fixed_axis(A2, [0, 0, 1], qA3, system)
B1.rotate_fixed_axis(N, [1, 0, 0], qB1, system)
B2.rotate_fixed_axis(B1, [0, 1, 0], qB2, system)
B3.rotate_fixed_axis(B2, [0, 0, 1], qB3, system)
C1.rotate_fixed_axis(N, [1, 0, 0], qC1, system)
C2.rotate_fixed_axis(C1, [0, 1, 0], qC2, system)
C3.rotate_fixed_axis(C2, [0, 0, 1], qC3, system)
S.rotate_fixed_axis(A3, [0, 0, 1], qS, system)

wA1 = N.get_w_to(A3)
wA2 = wAx * A3.x + wAy * A3.y + wAz * A3.z
N.set_w(A3, wA2)

wB1 = N.get_w_to(B3)