Main Content

Assignment

신호의 지정된 요소에 값 할당

  • Assignment block

라이브러리:
Simulink / Math Operations
HDL Coder / Math Operations

설명

Assignment 블록은 신호의 지정된 요소에 값을 할당합니다. 값을 할당할 요소의 인덱스를 지정하려면 블록 대화 상자에 인덱스를 입력하거나 외부 인덱스 소스를 블록에 연결하면 됩니다. 블록 데이터 포트 U에 있는 신호가 Y에 할당할 값을 지정합니다. 이 블록은 Y의 지정된 요소를 데이터 신호의 요소로 대체합니다.

출력 차원 수 파라미터에 입력한 값에 따라 인덱스 옵션의 테이블이 표시됩니다. 테이블의 각 행은 출력 차원 수의 출력 차원 중 하나에 대응됩니다. 각 차원에 대해 사용할 신호의 요소를 정의할 수 있습니다. 벡터 신호를 1차원 신호로 지정하고, 행렬 신호를 2차원 신호로 지정하십시오. 외부 인덱스 포트를 활성화하려면, 테이블의 해당 행에서 인덱스 옵션인덱스 벡터(포트) 또는 시작 인덱스(포트)로 설정하십시오.

예를 들어 1부터 시작하는 인덱스 모드를 사용하는 5차원 신호를 가정해 보겠습니다. Assignment 블록 대화 상자의 테이블은 각 차원에 대응하는 행을 하나씩 포함하도록 변경됩니다. 다음 항목을 사용하여 각 차원을 정의하는 경우

인덱스 옵션인덱스
1모두 할당 
2인덱스 벡터(대화 상자)[1 3 5]
3시작 인덱스(대화 상자)4
4시작 인덱스(포트) 
5인덱스 벡터(포트) 

할당된 값은 Y(1:end,[1 3 5],4:3+size(U,3),Idx4:Idx4+size(U,4)-1,Idx5)=U입니다. 여기서 Idx4Idx5는 차원 4, 5에 대한 입력 포트입니다.

표준 모드에서 Assignment 블록을 사용하는 경우 Simulink®는 모델이 블록 출력을 명시적으로 초기화하지 않더라도 블록 출력을 0으로 초기화합니다. 액셀러레이터 모드에서 Simulink는 모델을 S-Function으로 변환합니다. 여기에서 코드 생성을 거치게 됩니다. 생성된 코드는 블록 출력에 대한 묵시적 초기화를 수행하지 않을 수도 있습니다. 그러한 경우 모델 출력을 명시적으로 초기화해야 합니다.

값을 벡터, 행렬 또는 다차원 신호에 할당할 때 이 블록을 사용할 수 있습니다.

버스로 구성된 배열을 Assignment 블록에 대한 입력 신호로 사용할 수 있습니다.

조건부 서브시스템의 Assignment 블록

조건부 서브시스템 블록에 Assignment 블록을 배치하면 많은 경우 숨은 신호 버퍼(Signal Copy 블록과 같은 역할)가 삽입되며, 부분 쓰기로 Assignment 블록의 신호를 병합하면 오류가 발생할 수 있습니다.

하지만 조건부 서브시스템 Outport 블록에 대해 가상 아웃포트여야 함 파라미터를 선택하면 이러한 경우가 지원되어 Assignment 블록을 사용한 배열에 부분 쓰기 작업이 가능합니다. Ensure Output Port Is Virtual 항목을 참조하십시오.

제한 사항

  • 인덱스 파라미터는 시뮬레이션 도중에는 조정이 불가능합니다. 차원에 대한 인덱스 옵션인덱스 벡터(대화 상자) 또는 시작 인덱스(대화 상자)로 설정되고 블록 대화 상자의 해당되는 인덱스에 대해 Simulink.Parameter 객체 등 기호 값을 지정하면 시뮬레이션 시작 순간의 값이 시뮬레이션 전체에서 사용되며 파라미터는 생성된 코드에서의 인라인 값으로 나타납니다. Tune and Experiment with Block Parameter Values 항목을 참조하십시오. 인덱스 포트를 사용하여 할당 인덱스를 동적으로 조정할 수 있습니다.

