首页 > 其他分享 >m基于simulink的PID控制器,模糊PID控制器以及MPC控制器性能对比仿真

m基于simulink的PID控制器,模糊PID控制器以及MPC控制器性能对比仿真

时间:2023-07-03 22:45:47浏览次数:47  
标签:控制器 gaussmf PID trimf 0.3333 MPC

1.算法仿真效果

matlab2022a仿真结果如下:

 

       从图仿真结果可知,PID控制器,其超调较大,且控制器进入收敛状态时间也最长,。对于模糊PID控制器,其超调小于PID控制器,且收敛速度也较快,因此其性能优于传统的PID控制器。对于MPC控制器,其超调最小,控制器进入稳定状态速度也最快,因此其控制性能最优,但是MPC的上升时间较慢,大约需要0.1s左右完成。但在实际情况下,对控制对象起到影响的主要是控制器的超调和收敛稳定时间两个因素。因此,MPC控制器的控制效果最优,其次为模糊PID控制器,最次是PID控制器。

 

 

 

 

 

2.算法涉及理论知识概要

        根据PID控制器的基本原理,PID控制器的结构如下图所示:

 

      PID控制器的比例调整参数,积分调整参数以及微分调整参数对系统的控制效果有着十分明显的影响。随着微分调整参数的变小,PD控制器的阶跃响应有较大的超调量,但是系统的控制响应速度较慢。反之,随着微分调整参数不断变大,系统超调减小,系统的控制响应速度较快。在本课题中,控制器的参数设置为Kp= 1000000,Ki= 10000,Kd=15000。

 

      模糊PID控制器的基本结构如下所示:

 

 

        在实现模糊PID控制器之前,我们首先需要设计模糊规则表,在本课题中,我们选取七个语言等级作为模糊控制器的语言等级,即负大(NB)、负中(NM)、负小(NS)、零(ZO)、正小(PS)、正中(PM)、正大(PB)。然后模糊控制器的输入为E和Ec,输出为PID控制器的、、的值的调整值。我们这里采用的隶属函数为系统中的NB和PB采用正态型分布;NM、NS、Z0、Ps、PM则采用三角形分布。 完成隶属函数构建之后,开始设计模糊规则,模糊规则设置原则为:当输入误差E和Ec较大的时候,则应该快速消除误差,当输入误差E和Ec较小的时候,这主要控制目的是防止超调过大。因此我们构建如下的模糊规则表:

 

   模糊fis规则文件如下:

[System]
Name='files'
Type='mamdani'
Version=2.0
NumInputs=2
NumOutputs=3
NumRules=49
AndMethod='min'
OrMethod='max'
ImpMethod='min'
AggMethod='max'
DefuzzMethod='centroid'

[Input1]
Name='E'
Range=[-6 6]
NumMFs=7
MF1='NB':'gaussmf',[0.9716 -5.856]
MF2='NM':'trimf',[-6 -4 -2]
MF3='NS':'trimf',[-4 -2 0]
MF4='ZO':'trimf',[-2 0 2]
MF5='PS':'trimf',[0 2 4]
MF6='PM':'trimf',[2 4 6]
MF7='PB':'gaussmf',[0.8494 6]

[Input2]
Name='Ec'
Range=[-3 3]
NumMFs=7
MF1='NB':'gaussmf',[0.4247 -3]
MF2='NM':'trimf',[-3 -2 -1]
MF3='NS':'trimf',[-2 -1 0]
MF4='ZO':'trimf',[-1 0 1]
MF5='PS':'trimf',[0 1 2]
MF6='PM':'trimf',[1 2 3]
MF7='PB':'gaussmf',[0.4247 3]

[Output1]
Name='Kp'
Range=[0 1]
NumMFs=7
MF1='NB':'gaussmf',[0.07079 0]
MF2='NM':'trimf',[0 0.1667 0.3333]
MF3='NS':'trimf',[0.1667 0.3333 0.5]
MF4='ZO':'trimf',[0.3333 0.5 0.6667]
MF5='PS':'trimf',[0.5 0.6667 0.8333]
MF6='PM':'trimf',[0.6667 0.8333 1]
MF7='PB':'gaussmf',[0.07079 1]

