# 结果数据查询类
本文介绍模型仿真结果类、结果变量树节点类等 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();获取到结果变量树的根节点信息。

# 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();获取到结果变量树的根节点信息,符合预期结果。

# GetVarData
读取结果变量。
语法
/** * @brief 获取变量结果 * @param [in]var_name仿真设置数据 * @param [out]times 时间点数组 * @param [out]values 对应时间点的值 */ bool GetVarData( const std::wstring &var_name, std::vector<Mwdouble> ×, 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的仿真结果数据点集。
# 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);