制御対象(2次遅れ系)の定義
t = 0:0.01:3 G=10/((s+5)*(s+2)) #2次遅れ系 plot2d(t,csim("step",t,syslin("c",G*C/(1+G*C)))) #Cは未定義 GC:1巡伝達関数
制御なしのステップ入力だと0.1に収束するところを制御入力を入れて1に近づける
P制御
clf C=1 plot2d(t,csim("step",t,syslin("c",G*C/(1+G*C))),1) C=10 plot2d(t,csim("step",t,syslin("c",G*C/(1+G*C))),2) C=100 plot2d(t,csim("step",t,syslin("c",G*C/(1+G*C))),3) legend(["Kp=1" "Kp=10" "Kp=100"])
clf C=1/%s plot2d(t,csim("step",t,syslin("c",G*C/(1+G*C))),1) C=1/(2*%s) plot2d(t,csim("step",t,syslin("c",G*C/(1+G*C))),2) C=1/(0.5*%s) plot2d(t,csim("step",t,syslin("c",G*C/(1+G*C))),3) C=1/(0.1*%s) plot2d(t,csim("step",t,syslin("c",G*C/(1+G*C))),4) legend(["Ti=1" "Ti=2" "Ti=0.5" "Ti=0.1"])
定常偏差が改善
積分時間Ti→短で応答速度早くなるも振動し始める
PI制御(Kp=1 固定)
clf C=1+1/(1*%s) plot2d(t,csim("step",t,syslin("c",G*C/(1+G*C))),1) C=1+1/(3*%s) plot2d(t,csim("step",t,syslin("c",G*C/(1+G*C))),2) C=1+1/(0.1*%s) plot2d(t,csim("step",t,syslin("c",G*C/(1+G*C))),3) legend(["Ti=1" "Ti=3" "Ti=0.1"])
ゲインKpとの連携で目標値への追従性能を改善
D制御
微分時間Td=0.1で固定
clf C=1+0.1*%s plot2d(t,csim("step",t,syslin("c",G*C/(1+G*C))),1) C=10*(1+0.1*%s) plot2d(t,csim("step",t,syslin("c",G*C/(1+G*C))),2) C=100*(1+0.1*%s) plot2d(t,csim("step",t,syslin("c",G*C/(1+G*C))),3) legend(["Kp=1" "Kp=10" "Kp=100"])