주요 콘텐츠

add_block

모델에 블록 추가

설명

h = add_block(source,dest)source로 지정된 블록의 복사본을 dest로 지정된 대상에 추가합니다. 새 블록은 블록 다이어그램에서 소스 블록이 부모 블록 다이어그램에 표시되는 것과 동일한 위치에 추가됩니다.

대상 모델을 불러와야 합니다.

예제

h = add_block(___,Name=Value)는 위에 열거된 구문의 입력 인수 외에 하나 이상의 이름-값 인수를 사용하여 옵션을 지정합니다. 예를 들어 입력에 5를 곱하는 Gain 블록을 추가하려면 Gain"5"로 설정합니다.

예제

예제

모두 축소

다음 입력 인수와 함께 add_block 함수를 사용하여 라이브러리에서 블록을 추가할 수 있습니다.

  • 라이브러리 브라우저 트리 계층 구조의 최상위 수준에서부터 추가하려는 라이브러리 블록까지의 라이브러리 블록 경로(예: "Simulink/Math Operations/Gain")

  • 모델 계층 구조의 최상위 수준에서부터 새 블록을 추가하려는 위치까지의 전체 블록 경로(예: "myModel/mySubsystem/myblock")

두 경로 모두 블록 이름으로 끝나야 합니다.

이 예제에서는 f14 모델의 Controller 서브시스템에 사용자 지정 가능한 원형 계기판을 추가합니다.

예제를 엽니다. 그런 다음, 대상 모델을 불러오거나 엽니다.

open_system("f14")

이 작업을 완료하는 데 필요한 블록의 정확한 이름이나 라이브러리 브라우저 트리에서의 블록의 위치를 모른다고 가정하겠습니다. 라이브러리 블록 경로를 가져오려면 라이브러리 브라우저에서 키워드 검색을 수행하십시오. 라이브러리 브라우저를 엽니다. 검색 상자에 gauge를 입력하고 Enter 키를 누릅니다.

Library Browser tooltip that displays library block path

검색 결과에서 원형 계기판 아이콘 위에 커서를 올려 놓습니다. 툴팁에 라이브러리 블록 경로가 표시됩니다.

Controller 서브시스템에 Circular Gauge 블록을 추가합니다. 블록의 이름을 myGauge로 지정합니다.

  • 라이브러리 블록 경로는 "simulink_hmi_customizable_blocks/Circular Gauge"입니다.

  • 전체 블록 경로는 "f14/Controller/myGauge"입니다.

add_block("simulink_hmi_customizable_blocks/Circular Gauge","f14/Controller/myGauge");

블록을 보려면 f14 모델에서 Controller 서브시스템으로 이동하십시오.

open_system("f14/Controller")

f14 모델에서 vdp 모델로 블록의 복사본을 추가합니다.

대상 모델을 불러오거나 엽니다.

open_system("vdp");

f14 모델에서 vdp 모델로 Actuator Model 블록을 추가합니다.

add_block("f14/Actuator Model","vdp/Actuator Model");

Simulink® 라이브러리에서 모델 vdp로 Scope 블록을 추가합니다. vdp 모델에 이미 Scope라는 이름의 블록이 있으므로 MakeNameUnique 옵션을 사용하여 새 블록에 대한 고유한 이름을 만듭니다.

대상 모델을 불러오거나 엽니다.

open_system("vdp");

Simulink® Sinks 라이브러리에 있는 Scope 블록을 vdp 모델에 추가합니다. MakeNameUnique"on"으로 설정합니다.

add_block("simulink/Sinks/Scope","vdp/Scope",MakeNameUnique="on")

라이브러리에서 모델로 블록을 추가하고 이름-값 인수를 사용하여 파라미터를 설정합니다.

대상 모델을 불러오거나 엽니다.

open_system("vdp");

라이브러리에서 vdp 모델로 Gain 블록을 추가합니다. 그런 다음 Gain 값을 5로 설정합니다.

add_block("simulink/Math Operations/Gain","vdp/Five",Gain="5")

포트에 대한 블록을 추가하는 방법은 목적에 따라 다릅니다. 새 포트 또는 기존 포트에 대한 블록을 추가할 수 있습니다. 또한 입력 포트에 대응하는 블록을 복제할 수도 있습니다.

새 포트에 대한 블록 추가하기

PortBlockCreation이라는 이름의 모델을 만들고 엽니다.

mdl = "PortBlockCreation";
new_system(mdl);
open_system(mdl);

포트 번호로 식별되는 포트를 만들기 위해 In1 블록과 Out1 블록을 추가합니다. 기본적으로 In1 블록이나 Out1 블록을 추가하면 포트가 생성됩니다.

add_block("simulink/Ports & Subsystems/In1",...
    "PortBlockCreation/In1")
