2016-06-19 2 views
0

Simulink 모델 내부에서 Matlab 함수를 사용해야합니다. Matlab 함수를 사용하여 간단한 작업을 수행하는 방법을 알고 있습니다. 하지만 지금 필요한 것은 조금 더 복잡합니다. 기본 예제를 알려 드리겠습니다.Simulink 내부의 Matlab 함수

범위에서 직접 볼 수있는 사인파를 생성해야한다고 가정합니다 (이미 사인파 블록이 있음을 알고 있습니다. 예제로 사용하고 있습니다).

t = [0:1/30000:0.2]; 
A = 1; 
f =10000; 
y = A*sin(2*pi*f*t); 
plot(t(1:100),y(1:100)) 

가 어떻게 현재 Simulink MATLAB 기능 블록 내에서 동일한 기능을 구축 할 수와 범위에 바로 결과를 볼 : 내가하지 시뮬링크에서 매트랩 쓰고 있다면, 내가 좋아하는 일을 할 것인가?

기억하십시오 : Matlab 함수 블록에는 두 개의 u와 y 포트가 있습니다. 각각 입력 및 출력을 나타냅니다. 위의 예제에서 사인파 생성기는 입력이 필요하지 않습니다.

+0

matlab function 블록의 포트 수를 설정할 수 있습니다. – Daniel

답변

2

아마도 여러분이 아주 좋은 예제를 선택하지 않았을 것입니다.하지만 Simulink에 제공 한 코드를 번역 할 때 알아야 할 사항이 몇 가지 있습니다.

  1. 매트랩 기능 블록으로 시뮬레이션 시간을 얻을 수있는 가장 쉬운 방법은 @Daniel은 선택, 표시 등의 입력 포트 (에 시계 블록을 공급함으로써하지만,이 경우 내가 사용된다 제안 t). 그래서 저는이 예제에서 당신이 inport를 원한다고 생각합니다.

  2. 예제에서 plot은 Simulink Scope가 표시되는 데이터에서 롤오프하는 첫 번째 100 점만 표시합니다. 시뮬레이션이 그보다 오래 실행될 때 스코프에 첫 번째 X 점만 표시하는 개념은 없습니다.

  3. Simulink는 한 번에 하나의 시뮬레이션 시간 간격 씩 데이터를 생성하므로 모두 (MATLAB 코드에 따라) 생성 할 수 없으며 모든 것을 그릴 수는 없습니다. (음 ... 당신은 프레임 기반 신호를 사용할 수 있다면,하지만 난 그런 당신이 여기 요구하는지 아니다 가정합니다.)

그래서, 당신은 일을 포함 할 가지고있는 동등한를 구현하기 위해 수행원.

  • function y = myCustomSineWave(t) A = 1; f =10000; y = A*sin(2*pi*f*t);

  • 가에 Clock 블록 피드 (를 하드 코딩보다는 당신이 Af 입력 매개 변수를 만들고 싶어 수도 있지만) 다음과 같은 코드를 포함하는 MATLAB 기능 블록 쓰기 출력 위에 Scope 블록이 있습니다.

관련 문제