基于MATLAB语言环境的二阶惯性系统PID控制仿真(共15页).docx

上传人:飞****2 文档编号:14379324 上传时间:2022-05-04 格式:DOCX 页数:15 大小:176.14KB
返回 下载 相关 举报
基于MATLAB语言环境的二阶惯性系统PID控制仿真(共15页).docx_第1页
第1页 / 共15页
基于MATLAB语言环境的二阶惯性系统PID控制仿真(共15页).docx_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《基于MATLAB语言环境的二阶惯性系统PID控制仿真(共15页).docx》由会员分享,可在线阅读,更多相关《基于MATLAB语言环境的二阶惯性系统PID控制仿真(共15页).docx(15页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、精选优质文档-倾情为你奉上基于MATLAB语言环境的二阶惯性系统PID控制仿真目录一、课程设计要求3二、PID控制简述3三、系统性能分析5四、参数整定6五、PID三参数变化对系统的影响7六、人机交互界面设计9七、心得体会15一、课程设计要求1在MATLAB语言环境下,给定参数下的二阶惯性系统,要求分析在单位阶跃函数作用下,系统的动态响应性能;2在系统的前向通道加入比例、积分、微分控制器,调整系统控制器的比例、积分、微分参数,需求系统的最佳输出性能;3利用所学知识分析三参数增大或减小时,对系统动静态性能的影响,并用仿真实验验证其正确性。4.设计人机交互界面,可通过对界面输入参数,实现参数修改于曲

2、线显示。注:二阶系统前向通道传递函数为。二、PID控制简述PID控制器由比例单元(P)、积分单元(I)和微分单元(D)组成。其输入e (t)与输出u (t)的关系为: u(t)=kpe(t)+1/TIe(t)dt+TD*de(t)/dt 式中积分的上下限分别是0和t 。因此它的传递函数为:G(s)=U(s)/E(s)=kp1+1/(TI*s)+TD*s 。其中kp为比例系数; TI为积分时间常数; TD为微分时间常数。比例(P)控制比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(ady-state error)。积分(I)控制在积分

3、控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则这个控制系统是有稳态误差的或简称有差系统(System with Steady-state Error)。为了消除稳态误差,在控制器中必须引入项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。微分(D)控制在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在克服误差的调

4、节过程中能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后(delay)组件,具有抑制误差的作用,其变化总是落后于误的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞的被控对象,比例+微分(PD)控制器能改善系统在调节过程中的动态特性。PID控制器的参数整定PID控制器的参数

5、整定是控制系统设计的核心内容。它是根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间大小。PID控制器参数整定的方法很多,概括起来有两大类:一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控器参数。这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。PID控制器参数的工程整定方法,主要有临界比例法反应曲线法和衰减法。三种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。但无论采用哪一方法所得到的控制器参

6、数,都需要在实际运行中进行最后调整与完善。现在一般采用的是临界比例法。利用该方法进行PID 整定步骤如下:(1)首先预选择一个足够短的采样周期让系统工作(2)仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡,记下这时的比例放大系数和临界振荡周期(3)在一定的控制度下通过公式计算得到PID控制器的参数。三、系统性能分析稳定性判断程序如下:num=1;den=100 4 81; z,p,k=tf2zp(num,den) jj=find(real(p)0);n=length(jj); if(n0) disp(The System is Unstable); else disp(The Sys

7、tem is Stable); end axis equal; pzmap(p,z); title(The pole Map of system);运行结果:z =Empty matrix: 0-by-1p =-0.0200 + 0.8998i -0.0200 - 0.8998ik = 0.0100The System is Stable所以系统是稳定的。系统的极点分布图如下:系统的性能指标判断程序如下:num=1;den=100 4 80;step(num,den);figure(1);hold on得出性能指标如下:上升时间tr:1.79s峰值时间tp:3.58s最大超调量:92%调节时间

8、ts:150s稳态误差:0.988衰减率:0.0625由各指标可知,该系统的最大超调量过大,调节时间太长,且稳态误差接近于1,需要进行整定。四、参数的整定调节器参数整定的实质就是选择合适的调节器参数,使其闭环控制系统的特征方程的每一个根都能满足稳定性的要求,即选择调节器的参数比例度。积分时间以及微分时间的大小,是特征方程所有实根的实数部分均为负数,从而保证系统式稳定的;与此同时还要使衰减指数在0.2210.366之间,以满足衰减率在0.750.9的要求加入PID调节器,调节PID调节器各项参数,可得当Kp=200,Ti=0.32;Td=3;系统的各参数为:上升时间tr:0.537s峰值时间tp

9、:0.997s最大超调量:5%调节时间ts:12s稳态误差:0衰减率:0.6由上述各指标可知系统的稳态误差已消除,调节时间也在工业可接受标准范围内。五、PID三参数变化对系统的影响设PID控制器的传递函数为:G(s)=Kp(1+1/Tis+Tds)1、 比例控制的影响:下面的程序研究在不同的Kp值下,闭环系统的单位阶跃响应曲线及根轨迹图,程序如下:G0=tf(1,100 4 80);P=1 10 20 50 79;hold onfor i=1:length(P)G=feedback(P(i)*G0,1);step(G);grid on,axis(0,160,0,1)endhold off由图可

10、知:随着Kp的增大,闭环系统的灵敏度增大,稳态误差减小,响应的震荡增强。输入程序:figure,rlocus(G0)k=rlocfind(G0)可得根轨迹图如下:由根轨迹图知道,无论K值怎么变化,根轨迹都不会跨入右半平面,即系统一直是稳定的。2、 积分控制的影响 将Kp的值固定在Kp=70,采用PI控制策略,则我们可以通过下面的程序绘制不同的Ti值下闭环系统的单位阶跃响应曲线。程序如下:G0=tf(1,100 4 80);Kp=1;Ti=0.3:0.05:0.7;hold onfor i=1:length(Ti);Gc=tf(Kp*1,1/Ti(i),1,0);G=feedback(Gc*G0

11、,1);step(G);grid on,axis(0,350,0,1.1);end得出图如下:由图可知,随着Ti的减小,系统的调节时间变短,但是当Ti太小时,系统将变的不稳定。PI控制能使系统由有差系统变为无差系统,但是积分作用不能太强。在题所示系统中,Ti的选值不能小于0.3,。3、微分控制的影响令Kp=100,Ti=0.32,通过以下程序得出在不同的Td值下闭环系统的阶跃响应曲线,程序如下:G0=tf(1,100 4 80);Kp=100;Ti=0.32;Td=2:0.5:5;hold onfor i=1:length(Td);Gc=tf(Kp*Ti*Td(i),Ti,1,Ti,0);G=

12、feedback(Gc*G0,1);step(G);grid on,axis(0,100,0,1.5);end由上图曲线可以看出,Td的取值越大,系统响应速度越快,同时系统的超调量将小。六、人机交互界面设计人机交互界面采用matlab的GUI模块设计。程序如下:function varargout = PID(varargin)% PID M-file for PID.fig% PID, by itself, creates a new PID or raises the existing% singleton*.% H = PID returns the handle to a new PI

13、D or the handle to% the existing singleton*.% PID(CALLBACK,hObject,eventData,handles,.) calls the local% function named CALLBACK in PID.M with the given input arguments.% PID(Property,Value,.) creates a new PID or raises the% existing singleton*. Starting from the left, property value pairs are% app

14、lied to the GUI before PID_OpeningFunction gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to PID_OpeningFcn via varargin.% *See GUI Options on GUIDEs Tools menu. Choose GUI allows only one% instance to run (singleton).% See also:

15、GUIDE, GUIDATA, GUIHANDLES% Copyright 2002-2003 The MathWorks, Inc.% Edit the above text to modify the response to help PID% Last Modified by GUIDE v2.5 07-Dec-2011 11:37:11% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singlet

16、on, . gui_OpeningFcn, PID_OpeningFcn, . gui_OutputFcn, PID_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);endif nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end% End i

