模型预测控制(MPC)+逻辑控制(相平面分区控制)--matlab例程介绍_预测控制原理框图-程序员宅基地

技术标签: matlab  模型预测控制  MPC  逻辑控制  相平面分区控制  

模型预测控制(MPC)+逻辑控制(相平面分区控制)–matlab例程介绍
MATLAB-模型模糊神经网络预测控制demo(训练数据用):链接:https://blog.csdn.net/answerMack/article/details/103628559

构建思想

在这里插入图片描述
代码原理在word文档中:
逻辑控制器是对人主动开环控制及强时变控制的模拟,预测控制是对师傅经验的模拟,其共同特征是主动时变控制。两者的结合将是对人的控制思维特点的较全面模拟。本文提出的仿人逻辑控制器则是基于这样一种观察:有经验的师傅在系统超出极限时甚至处于危险时会毫不犹豫的切断某些重要通路,而在系统工作处于正常范围时则依照经验控制,使波动尽量小。这样人工处理的结果是:系统在正常区间运行平稳,突发事件瞬间切换,能够确保系统安全,模型失配时也能保证满意运行。虽然这样的处理也许不是全局最优的,但却是在确保强鲁棒性基础上的局部最优,这样一种策略对于某些工业控制至关重要。
在这里插入图片描述
控制器的工作原理如下:在系统工作时逻辑控制器和预测控制器同时工作,其控制输出量分别为K(t)和U(t)。逻辑控制设置较宽的误差控制带其作用是用最短的时间将系统带入正常状态,暂且不管小的波动。预测控制的作用是利用预测模型将系统稳定在正常状态,并使控制曲线最优。控制量切换要选择合适的时机对这两种控制信号进行切换。具体而言,当系统远离正常状态,即通过逻辑状态判断其运行状态处于K4+、K3+和K4-、K3-四种状态时,控制量切换到逻辑控制状态。而当运行状态在K+、K-和K时,控制量切换到预测控制器,此时相当于师傅的经验开始起作用。这样一种控制结构充分利用了逻辑控制对模型匹配要求极低的特点,在模型失配的情况下仍然能取得满意效果,而在模型匹配情况下取得最优效果。此控制器的本质是时变开环控制加闭环校正控制,其物理概念清晰,系数整定方便,是将人的思维控制方式融合到模型中的结果。

matlab simulink框图

此处运用matlab simulink模块构建:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
MPC控制器参数:
在这里插入图片描述
在这里插入图片描述

结果展示

在这里插入图片描述

模型失配时 框图及结果

在这里插入图片描述
在这里插入图片描述

扰动后框图及结果

在这里插入图片描述
扰动值:
在这里插入图片描述
更改仿真时间到50s后的结果:
在这里插入图片描述
可以对结果分析:
在15秒添加扰动后,MPC+逻辑控制还是可以回到之前的顺滑轨迹,比之前回的慢了。

s函数代码


mpc2.m

Ts=.1;    % Sampling time
p=20;     % Prediction horizon
m=3;      % Control horizon

MPC2=mpc(tf(3,[2 3 4]),Ts,p,m);

NineState.m

%参数e0和de0是设定的相平面误差允许范围。
function [sys,x0,str,ts] = mfile(t,x,u,flag,e0,de0)

switch flag,
  %%%%%%%%%%%%%%%%%%
  % Initialization %
  %%%%%%%%%%%%%%%%%%
  % Initialize the states, sample times, and state ordering strings.
  case 0
    [sys,x0,str,ts]=mdlInitializeSizes;

  %%%%%%%%%%%
  % Outputs %
  %%%%%%%%%%%
  % Return the outputs of the S-function block.
  case 3
    sys=mdlOutputs(t,x,u,e0,de0);

  %%%%%%%%%%%%%%%%%%%
  % Unhandled flags %
  %%%%%%%%%%
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/answerMack/article/details/103665885

智能推荐

mac终端运行mysql -uroot -p时出现-bash: mysql: command not found_在terminal内输入mysql -u root -p,提示“comman not found”.-程序员宅基地

文章浏览阅读7.5k次。原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然就找不到命令解决方法:我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。1. 知道mysql命令或mysqladmin命令的完整路径,比如mysql的路径是:/usr/local/mysql/bin/mysql,2. 执行命令:$sudo ln -s /usr/lo_在terminal内输入mysql -u root -p,提示“comman not found”.

差分进化算法与多对象优化问题的研究进展-程序员宅基地

