📄 step.m
字号:
% Step test for Model 16 - Tank
% Created by John Hedengren
global u
for k = 1:3,
clear volume_exp t_exp v_exp u_exp t_model v_model u_model
% Experimental Data
load_name = ['tank_data' int2str(k)];
load(load_name, 'volume_exp');
t_exp = volume_exp(:,1);
v_exp = volume_exp(:,2);
u_exp = volume_exp(:,3);
% Record How Many Time Steps Were Taken
t_steps = size(volume_exp,1);
% Initial Conditions for the State
x_init = v_exp(1);
for i = 1:t_steps-1,
t_range = [t_exp(i,1) t_exp(i+1,1)];
% Open Loop
u = u_exp(i,1);
x = x_init;
t_model(i,1) = t_exp(i,1);
v_model(i,1) = x;
[t,x] = ode15s('tank',t_range,x_init);
% Get final state for the next move
x_init = x(size(t,1),:);
end
% Record the final time and state
t_model(t_steps,1) = t_exp(t_steps,1);
v_model(t_steps,1) = x_init;
figure(k);
subplot(2,1,1), plot(t_model,v_model,'k-',t_exp,v_exp,'b--');
xlabel('Time (sec)');
ylabel('Volume (mL)');
legend('Model Prediction','Experimental Data');
subplot(2,1,2), plot(t_exp,u_exp,'k-');
axis([t_exp(1,1) t_exp(t_steps,1) -1 101]);
xlabel('Time (sec)');
ylabel('Inlet Valve % Open');
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -