Запускать пример:
В Командном окне MATLAB® введите sfundemos
.
Библиотека S-функции в качестве примера открывается.
Каждый блок представляет категорию примеров S-функции.
Дважды кликните категорию, чтобы отобразить примеры, которые она включает. Например, нажмите C-files.
Дважды кликните блок, чтобы открыть и запустить пример, который он представляет.
Может быть полезно исследовать некоторые демонстрационные S-функции, когда вы читаете следующие главы. Код для примеров сохранен в следующей папке под корневой папкой MATLAB.
КОД MATLAB |
|
C, C++ и код Фортрана |
|
(Открытая) папка
содержит многих Уровень 2 S-функции MATLAB. Рассмотрите начинание путем рассмотрения этих файлов.matlabroot/toolbox/simulink/simdemos/simfeatures
FileName | Имя модели | Описание |
---|---|---|
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 S-функция MATLAB. Также демонстрирует, как использовать пользовательский набор и получить методы для блока SimState. |
msfcn_vs. m | msfcndemo_vsfunc | Реализуйте переменный блок частоты дискретизации, в котором первый входной параметр задерживается количеством времени, определенным вторым входным параметром. |
Папка
(открытая) также, содержит многих Уровень 1 S-функции MATLAB, обеспеченные как ссылка для устаревших моделей. Большинство из них Уровень 1 S-функции MATLAB не имеет сопоставленных моделей в качестве примера.matlabroot/toolbox/simulink/simdemos/simfeatures
FileName | Описание |
---|---|
csfunc.m | Задайте непрерывную систему в формате пространства состояний. |
dsfunc.m | Задайте дискретную систему в формате пространства состояний. |
limintm.m | Реализуйте непрерывный ограниченный интегратор, где вывод ограничен нижними и верхними границами и включает начальные условия. |
mixedm.m | Реализуйте гибридную систему, состоящую из непрерывного интегратора последовательно с единичной задержкой. |
sfun_varargm.m | Реализуйте S-функцию, которая показывает, как использовать команду MATLAB varargin . |
vsfunc.m | Проиллюстрируйте, как создать переменный блок частоты дискретизации. Эта S-функция реализует переменную задержку шага, в которой первый входной параметр задерживается количеством времени, определенным вторым входным параметром. |
(Открытая) папка
содержит примеры S-функций MEX C, многие из которых имеют дубликат S-функции MATLAB. S-функции MEX C перечислены в следующей таблице.matlabroot/toolbox/simulink/simdemos/simfeatures/src
FileName | Имя модели | Описание |
---|---|---|
csfunc. c | sfcndemo_csfunc | Реализуйте непрерывную систему. |
dlimintc.c | Никакая доступная модель | Реализуйте ограниченный интегратор дискретного времени. |
dsfunc. c | sfcndemo_dsfunc | Реализуйте дискретную систему. |
limintc.c | Никакая доступная модель | Реализуйте ограниченный интегратор. |
mixedm. c | sfcndemo_mixedm | Реализуйте гибридную динамическую систему, состоящую из непрерывного интегратора (1/с) последовательно с единичной задержкой (1/z). |
mixedmex. c | sfcndemo_mixedmex | Реализуйте гибридную динамическую систему с единственным выводом и двумя входными параметрами. |
slexQuantizeSFcn. c | sfcndemo_sfun_quantize | Реализуйте векторизованный квантизатор. Квантует входной параметр в шаги, как задано параметром интервала квантования, q . |
sdotproduct. c | sfcndemo_sdotproduct | Вычислите скалярное произведение (умножьтесь - накапливаются) двух действительных или комплексных векторов. |
sfbuilder_bususage. c | sfbuilder_bususage | Доступ к Разработчику S-функции с вводом и выводом шины. |
sfbuilder_movingAverage. c | sfbuilder_movingAverage | Реализуйте простое использование скользящего среднего значения окна времени, Запускают и Отключают. |
sftable2.c | Никакая доступная модель | Реализуйте двумерный поиск по таблице. |
sfun_atol. c | sfcndemo_sfun_atol | Установите различные абсолютные допуски к каждому непрерывному состоянию. |
sfun_cplx. c | sfcndemo_cplx | Добавьте комплексные данные для S-функции с одним входным портом и одним параметром. |
sfun_directlook.c | Никакая доступная модель | Реализуйте прямой 1D поиск. |
sfun_dtype_io. c | sfcndemo_dtype_io | Реализуйте S-функцию, которая использует типы данных Simulink® для вводов и выводов. |
sfun_dtype_param. c | sfcndemo_dtype_param | Реализуйте S-функцию, которая использует типы данных Simulink для параметров. |
sfun_dynsize. c | sfcndemo_sfun_dynsize | Реализации динамически измеренные выходные параметры. |
sfun_errhdl. c | sfcndemo_sfun_errhdl | Проверьте параметры с помощью стандартной программы S-функции mdlCheckParameters . |
sfun_fcncall. c | sfcndemo_sfun_fcncall | Выполните подсистемы вызова функций на первых и вторых выходных элементах. |
sfun_frmad. c | sfcndemo_frame | Реализуйте основанный на кадре конвертер A/D. |
sfun_frmda. c | sfcndemo_frame | Реализуйте основанный на кадре цифро-аналоговый преобразователь. |
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 | Продемонстрируйте API S-функции для сохранения и восстановления SimState. |
sfun_zc. c | sfcndemo_sfun_zc | Продемонстрируйте использование невыбранных нулевых пересечений, чтобы реализовать 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 | Продемонстрируйте угловое обнаружение и включите Stateflow®, чтобы запланировать вызовы функции. |
sfunmem. c | sfcndemo_sfunmem | Реализуйте задержку с одним этапом интеграции и содержите функцию памяти. |
simomex. c
| sfcndemo_simomex | Реализуйте единственный входной параметр, двух-выходная динамическая система пространства состояний, описанная уравнениями пространства состояний: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. c | sfcndemo_stvdtf | Реализуйте передаточную функцию дискретного времени, многочлены передаточной функции которой передаются на пути входной вектор. Это полезно для приложений адаптивного управления дискретного времени. |
stvmgain. c | sfcndemo_stvmgain | Реализуйте изменяющееся во времени матричное усиление. |
table3.c | Никакая доступная модель | Реализуйте 3-D интерполяционную таблицу. |
timestwo. c | sfcndemo_timestwo | Реализуйте S-функцию MEX C, которая удваивает ее входной параметр. |
vdlmintc.c | Никакая доступная модель | Реализуйте векторизованный ограниченный интегратор дискретного времени. |
vdpmex. c | sfcndemo_vdpmex | Реализуйте Уравнение Ван дер Поля. |
vlimintc.c
| Никакая доступная модель | Реализуйте векторизованный ограниченный интегратор. |
vsfunc. c | sfcndemo_vsfunc | Проиллюстрируйте, как создать переменный блок частоты дискретизации. Этот блок реализует задержку переменного шага, в которой первый входной параметр задерживается количеством времени, определенным вторым входным параметром. |
sfun_pwm. c | sfcndemo_pwm | Проиллюстрируйте, как создать управляемый блок частоты дискретизации. |
sfun_d2c | sfcndemo_d2c | Проиллюстрируйте, как преобразовать дискретный входной сигнал в сглаженный непрерывный выходной сигнал |
В следующей таблице перечислены демонстрационные S-функции Фортрана, доступные в (открытой) папке
.matlabroot/toolbox/simulink/simdemos/simfeatures/src
FileName | Имя модели | Описание |
---|---|---|
sfun_atmos. c sfun_atmos_sub. F | sfcndemo_atmos | Вычислите 1 976 стандартных атмосфер к 86 км с помощью стандартной подпрограммы Фортрана. |
В следующей таблице перечислены демонстрационные S-функции C++, доступные в (открытой) папке
.matlabroot/toolbox/simulink/simdemos/simfeatures/src
FileName | Имя модели | Описание |
---|---|---|
sfun_counter_cpp.cpp | sfcndemo_counter_cpp | Сохраните объект C++ в векторе указателей PWork . |
sfbuilder_permute.cpp | sfbuilder_permutation | Реализуйте перестановку путем вызова внешнего использования классов C++, Запускают и Отключают. |
sfbuilder_linfilt.cpp | sfbuilder_upsampling | Реализуйте линейную фильтрацию с алгоритмами STL C++ для повышающей дискретизации волны знака. |
Следующий пример показывает, как расположить артефакты S-функции в проект Simulink. Этот проект может быть совместно использован с другими как архив zip или как тулбокс MATLAB.
FileName | Описание |
---|---|
slexSfunctionExamplesProject | Организуйте артефакты S-функции в единственный Проект Simulink. |
Уровень 2 S-функция MATLAB | Функция MATLAB | S-функция | Разработчик S-функции