2016-12-02 70 views
0

我試圖獲得關於電動機速度的不同轉矩值的矢量。爲此,我在一定的速度下使用了一些扭矩值,並嘗試爲它們擬合曲線。將曲線擬合多項式值分配給矢量

tpdata=[0 10 20 30 40 50 60 65 70 75 80 85 90 93.3 95.8 98 99 100]; 
pdata=[3.3 3.05 2.81 2.79 2.80 2.88 3.02 3.12 3.20 3.28 3.13 2.75 2.10 1.5 1 0.5 0.25 0]; 

我根據我的需要

u=2880/690 

ydata=pdata*3.65*u 
tsdata=tpdata*30/u 

修改它,我用曲線擬合工具來獲取常量。

p1 = -2.4592e-20 
    p2 = 1.51e-16 
    p3 = -2.7946e-13 
    p4 = 2.3662e-10 
    p5 = -1.0391e-07 
    p6 = 2.3887e-05 
    p7 = -0.0024883 
    p8 = 0.035497 
    p9 = 50.272 

欲擬合多項式於我命名爲y(轉矩值)矢量

我能得到溶液情節的溶液(從1 rpm到720 rpm)的分配,但我不能看到它們或將它們分配爲矢量。

for i=1:720 
    y = p1*i^8 + p2*i^7 + p3*i^6 + p4*i^5 + p5*i^4 + p6*i^3 + p7*i^2 + p8*i + p9; 
    plot(i,y,'d'); 
    hold on 
    grid on 
    end 

當我添加y = zeros(1,720)並將y更改爲y(1,i)時,腳本失敗。

這是什麼原因?

回答

0

您每次都將解決方案保存在y中,並在下一個循環中被覆蓋。你應該這樣做:

for i=1:720 
     y(i) = p1*i^8 + p2*i^7 + p3*i^6 + p4*i^5 + p5*i^4 + p6*i^3 + p7*i^2 + p8*i + p9;  
end 

plot(y,'d'); 
hold on 
grid on 

現在你得到一個向量y(1x720)。你不需要做y =零(1,720)...