在FreeFlyer中设计星座的提示和技巧万博体育下载投注®


万博体育下载投注FreeFlyer是一种强大的Astrovynamics软件工具,使用户提供了任何尺寸的卫星星座的电源;无论是预启动的任务分析还是标称运营和飞行动力学支持,FreeFlyer都会为您的星座的设计,分析和运营提供权力。万博体育下载投注有许多提示和技巧,用户可以在任何轨道制度中使用更有效地设计和分析任何大小的星座,即使在任何星球上也是如此!以下是我们最喜欢的一些建议,可以最大限度地提高FreeFlyer的实用程序 - 如果您已经知道这些大部分,请考虑自己万博体育下载投注是一个权力用户!

特派团计划优化的技巧

使用均值元素集

对于大规模的星座,通常需要非常仔细地选择初始状态,以便在轨道演变时减少站保持的机动的需要。因此,我们始终建议使用像J2 BRORWER-LYDDANE的平均元素,而不是KEPPLERIAN元素。BRORWER-LYDANE的平均要素占地球重力模型的现实扰动,并且基于平均随时间构建,因此具有更稳定的时期。然而,Keplerian静态元素纯粹是瞬时值,将轨道视为古典双体系统;也就是说,他们假设中央体可以表示为点质量。因此,当使用高保真力模型使用Keplerian元素进行初始化时,即使在单个轨道的过程中,元素也会变化。使用Keplerian元素初始化Constellation的轨道将导致您的星座中不同卫星的不同轨道时期,导致卫星随着时间的推移相对于彼此漂移。万博官方网址是多少

调整你力量模型的保真度

如果您不需要高保真分析,将力模型配置为分析的相对保真度更有效。这包括选择最佳集成商以减少运行时,从而显着提高FreeFlyer的性能。万博体育下载投注用户可以查看有关特定集成商的详细信息,并使用“使用”的优势与劣势选择积分商“我们的帮助文件页面。注意:如果您预先计算了轨道并保存了星历文件,则可以使用更高的保真力模型,因为只需计算一次。“

预计轨道传播

提高任务计划的性能的简单方法是预先计算地图的轨道传播并将状态保存到星历文件。一旦创建了用于形成的星际术,您可以运行一个使用单一的任务计划,用于传播。这允许您计算多个轨道产品,例如使用星委的联系人分析,PC计算和阴影时间,而不是重新集成轨道传播。当执行这些间隔方法分析到形成时,这是特别有益的,因为它有助于减少任务计划运行时间和RAM使用情况。

铱星座

图1:铱星座

使用profiler.

如果您有兴趣确保您的代码是高效的,并且不能以不必要的方式浪费计算周期,您可以使用内置的FreeFlyer Profiler来查看您的任务计划的代码执行。万博体育下载投注Profiler报告了有关在特派团计划的不同部分所花费的时间的信息。通过Profiler运行任务计划后,将时间信息报告给范围文件(诸如过程的时间)和行文件(每行时间)。通过这种探查器知识,您可以更好地调试和优化任务计划。可以在FreeFlyer帮助文件中找到使用此命令行开关的示例万博体育下载投注指导对于探查器。

利用多个FreeFlyer实例万博体育下载投注

您可以通过在计算机的多个核心划分过程来优化任务计划。一个万博体育下载投注Freeflyer许可证一次提供最多6个Freeflyer的实例,因此您可以在可用核心中传播模拟的功能,以改善运行时。这是通过同时运行相同任务计划的多个副本来实现的,然后将输入传递给任务计划,以便每次Freeflyer实例都在问题的一部分上工作。万博体育下载投注

使用运行时API

要帮助减少运行时,您还可以使用跨多个内核来分割问题万博体育下载投注FreeFlyer运行时API(RTAPI)通过通用开发人员语言控制自动化执行进程。API支持以下语言:

  • C / C ++
  • C#
  • java.
  • Python
  • 马铃薯

RTAPI接口可以通过使用所选的开发语言执行基本功能来帮助减少任务计划中所需的代码量。运行时API还包括异步编程更容易跨越核心的过程。

viewWindow效率

为了提高具有极大的地层性能,我们建议您在视野中将其视为一组。当您将形成作为组时,FreeFlyer表示每个航天器作为点,而无需绘制尾部以万博体育下载投注优化性能。

