Condensed module for Aircraft Design
Project description
aircraft_design
Para instalar a biblioteca oficialmente, você pode usar o gerenciador de pacotes pip. A seguinte linha de comando pode ser executada no terminal ou prompt de comando:
pip install aircraft-design
Assim, a biblioteca será baixada e instalada em seu ambiente de desenvolvimento Python. Também é possível instalar a versão mais recente diretamente do repositório GitHub, executando o comando:
pip install git+https://github.com/NisusAerodesign/aircraft-design.git
Feito isso, já é possível importar e utilizar a biblioteca nas suas aplicações.
0.1. Como instalar
Para instalar basta acessar pelo repositório da própria pipy* e já estará pronto para uso.
Projeto de Design de Aeronaves NISUS-aerodesign
O projeto aircraft-design é um esforço desenvolvido por membros da equipe de competição NISUS-aerodesign com o objetivo de facilitar a análise de aeronaves. A equipe utiliza a ferramenta Vortex Lattice (ou malha de vórtices, em tradução livre), desenvolvida pelo MIT*, para conduzir essas análises.
A ferramenta Vortex Lattice permite que a equipe tenha uma visão detalhada das propriedades aerodinâmicas da aeronave, como por exemplo, a geração de sustentação, arrasto e forças de inclinação. Isso permite que a equipe faça melhorias no design da aeronave, tornando-a mais eficiente e segura para voo.
1. aircraft_design.Wing
A classe Wing (Asa) é responsável por criar superfícies aerodinâmicas, como asas e estabilizadores. Ela possui diversos parâmetros que podem ser ajustados para atender às necessidades específicas de cada projeto.
A tabela abaixo apresenta cada um dos parâmetros da classe Wing, incluindo seu tipo de dado, valor padrão e se é obrigatório ou não:
Parâmetro | Tipo de dado | Valor Padrão |
---|---|---|
airfoil | Path | Obrigatório |
wingspan | float | Obrigatório |
mean_chord | float | Obrigatório |
taper_ratio | float | 1.0 |
transition_point | float | 0.0 |
alpha_angle | float | 0.0 |
sweep_angle | float | 0.0 |
x_position | float | 0.0 |
y_position | float | 0.0 |
z_position | float | 0.0 |
align | str | 'LE' |
name | str | 'wing' |
control | list | [None] |
panel_chordwise | int | 10 |
panel_spanwise | int | 25 |
Além disso, a classe Wing possui métodos Getters e Setters para todos os seus elementos, permitindo a manipulação de seus parâmetros de forma fácil e precisa. Também podemos encontrar outros métodos importantes, como Wing().surface -> avl.Surface
e Wing().reference_area() -> float
, que fornecem informações valiosas sobre a superfície da asa e sua área de referência.
1.1. Ferramenta de plotagem
A biblioteca possui uma ferramenta de plotagem para melhor visualização da aeronave construída. Para utilizá-la, basta invocar o método plot() nas classes Wing e Aircraft.
A tabela a seguir apresenta os parâmetros que podem ser especificados na função de plotagem:
Parâmetro | Tipo de dado | Valor Padrão |
---|---|---|
figure | matplotlib.figure | None | None |
axis | matplotlib.axis | None | None |
linewidth | float | 1.0 |
color | str | 'black' |
Ambas as classes Wing e Aircraft podem receber uma figura e um eixo para se adequarem aos padrões de plotagem do usuário. Além disso, o plot gerado é tridimensional.
2. aircraft_design.Aircraft
A classe Aircraft é responsável por agrupar as superfícies aerodinâmicas e torná-las executáveis nos parâmetros da biblioteca de simulação de voo. Ela é um elemento fundamental para o projeto, pois permite a definição do avião como um todo, e é a partir dela que serão realizadas as simulações.
Abaixo seguem os principais parâmetros que compõem a classe Aircraft:
Parâmetro | Tipo de dado | Valor Padrão |
---|---|---|
mach | float | Obrigatório |
ground_effect | float | Obrigatório |
reference_chord | float | Obrigatório |
reference_span | float | Obrigatório |
surfaces_list | list | Obrigatório |
ref_point_x | float | 0.0 |
ref_point_y | float | 0.0 |
ref_point_z | float | 0.0 |
Além desses parâmetros, a classe Aircraft possui métodos Getters e Setters para todos eles, assim como outros métodos que podem ser necessários para realizar as simulações.
2.1. Gerar a geometria
Para poder executar a simulação deve ser gerada a geometria para poder ser executada.
Aircraft().geometry(name:str)
2.2. Ferramenta de plotagem
A ferramenta de plotagem para o módulo Aircraft é totalmente compatível com o módulo Wing, recebendo os mesmos parâmetros.
Verificar 1.1.
aircraft_design.Session
A classe Session é responsável por realizar a execução do código no AVL. Para fazer isso, é necessário que sejam fornecidos os seguintes parâmetros:
Parâmetro | Tipo de dado | Valor Padrão |
---|---|---|
geometry | Aircraft.geometry | Obrigatório |
cases | Case |None | None |
name | str |None | None |
A variável geometry
representa a geometria da aeronave, que será utilizada pelo AVL para realizar as análises. A variável cases
é opcional e representa os casos de simulação que serão executados no AVL. Por fim, a variável name
é também opcional e representa o nome da sessão que está sendo executada.
Com esses parâmetros em mãos, a classe Session é capaz de realizar as simulações no AVL, gerando informações valiosas sobre o comportamento da aeronave em diferentes condições.
aircraft_design.MultiSession
A classe MultiSession é responsável por realizar a execução de múltiplas sessões no AVL utilizando uma abordagem paralela que aproveita a capacidade de processamento dos múltiplos núcleos da CPU.
Para fazer isso, a classe MultiSession possui o seguinte parâmetro:
Parâmetro | Tipo de dado | Valor Padrão |
---|---|---|
session_array | list[Session] | Obrigatório |
A variável session_array
representa a lista de sessões que serão executadas no AVL, que são objetos da classe Session
com suas respectivas geometrias e casos de simulação.
A classe MultiSession é responsável por gerenciar os Workers, compartilhar a memória entre eles e organizar as filas de execução das sessões. Dessa forma, a classe MultiSession permite que múltiplas sessões sejam executadas em paralelo, aumentando a eficiência do processo de simulação.
A utilização da classe MultiSession é recomendada quando o número de sessões é maior ou igual ao dobro do número de núcleos da CPU, para que seja possível obter o máximo aproveitamento da capacidade de processamento do hardware.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file aircraft_design-0.0.17.tar.gz
.
File metadata
- Download URL: aircraft_design-0.0.17.tar.gz
- Upload date:
- Size: 16.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.6.1 CPython/3.10.12 Linux/6.1.49-Unraid
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 653336c813faff0a0fc8731117b3fedf931089c8a6d81092560d4aa891f7a21b |
|
MD5 | 6972db162dd2e92e2d024eb4885ac1e0 |
|
BLAKE2b-256 | ef88f8e9769c0e695aa7b9f3c4987efc77b24d600777279ae5d3cdb7d6d949cd |
File details
Details for the file aircraft_design-0.0.17-py3-none-any.whl
.
File metadata
- Download URL: aircraft_design-0.0.17-py3-none-any.whl
- Upload date:
- Size: 16.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.6.1 CPython/3.10.12 Linux/6.1.49-Unraid
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4976518f2fd8b9a1e0e2cba5ad3557c0e508a28f326e7098f957537ef3eba733 |
|
MD5 | 9701e1d422edb8eb5232189b1672c769 |
|
BLAKE2b-256 | 8b7117c45d06ee9697050ae712dc68c61cbf60ede1231069436b4f683e8bc8c1 |