鱗目界域-龍論壇

游態龍的錫安山。龍的力量、智慧、野性、與優雅

您尚未登录。 (登录 | 注册)

公告

mb 爪機版     |    論壇指南     |    Discord     |    QQ群

《龙魂志》第一期
《龙魂志》第二期

Tips:欢迎来到龙之里

#1 2025-01-21 08:34:08  |  显示全部楼层

羽落
虬龍
Registered: 2024-03-30
Posts: 114
网站

回应: 龍的飛行─用機翼升力公式討論FR中的龍"滑翔"的可能性

和ai一起想了想,得出一些有一定可行性的方案:
1.可以將ρ,C,S看作長方體的三條棱長,0.5v²看作一個與長方體體積相關的係數。此時就可以類比爲長方體體積乘以係數0.5v²。若從幾何角度看,就是要找到滿足體積乘以係數大於M(所受重力)的長方體棱長各自的取值範圍。
2.根據公式構造超曲面,算出超曲面“上方”對應的各變量取值。
3.構造向量(ρ,C,S,v)和由f(ρ,C,S,v)=\frac{1}{2}ρCSv²(ρ,C,S,v均大於0)得來的變換規則。
4.代碼硬算求解當f(ρ,C,S,v)大於M時各變量的取值範圍(或者說組合?我想不出來合適的值了),不過似乎還得加權重以免出現升力係數取到幾十上百的情況。
看了看發現好像沒一個是我現在水平能得出具體答案的,包括第4個方案,如果少一個變量或許還可能用帶函數圖像顯示的程序直觀顯示……


若有謬誤,務必告知。

离线

#2 2025-03-28 19:41:11  |  显示全部楼层

羽落
虬龍
Registered: 2024-03-30
Posts: 114
网站

回应: 龍的飛行─用機翼升力公式討論FR中的龍"滑翔"的可能性

搞了個py程序暴力遍歷大量值 [壞笑] :


import numpy as np
import plotly.graph_objects as go

# 固定参数
rho = 1.225

# 生成参数范围
C_values = np.linspace(0.5, 2.0, 16)  # C从0.5到2.0,步距0.1
S_values = np.arange(5, 51, 1)        # S从5到50,步距1
v_values = np.arange(5, 41, 1)        # v从5到40,步距1

# 预计算全局F的范围
all_F = []
for c in C_values:
    S_mesh, v_mesh = np.meshgrid(S_values, v_values)
    F = 0.5 * rho * c * S_mesh * v_mesh**2
    all_F.append(F.flatten())
max_F = np.max(all_F)
min_F = np.min(all_F)

# 创建每个C值的曲面轨迹
traces = []
for c in C_values:
    S_mesh, v_mesh = np.meshgrid(S_values, v_values)
    F = 0.5 * rho * c * S_mesh * v_mesh**2
    
    traces.append(go.Surface(
        x=S_mesh,
        y=v_mesh,
        z=F,
        name=f'C = {c:.1f}',
        visible=False,
        colorscale='Viridis',
        cmin=min_F,
        cmax=max_F,
        colorbar=dict(title='Force F')
    ))

# 设置第一个轨迹可见
traces[0].visible = True

# 创建滑块组件
steps = []
for i, c in enumerate(C_values):
    step = dict(
        method="update",
        args=[{"visible": [False] * len(traces)},
              {"title": f"空气动力 F (ρ=1.225) - C={c:.1f}"}],
        label=f"{c:.1f}"
    )
    step["args"][0]["visible"][i] = True
    steps.append(step)

sliders = [dict(
    active=0,
    currentvalue={"prefix": "升力系数 C: "},
    pad={"t": 50},
    steps=steps
)]

# 设置图表布局
layout = go.Layout(
    title='空气动力 F (ρ=1.225) - 选择C值查看对应曲面',
    scene=dict(
        xaxis_title='投影面积 S',
        yaxis_title='速度 v',
        zaxis_title='空气动力 F',
        camera=dict(eye=dict(x=1.5, y=-1.5, z=0.5))
    ),
    sliders=sliders,
    width=1000,
    height=800
)

fig = go.Figure(data=traces, layout=layout)
fig.show()


有 1 位朋友喜欢这篇文章:龍爪翻書


若有謬誤,務必告知。

离线

论坛页尾