matlab里dcgain,制系統的時域分析

一個動態系統的性能常用典型輸入作用下的響應來描述。響應是指零初始值條件下某種典型的輸入函數作用下對象的響應,控制系統常用的輸入函數為單位階躍函數和脈沖激勵函數(即沖激函數)。在MATLAB的控制系統工具箱中提供了求取這兩種輸入下系統響應的函數。

一、時域分析的一般方法

求取系統單位階躍響應:step()

求取系統的沖激響應:impulse()

(一)step()函數的用法

y=step(num,den,t):其中num和den分別為系統傳遞函數描述中的分子和分母多項式系數,t為選定的仿真時間向量,一般可以由t=0:step:end等步長地產生出來。該函數返回值y為系統在仿真時刻各個輸出所組成的矩陣。

[y,x,t]=step(num,den):此時時間向量t由系統模型的特性自動生成,狀態變量x返回為空矩陣。

[y,x,t]=step(A,B,C,D,iu):其中A,B,C,D為系統的狀態空間描述矩陣,iu用來指明輸入變量的序號。x為系統返回的狀態軌跡。

如果對具體的響應值不感興趣,而只想繪制系統的階躍響應曲線,可調用以下的格式:

step(num,den);step(num,den,t);step(A,B,C,D,iu,t);step(A,B,C,D,iu);

線性系統的穩態值可以通過函數dcgain()來求取,其調用格式為:

dc=dcgain(num,den)或dc=dcgain(a,b,c,d)

例exp4_3.m已知系統的開環傳遞函數為:

b85b4f7226914d89c6b5d74094eff433.gif

求系統在單位負反饋下的階躍響應曲線。

clc

clear

closeall

%開環傳遞函數描述

num=[20];

den=[1836400];

%求閉環傳遞函數

[numc,denc]=cloop(num,den);

%繪制閉環系統的階躍響應曲線

t=0:0.1:10;

y=step(numc,denc,t);

[y1,x,t1]=step(numc,denc);

%對于傳遞函數調用,狀態變量x返回為空矩陣

plot(t,y,'r:',t1,y1)

title('thestepresponce')

xlabel('time-sec')

%求穩態值

disp('系統穩態值dc為:')

dc=dcgain(numc,denc)

(二)impulse()函數的用法

求取脈沖激勵響應的調用方法與step()函數基本一致。

y=impulse(num,den,t);[y,x,t]=impulse(num,den);[y,x,t]=impulse(A,B,C,D,iu,t)

impulse(num,den);impulse(num,den,t)

impulse(A,B,C,D,iu);impulse(A,B,C,D,iu,t)

例exp4_4.m已知系統的開環傳遞函數為:

b85b4f7226914d89c6b5d74094eff433.gif

求系統在單位負反饋下的脈沖激勵響應曲線。

clc

clear

close

%開環傳遞函數描述

numo=20;

deno=[1836400];

%求閉環傳遞函數

[numc,denc]=cloop(numo,deno,-1);

%繪制閉環系統的脈沖激勵響應曲線

t=1:0.1:10;

[y,x]=impulse(numc,denc,t);

plot(t,y)

title('theimpulseresponce')

xlabel('time-sec')

仿真時間t的選擇:

對于典型二階系統根據其響應時間的估算公式

e5d6dd210d489aae0107957b871138d0.gif可以確定。

對于高階系統往往其響應時間很難估計,一般采用試探的方法,把t選大一些,看看響應曲線的結果,最后再確定其合適的仿真時間。

一般來說,先不指定仿真時間,由MATLAB自己確定,然后根據結果,最后確定合適的仿真時間。

在指定仿真時間時,步長的不同會影響到輸出曲線的光滑程度,一般不易取太大。

二、常用時域分析函數

時間響應探究系統對輸入和擾動在時域內的瞬態行為,系統特征如:上升時間調節時間超調量和穩態誤差都能從時間響應上反映出來。MATLAB除了提供前面介紹的對系統階躍響應沖激響應等進行仿真的函數外,還提供了大量對控制系統進行時域分析的函數,如:

covar:連續系統對白噪聲的方差響應

initial:連續系統的零輸入響應

lsim:連續系統對任意輸入的響應

對于離散系統只需在連續系統對應函數前加d就可以,如dstep,dimpulse等。

它們的調用格式與stepimpulse類似,可以通過help命令來察看自學。

三、時域分析應用實例

MATLAB的step()和impulse()函數本身可以處理多輸入多輸出的情況,因此編寫MATLAB程序并不因為系統輸入輸出的增加而變得復雜。

例exp4_7.m  某2輸入2輸出系統如下所示:

15bbeda24e1e36756965566c35288865.gif

b3beb885083666ac8cd9f190a895a28d.gif

,求系統的單位階躍響應和沖激響應。

clc

clear

close

%系統狀態空間描述

