def acc(theta1, omg1, alp1, AB, AD, BC, CD, variation=0):
    rB, rC = pos(theta1, AB, AD, BC, CD)[variation]
    omg2, omg3 = vel(theta1, omg1, AB, AD, BC, CD, variation)[2:]
    aB = kA.acc(rB, omg1, alp1)
    alp2, alp3 = kA.aCPA4(aB, rC - rB, rC - AD, omg2, omg3)
    aC = kA.acc(rC - AD, omg3, alp3)
    return aB, aC, alp2, alp3
Beispiel #2
0
def acc(theta1, case):
    rB, rC, rD, rE, rD2 = pos(theta1, case)
    vB, vD, vE, vD2, omg3, omg4, v2_T = vel(theta1, case)
    aB = kA.acc(rB, case[-1])
    a2_T, alp3 = kA.aCPA1(0, rB-rC, rB, omg3, case[-1], v1_T=v2_T)
    aD, aD2 = kA.acc(rD-rC, omg3, alp3), kA.acc(rD2-rC, omg3, alp3)
    aE, alp4 = kA.aCPA2(-aD, rE-rC, rE-rD, 0, omg4, v1_T=vE)
    return aB, aD, aE, aD2, alp3, alp4
def acc(theta1, case):
    rB, rC, rE, rD, rE, rF, rB_max = pos(theta1, case)
    omg2, omg4, v2_T = vel(theta1, case)[-3:]
    aB = kA.acc(rB, case[-1])
    a2_T, alp2 = kA.aCPA1(0, rB-rD, rB, omg2, case[-1], v1_T=v2_T)
    aB2 = kA.acc(rB_max-rD, omg2, alp2, v2_T, a2_T)
    aC = kA.acc(rC-rD, omg2, alp2, v2_T, a2_T)
    aE = aC + kA.acc(rE-rC, omg2, alp2)
    aF, alp4 = kA.aCPA2(-aE, rF-case[-3], rF-rE, 0, omg4, 0, vel(theta1, case)[3])
    return aB, aC, aE, aF, aB2, alp2, alp4
def acc(theta1, case):
    rB, rC, rD, rE, rC2 = pos(theta1, case)
    omg2, omg4, v2_T, v5_T = vel(theta1, case)[-4:]
    aB = kA.acc(rB, case[-1])
    a2_T, alp2 = kA.aCPA1(0, rB-rE, rB, omg2, case[-1], v1_T=v2_T)
    aC = kA.acc(rC-rE, omg2, alp2, v2_T, a2_T)
    aC2 = kA.acc(rC2-rE, omg2, alp2, v2_T, a2_T)
    a5_T, alp4 = kA.aCPA2(-aC, 1j, rD-rC, omg2=omg4, v1_T=v5_T)
    aD = kA.acc(1j, v_T=v5_T, a_T=a5_T)
    return aB, aC, aD, aC2, alp2, alp4
def acc(phi1, case):

    rB, rC, rD, rE, rF = pos(phi1, case)
    omg2, omg3, omg4, v5_T = vel(phi1, case)[-4:]
    omg1 = case[-1] * np.pi / 30
    aB = kA.acc(rB, omg1)
    alp2, alp3 = kA.aCPA4(aB, rC - rB, rC - rD, omg2, omg3)
    aC, aE = kA.acc(rC - rD, omg3, alp3), kA.acc(rE - rD, omg3, alp3)
    a5_T, alp4 = kA.aCPA2(-aE, rF - rD, rF - rE, omg2=omg4, v1_T=v5_T)
    aF = kA.acc(rF - rD, v_T=v5_T, a_T=a5_T)
    return aB, aC, aE, aF, alp2, alp3, alp4
Beispiel #6
0
def acc(phi1, omg1, alp1, AB=0.15, AC=0.1, CD=0.15, DF=0.4, AG=0.3):

    rA, rB, rC, rD, rF, rG = pos(phi1, AB, AC, CD, DF, AG)
    v3_T, v5_T = vel(phi1, omg1, AB, AC, CD, DF, AG)[1:3]
    omg3, omg5 = vel(phi1, omg1, AB, AC, CD, DF, AG)[-2:]
    a2 = kA.acc(rB, omg1, 0, 0, alp1)
    a3_T, alp3 = kA.aCPA1(0, rB - rC, rB, omg3, omg1, v3_T, 0, 0, alp1)
    a5_T, alp5 = kA.aCPA1(0, rD, rD - rC, omg5, omg3, v5_T, 0, 0, alp3)
    a4 = kA.acc(rD - rC, omg3, 0, 0, alp3)
    aF = kA.acc(rF - rC, omg3, 0, 0, alp3)
    aG = kA.acc(rG, omg5, 0, 0, alp5)
    return a2, a3_T, a5_T, a4, aF, aG, alp3, alp5
