matlab s函数里面的simStateCompliance是什么

如题所述

在simulink中建立s函数,有以下几个步骤:
1.在simulink library browser -->simulink -->user-defined functions 找到s function,拖到.mdl文件中。
2.双击s function,出现对话框,点击edit。
3.在matlab/command window里输入edit sfuntmpl,出现s 函数的模板。把模板拷出来,放到新建立的m文件里。
4.修改函数名。function [sys,x0,str,ts,simStateCompliance] = light_compare(t,x,u,flag)
light_compare即为自己修改的函数名。把该函数进行保存,放在对应的.mdl文件所对应的路径下。再把双击s function模块出现的对话框中的s-function name改为light_control. 点击edit,即可以找到该函数。
5.修改输入输出的个数。
sizes.NumOutputs = 0;
sizes.NumInputs = 0;
6.在function sys=mdlOutputs(t,x,u)
sys = [];里编写函数。
7.如果只有一个输入即为u。如果有多个输入为u(1)、u(2)。。。
定义输出:persistent y1 y2 y3.。。(注意输出变量之间不要加任何符号)
最后要把输出变量放入sys里。sys=[y1,y2,y3,...]
8.在.mdl文件中,多个输入时,s function之前要加Bus Creator。多个输出时,s function之后要加Demux。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-05-04

用来指定仿真状态的保存和创建方法,包括以下可取的选项:

    'UnknownSimState',先给出警告,然后采用默认装置;

    'DefaultSimState',采用内建模块的方法保存和重建连续状态、工作向量等。

    。。。

    通常使用选项2

本回答被网友采纳
相似回答