专家PID控制matlab程序

2023-11-06

专家PID控制matlab程序
1 专家PID控制
专家PID控制的实质是:基于受控对象和控制规律的各种知识,无须知道被控对象的精确模型,利用专家经验来设计PID参数。专家PID控制是一种直接型专家控制器。
典型的二阶系统单位阶跃响应误差曲线如图2一5所示。
在这里插入图片描述
令e(k)表示离散化的当前采样时刻的误差值,e(k-1),e(k-2)分别表示前一个和前两个采样时刻的误差值,则有
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
施,相当于实施开环控制;II,IV,VI,…区域,误差绝对值朝增大的方向变化,此时,可根据误差的大小分别实施较强或一般的控制作用,以抑制动态误差。

2 实例状态
求三阶传递函数的阶跃响应
在这里插入图片描述
其中采样时间间隔为1ms。
在这里插入图片描述
在这里插入图片描述
3 仿真结果
1)轨迹跟踪
在这里插入图片描述
2)实时误差
在这里插入图片描述
4 matlab程序

%% 专家PID控制
clc
clear 
close all;
ts=0.001;

sys=tf(5.235e005,[1,87.35,1.047e004,0]);  %Plant
dsys=c2d(sys,ts,'z');
[num,den]=tfdata(dsys,'v');

u_1=0;u_2=0;u_3=0;
y_1=0;y_2=0;y_3=0;

x=[0,0,0]';
x2_1=0;

kp=0.6;
ki=0.03;     
kd=0.01;

error_1=0;
for k=1:1:500
time(k)=k*ts;
   
r(k)=1.0;                    %目标轨迹

u(k)=kp*x(1)+kd*x(2)+ki*x(3); %PID 控制器

%专家控制规则
%规则1
if abs(x(1))>0.8      %Rule1:Unclosed control rule
   u(k)=0.45;
elseif abs(x(1))>0.40        
   u(k)=0.40;
elseif abs(x(1))>0.20    
   u(k)=0.12; 
elseif abs(x(1))>0.01 
   u(k)=0.10;   
end   
。。。。。。略
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

