ObjectModel_diagram.pdf 文档详细总结

ObjectModel_diagram.pdf 文档详细总结

该文档是 AGI 官方STK Object Model(对象模型)完整 UML 类图套件 ,一共 18 页,是 STK 仿真内核的 COM 接口完整定义,对应 MATLAB 中root = uiapp.Personality2之后全部仿真对象;与前面的 STKX(软件 GUI 层)、VGT(矢量几何计算层)共同构成完整 STK COM 自动化技术栈。

STK Object Model 负责场景、各类作战实体、传感器、访问计算、姿态、轨道传播、约束、图形属性,你的午夜之锤项目:Facility 阵地、Aircraft 战机、Satellite 卫星、Sensor 雷达、Propagator 轨道传播器、Access 访问分析全部来源于这套对象模型。

一、总体架构与基础继承体系

1. 根基类 IAgStkObject

所有仿真实体全部继承IAgStkObject (Facility、Aircraft、Satellite、Missile、Sensor 等),是整个对象模型的顶层基接口。

公共成员(全部实体通用):

  1. .Path:对象绝对路径,如/Facility/Natanz_Facility,对应GetObjectFromPath()查找接口;
  2. .Children:子对象集合,Facility 下面挂载 Sensor、Satellite 下面挂载 Sensor;
  3. .Vgt:VGT 矢量几何工具入口,对接 VGT‑diagram.pdf 的全部计算组件;
  4. .AccessConstraints:访问约束管理器(距离、仰角等约束);
  5. .Graphics:2D/3D 图形显示属性;
  6. 方法:GetAccessToObject()生成 Access 访问对象;CopyObject()复制对象;Unload()销毁对象。

2. 集合对象 IAgStkObjectCollection

  • scenario.Children就是该集合;提供.New().Contains().Count.Item(index)
  • ⚠️集合下标从0 开始,MATLAB 数组从 1 开始,是高频 bug 来源。

3. 通用附属组件

  1. AccessConstraints(访问约束集合)
    增加 / 删除距离、仰角、遮挡约束;雷达传感器最大探测距离就通过该接口配置;STK11 没有RemoveAllConstraints方法,需要循环逐个删除约束。
  2. Enumerations 枚举集合
    实体类型eFacility/eAircraft/eSatellite、传播器类型ePropagatorHPOP、传感器指向模式eSnPtSpinning/eSnPtTargeted、波束模式全部在此定义。
  3. DataProviders:数据提供器,时序数据输出,与 VGT 协同工作。
  4. BeginUpdate() / EndUpdate():批量修改接口,继承自基对象;批量修改属性时关闭中间重绘,提升脚本运行速度。

完整三层调用链路回顾:

MATLAB → STKX (IAgUiApplication) → .Personality2ObjectModel 根对象 → 各类仿真实体 → .Vgt → VGT 几何计算组件。

二、主要模块划分(对应 PDF 分页)

Page1:根对象、Access 约束、DataProviders、基础属性

  • 根对象IAgStkObjectRootNewScenario()Unload()GetObjectFromPath()UnitConvert()单位转换;
  • IAgAccess访问对象:ComputeAccess()计算可视,ComputedAccessIntervalTimes得到intervals时间区间集合,就是代码中的雷达‑目标可见窗口;
  • IAgAccessConstraintCollection约束管理。

Page2:姿态系统 Attitude Options

姿态相关全套接口:

  1. SetAttitudeType()设置姿态模式:对地指向、惯性指向、跟随目标等;
  2. 飞行器、卫星共用姿态接口;MUOS、铱星卫星eAttitudeEarthPointing对地指向就在这部分;
  3. 姿态配置对象、姿态事件、姿态文件导入接口。

Page3:图例说明 UML 标记

  • R/W‑Property读写属性;R/O‑Property只读属性;Method()成员方法;
  • 空心三角 = 继承;菱形 = 集合聚合;CoClass = 可实例化 COM 类;Interface = 抽象接口不能直接实例化。

Page4:Vehicle Propagators 飞行器 / 卫星传播器(轨道 / 航迹)

