S-函数示例

实例的概述

要运行一个例子:

  1. 在MATLAB®命令窗口中输入sfundemos

    在S-功能例如开馆。

    每个框表示的S-功能实例的一个类别。

  2. 双击一个类别以显示它包含的例子。例如,单击C-文件

  3. 双击块打开和运行的例子,它代表。

当你阅读下面的章节这可能有助于研究一些样品S-功能。代码的实施例被存储在MATLAB根文件夹下的文件夹下面。

MATLAB代码

工具箱/ Sim万博1manbetxulink的/ simdemos / simfeatures

C,C ++和Fortran代码

工具箱/ SIM万博1manbetxULINK / simdemos / simfeatures / src目录

2级MATLAB S-函数示例

matlabroot/工具箱/ Sim万博1manbetxulink的/ simdemos / simfeatures文件夹(打开)包含了许多的Level-2 MATLAB S-功能。考虑通过查看这些文件出发。

文档名称 型号名称 描述
msfcn_dsc.m msfcndemo_sfundsc1 实现与继承的采样时间的S函数。
msfcn_limintm.m msfcndemo_limintm 实现连续的有限积分器,其中的输出由下限和上限限定,并且包括初始条件。
msfcn_multirate.m msfcndemo_multirate 实现一个多速率系统。
msfcn_times_two.m msfcndemo_timestwo 实施S-功能加倍它的输入。
msfcn_unit_delay.m msfcndemo_sfundsc2 实施单位延迟。
msfcn_varpulse.m msfcndemo_varpulse 通过调用实现可变脉冲宽度发生器set_param从2级MATLAB S-函数内。还演示了如何使用自定义set和get块SIMSTATE方法。
msfcn_vs.m msfcndemo_vsfunc 实现,其中,第一输入是由所述第二输入确定的时间量延迟的可变采样时间块。

1级MATLAB S-函数示例

matlabroot/工具箱/ Sim万博1manbetxulink的/ simdemos / simfeatures文件夹(打开)还含有许多Level-1的MATLAB S-功能,作为用于遗留模型参考提供。大多数这些Level-1的MATLAB S-功能没有相关的模型示例。

文档名称 描述
csfunc.m 定义在状态空间格式的连续系统。
dsfunc.m 定义在状态空间格式的离散系统。
limintm.m 实现连续的有限积分器,其中的输出由下限和上限限定,并且包括初始条件。
mixedm.m 实现与单元延迟系列由连续积分器的混合系统。
sfun_varargm.m 实施S-功能展示了如何使用MATLAB命令varargin
vsfunc.m 说明如何创建可变采样时间块。此S-函数实现,其中,第一输入是由一定量的时间延迟的可变延迟步骤由第二输入来确定。

(C S)-函数示例

matlabroot/工具箱/ Sim万博1manbetxulink的/ simdemos / simfeatures / SRC文件夹(打开)含有的C MEX S-功能,其中许多具有MATLAB S函数对应的例子。的C MEX S-函数列在下表中。

文档名称 型号名称 描述
csfunc.c sfcndemo_csfunc 实现一个连续系统。
dlimintc.c 没有可用的模型 实现一个离散时间限制积分。
dsfunc.c sfcndemo_dsfunc 采用分立的系统。
limintc.c 没有可用的模型 实现一个限定积分。
mixedm.c sfcndemo_mixedm 实现与单位延迟(1 / Z)系列由连续积分器(1 / S)的混合动力系统。
mixedmex.c sfcndemo_mixedmex 实现结合单输出和双输入的混合动态系统。
slexQuantizeSFcn.c sfcndemo_sfun_quantize 实现一个矢量量化。如由量化间隔参数指定量化输入到步骤q
sdotproduct.c sfcndemo_sdotproduct 计算点两个实或复向量的乘积(乘法累加)。
sfbuilder_bususage.c sfbuilder_bususage 访问S-Function Builder中的一个总线输入和输出。
sfbuilder_movingAverage.c sfbuilder_movingAverage 实现简单的时间窗口移动平均使用开始终止
sftable2.c 没有可用的模型 实现一个二维表查找。
sfun_atol.c sfcndemo_sfun_atol 每个连续状态设置不同的绝对公差。
sfun_cplx.c sfcndemo_cplx 添加复杂的数据,用于与一个输入端口和一个参数的S-功能。
sfun_directlook.c 没有可用的模型 实施直接1-d查找。
sfun_dtype_io.c sfcndemo_dtype_io 实现使用Simulink中的S-功能万博1manbetx®数据类型的输入和输出。
sfun_dtype_param.c sfcndemo_dtype_param 实现使用的Simulink数据类型参数的S-功能。万博1manbetx
sfun_dynsize.c sfcndemo_sfun_dynsize 器具动态大小的输出。
sfun_errhdl.c sfcndemo_sfun_errhdl 使用检查参数mdlCheckParametersS函数程序。
sfun_fcncall.c sfcndemo_sfun_fcncall 在第一和第二输出元件执行功能调用子系统。
sfun_frmad.c sfcndemo_frame 实施基于帧的A / d转换器。
sfun_frmda.c sfcndemo_frame 实施基于帧的d / A转换器。
sfun_frmdft.c sfcndemo_frame 实施基于帧的多声道离散傅立叶变换(及其倒数)。
sfun_frmunbuff.c sfcndemo_frame 实施基于帧的非缓冲块。
sfun_multiport.c sfcndemo_sfun_multiport 配置多个输入和输出端口。
sfun_manswitch.c 没有可用的模型 实现手动开关。
sfun_matadd.c sfcndemo_matadd 在S-功能添加矩阵具有一个输入端口,一个输出端口,以及一个参数。
sfun_multirate.c sfcndemo_sfun_multirate 演示如何指定基于端口的采样时间。
sfun_port_constant.c sfcndemo_port_constant 演示如何指定固定的基于端口的采样时间。
sfun_port_triggered.c sfcndemo_port_triggered 演示如何在一个触发子系统中使用基于端口的采样时间。
sfun_runtime1.c sfcndemo_runtime 实现所有的可调参数运行时间参数。
sfun_runtime2.c sfcndemo_runtime 注册单个运行时参数。
sfun_runtime3.c sfcndemo_runtime 注册对话框参数运行时参数。
sfun_runtime4.c sfcndemo_runtime 实现运行时间参数的多个对话参数的函数。
sfun_simstate.c sfcndemo_sfun_simstate 展示了保存和恢复SIMSTATE的S函数API。
sfun_zc.c sfcndemo_sfun_zc 演示如何使用nonsampled过零点的实现ABS(U)。此S-功能被设计为具有可变步长求解器使用。
sfun_zc_sat.c sfcndemo_sfun_zc_sat 演示过零点与饱和度。
sfun_zc_cstate_sat.c sfcndemo_sfun_zc_cstate_sat 实现与饱和极限和过零检测的连续积分器。
sfun_integrator_localsolver.c sfcndemo_sfun_localsolver 展示出一种连续积分器,其中连续状态被使用单独的本地解算器,而不是由模型中使用来解决。
sfun_angle_events.c sfcndemo_angle_events 实现用于旋转体越过指定的角度的健壮和有效检测的方法。
sfun_angle_events.c sf_angle_events 演示角度检测,并纳入状态流®调度函数调用。
sfunmem.c sfcndemo_sfunmem 实现一个集成一步延迟和保持记忆功能。
simomex.c sfcndemo_simomex

