2017-01-14 9 views
-1

PIDコントローラを追加する必要があります。あなたはPIDから誤差、積分誤差、微分誤差を得る方法を教えてください。遺伝的アルゴリズムによってPIDパラメータを生成するには、この値が必要です。PIDからエラーを取得する方法は?

J = 0.01; 
b = 0.1; 
K = 0.01; 
R = 1; 
L = 0.5; 

A = [-b/J K/J 
    -K/L -R/L]; 
B = [0 
    1/L]; 
C = [1 0]; 
D = 0; 
sys = ss(A, B, C, D); 

Ts = 1/10; 
T = 3.5; 

sysd = c2d(sys, Ts); 

t = 0:Ts:T; 
nSamples = length(t); 

y = NaN(1, nSamples); 
u = ones(1, nSamples); 
X = [0; 0]; 
for i=1:nSamples  
    y(i) = sysd.C * X + sysd.D * u(i); 
    X = sysd.A * X + sysd.B * u(i); 
end 

figure; 
step(sys); 

figure; 
plot(t, y, 'r') 

答えて

1

ありがたいことに、多くの人々は、既にMATLABでのPIDコントローラを設計しているので、あなたは、彼らの例から学ぶことができます。 MATLAB File ExchangeのPID controllerがあります。エラーの導関数と積分はそれぞれ変数 "Der"と "Int"に保存されます。

MATLABのコピーと共にControl Systems Toolboxをインストールしている場合は、すでにPIDコントローラを設計するための強力な組み込み機能にアクセスできます。 PID tunerを利用することができます。

関連する問題