利用matlab工具箱的pid参数科学整定方法
声明
这篇文章目前仅对电机调速有效,暂时不知道对调整姿态这样的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参数科学整定方法相关推荐
- 【文章转载】使用常见Matlab工具箱调节pid参数(飞机垂直速度控制系统设计)
申明:这是一篇转载文章,本人害怕原链接失效,故转载,没有商用,作者也可也私我删除. 使用常见Matlab工具箱调节pid参数 小白的第一篇知乎文章,如果有不准确的地方,请各位大神多多指教. 前几天完成 ...
- PID控制通俗解释与PID参数的整定方法--以温控系统为例
PID是比例.积分.微分的简称,PID控制的难点不是编程,而是控制器的参数整定.参数整定的关键是正确地理解各参数的物理意义,PID控制的原理可以用人对炉温的手动控制来理解.阅读本文不需要高深的数学知识 ...
- matlab负荷分配程序,利用MATLAB工具箱进行机组负荷优化分配
火电厂利用负荷优化分配算法,在全厂机组组合方式一定的情况下,根据各运行机组的煤耗特性,合理分配机组所带负荷,可以使全厂总的煤耗量最小[1],从国内外调度经验可知,热效率可提高1%~2.5%.优化算法代 ...
- 继电反馈法自整定_用STM32F407玩控制—继电反馈法PID参数自动整定
继电反馈法PID参数自动整定原理如图1所示和图2所示(参见Astrom <Adaptive Control>),也有文献称为极限环法PID参数自动整定,图1中当系统整定开关切在T位置时,由 ...
- 信捷plc的pid控制_基于信捷plc的pid参数自整定的温度控制
苏卫峰 摘要:本文介绍了一种基于临界振荡法的PID自整定方法,通过整定可得到较佳的PID参数.采用信捷XC系列本体的PID控制,采用开关量输出,利用PT100传感器采集到温度,通过信捷模拟量温度混合模 ...
- 谱估计matlab,利用MATLAB工具箱比较三种谱估计算法
总第175期2009年第1期 舰船电子工程 Ship Electr onic Engineering V o l.29No.1 96 利用MATLAB工具箱比较三种谱估计算法* 盖明明1)郗海龙2)姜 ...
- 实验二利用MATLAB工具箱对混杂噪声的音频信号进行滤波
实验二利用MATLAB工具箱对混杂噪声的音频信号进行滤波 一.小提琴音频的加噪去噪处理 要求:选择子作业1中的音频信号,自行给定滤波器的系统函数,分别采用时域线性卷积和差分方程两种方法对音频信号进行滤 ...
- matlab 提取极值,利用matlab 进行极值统计的一个例子——gev 方法.pdf
利用matlab 进行极值统计的一个例子--gev 方法 利用 Matlab 进行极值统计的一个例子--GEV 方法 科研菜鸟 /u/sanshiphy 数据和例子均来自于 S. Coles, An ...
- 利用Matlab工具箱求解线性规划
实验目的:利用matlab求解整数线性规划,掌握相关函数的调用格式和参数的具体含义. 实验内容:把优化问题转化为能识别的矩阵运算, 调用提供的优化函数, 编写相应的M文件,并执行相应的程序. 实验原理 ...
最新文章
- iOS 自定义UITabBar
- 微软官方Windows Server 2008实战攻略系列
- 在Python中使用Twitter Rest API批量搜索和下载推文
- 前端学习(2891):vue工程化配置
- codeforces 1A-C语言解题报告
- RabbitMQ 基本概念与高级特性
- 【机器学习】机器学习从零到掌握之八 -- 教你读懂决策树原理
- linux服务器拓扑图,Linux服务器作为网关的DNS分离解析服务(CentOS 7版本)
- 智能优化算法:龙格-库塔优化算法 - 附代码
- char 数组和 int 之间转化
- Unity中加载本地图片
- 秒、毫秒和年月日的转换
- modelica学习
- GitChat·Python | 零基础小白如何入门 Python 编程
- uniapp 获取到当前位置信息显示在地图上
- MAC使用 SVN问题
- iOS 大型项目开发漫谈
- C练题笔记之:Leetcode-12. 整数转罗马数字
- Maven2 的新特性
- AES128-CBC