2026a

# 结果数据查询类


本文介绍模型仿真结果类、结果变量树节点类等 API。

# MwSimData

模型仿真结果类,包含模型所有变量的仿真结果数据。

函数名 简介
ApplyExperimentData 应用仿真设置
GetVarTreeRoot 获取根节点
InitializeSimInst 初始化仿真实例
GetVarData 读取结果变量

# 公共类型

Enum SimResultStatus
{
Sim_Empty,
Sim_Succeeded,
Sim_Stopped,
Sim_Failed,
Sim_Writing,
Sim_Paused
}
功能 仿真实例结果状态
参数 Sim_Empty 仿真实例为空 Sim_Succeeded 仿真成功 Sim_Stopped 仿真停止 Sim_Failed 仿真失败 Sim_Writing 仿真进行中 Sim_Paused 仿真暂停

# ApplyExperimentData

应用仿真设置

  • 语法

    /**
    * @brief  应用仿真设置
    * @param  [in]exp_data仿真设置数据
    */
    void ApplyExperimentData(MwExperimentData *exp_data)
    
  • 说明

    应用仿真设置。

  • 示例

    wSimData *sim_data = new MwSimData(L"PID_Controller", L"C:/Users/TR/Documents/MWORKS/WorkSpace/PID_Controller/Result.msr", L"C:/Users/TR/Documents/MWORKS/WorkSpace/PID_Controller");
    sim_data->InitializeSimInst();
    MwExperimentData *exp_data = new MwExperimentData;
    exp_data->stopTime = 10;
    exp_data->intervalLength = 0.01;
    exp_data->numberOfIntervals = 0;
    exp_data->algorithm = "Radau5";
    exp_data->tolerance = 0.0002;
    sim_data->ApplyExperimentData(exp_data);
    

# GetVarTreeRoot

获取结果变量树的根节点。

  • 语法

    popro::MwVarTree* GetVarTreeRoot()
    
  • 说明

获取结果变量树的根节点。

  • 示例

    MwSimData *sim_data = new MwSimData(L"PID_Controller", L"C:/Users/TR/Documents/MWORKS/WorkSpace/PID_Controller/Result.msr", L"C:/Users/TR/Documents/MWORKS/WorkSpace/PID_Controller");
    sim_data->InitializeSimInst();
    popro::MwVarTree *root = sim_data->GetVarTreeRoot();
    

    获取到结果变量树的根节点信息。 StartSimulate

# InitializeSimInst

初始化仿真实例。

  • 语法

    bool InitializeSimInst()
    
  • 说明

    初始化仿真实例。

  • 示例

    用 MwSimData 的 InitializeSimInst 接口进行初始化,然后调用 GetVarTreeRoot 接口,获取结果变量树的根节点。

    MwSimData *sim_data = new MwSimData(L"PID_Controller", L"C:/Users/TR/Documents/MWORKS/WorkSpace/PID_Controller/Result.msr", L"C:/Users/TR/Documents/MWORKS/WorkSpace/PID_Controller");
    sim_data->InitializeSimInst();
    popro::MwVarTree *root = sim_data->GetVarTreeRoot();
    

    获取到结果变量树的根节点信息,符合预期结果。 InitializeSimInst

# GetVarData

读取结果变量。

  • 语法

    /**
    * @brief  获取变量结果
    * @param  [in]var_name仿真设置数据
    * @param  [out]times 时间点数组
    * @param  [out]values 对应时间点的值
    */
    bool GetVarData(
    const std::wstring &var_name, 
    std::vector<Mwdouble> &times, 
    std::vector<Mwdouble> &values)
    
  • 说明

    读取结果变量。

  • 示例

    MwSimData *sim_data = new MwSimData(L"PID_Controller", L"C:/Users/TR/Documents/MWORKS/WorkSpace/PID_Controller/Result.msr");
    sim_data->InitializeSimInst();
    std::vector<MWdouble> times, values;
    sim_data->GetVarData(L"PI.u_s", times, values);
    

    获取到变量 PI.u_s 的仿真结果数据点集。 GetVarData

# MwVarTree

结果变量树节点类,用于获取仿真结果变量树结构,一般不主动创建该对象实例。

函数名 简介
Name 变量名字
GetFullName 获取变量全名
Parent 获取父节点
Description 获取描述
Unit 单位
Children 孩子节点

# Name

