对传递函数进行递推最小二乘法程序
时间: 2023-06-29 09:19:10 浏览: 105
以下是对传递函数进行递推最小二乘法的 MATLAB 程序示例:
```matlab
% 输入数据
u = [1.2, 1.3, 1.4, 1.5, 1.6];
y = [0.9, 1.2, 1.5, 1.8, 2.1];
% 确定最高阶数
n = 2;
% 构造数据矩阵
U = zeros(length(u), n+1);
for i = 1:length(u)
for j = 0:n
U(i, j+1) = u(i)^j;
end
end
% 计算系数矩阵
theta = (U'*U)\(U'*y');
% 输出传递函数系数
num = theta(end:-1:2)';
den = [1, theta(1:end-1)']';
% 输出传递函数
sys = tf(num, den)
```
在这个示例程序中,我们通过输入数据 `u` 和 `y`,确定最高阶数 `n`,构造数据矩阵 `U`,然后使用最小二乘法计算系数矩阵 `theta`。最后,我们将传递函数系数 `num` 和 `den` 组合成一个传递函数对象 `sys`。
阅读全文