利用Matlab实现PID控制仿真
该文转自博客园:
https://www.cnblogs.com/kui-sdu/p/9048534.html
- %PID Controller
- clear, clc, close all;
- ts=0.001; %采样时间=0.001s
- sys=tf(5.235e005,[1,87.35,1.047e004,0]); %建立被控对象传递函数
- dsys=c2d(sys,ts,'z'); %把传递函数离散化
- [num,den]=tfdata(dsys,'v'); % 离散化后提取分子、分母
- u_1=0.0;u_2=0.0;u_3=0.0; %输入向量 的初始状态
- y_1=0.0;y_2=0.0;y_3=0.0; %输出的初始状态
- x=[0,0,0]'; %PID的3个参数Kp Ki Kd组成的数组
- error_1=0; %初始误差
- S=input('请选择输入信号的形式:1 阶跃信号 2 方波信号 3 正弦信号\n');
- for k=1:1:500
- time(k)=k*ts; % 仿真时间500ms
- if S==1
- kp=1.50;ki=0.01;kd=0.01;
- yd(k)=1; % 指令为阶跃信号
- elseif S==2
- kp=0.50;ki=0.001;kd=0.001;
- yd(k)=sign(sin(2*2*pi*k*ts)); % 指令为方波信号
- elseif S==3
- kp=1.5;ki=1.0;kd=0.01; % 指令为正弦信号
- yd(k)=0.5*sin(2*2*pi*k*ts);
- end
- u(k)=kp*x(1)+kd*x(2)+ki*x(3); % PID控制器
- % 限制控制器的输出
- if u(k)>=10
- u(k)=10;
- end
- if u(k)<=-10
- u(k)=-10;
- end
- % 近似线性模型
- y(k)=-den(2)*y_1-den(3)*y_2-den(4)*y_3+num(2)*u_1+num(3)*u_2+num(4)*u_3;
- error(k)=yd(k)-y(k);
- % 返回pid参数
- u_3=u_2;u_2=u_1;u_1=u(k);
- y_3=y_2;y_2=y_1;y_1=y(k);
- x(1)=error(k); % 计算 P
- x(2)=(error(k)-error_1)/ts; % 计算 D
- x(3)=x(3)+error(k)*ts; % 计算 I
- error_1=error(k);
- end
- figure(1);
- set(0,'defaultfigurecolor','w') % 设置图像背景为白色
- plot(time,yd,'r',time,y,'b','linewidth',2);
- xlabel('time(s)');ylabel('信号输出');
- legend('理想信号','追踪信号');
利用Matlab实现PID控制仿真的更多相关文章
- MATLAB-离散系统的数字PID控制仿真
%PID Controller clear all; close all; ts=0.001; %采样时间=0.001s sys=tf(,]); %建立被控对象传递函数 dsys=c2d(sys,t ...
- 专家PID控制仿真学习
目录 专家控制 专家系统 专家控制 学习笔记,用于记录学习 资料:<智能控制>(第四版)--刘金琨 专家系统 一.专家系统的定义 专家系统是一类包含知识和推理的智能计算机程序,其内部包含某 ...
- 两轮自平衡小车双闭环PID控制设计
两轮自平衡小车的研究意义 ...
- 经典PID控制及应用体会总结
经典PID控制及应用体会总结 PID控制原理 PID是一种线性控制器,它根据给定值rin(t)与实际输出值yout(t)构成控制方案: 重点关注相关算法是如何对偏差进行处理的: PID控制器各校正环节 ...
- 四轴飞行器飞行原理与双闭环PID控制
四轴轴飞行器是微型飞行器的其中一种,相对于固定翼飞行器,它的方向控制灵活.抗干扰能力强.飞行稳定,能够携带一定的负载和有悬停功能,因此能够很好地进行空中拍摄.监视.侦查等功能,在军事和民用上具备广泛的 ...
- 数字式PID控制的应用总结
PID控制是一个二阶线性闭环控制器,通过调整比例.积分和微分三项参数,使得大多数的工业控制系统获得良好的闭环控制性能.PID控制优点:a. 技术成熟,b. 易被人们熟悉和掌握,c. 不需要建立数学模型 ...
- PID控制最通俗的解释与PID参数的整定方法
转自->这里 PID是比例.积分.微分的简称,PID控制的难点不是编程,而是控制器的参数整定.参数整定的关键是正确地理解各参数的物理意义,PID控制的原理可以用人对炉温的手动控制来理解.阅读本文 ...
- 专家PID控制
1.专家PID控制原理 PID专家控制的实质是,基于受控对象和控制规律的各种知识,无需知道被控对象的精确模型,利用专家经验来设计PID参数.专家PID控制是一种直接型专家控制器. 典型的二阶系统单位阶 ...
- PID控制及整定算法
一.PID控制算法 PID是比例.积分.微分的简称,PID控制的难点不是编程,而是控制器的参数整定.参数整定的关键是正确地理解各参数的物理意义,PID 控制的原理可以用人对炉温的手动控制来理解.阅读本 ...
随机推荐
- js 符号转换 html代码
S转换HTML转义符 //去掉html标签 function removeHtmlTab(tab) { return tab.replace(/<[^<>]+?>/g,''); ...
- learning java FileWriter
import java.io.FileWriter; import java.io.IOException; public class FileWriterTest { public static v ...
- 【批处理】for命令
for 命令 学习:https://www.cnblogs.com/Braveliu/p/5081087.html FOR这条命令基本上都被用来处理文本,但还有其他一些好用的功能! 看看他的基本格式( ...
- SuperHyperMarket(优先队列+重载)
SuperHyperMarket(优先队列+重载) 具体见代码注释 /* */ #include <iostream> #include <cstring> #include ...
- 缺陷的严重程度(Severity)
该bug对用户造成的影响有多大.(1)Urgent 死机重启等致命bug(2)Veryhigh 非常严重的bug(3)High 严重的bug(4)Medium 中等程度的bug(5)Low 小的bug
- 3ds Max学习日记(十一)——如何给模型上贴图
参考链接:https://jingyan.baidu.com/article/e4511cf38a810b2b845eaf1f.html 之前一直都不知道怎么在3dsMax里给模型上材质和贴图,被 ...
- Servlet快速入门及运行流程
一.Servlet快速入门 1.创建一个web工程 2.在JavaResource中src下创建一个包名称为com.myxq.servlet 3.在创建的servlet包当中创建一个class文件起名 ...
- 第07组 Alpha事后诸葛亮
1.请在博客开头给出组长博客链接(3.1 2分) 团队:摇光 队长:杨明哲 组长博客:这里 2.参考邹欣老师的问题模板进行总结思考(3.2 27分) 设想和目标(2分) 1.我们的软件要解决什么问题? ...
- 【软工实践】Beta冲刺(4/5)
链接部分 队名:女生都队 组长博客: 博客链接 作业博客:博客链接 小组内容 恩泽(组长) 过去两天完成了哪些任务 描述 新增数据分析展示等功能API 服务器后端部署,API接口的beta版实现 展示 ...
- composer.json和composer.lock有什么区别?
我们在做项目的时候,总是要安装一些依赖.composer给我们提供了很多方便.直接运行composer install. 当我们运行composer install 将会读取composer.lo ...