Main Content

반정밀도 자속 기준 제어 알고리즘

이 예제에서는 영구 자석 동기기(PMSM)에 대한 자속 기준 제어(FOC) 알고리즘을 구현하는 방법을 보여줍니다. 이 예제에서는 단정밀도 부동소수점 구현과 반정밀도 부동소수점 구현을 모두 보여줍니다. 동적 범위가 크거나 동적 범위를 알 수 없는 알고리즘(예: 피드백 루프 내의 적분기) 또는 고정소수점으로 설계하기 어려운 연산을 사용하는 알고리즘(예: atan2)에는 부동소수점 표현을 사용하는 것이 유리할 수 있습니다. 반정밀도 데이터형은 16비트의 메모리만 차지하지만, 부동소수점 표현에서 반정밀도 데이터형은 동일한 크기의 정수 데이터형이나 고정소수점 데이터형보다 더 넓은 동적 범위를 처리할 수 있습니다.

모델을 시뮬레이션하는 데 필요한 데이터를 불러옵니다.

focModelData

ex_foc_current 모델을 엽니다. 이 모델은 두 버전의 자속 기준 제어 알고리즘에 같은 소스 블록을 사용합니다. 첫 번째 버전은 단정밀도 데이터형을 사용하고, 두 번째 버전은 반정밀도 데이터형을 사용합니다.

model = 'ex_foc_current.slx';
open_system(model)

모델을 시뮬레이션합니다. 단정밀도 구현의 응답이 반정밀도 구현의 응답과 같다는 것을 스코프에서 볼 수 있습니다.

sim(model)
ans = 

  Simulink.SimulationOutput:
           logTestBench: [1x1 Simulink.SimulationData.Dataset] 

     SimulationMetadata: [1x1 Simulink.SimulationMetadata] 
           ErrorMessage: [0x0 char]