文章浏览阅读888次,点赞18次,收藏18次。1.背景介绍差分进化算法(Differential Evolution, DE)是一种基于变异和重组的全局搜索优化算法,它在过去几年中得到了广泛的关注和应用。在这篇文章中,我们将深入探讨差分进化算法与多对象优化问题的研究进展,包括背景介绍、核心概念与联系、算法原理和具体操作步骤、数学模型公式详细讲解、具体代码实例和解释、未来发展趋势与挑战以及常见问题与解答。1.1 背景介绍多对象优化问...

小程序毕设作品之微信预约订座小程序毕业设计(7)中期检查报告-程序员宅基地

文章浏览阅读456次。小程序毕设作品之微信预约订座小程序毕业设计(7)中期检查报告

C语言命令编程_c语言 运行 命令行-程序员宅基地

文章浏览阅读1.5k次,点赞5次,收藏11次。C语言命令编程按下Win+R,输入CMD,进入命令行模式Ipconfig是查看本机的ip.Ping www.qq.com是查看网络是否畅通这个时候是文件被占用,退出这个应用程序就可以CD是进入一个文件夹的路径,进入路径以后,就可以直接执行System在stdlib.h中system(“C:\CMD.exe”);参数只有一个,就是输入命令行并执行所有的C程序,只要是黑窗口,都可以在命令行下执行,C黑窗口程序可以调用其他任何C语言黑窗口程序在命令行执行,调_c语言 运行 命令行

MATLAB编写自己的BP神经网络程序_编写 1 套相关的神经网络应用系统程序matlab-程序员宅基地

文章浏览阅读1.5w次,点赞32次,收藏253次。目录前言一、什么是神经网络?二、手写代码1.主代码2.归一化函数2.反归一化函数二、工具箱代码总结前言因为项目需要,自己搞了一个BP神经网络的程序,顺便做一下笔记人工智能现在的分支有1机器学习:就是通过算法从大数据中学习到规律,而后对未知的结果进行预测。 1.21监督学习:输入和输出已知,训练集中的目标是人为注入的,常见的作用是分类数据。回归分析,统计分类。 1.22非监督学习:事先没有样本,直接对数据进行建模,非监督学习最点..._编写 1 套相关的神经网络应用系统程序matlab

安装ubuntu:-程序员宅基地

文章浏览阅读38次。ubuntu

随便推点

H5技术完美实现调用手机摄像头、相册。图片上传base64,图片压缩、预览、删除以及图片旋转90度的处理--demo。_h5实现调用手机摄像头相册。完美实现图片压缩、预览、删除的功能。---demo-程序员宅基地

文章浏览阅读1w次。看了帖子上有很多关于H5调用手机摄像头、相册的例子,也有很多可靠的栗子,综合技术点针对HTML5调用用手机相机、相册的的一次代码整合。实现提供完成的Demo提供给大家,可直接应用于项目中需要图片上传的功能。因为是H5直接调用,并没有用到像Cordova或者HTML5Plus的 JavaScript库去调用手机硬件,因此在低端手机可能会调用不到摄像图、或者相册,因此这也是在H5在这里的不足,不好解决。_h5实现调用手机摄像头相册。完美实现图片压缩、预览、删除的功能。---demo

VMware 6.0 vFlash Read Cache setup-程序员宅基地

文章浏览阅读449次。VMware vFlash Read Cache allowsto leverage host local SSDs enabling a caching layer for the VMs. No other software or extra VIBs need to be installed on the host since allneces..._vmware读取外设flash

Android笔记大全链接_安卓 笔记软件 超链接-程序员宅基地

文章浏览阅读1.7k次。android笔记链接_安卓 笔记软件 超链接

ubuntu 的硬盘安装安装_ubuntu自定义硬盘安装-程序员宅基地

文章浏览阅读487次。也许是自己太笨,搞了一天用u盘安装都是重启后没有启动项,在网上找了很多的解决方法都无效,我认为肯定是启动项被写进了u盘里,所以重启才没有启动项,最终决定放弃,改用硬盘安装;将安装步骤记下来备忘 先准备两个东西EasyBCD软件和iso镜像1.安装EasyBCD_ubuntu自定义硬盘安装

java 切割字符串split用法_list.add(ss.substring(start,i));-程序员宅基地

文章浏览阅读6.4k次。java 切割字符串split用法_list.add(ss.substring(start,i));

UVa11520-程序员宅基地

文章浏览阅读498次。Problem: Fill the Square Description: 有一个矩阵,当中的元素是大写字母,但是有个前提,相邻的位置大写字母不能相同,现在这个矩阵中的某些位置已近有字母了,要你把这个矩阵填满,并且保证字典序最小。 Solution: 简单DFSDFS。但是要注意的是,如果我这种做法超时了,那就把空的位置存到一个数组中,这样dfsdfs时就可以减少栈的空间使用。 Code(JA_uva11520

推荐文章

热门文章

相关标签