精华内容
下载资源
问答
  • 基于VC 与MATLAB混合编程的温度控制系统的模拟,程国怀,,应用MATLAB的engine引擎函数实现VC 与MATLAB的混合编程,结合温度PID控制系统实例,详细介绍参数的优化和接口实现的过程,最后在VC 的界面
  • 这是PID的标准形式包括比例/积分/微分三部分,e为偏差 下面我们分析三个环节的作用,设:当前系统状态A,目标状态B, e=B-A,初始状态e>0 (以下是个人的理解,欢迎读者评论) 1 比例环节P e越大u越大,当A...

    这是PID的标准形式包括比例/积分/微分三部分,e为偏差

    下面我们分析三个环节的作用,设:当前系统状态A,目标状态B, e=B-A,初始状态e>0

    (以下是个人的理解,欢迎读者评论)

    1 比例环节P

    e越大u越大,当A近似B时,e非常小,u也非常小,现实系统的u除了要满足自身系统的需求,还要分担给克服磨擦,空气阻力等等,因此最终A总是和B差一点,这个很小的u用在克服阻碍上了(它会存在一个小误差)

    2 微分环节d

    此环节就是e的斜率,A在趋近B的过程中e的值始终为正,但e的斜率为负,它不希望e变化,当A稳定在恒定值时,e的斜率为零,它也就失去作用(但它无法消除误差)

    3 积分环节i

    我们一直都知道,积分的数学意义就是求函数与坐标轴围成的面积(这里是指A与目标B围成的面积),它希望面积为零,当比例环节造成的误差存在时(此时A<B),它就会发挥作用,直到围成的面积和为零(它可以消除误差)

     

    这是编程中u的计算方法

    u(i) = Kp * (x_last - x(i)) +

          Ki * (x_last - 2 * x(i - 1) + x(i - 2)) +

          Kd * x_last

    u为控制量,x_last为目标值。x(i)为当前值

    下面是matlab编程实例:

    已知:A= [-2 -1;1 0] , B = [1 ; 0],现用P控制器来控制这个系统(搞清楚P控制,积分微分内容也是如法炮制)

    matlab脚本如下:

    A = [-2 -1;

             1 0];

    B = [1;0];

    C = [0 0];

    D = 0;

    sys = ss(A,B,C,D);%组成空间量

    sys1 = c2d(sys,0.1);%转为离散,采样时间0.1s

    x = [1;0];%系统初始状态

    x_last = [0;0];%我们期望的最终目标

    Kp = [0.001 0.001];%系数不能太大,这里Kp是1*2的

    %Ki.......

    %Kd........

    %下面开始进行P控制

    for i = 1:100

      u = Kp * (x_last - x(:,i));%u控制器算出的控制量

      x(:,i+1) = sys1(1,1).A * x(:,i) + sys1(1,1).B * u;%为了保证矩阵维度一致,u必须是1*1的,所以Kp需要是1*2的

    end

    到此程序结束,在这要注意几点:

    1 一定要注意矩阵维度问题,维度很容易出错;

    2 循环时要保证每个状态都能被循环到;

     3     注意系数不能太大,有时候调试半天也不知道是怎么回事,其实就是系数太大导致u大的离谱;

     

    转载于:https://www.cnblogs.com/niulang/p/9049265.html

    展开全文
  • 这是VC与Labview、Matlab编程论文资料,全部为pdf格式,讲述有VC编程技巧、也有VC与Labview混合编程, VC与matlab混合编程,有365个,约500M,分成4个【独立】压缩包,如果想要全部的论文则需要下载全部压 缩包,...
  • 即使是理论非常复杂的现代控制理论,其效果也往往不尽人意,甚至在一些方面还不及传统的PID控制。20世纪70年代,人们除了加强对生产过程的建模、系统辨识、自适应控制等方面的研究外,开始打破传统的控制思想,试图...

    1

    一、前言

    工业生产的过程是复杂的,

    建立起来的模型也是不完善的。

    即使是理论非常

    复杂的现代控制理论,其效果也往往不尽人意,甚至在一些方面还不及传统的

    PID

    控制。

    20

    世纪

    70

    年代,人们除了加强对生产过程的建模、系统辨识、自适

    应控制等方面的研究外,

    开始打破传统的控制思想,

    试图面向工业开发出一种对

    各种模型要求低、

    在线计算方便、

    控制综合效果好的新型算法。

    在这样的背景下,

    预测控制的一种,也就是动态矩阵控制(

    DMC

    )首先在法国的工业控制中得到

    应用。

    因此预测控制不是某种统一理论的产物,

    而是在工业实践中逐渐发展起来

    的。预测控制中比较常见的三种算法是模型算法控制(

    MAC

    )

    ,动态矩阵控制

    (

    DMC

    )以及广义预测控制。本篇所采用的是动态矩阵控制,其采用增量算法,

    因此在消除稳态余差方面非常有效。

    二、控制系统设计方案

    2.1

    控制系统方案设计图

    动态矩阵控制是基于系统阶跃响应模型的算法,隶属于预测控制的范畴。

    它的原理结构图如下图

    (1)

    所示:

    (1)

    预测控制原理结构图

    上图就是预测控制原理结构图,

    从图中我们可以看到,

    预测控制的主要特点。

    即建立预测模型;

    采用滚动优化策略,

    采用模型误差反馈矫正。

    这也是预测控制

    的本质所在。下面将对这三个特点一一说明。

    2.2

    预测控制基本原理

    1

    、预测模型:预测模型的功能是根据对象历史信息和未来输入对对象输出

    进行预测,

    它是被控对象的准确模型。

    这里只强调模型的功能而不强调其结构形

    式。因此,预测模型可以是状态方程、传递函数等传统的参数模型,对于线性稳

    展开全文
  • 这是VC与Labview、Matlab编程论文资料,全部为pdf格式,讲述有VC编程技巧、也有VC与Labview混合编程, VC与matlab混合编程,有365个,约500M,分成4个【独立】压缩包,如果想要全部的论文则需要下载全部压 缩包,...
  • 这是VC与Labview、Matlab编程论文资料,全部为pdf格式,讲述有VC编程技巧、也有VC与Labview混合编程, VC与matlab混合编程,有365个,约500M,分成4个【独立】压缩包,如果想要全部的论文则需要下载全部压 缩包,...
  • 这是VC与Labview、Matlab编程论文资料,全部为pdf格式,讲述有VC编程技巧、也有VC与Labview混合编程, VC与matlab混合编程,有365个,约500M,分成4个【独立】压缩包,如果想要全部的论文则需要下载全部压 缩包,...
  • MATLAB生成pid代码,可以直接在编程中使用,包括模型和参数。可以直接滑动response time和transient,与之前的曲线对比然后更新数据就可以将pid调的比较好了。也可以直接上面更改pid的值。
  • 基于 MATLAB/Simulink 的PID 参数整定 摘 要针对PID参数整定过程的复杂性基于MATLAB/Simulink仿真环境...真参数节省了大量的计算和编程工作量通过仿真实例验证了该方法的 有效性 关键词PID 控制参数整定MATLAB/Simulink
  • 要针对PID参数整定过程的复杂性基于MATLAB/Simulink仿真环境模拟临界比例度法PID参数整定的方法和步骤给出了一种简单有效的PID参数整定方法与通常的整定方法比较其优点是非常直观可以随意修改仿真参数节省了大量的...
  • 利用单纯形优化算法,用MATLAB编程PID参数进行寻优
  • 基于MATLAB软件便捷的编程平台,选择粒子群算法、鲸鱼算法、灰狼算法等群体智能算法,在3维空间中搜索最优PID参数的组合。 将整定的结果经串口发送给下位机,下位机根据参数运行电机等负载,将运行的情况发送给...

    基于MATLAB/GUI的PID在线整定装置

    1. 上位机软件界面设计

    在这里插入图片描述

    上位机通过串口与下位机实现通讯。

    2.PID参数整定的方法

    基于MATLAB软件便捷的编程平台,选择粒子群算法、鲸鱼算法、灰狼算法等群体智能算法,在3维空间中搜索最优PID参数的组合。
    将整定的结果经串口发送给下位机,下位机根据参数运行电机等负载,将运行的情况发送给上位机进行评价,并调整参数优化的结果。
    经过若干次迭代运算,找到最优的参数组合。

    展开全文
  • 引言PLC 和 HMI 的仿真联调环境实现了闭环控制回路中人...以单容水箱为例,传递函数为我们同样知道 PID 控制器的时域函数为拉普拉斯变换得到传递函数如下在 PLC 程序当中,我们可以通过设定 PID 功能块,使之变成一...

    引言

    PLC 和 HMI 的仿真联调环境实现了闭环控制回路中人机界面和控制器部分的仿真功能。

    dd4e46e6e0a99828574136a8373168f8.png

    被控对象和测量变送环节同样可以通过 PLC 编程进行仿真。

    此处忽略执行机构。

    被控对象及闭环回路仿真原理

    1. 众所周知,我们通常使用传递函数来描述被控对象。以单容水箱为例,传递函数为
    7e698be1540fdab35f0a75940e179676.png

    我们同样知道 PID 控制器的时域函数为

    e55a014273efd71209ea9fbd4e8a2b7c.png

    拉普拉斯变换得到传递函数如下

    e0ab5ff1ddcc39b5e4e5abc5b1a53d48.png
    1. 在 PLC 程序当中,我们可以通过设定 PID 功能块,使之变成一个积分环节。

    设定

    2d7e21fbc2eb22d2b1b8175abf19ed0a.png

    ,禁用比例功能,并将"输出"连回到"输入"构成自反馈回路。

    957b99ebb62d04eab1f1e265777b1aba.png

    由方框图变换法则得到新的传递函数, 一个惯性环节(一阶环节)

    c4f75816a90baa71416031218cc2ab00.png
    1. 由此,我们可以在 PLC 当中构建一个完整的带有"被控对象"的反馈控制回路。
    87616caccc54f95048149ce28d29000c.png

    PLC 编程

    1. 打开SIMATIC Manager编程软件,新建项目并完成硬件组态;
    1. 双击 "OB1"进入编程界面;
    9dec618c0cce4eb2420b30c5fd5eb599.png
    1. 插入常开、常闭触点和置位、复位线圈来制作常开、常闭静态常量以备后用。
    8cd1b6fe87e0b9d972d8a54647c97431.png
    1. 展开"Libraries"的树状结构→ "Standard Library" → "PID Control Blocks",找到"FB41

    CONT_C ICONT"并拖拽到"程序段 3";

    32c6cfebb6edaa5cc22e2653e0cc1bf7.png
    1. 为此功能块创建相对应的数据块;
    2d84823d4cf396ccf802669a87987752.png
    1. 为功能块设定相关参数;通过"MOVE"指令将输出传递回输入。
    cfcffb0c9284ddb193b79c2cf1c8fe6d.png
    1. 新建"程序段 4",从"FB blocks"中再插入一个"FB41"为之分配"DB2"并设定相关参数或地

    址;

    91c53247153d381bb17783665dde8971.png
    f99a0fe03f567a6e8130e8aaf2b0d344.png
    1. 相关地址参数参照如下:
    3d5bd1e6ec1b678a951f11717a98614d.png

    HMI 触摸屏组态及联合仿真

    1. 打开"TIA Portal"软件并创建新项目,添加 HMI 设备并组态与 PLCSIM 的通讯连接;
    1. 在"默认变量表"中新建变量并设置相关参数和地址;
    d3fa13d0712b551dae39fe19812ea84c.png
    1. 插入"趋势"控件,添加趋势并设置相关属性。
    8745c9273a3f7485a0b4faca39c04c53.png
    054e1b9570e4827c8b202994d56c9da6.png
    1. 插入"棒图"元素以及静态图形,并设置相关属性;
    33e38ac7f29bb2de2257ffcca623a074.png
    1. 插入"IO 域"元素,并设置相关属性;
    f682a6c431fb1d30d0b48050c2bd7200.png
    1. 关于"P、I、D、手自动开关"元素,它由三个部分组成;
    bb68df5f831e35df3ce5d5e189637ccf.png

    "ON"和"OFF"图形以"可见性"动画关联标签状态;

    ef3e95dd499f7052edc0601281868332.png
    048349e9e915a3227994534ad0cd7fc1.png

    一个不可见的"按钮"关联"单击"事件;

    d73c4fd7d3e10a6730ea55f6af36ed39.png

    将三个部分重叠,并将按钮设置为最上层;

    1. 打开 PLCSIM 软件,下装程序并打到运行状态,启动人机界面仿真并开始测试;

    PID 控制器设为手动模式,设定手动值,可以看到 PID 输出保持不变,被控对象的过程量

    持续增长表现为一个一阶惯性环节;

    2f2551345e9188ffa6b20b7150da3b41.png

    将 PID 控制器设置为自动模式,设置"P, I, D"参数并给出 SP 值,会看到被控对象响应更

    快并跟随 SP 值;

    b438a83f6450d9179145f0e2f676689f.png

    结语

    本例仅提供给读者一个在PID控制回路中被控对象的仿真方法,仍然有许多地方可以改进例如:

    • 使用功能和功能块对仿真被控对象程序逻辑进行封装;
    • 使用OB35 循环中断组织块进行PID回路编程;
    • 被控对象使用实际工程量单位, 则加入模拟量输入、输出量程转换逻辑程序;
    • PID控制器加入无扰切换功能;
    • 人机界面加入报警、闪烁、数据导出等功能;
    • 被控对象加入纯滞后环节
    f75fc5301f5ff65571973c8d3f0978a6.png
    展开全文
  • 引言PLC 和 HMI 的仿真联调环境实现了闭环控制回路中人...以单容水箱为例,传递函数为我们同样知道 PID 控制器的时域函数为拉普拉斯变换得到传递函数如下在 PLC 程序当中,我们可以通过设定 PID 功能块,使之变成一...
  • 简单的卫星姿态控制系统,采用基于飞轮的PID控制,动力学方程参考《航天器姿态动力学与控制》,使用了两种编程方式,m文件与Simulink+S函数,适合初学者学习与改进。
  • (2)熟练掌握台达编程技巧; (3)熟悉实验室水箱系统、变频器的接线方法; (4)学会用文件寄存器来读取数据并处理数据; (5)学会台达PLC内部PID控制器指令的运用; (6)学会根据实际模型搭建单闭环和串级反馈...
  • 其实这篇文章基本是转自一片论文的,只是论文是用simulink仿真实现,而这里的使用代码实现,并且只是注重实现的...用matlab编程法和游动鼠标法求二阶传递函数的上升时间、峰值时间、超调量和调节时间 PID算法模...
  • 代码不能自动运行,需要将模糊控制FIS文件加载到工作区中。此外输入变量系数需要自己根据...适合有一定编程经验的人下载应用,程序通过m文件更改仿真中的变量,运行比较慢,感兴趣的可以将m文件写成sfun加入到仿真中。
  • 精品文档 控制系统仿真实验 Matlab 部分实验结果 精品文档 精品文档 目 录 实验一 MATLAB 基本操作 1 实验二 Matlab 编程 5 实验三 Matlab 底层图形控制 6 实验四 控制系统古典分析 12 实验五 控制系统现代分析 15 ...
  • 目 录 TOC \o "1-1" \h \z \u 前 言 1 实验一 MATLAB基本操作 2 实验二 MATLAB编程 6 实验三 MATLAB底层图形控制 6 实验四 控制系统古典分析 6 实验五 控制系统现代分析 6 实验六 PID控制器的设计 9 实验七 系统状态...
  • Matlab程序导入Codesys PLC教程

    千次阅读 2020-02-09 17:40:03
     在Matlab中仿真好的程序可以直接导入到PLC中,省去我们重新编程的时间,本文就通过一个简单的PID控制例子来演示这一过程。  在Matlab(2019b版本)中点击Simulink图标就能看到Simulink的启动页面,在搜索框中输入...
  • 基于Matlab与PLC的实时控制系统 基于Matlab的S7-200 PLC温度实时控制系统,结合Matlab强大的计算能力和灵活的编程方法,解决了PLC控制系统的局限性该系统在上位机Matlab的Simulink中实现单神经元自适应PID控制算法,下...
  • 本书系统地介绍了国际控制界应用最广的MATLAB语言及其在控制教学与研究中的应用,侧重于介绍MATLAB语言编程基础与技巧、科学运算问题的MATLAB求解、线性系统的建模和计算机辅助分析、非线性系统的仿真分析、控制系统...
  • matlab神经网络30个案例分析

    热门讨论 2011-06-01 20:06:07
    根据PID神经元网络控制器原理,在MATLAB编程实现PID神经元网络控制多变量耦合系统。 第7章 RBF网络的回归——非线性函数回归的实现65 本例用RBF网络拟合未知函数,预先设定一个非线性函数,如式y=20+x21-10cos(2...
  • 2.2MATLAB编程原则 2.3分支结构 2.3.1if分支结构 2.3.2switch分支结构 2.4循环结构 2.4.1while循环结构 2.4.2for循环结构 2.5其他控制程序命令 2.6程序调试 2.6.1程序调试命令 2.6.2常见...
  • 4.1 MATLAB编程仿真的方法 4.1.1 简介 4.1.2 静态系统的MATLAB仿真 4.1.3 连续动态系统的MATLAB仿真 4.1.4 离散动态系统的MATLAB仿真 4.1.5 基于数据流和基于时间流的仿真技术 4.2 Simulink仿真的数据结构和编程调用...
  • 第43章 神经网络高效编程技巧——基于MATLAB R2012b新版本特性的探讨 第44章 层次分析法 第45章 灰色关联度 第46章 熵权法 第47章 主成分分析 第48章 主成分回归 第49章 偏最小二乘 第50章 逐步回归分析 第51章 模拟...
  • MATLAB神经网络43个案例分析源代码&数据 《MATLAB 神经网络43个案例分析》目录 第1章 BP神经网络的数据分类——语音特征信号分类 ...第43章 神经网络高效编程技巧——基于MATLAB R2012b新版本特性的探讨
  • MATLAB 神经网络43个案例分析》目录 第1章 BP神经网络的数据分类——语音特征信号分类 第2章 BP神经网络的非线性系统建模——非线性函数拟合 ...第43章 神经网络高效编程技巧——基于MATLAB R2012b新版本特性的探讨

空空如也

空空如也

1 2 3
收藏数 56
精华内容 22
关键字:

matlabpid编程

matlab 订阅