当前位置: 首页 > news >正文

通过MATLAB实现PID控制器,积分分离控制器以及滑模控制器

目录

1.课题概述

2.系统仿真结果

3.核心程序与模型

4.系统原理简介

5.完整工程文件


1.课题概述

        通过MATLAB实现PID控制器,积分分离控制器以及滑模控制器。通过对比三个算法可知,采用滑模控制算法,其具有最快的收敛性能,较强的鲁棒性,以及较小的超调量。其性能略优于基于积分分离的PID控制器,远优于PID控制器的控制性能。

2.系统仿真结果

(完整程序运行后无水印)

3.核心程序与模型

版本:MATLAB2022a

................................................................
[A,B,C,D] = c2dm(A1,B1,C1,D1,ts,'z'); 
x   = [-0.5;-0.5]; 
r_1 = 0;
r_2 = 0; for k=1:1:4000 time(k) = k; r(k)    = 15; c       = 10;eq      = 5;q       = 30; Ce      = [c,1]; dr(k)   = (r(k)-r_1)/ts; dr_1    = (r_1-r_2)/ts; r1(k)   = 2*r(k)-r_1; dr1(k)  = 2*dr(k)-dr_1; R       = [r(k);dr(k)]; R1      = [r1(k);dr1(k)]; E       = R-x; e(k)    = E(1); de(k)   = E(2); s(k)    = Ce*E; ds(k)   =-eq*ts*sign(s(k))-q*ts*s(k); u(k)    = inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));    x       = A*x+B*u(k); y(k)    = x(1); r_2     = r_1; r_1     = r(k); 
end figure;
plot(time,r,'r',time,y,'b'); 
xlabel('Time(second)');
ylabel('(r and y)'); 
save r3.mat y
08_023-1m

4.系统原理简介

        PID控制器、积分分离控制器以及滑模控制器是控制工程中常用的三种控制器类型,它们各自拥有独特的设计原理和应用场合。

        PID 控制器由比例单元( P )、积分单元( I )和微分单元( D )组成。其输入 e (t) 与输出 u (t) 的关系为公式1:

       积分分离控制器是对PID控制器的一种改进,旨在解决PID控制器在大偏差时积分项积累过快导致的饱和问题。在系统出现大偏差时,暂时关闭积分作用,待系统进入稳定区后再启用,以提高系统的稳定性。

       在PI控制中,积分环节的作用是消除静态误差,提高系统的控制精度。如果在误差较大的初始阶段引入积分环节,会造成PI的积分累积,从而引起系统较大的超调。积分分离PI控制器的基本设计思想是当输入有较大变化,指令值与实际反馈的偏差值大于一定阈值时,不进行积分,只进行比例调节。而当偏差值小于一定值时,恢复积分调节以消除系统的静态误差。

       滑模控制(Sliding Mode Control, SMC)是一种非线性控制策略,通过设计一个滑动面,使系统状态沿着该滑动面向目标状态快速收敛。其特点是鲁棒性强,能有效抑制外部扰动和系统不确定性。

      下面介绍一下如何进行滑模控制器的设计。首先,将滑模控制定义一个开关面,将状态控制分成两个具有不同动态特性的子空间,并选择合适的控制规律可以控制系统的状态,一旦从任意一个子空间到达滑模面之后,将沿着滑模面的方向运动并始终保持在滑模面上。设计控制规律必须满足趋近条件,以此保证滑模面的存在。

5.完整工程文件

v

v

http://www.lryc.cn/news/379473.html

相关文章:

  • Node.js 渲染三维模型并导出为图片
  • Win11下安装VS2022失败的解决办法
  • 动态规划:基本概念
  • 小山菌_代码随想录算法训练营第二十九天| 455. 分发饼干 、376. 摆动序列、53. 最大子序和
  • 快手可灵大模型开放视频续写功能,可生成最长约3分钟视频
  • 【代码随想录】【算法训练营】【第45天】 [198]打家劫舍 [213]打家劫舍II [337]打家劫舍III
  • python安装目录文件说明----Dlls文件夹
  • java实现持续集成
  • ClickHouse安装与下载22.3.2.2
  • 【Go语言】Gin 框架教程
  • MySQL性能问题诊断方法和常用工具
  • CGFloat转NSString保持原有的精度,末尾不添加0
  • UDS服务——TransferData (0x36)
  • jQuery 基本操作
  • 有玩家在2011年的MacBook上成功运行了Windows XP 还安装了触摸屏
  • 高纯PFA容量瓶PFA试剂瓶在半导体材料的应用
  • AudioSep:从音频中分离出特定声音(人声、笑声、噪音、乐器等)本地一键整合包下载
  • Prompt 提示词工程:翻译提示
  • 【MySQL 的三大日志的作用】
  • 数据库中数据的id生成和算法
  • SystemVerilog Assertion精华知识
  • pdf怎么压缩到2m以内或5m以内的方法
  • Butter Knife 8
  • AMSR/ADEOS-II L1A Raw Observation Counts V003地球表面和大气微波辐射的详细观测数据
  • MySQL之复制(十一)
  • 深入源码设计!Vue3.js核心API——Computed实现原理
  • 驾考小技巧:老北京布鞋!距离高考出分还剩3天,我却看到有些孩子已经拿了“满分”——早读(逆天打工人爬取热门微信文章解读)
  • java-正则表达式 2
  • hadoop常见简单基础面试题
  • 泄漏检测(LDAR)在建档和检测过程中造假套路和不规范行为