最小二乘法获取系统传递函数:
function [numd, dend] = LeastSquare(x, y, N)
count = length(y);
M = count - 1;
ai = zeros(N*2, M);
for i=1:N
ai(i, i:M) = x(1:(count-i));
ai(i+N, i:M) = -y(1:(count-i));
end
bi = y(2:(count));
xd = (inv(ai*ai')*ai*bi)';
numd = [0 xd(1:N)];
dend = [1 xd(N+1: N+N)];
输入参数:
x --- 系统输入阵列
y --- 系统输出阵列
N --- 系统传递函数的阶数
函数输出:
系统 Z 传递函数分子与分母的系数,即: h(z) = numd(z) / dend(z)
这个函数实在是居家旅行 ..., 啊,是建模仿真必备良器。 |