2015-02-05 6 views
0

Matlab 초보자는 여기에 몇 가지 문제가있어 Matlab 설명서 나 다른 게시물은 여기에 도움이되지 않습니다. 저는 USB (Gyroscope, Magnetometer 및 Accelerator 신호)를 통해 센서 신호를 수신하는 Level-2 Matlab S-Function에서 작업 중이며 더 높은 수준의 작업을 위해이 데이터를 매 200ms마다 분석해야합니다. 처음에는 Simulink 모델의 시뮬레이션 시간을 Start time 0과 Stop time 10으로 설정하고 block.SampleTimes = [0.2 0]을 통해 0.2로 샘플 시간을 설정하도록했습니다. 그러나 예기치 않은 동작이 발생한 후 시뮬레이션 시간이 Simulink의 클럭 시간과 같지 않다는 것을 알게되었습니다.Level-2 Matlab S-Function 블록 샘플 시간을 특정 시간 간격으로 설정

시뮬레이션 시간은 시계 시간과 다릅니다. 예를 들어, 10 초 동안 시뮬레이션을 실행하는 데 보통 10 초가 걸리지 않습니다. 총 시뮬레이션 시간은 모델 복잡성, 해석 단계 크기 및 컴퓨터 속도와 같은 요소에 따라 다릅니다.

정확하게 200ms마다 센서 데이터를 출력해야하므로 Matlab 또는 Simulink에 대한 이전 경험이 전혀 없습니다. 내 문제가 충분히 명확하길 바라지 만 필요한 경우 자세한 내용을 제공 할 것입니다. 사전에 도움을 주셔서 감사합니다.

답변

1

Simulink (및 MATLAB)는 Windows, Linux, OSX 등에서 실행되며 실시간 운영 체제가 아닙니다. 따라서 MATLAB 코드 또는 Simulink 모델은 절대로 실시간으로 실행되지 않습니다. Simulink 모델의 하드 실시간 실행을 보장하는 유일한 방법은 Simulink Coder 및 Embedded Coder를 사용하여 C 코드를 생성하고 생성 된 코드를 실시간 (임베디드) 플랫폼에서 실행하는 것입니다.

Simulink 모델이 실시간보다 빠르게 실행되는 경우 실시간으로 가짜 실시간을 실행하는 속도를 늦출 수 있습니다. 실제가 아닌 실시간으로 얻을 수있는 것처럼 실시간에 가깝습니다. 운영 체제. 자세한 내용은 Slowing Down Simulink을 참조하십시오.

+0

Slowing Down Simulink 링크가 내 문제에 완벽하게 작동했습니다. 당신은 저에게 많은 시간을 저축했습니다 :) – Unfixable