对应你代码中 Satellite 的.Propagator,非常关键。

  1. 通用基接口IAgVePropagator,必须调用QueryInterface()向下强转为具体传播器;
  2. 支持传播器:
    • ePropagatorTwoBody二体;
    • ePropagatorJ2PerturbationJ2 摄动(铱星 LEO);
    • ePropagatorHPOP高精度数值传播器(MUOS GEO 卫星);
    • ePropagatorSGP4两行 TLE 轨道;
  3. 成员:.InitialState轨道初值;AssignClassical()赋值开普勒轨道根数;.Propagate()执行轨道计算。

注意:直接操作基接口IAgVePropagator看不到InitialState,必须QueryInterface转型,是高频踩坑点。

Page5‑6:Aircraft 对象(飞行器,B‑2、EA‑18G、F‑22)

IAgAircraft:飞机实体对象

  1. 航点集合 Waypoints,设置时间、经纬度、高度、速度,GreatArc 大圆航迹传播;
  2. RCS 雷达散射截面配置;
  3. 2D/3D 图形属性:轨迹线、模型、标签;
  4. .Children可以挂载Sensor传感器;
  5. 姿态、光照、航迹绘制、轨迹尾迹配置。

Page7‑8:Facility 地面设施对象(纳坦兹、福尔道、伊斯法罕阵地)

IAgFacility地面固定阵地:

  1. Position.AssignGeodetic(lat,lon,alt)设置经纬度高程;
  2. .Children挂载Sensor雷达传感器;
  3. 2D/3D 图形、地标、标签设置。

Page11‑12:Missile 导弹对象(战斧巡航导弹)

IAgMissile导弹实体:

  • 弹道传播器、发射点、落点;RCS;图形属性;挂载传感器。

Page14‑15:Satellite 卫星对象(MUOS‑4、Iridium 铱星)

IAgSatellite卫星对象:

  1. .Propagator轨道传播器;.Attitude姿态;.EclipseBodies地影计算;
  2. .Children挂载 Sensor 通信载荷;
  3. 2D/3D 图形:星下点轨迹、地面椭圆、轨道线、光照、地影显示;
  4. 数据导出接口,支持 CCSDS、STK 星历导出。

Page18:Sensor 传感器对象(雷达、通信载荷,本项目核心)

IAgSensor传感器类图,你的防空雷达、卫星通信波束全部由此实现:

  1. .Pattern天线方向图:eSnSimpleConic / eSnComplexConic / eSnRectangular
  2. .Pointing指向模式:
    • eSnPtSpinning圆周扫描;
    • eSnPtTargeted目标跟踪;搭配IAgSnTargetCollection目标集合,.AddObject()添加跟踪实体句柄;
  3. .AccessConstraints距离 / 仰角约束;
  4. .Graphics波束颜色、波束开关显示;
  5. .Vgt传感器矢量几何数据入口。

重要:IAgSnTargetCollection.AddObject()只能传入 COM 对象句柄,不能传路径字符串

三、三大 COM 组件完整对比(论文可以直接引用)

表格

组件库 文档来源 主要职责 MATLAB 入口 核心对象
STKX STKX_diagram.pdf STK 软件 GUI、窗口、3D/2D 视图画布、绘图元素 uiapp = actxGetRunningServer('STK11.application') IAgUiApplication
Object Model ObjectModel_diagram.pdf 仿真内核:场景、阵地、飞机、卫星、雷达、轨道、访问约束 root = uiapp.Personality2 IAgStkObject及其派生类
VGT(Vector Geometry Tool) VGT_diagram.pdf 矢量几何、距离角度计算、Evaluate()FindTimes()事件检测 obj.Vgt(任意 StkObject 的 Vgt 属性) IAgVgtCalculationComponent

四、与午夜之锤仿真项目的映射

表格

