Main Content

System Object에서 전역 변수 사용하기

전역 변수는 다른 MATLAB® 함수 또는 다른 Simulink® 블록에서 액세스할 수 있는 변수입니다.

MATLAB의 System Object 전역 변수

MATLAB에서만 사용되는 System Object의 경우 다른 MATLAB 코드에서 전역 변수를 정의하는 것과 동일한 방식으로 System object™ 클래스 정의 파일에 전역 변수를 정의합니다(전역 변수(Global Variable) 참조).

Simulink의 System Object 전역 변수

Simulink의 MATLAB System 블록에서 사용되는 System Object의 경우 역시 MATLAB에서와 마찬가지로 전역 변수를 정의합니다. 단, Simulink에서 전역 변수를 사용하려면 stepImpl, updateImpl 또는 outputImpl에서 호출하는 메서드에서 전역 변수를 선언한 경우 각각 stepImpl, updateImpl 또는 outputImpl 메서드에서 전역 변수를 선언해야 합니다.

MATLAB Function 블록에 대해 하는 것과 동일한 방식으로 MATLAB System 블록에 대해 전역 변수를 설정하고 사용합니다(데이터 저장소Share Data Globally 참조). MATLAB Function 블록과 마찬가지로 Simulink에서 전역 변수를 사용하려면 Data Store Memory 블록과 일치하는 변수 이름을 사용해야 합니다.

예를 들어 다음 클래스 정의 파일은 각 시간 스텝에서 행렬의 첫 번째 행을 1씩 증가시키는 System object를 정의합니다. 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
이 모델은 MATLAB System 블록의 GlobalSysObjMatrix 객체 및 관련된 Data Store Memory 블록을 포함합니다.

참고 항목

관련 항목