实现由状态空间方程描述一个单输入,双输出的状态空间动态系统:

DX / DT = AX +卜Y = CX +都
哪里X是状态矢量,ü是输入向量,并ÿ是输出的矢量。

stspace.c sfcndemo_stspace 实现一组状态空间方程。您可以使用S-功能块和屏蔽设备变成一个新的街区。这个例子MEX文件执行相同的功能,内置的状态空间块。这是一个MEX文件,其中的输入,输出,和状态的数量是依赖于从工作区中传递的参数的一个例子。
stvctf.c sfcndemo_stvctf 实现其传递函数多项式经由输入矢量中被传递连续时间的传递函数。这对于连续时间自适应控制应用中有用。
stvdtf.c sfcndemo_stvdtf 实现其传递函数多项式经由输入矢量中被传递离散时间传递函数。这是离散时间自适应控制应用中有用。
stvmgain.c sfcndemo_stvmgain 实现一个随时间变化的矩阵增益。
table3.c 没有可用的模型 实现一个3-d查找表。
timestwo.c sfcndemo_timestwo 实现一个C MEX S函数加倍它的输入。
vdlmintc.c 没有可用的模型 实现一个离散时间矢量限定积分。
vdpmex.c sfcndemo_vdpmex 实施范德波尔方程。
vlimintc.c 没有可用的模型 实现一个矢量限制积分。
vsfunc.c sfcndemo_vsfunc 说明如何创建可变采样时间块。此块器具,其中,第一输入是由一定量的时间延迟的可变延迟步骤由第二输入来确定。
sfun_pwm.c sfcndemo_pwm 说明如何创建一个可控的采样时间块。
sfun_d2c sfcndemo_d2c 说明如何离散输入信号转换成一个平滑的连续输出信号

Fortran的S-函数示例

下表列出了样品的Fortran S-功能可用matlabroot/工具箱/ Sim万博1manbetxulink的/ simdemos / simfeatures / SRC文件夹(打开)。

文档名称 型号名称

描述

sfun_atmos.c
sfun_atmos_sub.F
sfcndemo_atmos 使用Fortran的子程序计算1976年的标准气氛86公里。

C ++ S-函数示例

下表列出了样品C ++ S-功能在可用matlabroot/工具箱/ Sim万博1manbetxulink的/ simdemos / simfeatures / SRC文件夹(打开)。

文档名称 型号名称 描述
sfun_counter_cpp.cpp sfcndemo_counter_cpp 在指针向量存储一个C ++对象PWork
sfbuilder_permute.cpp sfbuilder_permutation 通过调用使用开始和终止对外C ++类实现置换。
sfbuilder_linfilt.cpp sfbuilder_upsampling 实现线性与C ++ STL算法为一个符号波的上采样滤波。

组织S-功能的项目

下面的示例演示如何安排S-功能文物到一个项目。该项目可以与其他人作为一个zip压缩包或作为MATLAB的共享。

文档名称 描述
slexSfunctionExamplesProject 组织S-功能假象成一个单一的项目。

也可以看看

|||

相关话题