1. 從 step response 求得 transfer function, 用下列指令分別得到系統的階梯反應之數據, 根據這個數據 求得系統的 傳遞函數, 需要交待每一個步驟 所用的公式 指令及結果, 若是數列 則 請畫出圖形 並標示重要的及代表性的座標.
a. [y1a,x1a,t1a]=step([1],[1 1]); 【Linear_Parameter_Model 5分 (只用一點數據就解出衰減常數 3分), Least_Square 5分】
b. [y1b,x1b,t1b]=step([1],[1 6 25]); 【{衰減常數 5分, 週期與相位Linear_Parameter_Model 5分, Least_Square 5分} 或 {利用 over shoot 得 damping factor 5分, {由週期得wd 再求得 wn | 也可以用 rise time 及 damping factor 得 wn} 5分, 由 steady state gain 得到分子的值 5分}】
c. [y1c,x1c,t1c]=step([1],[1 1]); y1c=y1c+0.02*rand(size(y1c)); 【取log時 要用 max(,1e-3) 來去除雜訊對小的數字的影響的過份放大 10分】
註: 這題要小心 如果 matlab 告訴你 log(1-y) 是 complex 那是什麼意思? 最好把 y(t) 畫出來看看!
d. [y1d,x1d,t1d]=step([1],conv([1 3],[1 .5])); 【(只適用於衰減常數的值有相當的差異的情形)第一個項5分,第二個項10分】

2. 從 頻率響應 求得 transfer function, 用下列指令分別得到系統的頻率響應之數據, 根據這個數據 求得系統的 傳遞函數, 需要交待每一個步驟 所用的公式 指令及結果, 若是數列 則 請畫出圖形 並標示重要的及代表性的座標. (注意:這裡的相位是度度量,頻率是弧度量的角頻率)
a. [g2a,ph2a,w2a]=bode([1],[1 1]); 【order 5分, corner frequency 5分】
b. [g2b,ph2b,w2b]=bode([1],[1 6 25]); 【order 5分, corner frequency 5分, dampling factor 5分】
c. [g2c,ph2c,w2c]=bode([1],[1 1]); ph2c=ph2c-(180/pi)*w2c*0.5; 【order 5分, corner frequency 5分, delay 5分】
註: 畫 w ~ phase 看看
d. [g2d,ph2d,w2d]=bode([1 1],conv([1 3],[1 .5])); 【order 5分, corner frequencies 各5分】

3. 試求 G(s)=1/(s^2+6*s+25) 的振盪頻率【3分】, 自然共振頻率【3分】, damping factor【3分】, 90% rise time【3分】, overshoot【3分】, 5% settling time【3分】, 試著在此傳遞函數的分子加上一個一次式使得其階梯反應有所謂的 reverse reaction 的現象【5分】.
wn=5, zeta=0.6, 二次項與一次項配平方後剩下的常數項開根號得到 wd=4, 由 [y1b,x1b,t1b]=step([1],[1 6 25]); whos, 知t1b 1 by 59, y1b 59 by 1, y1b->0.04, 故由 [t1b; y1b'/.04] 知 Mp=1.0947@t1b=0.7931,
90% rise time=t90%-t10%
t90%:由{0.8668@0.4483 & 0.9179@0.4828}內插 "solve((y1-ym)*(t2-tm)=(ym-y2)*(tm-t1),tm);" "solve({y1=.8668,y2=.9179,t1=.4483,t2=.4828,y90=0.9, (y1-y90)*(t2-t90)=(y90-y2)*(t90-t1)}, {y1,y2,t1,t2,y90, t90});" 得到 tr90=.4707,
t10%:由{0.0515@0.0690 & 0.1076@0.1034}內插 "solve({y1=.0515,y2=.1076,t1=.0690,t2=.1034,y10=0.1, (y1-y10)*(t2-t10)=(y10-y2)*(t10-t1)}, {y1,y2,t1,t2,y10, t10});" 得到 t10=.0987,
solve({t10=.9873975045e-1,t90=.4707148728, tr90=t90-t10},{t90,t10, tr90}); 得到 tr90 = .3720
5% settling time: {1.0527@1.0345 & 1.0446@1.0690}內插 "solve({y1=1.0527,y2=1.0446,t1=1.0345,t2=1.0690,y105=1.05, (y1-y105)*(t2-ts05)=(y105-y2)*(ts05-t1)}, {y1,y2,t1,t2,y105, ts05});" 得到 ts05=1.046,

4. G(s)與3. 同, 現在想用 Gc(s)= K(1+1/(TI*s)) 加在一個負回饋控制系統中, 所擺的位置是在 指令與輸出比較的誤差訊號 與系統之G(s)之間, 請找出 K>=0 與 TI>=0 可以使閉迴路系統是穩定的條件式 【10分】, 並請問 調變 K TI 時 可以使系統的 damping factor 變化的範圍【10分】, 請問 此閉迴路系統的 regulation error 【5分】及 ramp tracking error【5分】與 K 及 TI 之關係.
root locus of KI: G(s)=(s+1/TI)/s/(s^2+6*s+25), root locus of TI:

5. 現在有一輛汽車空重700KG, 輪胎等的模擦力對動能的消耗率 等於是每秒鐘消耗汽車動能的1%, 而油門踏入行程(<=5cm) 到引擎對車子的出力 的傳遞函數為 KT/(s+2) 牛頓/公分【平路的動態方程式10分】, 而這個車子 最大加速度可以在5秒內加速到 36KMPH, 請問KT, 現在 想 做一個定速控制器 cruise control, 請問這個車 的車速 和 可以 爬的最大斜坡坡度 (即坡度的tan()值) 間的關係【加上斜坡的輸入方程式5分, steady state 最終值 5分】.
這個定速控制器最好在10秒內使回授的控制增益加倍, 而且這個控制器要能在爬坡時能完全補償坡度的影響, 而且因為引擎出力有限 所以希望不要有任何 overshoot 卻要能有最快的反應, 請設計這樣的控制器. 若現在有可能會乘載含駕駛在內最多4個人員, 請合理估計正常的車重的範圍, 我們要求在任何的狀況下 閉迴路系統都不能出現有 overshoot 的情形, 請確認你的設計 【定出控制器的架構5分, 控制器功能的條件設定: critical damp 5分/ 權重的變動範圍內都不能變成 under damped 5分, 計算的結果10分】.

6. G(s)=(s^2+2*s+2)/(s*(s^2+6*s+13)*(s^2+s+2)) 請畫出 P-control 的 root luci 【5分,若把軌跡的各個特徵值都算出來再加5分】, 能不能加上 lead compensator 使它的兩個會往不穩定區去的根軌跡會被往穩定區拉到能通過 -0.25 + (+-)4j, 請設計之 【10分】.
rlocus([1 2 2],conv([1 0],conv([1 6 13],[1 1 2]))); hold on; t=[-.25+4j ; -.25-4j],plot(real(t),imag(t),'*k'),
用 (s+z)/(s+p) 調 z,p such that angle(G(.25+4j))+angle((s+z)/(s+p);s=-.25+4j)=(2n+1)*pi, 則 可以調 k 使得 {G(s)*(s+z)/(s+p);s=-.25+4j}=-1如此根軌跡就可以過所指定的位置,
figure(1);z=.5;p=3;rlocus(conv([1 2 2],[1 z]),conv([1 p],conv([1 0],conv([1 6 13],[1 1 2]))));hold on,t=[-.25+4j ; -.25-4j];plot(real(t),imag(t),'*k');axis([-5 5,-10 10]),
figure(2);bode([1 z],[1 p]);