看板 MATLAB 關於我們 聯絡資訊
想做出 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