模仿降落伞打开算法
在这个演示中,我们将为好奇号漫游车建立一个降落伞模型。 这是第三代流动站
旨在探索火星上的盖尔陨石坑,作为美国宇航局火星科学实验室任务的一部分。
漫游者是一种自主化学物质
实验室比以前大几倍,重
精神和机会漫游者。 它下面的降落伞以及许多其他设备都与
以下算法,根据高度自动打开,
以及确定其速度。
降落伞部署在从6500到
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]:
结论
正如我们在图表中所看到的,系统的工作方式是相同的,而现在
该算法的两个实现都是降落伞打开的结果,
其指示所实现的逻辑的身份。