Main Content

Simulink.Bus

버스 속성 지정

설명

Simulink.Bus 객체는 Simulink.BusElement 객체와 함께 사용할 경우 버스 및 버스에 속한 요소의 속성을 지정하고 유효성을 검사합니다. 모델을 시뮬레이션하거나 업데이트할 때 소프트웨어는 블록에 연결된 버스가 블록이 지정한 Simulink.Bus 객체와 일치하는지 확인합니다.

Bus 객체는 버스의 아키텍처 속성만 지정합니다. 예를 들어, Bus 객체는 요소 이름, 계층 구조, 순서 및 데이터형을 지정할 수 있습니다. Bus 객체는 버스의 멤버는 정의하지만 버스를 만들지는 않기 때문에 C 코드의 구조체와 유사합니다. Bus 객체는 케이블 커넥터와도 비슷합니다. 이 커넥터는 모든 핀과 핀 구성을 정의하고 핀에 연결될 수 있는 와이어 유형을 제어합니다. 마찬가지로, Bus 객체는 연결된 버스에 필요한 신호의 구성과 속성을 정의합니다.

Simulink.Bus 객체에는 Simulink.BusElement 객체가 포함됩니다. 각 Bus Element 객체는 버스에 있는 신호의 속성(예: 이름, 데이터형, 차원)을 지정합니다. Bus 객체에 있는 Bus Element 객체의 순서는 버스의 신호 순서를 정의합니다.

Bus 객체는 개별 구성 신호에서 정의하지 않고 상속되도록 남겨진 속성을 지정할 수 있습니다.

기본 작업 공간이나 데이터 사전에서 Bus 객체를 만들고 수정하려면 유형 편집기, 모델 탐색기 또는 MATLAB® 명령을 사용하면 됩니다. 모델 작업 공간에는 Simulink.Bus 객체를 저장할 수 없습니다.

모델에서 Simulink.Bus 객체를 사용하려면 Specify Bus Properties with Bus Objects 항목을 참조하십시오.

생성

여러 가지 방법으로 Simulink.Bus 객체를 만들 수 있습니다.

  • 대화형 방식으로 Simulink.Bus 객체를 만들려면 유형 편집기 또는 모델 탐색기를 사용하십시오.

  • 디폴트 속성을 사용하여 Simulink.Bus 객체를 프로그래밍 방식으로 만들려면 아래 설명한 Simulink.Bus 함수를 사용하십시오.

  • 모델, MATLAB 데이터 및 외부 C 코드에 있는 블록에서 프로그래밍 방식으로 Simulink.Bus 객체를 만들려면 프로그래밍 방식으로 Simulink Bus 객체 만들기 항목을 참조하십시오.

설명

예제

name = Simulink.Bus는 디폴트 속성값을 사용하는 Simulink.Bus 객체를 반환합니다. 객체의 이름은 객체를 할당한 MATLAB 변수의 이름입니다.

속성

모두 확장

버스 설명으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다. 객체가 적용할 신호 종류 또는 객체가 사용되는 위치와 같은 객체에 대한 정보를 설명하는 데 사용합니다. 이 정보는 Simulink® 처리에 영향을 주지 않습니다.

데이터형: char | string

버스 요소로, Simulink.BusElement 객체로 구성된 배열로 지정됩니다. 각 Bus Element 객체는 신호의 이름, 데이터형, 차원 및 다른 속성을 버스 내에 정의합니다. 자세한 내용은 Simulink.BusElement 항목을 참조하십시오.

생성 코드의 데이터형 정의 모드로, 'Auto', 'Exported' 또는 'Imported'로 지정됩니다. 이 속성은 코드 생성 중에 데이터형 정의를 HeaderFile 속성으로 지정된 헤더 파일에서 가져오는지 또는 헤더 파일로 내보내는지 지정합니다.

동작
'Auto'(디폴트 값)

지정된 헤더 파일에서 데이터형 정의를 가져옵니다. 헤더 파일을 지정하지 않은 경우 데이터형 정의를 디폴트 헤더 파일로 내보냅니다.

'Exported'데이터형 정의를 지정된 헤더 파일 또는 디폴트 헤더 파일로 내보냅니다.
'Imported'지정된 헤더 파일 또는 디폴트 헤더 파일에서 데이터형 정의를 가져옵니다.

