Matlab程式問題,高分求錯誤原因,小弟感激不盡

2021-03-03 22:16:22 字數 1399 閱讀 4461

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 ...