形成我的形象;
viewWindow.ViewWindow1({MyFormation});
myterrain.addfiles(“。\ terrainfile.tif”);

MyFormation.LoadNoradtle(“gps fleet.thtle”);
MyFormation.viewasgroup = 1;// 1 =将所有航天器视为组
MyFormation.groupPointSize = 10;

尽管(MyFormation [0] .elapsedtime <时间跨度(6.小时));
MyFormation.step();
更新ViewWindow1;
结尾;

形成viewasgroup.

图2:Fromation Viewasgroup示例

顶部:单独查看每个航天器(运行时间为20秒)

底部:将形成作为组(7秒的运行时间)

二进制星历

如果可能的话,使用二进制星历文件。万博体育下载投注FreeFlyer允许使用a使用a传播宇宙飞船的能力香料二进制星历。它们的文件大小小于其ASCII等效项,读/写时间要快得多

Freeflyer中脚本的提示万博体育下载投注

使用列表和形成对象

当您有多个相同类型对象的副本时,可以使用列表或展示来简化脚本。列表允许组控制对象,如地面,向量,输出窗口,报表文件等,并且很容易允许使用循环来配置相同类型的对象,而不是为每个单独对象重复类似的代码块。除列表外,形成对象专门用于控制一个或多个航天器对象,并使用单个命令或方法提供额外的可视化和传播。

形成我的形象;

//设置形成大小
MyFormation.Count = 3;

//使用步骤方法传播整个形成
MyFormation.step();

形成对象

图3:星座建模和可视化

从一个tle进口

您可以轻松导入任何大小的形成,并使用Flogation.LoadNoradtle()方法使用单行代码初始化每个航天器。LoadNoradtle()方法将调整形成大小并将其单独的航天器对象与TLE文件中的所有状态填充。

形成我的形象;

报告myformation.count;//返回0的计数

MyFormation.LoadNoradtle(“gps fleet.thtle”);

报告myformation.count;//返回加载的TLE状态的计数

使用程序

严谨写入模块化代码。如果您发现自己不止一次地编写相同的代码,那么您将更好地粘贴在过程中的代码。万博体育下载投注FreeFlyer程序提供执行Freeic Flyer脚本的通用集的能力。通常,您希望该过程仅执行一个主要任务,例如类似对象的配置。例如,如果您对宇宙飞船进行了大量的宇宙飞船,则需要将坦克和推进器安装到模拟特定发动机,因此是理想的过程。

定义程序tank_thrusters_configuration(形成F);

多变的一世;
列表<内插>插值;
列表<推进器> Chemthruster;

InterpolateTank.Count = F.Count;
chemthrester.Count = F.Count;

为了我= 0.F.Count-1;
//附着坦克,推进器和阀门
InterpolatedTank [I]f [i];
Chemthruster [I]f [i];
InterpolatedTank [I]Chemthruster [I];

//配置推进器
Chemthruster [i] .type =“化学”;
Chemthruster [i] .thresterc1 = 444.8;//推力(n)
ChemThrerter [i] .thresterk1 = 300;// ISP(秒)
结尾;

endProcedure.;

形成形成1;
flowation1.count = 500;

称呼tank_thrusters_configuration(flowation1);

模块化您的Maseplan布局

为特派团计划的不同部分组织和考虑组织和考虑的最佳方法是分离任务。您可以通过使用单独的自由形式来执行多个任务来执行特定的代码脚本。一个示例是在执行评估即将结合的自由形式之后生成机动计划选项的自由形式,并肯定地识别紧密方法。通过将任务分解为多个自由形式,可以通过协作者轻松解析您的代码,并且MasementPlan的逻辑序列更为明确。

模块化任务计划

图4:单独任务的任务顺序

使用structs.

您应该在可能时使用结构进行组织和共享数据。structs提供了一种简单的方法来定义相关的FreeFlyer对象的集合,以实现简单的代码组织。万博体育下载投注创建结构后,用户可以方便地通过进程之间的数据,并轻松读/写JSON数据

使用structs.

图5:结构示例

一如既往地,FreeFlyer万博体育下载投注团队在这里提供帮助!如果您对最佳实践和一般的FreeFlyer功能有疑问或只需要一些帮助让您的使命计划有效地运行,请访问我们万博体育下载投注电话或者电子邮件。保持调整更多的FreeFlyer提示和技万博体育下载投注巧!

manbetxapp 下载