Main Content

set_param

Simulink 파라미터 값 설정

설명

예제

set_param(object,parameter1,value1,...,parameterN,valueN)object로 지정된 대상 객체에 대해 지정된 Simulink® 파라미터 parameter에 특정 값 value를 설정합니다. 대상 객체는 모델, 서브시스템, 라이브러리, 블록, 선, 포트 또는 버스 요소 포트 요소가 될 수 있습니다.

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

예제

모두 축소

다음 입력 인수와 함께 set_param 함수를 사용하여 블록 파라미터의 값을 설정할 수 있습니다.

  • 블록 핸들, 또는 블록 이름을 포함한 전체 블록 경로(예: 'myModel/mySubsystem/myblock')

  • 파라미터 이름

  • 파라미터에 할당하려는 새 값

블록 경로를 가져오는 방법에 대한 자세한 내용은 블록 경로 및 이름 가져오기 항목을 참조하십시오.

파라미터 이름을 가져오는 방법에 대한 자세한 내용은 블록 파라미터 이름 가져오기 항목을 참조하십시오.

이 예제에서는 Alpha-sensor Low-pass Filter라는 Transfer Function 블록으로 지정된 전달 함수의 계수를 설정합니다.

  • 이 블록은 slexAircraftExample 모델의 Controller 서브시스템에 있습니다.

  • 전달 함수 분자의 계수는 Numerator 파라미터에 저장됩니다. 전달 함수 분모의 계수는 Denominator 파라미터에 저장됩니다.

  • 분자에 할당하려는 새 값은 1.2입니다. 분모에 할당하려는 새 값은 [0.8*Tal,1]입니다. 여기서 Tal은 변수입니다.

예제를 엽니다. 그런 다음 slexAircraftExample 모델을 불러옵니다.

mdl = 'slexAircraftExample';
load_system(mdl)

전달 함수 계수를 설정합니다.

path = [mdl,'/Controller/Alpha-sensor Low-pass Filter'];
set_param(path,'Numerator','1.2','Denominator','[0.8*Tal,1]');

Numerator 파라미터와 Denominator 파라미터의 값을 확인하려면 get_param 함수를 사용합니다.

num = get_param(path,'Numerator')
num = 
'1.2'
denom = get_param(path,'Denominator')
denom = 
'[0.8*Tal,1]'

블록 경로가 길고 여러 파라미터를 설정하려는 경우 블록 핸들을 사용해 보십시오.

다음 입력 인수와 함께 set_param 함수를 사용하여 블록 파라미터의 값을 설정할 수 있습니다.

  • 블록 핸들, 또는 블록 이름을 포함한 전체 블록 경로(예: 'myModel/mySubsystem/myblock')

  • 파라미터 이름

  • 파라미터에 할당하려는 새 값

블록 경로를 가져오는 방법에 대한 자세한 내용은 블록 경로 및 이름 가져오기 항목을 참조하십시오.

파라미터 이름을 가져오는 방법에 대한 자세한 내용은 블록 파라미터 이름 가져오기 항목을 참조하십시오.

이 예제에서는 Alpha-sensor Low-pass Filter라는 Transfer Function 블록으로 지정된 전달 함수의 계수를 설정합니다.

  • 이 블록은 slexAircraftExample 모델의 Controller 서브시스템에 있습니다.

  • 전달 함수 분자의 계수는 Numerator 파라미터에 저장됩니다. 전달 함수 분모의 계수는 Denominator 파라미터에 저장됩니다.

  • 분자에 할당하려는 새 값은 1.2입니다. 분모에 할당하려는 새 값은 [0.8*Tal,1]입니다. 여기서 Tal은 변수입니다.

예제를 엽니다. 그런 다음 getSimulinkBlockHandle 함수를 사용하여 블록 핸들을 가져옵니다. 블록 핸들을 가져오면서 해당 모델을 동시에 불러오려면 getSimulinkBlockHandle 함수의 두 번째 인수를 true로 지정하십시오.

path = 'slexAircraftExample/Controller/Alpha-sensor Low-pass Filter';
h = getSimulinkBlockHandle(path,true)
h = 464.0007

