2021-05-25 传递函数阶跃响应指标的matlab计算
生活随笔
收集整理的這篇文章主要介紹了
2021-05-25 传递函数阶跃响应指标的matlab计算
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
傳遞函數(shù)階躍響應(yīng)指標(biāo)的matlab計算
對于一個常規(guī)的傳遞函數(shù),我們在進行了階躍仿真后經(jīng)常需要給出對應(yīng)的響應(yīng)指標(biāo),
sys = tf(1,[1 2 3]) y = step(sys) figure plot(y)?
求解對應(yīng)的階躍指標(biāo)結(jié)果
%% 求階躍響應(yīng)的典型指標(biāo) function [OverShoot, RiseTime, PeakTime, AdjustTime, SteadyStateError] = GetPerformanceOfStepResponse(t, y, stepvalue, gTolerance) % 超調(diào)量Mp:最大超調(diào)量規(guī)定為在暫態(tài)期間輸出超過對應(yīng)于輸入的終值的最大偏離量 % 上升時間tr:在暫態(tài)過程中,輸出第一次達到對應(yīng)于輸入的終值的時間(從t=0開始計時) % 峰值時間tp:對應(yīng)于最大超調(diào)量發(fā)生的時間(從t=0開始計時) % 調(diào)整時間ts:輸出與其對應(yīng)于輸入的終值之間的偏差達到容許范圍(一般取5%或2%)所經(jīng)歷的暫態(tài)過程時間(從t=0開始計時) % 穩(wěn)態(tài)誤差err:給定輸入與穩(wěn)態(tài)輸出的差值 % 超調(diào)量和峰值時間 [OSValue, OSIndex] = max(y); OverShoot = (OSValue - stepvalue)/stepvalue*100; PeakTime = t(OSIndex);% 上升時間 index = find(y >= stepvalue, 1, 'first'); RiseTime = t(index);% 調(diào)整時間和穩(wěn)態(tài)誤差 index1 = find(y <= stepvalue*(1 - gTolerance), 1, 'last'); % 容許范圍由全局變量指定 index2 = find(y >= stepvalue*(1 + gTolerance), 1, 'last');if isempty(index2) % 如果沒有超調(diào)量,此值為空index = index1; elseindex = max(index1, index2); endindex = max(index1, index2); AdjustTime = t(index);SteadyStateError = mean(y(index:end)) - stepvalue; % 這里的穩(wěn)態(tài)誤差計算為調(diào)整時間后的數(shù)據(jù)平均值與給定輸入的差,概念上是最后時刻的值與給定輸入的差end其中 t為時間,y為響應(yīng)結(jié)果,stepvalue為階躍數(shù)值,gTolerance為調(diào)整時間的誤差
?
?
總結(jié)
以上是生活随笔為你收集整理的2021-05-25 传递函数阶跃响应指标的matlab计算的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021-05-21 matlab 傅里
- 下一篇: 【新星计划】 Python的txt文本操