Примеры S-функции

Обзор примеров

Запускать пример:

  1. В Командном окне MATLAB® введите sfundemos.

    Библиотека S-функции в качестве примера открывается.

    Каждый блок представляет категорию примеров S-функции.

  2. Дважды кликните категорию, чтобы отобразить примеры, которые она включает. Например, нажмите C-files.

  3. Дважды кликните блок, чтобы открыть и запустить пример, который он представляет.

Может быть полезно исследовать некоторые демонстрационные S-функции, когда вы читаете следующие главы. Код для примеров хранится в следующей папке под корневой папкой MATLAB.

КОД MATLAB

toolbox/simulink/simdemos/simfeatures

C, C++ и код Фортран

toolbox/simulink/simdemos/simfeatures/src

Уровень 2 Примеры S-функции MATLAB

matlabroot/toolbox/simulink/simdemos/simfeatures (открытая) папка содержит многих Уровень 2 S-функции MATLAB. Рассмотрите начинание путем рассмотрения этих файлов.

FileName Имя моделиОписание
msfcn_dsc.mmsfcndemo_sfundsc1Реализуйте S-функцию с наследованным шагом расчета.
msfcn_limintm.mmsfcndemo_limintmРеализуйте непрерывный ограниченный интегратор, где выход ограничен нижними и верхними границами и включает начальные условия.
msfcn_multirate.mmsfcndemo_multirateРеализуйте многоскоростную систему.
msfcn_times_two.mmsfcndemo_timestwoРеализуйте S-функцию, которая удваивает ее вход.
msfcn_unit_delay.mmsfcndemo_sfundsc2Реализуйте единичную задержку.
msfcn_varpulse.mmsfcndemo_varpulseРеализуйте переменный генератор ширины импульса путем вызова set_param из Уровня 2 S-функция MATLAB. Также демонстрирует, как использовать пользовательский набор и получить методы для блока SimState.
msfcn_vs.mmsfcndemo_vsfuncРеализуйте переменный блок шага расчета, в котором первый вход задерживается количеством времени, определенным вторым входом.

Уровень 1 Примеры S-функции MATLAB

matlabroot/toolbox/simulink/simdemos/simfeatures папка (открытая) также, содержит многих Уровень 1 S-функции MATLAB, обеспеченные как ссылка для устаревших моделей. Большинство из них Уровень 1 S-функции MATLAB не имеет сопоставленных моделей в качестве примера.

FileName Описание
csfunc.mЗадайте непрерывную систему в формате пространства состояний.
dsfunc.mЗадайте дискретную систему в формате пространства состояний.
limintm.mРеализуйте непрерывный ограниченный интегратор, где выход ограничен нижними и верхними границами и включает начальные условия.
mixedm.mРеализуйте гибридную систему, состоящую из непрерывного интегратора последовательно с единичной задержкой.
sfun_varargm.mРеализуйте S-функцию, которая показывает, как использовать команду MATLAB varargin.
vsfunc.mПроиллюстрируйте, как создать переменный блок шага расчета. Эта S-функция реализует переменную задержку шага, в которой первый вход задерживается количеством времени, определенным вторым входом.

C примеры S-функции

matlabroot/toolbox/simulink/simdemos/simfeatures/src (открытая) папка содержит примеры S-функций MEX C, многие из которых имеют дубликат S-функции MATLAB. S-функции MEX C перечислены в следующей таблице.

