怎么用MATLAB编写差分方程的程序? 20
输入额e(k)=1;输出为u(k);k=1:1:100;u(k)=173.2e(k)-346.3e(k-1)+173e(k-2)+1.951u(k-1)-0.9512u(...
输入额e(k)=1;输出为u(k);k=1:1:100;
u(k)=173.2e(k)-346.3e(k-1)+173e(k-2)+1.951u(k-1)-0.9512u(k-2) 展开
u(k)=173.2e(k)-346.3e(k-1)+173e(k-2)+1.951u(k-1)-0.9512u(k-2) 展开
展开全部
方程中涉及u(k-1)和u(k-2)两项,所以还必须给出初始状态u(0)和u(-1)。否则无法求解。
另外,e(k)=1是指k=1:100中e始终为1么?
另外,e(k)=1是指k=1:100中e始终为1么?
追问
初始时刻应该都是取0吧?e(0)=e(-1)=u(0)=u(-1)=0;e(k)表示单位阶跃输入;采样时间ts=0.0001;
time(k)=k*ts;
plot(time,e,'k',time,u,'k');
追答
我不管你的采样时间,只讨论离散部分。
e = zeros(102, 1); % 把-1和0也算进去,共102项
u = zeros(102, 1);
e(3:end) = 1;
for k = 3:102
u(k) = 173.2*e(k)-346.3*e(k-1)+173*e(k-2)+1.951*u(k-1)-0.9512*u(k-2);
end
% 去掉前两项,得到1...100的u
up = u(3:end);
ep = e(3:end);
stem(up);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询