add_block("simulink/Ports & Subsystems/Out1",...
    "PortBlockCreation/Out1")

포트 이름으로 식별되는 포트를 만들려면 In Bus Element 블록과 Out Bus Element 블록을 추가합니다. 기본적으로 새 In Bus Element 블록과 새 Out Bus Element 블록은 각각 InBusOutBus라는 이름의 포트에 대응됩니다. 이러한 포트는 포트 번호도 가지고 있습니다. 선택적으로 PortName 블록 파라미터를 사용하여 포트에 대한 사용자 지정 이름을 지정합니다.

add_block("simulink/Ports & Subsystems/In Bus Element",...
    "PortBlockCreation/InBusElement")
add_block("simulink/Ports & Subsystems/Out Bus Element",...
    "PortBlockCreation/OutBusElement")

In Bus Element 블록 또는 Out Bus Element 블록을 추가할 때 포트를 만들려면 CreateNewPort"on"으로 설정합니다.

add_block("simulink/Ports & Subsystems/In Bus Element",...
    "PortBlockCreation/InBusElement1",CreateNewPort="on")
add_block("simulink/Ports & Subsystems/Out Bus Element",...
    "PortBlockCreation/OutBusElement1",CreateNewPort="on")

CreateNewPort"on"으로 설정하지 않으면 동작이 달라집니다.

  • InBusOutBus라는 이름의 포트가 있다고 가정하겠습니다. 추가된 블록은 이들 포트 중 하나에 대응됩니다. 블록을 추가할 때 포트 이름을 지정하면 지정된 포트 이름을 사용하기 위해 InBus 포트 또는 OutBus 포트의 이름이 변경됩니다.

  • 사용자 지정 이름을 가진 포트만 있다고 가정하겠습니다. 추가된 블록은 새 포트에 대응됩니다. 블록을 추가할 때 포트 이름을 지정하면 새 포트에 지정된 포트 이름이 사용됩니다.

새 포트 요소에 대한 블록 추가하기

In Bus Element 블록과 Out Bus Element 블록을 사용하면 하나의 입력 포트에서 여러 요소를 선택하고, 여러 요소를 하나의 출력 포트에 연결할 수 있습니다.

In Bus Element 블록에 요소를 추가하려면 포트에 대응하는 기존 블록을 복사하고 새 요소에 대한 고유한 이름을 지정합니다.

add_block("PortBlockCreation/InBusElement",...
    "PortBlockCreation/InBusElement2",Element="signal2")

Out Bus Element 블록에 요소를 추가하려면 포트에 대응하는 기존 블록을 복사합니다. 선택적으로 고유한 요소 이름을 지정합니다.

add_block("PortBlockCreation/OutBusElement",...
    "PortBlockCreation/OutBusElement2")

입력 포트에 대한 블록 복제하기

블록 다이어그램에 있는 여러 블록은 입력 포트의 동일한 입력을 사용할 수 있습니다. 입력 포트에 대응하는 블록을 복제하면 선 라우팅을 단순화할 수 있습니다.

In1 블록을 복제하기 위해 블록 다이어그램에서 블록을 복사하고 CopyOption"duplicate"로 설정합니다.

add_block("PortBlockCreation/In1",...
    "PortBlockCreation/In1Dup",CopyOption="duplicate")

In Bus Element 블록을 복제하기 위해 해당 블록을 복사합니다.

add_block("PortBlockCreation/InBusElement",...
    "PortBlockCreation/InBusElementDup")

복제 블록은 원래 블록과 동일한 포트 번호를 사용합니다. 이름 기반 포트의 경우 블록은 원래 블록과 동일한 포트의 동일한 요소를 선택합니다.

입력 인수

모두 축소

복사할 블록으로, 블록 경로로 지정됩니다. 블록 경로에 대한 자세한 내용은 Get Handles and Paths 항목을 참조하십시오.

모델에서 블록을 복사하려면 블록 경로를 지정합니다. 새 블록은 파라미터 설정이 동일합니다.

예: add_block("vdp/Mu","mymodel/Mu")

라이브러리에서 블록을 복사하려면 라이브러리 블록 경로를 지정합니다. 라이브러리 블록 경로를 가져오려면 라이브러리 브라우저에서 블록 위에 잠시 멈춥니다. 또는 라이브러리를 열고 블록을 선택한 다음 명령줄에 gcb를 입력합니다. 라이브러리 브라우저에서 라이브러리를 열려면 라이브러리 목록에 있는 라이브러리 이름을 마우스 오른쪽 버튼으로 클릭하고 library_name 라이브러리 열기를 선택합니다.

예: add_block("simulink/Math Operations/Gain","mymodel/Gain")

