[問題] 一個轉移函數反拉氏已回收

看板MATLAB作者 (激凸李維)時間17年前 (2008/11/12 09:07), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
一個轉移函數反拉氏 Y(s)=1000u/(s(s+100)) 原本不確定可不可以用部分分式求y(t) 但還是硬著頭皮算, 1000u/(s(s+100))=A/s + B/(s+100) As+100A+Bs=1000u 100A=1000u A=10u As+Bs=0 B=-10u 10u/s-10u/(s+100) 10u*(1/s)-10u(1/(s+100))=10u*(1)-10u*e^-100t 但用matlab run看看 結果出現Unexpected MATLAB expression 10u*(1)-10u*e^-100t 连這行有問題 我把全部程式碼貼出來,神人大大們幫我看一下吧 程式碼: %Initilizing kp kp=1; %kp_1=rand; e_1=0;e_2=0; y_1=0;y_2=0; ts=0.001; for k=1:20000 time(k)=k*ts; if k< 2000 yd(k)=0; else yd(k)=2*pi; end u=kp*e_1; Dy=(y_2-y_1)/(ts); D2y=(y_2'-y_1')/(ts); exp=9.7033*10^8; y(k)=10u-10u*exp^(-100*t); e(k)=yd(k)-y(k); e_2=e_1; e_1=e(k); y_2=y_1;y_1=y(k); end figure(1); plot(time,yd,'b',time,y,'r'); xlabel('time(s)');ylabel('yd,y(rad)'); figure(2); plot(time,e,'r'); xlabel('time(s)');ylabel('e(rad)'); figure(3); plot(time,u,'r'); xlabel('time(s)');ylabel('u(A)'); 就是PID控制器裡, 只做P部分的比例增益, 輸入是u (控制量) u=kp*e, 經由簡易的馬達模型1000/(s(s+100)) 之後 跑出一個y(操作量) 與yd(目標值)比較後,產生e(誤差) yd固定在2*pi的地方, -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.137.20.1
文章代碼(AID): #196YnJ3M (MATLAB)
文章代碼(AID): #196YnJ3M (MATLAB)