s函数的一些知识整理
s函数的一些知识整理
function [sys,x0,str,ts,simStateCompliance] = pwm(t,x,u,flag)
(1)输入:
t:时间,就是一个增加的量,比如仿真时间0-0.2s,t就从0增加到0.2,就是我们一般认知上的仿真时间。这个量可以连续地与仿真时间一一对应,也可以是以离散形式对应。
x:状态量。类似verilog中的状态量。
u:输入量。状态方程中的输入。
flag:标志。
(2)子函数
mdlInitializeSizes:初始化。flag=0。必须有。
function [sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates= 0;%连续变量的个数,一般都用离散的。
sizes.NumDiscStates= 0;%离散变量的个数。比如状态向量x是n维的,这里就是n
sizes.NumOutputs= 0;%输出变量个数。实际有几个变量出去s模块,就是几。
sizes.NumInputs= 0;%输入变量个数。这里的输入指的是你实际输入到s模块中的变量有几个(有几个变量进入u,这里就是几)
sizes.DirFeedthrough = 1;%输出变量的关系式中是否直接出现u,是1,否0.
sizes.NumSampleTimes = 1;% 采样时间个数
sys = simsizes(sizes);
x0= [];%就是x的初值
str = [];%空的,备用
ts= [0 0];%[采样时间,偏移量]
simStateCompliance = UnknownSimState;
mdlUpdate:更新。flag=2。常用。在这里计算涉及状态量x(离散中是状态量,连续中是dx)
mdlOutputs:输出。flag=3。必须有。
以上就是(s函数的一些知识整理)全部内容,收藏起来下次访问不迷路!