Matlab/Simulink Level-2 MATLAB S-Function 的翻译模板

Level-2 MATLAB S-Function 的模板翻译

一级 MATLAB S-Function 仅支持双精度数据类型。
二级 MATLAB S-Function 支持 Simulink 支持的所有数据类型。可实现多输入多输出。
由于网上关于Level-2 MATLAB S-Function的内容太少,因此本人将msfuntmpl.m文件翻译了一下,方便进行配置使用,在此分享出来,欢迎交流~

系统自带的msfuntmpl.m文件可在命令行窗口输入以下内容打开,建议复制出来,不要在它上面直接编辑

edit([matlabroot,'/toolbox/simulink/blocks/msfuntmpl.m'])

对应的Simulink模块

不过实际使用效果实在不好,仿真特别慢,还不如自己写matlab fcn函数来的快,踩坑了,不推荐

function msf_tmpl(block)
% MSFUNTMPL 一个MATLAB S-function的模板
% MATLAB的function,与S-function的名称相同;
% 用你的S-function的名称替换'msf_tmpl'; 
%
% 设置方法用于设置S-function的基本属性如端口、参数等;
% 不要添加任何其他对function主体的调用;  
% 
setup(block);
% 函数结束
 
% 函数:设置===================================================
% 摘要;
% 设置S-functionblock的基本特征,如:;
%     - 输入端口
%     - 输出端口
%     - 对话框参数
%     - 选项
% 是否必须: 是
% C MEX对应:mdlInitializeSizes
function setup(block)
 
  % 登记端口的数量;
  block.NumInputPorts = 1;  % 输入端口数
  block.NumOutputPorts = 1; % 输出端口数
  
  % 设置端口属性为继承或动态;
  block.SetPreCompInpPortInfoToDynamic;
  block.SetPreCompOutPortInfoToDynamic;
 
  % 覆盖输入端口属性;
  block.InputPort(1).Dimensions  = [1 3];  % 数据维度
  block.InputPort(1).DatatypeID  = 0;  % double 数据类型
  block.InputPort(1).Complexity  = 'Real';
  block.InputPort(1).DirectFeedthrough = false;
  
  % 覆盖输出端口属性;
  block.OutputPort(1).Dimensions  = [4 1]; % 数据维度
  block.OutputPort(1).DatatypeID  = 0; % double 数据类型
  block.OutputPort(1).Complexity  = 'Real';
%%%% 端口数据类型,可以端口ID指定,也可以直接指定数据类型名
%     inherited: -1        int16: 4
%     double: 0            unit16: 5
%     single: 1            int32: 6
%     int8: 2              unit32: 7
%     unit8: 3             boolean或定点类型: 8
 
  % 登记对话框参数;
  block.NumDialogPrms 
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值