파라미터 값을 설정하기 위해 핸들을 사용하여 블록을 지정합니다. 핸들에는 double형이 포함됩니다. 사용자가 MATLAB®이 표시하는 것보다 더 많은 자릿수를 지정해야만 할 수도 있으므로 핸들의 숫자를 직접 입력하려고 하지 마십시오. 대신, 변수에 핸들을 할당하고 변수 이름을 사용하여 블록을 지정하십시오.

set_param(h,'Numerator','1.2','Denominator','[0.8*Tal,1]');

다음 입력 인수와 함께 set_param 함수를 사용하여 모델 파라미터의 값을 설정할 수 있습니다.

  • 모델 이름

  • 파라미터 이름

  • 파라미터에 할당하려는 새 값

모델 파라미터 이름을 가져오는 방법에 대한 자세한 내용은 모델 파라미터 이름 가져오기 항목을 참조하십시오.

예제를 엽니다. 그런 다음 f14 모델을 불러옵니다.

load_system('f14')

f14 모델의 솔버를 ode15s로 설정하고 중지 시간을 3000초로 설정합니다.

set_param('f14','Solver','ode15s','StopTime','3000')

Solver 파라미터와 StopTime 파라미터의 값을 확인하려면 get_param 함수를 사용합니다.

solver = get_param('f14','Solver')
solver = 
'ode15s'
stoptime = get_param('f14','StopTime')
stoptime = 
'3000'

예제를 엽니다. 그런 다음 f14 모델을 엽니다.

open_system('f14')

Pilot이라는 Signal Generator 블록의 핸들을 가져옵니다.

h = getSimulinkBlockHandle('f14/Pilot');

블록의 위치를 가져옵니다.

pos = get_param(h,'Position')
pos = 1×4

    15    18    55    42

이 함수는 픽셀 단위로 측정된 좌표 벡터([left top right bottom])로 지정된 블록 위치를 반환합니다.

블록을 오른쪽으로 이동합니다.

pos = [pos(1)+20 pos(2) pos(3)+20 pos(4)];
set_param(h,'Position',pos);

블록을 위로 이동합니다.

pos = [pos(1) pos(2)-20 pos(3) pos(4)-20];
set_param(h,'Position',pos);

블록을 가로로 늘입니다.

pos = [pos(1)/4 pos(2) pos(3) pos(4)];
set_param(h,'Position',pos);

예제를 엽니다. 그런 다음 f14 모델을 엽니다.

open_system('f14')

이 모델에는 Pilot이라는 Signal Generator 블록이 있습니다. 블록 이름을 블록 상단으로 이동합니다.

set_param('f14/Pilot','NameLocation','top')

입력 인수

모두 축소

객체의 이름, 경로 또는 핸들로, 문자형 벡터, string형 스칼라 또는 숫자형 스칼라로 지정됩니다.

대상 객체를 지정하는 방법은 유형마다 다릅니다.

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

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

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

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

  • 선 — 선 핸들.

  • 포트 — 포트 핸들.

  • 버스 요소 포트 요소 — 요소 레이블이 있는 모델 컴포넌트의 블록 경로. 이 요소는 최상위 버스, 중첩된 버스, 신호, 메시지 등 포트의 모든 요소가 될 수 있습니다.

예: 'vdp/Mu'

예: 'mymodel/Subsystem1/Out1.nonsinusoidal.saw'

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

  • 일반적으로 사용자는 MATLAB®이 표시하는 것보다 더 많은 자릿수를 지정해야 하므로 5.007과 같이 핸들의 숫자를 수동으로 지정하려고 하지 마십시오. 변수에 핸들을 할당하고 그 변수 이름을 사용하십시오.

데이터형: char | string | double

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

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

대상 객체의 모든 파라미터를 가져오려면 'ObjectParameters' 옵션과 함께 get_param 함수를 사용하십시오. 반환되는 파라미터 중 일부는 내부 전용일 수 있습니다.

예: 'Solver'

예: 'SimulationCommand'

예: 'Position'

예: 'NameLocation'

데이터형: char | string

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

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

제한 사항

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

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

MATLAB 작업 공간에서 파라미터를 설정한 후 모델에서 변경 사항을 보려면 다이어그램을 업데이트하십시오.

set_param(model,'SimulationCommand','Update')

버전 내역

R2006a 이전에 개발됨