MATLABを使用したPID制御シミュレーション

公園のブログから、この論文転送:

https://www.cnblogs.com/kui-sdu/p/9048534.html

%PIDコントローラ
すべての近くに、CLC、明確な。

TS = 0.001;%サンプリング時間= 0.001s 
SYS = TF(5.235e005、[1,87.35,1.047e004,0]);%、制御対象の伝達関数を確立します
DSYS = C2D(SYS、TS、 'Z');%離散伝達関数
[民、デン] = tfdata(DSYS、 'V');%離散分子を抽出した後、分母

U_1 = 0.0; U_2 = 0.0; U_3 = 0.0、入力ベクトルの初期状態の%
Y_1 = 0.0; Y_2 = 0.0; y_3 = 0.0、出力の初期状態の%
X = [0,0,0]「;の%PID三つのパラメータKpのKiをKdをアレイ
error_1 = 0;%初期誤差 
Sは、=入力(「の形で入力信号を選択してください:ステップ信号2方形波信号、正弦波信号を3 \ n」);
K = 1:1:500
時間(K)= K * TS;%シミュレーション時間500ミリ秒
もしS == 1
    KP = 1.50; = 0.01;のKd = 0.01。          
    %命令ステップ信号、YD(k)は1 =
elseifをS == 2
    KP = 0.50; = 0.001;のKd = 0.001。          
    YD(K)=符号(SIN(2 * 2 * PI * K * TS));%方形波指令信号
elseifをS == 3
    KP = 1.5、KI = 1.0; KD = 0.01;%正弦波指令信号
    YD(K)= 0.5 * SIN(2 * 2 * PI * K * TS)。           
終わり

U(k)= KP * X(1)+ KD * X(2)+のKi * X(3);%PIDコントローラ   
%リミット制御出力
U(k)の場合> = 10       
   U(K)= 10。
終わり
U(k)の場合<=  -  10
   U(k)=  -  10。
終わり
%おおよその線形モデル
及び(K)=  -  DEN(2)* Y_1-DEN(3)* Y_2-DEN(4)* NUM y_3 +(2)* NUM U_1 +(3)* NUM U_2 +(4)* U_3。

エラー(K)= YD(K)-y(k)は、

%リターンPIDパラメータ 
U_3 = U_2、U_2 = U_1、U_1 = U(k)は、
y_3 = Y_2; Y_2 = Y_1; Y_1 = Y(K);
   
X(1)=誤差(K);%P計算
X(2)=(エラー(K)-error_1)/ tsの、%計算D
X(3)= xと(3)+エラー(K)* TS;%計算I

error_1 =誤差(K)。
終わり
図1);
セット(0、 'defaultfigurecolor'、 'W')%の白色の背景画像を設定します
プロット(時間、YD、R ''、時刻、Y、 'B'、 '線幅'、2)。
xlabel( '時間(s)'); ylabelの( '出力信号')。
凡例(「にわたる信号」、「トラッキング信号」);

 

  

 

  

おすすめ

転載: www.cnblogs.com/morvan/p/11707351.html