[問題] 程式結果不對已回收

看板MATLAB作者 (隨遇而安)時間16年前 (2009/10/09 00:35), 編輯推噓4(4012)
留言16則, 2人參與, 最新討論串1/1
不好意思,又來麻煩大家了m(_ _)m 我們是要模擬一個系統,從不穩定到穩定 --------------------------以下是程式碼---------------- clc; clear all; %%--工作時間--%% t=30; %%--取樣時間--%% h=0.01; %%-----initial value X1(1)=0; X2(1)=0; X3(1)=0; X4(1)=0; X(:,1)=[X1(1),X2(1),X3(1),X4(1)]; %%------控制器 K=[0 0 1 0]; s=1:t/h; U(s)=-K*X(:,s); %%------定義矩陣 k=-2; J1=1; J2=1; d=4; A=[ 0 1 0 0 ; -k/J2 -d/J2 k/J2 d/J2 ; 0 0 0 1 ; k/J1 d/J1 -k/J1 -d/J1 ]; B=[ 0 ; 0 ; 0 ; 1/J1 ]; C=[1 0 0 0]; %%-------狀態方程式 for s=1:t/h X(:,s+1)=X(:,s)+h*(A*X(:,s)+B*U(s)); X(:,s)=X(1,s+1); X(:,s)=X(2,s+1); X(:,s)=X(3,s+1); X(:,s)=X(4,s+1); end figure(1); plot(0.01:h:t,U); hold on; xlabel('Time(sec)'); ylabel('U'); hold off; ----------------------------以上是程式碼------------------------- 想問一下,為何跑出來它的結果是ANS=5 重點是從頭到尾沒有沒有ANS阿 再來是FOR迴圈裡的,感覺設的怪怪的 煩請懂得人指點一下 再次感謝m(_ _)m 對了,我們有輸入要跑圖的程式碼,可是沒有跑圖出來,只有給一個ANS=5 這是我們納悶的地方 -- 颯風沾,問途寒, ˍˍ 誰與共飲,誰敢擋關? 燕歸 命‧人不還。 人印  ̄ ̄ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.129.40.42

10/09 10:02, , 1F
你state-space的寫法不對吧
10/09 10:02, 1F

10/09 10:06, , 2F
我執行的時候有圖跑出來,也沒有你說的ANS=5的問題。
10/09 10:06, 2F

10/09 10:06, , 3F
會不會是你自己哪裡搞錯了,不過控制結果不對就是了。
10/09 10:06, 3F

10/09 10:14, , 4F
不是直接按F5跑嗎?
10/09 10:14, 4F

10/09 10:44, , 5F
ANS=5 會出現在workspace
10/09 10:44, 5F

10/09 11:43, , 6F
老實說你上面附的程式有點問題
10/09 11:43, 6F

10/09 11:44, , 7F
因此我將U(s)=-K*X(:,s)改成-K*X(:,1)
10/09 11:44, 7F

10/09 11:44, , 8F
但是我覺得你的控制還是有問題,因為我沒有看到
10/09 11:44, 8F

10/09 11:45, , 9F
你的控制項,簡單說你的U都沒有再變,我也沒看到設定點
10/09 11:45, 9F

10/09 11:46, , 10F
不過我在workspace內真的沒有你說的ANS=5
10/09 11:46, 10F

10/09 11:46, , 11F
不過這個不重要,我覺得你要檢查你的數學式,
10/09 11:46, 11F

10/09 11:46, , 12F
把model和控制器修正比較重要。
10/09 11:46, 12F

10/09 12:18, , 13F
恩恩 謝謝 我在試試看
10/09 12:18, 13F

10/09 12:22, , 14F
對了 圖會自己跳出來對吧? 還是要按其他東西看
10/09 12:22, 14F

10/09 12:22, , 15F
學長再示範時是自己跑出來的
10/09 12:22, 15F

10/09 19:18, , 16F
對,會自己跳出來,因為你有用plot繪圖。
10/09 19:18, 16F
文章代碼(AID): #1ApXIxyY (MATLAB)
文章代碼(AID): #1ApXIxyY (MATLAB)