i = 0 max_speeds = [] paths = glob(r'C:\Users\mlip814\airfoil_data\airfoil_data\*') for path in sample(paths, len(paths)): try: airfoil = Airfoil.from_folder(path, 100000, 9) blade = Blade(airfoil, 3) torque = resistance(blade_speed) / 3 # (per blade) blade.design(knots(10), torque, rpm(140)) wind_speeds = np.linspace(8, 12, 3) results = [ blade.solve(knots(wind_speed), system) for wind_speed in wind_speeds ] blade_speeds = [rads(result[0]) for result in results] #torques = [result[1] for result in results] powers = [result[0] * result[1] for result in results] ax1.plot(wind_speeds, blade_speeds) ax2.plot(wind_speeds, powers) max_speeds.append([airfoil.name, max(blade_speeds), blade.radius]) except: pass i += 1
ax = plt.subplot(1, 1, 1) ax.set_xlabel('Wind Speed (knots)') ax.set_ylabel('Blade Speed (rpm)') import time start_time = time.time() i = 0 path = glob(r'C:\Users\mlip814\airfoil_data\airfoil_data\*')[56] airfoil = Airfoil.from_folder(path, 100000, 9) for n in (2, 3, 6, 12): blade = Blade(airfoil, n) torque = resistance(blade_speed) / n # (per blade) blade.design(knots(10), torque, rpm(140)) wind_speeds = np.linspace(8, 12, 20) results = [ blade.solve(knots(wind_speed), system) for wind_speed in wind_speeds ] blade_speeds = [rads(result[0]) for result in results] ax.plot(wind_speeds, blade_speeds, label=str(n)) ax.legend() print(time.time() - start_time) if input('Save?') != '': plt.savefig('image_n_blades.png') plt.show()
blade_speeds = np.linspace(rpm(90), rpm(180), 10) torques = [ blade.simulate(wind_speed, blade_speed) * 3 for blade_speed in blade_speeds ] resistances = [resistance(blade_speed) for blade_speed in blade_speeds] ax = plt.subplot(1, 2, 1) ax.plot(blade_speeds, torques, label='Torque Output') ax.plot(blade_speeds, resistances, label='Resistance') ax.legend() ax.set_xlabel('Blade Speed (rad/s)') ax.set_ylabel('Torque (nm)') ax.set_title('Blade Speed vs Torque for an AG17 airfoil at 10 knots') ax = plt.subplot(1, 2, 2) wind_speeds = np.linspace(knots(8), knots(12), 20) results = [blade.solve(wind_speed, system)[0] for wind_speed in wind_speeds] wind_speeds = [ms(x) for x in wind_speeds] results = [rads(x) for x in results] ax.plot(wind_speeds, results) ax.set_xlabel('Wind Speed (knots)') ax.set_ylabel('Blade Speed (rpm)') plt.show() plt.figure()