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

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

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

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

Использование в Simulink

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

model = 'movingaveragefilter_sl';
open_system(model);

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

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

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

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

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

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

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

Можно также настроить диалоговое окно блока путем добавления методов и комментариев к системному объекту. Дополнительные сведения о диалоговых индивидуальных настройках блоков см. в разделе Настройка внешнего вида системных блоков. В этом примере переименуйте WindowLength свойство в диалоговом окне и добавить метод для настройки описания.

По умолчанию все общественная собственность появляются как параметры в диалоговом окне блоков с их именами свойства. В этом примере добавьте комментарии перед WindowLength свойство так, что оно появляется как Длина окна перемещения в диалоговом окне. Добавить комментарии над свойством в форме: 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