특정 블록 유형으로 블록을 만들려면 블록 유형을 'built-in/blocktype'으로 지정합니다. 여기서 blocktype은 프로그래밍 방식의 블록 이름입니다. 블록에 대한 BlockType 파라미터 값을 가져오려면 Common Block Properties 항목을 참조하십시오. 'built-in/blocktype'을 사용하여 추가된 블록은 라이브러리 블록과 구성이 다를 수 있습니다.

예: add_block("built-in/Gain","mymodel/Gain")

여러 라이브러리 블록은 SubSystemBlockType으로 가집니다. 소스 블록을 "built-in/SubSystem"으로 지정하면 새 블록은 하나의 입력과 하나의 출력을 갖는 서브시스템을 나타냅니다. 다른 서브시스템과 마스크 처리된 블록의 경우 BlockType 값 대신에 라이브러리 블록 경로를 사용하십시오.

새 블록의 이름과 위치로, 블록 경로로 지정됩니다.

예: add_block("simulink/Math Operations/Gain","f14/Controller/MyNewBlock")

이름-값 인수

모두 축소

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

예: add_block("simulink/Math Operations/Gain","mymodel/Gain",Gain="5")는 입력에 5를 곱하는 Gain 블록을 추가합니다.

add_block 함수의 경우 블록 파라미터와 속성값을 이름-값 인수로 지정합니다. 블록 파라미터와 속성에 대한 자세한 내용은 Programmatically Specify Block Parameters and Properties 항목을 참조하십시오.

고유한 블록 이름으로, "off" 또는 "on"으로 지정됩니다.

추가된 블록에 대한 고유한 블록 이름을 만들려면 MakeNameUnique"on"으로 설정합니다. 지정된 블록 이름이 있는 경우, 블록 이름의 끝에 숫자가 추가되거나 블록 이름의 끝에 있는 숫자가 증가하게 됩니다.

예: add_block("simulink/Math Operations/Gain","mymodel/Gain",MakeNameUnique="on")

복사 옵션으로, "", "nolink" 또는 "duplicate"로 지정됩니다.

  • "nolink" — 새 블록이 소스 블록이 포함된 사용자 지정 라이브러리에 연결되지 않습니다.

  • "duplicate" — 새 블록은 입력 포트 블록을 복제하며 소스 블록과 동일한 포트 번호를 갖습니다. 포트를 생성하거나 선을 추가하지 않고 입력 포트에서 신호를 분기하려면 입력 포트에 대응하는 블록을 복제합니다. 자세한 내용은 Create Duplicate Inport Blocks 항목을 참조하십시오.

예: add_block("myLibrary/CustomBlock","myModel/CustomBlock",CopyOption="nolink")

예: add_block("myModel/mySubsystem/Inport","myModel/mySubsystem/InportDup",CopyOption="duplicate")

새 버스 요소 포트로, "off" 또는 "on"으로 지정됩니다. 소스 블록은 In Bus Element 블록이거나 Out Bus Element 블록이어야 합니다.

새 포트에 대한 블록을 추가하려면 CreateNewPort"on"으로 설정합니다. 선택적으로 PortName 파라미터를 사용하여 새 포트의 이름을 지정합니다. 기본적으로 새 포트의 이름은 복사된 블록의 포트 이름과 숫자의 조합입니다. 복사된 블록의 포트 이름이 숫자로 끝나는 경우, 해당 숫자는 고유성을 위해 증분됩니다.

CreateNewPort"off"로 설정해도 포트 생성이 막히는 것은 아닙니다. 예를 들어, 모델에 첫 번째 In Bus Element 블록 또는 Out Bus Element 블록을 추가하면 포트가 생성됩니다. 블록을 추가하고 PortName을 사용하여 고유한 포트 이름을 지정해도 포트를 생성할 수 있습니다.

CreateNewPort"off"로 설정하면 추가된 블록이 기존 포트에 대응되도록 할 수 있습니다. 예를 들어, 모델에서 In Bus Element 블록 또는 Out Bus Element 블록을 복사하는 경우 Element 파라미터로 요소 이름을 지정하여 새 블록이 포트의 새 요소를 나타내도록 할 수 있습니다.

프로그래밍 방식으로 버스 요소 포트를 작성하는 방법에 대한 자세한 내용은 Programmatically Create Bus Element Ports 항목을 참조하십시오.

예: add_block("simulink/Ports & Subsystems/In Bus Element","myModel/InBusElement1",CreateNewPort="on")

출력 인수

모두 축소

새 블록으로, 핸들로 반환됩니다.

블록 핸들에 대한 자세한 내용은 Get Handles and Paths 항목을 참조하십시오.

블록이 겹치지 않게 하려면 Position 블록 속성을 사용하여 새 블록의 위치를 지정합니다. 자세한 내용은 Programmatically Specify Block Parameters and Properties 항목을 참조하십시오.

버전 내역

R2006a 이전에 개발됨