低数据极限下非线性动力学稀疏辨识模型预测控制(Matlab代码实现)

文章介绍了一种将稀疏识别非线性动力学(SINDYc)与模型预测控制(MPC)相结合的方法,用于从有限的噪声数据中学习和增强控制系统的性能。通过SINDYc模型,可以从少量测量中识别出简洁且可解释的动态模型,进而优化MPC。文中还展示了使用Matlab进行数据生成和神经网络训练的部分代码。
摘要由CSDN通过智能技术生成

       目录

💥1 概述

📚2 运行结果

🎉3 参考文献

👨‍💻4 Matlab代码


💥1 概述

​非线性动力学的稀疏识别与模型预测控制(MPC)相结合。该框架从少量测量中学习受外生控制变量影响的非线性动力学模型。由此产生的SINDYc模型能够基于有限的噪声数据增强模型预测控制(MPC)的性能。SINDYc 模型是简洁的,识别模型中解释数据所需的最少项,使它们可解释和推广。

📚2 运行结果

主函数部分代码:

clear all, close all, clcfigpath = '../FIGURES/LORENZ/';datapath = '../DATA/LORENZ/';addpath('../utils');SystemModel = 'LORENZ';%% Generate DataONLY_TRAINING_LENGTH = 1;InputSignalType = 'sphs'; % prbs; chirp; noise; sine2; sphs; mixedgetTrainingData%% NARX: TrainingModelName = 'NARX';Nvar = 3;rng(2,'twister')SUBSTRACT_MEAN = 0;xmean = mean(x)';if SUBSTRACT_MEAN == 1    xtrain = x' - repmat(xmean',[1 size(x',2)]);    utrain = u; else    xtrain = x';    utrain = u;end% prepare training datayt = con2seq(xtrain);yi = con2seq(utrain);% Neural networkstateDelays = 1;        % state delay vectorinputDelays = 1;        % input delay vectorhiddenSizes = [10];     % network structure (number of neurons per layer)% Nonlinear autoregressive neural networknet = narxnet(inputDelays,stateDelays, hiddenSizes);% Training parameters %nnstartnet.trainFcn = 'trainlm';net.trainParam.min_grad = 1e-10;net.trainParam.showCommandLine = 1;% Prepares training data (shifting, copying feedback targets into inputs as needed, etc.)[Us,Ui,Si,Ss] = preparets(net,yi,{},yt); % Train net with prepared training data in open-loopticnet = train(net,Us,Ss,Ui,Si);toc% view(net)% Close loop for recursive predictionnetc = closeloop(net);

🎉3 参考文献

[1]孙涛,沈允文,孙智民等.行星齿轮传动非线性动力学模型与方程[J].机械工程学报,2002(03):6-10.

部分理论引用网络文献,若有侵权联系博主删除。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值