概述
一、摘要
本文使用最小二乘法,辨识传递函数的基本参数。
二、基本概念
1.最小二乘法
关键:计算出拟合点和实际点的距离的平方和,找到理想拟合曲线的参数。
应用:对于控制系统的辨识中,方便我们使用差分方程离散化传递函数,进行各参数的辨识。
![08dea906e8f971eb04f85a85e753ab4c.png](https://file2.kaopuke.com:8081/files_image/20230519/08dea906e8f971eb04f85a85e753ab4c.png)
2.传递函数离散化
关键:使用一阶向后法,使得传递函数从s域转换到z域上。
公式:
![804dd29291e0d23398c0b893fd8640af.png](https://file2.kaopuke.com:8081/files_image/20230519/804dd29291e0d23398c0b893fd8640af.png)
例子:
在matlab创建一个连续传递函数 Gs = tf([1],[2 1]) 离散化,用Gz = c2d(Gs,0.01)。 其中0.01为离散采样时间
![c8569f73067fb84aacc9b5815b04090d.png](https://file2.kaopuke.com:8081/files_image/20230519/c8569f73067fb84aacc9b5815b04090d.png)
三、代码及结果验证
%尝试手写最小二乘法
%生成伪随机二值信号
Range = [-2,2];
Band = [0 1];
u1 = idinput([63,1,3],'prbs',Band,Range);
u1(:,1) = 1;
title('Periodic Signal')
%搭建一阶系统
sys = tf([1],[5 2]);
sysdiscrete = c2d(sys,0.01);
t = 0:0.01:1.88;
%获取输入输出数据
y1 = lsim(sys,u1,t);
%A
A=zeros(2);%2*2矩阵
for i = 1:188
A(1,1) = A(1,1) + y1(i,1)^2;
A(2,2) = A(2,2) + u1(i,1)^2;
A(1,2) = A(1,2) - y1(i,1) * u1(i,1);
end
A(2,1) = A(1,2);
%B
B = [0;0];%2*1矩阵
for i = 1 : 188
B(1,1) = B(1,1) -y1(i,1) * y1(i+1,1);
B(2,1) = B(2,1) + u1(i,1) * y1(i+1,1);
end
%合并
C = inv(A) * B;
最后
以上就是敏感诺言为你收集整理的matlab 最小二乘法拟合_最小二乘法辨识1阶离散传递函数的全部内容,希望文章能够帮你解决matlab 最小二乘法拟合_最小二乘法辨识1阶离散传递函数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复