2014-05-12 3 views
0

저는 시뮬레이션 중 하나 인 서브 시스템 (또는 참조 모델)을 포함하고 있습니다.이 서브 시스템은 자체 시뮬레이션으로, 주 시뮬레이션을 다시 시작하기 전에 특정 시간에 완전히 실행해야합니다.Simulink - 시뮬레이션에서 시뮬레이션을 실행하는 방법?

기본적으로 시간 t에서 주 시뮬레이션에는 하위 시스템의 출력이 필요합니다. 그런 다음 하위 시스템이 트리거되고 6 초 동안 시뮬레이션이 실행됩니다 (하위 시스템 시뮬레이션은 시간에 따라 다릅니다). 그런 다음 기본 시뮬레이션은 하위 시스템의 출력을 사용합니다. 여기서 문제는 주 시뮬레이션이 다시 시작될 때 t + ts (샘플링 시간)가 아닌 t + 6s에서 재개되어야한다는 것입니다. 따라서 서브 시스템은 일종의 가상 시계로 실행되어야합니다.

어떻게 든 가능합니까? 그렇지 않다면 대안은 무엇입니까?

미리 도움을 주셔서 감사합니다.

Fabien

+0

언제 하위 시스템이 중지됩니까? for 루프 하위 시스템을 사용하여 수행 할 수 있습니까? – Navan

+0

안녕 Navan, 도와 줘서 고마워! 서브 시스템은 주 시뮬레이션에서 특정 시간에 트리거되고 정지하기 전에 연속 6 초 동안 실행됩니다. 루프의 사용 문제는 서브 시스템이 시간 t에서 실행을 시작하는 트리거되는 경우,이 시간에 실행을 중지하는 것입니다 t + 6 초 서브 시스템의 출력을 필요 주요 시뮬레이션은 시간 t + TS에 전달되는 동안 (ts는 샘플링 시간 임). 그래서 그 주요 시뮬레이션/6 초 화면 반전 생각으로 시스템을 속일 수있는 솔루션을 찾고 있는데요 서브 시스템에 일초 시뮬레이션에 해당 ... – Fabien

+0

(...) "메인"시뮬레이션 및 서브 시스템 모두 수행 시간에 따른 계산이 필요하며, 이는 까다로운 작업입니다. 서브 시스템은 정말 그렇지 않으면 난 그냥 메인 시뮬레이션보다 빠른 샘플링 속도를 실행할 수 있습니다, 그것은 6 초 동안 실행 생각합니다. – Fabien

답변

2

필자는 결코 내 시도에 대한 피드백을 제공하지 않았다는 것을 알고 있습니다. 지금 해 보겠습니다 : 내가 찾은 해결책은 내 시뮬레이션 서브 시스템을 주 시뮬레이션과 독립적 인 시뮬레이션으로 참조 된 모델을 실행/호출하는 Matlab 함수 블록으로 대체하는 것입니다. 이것은 완벽하게 작동합니다!

관련 문제