|
From: | Abdul Rahman Riza |
Subject: | PID function in octave control not working.. why? |
Date: | Fri, 26 Jun 2015 02:21:28 +0700 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.7.0 |
Dear All, I'm using octave 3.8.2 in debian jessie 64 bit trying to run matlab example here http://ctms.engin.umich.edu/CTMS/index.php?example=Suspension§ion=ControlPID hereunder my suspension.m files: ============================= m1 = 2500; m2 = 320; k1 = 80000; k2 = 500000; b1 = 350; b2 = 15020; nump=[(m1+m2) b2 k2]; denp=[(m1*m2) (m1*(b1+b2))+(m2*b1) (m1*(k1+k2))+(m2*k1)+(b1*b2) (b1*k2)+(b2*k1) k1*k2]; G1=tf(nump,denp); num1=[-(m1*b2) -(m1*k2) 0 0]; den1=[(m1*m2) (m1*(b1+b2))+(m2*b1) (m1*(k1+k2))+(m2*k1)+(b1*b2) (b1*k2)+(b2*k1) k1*k2]; G2=tf(num1,den1); numf=num1; denf=nump; F=tf(numf,denf); Kd = 208025; Kp = 832100; Ki = 624075; C = pid(Kp,Ki,Kd); sys_cl=F*feedback(F*G1,C); t=0:0.05:5; step(0.1*sys_cl,t) title('Closed-Loop Response to 0.1-m High Step w/ PID Controller') ================================= I already installed and load the latest octave-control package and found this error message octave:1> pkg load control octave:2> suspension warning: the 'pid' function belongs to the control package from Octave Forge but has not yet been implemented. Please read <http://www.octave.org/missing.html> to learn how you can contribute missing functionality. error: 'pid' undefined near line 23 column 5 error: called from: error: /home/riza/Codes/Octave/suspension.m at line 23, column 3 octave:2> then I tried to change pid function into optiPID ============================= m1 = 2500; m2 = 320; k1 = 80000; k2 = 500000; b1 = 350; b2 = 15020; nump=[(m1+m2) b2 k2]; denp=[(m1*m2) (m1*(b1+b2))+(m2*b1) (m1*(k1+k2))+(m2*k1)+(b1*b2) (b1*k2)+(b2*k1) k1*k2]; G1=tf(nump,denp); num1=[-(m1*b2) -(m1*k2) 0 0]; den1=[(m1*m2) (m1*(b1+b2))+(m2*b1) (m1*(k1+k2))+(m2*k1)+(b1*b2) (b1*k2)+(b2*k1) k1*k2]; G2=tf(num1,den1); numf=num1; denf=nump; F=tf(numf,denf); Kd = 208025; Kp = 832100; Ki = 624075; C = optiPID(Kp,Ki,Kd); sys_cl=F*feedback(F*G1,C); t=0:0.05:5; step(0.1*sys_cl,t) title('Closed-Loop Response to 0.1-m High Step w/ PID Controller') ================================= but there's another error message appears octave:2> edit suspension.m octave:3> suspension error: invalid use of script /usr/share/octave/packages/control-2.8.2/optiPID.m in index _expression_ error: called from: error: /home/riza/Codes/Octave/suspension.m at line 23, column 3 octave:3> Please advise how to use PID function therefore I may run matlab examples here http://ctms.engin.umich.edu/CTMS/index.php?example=Suspension§ion=ControlPID Regards, Riza |
[Prev in Thread] | Current Thread | [Next in Thread] |