포트

입력

모두 확장

출력 신호에 대한 초기화 신호입니다. 요소에 또 다른 값이 할당되지 않은 경우 출력 요소의 값은 이 입력 신호 값과 일치합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point | Boolean | enumerated | bus

출력 요소(지정된 경우)에 할당된 값입니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point | Boolean | enumerated | bus

해당 출력 요소에 값을 할당하기 위한 인덱스를 지정하는 외부 포트입니다.

사용자 지정 너비를 갖는 정수(예: 15비트 정수 또는 23비트 정수)를 인덱스 신호 값으로 지정할 수 있습니다. 정수의 너비를 구성할 때 모드고정소수점으로 지정하고 워드 길이는 128 이하, 기울기는 1, 편향은 0으로 지정해야 합니다. 고정소수점 데이터형 지정에 대한 자세한 내용은 Specify Data Types Using Data Type Assistant 항목을 참조하십시오.

종속성

외부 인덱스 포트를 활성화하려면, 인덱스 옵션 테이블의 해당 행에서 인덱스 옵션인덱스 벡터(포트) 또는 시작 인덱스(포트)로 설정하십시오.

데이터형: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

출력

모두 확장

지정된 요소에 할당된 값이 있는 출력 신호입니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point | enumerated | bus

파라미터

모두 확장

출력 신호의 차원 수를 입력합니다.

프로그래밍 방식의 사용법

파라미터: NumberOfDimensions
유형: 문자형 벡터
값: integer
디폴트 값: '1'

인덱싱 모드를 선택합니다. 1부터 시작이 선택되면 인덱스 1이 입력 벡터의 첫 번째 요소를 지정합니다. 0부터 시작이 선택되면 인덱스 0이 입력 벡터의 첫 번째 요소를 지정합니다.

프로그래밍 방식의 사용법

파라미터: IndexMode
유형: 문자형 벡터
값: 'Zero-based' | 'One-based'
디폴트 값: 'One-based'

차원을 기준으로 신호의 요소를 인덱싱할 방법을 정의합니다. 목록에서 다음을 선택합니다.

메뉴 항목동작
모두 할당

모든 요소가 할당됩니다.

인덱스 벡터(대화 상자)

인덱스 열을 활성화합니다. 요소의 인덱스를 입력하십시오.

인덱스 벡터(포트)

인덱스 포트가 요소의 인덱스를 정의합니다.

시작 인덱스(대화 상자)

인덱스 열을 활성화합니다. 값을 할당할 요소 범위의 시작 인덱스를 입력하십시오.

시작 인덱스(포트)

인덱스 포트는 값을 할당할 요소 범위의 시작 인덱스를 정의합니다.

테이블의 차원에 대해 인덱스 벡터(포트) 또는 시작 인덱스(포트)를 선택하는 경우 출력(Y) 초기화 파라미터에 다음 값 중 하나를 지정할 수 있습니다.

  • 입력 포트 <Y0>을 사용하여 초기화

  • 테이블의 각 차원 크기 지정

그 외의 경우 Y0는 항상 출력 포트 Y를 초기화합니다.

인덱스 열과 출력 크기 열은 서로 관련된 것으로 표시됩니다.

프로그래밍 방식의 사용법

파라미터: IndexOptionArray
유형: 문자형 벡터
값: 'Assign all' | 'Index vector (dialog)' | 'Index option (port)' | 'Starting index (dialog)' | 'Starting index (port)'
디폴트 값: 'Index vector (dialog)'

인덱스 옵션인덱스 벡터(대화 상자)이면 관심 있는 각 요소의 인덱스를 입력합니다.

인덱스 옵션시작 인덱스(대화 상자)이면 선택할 요소 범위의 시작 인덱스를 입력합니다. 시작점의 요소 개수는 U의 해당 차원 크기에 의해 결정됩니다.

프로그래밍 방식의 사용법

파라미터: IndexParamArray
유형: 문자형 벡터
값: 셀형 배열
디폴트 값: '{ }'

블록 출력 신호의 너비를 입력합니다.

종속성

해당 열을 활성화하려면 출력(Y) 초기화 파라미터에 대해 테이블의 각 차원 크기 지정을 선택합니다.

