您现在的位置是:主页 > news > dux5.0 WordPress/梧州网站seo
dux5.0 WordPress/梧州网站seo
admin2025/5/10 19:39:01【news】
简介dux5.0 WordPress,梧州网站seo,辽源网站制作,微信app下载安装官方版2022Matlab系统辨识尝试之详细过程1前面介绍了Matlab系统辨识工具箱的一些用法,这里拿一个直观的例子来尝试工具箱的具体用法。比较长,给个简单目录吧:1. 辨识的准备2. 辨识数据结构的构造3. GUI辨识4. 辨识效果5. 对固有频率的辨识6. 结构化辨识…
Matlab系统辨识尝试之详细过程1
前面介绍了Matlab系统辨识工具箱的一些用法,这里拿一个直观的例子来尝试工具箱的具体用法。比较长,给个
简单目录吧:
1. 辨识的准备
2. 辨识数据结构的构造
3. GUI辨识
4. 辨识效果
5. 对固有频率的辨识
6. 结构化辨识
7. 灰箱辨识
8. 加入kalman滤波的灰箱辨识
1.辨识的准备
在辨识前,首先要根据自己辨识的情况,确定要辨识的状态空间模型的一些特点,如连续还是离散的;有无直通
分量(即从输入直通到输出的分量);输入延迟;初始状态等。了解了这些情况就可以更快速的配置辨识时的一些设
置选项。
2.辨识数据结构的构造
使用原始数据构造iddata结构:
data = iddata(y, u, Ts);
这里以一个弹簧质量系统的仿真为例
代码如下,其中用到了函数MDOFSolve,这在之前的博文介绍过 (/?p=183),
拿来用即可。如果发现运行有错误,可以将MDOFSolve 函数开头的一句
omega2 = real(eval(omega2));
注释掉。
% 弹簧质量系统建模
clc
clear
close all
m = 200;
k = 980*1000;
c = 1.5*1000;
m1 = 1*m;
m2 = 1.5*m;
k1 = 1*k;
k2 = 2*k;
k3 = k1;
%% 由振动力学知识求固有频率
M = [m1 0; 0 m2];
K = [k1+k2 -k2; -k2 k3+k2];
[omega, phi, phin] = MDOFSolve(M, K);
fprintf('固有频率:%fHz\n', subs(omega/2/pi));
%% 转化到状态空间
innum = 2;
outnum = 2;
statenum = 4;
A = [0 1 0 0;
-(k1+k2)/m1 0 k2/m1 0;
0 0 0 1;
k2/m2 0 -(k3+k2)/m2 0];
B = [0 0;
1/m1 0;
0 0;
0 1/m2];
C = [1 0 0 0;
0 0 1 0];
D = zeros(outnum, innum);
K = zeros(statenum, innum);
mcon = idss(A,B,C,D,K,'Ts',0); % 连续时间模型
figure
impulse(mcon)
%% 信号仿真,构造数据供辨识
n = 511; % 输入信号长度
Ts = 0.001;
t = 0:Ts:(n-1)*Ts;
u1 = idinput(n, 'prbs'); % 输入 1为伪随机信号
u2 = zeros(n, 1); % 输入2为空
u = [u1 u2];
simdat = iddata([],u,Ts); % 形成输入数据对象
e = randn(n, 2)*1e-7;
simopt = simOptions('AddNoise', true, 'NoiseData', e); % 添加噪声
yn = sim(mcon, simdat, simopt); % 加噪声仿真
y = sim(mcon, simdat); % 无噪声仿真
figure
for i = 1:outnum
subplot(outnum, 1, i)
plot(t, y.OutputData(:, i))
hold on
plot(t, yn.OutputData(:, i), 'r')
axis tight
title(sprintf('输出%d', i))
legend({'无噪声仿真', '含噪声仿真'})
end
% 保存输入输出数据,供后续辨识
data = iddata(y.OutputData, simdat.InputData, Ts);
datan = iddata(yn.OutputData, simdat.InputData, Ts);
运行后,变量data 中保存了无噪声的系统仿真输入输出数据,datan 中为含噪声的仿真数据。产生的图形如下
固有频率:9.915822Hz
固有频率:22.853200Hz
3. GUI辨识
辨识可以从GUI开始,GUI 的辨识对应的代码可以导出,方便以后更便捷的调整参数。
3.1 输入 ident