camUrban / PteraSoftware

Ptera Software is a fast, easy-to-use, and open-source software package for analyzing flapping-wing flight.
MIT License
168 stars 32 forks source link

Modeling UVLM for Flapping wing #13

Closed bharswami closed 2 years ago

bharswami commented 2 years ago

Hi Cameron. I had a doubt. How do you model flapping in UVLM? Do you just give a roll-rate to the wings or do you also change the geometry of the wing as the dihedral changes? Your help will be greatly appreciated. Thanks Bharath

camUrban commented 2 years ago

Hi @bharswami! Thanks for the question. Wing flapping is modeled via the movement.WingCrossSectionMovement object. Check out unsteady_ring_vortex_lattice_method_solver_variable_example.py in the example directory. This file contains a heavily documented, step-by-step explanation of how the syntax of a flapping-wing vehicle is constructed.

In short, each wing cross section's movement is defined relative to the cross section closer towards the wing's root. This motion is comprised of sweeping (dihedral angle changes), pitching (twist angle changes), and heaving (sweep angle changes). Each of these three components is defined as an oscillating function (typically sinusoidal) with an amplitude and period set by the user. Let me know if that helps!

bharswami commented 2 years ago

Thanks Cameron. We consider both the angular rates and position changes or just the position changes? Regards Bharath

On Thu, Feb 3, 2022 at 7:42 AM Cameron Urban @.***> wrote:

Hi @bharswami https://github.com/bharswami! Thanks for the question. Wing flapping is modeled via the movement.WingCrossSectionMovement object. Check out unsteady_ring_vortex_lattice_method_solver_variable_example.py in the example directory. This file contains a heavily documented, step-by-step explanation of how the syntax of a flapping-wing vehicle is constructed.

In short, each wing cross section's movement is defined relative to the cross section closer towards the wing's root. This motion is comprised of sweeping (dihedral angle changes), pitching (twist angle changes), and heaving (sweep angle changes). Each of these three components is defined as an oscillating function (typically sinusoidal) with an amplitude and period set by the user. Let me know if that helps!

— Reply to this email directly, view it on GitHub https://github.com/camUrban/PteraSoftware/issues/13#issuecomment-1028537597, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHHO5APM4XNNMD2OQ3J6WM3UZHQAJANCNFSM5NE4TGWA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

bharswami commented 2 years ago

Can you clarify flapping wing in a gmeet please? I am trying to implement it in my UVLM solver.

On Thu, Feb 3, 2022 at 11:38 AM Bharath ae15d019 @.***> wrote:

Thanks Cameron. We consider both the angular rates and position changes or just the position changes? Regards Bharath

On Thu, Feb 3, 2022 at 7:42 AM Cameron Urban @.***> wrote:

Hi @bharswami https://github.com/bharswami! Thanks for the question. Wing flapping is modeled via the movement.WingCrossSectionMovement object. Check out unsteady_ring_vortex_lattice_method_solver_variable_example.py in the example directory. This file contains a heavily documented, step-by-step explanation of how the syntax of a flapping-wing vehicle is constructed.

In short, each wing cross section's movement is defined relative to the cross section closer towards the wing's root. This motion is comprised of sweeping (dihedral angle changes), pitching (twist angle changes), and heaving (sweep angle changes). Each of these three components is defined as an oscillating function (typically sinusoidal) with an amplitude and period set by the user. Let me know if that helps!

— Reply to this email directly, view it on GitHub https://github.com/camUrban/PteraSoftware/issues/13#issuecomment-1028537597, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHHO5APM4XNNMD2OQ3J6WM3UZHQAJANCNFSM5NE4TGWA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

camUrban commented 2 years ago

Entire wing objects can have motion prescribed to their leading-edge (see the movement.WingMovement object). However, this isn't implemented for individual wing cross-sections. I'm going to close this issue because I don't think there's a specific question you have about setting up a simulation. I recommend trying to run the example scripts, and then reading through all of their comments. If you run into problems, please open up a new issue using the bug report template.

I'm afraid I don't have time right now to meet in real-time, but if you are interested in the implementation of the wing movement, I recommend reading movement.py, it is also pretty well commented. I hope this helps!