作者siate ()
看板MATLAB
标题[讨论] 步阶响应 (叠代法)
时间Sun Apr 16 23:29:49 2017
想做出 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://webptt.com/cn.aspx?n=bbs/MATLAB/M.1492356592.A.CE0.html
※ 编辑: siate (114.40.91.221), 04/16/2017 23:34:43