連續域的積分傳遞函式是1/s,而控制器是乙個離散的系統,所以須將連續的傳遞函式離散化,當然有公式推算,對於我這種基礎不大好的人理解起來費勁,所以使用matlab來解決這一問題。
lcfun=tf([0,1],[1,0]); %連續函式1/s的分子是[0,1],分母是[1,0];
ldfun=c2d(lcfun,1e-3,『tustin』);%c2d是將連續函式離散化,1e-3訊號取樣週期為10ms;
在matlab就可以檢視離散函式ldfun =(0.0005 z + 0.0005)/(z-1);再將離散函式轉換成c語言的編寫習慣:
y(n)/x(n)= (0.0005 z + 0.0005)/(z-1);
分解一下即成:
zy(z)=0.0005zx(z)+0.0005x(z)+y(z);
該等式等效成:
y(n)=0.0005x(n)+0.0005x(n-1)+y(n-1);
備註:y(n)是當前需要計算的結果值,x(n)是當前的輸入值,x(n-1)上一時刻的輸入值,y(n-1)是上一時刻的結果值。
如果是使用matlab模型生成c**,則不需要這個過程,直接使用simulink中的離散積分模組:
模組的設定增益是0.0005,同時按照實際數值的情況設定最大值最小值。
最後和整個工程一起編譯成c**。
PID控制器開發筆記之五 變積分PID控制器的實現
在普通的pid控制演算法中,由於積分係數ki是常數,所以在整個控制過程中,積分增量是不變的。然而,系統對於積分項的要求是,系統偏差大時,積分作用應該減弱甚至是全無,而在偏差小時,則應該加強。積分係數取大了會產生超調,甚至積分飽和,取小了又不能短時間內消除靜差。因此,如何根據系統的偏差大小改變積分速度...
控制器和動作方法之控制器Controller
到達應用程式的每乙個請求都是由控制器處理的。只要不偏離到屬於模型和檢視職責的領域,控制器可以以它認為合適的方式自由地處理請求。在asp.net mvc框架中,控制器是含有請求處理邏輯的.net類。控制器的作用是 1.負責處理輸入請求 2.執行域模型上的操作 3.選擇渲染給使用者的檢視 建立乙個控制器...
thinkphp控制器的使用
控制器的使用 2.1url如何呼叫控制器 以典型的url為例 http localhost shop index.php home index test home controller indexcontroller.class.php namespace home controller useth...