Создайте блок фильтра скользящего среднего значения с системным объектом

В этом примере показано, как расширить movingAverageFilter Система object™ для использования в Simulink™. Чтобы использовать Системный объект в Simulink, включайте Системный объект в блок MATLAB System.

movingAverageFilter Системный объект

Этот пример расширяет movingAverageFilter Системный объект встроил, Создают Системный объект Скользящего среднего значения. movingAverageFilter Системный объект вычисляет невзвешенное среднее значение конкретного количества предыдущих входных параметров. Используйте WindowLength свойство задать, сколько предыдущих выборок, чтобы использовать.

Используйте в Simulink

Объект уже готов использовать в Simulink. Создайте модель Simulink и добавьте блок MATLAB System. Задайте movingAverageFilter как имя Системного объекта. Например, эта модель использует фильтр скользящего среднего значения, чтобы устранить шум из сигнала.

model = 'movingaveragefilter_sl';
open_system(model);

Диалоговое окно блока показывает общественность, настраиваемые параметры:

Настройте MATLAB System Block

Опционально, можно настроить внешний вид блока и блокировать диалоговое окно для блока MATLAB System путем добавления методов в Системный объект.

Добавьте метод индивидуальной настройки значка блока Simulink

По умолчанию значок блока показывает имя Системного объекта в этом случае movingAverageFilter. Настройте значок блока Moving Average Filter с более чистым именем. В панели инструментов Редактора выберите Системную кнопку раскрытия списка Блока, затем выберите Add Text Icon. getIconImpl метод добавляется к movingAverageFilter. В getIconImpl, установите icon равняйтесь массиву строк ["Moving","Average","Filter"];

function icon = getIconImpl(~)
    % Define icon for the System block.
    icon = ["Moving","Average","Filter"];
end

Настройте диалоговое окно блока

Можно также настроить диалоговое окно блока путем добавления методов и комментариев к Системному объекту. Для получения дополнительной информации о диалоговой индивидуальной настройке блока, смотрите, Настраивают Системный Внешний вид Блока. В этом примере переименуйте WindowLength свойство в диалоговом окне и добавляет метод, чтобы настроить описание.

По умолчанию все публичные свойства появляются как параметры в диалоговом окне блока с их именами свойства. В этом примере добавьте комментарии перед WindowLength свойство так, чтобы это появилось как длина окна Moving в диалоговом окне. Добавьте комментарии выше свойства в форме: PropertyName Name in dialog

 % WindowLength Moving window length
 WindowLength (1,1){mustBeInteger,mustBePositive} = 5

Чтобы задать заголовок и описание в диалоговом окне блока, в панели инструментов выбирают System Block> Specify Dialog Header. Эта опция добавляет getHeaderImpl метод к movingAverageFilter. Измените вызов matlab.system.display.Header к этому:

methods(Access = protected, Static)
    function header = getHeaderImpl
        % Define header panel for System block dialog
        header = matlab.system.display.Header('movingAverageFilter',...
            'Title','Moving Average Filter',...
            'Text', 'Unweighted moving average filter of 1- or 2D input.');
    end
end

Вы видите предварительный просмотр диалогового окна блока путем нажатия кнопки в панели инструментов выше Системного Блока.

Индивидуально настраиваемый блок в Simulink

Это - блок с добавленными индивидуальными настройками:

model = 'movingaveragefilter_sl_extended';
open_system(model);

Чтобы видеть завершенный Системный объект с методами индивидуальной настройки Simulink, введите:

edit movingAverageFilter_extended.m