25#include "AstCore/BlockSystem.hpp"
26#include "AstCore/BlockDerivative.hpp"
27#include <unordered_map>
68 size_t size()
const {
return state_.size(); }
72 int getDimension()
const {
return static_cast<int>(this->size()); }
84 void setStateData(
const double* y) { std::copy(y, y + this->size(), state_.begin()); }
88 void getDerivativeData(
double* dydt)
const { std::copy(derivative_.begin(), derivative_.end(), dydt); }
92 void fillDerivativeData(
double value) { std::fill(derivative_.begin(), derivative_.end(), value); }
101 errc_t createStateMap();
104 errc_t connectSignalsByNames();
116 using BlockSystem::addBlock;
125 using StateMap = std::unordered_map<Identifier*, double*>;
127 std::vector<BlockDerivative*> derivativeBlocks_;
128 std::vector<double> state_;
129 std::vector<double> derivative_;
131 StateMap derivativeMap_;
导数函数块
定义 BlockDerivative.hpp:46
动力学系统
定义 BlockDynamicSystem.hpp:61
void getDerivativeData(double *dydt) const
获取状态量导数数据指针
定义 BlockDynamicSystem.hpp:88
const double * getStateData() const
获取状态量数据指针
定义 BlockDynamicSystem.hpp:76
const double * getDerivativeData() const
获取状态量导数数据指针
定义 BlockDynamicSystem.hpp:80
void setStateData(const double *y)
填充状态量数据
定义 BlockDynamicSystem.hpp:84
void fillDerivativeData(double value)
填充状态量导数数据
定义 BlockDynamicSystem.hpp:92
size_t size() const
获取状态量大小
定义 BlockDynamicSystem.hpp:68
int getDimension() const
获取状态量维度
定义 BlockDynamicSystem.hpp:72
子系统块(subsystem block)
定义 BlockSystem.hpp:34
void clearBlocks()
清除子系统中的所有函数块
定义 BlockSystem.cpp:51
void addBlock(FuncBlock *block)
添加函数块到子系统中
定义 BlockSystem.cpp:46