制御対象(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"])

