Примеры 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Реализуйте простое использование скользящего среднего значения окна времени, Запускают и Отключают.
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Проверьте параметры с помощью стандартной программы S-функции mdlCheckParameters.
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Реализуйте единственный входной параметр, двух-выходная динамическая система пространства состояний, описанная уравнениями пространства состояний:
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-функции в проекте Simulink

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

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

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

| | |

Похожие темы

Была ли эта тема полезной?