1. 고정소수점 데이터의 구조
고정소수점 데이터는 크게 두 부분으로 나뉩니다:
- 저장된 정수 값 (Stored Integer, SI): 실제 메모리에 저장되는 정수 값.
- 스케일링 (Scaling): SI 값을 실제로 사용할 수 있는 "의미 있는 값"으로 변환하는 방식.
RWV 계산 공식:
- RWV (Real-World Value): 사람이 인식할 수 있는 실제 값.
- SI (Stored Integer): 메모리에 저장된 정수 값.
- S (Scaling Factor): 스케일링 계수, 예를 들어 2−n2^{-n} 형태로 사용됩니다.
2. Data Type Conversion 블록에서 RWV와 SI
Simulink의 Data Type Conversion 블록은 입력 신호를 원하는 데이터 형식(고정소수점, 부동소수점, 정수 등)으로 변환합니다. 변환 과정에서 어떤 값을 보존해야 하는지를 설정할 수 있는데, 이것이 바로 Input and output to have equal 항목입니다.
이 옵션에 따라 데이터 변환 과정이 달라집니다:
- Real-World Value (RWV): 입력 데이터와 출력 데이터의 실제 값을 같게 유지합니다.
- Stored Integer (SI): 입력 데이터와 출력 데이터의 저장된 정수 값을 같게 유지합니다.
3. Real-World Value (RWV) 선택
이 옵션을 선택하면, **입력 데이터와 출력 데이터의 실제 값 (RWV)**이 같아지도록 Simulink가 자동으로 스케일링이나 데이터형 변환을 처리합니다.
예제 1: RWV 유지
입력 신호의 값:
- SI = 5
- 스케일링 계수 S=0.25
- 따라서, RWV=SI×S=5×0.25=1.25
출력 신호의 값:
- 출력 데이터형이 달라져도, RWV는 무조건 같아야 하므로 1.251.25로 유지됩니다.
- 출력 데이터형에 맞게 SI와 스케일링이 조정될 수 있음.
예를 들어:- 출력 데이터형에서 S=0.5가 적용되면, SI=RWV÷S=1.25÷0.5=2.5
(반올림이 필요할 수도 있음)
- 출력 데이터형에서 S=0.5가 적용되면, SI=RWV÷S=1.25÷0.5=2.5
이 방식은 실제 값의 정확성을 유지해야 할 때 유용합니다.
예: 센서 데이터, 계산된 값 전달 등.
4. Stored Integer (SI) 선택
이 옵션을 선택하면, **입력 데이터와 출력 데이터의 저장된 정수 값 (SI)**이 같아지도록 Simulink가 처리합니다.
예제 2: SI 유지
입력 신호의 값:
- SI = 5
- 스케일링 계수 S=0.25
- 따라서, RWV=SI×S=5×0.25=1.25
출력 신호의 값:
- SI = 5가 유지되도록 변환됩니다.
- 출력 데이터형에서 스케일링 계수가 다를 수 있음:
예: S=0.5
그러면, RWV=SI×S=5×0.5=2.5
이 방식은 저장된 정수 값의 일관성이 필요할 때 유용합니다.
예: 디지털 통신 데이터 전송, 메모리 저장, 하드웨어 인터페이스 등.
5. RWV와 SI의 차이를 시각적으로 정리
설정 옵션유지되는 값결과사용 사례
옵션 | 유지되는 값 | 결과 | 사용 사례 |
RWV (Real-World Value) |
실제 값 RWV | 입력과 출력의 의미 있는 값이 동일 |
계산 정확성 유지, 센서 데이터 처리 |
SI (Stored Integer) |
저장된 정수 값 SI | 입력과 출력의 메모리 값이 동일 |
데이터 전송, 메모리 일관성 유지 |
6. 어떤 옵션을 선택해야 할까?
- RWV 유지가 필요한 경우:
- 데이터의 실제 의미(크기 또는 단위)가 변하지 않아야 함.
- 센서 값, 계산된 값 처리.
- 예: 온도 센서 출력, 속도 계산.
- SI 유지가 필요한 경우:
- 데이터를 저장하거나 전송할 때, 메모리에 저장된 정수 값을 동일하게 유지해야 함.
- 데이터 통신, 하드웨어 인터페이스.
- 예: CAN 메시지 데이터, 디지털 통신 값.
7. 요약
RWV는 실제 값이, SI는 저장된 값이 같아지도록 보장하는 옵션입니다. 고정소수점 데이터를 다룰 때는 어떤 값이 더 중요한지(의미 있는 값 vs. 메모리 저장 값)를 고려하여 적절히 선택하면 됩니다.