|
🛰️航天仿真算法库 SpaceAST 0.0.1
|
#include <BlockDynamicSystem.hpp>
类 ast::BlockDynamicSystem 继承关系图:Public 成员函数 | |
| size_t | size () const |
| int | getDimension () const |
| const double * | getStateData () const |
| const double * | getDerivativeData () const |
| void | setStateData (const double *y) |
| void | getDerivativeData (double *dydt) const |
| void | fillDerivativeData (double value) |
| errc_t | initialize () |
| errc_t | sortBlocks () |
| errc_t | createStateMap () |
| errc_t | connectSignalsByNames () |
| void | addBlock (BlockDerivative *block) |
| void | addDerivativeBlock (BlockDerivative *block) |
| void | clearBlocks () |
| void | reset () |
| void | addBlock (FuncBlock *block) |
Public 成员函数 继承自 ast::BlockSystem | |
| errc_t | run (const SimTime &simTime) final |
| void | addBlock (FuncBlock *block) |
| void | clearBlocks () |
Public 成员函数 继承自 ast::FuncBlock | |
| const std::vector< DataPort > & | getInputPorts () const |
| std::vector< DataPort > & | getInputPorts () |
| const std::vector< DataPort > & | getOutputPorts () const |
| std::vector< DataPort > & | getOutputPorts () |
| size_t | getNumInputPorts () const |
| size_t | getNumOutputPorts () const |
| DataPort * | getInputPort (StringView portName) |
| DataPort * | getOutputPort (StringView portName) |
| DataPort * | getInputPort (size_t portIndex) |
| DataPort * | getOutputPort (size_t portIndex) |
| DataPort::EValueType | getInputPortDataType (size_t portIndex) |
| DataPort::EValueType | getOutputPortDataType (size_t portIndex) |
| void * | getInputPortSignal (size_t portIndex) |
| void * | getOutputPortSignal (size_t portIndex) |
| double * | getInputPortRealSignal (size_t portIndex) |
| double * | getOutputPortRealSignal (size_t portIndex) |
| int | getInputPortWidth (size_t portIndex) |
| int | getOutputPortWidth (size_t portIndex) |
Protected 类型 | |
| using | StateMap = std::unordered_map<Identifier*, double*> |
Protected 属性 | |
| std::vector< BlockDerivative * > | derivativeBlocks_ |
| std::vector< double > | state_ |
| std::vector< double > | derivative_ |
| StateMap | stateMap_ |
| StateMap | derivativeMap_ |
Protected 属性 继承自 ast::BlockSystem | |
| std::vector< FuncBlock * > | blocks_ |
Protected 属性 继承自 ast::FuncBlock | |
| std::vector< DataPort > | inputPorts_ |
| std::vector< DataPort > | outputPorts_ |
额外继承的成员函数 | |
静态 Public 成员函数 继承自 ast::FuncBlock | |
| static errc_t | connect (FuncBlock *src, StringView srcPortName, FuncBlock *dst, StringView dstPortName) |
| static errc_t | connect (FuncBlock *src, size_t srcPortIndex, FuncBlock *dst, size_t dstPortIndex) |
动力学系统
动力学系统是一个包含普通函数块和导数函数块的子系统 每个导数块负责计算动力学系统的一个或多个状态变量的导数。 每个函数块通过输入输出端口进行信号连接,组合形成复杂的动力学系统。
动力学系统将根据端口名称自动建立起函数块间的信号连接关系 并构建状态量和导数量到函数块信号的映射关系 最终得到一个常微分方程组,用于数值积分求解
| void ast::BlockDynamicSystem::addBlock | ( | BlockDerivative * | block | ) |
添加状态量函数块
| block | 状态量函数块指针 |
| void ast::BlockSystem::addBlock | ( | FuncBlock * | block | ) |
添加函数块
| block | 函数块指针 |
| void ast::BlockDynamicSystem::addDerivativeBlock | ( | BlockDerivative * | block | ) |
添加状态量导数函数块
| block | 状态量导数函数块指针 |
|
inline |
填充状态量导数数据
| value | 状态量导数值 |
|
inline |
获取状态量导数数据指针
|
inline |
获取状态量导数数据指针
| dydt | 状态量导数数据指针 |
|
inline |
获取状态量维度
|
inline |
获取状态量数据指针
|
inline |
填充状态量数据
| y | 状态量数据指针 |
|
inline |
获取状态量大小