基于MATLAB語言環境的二階慣性系統PID控制仿真_第1頁
基于MATLAB語言環境的二階慣性系統PID控制仿真_第2頁
基于MATLAB語言環境的二階慣性系統PID控制仿真_第3頁
基于MATLAB語言環境的二階慣性系統PID控制仿真_第4頁
基于MATLAB語言環境的二階慣性系統PID控制仿真_第5頁
已閱讀5頁,還剩10頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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(n>0) disp('The System is Unstable');

7、 else disp('The System 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得出性能指標如下

8、:上升時間tr:1.79s峰值時間tp:3.58s最大超調量:92%調節時間ts:150s穩態誤差:0.988衰減率:0.0625由各指標可知,該系統的最大超調量過大,調節時間太長,且穩態誤差接近于1,需要進行整定。四、參數的整定調節器參數整定的實質就是選擇合適的調節器參數,使其閉環控制系統的特征方程的每一個根都能滿足穩定性的要求,即選擇調節器的參數比例度。積分時間以及微分時間的大小,是特征方程所有實根的實數部分均為負數,從而保證系統式穩定的;與此同時還要使衰減指數在0.2210.366之間,以滿足衰減率在0.750.9的要求加入PID調節器,調節PID調節器各項參數,可得當Kp=200,Ti

9、=0.32;Td=3;系統的各參數為:上升時間tr:0.537s峰值時間tp: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)

10、;grid on,axis(0,160,0,1)endhold off由圖可知:隨著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

11、=tf(Kp*1,1/Ti(i),1,0);G=feedback(Gc*G0,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:leng

12、th(Td);Gc=tf(Kp*Ti*Td(i),Ti,1,Ti,0);G=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*.%

13、H = PID returns the handle to a new PID 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% existi

14、ng singleton*. Starting from the left, property value pairs are% applied 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 GUIDE's Tools m

15、enu. Choose "GUI allows only one% instance to run (singleton)".% See also: 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 EDITg

16、ui_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 && ischar(varargin1) gui_State

17、.gui_Callback = str2func(varargin1);endif nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end% End initialization code - DO NOT EDIT% - Executes just before PID is made visible.function PID_OpeningFcn(hObject, eventdata, handles, varargin)% This

18、function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin command line arguments to PID (see VARARGIN)% Choose default command line output for PIDhandle

19、s.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes PID wait for user response (see UIRESUME)% uiwait(handles.figure1);% - Outputs from this function are returned to the command line.function varargout = PID_OutputFcn(hObject, eventdata, handles) % varargout cell ar

20、ray for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structurevarargout1 = handles.output;function edit1_Cal

21、lback(hObject, eventdata, handles)% hObject handle to edit1 (see 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 edit1 as text% str2double(get(hObject,'St

22、ring') returns contents of edit1 as a doubleinput=str2num(get(hObject,'String');if(isempty(input) set(hObject,'String',' ')endguidata(hObject,handles);% - Executes during object creation, after setting all properties.function edit1_CreateFcn(hObject, eventdata, handles)%

23、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 have a white background on Windows.% See ISPC and COMPUTER.if ispc set(hObject,'BackgroundColor

24、','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 in a future version of MATLAB% handles structure with han

25、dles 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',' ')endguidata(hO

26、bject,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 CreateFcns

27、 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, ha

28、ndles)% hObject handle to edit3 (see 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

29、of edit3 as a doubleinput=str2num(get(hObject,'String');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

30、 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 have a white background on Windows.% See ISPC and COMPUTER.if ispc set(hObject,'BackgroundColor','white');else

31、set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor');end% - Executes on button press in clear.function clear_Callback(hObject, eventdata, handles)% hObject handle to clear (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structur

32、e with handles and user data (see GUIDATA)% - Executes on button press in pushbutton2.function pushbutton2_Callback(hObject, 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 (

33、see GUIDATA)% - Executes on button press in pushbutton3.function pushbutton3_Callback(hObject, eventdata, handles)% hObject 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 GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user dat

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論