13#ifndef STATESPACESYSTEM
14#define STATESPACESYSTEM
28 #define arcs_assert(a) (assert(a))
31 #define EventLogVar(a)
39template <
size_t N,
size_t I = 1,
size_t O = 1>
44 : Ad(), Bd(), Cd(), Dd(), u(), x(), x_next(), y(), y_next(), DirectTerm(true)
55 : Ad(), Bd(), Cd(), Dd(), u(), x(), x_next(), y(), y_next(), DirectTerm(true)
68 : Ad(), Bd(), Cd(), Dd(), u(), x(), x_next(), y(), y_next(), DirectTerm(true)
77 : Ad(r.Ad), Bd(r.Bd), Cd(r.Cd), Dd(r.Dd), u(r.u), x(r.x), x_next(r.x_next), y(r.y), y_next(r.y_next), DirectTerm(r.DirectTerm)
154 static_assert(I == 1);
162 static_assert(I == 2);
169 x_next = Ad*x + Bd*u;
170 if(DirectTerm ==
false){
175 y_next = Cd*x_next + Dd*u;
240 static_assert(I == 1 && O == 1);
253 static_assert(I == 2 && O == 1);
284 static_assert(I == 1 && O == 1);
296 static_assert(I == 2 && O == 1);
#define PassedLog()
イベントログ用マクロ(ファイルと行番号のみ記録版)
Definition ARCSeventlog.hh:26
離散化クラス(テンプレート版) !!!注意喚起:このクラスは将来的に廃止予定です。代わりに、ArcsControlDiscretizeを使用して下さい。
static constexpr void BalanceReal(const Matrix< NA, MA > &A, const Matrix< NB, MA > &b, const Matrix< NA, MC > &c, Matrix< NA, MA > &Ah, Matrix< NB, MA > &bh, Matrix< NA, MC > &ch)
状態空間モデルを平衡化する関数(引数で返す版)
Definition ArcsControl.hh:128
static constexpr void Discretize(const Matrix< N, N > &Ac, const Matrix< M, N > &Bc, Matrix< N, N > &Ad, Matrix< M, N > &Bd, const double Ts, const size_t Npade=13, const size_t Nint=10000)
連続系状態空間モデルを離散化する関数(引数で返す版)
Definition ArcsControl.hh:186
行列/ベクトル計算クラス(テンプレート版)
Definition Matrix.hh:44
static constexpr Matrix zeros(void)
m行n列の零行列を返す関数
Definition Matrix.hh:648
状態空間表現によるシステムクラス
Definition StateSpaceSystem.hh:40
~StateSpaceSystem()
デストラクタ
Definition StateSpaceSystem.hh:83
Matrix< 1, O > GetOutput(void)
状態空間モデルからの出力ベクトルを取得する関数(ベクトルで返す版)
Definition StateSpaceSystem.hh:188
void SetInput(const double u1, const double u2)
状態空間モデルへの入力ベクトルを予め設定する関数(2入力版)
Definition StateSpaceSystem.hh:161
void SetInput(const Matrix< 1, I > &uin)
状態空間モデルへの入力ベクトルを予め設定する関数
Definition StateSpaceSystem.hh:147
double GetNextOutput(size_t i)
状態空間モデルからの、次の時刻の出力ベクトルの内の、1つの成分のみを選択して取得する関数
Definition StateSpaceSystem.hh:214
void SetContinuous(const Matrix< N, N > &A, const Matrix< I, N > &B, const Matrix< N, O > &C, const double Ts)
連続系のA行列,B行列,C行列を設定して離散化する関数
Definition StateSpaceSystem.hh:92
void SetDiscrete(const Matrix< N, N > &A, const Matrix< I, N > &B, const Matrix< N, O > &C)
離散系のA行列,B行列,C行列を設定する関数
Definition StateSpaceSystem.hh:125
Matrix< 1, O > GetResponses(const Matrix< 1, I > &uin)
状態空間モデルの応答を計算して取得する関数(ベクトルで返す版)
Definition StateSpaceSystem.hh:230
void GetResponses(const Matrix< 1, I > &uin, Matrix< 1, O > &yout)
状態空間モデルの応答を計算して取得する関数(引数で返す版)
Definition StateSpaceSystem.hh:221
void SetInput(const double uin)
状態空間モデルへの入力ベクトルを予め設定する関数(1入力版)
Definition StateSpaceSystem.hh:153
void SetContinuous(const Matrix< N, N > &A, const Matrix< I, N > &B, const Matrix< N, O > &C, const Matrix< I, O > &D, const double Ts)
連続系のA行列,B行列,C行列,D行列を設定して離散化する関数
Definition StateSpaceSystem.hh:115
void SetDiscrete(const Matrix< N, N > &A, const Matrix< I, N > &B, const Matrix< N, O > &C, const Matrix< I, O > &D)
離散系のA行列,B行列,C行列,D行列を設定する関数
Definition StateSpaceSystem.hh:137
StateSpaceSystem(const Matrix< N, N > &A, const Matrix< I, N > &B, const Matrix< N, O > &C, const double Ts)
コンストラクタ(連続系A,B,C行列設定版)
Definition StateSpaceSystem.hh:54
StateSpaceSystem(const Matrix< N, N > &A, const Matrix< I, N > &B, const Matrix< N, O > &C, const Matrix< I, O > &D, const double Ts)
コンストラクタ(連続系A,B,C,D行列設定版)
Definition StateSpaceSystem.hh:67
void GetNextResponses(const Matrix< 1, I > &uin, Matrix< 1, O > &yout)
状態空間モデルの応答を計算して取得する関数(次の時刻の出力ベクトルを即時に返す版)
Definition StateSpaceSystem.hh:265
void Update(void)
状態空間モデルの応答を計算して状態ベクトルを更新する関数
Definition StateSpaceSystem.hh:168
double GetNextResponse(const double uin)
状態空間モデルの応答を計算して取得する関数(次の時刻の出力ベクトルを即時に返す版)(SISOでスカラーで返す版)
Definition StateSpaceSystem.hh:283
double GetOutput(size_t i)
状態空間モデルからの出力ベクトルの内の、1つの成分のみを選択して取得する関数
Definition StateSpaceSystem.hh:195
void GetOutput(Matrix< 1, O > &yout)
状態空間モデルからの出力ベクトルを取得する関数(引数で返す版)
Definition StateSpaceSystem.hh:182
StateSpaceSystem(void)
コンストラクタ(空コンストラクタ版)
Definition StateSpaceSystem.hh:43
void ClearStateVector(void)
状態ベクトルをクリアする関数
Definition StateSpaceSystem.hh:306
Matrix< 1, O > GetNextResponses(const Matrix< 1, I > &uin)
状態空間モデルの応答を計算して取得する関数(次の時刻の出力ベクトルを即時に返す版)(ベクトルで返す版)
Definition StateSpaceSystem.hh:274
double GetResponse(const double u1, const double u2)
状態空間モデルの応答を計算して取得する関数(2入力1出力でスカラーで返す版)
Definition StateSpaceSystem.hh:252
Matrix< 1, O > GetNextOutput(void)
状態空間モデルからの、次の時刻の出力ベクトルを取得する関数(ベクトルで返す版)
Definition StateSpaceSystem.hh:207
void GetNextOutput(Matrix< 1, O > &yout)
状態空間モデルからの、次の時刻の出力ベクトルを取得する関数(引数で返す版)
Definition StateSpaceSystem.hh:201
double GetResponse(const double uin)
状態空間モデルの応答を計算して取得する関数(SISOでスカラーで返す版)
Definition StateSpaceSystem.hh:239
double GetNextResponse(const double u1, const double u2)
状態空間モデルの応答を計算して取得する関数(次の時刻の出力ベクトルを即時に返す版)(2入力1出力でスカラーで返す版)
Definition StateSpaceSystem.hh:295
StateSpaceSystem(StateSpaceSystem &&r)
ムーブコンストラクタ
Definition StateSpaceSystem.hh:76