死區特性函式以及MATLAB驗算

2021-09-21 18:16:02 字數 1663 閱讀 5773

我在讀一段**時,對死區特性函式產生了好奇,因此寫下該博文,僅代表個人理解。

// 死區** c++

double dead

(double input, double deadzone)

死區(deadband)有時也稱為中性區(neutral zone)或不作用區,是指控制系統的傳遞函式中,對應輸出為零的輸入訊號範圍。像伺服驅動器中就會有死區來避免因為反覆的致能-不致能迴圈而造成的振盪(在比例控制系統中稱為hunting)。在機械系統中也有類似死區的概念,例如齒輪組中的背隙。

舉個栗子:

穩壓器

在一些變電站中有穩壓器維持電壓在一定的範圍內,規格中就會有乙個穩壓器不會更動電壓的電壓範圍,例如112v至118v(死區為6v)或是215至225v(死區為10v)。

背隙

齒輪中的背隙就是一種死區。當齒輪咬合恰好在背隙時,不論輸入軸正轉或是反轉,輸出軸都不會動作。等咬合不在背隙時,輸出軸才會隨著輸入軸而動作。例如輸入軸先順時針旋轉,再逆時針旋轉,在順時針旋轉切換為逆時針時,輸出軸會短暫一小段時間不動作,之後才會動作,這就是背隙的效果。像導螺桿都會有背隙,因此會有死區,在位置控制(特別是cnc系統)中需考慮其影響。若機構中沒有背隙消除裝置,控制器可以在更改方向時,在位置上自動加上背隙的量,以補償背隙的影響。

pwm中的死區時間

死區時間是pwm輸出時,為了使h橋或半h橋的上下管不會因為開關速度問題發生同時導通而設定的乙個保護時段。通常也指pwm響應時間。

// 死區** ,matlab

x =0:

0.01:20

; y =

sin(x)

;plot

(x,y)

; hold on;

for i =1:

2000ify

(i)>

0.5y

(i)=

y(i)

-0.2

;

elseif y

(i)<

-0.5

y(i)=y

(i)+

0.2;

else

y(i)=0

;

endend plot

(x,y)

;

為了更方便的理解,使用matlab進行驗算。

輸入乙個正弦訊號,限幅值為0.2,則plot結果如下:

結論:可以看出,輸入訊號進行了兩部分處理,一部分是限幅值,另一部分是死區特性,對應輸出為零的輸入訊號範圍(不會因為訊號切換問題發生 同時導通 而設定的乙個保護時段)

ps:若將限幅值0.2改為0,則**結果如圖所示:

可以看出處理後的資料只有死區特性。

建構函式以及this

實際上建構函式與普通的函式並沒有區別,所以一般在開發中會使用大駝峰命名規則來區別普通的函式,建構函式實際上是通過返回乙個this值來完成建構函式的建立的.這個rutern this的操作由new這個操作符來完成,當然個人也可以手動來設定return的返回值,手動設定的返回值會覆蓋由new所自動新增的...

建構函式以及this

實際上建構函式與普通的函式並沒有區別,所以一般在開發中會使用大駝峰命名規則來區別普通的函式,建構函式實際上是通過返回乙個this值來完成建構函式的建立的.這個rutern this的操作由new這個操作符來完成,當然個人也可以手動來設定return的返回值,手動設定的返回值會覆蓋由new所自動新增的...

php fopen函式以及相關函式

fopen string filename string mode bool use include path false resource context fopen 將 filename 指定的名字資源繫結到乙個流上。引數 filename 如果 php 認為 filename 指定的是乙個本地...