[Output2]
Name='Ki'
Range=[0 1]
NumMFs=7
MF1='NB':'gaussmf',[0.07078 0]
MF2='NM':'trimf',[0 0.1667 0.3333]
MF3='NS':'trimf',[0.1667 0.3333 0.5]
MF4='ZO':'trimf',[0.3333 0.5 0.6667]
MF5='PS':'trimf',[0.5 0.6667 0.8333]
MF6='PM':'trimf',[0.6667 0.8333 1]
MF7='PB':'gaussmf',[0.07078 1]

[Output3]
Name='Kd'
Range=[0 1]
NumMFs=7
MF1='NB':'gaussmf',[0.07078 0]
MF2='NM':'trimf',[0 0.1667 0.3333]
MF3='NS':'trimf',[0.1667 0.3333 0.5]
MF4='ZO':'trimf',[0.3333 0.5 0.6667]
MF5='PS':'trimf',[0.5 0.6667 0.8333]
MF6='PM':'trimf',[0.6667 0.8333 1]
MF7='PB':'gaussmf',[0.07078 1]

[Rules]
1 1, 7 1 5 (1) : 1
1 2, 7 1 3 (1) : 1
1 3, 6 2 1 (1) : 1
1 4, 6 2 1 (1) : 1
1 5, 5 3 1 (1) : 1
1 6, 4 4 2 (1) : 1
1 7, 4 4 5 (1) : 1
2 1, 7 1 5 (1) : 1
2 2, 7 1 3 (1) : 1
2 3, 6 2 1 (1) : 1
2 4, 5 3 2 (1) : 1
2 5, 5 3 2 (1) : 1
2 6, 4 4 3 (1) : 1
2 7, 3 4 4 (1) : 1
3 1, 6 1 4 (1) : 1
3 2, 6 2 3 (1) : 1
3 3, 6 3 2 (1) : 1
3 4, 5 3 2 (1) : 1
3 5, 4 4 3 (1) : 1
3 6, 3 5 3 (1) : 1
3 7, 3 5 4 (1) : 1
4 1, 6 2 4 (1) : 1
4 2, 6 2 3 (1) : 1
4 3, 5 3 3 (1) : 1
4 4, 4 4 3 (1) : 1
4 5, 3 5 3 (1) : 1
4 6, 2 6 3 (1) : 1
4 7, 2 6 4 (1) : 1
5 1, 5 2 4 (1) : 1
5 2, 5 3 4 (1) : 1
5 3, 4 4 4 (1) : 1
5 4, 3 5 4 (1) : 1
5 5, 3 5 4 (1) : 1
5 6, 2 6 4 (1) : 1
5 7, 2 7 4 (1) : 1
6 1, 5 4 7 (1) : 1
6 2, 4 4 3 (1) : 1
6 3, 3 5 5 (1) : 1
6 4, 2 6 5 (1) : 1
6 5, 2 6 5 (1) : 1
6 6, 2 7 5 (1) : 1
6 7, 1 7 7 (1) : 1
7 1, 4 4 7 (1) : 1
7 2, 4 4 6 (1) : 1
7 3, 2 5 6 (1) : 1
7 4, 2 6 6 (1) : 1
7 5, 2 6 5 (1) : 1
7 6, 1 7 5 (1) : 1
7 7, 1 7 7 (1) : 1

  

     

 

根据MPC控制器的基本原理,MPC控制器的基本结构如下图所示:

 

        MPC控制器结构较为复杂,这里我们采用SIMULINK自带的MPC工具箱来实现该结构,我们构建如下的MPC仿真模型:

 

       这里,空间状态变量矩阵A,B,C,D为6*6维度的矩阵。本文通过如下方法,将SIMULINK建立的3-PUU仿真模型转换为空间状态方程。分别通过一个阶跃响应输入到公式3的空间状态方程中和3-PUU并联机构SIMULINK仿真模型,通过对比空间状态方程输出和3-PUU并联机构SIMULINK仿真模型输出是否接近,来计算对应的空间状态变量矩阵A,B,C,D,在本课题中,我们通过测试得到空间状态变量矩阵A,B,C,D分别为:

 

 

 

3.MATLAB核心程序

 

 

 

 

 

rng('default')
 
load piderr.mat
t1=ans.Time;
d1=ans.Data(:,1);
 
load fuzzypiderr.mat
t2=ans.Time;
d2=ans.Data(:,1);
 
load mpc.mat
t3=ans.Time;
d3=ans.Data(:,1);
 
 
figure;
plot(t1(1:end),d1(1:end),'r');
hold on
plot(t2(1:end),d2(1:end),'b');
hold on
plot(t3(1:end),d3(1:end),'g','LineWidth',2);
hold on
grid on
legend('PID','Fuzzy PID','MPC');
xlabel('time(s)');
ylabel('error');
xlim([0,1]);

  

