Запускать пример:
В Командном окне 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 | Реализуйте простое скользящее среднее значение окна времени с помощью Start и Terminate. |
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 | Проверяйте параметры с помощью mdlCheckParameters Стандартная программа S-функции. |
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 | Реализуйте одно вход, 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.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-функции в проект. Этот проект может быть совместно использован с другими как архив zip или как тулбокс MATLAB.
FileName | Описание |
---|---|
slexSfunctionExamplesProject | Организуйте артефакты S-функции в один проект. |
Level-2 MATLAB S-Function | MATLAB Function | S-Function | S-Function Builder