前言
本文采用基于最小二乘的线性辨识方法和基于Nonlinear ARX模型的非线性辨识方法对图1所示的直流电机进行系统辨识,并分别设计H∞控制器,分析比较控制效果。
目录
- 前言
- 一、数据采集
- 二、系统辨识
- 1.最小二乘法(线性辨识)
- 2.Nonlinear ARX(非线性辨识)
- (1)去除非线性模块
- (2)加入非线性模块
- 三、H∞控制器比较
- 总结
一、数据采集
给电机输入幅值为60RPM的PRBS信号,采样周期为0.01s,共采集2000组数据。前1000组数据用于模型估计、训练,后1000组用于结果验证,输入输出数据如下。
二、系统辨识
1.最小二乘法(线性辨识)
设SISO线性时不变系统ARX数学模型为
即
假设该电机系统为5阶,即有10个未知参数,通过最小二乘法求出该系统为
该系统Bode图为
将基于最小二乘法辨识的模型带入验证集验证。
2.Nonlinear ARX(非线性辨识)
ARX模型
ARX 模型全称带外部输入的自回归 (Autoregressive with Extra Input)。模型结构方程:
u(t),y(t),e(t)分别是输入、输出和噪声。y(t-1),y(t-2),···,y(t-na),u(t),u(t-1),···,u(t-nb-1)是原始输入和输出的一些延迟项,它们可以看作 y(t) 的回归量 。系数矩阵 -a1,···bn是作用在这些回归量上的权重。线性 ARX 的输出 y(t) 是这些回归量的线性权重加和。
Nonlinear ARX 模型
y(t)与回归量之间的关系不是线性映射,而是一个非线性的映射 F,F可以选择不同的非线性函数,如小波网络,树分类,sigmoid 网络。
计算输出y(t)的步骤
1.根据当前输入 u(t)、历史输入 u(t-1)···、历史输出 y(t-1)··· 计算这些回归量 (regressor) 的值。
2.使用输出函数(同时包含线性和非线性两部分)将前面计算的回归量regressor 映射到输出。
(1)去除非线性模块
系统辨识结果:
模型验证:
(2)加入非线性模块
模型验证:
三、H∞控制器比较
基于上述两种方法辨识的结果,通过H∞算法用相同的加权函数合成控制器,阶跃响应如下:
总结
在两种系统辨识方法中,
从模型验证来说,Nonlinear ARX模型输出与实际输出吻合率高达91%。
由阶跃响应来说,由Nonlinear ARX模型算出的控制器控制电机阶跃响应震荡最小。
综合来说,Nonlinear ARX对该电机系统辨识效果最好。