FileName Имя моделиОписание
csfunc.csfcndemo_csfuncРеализуйте непрерывную систему.
dlimintc.cНикакая доступная модельРеализуйте ограниченный интегратор дискретного времени.
dsfunc.csfcndemo_dsfuncРеализуйте дискретную систему.
limintc.cНикакая доступная модельРеализуйте ограниченный интегратор.
mixedm.csfcndemo_mixedmРеализуйте гибридную динамическую систему, состоящую из непрерывного интегратора (1/с) последовательно с единичной задержкой (1/z).
mixedmex.csfcndemo_mixedmexРеализуйте гибридную динамическую систему с одним выходом и двумя входными параметрами.
slexQuantizeSFcn.csfcndemo_sfun_quantizeРеализуйте векторизованный квантизатор. Квантует вход в шаги, как задано параметром интервала квантования, q.
sdotproduct.csfcndemo_sdotproductВычислите скалярное произведение (умножьтесь - накапливаются) двух векторов действительных чисел или комплексных векторов.
sfbuilder_bususage.csfbuilder_bususageДоступ к Разработчику S-функции с вводом и выводом шины.
sfbuilder_movingAverage.csfbuilder_movingAverageРеализуйте простое скользящее среднее значение окна времени с помощью Start и Terminate.
sftable2.cНикакая доступная модельРеализуйте двумерный поиск по таблице.
sfun_atol.csfcndemo_sfun_atolУстановите различные абсолютные погрешности для каждого непрерывного состояния.
sfun_cplx.csfcndemo_cplxДобавьте комплексные данные для S-функции с одним входным портом и одним параметром.
sfun_directlook.cНикакая доступная модельРеализуйте прямой 1D поиск.
sfun_dtype_io.csfcndemo_dtype_ioРеализуйте S-функцию, которая использует типы данных Simulink® для вводов и выводов.
sfun_dtype_param.csfcndemo_dtype_paramРеализуйте S-функцию, которая использует типы данных Simulink для параметров.
sfun_dynsize.csfcndemo_sfun_dynsizeРеализации динамически измеренные выходные параметры.
sfun_errhdl.csfcndemo_sfun_errhdlПроверяйте параметры с помощью mdlCheckParameters Стандартная программа S-функции.
sfun_fcncall.csfcndemo_sfun_fcncallВыполните подсистемы вызова функций на первых и вторых выходных элементах.
sfun_frmad.csfcndemo_frameРеализуйте основанный на системе координат конвертер A/D.
sfun_frmda.csfcndemo_frameРеализуйте основанный на системе координат цифро-аналоговый преобразователь.
sfun_frmdft.csfcndemo_frameРеализуйте многоканальное основанное на системе координат преобразование Дискретное Фурье (и его инверсия).
sfun_frmunbuff.csfcndemo_frameРеализация основанное на системе координат освобождает буфер блок.
sfun_multiport.csfcndemo_sfun_multiportСконфигурируйте несколько портов ввода и вывода.
sfun_manswitch.cНикакая доступная модельРеализуйте ручной переключатель.
sfun_matadd.csfcndemo_mataddДобавьте матрицы в S-функции с одним входным портом, одним выходным портом и одним параметром.
sfun_multirate.csfcndemo_sfun_multirateПродемонстрируйте, как задать основанные на порте шаги расчета.
sfun_port_constant.csfcndemo_port_constantПродемонстрируйте, как задать постоянные основанные на порте шаги расчета.
sfun_port_triggered.csfcndemo_port_triggeredПродемонстрируйте, как использовать основанные на порте шаги расчета в триггируемой подсистеме.
sfun_runtime1.csfcndemo_runtimeРеализуйте параметры периода выполнения для всех настраиваемых параметров.
sfun_runtime2.csfcndemo_runtimeУкажите отдельные параметры периода выполнения.
sfun_runtime3.csfcndemo_runtimeУкажите диалоговые параметры как параметры периода выполнения.
sfun_runtime4.csfcndemo_runtimeРеализуйте параметры периода выполнения как функцию нескольких диалоговых параметров.
sfun_simstate.csfcndemo_sfun_simstateПродемонстрируйте API S-функции для сохранения и восстановления SimState.
sfun_zc.csfcndemo_sfun_zcПродемонстрируйте использование непроизведенных нулевых пересечений, чтобы реализовать abs(u). Эта S-функция спроектирована, чтобы использоваться с решателем переменного шага.
sfun_zc_sat.csfcndemo_sfun_zc_satПродемонстрируйте нулевые пересечения с насыщением.
sfun_zc_cstate_sat.csfcndemo_sfun_zc_cstate_satРеализуйте непрерывный интегратор с пределами насыщения и обнаружением пересечения нулем.
sfun_integrator_localsolver.csfcndemo_sfun_localsolverПродемонстрируйте непрерывный интегратор, где непрерывные состояния решены с помощью отдельного локального решателя вместо используемого моделью.
sfun_angle_events.csfcndemo_angle_eventsРеализуйте метод для устойчивого и эффективного обнаружения вращающегося тела, пересекающего заданные углы.
sfun_angle_events.csf_angle_eventsПродемонстрируйте угловое обнаружение и включите Stateflow®, чтобы запланировать вызовы функции.
sfunmem.csfcndemo_sfunmemРеализуйте задержку с одним этапом интеграции и содержите функцию памяти.
simomex.c sfcndemo_simomex

