收藏 分享(赏)

PID控制课程设计.docx

上传人:cjc2202537 文档编号:5210850 上传时间:2019-02-12 格式:DOCX 页数:35 大小:347.73KB
下载 相关 举报
PID控制课程设计.docx_第1页
第1页 / 共35页
PID控制课程设计.docx_第2页
第2页 / 共35页
PID控制课程设计.docx_第3页
第3页 / 共35页
PID控制课程设计.docx_第4页
第4页 / 共35页
PID控制课程设计.docx_第5页
第5页 / 共35页
点击查看更多>>
资源描述

1、大 连 海 事 大 学课 程 设 计课 程 控制工程软件课程设计 题 目 离散系统的数字 PID 控制仿真 院 系 信息科学技术学院 专业班级 自动化一班 学生姓名 张亚婷 学生学号 2220142511 指导教师 徐慧朴 2016 年 1 月 13 日大连海事大学课程设计任务书课程 控制工程软件课程设计 题目 离散系统的数字 PID 控制仿真 专业 自动化一班 姓名 张亚婷 学号 2220142511 主要内容:控制对象 为采样时间为 1ms,针对离散系统的阶跃信号、正弦信号和方波信号的位置响应,设计离散的位置式 PID 控制器。其中 S 为信号选择变量,并对控制器的输出进行进行限幅:-10

2、,-10。基本要求:(1)设计可视化窗口实现;(2)系统输入信号可选择,完成对 PID 参数,系统阶次的调节;(3)显示误差大小;sssG104735.82)((4)完成全系统的详细分析设计报告。参考资料:1 郑阿奇,曹戈 .MATLAB 实用教程(第三版)M.北京:电子工业出版社2 网上查找离散系统的 PID 参数调节相关资料完成时间 2016.1.32016.1.13 学生 (签名) 指导教师 (签名)专业负责人 (签名)2016 年 1 月 13 日目录1 设计要求 .12 方案设计 .12.1 设计思路 12.2 总体方案方框图 12.3 基本原理 23 位置式 PID 算法及其仿真

3、33.1 位置式 PID 算法原理 .33.2 不同输入下的仿真界面结果显示 64 增量式 PID 算法及其仿真 74.1 增量式 PID 算法原理 .74.2 不同输入下的仿真界面结果显示 .85 调节 PID 参数得到最优解 106 位置式 PID 和增量式 PID 比较 127 总结 .13参考文献 14附录 15系统设计报告- 1 -1 设计要求控制对象为 采样时间为 1ms,针对离散系统的阶跃信sssG104735.82)(号、正弦信号和方波信号的位置响应,设计离散的位置式 PID 控制器。其中 S 为信号选择变量,S=1 时为阶跃跟踪,S=2 时为方波跟踪,S=3 为正弦跟踪。对控

4、制器的输出进行限幅:-10,10。要求:(1)系统的阶次和系数可调;(2)PID 参数可调;(3)用两种方式显示离散系统的数字 PID 控制仿真,并显示误差;(4)用 MATLAB 编写成为可视化窗口实现上述功能;2 方案设计2.1 设计思路(1)根据设计要求,理解 PID 控制的原理,确定控制仿真的方式为位置式和增量式两种典型形式。(2)建立可视化窗口界面,设计显示界面,产生对应的脚本,编辑回调函数,首先获得可变的 PID 参数,再获得可变的分子分母系数。(3)最后编辑显示误差值。优化显示界面,并调节拟合程度最好的 PID 参数。2.2 总体方案方框图系统设计报告- 2 -图 1 基本原理框

5、图2.3 基本原理总体基本原理框图如图 1 所示。PID 控制器是一种线性控制器,它根据给定值 rin(t)与实际的输出值 yout(t)构成偏差 )()(erotyoutintPID 的控制规律为 )()(1u0i dteroTteroTterKpt Dt或写成传递函数的形式为 )()issEUG)(式中, 比例系数; 积分时间常数; 微分时间常数。pkiTDTPID 控制器各个校正环节的作用如下:(1)比例环节:成比例的反应控制系统的偏差信号。偏差一旦产生,控制器立比例积分微分被控对象Y(k)ffyout(k)ran(k)系统设计报告- 3 -即产生控制作用,以减少偏差。(2)积分环节:主

6、要用于消除静差,提高系统的无差度。积分作用的强弱主要取决于积分时间常数 , 越大,积分作用越弱,反之则越强。iTi(3)微分环节:反应偏差信号的变化趋势(变化速率) ,并能在偏差信号变得太大之前,在系统中引入一个有效的早期修正信号。从而加快系统的动作速率,减少调节时间。3 位置式 PID 控制算法及其仿真3.1 位置式 PID 算法原理位置式 PID 控制算法的简化示意图ddtPID 位置算法 受控对象r e+u ypKdTiT ue系统设计报告- 4 -上图传递函数为:在时域的传递函数表达式对上式中的微分和积分进行近似:Tnedte)1()(式中 n 是离散点的个数于是传递函数可以简化为:n

7、kdip neKeeKn0 )1()()()(u其中)1()(usTKpsHedi)()(1)()(u0dteTetKpttinkeTde0t0)()(ipTiKdpd系统设计报告- 5 -u(n)第 k 个采样时刻的控制:比例放大系数;pK积分放大系数;i微分放大系数;dT 采样周期。如果采样周期足够小,则近似计算可以得到足够精确的结果,离散控制结果和连续系统十分接近。它表示的控制算法直接按所给的 PID 控制规律定义进行计算的,所以它给出了全部控制量的大小,因此被称为位置式 PID 控制算法。控制对象为 采样时间为 1ms,采用 z 变换进行离散化,经过 z 变换后的离散化对象为 )3()