프로그래밍 방식의 사용법

파라미터: OutputSizeArray
유형: 문자형 벡터
값: 셀형 배열
디폴트 값: '{ }'

출력 신호를 초기화할 방법을 지정합니다.

  • 입력 포트 <Y0>을 사용하여 초기화 – 입력 포트 Y0에 있는 신호가 출력을 초기화합니다.

  • 테이블의 각 차원 크기 지정출력 크기 파라미터에 블록 출력 신호의 너비를 지정해야 합니다. 출력에 값이 할당되지 않은 요소가 있는 경우 그러한 요소의 값은 정의되지 않습니다.

종속성

하나 이상의 차원에 대해 인덱스 옵션인덱스 벡터(포트) 또는 시작 인덱스(포트)로 설정한 경우 활성화됩니다.

프로그래밍 방식의 사용법

파라미터: OutputInitialize
유형: 문자형 벡터
값: 'Initialize using input port <Y0>' | 'Specify size for each dimension in table'
디폴트 값: 'Initialize using input port <Y0>'

일부 출력 요소를 할당하지 않은 경우 경고나 오류를 생성할지를 지정합니다. 다음과 같은 옵션이 있습니다.

  • 경고 — Simulink에서 경고를 표시하고 시뮬레이션을 계속합니다.

  • 오류 — Simulink에서 시뮬레이션을 종료하고 오류를 표시합니다.

  • 안 함 — Simulink에서 아무 동작도 취하지 않습니다.

종속성

이 파라미터를 활성화하려면, 하나 이상의 차원에 대해 인덱스 옵션인덱스 벡터(포트) 또는 시작 인덱스(포트)로 설정한 다음, 출력(Y) 초기화테이블의 각 차원 크기 지정으로 설정하십시오.

프로그래밍 방식의 사용법

파라미터: DiagnosticForDimensions
유형: 문자형 벡터
값: 'Error' | 'Warning' | 'None'
디폴트 값: 'Warning'

샘플 간의 시간 간격을 지정합니다. 샘플 시간을 상속하려면 이 파라미터를 -1로 설정하십시오. 자세한 내용은 샘플 시간 지정하기 항목을 참조하십시오.

종속성

이 파라미터는 -1 이외의 값으로 설정한 경우에만 표시됩니다. 자세한 내용은 Blocks for Which Sample Time Is Not Recommended 항목을 참조하십시오.

프로그래밍 방식의 사용법

블록 파라미터: SampleTime
유형: string형 스칼라 또는 문자형 벡터
디폴트 값: "-1"

Simulink가 액셀러레이터 또는 고속 액셀러레이터 모드에서 시뮬레이션하는 동안 입력 신호의 관련 차원에 대한 유효 인덱스 범위를 벗어나는 인덱스 값이 있는지 검사하도록 하려면 이 체크박스를 선택합니다. 인덱스가 범위 밖에 있다면 Simulink는 시뮬레이션을 중단하고 오류 메시지를 표시합니다.

참고

이 체크박스를 선택하지 않으면 범위 밖 인덱스 값이 액셀러레이터 또는 고속 액셀러레이터 모드의 시뮬레이션 도중에 정의되지 않은 동작으로 이어질 수 있습니다.

Simulink는 일반 모드의 시뮬레이션 도중에는 이 체크박스 선택 여부와 무관하게 이 검사를 수행합니다.

프로그래밍 방식의 사용법

파라미터: RuntimeRangeChecks
유형: 문자형 벡터
값: 'Off' | 'On'
디폴트 값: 'Off'

블록 특성

데이터형

Boolean | double | enumerated | fixed point | integer | single

직접 피드스루

다차원 신호

가변 크기 신호

영점교차 검출

아니요

확장 기능

C/C++ 코드 생성
Simulink® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

PLC 코드 생성
Simulink® PLC Coder™를 사용하여 Structured Text 코드를 생성할 수 있습니다.

고정소수점 변환
Fixed-Point Designer™를 사용하여 고정소수점 시스템을 설계하고 시뮬레이션할 수 있습니다.

버전 내역

R2006a 이전에 개발됨

모두 확장