網路控制系統是引入網路的控制系統,即網路可能存在於控制系統的反饋通道和控制通道。在網路控制系統中,被控物件的數學模型當然是連續的(這個世界上還有離散的物理系統麼?)但是,由於網路控制系統不可能使用連續的訊號來控制被控物件,所以我們需要把被控物件的模型離散化。
例如:
尤拉法:
給定小車的模型為:
x ˙=
vcos
(θ)y
˙=vs
in(θ
)θ˙=
ω(1)
\dot=vcos(\theta)\\ \dot = vsin(\theta)\\ \dot = \omega \tag
x˙=vco
s(θ)
y˙=
vsin
(θ)θ
˙=ω(
1)那麼離散化為:
x (k
+1)=
x(k)
+hv(
k)co
s(θ(
k))y
(k+1
)=y(
k)+h
v(k)
sin(
θ(k)
)θ(k
+1)=
θ(k)
+hω(2)
x(k+1) = x(k)+hv(k)cos(\theta(k)) \\ y(k+1) = y(k)+hv(k)sin(\theta(k)) \\ \theta(k+1) = \theta(k)+h\omega \tag
x(k+1)
=x(k
)+hv
(k)c
os(θ
(k))
y(k+
1)=y
(k)+
hv(k
)sin
(θ(k
))θ(
k+1)
=θ(k
)+hω
(2)接下來程式設計驗證一下使用尤拉法離散化好不好用:
matlab指令碼:test_******dynamiccar
% test_******dynamiccar
v =ones(1
,3000);
phi =
ones(1
,3000);
x =0
;y =0;
theta =0;
axis equal
for i =1:
3000
[x,y,theta]
=******dynamiccar
(x,y,theta,
v(i)
,phi
(i))
;plot
(x,y,
'.')
; hold on;
pause
(0.01
)end
matlab**:******dynamiccar函式
function [x,y,theta]
=******dynamiccar
(x,y,theta,v,phi_f)
h =0.01
;lw =
0.25
;x = x +
(v*(
cos(theta)
-tan
(phi_f)
*sin
(theta)
*0.5))
*h;y = y +
(v*(
sin(theta)
+tan
(phi_f)
*cos
(theta)
*0.5))
*h;theta = theta + v*
tan(phi_f)
/lw*h;
end
使用simulink模組同樣可以搭建乙個小車的模型(作為基準),來和尤拉離散做乙個對比。結果為下圖,紅色的為使用simulink的小車軌跡,藍色為使用**實現的小車軌跡。**時間為30秒。
可以看出,還是有偏差的,,,但是應該也夠用吧。
離散時間控制系統
對連續時間訊號進行週期性取樣得到離散時間序列。取樣訊號x t 加入到取樣開關的輸入端,如果取樣開關每隔時間 t 閉合一次,取樣開關為理想開關,那麼連續訊號f t 經過取樣就得到了一連串的脈衝序列x t 稱為衝激取樣器 i 理想取樣的數學描述 x t x t t x kt x kt t kt x t ...
常用的控制系統離散化方法
常用的控制系統離散化方法共有6種,分別是 1 前向差分法 2 後向差分法 3 雙線性變換法 4 脈衝響應不變法 5 階躍響應不變法 6 零極點匹配法 前三種方法比較簡單易用,已知對應的s域傳遞函式,可以通過簡單的代數變換求得對應的z變換 假設對應的傳遞函式為d s 1 rcs 1 前向差分法 s z...
版本控制系統之GIT
版本控制系統作用 記錄 管理和跟蹤整個 開發過程,確保不同開發人員之間的 同步。git 開發者 linux作者 奈斯.託瓦斯 特點 開源 免費 同類的還有svn,兩者為市場主要使用的版本控制系統,svn定位於企業級,區別主要為svn許可權較高,且為集中式版本控制系統,必須連上svn伺服器 git為分...