2入出力系のモデル予測制御について
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
現在、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 commentaires
Réponses (0)
Voir également
Catégories
En savoir plus sur コード生成 dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!