Main Content

Simulink.Bus.createObject

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

설명

예제

busInfo = Simulink.Bus.createObject(mdl,busSource)mdl로 지정된 모델에서 busSource로 지정된 버스에 대한 Simulink.Bus 객체를 만듭니다. 이 함수는 생성된 객체에 대한 정보를 반환합니다.

모델이 데이터 사전을 사용하는 경우 이 함수는 데이터 사전에 객체를 만듭니다. 그렇지 않을 경우 이 함수는 기본 작업 공간에 객체를 만듭니다.

예제

busInfo = Simulink.Bus.createObject(S)S로 지정된 구조체로부터 Simulink.Bus 객체를 만듭니다. 이 구조체는 MATLAB® timeseries, MATLAB timetablematlab.io.datastore.SimulationDatastore 객체를 포함할 수 있습니다. 이 구조체는 숫자형 구조체일 수 있습니다.

이 함수는 기본 작업 공간에 객체를 만듭니다.

예제

busInfo = Simulink.Bus.createObject(___,file)Simulink.Bus 객체 정의를 함수에 저장합니다. 함수 이름은 file로 지정됩니다.

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

예제

busInfo = Simulink.Bus.createObject(___,file,fileFormat)fileFormat"object"인 경우 배열을 사용하여 Simulink.Bus 객체 정의를 저장합니다. "object" 형식을 사용하면 함수를 더 쉽게 읽을 수 있습니다. fileFormat의 디폴트 값은 "cell"로서 셀형 배열을 사용하며, 더 간결합니다.

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

예제

모두 축소

여러 수준의 계층 구조를 갖는 버스를 만드는 Bus Creator 블록으로부터 Simulink.Bus 객체를 만듭니다.

BusHierarchy라는 예제 모델을 엽니다.

mdl = "BusHierarchy";
open_system(mdl)

BusHierarchy model with two Bus Creator blocks

이름이 Bus Creator1인 Bus Creator 블록으로부터 Simulink.Bus 객체를 만듭니다. 이 블록은 소스 블록 및 다른 Bus Creator 블록으로부터 입력을 받습니다.

block = "BusHierarchy/Bus Creator1";
busInfo = Simulink.Bus.createObject(mdl,block);

이 명령은 기본 작업 공간에 이름이 각각 TopBusNestedBusSimulink.Bus 객체를 만듭니다. 각 Bus 객체는 버스 계층 구조에 있는 하나의 버스를 나타냅니다.

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

typeeditor

TopBus and NestedBus in the Type Editor

Out Bus Element 블록이 나타내는 버스 요소 포트로부터 Simulink.Bus 객체를 만듭니다.

BusOutput이라는 예제 모델을 엽니다.

mdl = "BusOutput";
open_system(mdl)

BusOutput model

출력 버스는 여러 수준의 계층 구조를 가집니다. 최상위 버스에는 중첩된 버스가 포함되어 있습니다.

이름이 OutBus인 출력 포트에서 버스 계층 구조를 정의하는 Simulink.Bus 객체를 만듭니다.

port = "BusOutput/OutBus";
busInfo = Simulink.Bus.createObject(mdl,port);

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

typeeditor

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

BusHierarchy라는 예제 모델을 엽니다.

mdl = "BusHierarchy";
open_system(mdl);

BusHierarchy model with two Bus Creator blocks

이름이 Bus Creator1인 Bus Creator 블록으로부터 Simulink.Bus 객체를 만듭니다. 이 블록은 소스 블록 및 다른 Bus Creator 블록으로부터 입력을 받습니다. Simulink.Bus 객체 정의를 함수에 저장하려면 파일 이름도 지정하십시오.

block = "BusHierarchy/Bus Creator1";
file = "BusObjectFunction";
busInfo = Simulink.Bus.createObject(mdl,block,file);

이 명령은 기본 작업 공간에 이름이 각각 TopBusNestedBusSimulink.Bus 객체를 만들고 현재 폴더에 이름이 BusObjectFunction인 파일을 만듭니다.

파일을 열어 파일 내용을 살펴봅니다. 기본적으로 이 파일은 "cell" 형식을 사용합니다. 예를 들어, Chirp 요소는 셀형 배열로 정의됩니다.

