25#include "AstCore/BlockSystem.hpp"
26#include "AstCore/BlockDerivative.hpp"
27#include <unordered_map>
50 size_t size()
const {
return state_.size(); }
54 int getDimension()
const {
return static_cast<int>(this->size()); }
66 void setStateData(
const double* y) { std::copy(y, y + this->size(), state_.begin()); }
70 void getDerivativeData(
double* dydt)
const { std::copy(derivative_.begin(), derivative_.end(), dydt); }
74 void fillDerivativeData(
double value) { std::fill(derivative_.begin(), derivative_.end(), value); }
83 errc_t createStateMap();
86 errc_t connectSignalsByNames();
98 using BlockSystem::addBlock;
107 using StateMap = std::unordered_map<Identifier*, double*>;
109 std::vector<BlockDerivative*> derivativeBlocks_;
110 std::vector<double> state_;
111 std::vector<double> derivative_;
113 StateMap derivativeMap_;
导数函数块
定义 BlockDerivative.hpp:34
动力学系统
定义 BlockDynamicSystem.hpp:43
void getDerivativeData(double *dydt) const
获取状态量导数数据指针
定义 BlockDynamicSystem.hpp:70
const double * getStateData() const
获取状态量数据指针
定义 BlockDynamicSystem.hpp:58
const double * getDerivativeData() const
获取状态量导数数据指针
定义 BlockDynamicSystem.hpp:62
void setStateData(const double *y)
填充状态量数据
定义 BlockDynamicSystem.hpp:66
void fillDerivativeData(double value)
填充状态量导数数据
定义 BlockDynamicSystem.hpp:74
size_t size() const
获取状态量大小
定义 BlockDynamicSystem.hpp:50
int getDimension() const
获取状态量维度
定义 BlockDynamicSystem.hpp:54
子系统块(subsystem block)
定义 BlockSystem.hpp:34
void clearBlocks()
清除子系统中的所有函数块
定义 BlockSystem.cpp:51
void addBlock(FuncBlock *block)
添加函数块到子系统中
定义 BlockSystem.cpp:46