2013-09-26 48 views
1

我正嘗試使用Matlab來評估使用我在.net應用程序中生成的數據的連續傳輸函數。 我已經創建了下面的代碼M檔:從.Net評估傳輸函數

function out = transfer(in) 
    s = tf('s') 
    H = s^2/(s^2+5*s+6.25) 
end 

應輸入參數是什麼,以及如何與傳遞函數H使用它呢?

一旦我知道了,我猜測我可以使用從.net打出matlab函數的各種方式;一旦我的功能正確,這應該不會太壞。

回答

1

你必須定義H的傳遞函數,以及:

H = tf([ 1 0 0 ] , [ 1 5 6.25]); 

您需要定義s = tf('s')只是,如果你想用它來進一步計算。

然後你就可以計算出你的數據t(時間)和u(值)的系統響應

t = 0:0.01:4; 
u = sin(10*t); 
response = lsim(H,u,t) 

如果數據沒有一個固定的時間步長,你可以一個創建timeseries object第一。並使用sim而不是lsim

+0

我以0.1秒的速度輸入十進制數(加速度)。我可以把它們變成我真正希望的任何格式。 lsim只是爲了測試它,還是爲了實際使用? – Steve

+0

當然它是真正的用途。我添加了「響應」 - 該矢量包含每個時間步的輸出/響應數據。因此,創建一個像上面那樣的時間矢量,用你的步長,注意所有的矢量具有相同的長度(時間和輸入數據),它將起作用。 – thewaywewalk

+0

我已經做了一些進一步的研究,似乎lsim被用來評估一個固定的時間段。如何在連續的時間段內使用tf。 IE瀏覽器。每0.1秒我收到一個新的數據點,我該如何評估到當前時間的功能? – Steve