名前を解決できないというエラーに関して

55 views (last 30 days)
NAGATA SOICHIRO
NAGATA SOICHIRO on 1 Dec 2021
Commented: NAGATA SOICHIRO on 1 Dec 2021
非線形モデル予測制御をしようと考えていて、練習としてこちらのFile Exchangeのサンプルモデルの非線形モデル予測制御マルチステージを実行しようとしているのですが、以下のコードの一番下のfile_path = [char(proj.RootFolder), filesep, 'gen_script', filesep, 'calc_nonlinear_f.m'];
の部分で”名前 proj.RootFolderを解決できません”というエラーが解決できないので、教えていただきたいです。
clc; Simulink.sdi.clear; Simulink.sdi.clearPreferences; Simulink.sdi.close;
system_model_name = 'Vehicle_system_Nonlinear_MPC';
controller_model_name = 'Parking_NMPC_MultiStage_Controller';
load_system(system_model_name);
set_param([system_model_name, '/MPC_Controller'], ...
'ModelName', controller_model_name);
Ts = get_TimeStep('sim_data_vehicle_nl.sldd');
ref_VALIANT = Simulink.Variant;
ref_VALIANT_TS = Simulink.Variant('CTRL_MODE == 1');
ref_VALIANT_TT = Simulink.Variant('CTRL_MODE == 2');
path_Tf = 60; % パスを走行する時間
syms wb q0 q3 v delta px py dTime real;
% ステアリング角度と速度からヨー角速度を求める
dtheta = v/wb*tan(delta);
dq0 = cos(dtheta * dTime / 2);
dq3 = sin(dtheta * dTime / 2);
% クオータニオンの角度の更新はクオータニオン積で行う
q0_next = q0 * dq0 - q3 * dq3;
q3_next = q0 * dq3 + q3 * dq0;
% 非線形の離散時間時間状態方程式 x[k+1] = f(x[k]) のfである。
f = [
px + dTime * v*(2 * q0 ^ 2 - 1); % 2倍角の公式
py + dTime * v*(2 * q3 * q0); % 2倍角の公式
q0_next;
q3_next;
];
% 非線形の出力方程式
h = [
px;
py;
2 * atan2(q3, q0);
];
file_path = [char(proj.RootFolder), filesep, 'gen_script', filesep, 'calc_nonlinear_f.m']; %この部分

Accepted Answer

Toshinobu Shintai
Toshinobu Shintai on 1 Dec 2021
本デモモデルを最初に起動する時、「MPC_imple_PJ.prj」を実行します。この時、自動的に起動時のスクリプト「start_pj_script.m」が実行されます。このスクリプトの2行目に書かれている
proj = currentProject;
が実行されることによって「proj」というオブジェクトがワークスペースに置かれますので、この状態からマルチステージの非線形MPCのライブスクリプト「Nonlinear_MultiStage_MPC_design.mlx」を開いて実行すれば、エラーなく実行できます。
おそらく、ワークスペースをクリアしてしまったのではないでしょうか。
この場合は、一度プロジェクトを閉じ、再度「MPC_imple_PJ.prj」を実行すれば元に戻ります。
  3 Comments
Toshinobu Shintai
Toshinobu Shintai on 1 Dec 2021
ファイル一式は全てダウンロード、もしくはGitHubからクローンできていますでしょうか。一番上の階層に「MPC_imple_PJ_説明資料.pdf」というファイルがあります。こちらに記載されていますが、読みましたでしょうか。
もしくは、こちらからWebで見ることもできます。
NAGATA SOICHIRO
NAGATA SOICHIRO on 1 Dec 2021
回答していただきありがとうございます。解決できました。

Sign in to comment.

More Answers (0)

Products


Release

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!