Глобальными переменными являются переменные, к которым можно получить доступ в других MATLAB® функции или Simulink® блоки.
Для системных объектов, которые используются только в MATLAB, глобальные переменные определяются в файлах определения классов System object™ таким же образом, как и глобальные переменные в другом коде MATLAB (см. «Глобальные переменные»).
Для системных объектов, которые используются в блоке MATLAB System в Simulink, вы также задаете глобальные переменные, как вы это делаете в MATLAB. Однако, чтобы использовать глобальные переменные в Simulink, вы должны объявить глобальные переменные в stepImpl
, updateImpl
, или outputImpl
метод, если вы объявили их в методах, вызываемых stepImpl
, updateImpl
, или outputImpl
, соответственно.
Вы настраиваете и используете глобальные переменные для блока MATLAB System так же, как и для блока MATLAB Function (см. «Хранилища данных (Simulink)» и «Глобальный обмен данными (Simulink)»). Как и блок MATLAB Function, вы также должны использовать сопоставление имен переменных с блоком Data Store Memory, чтобы использовать глобальные переменные в Simulink.
Для примера этот файл определения класса задает системный объект, который увеличивает первую строку матрицы на 1 на каждом временном шаге. Вы должны включать getGlobalNamesImpl
если файл класса является P-кодированным.
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 блок.