获取变量名字

  • 语法

    const std::wstring& Name()
    
  • 说明

    获取变量名字。

  • 示例

    • 模型树的根节点的 Name

      popro::MwVarTree *var_tree = sim_data->GetVarTreeRoot();
      std::wstring name = var_tree->Name();
      

      name = Examples.Controller

    • 获取模型中组件 PI 的 Name

      std::vector<popro::MwVarTree*> vec_children;
          var_tree->Children(&vec_children);
      std::wstring pi_name = vec_children[1]->Name();
      

      name = PI

    • 获取模型中组件 PI 下变量 u_m 的 Name

      std::vector<popro::MwVarTree*> pi_vec_children;
          vec_children[1]->Children(&pi_vec_children);
      std::wstring um_name = pi_vec_children[1]->Name();
      

      name =u_m

# GetFullName

获取变量全名。

  • 语法

    std::wstring GetFullName()
    
  • 说明

获取变量全名。

  • 示例

    • 获取模型的根节点的 FullName

      ppro::MwVarTree *var_tree = sim_data->GetVarTreeRoot();
      std::wstring full_name = var_tree->GetFullName();
      
    • 获取模型中组件 PI 的 FullName

      std::vector<popro::MwVarTree*> vec_children;
          var_tree->Children(&vec_children);
      std::wstring pi_full_name = vec_children[1]->GetFullName();
      
    • 获取模型中组件 PI 下变量 u_m 的 FullName

      ```c++
      std::vector<popro::MwVarTree*> pi_vec_children;
          vec_children[1]->Children(&pi_vec_children);
      std::wstring um_full_name = pi_vec_children[1]->GetFullName();
      ```
      

# Parent

获取父节点

  • 语法

    MwVarTree* Parent()
    
  • 说明

    获取父节点。

  • 示例

    • 模型的根节点的Parent

      popro::MwVarTree *var_tree = sim_data->GetVarTreeRoot();
      auto  parent_tree = var_tree->Parent();
      
    • 获取模型中组件PI的Parent

      std::vector<popro::MwVarTree*> vec_children;
          var_tree->Children(&vec_children);
      auto  pi_parent_tree = vec_children[1]->Parent();
      
    • 获取模型中组件PI下变量u_m的Parent

      std::vector<popro::MwVarTree*> pi_vec_children;
          vec_children[1]->Children(&pi_vec_children);
      auto um_parent_tree = pi_vec_children[1]->Parent();
      

# Description

获取变量描述。

  • 语法

    const MWwchar* Description()
    
  • 说明

    获取变量描述。

  • 示例

    • 获取模型的根节点的 Description

      popro::MwVarTree *var_tree = sim_data->GetVarTreeRoot();
      auto description = var_tree->Description();
      
    • 获取模型中组件 PI 的 Description

      std::vector<popro::MwVarTree*> vec_children;
          var_tree->Children(&vec_children);
      auto pi_description = vec_children[1]->Description();
      
    • 获取模型中组件 PI 下变量 u_m 的 Description

      std::vector<popro::MwVarTree*> pi_vec_children;
          vec_children[1]->Children(&pi_vec_children);
      auto um_description = pi_vec_children[1]->Description();
      

# Unit

获取变量单位。

  • 语法

    std::wstring Unit()
    
  • 说明

    获取变量单位。

  • 示例

    • 获取模型的根节点的 Unit

      popro::MwVarTree *var_tree = sim_data->GetVarTreeRoot();
      std::wstring unit = var_tree->Unit();
      
    • 获取模型中组件 PI 的 Unit

      std::vector<popro::MwVarTree*> vec_children;
          var_tree->Children(&vec_children);
      std::wstring pi_unit = vec_children[1]->Unit();
      
    • 获取模型中组件 PI 下变量 u_m 的 Unit

      std::vector<popro::MwVarTree*> pi_vec_children;
          vec_children[1]->Children(&pi_vec_children);
      std::wstring um_unit = pi_vec_children[1]->Unit();
      

# Children

获取当前变量节点的所有孩子。

  • 语法

    void Children(std::vector<MwVarTree*>* vec_children)
    
  • 说明

获取当前变量节点的所有孩子。

  • 示例

    • 获取模型的根节点的 Children

      popro::MwVarTree *var_tree = sim_data->GetVarTreeRoot();
      
      std::vector<popro::MwVarTree*> vec_children;
          var_tree->Children(&vec_children);
      
    • 获取模型中组件 PI 的 Children

      popro::MwVarTree *var_tree = sim_data->GetVarTreeRoot();
      std::vector<popro::MwVarTree*> pi_vec_children;
      vec_children[1]->Children(&pi_vec_children);
      
    • 获取模型中组件 PI 下变量 u_m 的 Children

      popro::MwVarTree *var_tree = sim_data->GetVarTreeRoot();
      std::vector<popro::MwVarTree*> um_vec_children;
          pi_vec_children[1]->Children(&um_vec_children);