声明

这篇文章目前仅对电机调速有效,暂时不知道对调整姿态这样的pid是否可以有同样的效果。如果是SISO,我的感觉是可以的,可以尝试方波信号而不是简单的阶跃。

采集数据

给电机提供一个单位阶跃输入(固定一个模拟量或是pwm占空比,本文用的是arduino的analogWrite(100)),单片机定时采集电机转速(单位时间编码器脉冲)并通过串口输出,PC端用串口通讯工具采集。

导入数据

截取恰当的部分,导入数据到MATLAB,作为输出向量(output)

再定义输入向量:

input = 100 * ones(63,1);

系统辨识

安装System Identification工具箱,Import data一栏选择Time domain data,自行填好相关参数,然后点击import


operation一栏选择Transfer Function Models,poles、zero的个数随缘选择,基本上都差不多,然后点击estimate,就会出预测的结果


系统辨识完毕后双击右边的“tf1”可以得到结果如图

为了验证系统辨识是否准确,可以给估计出来的传递函数一个阶跃输入,看输出是否和采集到的差不多。值得注意的是,MATLAB中离散系统传递函数的通式是如下所示的,和上图结果的格式略有差别,需要自行变换。

执行下面代码,得到下图结果,发现参数比较合理。

num = [0.07286, 0, 0];
den = [1, -1.277, 0.0065, 0.3002];f = tf(num, den, 0.05);plot(t, output/100)
hold on
step(f)

整定pid参数

接下来利用PID Tuner工具箱整定参数。执行以下代码,自行选择CONTROLLER,我选择了PID,然后拖动滑块得到较为理想的(没有完美的)响应曲线形状,这个就是你需要的PID参数:

pidTuner(f)


写在后面

有人会问采集的是转速、或者说一个和转速正相关的量,调节的是输出的模拟量大小,是不是有问题、不能直接相减?

不是的,控制系统需要大概经过:1、输入量,2、控制器,3、执行器,4、被控对象,5、输出量这些部分。我采集的数据,即阶跃信号下的输出,是3-5的过程,输入和输出不是同一个单位,不能直接相减。而当我经过PID控制器(增加2控制器这个环节),我设定的值,也就是我的输入,发生了量纲、数值上的转换,再成为执行器的输出,这时候的输入量和输出量已经是同一个量纲了,可以直接相减。

利用matlab工具箱的pid参数科学整定方法相关推荐

  1. 【文章转载】使用常见Matlab工具箱调节pid参数(飞机垂直速度控制系统设计)

    申明:这是一篇转载文章,本人害怕原链接失效,故转载,没有商用,作者也可也私我删除. 使用常见Matlab工具箱调节pid参数 小白的第一篇知乎文章,如果有不准确的地方,请各位大神多多指教. 前几天完成 ...

  2. PID控制通俗解释与PID参数的整定方法--以温控系统为例

    PID是比例.积分.微分的简称,PID控制的难点不是编程,而是控制器的参数整定.参数整定的关键是正确地理解各参数的物理意义,PID控制的原理可以用人对炉温的手动控制来理解.阅读本文不需要高深的数学知识 ...

  3. matlab负荷分配程序,利用MATLAB工具箱进行机组负荷优化分配

    火电厂利用负荷优化分配算法,在全厂机组组合方式一定的情况下,根据各运行机组的煤耗特性,合理分配机组所带负荷,可以使全厂总的煤耗量最小[1],从国内外调度经验可知,热效率可提高1%~2.5%.优化算法代 ...

  4. 继电反馈法自整定_用STM32F407玩控制—继电反馈法PID参数自动整定

    继电反馈法PID参数自动整定原理如图1所示和图2所示(参见Astrom <Adaptive Control>),也有文献称为极限环法PID参数自动整定,图1中当系统整定开关切在T位置时,由 ...

  5. 信捷plc的pid控制_基于信捷plc的pid参数自整定的温度控制

    苏卫峰 摘要:本文介绍了一种基于临界振荡法的PID自整定方法,通过整定可得到较佳的PID参数.采用信捷XC系列本体的PID控制,采用开关量输出,利用PT100传感器采集到温度,通过信捷模拟量温度混合模 ...

  6. 谱估计matlab,利用MATLAB工具箱比较三种谱估计算法

    总第175期2009年第1期 舰船电子工程 Ship Electr onic Engineering V o l.29No.1 96 利用MATLAB工具箱比较三种谱估计算法* 盖明明1)郗海龙2)姜 ...

  7. 实验二利用MATLAB工具箱对混杂噪声的音频信号进行滤波

    实验二利用MATLAB工具箱对混杂噪声的音频信号进行滤波 一.小提琴音频的加噪去噪处理 要求:选择子作业1中的音频信号,自行给定滤波器的系统函数,分别采用时域线性卷积和差分方程两种方法对音频信号进行滤 ...

  8. matlab 提取极值,利用matlab 进行极值统计的一个例子——gev 方法.pdf

    利用matlab 进行极值统计的一个例子--gev 方法 利用 Matlab 进行极值统计的一个例子--GEV 方法 科研菜鸟 /u/sanshiphy 数据和例子均来自于 S. Coles, An ...

  9. 利用Matlab工具箱求解线性规划

    实验目的:利用matlab求解整数线性规划,掌握相关函数的调用格式和参数的具体含义. 实验内容:把优化问题转化为能识别的矩阵运算, 调用提供的优化函数, 编写相应的M文件,并执行相应的程序. 实验原理 ...

最新文章

  1. iOS 自定义UITabBar
  2. 微软官方Windows Server 2008实战攻略系列
  3. 在Python中使用Twitter Rest API批量搜索和下载推文
  4. 前端学习(2891):vue工程化配置
  5. codeforces 1A-C语言解题报告
  6. RabbitMQ 基本概念与高级特性
  7. 【机器学习】机器学习从零到掌握之八 -- 教你读懂决策树原理
  8. linux服务器拓扑图,Linux服务器作为网关的DNS分离解析服务(CentOS 7版本)
  9. 智能优化算法:龙格-库塔优化算法 - 附代码
  10. char 数组和 int 之间转化
  11. Unity中加载本地图片
  12. 秒、毫秒和年月日的转换
  13. modelica学习
  14. GitChat·Python | 零基础小白如何入门 Python 编程
  15. uniapp 获取到当前位置信息显示在地图上
  16. MAC使用 SVN问题
  17. iOS 大型项目开发漫谈
  18. C练题笔记之:Leetcode-12. 整数转罗马数字
  19. Maven2 的新特性
  20. AES128-CBC

热门文章

  1. iOS开发Xcode7真机调试教程
  2. VMware16以及Ubuntu1.6的下载安装配置详细教程
  3. pandas计算主力合约收益率
  4. 一款系统优化工具,给Windows调教得服服帖帖
  5. 网页JS弹出广告代码,头部,右下角,网页中漂浮,对联广告代码等大全
  6. Sqlserver2000数据备份怎么导入到Sqlserver2008
  7. 基于微信小程序云开发(校园许愿墙app)妄想替代学校的表白墙
  8. 五大机器学习微信公众号推荐
  9. 游戏服务器Mina框架开发
  10. python基础------类与对象之间的关系,封装、继承、多态