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

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

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

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

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

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

Вы настраиваете и используете глобальные переменные для блока MATLAB System так же, как и для блока MATLAB Function (см. «Хранилища данных» и «Глобальный обмен данными»). Как и блок MATLAB Function, вы также должны использовать сопоставление имен переменных с блоком Data Store Memory, чтобы использовать глобальные переменные в Simulink.

Для примера этот файл определения класса задает системный объект, который увеличивает первую строку матрицы на 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 System и связанный с ним Data Store Memory блок.

См. также

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте