[討論] 步階響應 (疊代法)
想做出 s+1 / s+2的步階響應
用程式打很簡單 H = tf([1,1],[1,2]); step(H)
用反拉氏轉換也可以
但我想把它拆成時域的疊代形式讓它成功跑出一樣的圖,方法如下
As+B Y(s)
---- = ----
Cs+D U(s)
(As+B)U(s) = (Cs+D)Y(s)
u(t)-u(t-h) y(t)-y(t-h)
A( ---------- ) + B(impulse) = C( ----------- ) + Dy(t)
h h
(A/h)*u(t) - (A/h)*u(t-h) + (C/h)*y(t-h)
整理後為 y(t) = -----------------------------------------
D - C/h
故code長這樣
A=1; B=1; C=1; D=2; h=1;
y = zeros(1,1000);
t = linspace(h+1,10,1);
y(t) = ( A/h*heaviside(t) - A/h*heaviside(t-h) + C/h*y(t-h) ) / (D-C/h);
plot(t,y,'*')
在此y(t)的t只能是正整數,所以間隔都只能是1,要如何讓中間的點數增加?
導致h只能是整數,我令為1,這樣間隔未免太大了吧?
然後U(s)的反拉氏是impulse,我實在不知道那一項存不存在...
要怎麼改才能完成這個結果呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.40.91.221
※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1492356592.A.CE0.html
※ 編輯: siate (114.40.91.221), 04/16/2017 23:34:43
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章