模拟降落伞打开算法
在本演示中,我们将为好奇号漫游车建立一个降落伞模型。它是第三代漫游车
设计用于探索火星上的盖尔陨坑,是美国宇航局火星科学实验室任务的一部分。
该漫游车是一个自主化学
是一个自主化学实验室,其体积和重量都是之前的
精神号 "和 "机遇号 "探测器大几倍,也重几倍。与许多其他飞行器一样,它的降落伞使用了
根据高度自动打开的算法、
以及确定其速度。
降落伞的展开高度范围为 6,500 至
17000 м.
本例展示了该算法的两种变体。
的两种变体。在第一种情况下,我们使用来自
在第二种情况下,我们使用了 engee 函数。
下面是这两种算法的实现。

辅助函数声明
In [ ]:
# Подключение вспомогательной функции запуска модели.
function run_model( name_model)
Path = (@__DIR__) * "/" * name_model * ".engee"
if name_model in [m.name for m in engee.get_all_models()] # Проверка условия загрузки модели в ядро
model = engee.open( name_model ) # Открыть модель
model_output = engee.run( model, verbose=true ); # Запустить модель
else
model = engee.load( Path, force=true ) # Загрузить модель
model_output = engee.run( model, verbose=true ); # Запустить модель
engee.close( name_model, force=true ); # Закрыть модель
end
sleep(5)
return model_output
end
Out[0]:
模型结果比较
In [ ]:
run_model("mars_para_block")
run_model("mars_para_julia")
out_block = collect(out_block)
out_julia = collect(out_julia)
out_time = out_block.time
out_block = out_block.value
out_julia = out_julia.value
A = plot(out_time, out_block)
plot!(out_time, out_julia)
xlabel!("Time")
ylabel!("State")
B = plot(out_block-out_julia, label="error")
plot(A,B)
Out[0]:
结论
从图中我们可以看到,这两个系统的工作方式是相同的。
的时刻是一致的、
这表明实现的逻辑是相同的。