标签:控制器,gaussmf,PID,trimf,0.3333,MPC
From: https://www.cnblogs.com/51matlab/p/17524335.html

相关文章

  • 华为超聚变2288H V5 服务器安装Windows系统后 PCI数据捕获和信号处理控制器 出现感叹
    2288Hv5服务器安装Windows系统后,PCI数据捕获和信号处理控制器出现感叹号可以在IBMC界面的“诊断-黑匣子”关闭黑匣子功能,然后重启设备解决也可以通过在操作系统侧安装IBMA软件解决2288Hv5服务器安装Windows系统后,PCI数据捕获和信号处理控制器 出现感......
  • win10中的端口及端口占用PID查看
    1、查看所有端口:netstat-ano2、查看固定端口:(注意findstr后要有空格)netstat-ano|findstr"1883"3、查看被占用端口的PIDnetstat-ano|findstr"8083"4、查看指定PID的进程tasklist|findstr"5788"5、结束进程强制(/F参数)杀死pid为5788的所有进程包括子进程(/T参数)t......
  • Linux系统驱动之编程_配置LCD控制器_基于IMX6ULL
    资料下载coding无法使用浏览器打开,必须用git工具下载:gitclonehttps://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git视频观看百问网驱动大全编程_配置LCD控制器_基于IMX6ULL参考资料,GIT仓库里:芯片资料IMX6ULL\开发板配套资料\datasheet\Core_board\CPU\IMX6ULL......
  • 08_调试与使用虚拟的GPIO控制器
    目录资料下载视频观看调试与使用虚拟的GPIO控制器1.硬件功能2.编写设备树文件3.上机实验3.2编译、替换设备树3.3编译、安装驱动程序4.STM32MP157上的bug资料下载coding无法使用浏览器打开,必须用git工具下载:gitclonehttps://e.coding.net/weidongshan/linux/doc_and_sourc......
  • 创建域控制器
    1.打开服务器管理器,点击添加角色和功能:2.默认,点击下一页: 3.勾选ActiveDirectory,点击下一页: 4.默认,点击下一页,点击安装: 5.等待安装完成,点击关闭:6.完成后回到服务器管理器界面,点击通知--将此服务器提升为域控制器:7.选择添加新林,填入自定义的根域名: 8.填入DS......
  • Media Player Classic - BE MPC-BE 1.6.8 2023.7.1
    MediaPlayerClassic-BEMediaPlayerClassic-BE是一个免费的多媒体播放器,是MediaPlayerClassic(MPC)的一个分支。它提供了许多功能和改进,以增强用户体验和播放器的性能。以下是MediaPlayerClassic-BE的一些特点和功能:多种音视频格式支持:它支持许多常见的音频和......
  • Ryu控制器教程
    RYU不要使用apt的方法安装,这样的安装是不完整的,并且相关文件不易查找。1.下载ryu源码cdcdDesktopgitclonehttps://gitee.com/lpm-123/ryu2.安装RYU环境安装PIPcdryupipinstall-rpip-requirements.txt-ihttps://pypi.tuna.tsinghua.edu.cn/simple安装依......
  • PID 的搜索算法(PSA)附matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • 基于mpc(最优控制)的车辆自适应巡航控制(acc),模型预测控制,通过carsim与matlab联防实现速度
    基于mpc(最优控制)的车辆自适应巡航控制(acc),模型预测控制,通过carsim与matlab联防实现速度与间距控制。最优控制(MPC):最优控制是一种优化方法,用于设计系统的控制策略,以使系统在给定约束条件下达到最优性能。车辆自适应巡航控制(ACC):车辆自适应巡航控制是一种智能驾驶技术,通过使用传感器和......
  • MATLAB仿真Gough-Stewart并联机器人斯图尔特6自由度并联机器人逆运动学仿真 动力学控
    MATLAB仿真Gough-Stewart并联机器人斯图尔特6自由度并联机器人逆运动学仿真动力学控制pid控制1.搭建了六自由度Stewart并联机器人simulinksimscape仿真模型2.建立了逆向运动学仿真输入位置和姿态求解各个杆长3.运用pid控制器进行动力学跟踪控制使用MATLAB进行了Gough-Stewar......