Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

Simulink.Bus.createObject

블록 또는 MATLAB 구조체로부터 Simulink.Bus 객체 만들기

설명

예제

busInfo = Simulink.Bus.createObject(model,blocks)는 지정된 블록에 대해 Simulink.Bus 객체를 만들고 생성된 Bus 객체에 대한 정보를 반환합니다.

버스 계층 구조에 대응하는 블록을 지정하는 경우 이 함수는 계층 구조에 있는 각각의 버스에 대해서도 Bus 객체를 만듭니다.

모델이 데이터 사전을 사용하는 경우 Bus 객체는 데이터 사전에 생성됩니다. 데이터 사전을 사용하지 않는 경우 기본 작업 공간에 생성됩니다.

예제

busInfo = Simulink.Bus.createObject(struct)는 MATLAB® timeseries, MATLAB timetablematlab.io.datastore.SimulationDatastore 객체를 포함하는 구조체나 숫자형 구조체로부터 Bus 객체를 만듭니다.

계층 구조를 사용하여 구조체를 지정하면 이 함수는 계층 구조에 있는 각각의 구조체에 대해 Bus 객체를 만듭니다.

Bus 객체는 기본 작업 공간에 생성됩니다.

예제

busInfo = Simulink.Bus.createObject(___,file)은 셀형 배열로 구성된 셀형 배열에 객체 속성을 정의하는 함수에 Bus 객체를 저장한 다음 Simulink.Bus.cellToObject를 호출하여 Bus 객체를 만듭니다.

뒤에 file 인수가 나오는 이전 구문에 입력 인수 조합을 지정합니다.

예제

busInfo = Simulink.Bus.createObject(___,file,format)Bus 객체를 지정된 형식으로 함수에 저장합니다. 함수는 셀형 배열 또는 배열을 사용하여 객체 속성을 정의할 수 있습니다.

busInfo = Simulink.Bus.createObject(struct,file,format,scope)scope로 지정된 데이터 사전에 Bus 객체를 만듭니다.

예제

모두 축소

예제 모델을 엽니다.

open_system('BusObjectCreationModel')

Bus Creator 블록으로 만든 버스에 대응되는 Bus 객체를 만듭니다.

busInfo = Simulink.Bus.createObject('BusObjectCreationModel',...
    'BusObjectCreationModel/Bus Creator');

두 개의 Bus Creator 블록으로부터 Bus 객체를 만들고 함수에 Bus 객체 정의를 저장합니다.

예제 모델을 엽니다.

open_system('BusObjectCreationModel');

getSimulinkBlockHandle 함수를 사용하여 Bus Creator 블록의 블록 핸들을 변수에 할당합니다.

bc = getSimulinkBlockHandle('BusObjectCreationModel/Bus Creator');

또는 모델에서 Bus Creator 블록을 선택한 다음 gcbh 함수를 사용하여 이 블록 핸들을 가져올 수도 있습니다.

Bus Creator1 블록의 블록 핸들을 변수에 할당합니다.

bc1 = getSimulinkBlockHandle('BusObjectCreationModel/Bus Creator1');

Bus 객체를 만들려면 벡터에 블록 핸들 변수를 지정하십시오. Bus 객체 정의를 저장하려면 파일 이름도 지정하십시오.

busInfo = Simulink.Bus.createObject('BusObjectCreationModel',...
    [bc bc1], 'BusObjectFunction');

이러한 Bus Creator 블록은 버스 계층 구조를 만들기 때문에, Bus Creator1 블록만 지정하면 작업 공간과 함수에 두 개의 Bus 객체가 생성됩니다.

BusObjectFunction을 다음 명령으로 만든 함수와 비교합니다.

topBusInfo = Simulink.Bus.createObject('BusObjectCreationModel',...
    bc1, 'BusObjectFunctionFromHierarchy');

보다 가독성 높은 형식으로 된 함수를 사용하려면 함수 형식을 object로 지정하십시오.

topBusInfo1 = Simulink.Bus.createObject('BusObjectCreationModel',...
    bc1, 'BusObjectFunctionFormatted','object');

Constant 블록을 사용하여 비가상 버스를 만들 때 상수 값을 위한 MATLAB 구조체를 지정하고 Simulink.Bus 객체를 출력 데이터형으로 지정해야 합니다.

이 예제에서는 다른 구조체를 포함하는 구조체를 만듭니다.

bus_struct.A.A1 = 0;
bus_struct.A.A2 = [0 + 0i;0 + 0i;0 + 0i;0 + 0i;0 + 0i];
bus_struct.B = 5;
bus_struct.C.C1 = 0;
bus_struct.C.C2.A1 = 0;
bus_struct.C.C2.A2 = [0 + 0i;0 + 0i;0 + 0i;0 + 0i;0 + 0i];

