14 #define S_FUNCTION_NAME sfunStateSpace 32 #include <Eigen/Dense> 34 #define EIGEN_INPUT_MATRIX(type, name, port) Eigen::Map<Eigen::Matrix<type, Eigen::Dynamic, Eigen::Dynamic> > name((type*)getInputData(port), getInputNRows(port), getInputNCols(port)) 35 #define EIGEN_OUTPUT_MATRIX(type, name, port) Eigen::Map<Eigen::Matrix<type, Eigen::Dynamic, Eigen::Dynamic> > name((type*)getOutputData(port), getOutputNRows(port), getOutputNCols(port)) 36 #define EIGEN_PARAMETER_MATRIX(type, name, port) name= Eigen::Map<Eigen::Matrix<type, Eigen::Dynamic, Eigen::Dynamic> >((type*)getParameterData(port), getParameterNRows(port), getParameterNCols(port)) 37 #define EIGEN_STATE_MATRIX(type, name) Eigen::Map<Eigen::Matrix<type, Eigen::Dynamic, Eigen::Dynamic> > name((type*)getContinuousStateData(), getContinuousStateWidth(), 1) 38 #define EIGEN_DERIVATIVE_STATE_MATRIX(type, name) Eigen::Map<Eigen::Matrix<type, Eigen::Dynamic, Eigen::Dynamic> > name((type*)getDerivativeStateData(), getContinuousStateWidth(), 1) 46 Eigen::MatrixXd a, b, c, d;
74 ssSetSampleTime(simStruct, 0, CONTINUOUS_SAMPLE_TIME);
75 ssSetOffsetTime(simStruct, 0, 0.0);
80 EIGEN_PARAMETER_MATRIX(
double, a, A);
81 EIGEN_PARAMETER_MATRIX(
double, b, B);
82 EIGEN_PARAMETER_MATRIX(
double, c, C);
83 EIGEN_PARAMETER_MATRIX(
double, d, D);
87 EIGEN_INPUT_MATRIX(
double, u, U);
88 EIGEN_OUTPUT_MATRIX(
double, y, Y);
89 EIGEN_STATE_MATRIX(
double, x);
95 EIGEN_INPUT_MATRIX(
double, u, U);
96 EIGEN_STATE_MATRIX(
double, x);
97 EIGEN_DERIVATIVE_STATE_MATRIX(
double, dx);
105 #include "sfunDefinitions.h" static void setInputPortsCount(int portsCount)
static int getParameterNRows(int port)
static void setOutputPortsCount(int portsCount)
static void setInputPort(int port, int nRows, int nCols, DTypeId type=SS_DOUBLE, bool directFeedThrough=true)
static void initializeInputPortSizes()
static void setContinuousStatesWidth(int num)
static void initializeSampleTimes()
static void assertParameterPort(int port, bool tunable, int nRows, int nCols, mxClassID type=mxDOUBLE_CLASS, mxComplexity complexFlag=mxREAL)
static void checkParametersSizes()
static void initializeOutputPortSizes()
static void setDiscreteStatesWidth(int num)
static void initializeStatePortSizes()
static int getParameterNCols(int port)
static void assertParameterPortsCount(int portsCount)
static void setOutputPort(int port, int nRows, int nCols, DTypeId type=SS_DOUBLE)