생성된 코드에 잘못된 형식의 헤더 파일을 포함시키지 않으려면 Simulink.Bus 객체에 DataScope'내보냄', HeaderFile을 C 헤더 파일로 지정하는 중첩된 Simulink.Bus 객체가 하나 이상 있는 경우 Simulink.Bus 객체에서 DataScope'내보냄', HeaderFile을 C 헤더 파일로 지정해야 합니다.

참고

typedef 문으로 선언되지 않은 enum 또는 struct 유형을 가져오려면 다음을 수행하십시오.

  • 시뮬레이션 타깃 구성 파라미터에 선언이 포함된 헤더 파일을 포함(#include)합니다.

  • 시뮬레이션 타깃 구성 파라미터에서 사용자 지정 코드 가져오기가 선택되었는지 확인합니다. 이 파라미터는 기본적으로 선택되어 있습니다.

잠재적인 MISRA C:2012 위반을 피하려면 데이터 범위를 가져옴이나 내보냄으로 설정하십시오.

데이터형: char | string

데이터형 정의와 함께 사용되는 C 헤더 파일로, 문자형 벡터 또는 string형 스칼라로 지정됩니다. DataScope 속성값에 따라 헤더 파일에서 데이터형 정의를 가져오거나 헤더 파일로 데이터형 정의를 내보냅니다. Simulink Coder™는 코드 생성에 이 속성을 사용합니다. Simulink는 이 속성을 무시합니다.

기본적으로 생성된 #include 지시문은 <> 대신 전처리기 구분 기호 "를 사용합니다. #include <myTypes.h> 지시문을 생성하려면 HeaderFile<myTypes.h>로 지정하십시오.

데이터형: char | string

데이터 정렬 경계로, 정수(바이트 개수)로 지정됩니다. Simulink Coder는 코드 생성에 이 속성을 사용합니다. Simulink는 이 속성을 무시합니다.

버스에 할당된 데이터의 시작 메모리 주소는 Alignment 설정의 배수입니다. 정렬이 필요한 컨텍스트에 객체가 있으면 2의 거듭제곱이면서 128을 초과하지 않는 양의 정수로 Alignment 값을 지정해야 합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

생성 코드에서 다차원 버스 요소의 차원을 유지하기 위한 코드 생성기 사양으로, 'false' 또는 'true'로 지정됩니다. 자세한 내용은 Preserve Dimensions of Bus Elements in Generated Code (Embedded Coder) 항목을 참조하십시오.

데이터형: logical

객체 함수

getNumLeafBusElementsNumber of leaf elements in Simulink.Bus object
getLeafBusElementsLeaf elements in Simulink.Bus object

예제

모두 축소

Simulink.BusElement 객체로 구성된 배열을 사용하여 Simulink.Bus 객체의 계층 구조를 만듭니다.

기본 작업 공간에 이름이 각각 ChirpSine인 2개의 BusElement 객체를 포함하는 배열을 만듭니다.

elems(1) = Simulink.BusElement;
elems(1).Name = 'Chirp';

elems(2) = Simulink.BusElement;
elems(2).Name = 'Sine';

배열 인덱싱을 사용하면 배열의 요소를 만들고 액세스할 수 있습니다. 점 표기법을 사용하면 요소의 속성값에 액세스할 수 있습니다.

elems 배열에 정의된 요소를 포함하는, Sinusoidal이라는 이름의 Bus 객체를 만듭니다.

Sinusoidal = Simulink.Bus;
Sinusoidal.Elements = elems;

Bus 객체의 계층 구조를 만들기 위해 Sinusoidal이라는 이름의 Bus 객체를 참조하는 Bus 객체를 하나 더 만듭니다.

이름이 각각 NestedBusStep인 2개의 BusElement 객체를 포함하는 배열을 만듭니다. Sinusoidal이라는 이름의 Bus 객체를 NestedBus 요소의 데이터형으로 지정합니다.

clear elems

elems(1) = Simulink.BusElement;
elems(1).Name = 'NestedBus';
elems(1).DataType = 'Bus: Sinusoidal';

elems(2) = Simulink.BusElement;
elems(2).Name = 'Step';

elems 배열에 정의된 요소를 포함하는, TopBus라는 이름의 Bus 객체를 만듭니다.

TopBus = Simulink.Bus;
TopBus.Elements = elems;

유형 편집기에서 생성된 객체의 계층 구조를 볼 수 있습니다.

typeeditor

Type Editor를 사용하여 Simulink.Bus 객체의 계층 구조를 대화형 방식으로 검사할 수 있지만 프로그래밍 방식으로 객체를 검사할 수도 있습니다.

예제를 엽니다. 그런 다음 busObjectDefinition이라는 함수를 실행하여 Bus 객체를 불러옵니다.

busObjectDefinition

두 개의 Bus 객체가 기본 작업 공간에 표시됩니다.

최상위 Bus 객체 검사하기

이름이 TopBus인 최상위 Bus 객체를 검사합니다.

TopBus
TopBus = 
  Bus with properties:

                  Description: ''
                    DataScope: 'Auto'
                   HeaderFile: ''
                    Alignment: -1
    PreserveElementDimensions: 0
                     Elements: [2x1 Simulink.BusElement]

Elements 속성의 값을 기준으로 TopBus에는 두 개의 Simulink.BusElement 객체가 포함되어 있습니다.

TopBus의 요소를 검사합니다.

TopBus.Elements(1)
ans = 
  BusElement with properties:

              Name: 'NestedBus'
        Complexity: 'real'
        Dimensions: 1
          DataType: 'Bus: Sinusoidal'
               Min: []
               Max: []
    DimensionsMode: 'Fixed'
              Unit: ''
       Description: ''

DataType 속성의 값을 기준으로 첫 번째 요소는 Sinusoidal이라는 중첩된 Bus 객체를 나타냅니다.

TopBus.Elements(2)
ans = 
  BusElement with properties:

              Name: 'Step'
        Complexity: 'real'
        Dimensions: 1
          DataType: 'double'
               Min: []
               Max: []
    DimensionsMode: 'Fixed'
              Unit: ''
       Description: ''

NameDataType 속성의 값을 기준으로 두 번째 요소는 Step이라는 신호를 나타냅니다.

중첩된 Bus 객체 검사하기

Sinusoidal이라는 중첩된 Simulink.Bus 객체의 요소를 검사합니다.

Sinusoidal
Sinusoidal = 
  Bus with properties:

                  Description: ''
                    DataScope: 'Auto'
                   HeaderFile: ''
                    Alignment: -1
    PreserveElementDimensions: 0
                     Elements: [2x1 Simulink.BusElement]

Elements 속성의 값을 기준으로 Sinusoidal에는 두 개의 Simulink.BusElement 객체가 포함되어 있습니다.

Sinusoidal의 요소를 검사합니다.

Sinusoidal.Elements(1)
ans = 
  BusElement with properties:

              Name: 'Chirp'
        Complexity: 'real'
        Dimensions: 1
          DataType: 'double'
               Min: []
               Max: []
    DimensionsMode: 'Fixed'
              Unit: ''
       Description: ''

Sinusoidal.Elements(2)
ans = 
  BusElement with properties:

              Name: 'Sine'
        Complexity: 'real'
        Dimensions: 1
          DataType: 'double'
               Min: []
               Max: []
    DimensionsMode: 'Fixed'
              Unit: ''
       Description: ''

NameDataType 속성의 값을 기준으로 요소는 ChirpSine이라는 두 신호를 나타냅니다.

Bus 객체의 리프 요소 검사하기

Bus 객체의 리프 요소를 직접 검사하려면 getNumLeafBusElementsgetLeafBusElements 객체 함수를 사용하십시오.

TopBus의 리프 요소의 수를 가져오려면 getNumLeafBusElements 객체 함수를 사용하십시오.

num = getNumLeafBusElements(TopBus)
num = 3

TopBus의 리프 요소에 대한 정보를 가져오려면 getLeafBusElements 객체 함수를 사용하십시오. 예를 들어 TopBus의 첫 번째 요소를 검사해 보겠습니다.

leaf = getLeafBusElements(TopBus);
leaf(1)
ans = 
  BusElement with properties:

              Name: 'Chirp'
        Complexity: 'real'
        Dimensions: 1
          DataType: 'double'
               Min: []
               Max: []
    DimensionsMode: 'Fixed'
              Unit: ''
       Description: ''

버전 내역

R2006a 이전에 개발됨