이 구조체에 대응하는 Bus 객체를 만듭니다.

busInfo = Simulink.Bus.createObject(bus_struct);

이 함수는 네 개의 Bus 객체를 만듭니다. slBus1이라는 Bus 객체는 최상위 구조체에 대응하고 디폴트 Bus 객체 이름을 사용합니다. A, C, C2라는 이름의 Bus 객체는 중첩된 구조체에 대응됩니다.

Bus 객체를 보려면 유형 편집기를 엽니다.

typeeditor

입력 인수

모두 축소

모델 이름 또는 핸들로, 문자형 벡터로 지정됩니다.

사용자가 지정한 모델이 성공적으로 컴파일되어야 합니다.

버스와 연결된 블록으로, 문자형 벡터, 블록 경로 이름으로 구성된 셀형 배열 또는 블록 핸들로 구성된 벡터로 지정됩니다. 블록이 하나인 경우 블록의 전체 경로 이름을 지정하십시오. 블록이 여러 개인 경우 블록 경로 이름으로 구성된 셀형 배열을 지정하거나 블록 핸들로 구성된 벡터를 지정하십시오.

이 함수는 다음과 같은 블록으로부터 Bus 객체를 만들 수 있습니다.

  • Bus Creator 블록

  • 서브시스템 Inport 블록

  • 서브시스템 Outport 블록

버스 계층 구조와 연결된 블록을 지정하는 경우 함수는 계층 구조에 있는 모든 중첩된 버스에 대해서도 Bus 객체를 만듭니다.

객체로 구성된 구조체 또는 숫자형 구조체로, MATLAB timeseries, MATLAB timetablematlab.io.datastore.SimulationDatastore 객체를 포함하는 구조체 또는 숫자형 구조체로 지정됩니다.

생성할 함수의 이름으로, 문자형 벡터로 지정됩니다. 파일 이름은 고유해야 합니다.

생성할 함수의 형식으로, 'cell' 또는 'object'로 지정됩니다. 'cell' 형식은 보다 간결한 반면 'object' 형식은 가독성이 더 높습니다.

'cell' 형식은 Bus 객체 정의를 셀형 배열로 구성된 셀형 배열에 저장하고 Simulink.Bus.cellToObject를 호출하여 Bus 객체를 만듭니다. 각각의 종속 셀형 배열은 Bus 객체를 나타내며 다음과 같은 속성을 포함합니다.

  1. 버스 이름

  2. 헤더 파일

  3. 설명

  4. 데이터 범위

  5. 정렬

  6. 요소 차원 유지

  7. 요소

요소 필드는 Bus 객체가 참조하는 각 Simulink.BusElement 객체에 대한 다음 정보를 포함하는 셀형 배열입니다.

  1. 요소 이름

  2. 차원

  3. 데이터형

  4. 샘플 시간 — 샘플 시간이 상속되지 않은 경우 셀형 배열이 이 필드를 포함합니다. 상속되지 않은 샘플 시간은 모델 컴파일 중에 오류를 일으킵니다. 자세한 내용은 Simulink.BusElement 객체는 더 이상 SampleTime 속성을 지원하지 않음 항목을 참조하십시오.

  5. 실수/복소수 여부

  6. 차원 모드

  7. 최솟값

  8. 최댓값

  9. 단위

  10. 설명

'object' 형식은 Bus 객체 정의를 배열로 저장합니다. 함수는 배열 인덱싱을 사용하여 배열의 요소에 액세스하고 점 표기법을 사용하여 속성값을 할당합니다.

데이터 사전으로, Simulink.data.Dictionary 객체로 지정됩니다. 이 인수를 사용하기 전에, 예컨대 Simulink.data.dictionary.create 함수 또는 Simulink.data.dictionary.open 함수를 사용하여 Simulink.data.Dictionary 객체로 사전을 표현하십시오.

scope가 비어 있으면 함수는 MATLAB 기본 작업 공간을 Bus 객체의 소스로 사용합니다.

출력 인수

모두 축소

Bus 객체 정보로, 구조체형 배열로 반환됩니다.

blocks를 지정할 때 busInfo 구조체형 배열의 각 요소는 하나의 블록에 대응하고 다음 필드를 포함합니다.

  • block — 블록의 핸들

  • busName — 블록과 연결된 Bus 객체의 이름

struct를 지정할 때, busInfo 구조체는 다음 필드를 포함합니다.

  • block — 빈 행렬([])

  • busName — 구조체에 대응하는 Bus 객체의 이름

버전 내역

R2006a 이전에 개발됨

모두 확장