{'Chirp', 1, 'double', 'real', 'Sample', 'Fixed', [], [], '', ''};

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

file1 = "BusObjectFunctionFormatted";
busInfo1 = Simulink.Bus.createObject(mdl,block,file1,"object");

파일을 열어 파일 내용을 살펴봅니다. "object" 형식에서 Chirp 요소는 점 표기법을 사용하여 속성값을 할당하는 배열로 정의됩니다.

elems(1) = Simulink.BusElement;
elems(1).Name = 'Chirp';
elems(1).Dimensions = 1;
elems(1).DimensionsMode = 'Fixed';
elems(1).DataType = 'double';
elems(1).Complexity = 'real';
elems(1).Min = [];
elems(1).Max = [];
elems(1).DocUnits = '';
elems(1).Description = '';

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];

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

busInfo = Simulink.Bus.createObject(bus_struct);

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

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

typeeditor

Simulink.Bus objects named slBus1, A, C, and C2 in the Type Editor

입력 인수

모두 축소

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

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

버스 정의의 소스로, 문자형 벡터, string형 스칼라, 블록 경로로 구성된 셀형 배열 또는 블록 핸들로 구성된 벡터로 지정됩니다.

이 함수는 다음 소스의 버스로부터 Simulink.Bus 객체를 만들 수 있습니다.

  • Bus Creator 블록

  • In Bus Element 블록이 나타내는 입력 포트

  • Out Bus Element 블록이 나타내는 출력 포트

  • 서브시스템 Inport 블록

  • 서브시스템 Outport 블록

버스에 계층 구조가 있는 경우 함수는 버스 계층 구조의 중첩된 버스에 대한 Simulink.Bus 객체를 만듭니다.

Bus Creator, Inport 또는 Outport 블록에서 버스를 지정하려면 대응되는 블록 경로나 핸들을 사용하십시오.

예: Simulink.Bus.createObject(mdl,"BusHierarchy/Bus Creator")는 블록 경로를 통해 하나의 버스 소스를 지정합니다.

예: Simulink.Bus.createObject(mdl,{'BusHierarchy/Bus Creator','BusHierarchy/Bus Creator1'})은 블록 경로로 구성된 셀형 배열을 통해 여러 버스 소스를 지정합니다.

예: Simulink.Bus.createObject(mdl,[bc bc1])은 블록 핸들로 구성된 벡터를 통해 여러 버스 소스를 지정합니다.

In Bus Element 또는 Out Bus Element 블록이 나타내는 포트에서 버스를 지정하려면 해당 포트 또는 요소에 대한 경로를 사용하십시오. 포트의 경우 경로는 모델 이름과 포트 이름으로 구성됩니다. 포트 요소의 경우 경로는 모델 이름, 포트 이름 및 하나 이상의 요소 이름으로 구성됩니다.

예: Simulink.Bus.createObject(mdl,"BusOutput/OutBus")는 루트 수준 버스 요소 포트의 최상위 버스를 지정합니다.

예: Simulink.Bus.createObject(mdl,"BusOutput/OutBus.NestedBus")는 루트 수준 버스 요소 포트의 중첩된 버스를 지정합니다.

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

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

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

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

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

  1. 버스 이름

  2. 헤더 파일

  3. 설명

  4. 데이터 범위

  5. 정렬

  6. 요소 차원 유지

  7. 요소

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

  1. 요소 이름

  2. 차원

  3. 데이터형 — 이 필드가 Simulink.Bus 객체를 지정하는 경우 사양에는 Bus: 접두사가 포함되지 않습니다. Simulink.BusElement 객체의 데이터형을 Simulink.Bus 객체로 설정하는 경우 이 접두사는 선택 사항입니다.

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

  5. 실수/복소수 여부

  6. 샘플링 모드

  7. 차원 모드

  8. 최솟값

  9. 최댓값

  10. 단위

  11. 설명

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

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

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

출력 인수

모두 축소

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

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

  • block — 블록의 핸들

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

버스 요소 포트에서 구조체나 버스를 지정할 때 busInfo 구조체는 다음 필드를 포함합니다.

  • block — 빈 행렬([])

  • busName — 구조체 또는 버스에 대응하는 Simulink.Bus 객체의 이름

버전 내역

R2006a 이전에 개발됨

모두 확장