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)
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()