公園のブログから、この論文転送:
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の( '出力信号')。 凡例(「にわたる信号」、「トラッキング信号」);