名前を解決できないというエラーに関して
Show older comments
非線形モデル予測制御をしようと考えていて、練習としてこちらの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
More Answers (0)
Categories
Find more on Refinement in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!