Реализуйте одно вход, 2D выходная динамическая система пространства состояний, описанная уравнениями пространства состояний:

dx/dt = Ax + Bu
y = Cx + Du
где x вектор состояния, u вектор из входных параметров и y вектор из выходных параметров.

stspace.c sfcndemo_stspaceРеализуйте набор уравнений пространства состояний. Можно превратить это в новый блок при помощи средства маски и Блока s-function. Этот файл MEX в качестве примера выполняет ту же функцию как встроенный блок State-Space. Это - пример файла MEX, где количество входных параметров, выходных параметров и состояний зависит от параметров, переданных в из рабочей области.
stvctf.c sfcndemo_stvctfРеализуйте передаточную функцию непрерывного времени, полиномы передаточной функции которой передаются на пути входной вектор. Это полезно для непрерывных приложений адаптивного управления времени.
stvdtf.csfcndemo_stvdtfРеализуйте передаточную функцию дискретного времени, полиномы передаточной функции которой передаются на пути входной вектор. Это полезно для приложений адаптивного управления дискретного времени.
stvmgain.csfcndemo_stvmgainРеализуйте изменяющееся во времени матричное усиление.
table3.cНикакая доступная модельРеализуйте 3-D интерполяционную таблицу.
timestwo.csfcndemo_timestwoРеализуйте S-функцию MEX C, которая удваивает ее вход.
vdlmintc.cНикакая доступная модельРеализуйте векторизованный ограниченный интегратор дискретного времени.
vdpmex.csfcndemo_vdpmexРеализуйте Уравнение Ван дер Поля.
vlimintc.c Никакая доступная модельРеализуйте векторизованный ограниченный интегратор.
vsfunc.csfcndemo_vsfuncПроиллюстрируйте, как создать переменный блок шага расчета. Этот блок реализует задержку переменного шага, в которой первый вход задерживается количеством времени, определенным вторым входом.
sfun_pwm.csfcndemo_pwmПроиллюстрируйте, как создать управляемый блок шага расчета.
sfun_d2csfcndemo_d2cПроиллюстрируйте, как преобразовать дискретный входной сигнал в сглаженный непрерывный выходной сигнал

Примеры S-функции Фортрана

В следующей таблице перечислены демонстрационные S-функции Фортрана, доступные в matlabroot/toolbox/simulink/simdemos/simfeatures/src (открытая) папка.

FileName Имя модели

Описание

sfun_atmos.c
sfun_atmos_sub.F
sfcndemo_atmosВычислите 1 976 стандартных атмосфер к 86 км с помощью стандартной подпрограммы Фортрана.

Примеры S-функции C++

В следующей таблице перечислены демонстрационные S-функции C++, доступные в matlabroot/toolbox/simulink/simdemos/simfeatures/src (открытая) папка.

FileName Имя моделиОписание
sfun_counter_cpp.cppsfcndemo_counter_cppСохраните объект C++ в векторе указателей PWork.
sfbuilder_permute.cppsfbuilder_permutationРеализуйте сочетание путем вызова внешнего использования классов C++, Запускаются и Завершают работу.
sfbuilder_linfilt.cppsfbuilder_upsamplingРеализуйте линейную фильтрацию с алгоритмами STL C++ для повышающей дискретизации волны знака.

Организация S-функции в проекте

Следующий пример показывает, как расположить артефакты S-функции в проект. Этот проект может быть совместно использован с другими как архив zip или как тулбокс MATLAB.

FileName Описание
slexSfunctionExamplesProjectОрганизуйте артефакты S-функции в один проект.

Смотрите также

| | |

Похожие темы