跳到主要内容

信息是不确定性的消除。

Claude Shannon信息论创始人

飞行器 Control Challenge

每学完一个章节,用所学知识解决一个真实的飞行控制问题。


Challenge挑战:计算升力系数
Scenario

你的无人机在高度 100m 处以 50 m/s 的速度平飞。空气密度 ρ = 1.225 kg/m³,机翼面积 S = 2.0 m²。你需要计算维持平飞所需的升力系数 CL。

🎯编写函数 calculate_lift(alpha),其中 alpha 是迎角(弧度),返回升力系数 CL = 2πα(薄翼理论小迎角近似)

Challenge挑战:飞行速度包线计算
Scenario

某型无人机的设计参数:最大升力系数 CL_max = 1.8,最小阻力系数 CD_min = 0.02,翼载 W/S = 150 N/m²,空气密度 ρ = 1.225 kg/m³。

🎯编写函数 stall_speed() 返回失速速度(m/s)。失速速度是升力刚好等于重力时的速度:V_stall = sqrt(2 * W/S / (ρ * CL_max))

如何使用

在任何教程 MDX 文件中添加挑战:

import ControlChallenge from '@site/src/components/ControlChallenge';

<ControlChallenge
title="挑战标题"
scenario="场景描述..."
objective="你要完成的任务..."
starterCode={`# 起始代码`}
solution={`# 参考答案`}
tests={[
{ call: 'function_name(args)', expected: [min, max], label: '测试描述' },
]}
/>
提示
  • tests 中的 expected[最小值, 最大值] 范围,允许浮点误差
  • solution 可选,不提供则不显示"查看答案"按钮
  • starterCode 中用 # TODO 标记需要学生填写的位置