a=[-2.5-1.2200;1.22000;1-1.14-3.2-2.56;...

002.560];

b=[41;20;20;00];

c=[0103;0001];

d=[0-2;-20];

%繪制閉環系統的階躍響應曲線

figure(1)

step(a,b,c,d)

title('stepresponse')

xlabel('time-sec')

ylabel('amplitude')

figure(2)

impulse(a,b,c,d)

title('impulseresponse')

xlabel('time-sec')

ylabel('amplitude')

例exp4_8.m  某系統框圖如下所示,求d和e的值,使系統的階躍響應滿足:1.超調量不大于40%,2.峰值時間為0.8秒。

cb9bb461e92b621dc8226559a9c13dc9.png

由圖可得閉環傳遞函數為:

00cbc1966dfa5b2511f857d03f19191d.gif,其為典型二階系統。

由典型二階系統特征參數計算公式

c6f45ad2dc188d58d064d252e0291db4.gif

4b3de2c8dc3af7a20f5513c614ad2a52.gif得:

8527c125c0af00f2fece203e2c8d8606.gif

7a5234b6b688e70a90743a297240c42c.gif

clear

clc

closeall

%輸入期望得超調量及峰值時間

pos=input('pleaseinputexpectpos(%)=');

tp=input('pleaseinputexpecttp=');

z=log(100/pos)/sqrt(pi^2+(log(100/pos))^2);

wn=pi/(tp*sqrt(1-z^2));

num=wn^2;

den=[12*z*wnwn^2];

t=0:0.02:4;

y=step(num,den,t);

plot(t,y)

xlabel('time-sec')

ylabel('y(t)')

grid

d=wn^2

e=(2*z*wn-1)/d

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/529352.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/529352.shtml
英文地址,請注明出處:http://en.pswp.cn/news/529352.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php 添加音樂,PHP網站插入音樂

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓你找對地方了,我是IT之家大神光卡蔣一欣。我把代碼發給你,直接運行即可entrance\01.gif......\........\02.gif......\........\03.jpg......\........\04.jpg......\........\05.jpg......\........\06.jpg…

在oracle數據庫中顯示異常,Oracle數據庫出現ORA-01034錯誤的解決方案

類型:數據庫類大小:42.1M語言:中文 評分:5.0標簽:立即下載使用Oracle數據庫的朋友經常會碰到的錯誤ORA-3113 "end of fileon communication channel" 就是這樣的一個,我們可以簡單的把這個錯誤理…

oracle數據庫內核,深入內核:Oracle數據庫里SELECT操作Hang解析

崔華,網名 dbsnakeOracle ACE Director,ACOUG 核心專家編輯手記:感謝崔華授權我們獨家轉載其精品文章,也歡迎大家向“Oracle”社區投稿。我們都知道在 Oracle 數據庫里是“讀不阻塞寫,寫不阻塞讀”,那么是否…

oracle 如何形成死鎖,Oracle數據表中的死鎖情況解決方法

在進行數據庫管理的過程中,經常會出現數據表被用戶的一些不合理操作而導致表被鎖定的情況,以下主要介紹如何查找哪些表被哪個用戶所鎖定,以及如何解除鎖定:1.查找被鎖定的表:select object_name,session_id,os_user_name,oracle_username,process,locked_mode,statusfrom v$loc…

php 分布式數據庫查詢,分布式數據庫 · Thinkphp5.0完全開發手冊 · 看云

# 分布式數據庫ThinkPHP內置了分布式數據庫的支持,包括主從式數據庫的讀寫分離,但是分布式數據庫必須是相同的數據庫類型。配置database.deploy 為1 可以采用分布式數據庫支持。如果采用分布式數據庫,定義數據庫配置信息的方式如下&#xff1…

matlab 電力系統動態仿真,基于Matlab的電力系統動態仿真分析

本文通過兩個簡單實例介紹了利用 !"#$"% &’(! )*, -./對電力系統進行仿真研究的方法! 包括"熱工自動調節控制系統的仿真分析和電力電器系統的仿真分析# 0 熱工調節控制系統仿真分析 對熱工調節控制系統的性能分析包括靜態特性和動態特性兩個方面# 這里主要…

oracle read by other session,AWR報告中,read by other session ,如何解決?

你看你的top sql里全是動態采樣的sql,默認10g以后optimizer_dynamic_sampling參數為level 2,一般為缺失統計信息會造成每次使用動態采樣,雖然動態采樣會在表頻繁發生大批量改變時,一般可以生成更好的執行計劃,但是也不…

oracle insert into as select,比較create table as select * 與 insert into table select *

實驗環境:SYSaaron> select * from v$version;BANNER--------------------------------------------------------------------------------Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - ProductionPL/SQL Release 11.2.0.1.0 - ProductionCORE …

unix 安裝oracle,linux上安裝Oracle

