brun.get('Nacelle fore-aft displacement'), brun.get('Nacelle nod angle'), ] #loading = PointLoading(blade, wind_table, None) thrust_time = [0, 1, 2, 10 ] thrust_force = [0, 0, 10e3, 10e3] thrust = np.c_[ thrust_force, np.zeros((4,2)) ].T loadfunc = scipy.interpolate.interp1d(thrust_time, thrust) # Modal element base = RigidConnection('base', rotation=rotmat_y(-np.pi/2)) el = ModalElement('el', modes, distal=True, damping_freqs=[8.269, 10.248]) rna = RigidBody('rna', 24000, np.diag([6400003, 6400003, 4266667]), nodal_load=loadfunc) base.add_leaf(el) el.add_leaf(rna) system = System(base) integ = Integrator(system) integ.add_output(el.output_deflections()) integ.add_output(el.output_rotations()) integ.add_output(dynamics.LoadOutput(rna.iprox)) linsys = LinearisedSystem(system) def ani_xy(s,t,y): return dynvis.anim(s, t, y, (0,1), (-5,45), (-5,5), velocities=False) def ani_xz(s,t,y): return dynvis.anim(s, t, y, (0,2), (-5,45), (-5,5), velocities=False)
# Create model bladed_file = r'C:\Users\Rick Lupton\Dropbox\phd\Bladed\Models\OC3-Hywind_SparBuoy_NREL5MW.prj' print "Loading modes from '%s'..." % bladed_file towerdef = Tower(bladed_file) modes = towerdef.modal_rep() endmass = 100000 endinertia = 100 el1 = ModalElement('el', modes, distal=False) system1 = System(el1) el2 = ModalElement('el', modes, distal=True) body = RigidBody('body', endmass, inertia=endinertia*np.eye(3)) el2.add_leaf(body) system2 = System(el2) integ1 = Integrator(system1) integ1.add_output(el1.output_positions()) integ2 = Integrator(system2, outputs=('pos','vel','acc')) integ2.add_output(el2.output_positions()) integ2.add_output(dynamics.NodeOutput(body.iprox)) integ2.add_output(dynamics.NodeOutput(body.iprox, deriv=2)) integ2.add_output(dynamics.LoadOutput(body.iprox)) integ2.add_output(dynamics.StrainOutput(el2.imult)) if False: t,y1 = integ1.integrate(20, 0.05) t,y2 = integ2.integrate(20, 0.05)
#loading = PointLoading(blade, wind_table, None) thrust_time = [0, 1, 2, 10] thrust_force = [0, 0, 10e3, 10e3] thrust = np.c_[thrust_force, np.zeros((4, 2))].T loadfunc = scipy.interpolate.interp1d(thrust_time, thrust) # Modal element base = RigidConnection('base', rotation=rotmat_y(-np.pi / 2)) el = ModalElement('el', modes, distal=True, damping_freqs=[8.269, 10.248]) rna = RigidBody('rna', 24000, np.diag([6400003, 6400003, 4266667]), nodal_load=loadfunc) base.add_leaf(el) el.add_leaf(rna) system = System(base) integ = Integrator(system) integ.add_output(el.output_deflections()) integ.add_output(el.output_rotations()) integ.add_output(dynamics.LoadOutput(rna.iprox)) linsys = LinearisedSystem(system) def ani_xy(s, t, y): return dynvis.anim(s, t, y, (0, 1), (-5, 45), (-5, 5), velocities=False) def ani_xz(s, t, y):
# Create model bladed_file = r'C:\Users\Rick Lupton\Dropbox\phd\Bladed\Models\OC3-Hywind_SparBuoy_NREL5MW.prj' print "Loading modes from '%s'..." % bladed_file towerdef = Tower(bladed_file) modes = towerdef.modal_rep() endmass = 100000 endinertia = 100 el1 = ModalElement('el', modes, distal=False) system1 = System(el1) el2 = ModalElement('el', modes, distal=True) body = RigidBody('body', endmass, inertia=endinertia * np.eye(3)) el2.add_leaf(body) system2 = System(el2) integ1 = Integrator(system1) integ1.add_output(el1.output_positions()) integ2 = Integrator(system2, outputs=('pos', 'vel', 'acc')) integ2.add_output(el2.output_positions()) integ2.add_output(dynamics.NodeOutput(body.iprox)) integ2.add_output(dynamics.NodeOutput(body.iprox, deriv=2)) integ2.add_output(dynamics.LoadOutput(body.iprox)) integ2.add_output(dynamics.StrainOutput(el2.imult)) if False: t, y1 = integ1.integrate(20, 0.05) t, y2 = integ2.integrate(20, 0.05)