本文主要是介绍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:对于状态空间方程的系统辨识的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!