📄 simconsfun2.m
字号:
function [sys,x0,str,ts] = simconsfun2(t,x,u,flag)
%SIMCONSFUN2 SIMple CONstruction SFunction 2 with expanded input
%
%JvS 12/2003
%
%input u; output y
%u(1)=Te
%u(2)=Ti
%u(3)=R1
%u(4)=R2
%u(5)=R3
%u(6)=C1
%u(7)=C2
%y(1)=x(1)
%y(2)=x(2)
switch flag,
%%%%%%%%%%%%%%%%%%
% Initialization %
%%%%%%%%%%%%%%%%%%
case 0,
[sys,x0,str,ts]=mdlInitializeSizes;
%%%%%%%%%%%%%%%
% Derivatives %
%%%%%%%%%%%%%%%
case 1,
sys=mdlDerivatives(t,x,u);
%%%%%%%%%%%
% Outputs %
%%%%%%%%%%%
case 3,
sys=mdlOutputs(t,x,u);
%%%%%%%%%%%%%%%%%%%
% Unhandled flags %
%%%%%%%%%%%%%%%%%%%
case { 2, 4, 9 },
sys = [];
%%%%%%%%%%%%%%%%%%%%
% Unexpected flags %
%%%%%%%%%%%%%%%%%%%%
otherwise
error(['Unhandled flag = ',num2str(flag)]);
end
% end wpfun1
%
%=============================================================================
% mdlInitializeSizes
% Return the sizes, initial conditions, and sample times for the S-function.
%=============================================================================
%
function [sys,x0,str,ts]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates = 2;
sizes.NumDiscStates = 0;
sizes.NumOutputs = 2;
sizes.NumInputs = 7;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
x0 = [10; 10];
str = [];
ts = [0 0];
% end mdlInitializeSizes
%
%=============================================================================
% mdlDerivatives
% Return the derivatives for the continuous states.
%=============================================================================
%
function sys=mdlDerivatives(t,x,u)
%modelparameters zijn nu input
R1=u(3); %K/W
R2=u(4); %K/W
R3=u(5); %K/W
C1=u(6); %J/K
C2=u(7); %J/K
% input
Te=u(1); %oC
Ti=u(2); %oC
xdot(1)=(1/C1)* ( ( Ti -x(1))/R1 - (x(1)-x(2))/R2 );
xdot(2)=(1/C2)* ( (x(1)-x(2))/R2 - (x(2)- Te)/R3 );
sys = [xdot(1); xdot(2)];
% end mdlDerivatives
%
%=============================================================================
% mdlOutputs
% Return the block outputs.
%=============================================================================
%
function sys=mdlOutputs(t,x,u)
sys = x;
% end mdlOutputs
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -