为传递函数自动设定PID参数——pidtune学习笔记
装置模型和PID控制器的基本模型
在命令行里设计PID控制器
装置模型为一个传递函数:
sys=1(s+1)3s y s=\frac{1}{(s+1)^{3}} sys=(s+1)31
首先创建一个装置的模型sys,并设计一个简单的PI控制器
sys = zpk([],[-1 -1 -1],1);
% C_pi是一个PI开环控制器
[C_pi,info] = pidtune(sys,'Pi');
此时装置模型和控制器分别为
sys =1-------(s+1)^3
Continuous-time zero/pole/gain model.C_pi = 1 Kp + Ki * ---s with Kp = 1.14, Ki = 0.454
Continuous-time PI controller in parallel form.
接着创建一个反馈控制器,并检查闭环的阶跃相应
% 反馈控制
T_pi = feedback(C_pi*sys, 1);
% 画图,显示阶跃相应
step(T_pi)
得到
将交叉频率设定成1.0
% 提高响应时间
% 设计一个快速反应的PI控制器
[C_pi_fast,info] = pidtune(sys,'Pi',1.0);
T_pi_fast = feedback(C_pi_fast*sys,1);
step(T_pi,T_pi_fast)
axis([ 0 30 0 1.4])
legend('PI','PI_fast')
最终发现始终无法达到参考值,因为PI控制器的自由度不够,最后设计一个PIDF控制器
% PIDF控制器
[C_pidf_fast,info] = pidtune(sys,'PIDF',1.0)
T_pidf_fast = feedback(C_pidf_fast*sys,1);
% 对比PI控制器和PIDF控制器
step(T_pi_fast, T_pidf_fast);
axis([0 30 0 1.4]);
legend('PI,fast','PIDF,fast');
设计一个2-DOF二自由度的PID控制器
装置的二阶传递函数模型为:
G(s)=1s2+0.5s+0.1G(s)=\frac{1}{s^{2}+0.5 s+0.1} G(s)=s2+0.5s+0.11
使用1.5rad/s的带宽:
wc = 1.5;
G = tf(1,[1 0.5 0.1]);
C2 = pidtune(G,'PID2',wc)
或者直接使用PID这样的type模式,例如
传递函数如下:
G = tf(0.0575,[1 2.4635 0.7980]) Controller_PID = pidtune(G,'PID')
控制器为
Controller_PID =1 Kp + Ki * --- + Kd * ss with Kp = 27.7, Ki = 15, Kd = 11.3Continuous-time PID controller in parallel form.
添加闭环控制
Controller_feedback = feedback(Controller_PID*G,1)Controller_feedback =0.6471 s^2 + 1.594 s + 0.8617----------------------------------s^3 + 3.111 s^2 + 2.392 s + 0.8617Continuous-time transfer function.% 画图
step(Controller_feedback)
为传递函数自动设定PID参数——pidtune学习笔记相关推荐
- 自动控制原理PID参数整定的Matlab实现
以一道题为例介绍调节PID控制器系数的方法,有:试凑法(Trial-and-Error Method).齐格勒-尼科尔斯校正规则(Ziegler and Nichols First Method. ...
- oracle修改asm参数文件,学习笔记:Oracle RAC参数文件管理 修改创建asm中的spfile文件...
天萃荷净 Oracle rac创建修改asm中的spfile文件内容 create spfile to asm --查看sid SQL> show parameter instance_name ...
- oracle scn参数,【学习笔记】Oracle数据库使用_MINIMUM_GIGA_SCN推进SCN案例
天萃荷净 Oracle研究中心学习笔记:分享一篇关于Oracle数据库SCN故障解决办法,使用_MINIMUM_GIGA_SCN推进SCN案例. 最近帮朋友弄一个WIN环境的数据库,需要增加SCN值, ...
- oracle查询大小写敏感参数,【学习笔记】Oracle 11G密码大小写敏感的设置方法 sec_case_sensitive_logon参数...
天萃荷净 分享一篇Oracle数据库密码大小写敏感设置案例,从11.1开始密码大小写敏感了,同时可以设置sec_case_sensitive_logon参数可以忽略大小写敏感(USER$.SPARE4 ...
- linux读取命令行参数,Linux学习笔记(五)—— Linux命令行参数
一.客户端输入 脚本执行的过程是对数据变量进行处理的过程,之前在脚本中处理的数据都是静态数据,而不是和客户端交互的动态数据.在大多数情况下脚本执行过程需要和客户端进行交互,用来获得脚本处理的数据,这些 ...
- python形式参数和实际参数_python学习笔记3:函数和参数
函数 函数的参数和返回值 形参(形式参数): 在函数定义的时候用到的参数没有具体值,只是一个占位的符号,成为形参,下例中的peison 实参(实际参数): 在调用函数的时候输入的值:下例中的明月 de ...
- 自动机器学习库:TPOT の 学习笔记
文章目录 1 TPOT简介 2 安装和使用 TPOT 2.1 安装TPOT库 2.2 使用 TPOT 库 流程 (1)配置类 (2)在搜索结束时,会找到性能最佳的管道 3 TPOT 分类实例 加载数据 ...
- linux内核earlyprink,内核启动参数机制学习笔记
前两天把内核关于内核启动参数的一些知识彻底地分析了一遍<Linux内核源码分析--内核启动命令行的传递过程(Linux-3.0 ARMv7)>,发现了一些以前没有注意的细节问题,这里总结如 ...
- python中的命令行参数_python学习笔记6:命令行参数
1. 使用步骤 使用步骤如下: # 导入模块 import argparse # 获取parser, description文本会显示在help信息中 parser = argparse.Argume ...
最新文章
- 五天带你学完《计算机网络》·第三天·传输层
- linux 网卡绑定updelay,Linux 配置双网卡绑定实现负载均衡
- Docker核心组件的关系
- IssueTrackerCSVS 代码笔记-数据层的反射工厂模式
- Android NDK开发:打包so库及jar包供他人使用
- 【转】STL中map用法详解
- oracle索引实验报告,Oracle之索引(Index)实例讲解
- GPS: 经纬度概念
- 关于注册时验证邮箱,并实现类似安卓的吐丝效果
- 操作系统知识点总结和题集大杂烩
- Window用dos命令解压缩文件
- WPF 触发器Triggers
- crh寄存器_STM32直接操作寄存器
- excel 两组数据交点_数据分析入门:8种常用的数据分析方法
- 杭州电子科技大学acm--2022
- python之pygal学习
- SOAP协议规范介绍
- 看大数据平台如何打造餐饮业务一体化?
- 16-K3S Helm
- windows与linux中,ping大数据包的命令格式
热门文章
- 持续集成部署Jenkins工作笔记0005---应用服务器设置账号密码说明
- JAVA高并发服务器工作笔记0001---Java中InetAddress与InetSocketAddress的基本用法
- makefile工作笔记0001---认识使用makefile
- STM32工作笔记0022---STM32F1开发版 GPIO口工作原理
- JPA零碎要点---JTA全局事物理解
- c++ xml 解析“后直接跟值问题
- 素数c分解语言程序,PTA|《C语言程序设计实验与习题指导(第3版)》实验4-2-3 验证“哥德巴赫猜想” (20分)...
- 随想录(一种powerpc编译学习的方法)
- 一步一步写算法(开篇)
- 基于51单片机的电梯控制系统