2014-03-30 3 views
0

전달 함수를 변수로 다른 함수에 입력하려면 사용자 정의 수식에 대한 전달 함수를 만들어야합니다. 나는 tf로 변환 할 필요가있는 방정식은 다음과matlab에 사용자 정의 전달 함수 만들기

y = exp(-(x^2)) 
내가, 내가 사용하는 시도 일 수 없습니다

:

s = tf('s'); 
H = exp(-(s^2)); 

그러나 나는 다음과 같은 오류 얻을 :

Error using tf/exp (line 34) The input argument of the "exp" command must be a transfer function of the form -M*s.

아무도 내가 여기서 뭘 잘못하고 있다고 말할 수 있습니까?

+1

이론에 큰 문제가있는 것처럼 보이지만 프로그래밍 문제는 아닙니다. 먼저'y = exp (- (x^2))'를'y (s) = f (s)'함수로 변환해야합니다.''x''를''s''로 대체하면 충분하지 않습니다. 마지막으로 dtransfer 함수가 Matlab에 쉽게 입력 할 수있는 형식을 가지고 있음을 알 수 있습니다. – thewaywewalk

답변

0

이 전달 함수를 다른 함수에 변수로 전달하는 방법에 대해 자세히 설명해 주시겠습니까? 다른 기능에서 어떻게 사용되고 있습니까?

[email protected](x) exp(-(x^2)); 

을 그리고 당신은 myFunction(y(2)) 같은 일을 할 수 또는 상징적 인 표현으로 사용하려는 경우, 당신은 할 수 있습니다 : 당신은 그냥 일반 함수를 작성하려는 경우

, 당신은 할 수 있습니다 :

매트랩
syms s; 
[email protected](x) exp(-(x^2)); 
myFunction(y(2+3*i)); %or 
myFunction(y(s)); 
2

exp(-T*s)는 MATLAB의 전달 함수의 exp 함수만을 허용 용도이다 T초의 시간 지연을 나타낸다 (기본 MATLAB 및 제어 시스템을 사용 Toolbo x는 tf 함수를 언급 한 이래로). exp(-x^2)은이 형식이 아니기 때문에 시간 지연을 나타내지 않으므로 유효한 전송 함수로 MATLAB에서 인식되지 않습니다.

방정식 y = exp(-x^2)이 시간 도메인 방정식 인 경우 즉, y(t) = exp(-x(t)^2) 인 경우이 방정식을 라플라스 변환을 사용하여 s 도메인으로 변환해야합니다. 그러나, exp(-x^2)의 라플라스 변환은 비선형 함수이기 때문에 MATLAB에서 전달 함수로 표현할 수 없습니다.

어느 경우 든 선형화를 사용하여 지수 항 또는 그 라플라스 변환의 선형 근사값을 구한 다음이를 사용하여 전달 함수를 얻을 수 있습니다.