이 페이지는 기계 번역을 사용하여 번역되었습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
모델에 대한 C 코드 생성
Simulink 모델, Stateflow 차트, MATLAB 함수에서 C 또는 C++ 코드를 생성하려면 Simulink Coder™ 제품을 사용하십시오. 생성된 코드를 시뮬레이션 가속화, 신속 프로토타이핑, HIL(Hardware-in-the-Loop) 시뮬레이션 등의 응용 사례에 사용합니다.
Simulink Coder를 처음 사용하거나 애플리케이션 코드 사용자 지정 요구 사항이 최소한인 경우 그래픽 툴과 디폴트 모델 구성 설정을 사용하여 코드를 빠르게 생성할 수 있습니다.
코드를 생성하고 검토하는 작업은 빠른 시작 툴을 사용하여 코드 생성을 위한 모델을 준비하는 것만큼이나 간단합니다. 그런 다음 Simulink 편집기에서 액세스할 수 있는 코드 툴을 사용하여 데이터 인터페이스를 구성하고, 코드 생성을 시작하고, 생성된 코드를 검증할 수 있습니다.
이 튜토리얼에서는 예제 모델 SecondOrderSystem을 사용합니다.
모델을 엽니다.
open_system("SecondOrderSystem");
이 모델은 이상적인 질량-스프링-댐퍼 시스템이라고 하는 물리적 2차 시스템을 구현합니다. Gain 블록은 시스템 방정식의 구성 요소인 Mass, Stiffness, Damping을 나타냅니다. 이 시스템의 방정식은 mX" + cX' + kX = f(t)입니다.
m= 시스템의 질량(1.0E-6 kg)c= 감쇠비(4.0e-4 Ns/m)k= 스프링 강성(1.0 N/m)f(t) = x 방향(N)의 강제 함수
Signal Generator 블록은 진폭 4, 주파수 20Hz의 사각파를 주입합니다. 블록은 파형 시간 변수의 값 소스로 시뮬레이션 시간을 사용합니다. 이 모델은 코드 생성에 필요한 고정 스텝 솔버로 구성되어 있으므로 Simulink는 전체 시뮬레이션에 대해 동일한 스텝 크기를 사용합니다. 일관된 스텝 크기는 이상적인 파형을 균일하게 샘플링하여 표현합니다.
예제 모델은 MATLAB Function 블록을 사용하여 기존 MATLAB 함수 코드를 Simulink 모델에 통합하는 방법을 보여줍니다. 통합된 코드를 통해 내장형 C 코드를 생성할 수 있습니다. 예제 모델의 MATLAB 함수 블록은 컴포넌트 변수의 합을 계산하는 MATLAB 함수를 통합합니다.
Integrator 블록은 시간에 대한 MATLAB 함수 블록 출력의 적분을 계산합니다. 솔버는 현재 입력 값과 이전 시간 스텝의 상태 값을 사용하여 현재 시간 스텝에서 Integrator 블록의 출력을 계산합니다. 이 계산 모델을 지원하기 위해 Integrator 블록은 현재 시간 스텝에서 출력을 저장하여 솔버가 다음 시간 스텝에서 출력을 계산하는 데 사용합니다. 이 블록은 또한 솔버에 초기 조건을 제공하여 시뮬레이션 시작 시 블록의 초기 상태를 계산할 때 사용하도록 합니다. 이 예제 모델의 디폴트 초기 조건과 설정은 0입니다.
대시보드 블록 Knob와 Dashboard Scope는 감쇠를 조정하고 파형을 모니터링하기 위한 시각적 툴을 제공합니다. Knob 블록은 Damping Gain 블록에 연결됩니다. Dashboard Scope 블록은 Force: f(t):1 및 X 신호에 연결됩니다.
이 모델을 사용하여 다음 방법을 알아봅니다.
Simulink Coder 빠른 시작 툴을 사용하여 코드를 생성합니다.
생성된 실행 프로그램 결과가 시뮬레이션 결과와 일치하는지 확인합니다.
프로그램 실행 중에 파라미터를 조정합니다.
프로토타입 코드와 아티팩트를 배포합니다.
튜토리얼을 시작하려면 Simulink Coder 빠른 시작 툴을 사용하여 C 코드 생성 항목을 참조하십시오.