Ejemplo n.º 1
0
t = np.arange(0, 90, 0.25)

# Linearise model and make MBC version
# lin = tb.lin(az0=0, rotor_speed=rotor_speed, init=False)
# mbclin = lin.multiblade_transform((0, rotor_speed), [range(0,4),range(4,8),range(8,12)])

# Set initial pitch deflection and simulate
z0 = np.zeros(13)
z0[0] = 0.3
# yl = lin.integrate(t, z0)
# ym = mbclin.integrate(t, z0)

# Simulate original full system
tb.base_motion = 4
tb.base_motion_amp = 0.3
tt, y = tb.simulate(t1=90, dt=0.25, rotor_speed=rotor_speed, init=False)


def mbc(az, u):
    N = len(az)
    B = (
        array(
            [
                np.ones((3, N)),
                [2 * np.cos(az), 2 * np.cos(az + 2 * pi / 3), 2 * np.cos(az + 4 * pi / 3)],
                [2 * np.sin(az), 2 * np.sin(az + 2 * pi / 3), 2 * np.sin(az + 4 * pi / 3)],
            ]
        )
        / 3
    )
    u = array(u)
Ejemplo n.º 2
0
t = np.arange(0, 90, 0.25)

# Linearise model and make MBC version
#lin = tb.lin(az0=0, rotor_speed=rotor_speed, init=False)
#mbclin = lin.multiblade_transform((0, rotor_speed), [range(0,4),range(4,8),range(8,12)])

# Set initial pitch deflection and simulate
z0 = np.zeros(13)
z0[0] = 0.3
#yl = lin.integrate(t, z0)
#ym = mbclin.integrate(t, z0)

# Simulate original full system
tb.base_motion = 4
tb.base_motion_amp = 0.3
tt,y = tb.simulate(t1=90, dt=0.25, rotor_speed=rotor_speed, init=False)


def mbc(az, u):
    N = len(az)
    B = array([
        np.ones((3,N)),
        [2*np.cos(az), 2*np.cos(az+2*pi/3), 2*np.cos(az+4*pi/3)],
        [2*np.sin(az), 2*np.sin(az+2*pi/3), 2*np.sin(az+4*pi/3)],
    ]) / 3
    u = array(u)
    z = np.einsum('zbt,btj->jzt', B, u)
    return z

def p(parts=False):
    fig = plt.figure()