Assignment
신호의 지정된 요소에 값 할당
라이브러리:
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
입니다. 여기서 Idx4
와 Idx5
는 차원 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 항목을 참조하십시오. 인덱스 포트를 사용하여 할당 인덱스를 동적으로 조정할 수 있습니다.
포트
입력
출력
파라미터
블록 특성
데이터형 |
|
직접 피드스루 |
|
다차원 신호 |
|
가변 크기 신호 |
|
영점교차 검출 |
|