专家PID控制matlab程序 的相关文章

  • 在 3d 空间中的两个平面之间进行插值

    我正在开发一种工具 可以让您在 3D 体积 上圈出 包围事物 我想通过标记 切片 1 和 3 并从该信息 填充 切片 2 来节省时间 两个简单的解决方案是 1 slice2 slice1 AND slice3 gets the overla
  • 对多个属性使用一种设置方法 MATLAB

    我有几个属性基本上使用相同的属性set method classdef MyClass properties A B end methods function mc MyClass a b Constructor mc A a mc B b
  • 在 Excel 中打印 MATLAB 图窗并调整其大小

    我在 MATLAB 中有两个带有手柄的图形hFig1 and hFig2 我想将它们打印到 Excel 中的特定单元格 单元格 E3 和 I3 并将它们重新调整为 2 英寸 x 3 英寸 我尝试过使用 AddPictures对象处理程序和使
  • matlab mex 文件和 C++ dll (Windows)

    我有一个带有 Test 类的 DLL 标题 class MY EXPORT Test public int doit const string str 和来源 int Test doit const string str return in
  • Matlab:如何显示数组的“真实”值?

    我有一个在脚本中计算的向量 计算后 我将值显示到命令窗口 显示如下 finalResults 1 0e 05 0 0001 0 0 0005 0 0002 0 0001 0 0027 0 0033 0 0001 0 0000 0 0000
  • MATLAB中如何画水平线和垂直线?

    我目前正在尝试在 MATLAB 中绘制简单的垂直线和水平线 例如 我想绘制线 y 245 我该怎么做呢 MATLAB 根据您提供的向量逐点进行绘图 因此 要创建一条水平线 您需要改变x同时保持y对于垂直线恒定 反之亦然 xh 0 10 yh
  • Matlab Mex文件编译

    我正在尝试编译一个 mex 文件以在 matlab 中使用套接字连接 问题是它总是说我没有安装sdk或编译器 但我已经安装了 Visual Studio 2010 Express Visual Studio 2012 Express Vis
  • Matlab中转换数据类型的有效方法(double vs. im2double)

    我想将真彩色图像转换为双精度 据我所知有两种方法可以做到这一点 double rgb img im2double rgb img 哪一种效率更高 谢谢 他们都是不同的 im2double将图像的范围转换为0 1如果数据类型是uint8 or
  • Python 函数句柄 ala Matlab

    在 MATLAB 中可以创建function handles http www mathworks co uk help techdoc ref function handle html与类似的东西 myfun arglist body 这
  • Matlab 字段名索引[重复]

    这个问题在这里已经有答案了 所以我有一个包含多个表的元胞数组 我试图访问表的第一个列名称 c table1 table2 table3 以下两行都给了我错误 fieldnames c 1 1 fieldnames c 1 1 Error i
  • 如何在没有安装Visual Studio的另一台机器上使用Visual Studio生成的dll?

    我已经在 Visual Studio 2012 中生成了动态库 我想在另一台机器上使用该库 但我不想在远程机器上安装 Visual Studio 我有 mex 库和 dll 我想运行一个使用这两个库的脚本 当我运行脚本时 出现以下错误 缺少
  • 使用 MATLAB 进行线路跟踪

    我有一个图像 我想将其转换为逻辑图像 包括线条为黑色 背景为白色 当然 可以使用阈值方法来实现这一点 但我不想使用这种方式来做到这一点 我想通过使用线路跟踪方法或类似的方法来检测它 这是关于视网膜血管检测的 我找到了一个article ht
  • MATLAB 特征函数

    我很好奇哪里可以找到完整的描述FEATURE功能 它接受哪些论点 没有找到文档 我只听说过memstats and getpid 还要别的吗 gt gt which feature built in undocumented 注意 更完整的
  • 在 Matlab 中高效获取像素坐标

    我想在 Matlab 中创建一个函数 给定一个图像 该函数将允许人们通过单击图像中的像素来选择该像素并返回该像素的坐标 理想情况下 人们能够连续单击图像中的多个像素 并且该函数会将所有相应的坐标存储在一个矩阵中 有没有办法在Matlab中做
  • matlab中的正则逻辑回归代码

    我正在尝试正则化 LR 在 matlab 中使用以下公式很简单 成本函数 J theta 1 m sum y i log h x i 1 y i log 1 h x i lambda 2 m sum theta j 梯度 J theta t
  • 如何找到平面和 3d 矩阵之间的交平面

    如果我有一堆图像并且尺寸如下 size M 256 256 124 我有 3 个点 它们的坐标是 coor a 100 100 124 coor b 256 156 0 coor c 156 256 0 如何创建 M 与这 3 个点定义的平
  • 如何更改Plotyy第二轴的颜色和字体大小?

    我使用 MATLAB 的plotyy 函数绘制了两条曲线 AX H1 H2 plotyy voltage span amplitude voltage span Ca SR The problem is that I cannot chan
  • 了解 fminunc 参数和匿名函数、函数处理程序

    请多多包涵 问题在最后 我试图找出 fminunc 调用方式的差异 这个问题源于 Andrew Ng 在他的 Coursera 机器学习课程中的第 3 周材料 我正在回答这个问题 Matlab Andrew Ng 机器学习课程中 t cos
  • Matlab 的 imresize 函数中用于插值的算法是什么?

    我正在使用 Matlab Octaveimresize 对给定的二维数组重新采样的函数 我想了解如何使用特定的插值算法imresize works 我在Windows上使用八度 e g A 1 2 3 4 是一个二维数组 然后我使用命令 b
  • 检测数据集中线性行为的算法

    我已经发布了一个关于对数据集的一部分进行多项式拟合的算法 https stackoverflow com q 17595932 2320757前一段时间收到一些建议去做我想做的事 但我现在面临另一个问题 我尝试应用答案中建议的想法 我的目标

