matlab离散的状态空间参数辨识,MATLAB:对于状态空间方程的系统辨识

本文介绍了如何利用MATLAB辨识状态空间方程中的未知参数。

假设我们的被控系统的表达如下:

我们想要通过实验数据辨识出参数K1和K2​,方法如下:

第一步,采集实验数据。

需要的数据包括系统一段时间内的系统输出Y(ts),以及控制量U(ts),这些数据应该是以某个固定的采样频率进行采集得到的。另外,最好是要采集系统的初始状态(虽然这个初始状态也是可以辨识的,但能采集到尽量就采集到)。

第二步,运用MATLAB进行辨识

代码如下,重要的步骤都体现在注释中了:

clc;

clear all;

close all;

format long

%% 读取数据,这一部分大家按照自己的应用来更改

data = xlsread('nopec-static-4.xlsx');

t = data(:,1) - data(1,1);

x1 = data(:,2)/360*2*pi - 0.1;

x2 = data(:,3)/16.4/57.3;

x = [x1,x2];

u1 = zeros(size(x1));

u2 = zeros(size(x2));

u = [u1, u2];

%% 搭建状态空间模型

% dot(X) = AX + BU + Ke

你可能感兴趣的:(matlab离散的状态空间参数辨识,MATLAB:对于状态空间方程的系统辨识)