mycostfcn_slow.m
来自「全面系统地给出鲁棒设计的源程序及运算实例」· M 代码 · 共 26 行
M
26 行
function mycost = myCostFcn_slow(x,simParms)
%% Unpack simParms sturcutre for Simulink Use
struct2var(simParms)
%% Extract suspension variables
kf = x(1); cf = x(2);
kr = x(3); cr = x(4);
%% Run Simulink model
% Initial Conditions for Simulink Model
theta0 = 0; % initial pitch (rad)
thetadot0 = 0; % initial pitch rate (rad/s)
Z0 = -0.5*Mb*g/(kf+kr); % initial equilibrium position, assumes full car (m)
Zdot0 = 0; % initial bounce rate (m/s)
simTime = [0 8];
sim('mldemo_suspnslow.mdl',simTime,...
simset('SrcWorkspace', 'current', 'DstWorkspace', 'current'))
%% Compute cost
totalAccel = (Zdotdot + rf * thetadotdot).^2 + ...
(Zdotdot - rr * thetadotdot).^2;
%% Return final value
mycost = 0.5*max(totalAccel)/56 + 0.5 * sum(totalAccel)/904;
assignin('base','totAccel',totalAccel);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?