주요 콘텐츠

set_param

R2026b

Simulink 파라미터 값 설정

설명

set_param(object,parameter1=value1,...,parameterN=valueN)은 대상 객체에 대해 지정된 파라미터 값을 설정합니다. 예를 들어 이 구문을 사용하여 Sine Wave 블록의 진폭 값을 변경할 수 있습니다. 대상 객체는 핸들 또는 경로로 지정된 모델, 서브시스템, 라이브러리, 블록, 선, 포트 또는 버스 요소 포트 요소가 될 수 있습니다. 핸들과 경로를 가져오는 방법에 대한 자세한 내용은 Get Handles and Paths 항목을 참조하십시오.

대상 객체에 여러 파라미터 값을 설정하려면 파라미터마다 개별적으로 함수를 호출하는 대신 이름-값 인수를 여러 개 사용하여 set_param 함수를 한 번 호출하십시오. 호출을 한 번 하면 파라미터를 한 번만 평가하므로 한 번의 함수 호출로 여러 파라미터를 설정하는 것이 더 빠릅니다. 파라미터 이름이나 값이 유효하지 않으면 함수는 파라미터를 설정하지 않습니다.

시뮬레이션과 프로그래밍 방식으로 상호 작용하려면 set_param 이름-값 인수와 함께 SimulationCommand 함수를 사용하십시오. 자세한 내용은 프로그래밍 방식으로 시뮬레이션 실행하기 페이지의 시뮬레이션 명령을 통해 시뮬레이션과 상호 작용하기 섹션을 참조하십시오.

대부분의 파라미터의 경우 지정된 값이 현재 값과 다른지 여부와 관계없이 set_param을 실행하는 것이 값을 비교한 후 값이 다를 때만 함수를 실행하는 것보다 빠릅니다.

set_param 함수를 사용하여 파라미터 값을 변경하면 파라미터가 모드만 변경하더라도 모델에 미저장 변경 사항이 생깁니다. 예를 들어 LabelModeActiveChoice 파라미터의 값을 설정하여 Variant 제어 모드를 변경하면 모델에 미저장 변경 사항이 생깁니다.

예제

예제

모두 축소

mySubsystem이라는 Subsystem 블록을 포함하며 이름이 myModel인 모델을 불러왔다고 가정하겠습니다. 서브시스템에는 myBlock이라는 Gain 블록이 있습니다. 이득 값을 5로 설정합니다.

값을 설정하려면 다음 3개의 입력이 필요합니다.

  • 파라미터 값을 설정하려는 블록의 핸들 또는 경로

    핸들과 경로를 가져오는 방법에 대한 자세한 내용은 Get Handles and Paths 항목을 참조하십시오.

  • 값을 설정하려는 파라미터의 프로그래밍 방식 이름

    파라미터 이름을 가져오는 방법에 대한 자세한 내용은 Programmatically Specify Block Parameters and Properties 항목을 참조하십시오.

  • 새 값

이 예제에서는 블록 경로를 가져오기에 충분한 정보를 갖고 있습니다. 블록 경로는 모델의 루트에서 해당 블록까지 모델 계층 구조를 따라가는 경로로, 계층 구조의 각 단계는 슬래시로 구분됩니다. 블록 경로를 변수에 저장합니다.

blockPath = "myModel/mySubsystem/myBlock";

값을 설정하려는 파라미터의 프로그래밍 방식 이름을 가져옵니다. 이를 위한 한 가지 방법은 해당 블록의 문서를 확인하는 것입니다. 블록의 문서 페이지의 파라미터 섹션에서 해당 파라미터를 찾습니다. 그런 다음 프로그래밍 방식의 사용법 섹션에서 프로그래밍 방식 이름을 확인합니다.

이 예제의 경우 Gain 페이지에서 파라미터 이름을 확인하십시오. 이득 값을 저장하는 파라미터의 프로그래밍 방식 이름은 Gain입니다.

이 파라미터 문서의 프로그래밍 방식의 사용법 섹션에서 허용 가능한 값 유형을 확인합니다. 이 경우 새 값은 string형이거나 문자형 벡터로 표현되어야 합니다.

파라미터 값을 설정합니다.

gainValue = get_param(blockPath,Gain="5");

블록에 대해 더 많은 연산을 실행하고자 하는 경우 블록 경로 대신 블록 핸들을 사용해 보십시오. 블록 경로에서 핸들을 가져오려면 다음 명령을 사용하십시오.

