2入出力系のモデル予測制御について
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
現在、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 comentarios
Respuestas (0)
Ver también
Categorías
Más información sobre ビッグ データの処理 en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!