2入出力系のモデル予測制御について
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
現在、2入出力系のモデル予測制御のプログラムを作成しているのですが行き詰っている箇所があるので質問させていただきます。
上のコードが3ステップ先予測の2入出力を想定して、cvxgenで生成した最適化計算を行う際のs-functionブロック内の該当箇所で、下が1入出力系です。
1入出力系のものは問題なく動くのですが、2入出力にするとビルドはできるものの「Access Violation」エラーが発生しクラッシュしてしまいます。コードを確かめたところ該当箇所の配列でエラーが起きているのではないかと考えているため質問させていただきました。
パラメータの次元は以下の通りです。
s 3×2 / sa1 3×1 / sa2 3×1
x 2×1 / xa1 1×1 / xa2 1×1
y 2×1 / ya1 1×1 / ya2 1×1
A 2×2 / B 2×2 / C 2×2
よろしくお願いします。
// MIMO
//Define reference trajectory
for(i=1; i<Hp+1; ++i){
params.s[i][0]= sa1[i-1];
params.s[i][1]= sa2[i-1];
}
for(i=0;i<n;++i){
params.x[0][i] = xa1[i];
params.x[1][i] = xa2[i]; // 追加するとクラッシュ
}
for(i=0;i<n;++i){
params.y[0][i] = ya1[i];
params.y[1][i] = ya2[i]; // 追加するとクラッシュ
}
for(i=0;i<n*n;++i){
params.A[i] = A[i];
}
for(i=0;i<n;++i){
params.B[i] = B[i];
}
for(i=0;i<n;++i){
params.C[i] = C[i];
}
----------------------------------------------------------------------------
//SISO
// Define reference trajectory
for(i=1;i<Hp+1;++i){
params.r[i][0] = s[i-1];
}
for(i=0;i<n;++i){
params.x[0][i] = x0[i];
}
for(i=0;i<n;++i){
params.y[0][i] = y0[i];
}
for(i=0;i<n*n;++i){
params.A[i] = A[i];
}
for(i=0;i<n;++i){
params.B[i] = B[i];
}
for(i=0;i<n;++i){
params.C[i] = C[i];
}
0 Kommentare
Antworten (0)
Siehe auch
Kategorien
Mehr zu コード生成 finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!