h = getSimulinkBlockHandle(blockPath);

핸들을 사용하여 파라미터 값을 설정합니다.

gainValue = set_param(h,Gain="5");

수백 개의 블록을 포함하는 복잡한 계층 구조의 모델을 불러왔다고 가정하겠습니다. 모델의 핸들은 변수 h에 저장되어 있습니다. 이름에 핵심 문구 Low-Pass Filter가 포함된 모든 Transfer Fcn 블록의 전달 함수 분자를 1로 설정합니다.

값을 설정하려면 다음 3개의 입력이 필요합니다.

  • 파라미터 값을 설정하려는 블록의 핸들 또는 경로

    핸들과 경로를 가져오는 방법에 대한 자세한 내용은 Get Handles and Paths 항목을 참조하십시오.

  • 값을 설정하려는 파라미터의 프로그래밍 방식 이름

    파라미터 이름을 가져오는 방법에 대한 자세한 내용은 Programmatically Specify Block Parameters and Properties 항목을 참조하십시오.

  • 새 값

이름에 핵심 문구 Low-Pass Filter가 포함된 Transfer Fcn 블록의 경로를 가져옵니다. find_system 함수를 사용합니다.

blockPaths = find_system(h,Regexp="on",CaseSensitive="on",Type="Block",BlockType="TransferFcn",Name=".*Low-Pass Filter.*")

값을 설정하려는 파라미터의 프로그래밍 방식 이름을 가져옵니다. 이를 위한 한 가지 방법은 해당 블록의 문서를 확인하는 것입니다. 블록의 문서 페이지의 파라미터 섹션에서 해당 파라미터를 찾습니다. 그런 다음 프로그래밍 방식의 사용법 섹션에서 프로그래밍 방식 이름을 확인합니다.

이 예제의 경우 Transfer Fcn 페이지에서 파라미터 이름을 확인하십시오. 전달 함수의 분자 계수를 저장하는 파라미터의 프로그래밍 방식 이름은 Numerator입니다.

이 파라미터 문서의 프로그래밍 방식의 사용법 섹션에서 허용 가능한 값 유형을 확인합니다. 이 경우 새 값은 string형이거나 문자형 벡터로 표현되어야 합니다.

전달 함수 분자를 설정합니다.

set_param(blockPaths,Numerator="1");

myModel이라는 모델을 불러왔다고 가정하겠습니다. 모델의 솔버를 ode15s로 설정하고 중지 시간을 3000초로 설정합니다.

값을 설정하려면 다음 3개의 입력이 필요합니다.

  • 파라미터 값을 설정하려는 모델의 핸들 또는 이름

    핸들과 경로를 가져오는 방법에 대한 자세한 내용은 Get Handles and Paths 항목을 참조하십시오.

  • 값을 설정하려는 파라미터의 프로그래밍 방식 이름

    파라미터 이름을 가져오는 방법에 대한 자세한 내용은 Programmatically Specify Block Parameters and Properties 항목을 참조하십시오.

  • 새 값

이 예제에서는 모델 이름과 새 값을 이미 가지고 있습니다.

설정하려는 파라미터의 프로그래밍 방식 이름을 가져옵니다. 이렇게 하는 한 가지 방법은 해당 문서를 확인하는 것입니다. 모델을 위한 모델 구성 파라미터 설정하기 페이지를 엽니다. 구성 창 섹션으로 이동합니다. 구성 창 섹션에서, 관심 있는 파라미터를 설정할 수 있는 구성 파라미터 대화 상자의 창에 대한 문서 페이지 링크를 클릭합니다. 페이지가 열리면 관심 있는 파라미터에 대한 문서 페이지 링크를 클릭합니다. 그런 다음 프로그래밍 방식의 사용법 섹션에서 프로그래밍 방식 이름을 확인합니다.

이 예제에서는 솔버 파라미터와 중지 시간 파라미터를 찾고 있습니다. 모델의 솔버 및 중지 시간은 구성 파라미터 대화 상자의 솔버 창에서 설정할 수 있습니다. 문서의 구성 창 섹션에서 솔버 창 링크를 클릭합니다. 페이지가 열리면 솔버 및 중지 시간 링크를 클릭하고 각각의 프로그래밍 방식의 사용법 섹션을 확인합니다. 파라미터의 프로그래밍 방식 이름은 Solver와 StopTime입니다.