UML 对象接口 项目中实体 关键用法
IAgStkObjectRoot 仿真根对象 NewScenarioGetObjectFromPath()
IAgFacility 纳坦兹、福尔道、伊斯法罕防空阵地 设置经纬度,挂载 Sensor 雷达
IAgAircraft B‑2、EA‑18G、F‑22 战机 设置航点、RCS
IAgSatellite MUOS‑4、Iridium 铱星卫星 HPOP/J2Perturbation 传播器,对地姿态,挂载通信 Sensor
IAgMissile 战斧巡航导弹 弹道仿真
IAgSensor S‑300、Bavar‑373 雷达;卫星通信波束 Spinning 扫描↔Targeted 跟踪切换;波束配置;Access 约束设置
IAgSnTargetCollection 雷达跟踪目标列表 AddObject()添加 B‑2 目标句柄
IAgAccess 雷达‑目标、卫星‑地面站访问分析 ComputeAccess(),得到intervals可见区间
IAgVePropagator(HPOP/J2) 卫星轨道传播器 QueryInterface()转型,设置轨道根数
BeginUpdate/EndUpdate 全部实体通用接口 批量修改参数,抑制界面重绘,提升脚本速度

五、工程开发关键提示(来自 UML 图与官方定义)

  1. 继承统一 :Facility/Aircraft/Satellite/Missile/Sensor 全部继承IAgStkObject,共享.Children.Vgt.AccessConstraints.Graphics接口;
  2. 集合下标从 0 :所有Collection.Item(index)索引从 0,MATLAB 循环需要做下标转换;
  3. 传播器必须强转Propagator基接口不能直接访问轨道初值,QueryInterface()向下转型是强制步骤;
  4. AddObject()接收对象句柄,禁止传入字符串路径
  5. BeginUpdate/EndUpdate成对使用,减少 STKX 层 3D 视图频繁重绘,显著提升大脚本运行效率;
  6. 区分:intervals(Access 对象输出,连续可见时间段)和FindTimes()(VGT 输出离散事件点,极小 / 极大时刻);
  7. 不要混淆三层组件:GUI 窗口操作交给 STKX;仿真实体建模交给 ObjectModel;时序几何计算交给 VGT。

六、论文写作可用总结片段

Object Model 是 STK 仿真内核的 COM 对象模型,定义了场景、地面设施、飞行器、卫星、导弹、传感器等全部仿真实体的接口规范。所有实体继承基接口IAgStkObject,提供子对象管理、访问约束、图形属性、VGT 几何计算入口。通过 MATLAB COM 自动化调用 Object Model,可以完全脱离 STK 图形界面的手动操作,程序化完成实体创建、轨道航迹配置、传感器模式切换、访问分析计算,为 "午夜之锤行动" MATLAB‑STK 闭环联合仿真提供底层接口基础。

相关推荐
自己的九又四分之三站台2 小时前
C# 接入 RasterLite2:从原生 DLL 加载到 Coverage、Section、Tile 验证
开发语言·c#·地理信息
飞翔的火箭弹2 小时前
企业网络资产管理用什么系统工具
开发语言·网络·php
码云骑士2 小时前
116-Python调用GPT-4V分析图片-Base64编码-多图-JSON结构化输出
开发语言·python·json
88号技师2 小时前
2026年SCI-分数牛顿衍生优化算法Fractional Newton-derived optimizer-附Matlab免费代码
开发语言·算法·数学建模·matlab·优化算法
承渊政道2 小时前
【Python编程—从入门到实践】(Python操作列表深度教程:循环、切片、元组与代码风格)
开发语言·python·pycharm·列表·元组·切片
布值倒区什么name2 小时前
Pycharm2026找不到编译器 点击运行运行不了
开发语言·python·pycharm
智购科技自动售货机工厂2 小时前
2026自动售货机电机驱动芯片选型:从L298N到DRV8870的工程实践~YH
大数据·开发语言·数据库·人工智能·单片机·嵌入式硬件·scikit-learn
2501_915918412 小时前
Rust 程序抓包解密,rustls 不认系统证书的几种办法
开发语言·后端·网络协议·ios·adb·https·rust
今天AI了吗2 小时前
AI 数据安全治理框架:模型能力与数据权限的边界在哪里
java·linux·开发语言·人工智能·python·深度学习·机器学习