2013-07-30 4 views
3

시뮬레이션이 실행되는 동안 일부 탱크 프로파일을 빌드하고 Simulink에서 시각화하려고합니다. 매트랩 나는 보통 입력 :Simulink에서 배열 Y를 X에 대입하는 방법은 무엇입니까?

plot(dX, Y), grid; 

dXY (예를 들어) 20 개 요소 배열입니다. 이 플롯 할 수있는 범위 나 시뮬링크에있는 것이 있습니까? XY 그래프는 스칼라 만 플롯합니다. (

답변

3

질문을 올바르게 이해한다면 시뮬링크 모델에는 각각 20x1 크기의 신호 dX와 Y가 있습니다. 따라서 신호 자체는 값이 바뀌는 벡터입니다 그렇다면 시뮬 레이션이 실행되는 동안 일종의 애니메이션으로 시각화 할 수 있습니다. 즉, 시뮬 링크 시뮬레이션의 각 시간 단계에서 벡터 간의 관계를 보여주는 XY 그래프를 생성합니다 DX와 Y.

필자의 지식으로는 스코프와 XY 그래프 블록이이 유스 케이스를 지원하지 않습니다. 신호가 시간에 따라 변하는 스칼라 값이라면 XY 그래프를 사용할 수 있습니다. 시간 경과에 따라 벡터가 바뀌기 때문에 XY 그래프 isn 그게 유용하지 않아.

이것은 매우 빠르고 더러운 솔루션 일 수 있지만, MATLAB 함수 블록을 사용하고 거기에서 플롯 기능을 호출하는 것이 좋습니다. 예를 들어,로 읽을 수있는 블록의 내용은 다음과 같습니다

function fcn(x,y) 
%#codegen 

coder.extrinsic('plot') 
plot(x,y) 
% insert additional code as needed to turn on grid, setup axis limits, etc. 

matlab에 펑션 블록은 당신이 당신의 신호 d 배속와 Y

+0

예를 공급할 수있는에 두 개의 입력을 할 것이다. 그게 내가 원하는거야 - 애니메이션 (실시간 시뮬레이션). 귀하의 솔루션이 작동합니다. 감사! – remus

+0

그러나 시뮬레이션이 많이 느려집니다. ( – remus

+2

연속 또는 빠른 이산 샘플 시간을 사용하는 경우 느린 이산 샘플 시간에 MATLAB 함수 블록을 실행하여 애니메이션이 업데이트되도록 할 수 있습니다. 초, 그리고 너무 많은 시뮬레이션을 천천히하지 않습니다. 속도가 느린 이산 샘플 /에서 이산/빠른 이산 샘플 시간으로 /에서 이동하려면 적절한 Rate Transition 블록을 사용해야합니다. – am304

관련 문제