Mercurial > forge
changeset 9537:3425362a3a0e octave-forge
control: touch up example
author | paramaniac |
---|---|
date | Wed, 29 Feb 2012 20:09:03 +0000 |
parents | 04d292363111 |
children | 9bea7572720b |
files | main/control/inst/optiPID.m main/control/inst/optiPIDctrl.m main/control/inst/optiPIDfun.m |
diffstat | 3 files changed, 17 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/main/control/inst/optiPID.m Wed Feb 29 10:07:16 2012 +0000 +++ b/main/control/inst/optiPID.m Wed Feb 29 20:09:03 2012 +0000 @@ -66,7 +66,6 @@ kp_opt = C_par_opt(1) Ti_opt = C_par_opt(2) Td_opt = C_par_opt(3) -tau_opt = Td_opt / 10 C_opt = optiPIDctrl (kp_opt, Ti_opt, Td_opt);
--- a/main/control/inst/optiPIDctrl.m Wed Feb 29 10:07:16 2012 +0000 +++ b/main/control/inst/optiPIDctrl.m Wed Feb 29 20:09:03 2012 +0000 @@ -1,10 +1,18 @@ +% =============================================================================== +% optiPIDctrl Lukas Reichlin February 2012 +% =============================================================================== +% Return PID controller with roll-off for given parameters Kp, Ti and Td. +% =============================================================================== + function C = optiPIDctrl (Kp, Ti, Td) - tau = Td / 10; + tau = Td / 10; % roll-off num = Kp * [Ti*Td, Ti, 1]; den = conv ([Ti, 0], [tau^2, 2*tau, 1]); C = tf (num, den); -end \ No newline at end of file +end + +% ===============================================================================
--- a/main/control/inst/optiPIDfun.m Wed Feb 29 10:07:16 2012 +0000 +++ b/main/control/inst/optiPIDfun.m Wed Feb 29 20:09:03 2012 +0000 @@ -11,8 +11,13 @@ % Global Variables global P t dt mu_1 mu_2 mu_3 - % Function Argument -> PID Controller with Roll-Off - C = optiPIDctrl (num2cell (C_par){:}); + % Function Argument -> Controller Parameters + kp = C_par(1); + Ti = C_par(2); + Td = C_par(3); + + % PID Controller with Roll-Off + C = optiPIDctrl (kp, Ti, Td); % Open Loop L = P * C;