이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.
생성된 코드에서 블록 파라미터 조정 가능성에 대한 제한 사항
블록 파라미터, MATLAB® 변수 또는 Simulink.Parameter 객체는 생성된 코드에서 전역 변수와 같이 메모리에 저장된 데이터로 나타나는 경우 조정 가능합니다. 예를 들어, 파라미터 객체에 ExportedGlobal 스토리지 클래스를 적용하면, 생성된 코드에서 해당 파라미터 객체가 조정 가능한 것으로 나타납니다. 디폴트 파라미터 동작를 조정 가능형로 설정하면, 생성된 코드에서 MATLAB 변수와 파라미터 객체가 조정 가능한 것으로 나타납니다. 정의상, 모델 인수 역시 조정 가능한 것으로 보입니다.
특정 조건 하에서는 코드 생성기가 파라미터, 변수, 객체 또는 표현식의 조정 가능성을 유지할 수 없습니다. 이 경우, 코드 생성기는 숫자형 값을 인라인으로 처리하거나 const 키워드를 사용하여 데이터를 선언함으로써, 코드 컴파일 또는 실행 중에 해당 값을 변경할 수 없도록 합니다.
모델에서 이러한 조건을 검출하려면 모델 구성 파라미터 조정 가능성 손실 감지(Detect loss of tunability 참조)를 경고 또는 오류로 설정하십시오.
조정 가능한 표현식의 제한 사항
블록 파라미터 값은 Simulink.Parameter 객체나 작업 공간 변수를 사용하는 식으로 지정할 수 있습니다. 예를 들어, 5 * gainParam라는 표현을 사용할 수 있습니다. 표현식을 사용하여 블록 파라미터 값을 설정하는 방법에 대한 일반적인 정보는 수학 표현식, MATLAB 함수 및 사용자 지정 함수 사용하기를 참조하십시오. Simulink.Parameter 객체의 값을 설정하는 데 사용하는 표현식과 관련된 제한 사항에 대해서는 Code Generation of Parameter Objects With Expression Values를 참조하십시오.
조정 가능한 작업 공간 변수란, 생성된 코드에서 조정 가능한 것으로 나타나는 Simulink.Parameter 객체 또는 작업 공간 변수를 말합니다. 예를 들어, 객체나 변수에 Auto 이외의 스토리지 클래스를 적용하거나 디폴트 파라미터 동작를 조정 가능형로 설정하면 해당 객체나 변수는 조정 가능 상태가 됩니다.
하나 이상의 조정 가능한 작업 공간 변수, 모델 인수 또는 조정 가능한 마스크 파라미터를 포함하는 표현식을 조정 가능한 표현식이라고 합니다. 코드 생성기가 코드 내에서 해당 표현식을 그대로 유지하려고 시도하기 때문에, 이 표현식은 조정 가능합니다. 코드 생성기가 표현식을 그대로 유지하기 때문에, 코드 실행 중에 파라미터 데이터의 값을 변경할 수 있습니다.
코드 생성기는 생성된 코드에서 특정 표현식을 인라인 처리된 숫자형 값으로 변환합니다. 인라인 처리를 하면 표현식 내의 작업 공간 변수가 튜닝 불가능하게 됩니다. 지원되지 않는 표현식으로 인해 튜닝 기능이 손실되는 것을 방지하려면 다음 지침을 준수하십시오:
복잡한 (
i) 작업 공간 변수나 파라미터 객체가 포함된 표현식은 지원되지 않습니다.특정 연산자와 함수는 코드 생성기가 식을 단순화하게 하여 조정 가능성을 제거하게 만듭니다. 연산자나 함수가 조정 가능성을 상실하게 하는지 여부를 확인하려면 이 테이블의 정보를 참조하십시오.
범주 연산자 또는 함수 1
+ - .* ./ < > <= >= == ~= & |2
* /3
abs,acos,asin,atan,atan2,boolean,ceil,cos,cosh,exp,floor,log,log10,sign,sin,sinh,sqrt,tan,tanh4
: .^ ^ [] {} \ .\ ' .' , ;조정 기능을 손상시키지 않으면서 카테고리 1의 연산자를 사용하십시오.
표현식에서 피연산자 중 적어도 하나가 스칼라인 경우, 2번 범주의 연산자를 사용할 수 있습니다. 예를 들어, 스칼라/스칼라 및 스칼라/행렬 연산자 조합은 지원되지만, 행렬/행렬 조합은 지원되지 않습니다.
3번 범주에 속하는 함수의 인수로 조정 가능한 작업 공간 변수를 사용할 수 있습니다. 다른 함수를 사용할 경우, 코드 생성기는 인수의 조정 가능성을 제거합니다.
4번 범주에 속하는 연산자는 지원되지 않습니다.
Fcn 및 If 블록은 코드 생성 시나 참조 모델 내에서 조정 가능한 표현식을 지원하지 않습니다.
변수를 생성하거나 수정하는 마스크 초기화 코드를 작성할 수 있습니다. 표현식에서 해당 변수를 사용하면, 생성된 코드에서 해당 표현식을 조정할 수 없습니다. 이 제한 사항은 마스크 초기화 코드가 포함된 Simulink® 라이브러리 블록에도 적용됩니다. 예를 들어, Bitwise, Bit Set 및 Bit Clear 블록에 대한 비트 연산을 지정하는 블록 파라미터는 해당 파라미터가 블록의 마스크 초기화 코드에서 사용되기 때문에 조정할 수 없습니다.
표식을 구성하는
Simulink.Parameter객체나 작업 공간 변수에 대해 데이터형을 지정할 수 있습니다. 이러한 변수 및 객체의 데이터형과 해당 블록 파라미터의 데이터형이 동일하거나double인 한, 코드 생성기는 조정 가능성을 유지할 수 있습니다.빈 요소를 포함하는 버스 및 구조체 유형은 생성된 코드에서 조정 가능한 표현식을 지원하지 않습니다. 대안으로, 빈 요소 값을 나타내기 위해
-1와 같은 다른 표기법을 사용할 수 있습니다.
코드 생성기가 정수형 요소를 하나 이상 포함하는 파라미터 표현식의 조정 가능성을 유지하는 경우, 생성된 코드의 시뮬레이션 및 실행 결과에서 수치적으로 일관성이 없는 결과가 나올 수 있습니다. 생성된 코드 내의 식을 평가하면 오버플로가 발생하지만, 시뮬레이션 중에는 해당 식이 포화 상태에 이릅니다. 자세한 내용은 Numerical Consistency of Model and Generated Code Simulation Results 항목을 참조하십시오.
선형 블록 파라미터 조정 기능
이 블록들에는 수치 파라미터의 조정 가능성에 영향을 미치는 Realization 파라미터가 있습니다:
Transfer Fcn
State-Space
Discrete State-Space
Realization 파라미터를 설정하려면 명령 프롬프트를 사용해야 합니다:
set_param(gcb,'Realization','auto')
Realization 파라미터의 경우 다음 옵션 중에서 선택할 수 있습니다:
general: 코드 생성에서 해당 블록의 수치 파라미터는 조정 가능한 것으로 보입니다.sparse: 생성된 코드는 블록 파라미터를 효율을 높이는 변환된 값으로 표현합니다. 이 파라미터들은 조정할 수 없습니다.자동: 기본값. 블록 파라미터 중 하나 이상이 조정 가능한 경우(예를 들어, 조정 가능한 파라미터 객체를 사용하여 파라미터 값을 설정하는 경우), 블록은general구현을 사용합니다. 그렇지 않은 경우, 해당 블록은sparse구현 방식을 사용합니다.외부 모드 시뮬레이션 중에 이러한 블록 중 하나의 파라미터 값을 조정하려면, 해당 블록은
general구현 방식을 사용해야 합니다.
파라미터 구조체
Organize Data into Structures in Generated Code에 설명된 바와 같이, 생성된 코드 내에서 파라미터 데이터의 구조를 정의할 수 있습니다.
파라미터 구조체가 조정 가능한 경우, 생성된 코드에서 해당 구조체의 숫자형 필드도 조정 가능합니다. 그러나 필드에 다차원 배열과 같이 조정할 수 없는 엔티티가 포함된 경우, 해당 구조체 필드는 조정할 수 없습니다.
파라미터 구조체 내의 개별 하위 구조체나 필드를 조정 가능(tunable)으로 선언할 수 없습니다.
Simulink.Parameter객체를 구조체 필드의 값으로 사용할 수 없습니다. 대신, 전체 구조를 파라미터 객체에 저장해야 합니다.