17、nitialization code - DO NOT EDIT% - Executes just before PID is made visible.function PID_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure

18、 with handles and user data (see GUIDATA)% varargin command line arguments to PID (see VARARGIN)% Choose default command line output for PIDhandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes PID wait for user response (see UIRESUME)% uiwait(handles.figure1);%

19、 - Outputs from this function are returned to the command line.function varargout = PID_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles struct

20、ure with handles and user data (see GUIDATA)% Get default command line output from handles structurevarargout1 = handles.output;function edit1_Callback(hObject, eventdata, handles)% hObject handle to edit1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structur

21、e with handles and user data (see GUIDATA)% Hints: get(hObject,String) returns contents of edit1 as text% str2double(get(hObject,String) returns contents of edit1 as a doubleinput=str2num(get(hObject,String);if(isempty(input) set(hObject,String, )endguidata(hObject,handles);% - Executes during objec

22、t creation, after setting all properties.function edit1_CreateFcn(hObject, eventdata, handles)% hObject handle to edit1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually hav

23、e a white background on Windows.% See ISPC and COMPUTER.if ispc set(hObject,BackgroundColor,white);else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor);endfunction edit2_Callback(hObject, eventdata, handles)% hObject handle to edit2 (see GCBO)% eventdata reserved - to be defined i

24、n a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,String) returns contents of edit2 as text% str2double(get(hObject,String) returns contents of edit2 as a doubleinput=str2num(get(hObject,String);if(isempty(input) set(hObject,String, )endguid

25、ata(hObject,handles);% - Executes during object creation, after setting all properties.function edit2_CreateFcn(hObject, eventdata, handles)% hObject handle to edit2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all Crea

26、teFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc set(hObject,BackgroundColor,white);else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor);endfunction edit3_Callback(hObject, eventdata, handles)% hObject handle to edit3 (s

27、ee GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,String) returns contents of edit3 as text% str2double(get(hObject,String) returns contents of edit3 as a doubleinput=str2num(get(hObject,String);

28、if(isempty(input) set(hObject,String, )endguidata(hObject,handles);% - Executes during object creation, after setting all properties.function edit3_CreateFcn(hObject, eventdata, handles)% hObject handle to edit3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles em

29、pty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc set(hObject,BackgroundColor,white);else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor);end% - Executes on button press in cl

30、ear.function clear_Callback(hObject, eventdata, handles)% hObject handle to clear (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% - Executes on button press in pushbutton2.function pushbutton2_Callback(hObject,

31、 eventdata, handles)% hObject handle to pushbutton2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% - Executes on button press in pushbutton3.function pushbutton3_Callback(hObject, eventdata, handles)% hObject

32、handle to pushbutton3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% - Executes on button press in pushbutton4.function pushbutton4_Callback(hObject, eventdata, handles)% hObject handle to pushbutton4 (see GCB

33、O)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)axes(handles.axes1);cla% - Executes on button press in pushbutton5.function pushbutton5_Callback(hObject, eventdata, handles)% hObject handle to pushbutton5 (see GCBO)% eve

34、ntdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)tryKp=str2num(get(handles.edit1,String);Ti=str2num(get(handles.edit2,String);Td=str2num(get(handles.edit3,String);axes(handles.axes1);t=0:0.1:50;y=step(Kp*Td*Ti,Kp*Ti,Kp,100*Ti,4*

35、Ti+Kp*Td*Ti,80*Ti+Kp*Ti,Kp,t);plot(t,y,t,1);hold on;grid on;catch errordlg(输入错误);endguidata(hObject,handles);% - Executes on button press in pushbutton6.function pushbutton6_Callback(hObject, eventdata, handles)set(handles.edit1,String, );set(handles.edit2,String, );set(handles.edit3,String, );% hObject handle to pushbutton6 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)最终做出来的用户界面如下图:通过此界面,用户只需输入PID控制器的各项参数,然后点击运行就能看到PID控制对系统的相应影响。六、心得体会专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com