随机推荐

  • CUDA和C++混合编程及CMakeLists.txt

    1 概要 首先认识一个问题 单从CMakeLists txt的角度来看 无法同时使用两种编译器编译两种语言 不过直接编写Makefile是可以的 通过设置不同的任务 可以实现一个Makefile编译两个语言 但这不是这里要讨论的重点 使用C
  • Mybatis的$和#的区别

    1 是将传入的值当做字符串的形式 eg select id name age from student where id id 当前端把id值1 传入到后台的时候 就相当于 select id name age from student w
  • 在BIOS中开启虚拟化技术

    电脑不能在虚拟机中安装操作系统时 需要在BIOS中开启虚拟化技术 什么是BIOS BIOS 是一个内置于个人计算机的程序 当您打开计算机时该程序启动操作系统 也称为系统固件 BIOS 是计算机硬件的一部分 不同于 Windows 如何进入B
  • PCL1.8.0+VS2013环境配置

    一 PCL环境配置 1 下载PCL 1 8 0 AllInOne msvc2013 win32exe和PCL 1 8 0 AllInOne msvc2013 win32exe pdb然后解压 配置环境变量PATH 下载链接 https pa
  • Windows 11最新版:任务管理器性能参数详解,什么是分页缓冲池和句柄

    首先 可以确定的一点是 大部分电脑都至少有一个CPU 内存 硬盘 网卡 显卡 Win11的任务管理器和Win10的任务管理器除了UI不同外 参数显示上是几乎一样的 所以Win10的用户也可以参考一下 CPU 通常 任务管理器的性能页面中 C
  • java JVM - 垃圾回收机制

    垃圾的定义 只要对象不再被使用了 那我们就认为该对象就是垃圾 对象所占用的空间就可以被回收 怎么判断对象不再被使用的呢 常用的算法有两个 引用计数法 和 可达性分析法 引用计数法思路很简单 当对象被引用则 1 引用释放时计数则 1 当计数器
  • 推荐一款最强Python自动化神器!不用写一行代码!

    搞过自动化测试的小伙伴 相信都知道 在Web自动化测试中 有一款自动化测试神器工具 selenium 结合标准的WebDriver API来编写Python自动化脚本 可以实现解放双手 让脚本代替人工在Web浏览器上完成指定的操作 虽然se
  • vue实现点击按钮刷新页面的方法:

    1 简单方法 第一种 使用location对象的reload 方法 window location reload 第二种 使用编程式导航 this router go 0 2 使用vue中provide和inject 推荐 在app vue
  • YOLO技术概要学习笔记3——YOLOV4到YOLOV8

    目录 一 前言 二 YOLOv4 1 一个集成了 Bag of Specials BoS 的增强架构 2 集成了Bag of freebies BoF 的高级训练方法 3 自我对抗训练 SAT 4 遗传算法进行超参数优化 三 YOLOv5
  • 如何反转一个单链表java

    目标 反转前 1 gt 2 gt 3 gt 4 反转后 4 gt 3 gt 2 gt 1 思维 思维关键点 1 关键点一 本质 两两相邻的节点 的指向变反了而已 清晰的抓本质 箭头方向的改变 这样才能写出简单代码 2 关键点二 指针工具 做
  • 【FPGA约束详解】——从入门到精通

    FPGA约束详解 从入门到精通 FPGA约束是FPGA设计中非常重要的一环 它能够限制和规范电路的行为 确保信号的稳定性和正确性 在FPGA的设计过程中 约束有许多种类 本文将对常见的五种约束进行详细介绍 时钟约束 时钟约束是最基本也是最重
  • Spring JPA @CreatedDate和@LastModifiedDate

    Spring Data JPA提供了注解 CreatedDate和 LastModifiedDate 用来保存创建时间和修改时间 大大降低了开发成本 一 使用步骤 1 启动类需要添加注解 EnableJpaAuditing SpringBo
  • Linux-编写一个自己的命令

    前言 1 在Linux中 我们对文件路径进行操作都需要输入命令 那么 有人可能就会有疑惑了 命令是什么东西 我们是否也可以创造出自己的命令呢 答案是可以的 命令本身其实就是可执行文件 但是 与普通的可执行文件的不同之处在于 命令的可执行文件
  • unity 内置图标

    lt 转 Unity内建图标列表 weixin 30878361 2018 11 14 12 32 00 211 收藏 文章标签 游戏 移动开发 ui 最后发布 2018 11
  • 一款好用的富文本编辑器

    目录 项目功能介绍 资源介绍 swagger接口文档 编辑器功能展示 项目目录讲解 前端 后端 部分代码展示 前端 富文本编辑器页面App vue 后端 文章查询保存 serviceImpl 功能演示 源码分享 给大家分享一个好用的富文本编
  • apt-get update和 upgrade的区别

    update update is used to resynchronize the package index files from their sources The indexes of available packages are
  • 【腾讯云 Cloud Studio 实战训练营】提升开发效率与协作:探索腾讯云 Cloud Studio 的强大功能与优势

    文章目录 一 前言 二 认识腾讯云 Cloud Studio 2 1 什么是云端开发环境 2 2 CDE 的特点与优点 2 2 1 提高效率 开发环境一键运行 2 2 2 提高生产力 可以并行的工作 2 2 3 开发更加规范 2 2 4 提
  • vscode设置sdk_1 visual studio code 配置C++开发环境 (windows 开发环境)

    0 引言 最近帮GF 不幸变成ex了 配置C 开发环境 一开始想给她装个visual studio13完事 但是一想到自己安装以及使用时的诸多麻烦 就有点退却 觉得没有这个必要 正好了解到vscode大行其道 决定按照官网指示配置一版 由于
  • 【STM32】中断与NVIC以外部中断为例

    前言 在stm32中姑且可以认为 异常就是中断 单片机上电之后 首先执行启动文件 开辟堆栈之后 开始初始化中断向量表 NVIC NVIC NVIC是嵌套向量中断控制器 控制着整个芯片中断相关的功能 它跟内核紧密耦合 是内核里面的一个外设 三
  • 专家PID控制matlab程序

    专家PID控制matlab程序 1 专家PID控制 专家PID控制的实质是 基于受控对象和控制规律的各种知识 无须知道被控对象的精确模型 利用专家经验来设计PID参数 专家PID控制是一种直接型专家控制器 典型的二阶系统单位阶跃响应误差曲线