當前位置:我的異常網 Linux/Unix linux上安裝Oraclelinux上安裝Oraclewww.myexceptions.net 網友分享于:2013-09-03 瀏覽:26次linux下安裝Oracle1.Linux下安裝 jdk(Linux)建議從sun的主頁上下載bin文件,運行后在/usr/會建立好java目錄的Linux下相關命…

linux ftp用戶指定多個目錄,linux ftp服務器下用戶限制目錄的方法

我們使用服務器都要站在安全方面進行考慮,有必要將ftp服務下的用戶限制在適當的范圍內,那么linux ftp服務器下用戶限制目錄的方法有哪些呢?一起跟著愛站技術頻道小編的步伐來了解一下吧!linux ftp服務器下用戶只能在自己目錄下的方法:第一步…

查找空目錄Linux,Linux中find批量刪除空文件及空文件夾腳本

find . -name "*" -type f -size 0c | xargs -n 1 rm -f #linux下批量刪除空文件(大小等于0的文件)刪除指定大小的文件,只要修改對應的 -size 參數就行:find . -name "*" -type f -size 1024c | xargs -n 1 rm -f #刪除1k大小的文件…

linux關閉timewait端口,linux 如何強制關閉 time_wait 連接

匿名用戶1級2016-04-16 回答# netstat -an|awk /tcp/ {print $6}|sort|uniq -c68 CLOSE_WAIT2 CLOSING136 ESTABLISHED38 FIN_WAIT116 FIN_WAIT22 LAST_ACK8 LISTEN71 SYN_RECV2936 TIME_WAIT#狀態:描述CLOSED:無連接是活動的或正在進行LISTEN&#xff1…

memset頭文件 linux,error: ‘memset’ was not declared in this scope

http://blog.sina.com.cn/s/blog_79d599dc0100r2vz.html昨天一同事把代碼準備重新全新布置到新的環境上去的時候,代碼報錯了,先開始報錯如下:error: ‘memset’ was not declared in this scopeerror: ‘strcat’ was not declared in this s…

linux中ls文件內存大小,Linux下用ls和du命令查看文件以及文件夾大小

webdriver零碎知識點#零碎知識點,用于記錄平時遇到的比較雜的知識點 driver.current_url 獲取當前url phantomjs 實現無瀏覽器界面自動化測試(driver webdriver.Phanto ...ORACLE刪除當前用戶下所有的表的方法1.如果有刪除用戶的權限,則可以: drop user user_name cascade; 加…

linux物理內存地址與iomem,一種Linux系統物理內存鏡像文件分析方法_4

模塊信息,如圖7所示,給出了本發明的實施例中 模塊結構關系圖,modules變量指向某一個已加載模塊結構體module地址,所有已加載模 塊其module形成一個雙向鏈表,如圖7所示,據此可以獲取到所有已加載模塊。[0099…

linux設備分層優點,Linux設備驅動的分層設計思想

代碼清單8第2行獲取platform_data,而platform_data實際上是定義GPIO按鍵硬件信息的數組,第31行的for循環工具這些信息申請GPIO并初始化中斷,對于LDD6140電路板而言,這些信息如代碼清單10。代碼清單10 LDD6410開發板GPIO按鍵的plat…

linux 關閉桌面環境,Ubuntu 14.04上的Cinnamon桌面環境PPA被關閉

今天Cinnamon桌面環境的開發者宣布關閉Cinnamon桌面環境的PPA,這意味著以后在Ubuntu上安裝Cinnamon桌面環境將變得很難。關于為什么要關閉PPA,Cinnamon PPA的維護者Gwendal Le Bihan做出了以下解釋:“穩定的Cinnamon PPA將不再提供&#xff0…

linux sd卡讀寫出錯,linux系統SD卡讀寫問題

請教有過linux系統SD卡讀寫經驗的前輩。我的項目是對FPGA上的SD卡部分做測試,在測試過程中發現在對SD卡所有領域進行讀寫操作時1、bus width 選擇1-bit的速度4-bit是差不多的,這與我預想的不同,想知道問題出在哪里?(理論上4bit 速度應該是1-…

genymotion linux 32,Ubuntu Linux 32bit - 不是Genymotion虛擬設備

因為4天我沒有找到解決方案我的genymotion有問題 我正在使用Ubuntu 12.04 32位(architecure:i686)并安裝android studio并將genymotion的插件放入其中succefully ......現在我的問題,當點擊genymotion設備管理器,列表是空的,當我試…

grub linux rootfs,rootfs文件系統(筆記)(草稿)

文件系統簡介文件系統就是個軟件,幫用戶來管理一些二進制的信息,管理外存上存儲的這些二進制各種文件在內存中都是以二進制的形式來存在的,如果沒有文件系統,用戶就需要自己去決定這些二進制的東西是什么,需要自己去和…