文档

实现S-Functions

下表概述了如何编写不同类型的s函数。有关如何使用特定方法实现S-function的详细信息,请参阅S-function文档的相关章节。

请注意

为了向后兼容,下面的表格和章节包含了关于Level-1 MATLAB的信息®S-functions。但是,使用二级MATLAB s函数API来开发新的MATLAB s函数。

函数类型 实现
一级MATLAB s函数 使用以下模板编写一个新的一级MATLAB s函数:sfuntmpl.m
看到维护1级MATLAB s函数更多信息。
二级MATLAB s函数
  1. 使用msfuntmpl_basic.m模板写一个新的二级MATLAB s函数:

    看到编写二级MATLAB s函数更多信息。

  2. 如果您需要为包含s函数的模型生成代码,那么为s函数编写一个目标语言编译器(TLC)文件。这个文件,msfcn_times_two.tlc文件夹中是s -函数的一个TLC示例文件msfcn_times_two.m看到内联MATLAB文件s -函数(万博1manbetxSimulink Coder),了解如何为二级MATLAB s函数编写TLC文件。

手写C MEX s -功能
  1. 使用sfuntmpl_doc.c模板来编写一个新的C MEX s函数(参见基本的C MEX s -函数)或编写包装器s函数调用C、c++或Fortran代码。

    有关编写包装器s函数以合并遗留C或c++代码的信息,请参见编写包装器S-Function和TLC文件(万博1manbetx仿真软件编码器)。有关编写包装器函数以合并遗留Fortran代码的信息,请参见构建网关

  2. 方法编译s函数墨西哥人命令获取要在模拟过程中使用的可执行文件。

  3. 如果您想在代码生成期间内联代码(参见用mdlRTW例程写完全内联的s函数(万博1manbetxSimulink Coder)和目标语言编译器简介(万博1manbetx仿真软件编码器))。如果没有在生成的代码中内联s函数,则不需要TLC文件。

s函数生成器
  1. 在S-function Builder对话框中输入S-function属性(参见S-Function Builder对话框).

  2. 选择生成包装器TLC选项生成TLC文件,以便在代码生成期间内联s函数。

  3. 点击构建生成s函数、TLC文件和模拟过程中使用的可执行文件。

遗留代码工具 使用legacy_code函数执行以下步骤(请参见使用遗留代码工具集成C函数):
  1. 初始化一个根据遗留函数描述s函数属性的数据结构。

    Lct_spec = legacy_code('初始化');
  2. 生成并编译包装器s函数。

    legacy_code (sfcn_cmex_generate, lct_spec);legacy_code(“编译”,lct_spec);
  3. 实例化一个调用S-Function包装器的S-Function块。

    legacy_code (slblock_generate, lct_spec);
  4. 生成一个TLC文件,在代码生成期间内联s函数。

    legacy_code (sfcn_tlc_generate, lct_spec);
这个话题有帮助吗?