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

       目录

💥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
    评论
非线性模型预测控制(NMPC)是一种目前广泛应用于工业控制领域的方法,它可以用于处理涉及非线性动态模型的控制问题。而MATLAB是一种功能强大的数值计算软件,具有丰富的工具箱和函数,使得实现非线性模型预测控制成为可能。 在MATLAB中,我们可以使用预测模型来构建非线性模型的预测控制器。首先,我们需要使用系统动态方程构建非线性模型,并且可以使用MATLAB的符号计算工具箱来简化生成过程。然后,我们可以使用非线性预测模型来预测系统的未来行为。 接下来,我们可以使用非线性模型预测控制器来确定控制量的最优值,以实现系统的高性能控制。传统的非线性模型预测控制方法使用非线性优化算法来解决控制器的最优化问题,但这种方法在计算复杂度和实时性方面存在一定的困难。 幸运的是,MATLAB提供了一种使用模型预测控制的函数:"mpc"函数。该函数可以自动解决最优化问题,并生成设计好的非线性模型预测控制器。除此之外,MATLAB还提供了其他强大的工具箱,如优化工具箱和控制系统工具箱,用于帮助我们在非线性模型预测控制中处理不同的问题。 总结起来,MATLAB是一个非常适合实现非线性模型预测控制的工具。它提供了丰富的函数和工具箱,帮助我们构建和求解非线性模型,生成设计好的预测控制器,并且能够处理不同类型的问题。通过使用MATLAB,我们可以更轻松地进行非线性模型预测控制的设计和实现

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值