exponenta event banner

Использование глобальных переменных в системных объектах

Глобальные переменные - это переменные, к которым можно получить доступ в других функциях MATLAB ® или блоках Simulink ®.

Глобальные переменные объекта системы в MATLAB

Для системных объектов, используемых только в MATLAB, глобальные переменные определяются в файлах определений классов System object™ так же, как глобальные переменные определяются в другом коде MATLAB (см. Глобальные переменные).

Глобальные переменные системных объектов в Simulink

Для системных объектов, используемых в системном блоке MATLAB в Simulink, также определяются глобальные переменные, как в MATLAB. Однако для использования глобальных переменных в Simulink, если глобальные переменные объявлены в методах, вызываемых stepImpl, updateImpl, или outputImpl, необходимо объявить глобальные переменные в stepImpl, updateImpl, или outputImpl способ, соответственно.

Глобальные переменные для системного блока MATLAB настраиваются и используются таким же образом, как и для функционального блока MATLAB (см. Хранение данных и глобальное совместное использование данных). Как и функциональный блок MATLAB, для использования глобальных переменных в Simulink необходимо также использовать имя переменной, совпадающее с именем блока памяти хранилища данных.

Например, этот файл определения класса определяет объект System, который увеличивает первую строку матрицы на 1 на каждом шаге времени. Если файл имеет P-код, необходимо включить getGlobalNamesImpl.

classdef GlobalSysObjMatrix < matlab.System 
   methods (Access = protected)  
      function y = stepImpl(obj)
         global B;
         B(1,:) = B(1,:)+1;
         y = B;
      end

      % Include getGlobalNamesImpl only if the class file is P-coded.
      function globalNames = getGlobalNamesImpl(~)
         globalNames = {'B'};
      end    
   end
end
Эта модель включает в себя GlobalSysObjMatrix объект в системном блоке MATLAB и связанном с ним блоке памяти хранилища данных.

См. также

Связанные темы