2014-03-31 4 views
0

내가하려는 것은 시스템 시간을 변수로 (전역 또는 상수) 저장하는 것입니다. Simulink에서 S-function을 사용하고 있습니다. 문제는 시스템 시간의 값을 변수에 저장하면 계속해서 증가하므로 현재 시스템 시간과 변수에 저장된 시간이 항상 0 일 때 차이가 발생한다는 것입니다. 솔루션 저장 방법은 무엇이라고 생각합니까? 변수의 시스템 시간과 전역 유형 또는 상수를 사용해야하는 변수의 유형. 어떤 대답이라도 있으면 Matlab에서 새롭기 때문에 예를 들어주세요. P.S 함수에 C 언어를 사용하고 있습니다.변수에 시스템 시간을 저장하는 S-function

+0

전역 변수가 느리므로 피해야합니다. – patrik

+0

C :(time.h) 함수를 사용하여 시스템 시간을 읽거나 Simulink에서 함수 매개 변수로 시스템 시간을 읽는 방법은 무엇입니까? – remus

+0

몇 가지 샘플 코드를 게시 할 수 있으며 콜백에서 저장하려고하고 s- 함수로 계산을 수행 할 수 있습니까? – Navan

답변

1

시뮬레이션 시작시 시스템 시간을 저장하려는 것처럼 들리지만 시뮬레이션 중에 시스템 시간을 저장된 값과 비교하십시오. 그렇다면 초기 시스템 시간을 저장하기 위해 R-Work 벡터를 사용해야합니다.

그래서 mdlInitializeSizes 당신은

real_T itime; 
itime=ssGetRWorkValue(S,0); 

합니다 (위의 가정합니다, 당신은 값 사용을 사용하고자 할 때

ssSetNumRWork(S, 1); 

그런 다음 mdlStart 당신이 그런

real_T *P_Tinit=ssGetRWork(S); 

P_Tinit[0]=((real_T) clock())/CLOCKS_PER_SEC; 

을하고자합니다 당신은 실제로 시스템 시간을 얻는 방법을 안다. 즉, 올바른 라이브러리를 포함시킨다. 소리처럼 들립니다.)

관련 문제