8、42()31()2)(yout kyoutdenkyoutdenkyoutdenk1(4mm控制算法程序框图可如下所示:sssG104735.82)(开始参数初始化系统设计报告- 6 -程序及其批注见附录所示。3.2 不同输入下的仿真界面结果显示S=1 时输入为阶跃的结果采入 rin(k)和 yout(k)计算偏差值计算控制器输出参数更新返回系统设计报告- 7 -S=2 时输入为方波的结果S=3 时输入为正弦的结果4 增量式 PID 算法及其仿真系统设计报告- 8 -4.1 增量式 PID 算法原理当我们把离散系统看做相等的增量值时间增加时,可以用增量式 PID 控制算法根据递推原理可得)1(

9、)()1()1(u0 kerokerokerokdjip增量式 PID 控制算法 我们可以看出,如果我们采用恒定的采样周期 T,只要只用前后三次测量的偏差,就可以得到控制量。PID 算法的流程图如下所示)2()1(2)()()1()()(u kerokerokerkerokerork dip读取给定值 r(k)计算偏差 e(k)=r(k)-y(k)计算 )3(2)1(uxkxkdip存 )(k以备输出参数传递 )2()1(e )1(ke 开始系统设计报告- 9 -程序以及注释见附录4.2 不同输入下的界面仿真显示S=1 时阶跃输入S=2 方波输入时返回系统设计报告- 10 -S=3 正弦输入时

10、5.调节 PID 控制器参数得到最优解比例控制:就是对偏差进行控制,偏差一旦产生,控制器立即就发生作用即调节控制输出,使被控量朝着减小偏差的方向变化,偏差减小的速度取决于比例系数Kp, Kp 越大偏差减小的越快,但是很容易引起振荡,尤其是在迟滞环节比较大系统设计报告- 11 -的情况下,Kp 减小,发生振荡的可能性减小但是调节速度变慢。但单纯的比例控制存在静差不能消除的缺点。这里就需要积分控制。积分控制:实质上就是对偏差累积进行控制,直至偏差为零。积分控制作用始终施加指向给定值的作用力,有利于消除静差,其效果不仅与偏差大小有关,而且还与偏差持续的时间有关。简单来说就是把偏差积累起来,一起来运算

11、。 微分控制:它能敏感出误差的变化趋势,可在误差信号出现之前就起到修正误差的作用,有利于提高输出响应的快速性,减小被控量的超调和增加系统的稳定性。但微分作用很容易放大高频噪声,降低系统的信噪比,从而使系统抑制干扰的能力下降。因此,在实际应用中,应慎用微分控制。 调节的过程中首先使得积分和微分系数为 0,首先调节比例系数,得到临界震荡的 Kp,再调节 Ki 由大到小调节,消除静差,最后调节 Kd,减小调节时间,最后得到最优的控制器参数,其误差不一定最小。以下为阶跃输入下调节的最优参数位置式增量式系统设计报告- 12 -6.位置式 PID 和增量式 PID 的比较整体图形用户界面如下所示:位置式

12、PID 控制算法的缺点:当前采样时刻的输出与过去的各个状态有关,计算时要对 e(k)即误差进行累加,运算量大;而且控制器的输出 u(k)对应的是执行机构的实际位置,如果计算机出现故 障,u(k)的大幅度变化会引起执行机构位置的大幅度变化。系统设计报告- 13 -增量式 PID 是数字控制器的输出只是控制量的增量 u(k)。采用增量式算法时,计算机输出的控制量 u(k)对应的是本次执行机构位置的增量,而不是对应执行机构的实际位置,因此要求执行机构必须具有对控制量增量的累积功能,才能完成对被控对象的控制操作。 增量式算法优点:算式中不需要累加。控制增量 u(k)的确定仅与最近 3 次的采样值有关,

13、容易通过加权处理获得比较好的控制效果;计算机每次只输出控制增量,即对应执行机构位置的变化量,故机器发生故障时影响范围小、不会严重影响生产过程;手动自动切换时冲击小。当控制从手动向自动切换时,可以作到无扰动切换。7 总结1.就实现要求的用户图形界面来说,设计整体布局,以及实现需要的功能需要的图形对象面板工具常用控件的选择,虽然选择是比较自由的,方式也是多样的,第一次做位置式时我选择了一组按钮,来切换输入信号。在做第二种增量式时,希望得到更多的方式或者学到不同常用控件的实用方法,我选择了设定一组单选按钮,用了两种语句来实现,一种是 ifelse语句,一种是 switch 语句,两种方法都可以实现单

14、选按钮的功能。2.就 PID 控制系统而言,除了自动控制原理课堂上的,通过这次课程设计对于PID 有了更加深刻的认识,对于其在矫正系统功能方面有了更加系统的认知,也进一步揭开了其常被应用的面纱。3.离散系统的分析源自于连续系统的离散,首先进行离散化 z 变换,知道了位置式和增量式的区别最重要的在于位置式的变化和之前的每一个时刻都有关系,而系统设计报告- 14 -增量式的只和最近三次的增量有关系。4.这个课程设计锻炼了我的思考和查阅资料的能力。系统设计报告- 15 -参考文献1 郑阿奇,曹戈 .MATLAB 实用教程(第三版)M.北京:电子工业出版社系统设计报告- 16 -系统设计报告- 17

15、-附录主程序:function varargout = PID(varargin)gui_Singleton = 1;gui_State = struct(gui_Name, mfilename, .gui_Singleton, gui_Singleton, .gui_OpeningFcn, PID_OpeningFcn, .gui_OutputFcn, PID_OutputFcn, .gui_LayoutFcn, , .gui_Callback, );if nargin endif nargoutvarargout1:nargout = gui_mainfcn(gui_State, vara

16、rgin:);elsegui_mainfcn(gui_State, varargin:);endfunction PID_OpeningFcn(hObject, eventdata, handles, varargin)handles.output = hObject;guidata(hObject, handles);function varargout = PID_OutputFcn(hObject, eventdata, handles) 系统设计报告- 18 -varargout1 = handles.output;function jieyue_Callback(hObject, e

17、ventdata, handles)kp=str2double(get(handles.Kp,String);ki=str2double(get(handles.Ki,String);kd=str2double(get(handles.Kd,String);axes(handles.tu1); %选坐标轴 1 作图nums=str2num(get(handles.num,String);dens=str2num(get(handles.den,String);out=PIDcontrol(1,kp,ki,kd,nums,dens);set(handles.error,String,num2st

18、r(out);function fangbo_Callback(hObject, eventdata, handles)kp=str2double(get(handles.Kp,String); ki=str2double(get(handles.Ki,String);kd=str2double(get(handles.Kd,String);axes(handles.tu1);%选坐标轴 1 作图nums=str2num(get(handles.num,String);dens=str2num(get(handles.den,String);out=PIDcontrol(2,kp,ki,kd,

19、nums,dens);set(handles.error,String,num2str(out);function zhengxian_Callback(hObject, eventdata, handles)kp=str2double(get(handles.Kp,String);ki=str2double(get(handles.Ki,String);kd=str2double(get(handles.Kd,String);系统设计报告- 19 -axes(handles.tu1);%选坐标轴 1 作图nums=str2num(get(handles.num,String);dens=st

20、r2num(get(handles.den,String);out=PIDcontrol(3,kp,ki,kd,nums,dens);set(handles.error,String,num2str(out);function Kp_Callback(hObject, eventdata, handles)function Kp_CreateFcn(hObject, eventdata, handles)if ispc endfunction Ki_Callback(hObject, eventdata, handles)function Ki_CreateFcn(hObject, event

21、data, handles)if ispc endfunction Kd_Callback(hObject, eventdata, handles)function Kd_CreateFcn(hObject, eventdata, handles)if ispc endfunction error_Callback(hObject, eventdata, handles)系统设计报告- 20 -function error_CreateFcn(hObject, eventdata, handles)if ispc endfunction den_Callback(hObject, eventd

22、ata, handles)function den_CreateFcn(hObject, eventdata, handles)if ispc endfunction num_Callback(hObject, eventdata, handles)function num_CreateFcn(hObject, eventdata, handles)if ispc endfunction tuichu_Callback(hObject, eventdata, handles)ss=questdlg(你真的要退出吗?,退出窗口,不,我还想看看!,是的,我要退出!,是的,我要退出!);switch

23、 sscase 是的,我要退出!delete(handles.figure1);end系统设计报告- 21 -function Kp1_Callback(hObject, eventdata, handles)function Kp1_CreateFcn(hObject, eventdata, handles)if ispc endfunction Ki1_Callback(hObject, eventdata, handles)function Ki1_CreateFcn(hObject, eventdata, handles)if ispc endfunction Kd1_Callback

24、(hObject, eventdata, handles)function Kd1_CreateFcn(hObject, eventdata, handles)if ispc endfunction error1_Callback(hObject, eventdata, handles)function error1_CreateFcn(hObject, eventdata, handles)if ispc end系统设计报告- 22 -function jieyue1_Callback(hObject, eventdata, handles)function fangbo1_Callback

25、(hObject, eventdata, handles)function zhengxian1_Callback(hObject, eventdata, handles)function uibuttongroup2_SelectionChangedFcn(hObject, eventdata, handles)kp1=str2double(get(handles.Kp1,String);ki1=str2double(get(handles.Ki1,String);kd1=str2double(get(handles.Kd1,String);nums=str2num(get(handles.

26、num,String);dens=str2num(get(handles.den,String);S_3=get(handles.zhengxian1,Value);S_2=get(handles.fangbo1,Value);S_1=get(handles.jieyue1,Value);axes(handles.tu2); %选坐标轴 2 作图if S_3=1out1=PIDcontrol1(3,kp1,ki1,kd1,nums,dens);elseif S_2=1out1=PIDcontrol1(2,kp1,ki1,kd1,nums,dens);elseif S_1=1out1=PIDco

27、ntrol1(1,kp1,ki1,kd1,nums,dens);end set(handles.error1,String,num2str(out1);% axes(handles.tu2); %选坐标轴 2 作图系统设计报告- 23 -% kp1=str2double(get(handles.Kp1,String);% ki1=str2double(get(handles.Ki1,String);% kd1=str2double(get(handles.Kd1,String);% nums=str2num(get(handles.num,String);% dens=str2num(get(

28、handles.den,String);% n = get(handles,Tag);% switch n% case jieyue1% out1=PIDcontrol1(1,kp1,ki1,kd1,nums,dens);% case fangbo1% out1=PIDcontrol1(2,kp1,ki1,kd1,nums,dens);% case zhengxian1% out1=PIDcontrol1(3,kp1,ki1,kd1,nums,dens);% end% set(handles.error1,String,num2str(out1);位置式调用程序:function out=PI

29、Dcontrol(S,kp,ki,kd,nums,dens)ts=0.001; %采样时间sys=tf(nums,dens);dsys=c2d(sys,ts,z); %将系统离散化num,den=tfdata(dsys,v); %获取离散后的分子分母系数n=length(den);for i=1:(n-1)系统设计报告- 24 -u_(i)=0;y_(i)=0;endx=0,0,0;error_1=0; %初始偏差设置为 0out=0; %初始误差和为 0for k=1:1000; time(k)=k*ts; %采样时刻if S=1 %阶跃信号rin(k)=1;elseif S=2 %方波信号

30、rin(k)=sign(sin(2*2*pi*k*ts); elseif S=3 %正弦波信号rin(k)=0.5*sin(2*2*pi*k*ts);endu_(k)=kp*x(1)+kd*x(2)+ki*x(3); %控制器输出,根据离散 PID 表达式if u_(k)=10 %限幅u_(k)=10;endif u_(k)=-10u_(k)=-10;endyout(k)=0;系统设计报告- 25 -for j=2:nyout(k)=yout(k)-den(j)*y_(j-1)+num(j)*u_(j-1);%阶次变化时的输出关系式enderror(k)=rin(k)-yout(k); %此刻

31、误差for i=n-1:-1:2u_(i)=u_(i-1);y_(i)=y_(i-1); %此刻和上一刻输出的传递endu_(1)=u_(k);y_(1)=yout(k);x(1)=error(k); %计算 Px(2)=(error(k)-error_1)/ts; %计算 Dx(3)=x(3)+error(k)*ts; %计算 Ierror_1=error(k); %误差的传递out=out+error(k)2;endout=out/1000;plot(time,rin,b,time,yout,r); xlabel(time(s),ylabel(rin,yout) %横轴为时间,纵轴为输入输

32、出增量式调用程序:function out1=PIDcontrol1(S,kp1,ki1,kd1,nums,dens)ts=0.001;sys=tf(nums,dens);系统设计报告- 26 -dsys=c2d(sys,ts,z); %将采样系统 z 变换进行离散化num,den=tfdata(dsys,v); %获取离散后的分子分母系数矩阵x=0,0,0; %将初始的 P I D 参数相乘的系数设置为 0m=length(den); %获得输入的系统的阶次out1=0; %原始误差为 0for i=1:m-1u_(i)=0;y(i)=0; enderror_(1)=0;error_(2)=0;for k=1:1:1000; time(k)=k*ts; %采样时刻if S=1 %阶跃信号rin(k)=1;elseif S=2 %方波信号rin(k)=sign(sin(2*2*pi*k*ts); elseif S=3 %正弦波信号rin(k)=0.5*sin(2*2*pi*k*ts);enddu(k)=kp1*x(1)+ki1*x(2)+kd1*x(3); %控制器输出,根据离散 PID 表达式u(k)=u_(1)+du(k);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 课程设计

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报