1樓:匿名使用者
那個代copy碼不完整,裡面用到的distance和min函式都沒有定義,而從函式的輸入輸出引數和作用看,並不是系統自帶的distance和min函式。
最好的辦法的是你再找一找,看有沒有更完整的**,如果找不到,我幫你補了這兩個函式,程式可以執行,但我不確定是不是符合演算法的本意。
我補的那兩個函式放家裡了,要是你找不到更好的解決辦法,可以追問,我回家後貼出**。
2樓:天到
distance 函式呼叫出問題了,引數不對,集中檢查下distance 函式
急求助matlab中的一個問題!!!各路大神幫幫忙啊!!小弟感激不盡!!
3樓:匿名使用者
應該先把函式部分的內容儲存成:
function[nbar]=rscale(a,b,c,d,k)
% given the single-input linear system
% x=ax+bu
% y=cx+du
% and the feedback matrix k
% the function rscale(a,b,c,d,k)finds the scale factor n which will
% eliminate the steady-state error to a step reference
s=size(a,1)
z=[zeros([1,s]) 1]
n=inv([a,b;c,d])*z'
nx =n(1:s)
nu=n(1+s)
nbar=nu+k*nx
再把餘下的內容儲存成另一個m檔案(檔名任意,但應該是一個合法的m檔名,後面執行的是這個檔案):
a=[0,1,0,0; 0,0,0,0; 0,0,0,1; 0,0,37.22,0]
b=[0; 1; 0; 0.84]
c=[1,0,0,0; 0,0,1,0]
d=[0; 0]
q=[1,0,0,0; 0,0,0,0; 0,0,1,0; 0,0,0,0]
r=1k=lqr(a,b,q,r)
ac=[(a-b*k)];bc=[b];cc=[c];dc=[d]
t=0:0.02:10
u=3.14159*ones(size(t))
**=[1,0,0,0]
nbar=rscale(a,b,**,0,k)
b**=[nbar*b]
[y,x]=lsim(ac,b**,cc,dc,u,t)
plot(t,x(:,1),'--');hold on
plot(t,y(:,2));hold on
plot(t,y)
legend('pendulum','link')
求MATLAB大神幫我看看程式哪有問題,謝謝
我把步長改了改,因為不然電腦執行太慢不出結果,所以改長了,但是沒有其他影響.下面的 是沒改的.t 0.1 r 0.5 a 2 d的取值區間上限 b 0.04 d的步長,我取的0.1 c1 0 o取值區間下限 c2 10 o取值區間上限 d 0.1 o的步長,我取的0.5 p21 1 r21 0.1 ...
關於應用程式錯誤問題,關於應用程式錯誤問題
如果是開機出現的是程式的話,看看開機啟動中是否有這個選項,如果有將其去掉,如果是系統程序不適用上面的方法。2 如果上面的方法不能解決,先軟後硬,重新安裝作業系統,不要安裝軟體 補丁 驅動等,看看開機還有問題嗎?如果沒有在逐步的安裝驅動 補丁 軟體,找出不合適的東西就不要安裝了。請注意 如果還原系統或...
求簡單C 程式問題 高分懸賞,求三個簡單C 程式問題 高分懸賞
網上一大堆,自己找去。這麼高的分,可惜不會做。1 歸併排序 templatevoid merge datalist initlist,datalist mergedlist,const int l,const int m,const int n while list.vector i getkey ...