一般數(shù)字控制器設(shè)計方法采用直接數(shù)字法:s域的被控對象首先被轉(zhuǎn)化到z域,控制器設(shè)計直接在z域中進行。當(dāng)然,也有另外一種數(shù)字再設(shè)計方法,控制器在s域中設(shè)計,然后再進行離散化。在數(shù)字再設(shè)計法中,當(dāng)采樣頻率足夠高時,由數(shù)字控制的采樣保持過程導(dǎo)致的時間延遲可以做一個近似表達。在時間延遲環(huán)節(jié)被線性化以后,就可以根據(jù)系統(tǒng)的性能指標在s域中采用Bode圖之類的標準設(shè)計方法來設(shè)計模擬控制器,一旦模擬控制器被設(shè)計出來以后,就能夠被離散化。
s域到z域的離散化方法建議采用雙線性變換,也就是tustin變換:
雙線性變換法把s域的整個左半平面映射為z平面的單位圓,因而不會影響離散化后系統(tǒng)的穩(wěn)定性,除此之外,雙線性變化發(fā)最吸引人的特征是在低于1/10采樣頻率時同時保留了控制器幅值和相位的頻率特性。與被控對象校正后系統(tǒng)開環(huán)傳遞函數(shù)的幅值穿越頻率相比,當(dāng)采樣頻率足夠高時,可以采用數(shù)字再設(shè)計法。
現(xiàn)在以一個s域的補償器設(shè)計為例,流程如下:
1)首先選擇一個合適的已知原型濾波器傳遞函數(shù)(要選擇合適的零極點);
以3p3z補償器為例,其常見表達式為:
上述補償器提供一個零極點,以提高低頻增益;提供兩個零點wz1和wz2,提供兩個極點wp1和wp2.假設(shè)提供零點頻率800Hz,兩個零點 分別為300Hz和900Hz,兩個極點分別為500Hz和5KHz,可以如下表達:
2)將改原型濾波器的s域傳遞函數(shù)映射到z域中;
可以利用matlab將上述s域方程進行z域的轉(zhuǎn)換,matlab變換程序如下
現(xiàn)在得到了z域的表達式為:
e(z)是誤差量,u(z)為輸出量。
另外舉例為一個SZSP的s傳遞函數(shù)如下(極點頻率在10Hz,零點頻率在250Hz):
利用matlab變換如下(采樣頻率100kHz):
除了matlab可以進行方便快捷的變換之外,數(shù)學(xué)軟件Mathcad也是可以的
3)將z域轉(zhuǎn)換為時域內(nèi)的線性差分方程;
由于dspic33系列是16bit定點,所以需要對A/B系數(shù)進行Q15定標然后再進行計算。
在MCU內(nèi)部執(zhí)行方式如下: