验证模型:
输入:
- 车速-t
- 前轮偏角-t
输出:
1 纵向坐标-t
2 航向角-t
function [ sys,x0,str,ts ] = fun_2_1_2( t,x,u,flag )
%UNTITLED2 此处显示有关此函数的摘要
% 此处显示详细说明
switch flag,
case 0
[sys,x0,str,ts] = mdlInitializeSizes; % Initialization
case 1
sys = mdlDerivatives(t,x,u); % Update discrete states
case 3
sys = mdlOutputs(t,x,u); % Calculate outputs
% case 4
% sys = mdlGetTimeOfNextVarHit(t,x,u); % Get next sample time
case {2,4,9} % Unused flags
sys = [];
otherwise
error(['unhandled flag = ',num2str(flag)]); % Error handling
end
% End of dsfunc.
%==============================================================
% Initialization
%==============================================================
function [sys,x0,str,ts] = mdlInitializeSizes
% Call simsizes for a sizes structure, fill it in, and convert it
% to a sizes array.
sizes = simsizes;
sizes.NumContStates = 3; %
sizes.NumDiscStates = 0; %
sizes.NumOutputs = 2;
sizes.NumInputs = 2;
sizes.DirFeedthrough = 0; % Matrix D is non-empty.
sizes.NumSampleTimes = 0;
sys = simsizes(sizes);
x0=[0 0 0];
str = []; % Set str to an empty matrix.
ts = []; % sample time: [period, offset]
%End of mdlInitializeSizes
function sys=mdlDerivatives(t,x,u)
l=2.7;
sys=[cos(x(3));sin(x(3));tan(u(2))/l]*u(1);
function sys=mdlOutputs(t,x,u)
sys = [x(2);x(3)];