이 파라미터 문서의 프로그래밍 방식의 사용법 섹션에서 허용 가능한 값 유형을 확인합니다. 이 경우 두 새 값은 string형이거나 문자형 벡터로 표현되어야 합니다.

솔버와 중지 시간을 설정합니다.

set_param("myModel",Solver="ode15s",StopTime="3000")

입력 인수

모두 축소

쿼리할 대상 객체나 루트의 핸들, 이름 또는 경로. 대상 객체를 지정할 수 있는 방법은 대상 객체 유형마다 다릅니다.

  • 모델 — 모델 이름 또는 핸들.

  • 서브시스템 — 서브시스템 이름 또는 핸들.

  • 라이브러리 — 라이브러리 이름 또는 핸들.

  • 블록 — 블록 경로 또는 핸들.

  • 선 — 선 핸들.

  • 포트 — 포트 핸들.

  • 포트 요소 — 모델 이름 또는 서브시스템 블록 경로, 슬래시, 포트 이름 또는 버스 요소 경로로 구성된 경로입니다. 버스 요소 포트의 경우, 버스 요소 경로는 최상위 버스에서 타깃 요소까지의 계층 구조를 제공하며, 계층 구조의 각 이름을 점으로 구분합니다.

핸들과 경로를 가져오는 방법에 대한 자세한 내용은 Get Handles and Paths 항목을 참조하십시오. 핸들의 형식을 숫자형 스칼라 또는 숫자형 벡터로 지정합니다. 이름 및 경로의 형식을 string형, string형 배열, 문자형 벡터 또는 문자형 벡터로 구성된 셀형 배열로 지정합니다. 여러 객체에 공통 파라미터를 지정하려면 문자형 벡터로 구성된 셀형 배열, string형 배열 또는 핸들로 구성된 배열을 사용하십시오. 지정된 모든 객체에는 지정된 파라미터가 있어야 합니다.

예: "myModel/mySubsystem/myBlock"

팁

  • 동일한 블록에 get_param을 여러 번 호출하는 경우 숫자 핸들을 사용하여 블록을 지정합니다. 이 방법은 get_param에 전체 블록 경로를 사용하는 것보다 더 효율적입니다.

  • 핸들 값을 출력할 경우 MATLAB® 명령 창에 숫자가 표시됩니다. 명령 창에 모든 숫자가 표시되지는 않으며 핸들이 Simulink® 세션 전체에서 유지되지 않으므로, 표시된 숫자를 사용하려고 하지 마십시오. 대신, 변수에 핸들 값을 저장하고 그 변수를 사용하여 대상 객체를 지정하십시오.

데이터형: double | string | character vector

파라미터, 속성 또는 특성의 이름으로, string형 또는 문자형 벡터로 지정됩니다. 일부 이름은 대/소문자를 구분합니다.

파라미터, 속성 또는 특성에 관한 자세한 내용은 해당하는 문서 페이지에서 프로그래밍 방식의 사용법 내용을 참조하십시오. 예를 들면 다음과 같습니다.

대상 객체의 모든 파라미터를 가져오려면 'ObjectParameters' 옵션과 함께 get_param 함수를 사용하십시오.

예: "SolverName"

예: "SimulationCommand"

예: "Position"

예: "NameLocation"

데이터형: string | character vector

파라미터 값으로, 파라미터 유형에서 결정하는 형식으로 지정됩니다. 일부 파라미터 값은 대/소문자를 구분합니다. 값은 string형 또는 문자형 벡터인 경우가 많지만, 숫자형 스칼라, 배열 또는 다른 유형일 수도 있습니다.

대다수의 블록 파라미터의 값이 string형 또는 문자형 벡터로 지정됩니다. 예외적으로 Position은 벡터로 지정되고 UserData는 임의의 데이터형으로 지정됩니다.

제한 사항

  • matlab -nodisplay를 사용하여 세션을 시작하는 경우 set_param을 사용하여 시뮬레이션을 실행할 수 없습니다. -nodisplay 모델은 set_param을 사용하는 시뮬레이션을 지원하지 않습니다. 대신 sim 함수를 사용하십시오.

  • set_param 함수를 사용하여 블록 또는 신호의 이름을 바꾸는 경우 빈 이름, 새 줄 문자만 포함하는 이름, /로 시작하거나 끝나는 이름 등은 유효하지 않습니다.

버전 내역

R2006a 이전에 개발됨