def acc(phi1, case):
    
    rB, rC, rD, rD_max, rE, rC_max = pos(phi1, case)
    vB, vC, vE, vD_max, vC_max, omg2, v2_T = vel(phi1, case)
    omg1 = case[-1]*np.pi/30
    
    # find aB
    aB = kA.acc(rB, omg1)
    
    # find angular acceleration of link2, link3
    a2_T, alp2 = kA.aCPA1(0, rB-rD, rB, omg2, omg1, v1_T=v2_T)
    
    # find aC, aE
    aC = kA.acc(rC-rD, omg2, alp2, v2_T, a2_T)
    aE = aC_max = np.imag(aC)*1j
    aD_max = kA.acc(rD_max-rD, omg2, alp2, v2_T, a2_T)
    return aB, aC, aE, aD_max, aC_max, alp2, a2_T
def acc(phi1, case):

    rB, rC, rD, rE, rF = pos(phi1, case)
    omg2, omg4, omg5, v2_T = vel(phi1, case)[3:]
    omg1 = case[-1] * np.pi / 30

    # find aB
    aB = kA.acc(rB, omg1)

    # find angular acceleration of link2, link3
    a2_T, alp2 = kA.aCPA1(0, rB - rC, rB, omg2, omg1, v1_T=v2_T)

    # find aC, aE
    aD = aB + kA.acc(rD - rB, omg2,
                     alp2)  #kA.acc(rD-rC, omg2, alp2, v2_T, a2_T)
    alp4, alp5 = kA.aCPA4(aD, rE - rD, rE - rF, omg4, omg5)
    aE = kA.acc(rE - rF, omg5, alp5)
    return aB, aD, aE, alp2, alp4, alp5
def acc(phi1, case):

    rB, rC, rD, rE, rF, rcF = pos(phi1, case)
    vF, omg2, omg3, omg4, v5_T = vel(phi1, case)[1:]
    omg1 = case[-1] * np.pi / 30

    # find aB
    aB = kA.acc(rB, omg1)

    # find angular acceleration of link2, link3
    alp2, alp3 = kA.aCPA4(aB, rC - rB, rC - rD, omg2, omg3)

    # find aC, aE
    aC = kA.acc(rC - rD, omg3, alp3)
    aE = kA.acc(rE - rD, omg3, alp3)
    a5_T, alp4 = kA.aCPA2(aE, rcF, rE - rF, omg2=omg4, v1_T=v5_T)
    aF = kA.acc(rcF, v_T=v5_T, a_T=a5_T)
    return aB, aC, aE, aF, alp2, alp3, alp4
Beispiel #10
0
def acc(phi1, omg1, alp1, variation=0, AB=1, BC=1):
    """
    Calculate accelerations and angular acceleration
    """

    rB, rC, rBC = pos(phi1, AB, BC)[variation]
    vC, omg2 = vel(phi1, omg1, variation, AB, BC)[-2:]
    aB = kA.acc(rB, omg1, 0, 0, alp1)
    aC, alp2 = kA.aCPA2(aB, -rC, rBC, 0, omg2, vC, 0, 0, 0)
    return aB, aC, alp2
    omg1 = case[-1] * np.pi / 30
    vB = kA.vel(rB, omg1)
    omg2, omg3 = kA.vCPA4(vB, rC - rB, rCD)
    vE = kA.vel(rED, omg3, 0)
    v05, omg4 = kA.vCPA2(-vE, r0F, rFE)
    v5 = kA.vel(r0F, v_T=v05)
    return vB, v05, v5, omg2, omg3, omg4


def acc(theta1, case, variation=0):

    rB, rC, rD, rE, rCD, rED, r0F, rFE = pos(theta1, case)[variation]
    v05, v5, omg2, omg3, omg4 = vel(theta1, case, variation)[1:]
    omg1 = case[-1] * np.pi / 30

    aB = kA.acc(rB, omg1)
    alp2, alp3 = kA.aCPA4(aB, rC - rB, rCD, omg2, omg3)
    aC = kA.acc(rCD, omg3, alp3)
    aE = kA.acc(rED, omg3, alp3)
    a05, alp4 = kA.aCPA2(-aE, r0F, rFE, omg2=omg4, v1_T=v05)
    a5 = kA.acc(r0F, v_T=v05, a_T=a05)
    return aB, aC, aE, a5, a05, alp2, alp3, alp4


def reactions(theta1, case, ms, Is, F_ext, g=-9.807j, variation=0):

    rB, rC, rD, rE, rCD, rED, r0F, rFE = pos(theta1, case)[variation]
    aB, aC, aE, a5, a05, alp2, alp3, alp4 = acc(theta1, case, variation)
    F = F_ext * -np.sign(vel(theta1, case, variation)[2])

    aGs = np.array([aB / 2, (aB + aC) / 2, aE / 2, (aE + a5) / 2, a5])