BO - Magnitude Optimum (Betragsoptimum) by Kessler specified for |
The BO Toolbox Version 1.2 is available for MATLAB with the following m-files or as ZipFile. Several examples illustrate the calculation of the controller parameters (*par.m) and the achievable control behaviour (*.sim.slx).
function name | features | input arguments |
---|---|---|
bo_u_gen | Magnitude optimum (Betragsoptimum) controller optimization: I-, PI-, PID- and
PID2-type, undelayed input (without pre-filter), one integrator in open loop |
controller type; plant gain, denominator, numerator; optional: dead-time, approximation type; |
bo_u_gen02 | same as bo_u_gen, but two higher order controllers possible | no change compared to bo_u_gen |
bo_d_gen | Magnitude optimum (Betragsoptimum) controller optimization: PI-, PID-, PID2- type, delayed input (pre-filter, so-called Symmetrisches Optimum), variable number of open loop integrators | controller type; plant gain, denominator, numerator; optional: dead-time, approximation type, initial values, solver options |
bo_d_gen02 | same as bo_d_gen, but two higher order controllers possible, revised equation system | no change compared to bo_d_gen |
bo_prefi_op | Magnitude Optimum (Betragsoptimum) optional pre-filter optimization (second step), to decrease overshoot more | LTI definitions of plant, controller bo_u AND controller bo_d as well as pre-filter according to bo_d; desired order of the optimized pre-filter is adjustable |
bo_prefi_op02 | same as bo_prefi_op, but additional pre-filter for reference system possible | LTI definitions of plant, controller and pre-filter for reference system, controller and pre-filter of the system to be optimized; potential reference system: e.g. dr_d_wedz; potential system to be optimized: bo_d_gen(02); desired order of optimized pre-filter is adjustable |
bo_prefi_op03 | same as bo_prefi_op, but input arguments of two different plant transfer functions for reference system and system to be optimized possible; | LTI definitions of plant and controller for reference system, plant and controller plus pre-filter for system to be optimized; potential reference system: e.g. bo_u_gen(02); potential system to be optimized: e.g. bo_d_gen(02); desired order of optimized pre-filter is adjustable |
bo_check | accuracy check for fulfillment of basic Magnitude Optimum equations | number of controller degrees of freedom; transfer functions: plant, controller, pre-filter if any |
bo_d_PI | same as bo_d_gen, but PI-type controller only, direct solution of a quadratic equation, unlike bo_d_gen no use of a solver for nonlinear systems of equations | same as bo_d_gen, but fixed controller type, without arguments for solvers of nonlinear equation systems (initial values, options) |
bo_d_speso | PID-type controller optimization based on Magnitude Optimum for delayed inputs (pre-filter, Symmetric Optimum) for four special plant structures | plant type; parameters: gain, first-order time-delay elements, integrator, oscillating element |
bo_d_pltgen | Magnitude optimum (Betragsoptimum) controller optimization: PI-, PID-, PID2-type, delayed inputs; unlike bo_d_gen: LTI definitions of plant and controller | controller type, plant, dead time, approximation, initial value, solver options |
dr_d_wedz | PID-type controller optimization based on Naslin Method (Doppelverhältnisse) for delayed inputs (pre-filter, optional: double zero) for four special plant structures | plant type; parameters: gain, first-order time-delay elements, integrator, oscillating element |
Applying MATLAB and SIMULINK directory DEMO offers following m- und slx-Files containing examples for scripts to call above listed functions and Simulink simulation structures to check the results.
controller optimization | features | simulation |
---|---|---|
Vran21_ex1_par.m | Plant with multiple poles (4-fold), controller with essential filter time constant for D-terms (much larger than Simulink default), application of bo_u_gen02 for optimization of PID, PID2 and PID3 controllers | Vran21_ex1_sim.slx |
ex1_par_Vgl.m | Plant with multiple poles (4-fold); comparison of PID, PID2 and PID3 controllers with and without essential filter time constant of the controller (bo_u_gen02, bo_d_gen02); comparison of the optimization of the pre-filter when using the exact result and when limiting the accuracy to 4 digits (bo_prefi_op) | ex1_sim_Vgl_und.slx ex1_sim_Vgl_del.slx ex1_sim_Vgl_del_FO.slx ex1_sim_Vgl_del_FO_4d.slx |
Vran21_ex2_par_po39_filpla.m | Plant with multiple poles (2-fold) and dead time (= half time constant), controller with essential filter time constant for D-terms (much larger than Simulink default), application of bo_u_gen02 for optimization of PID, PID2 and PID3 controllers and for comparison application of bo_d_gen for optimization of PID and PID2 controllers | Vran21_ex2_sim_po39_filpla.slx |
Vran21_ex4_par.m | Plant with multiple poles (3-fold) and dead time (= time constant) , controller with different filter time constants for D-terms (approx. 0.1 to 0.2-fold time constant), application of bo_u_gen02 for optimization of PID2, PID3 and PID4 controllers | Vran21_ex4_sim.slx |
Vran21_ex7_plus_par.m | Plant with 4 different first-order time-delay elements, controller with 2nd order filter polynomial for D-terms, application of bo_u_gen02 to optimize PID2 controller, application of bo_d_gen to optimize PID controller, application of bo_d_gen02 to optimize PID2 controller, application of bo_prefi_op to optimize prefilter | Vran21_ex7_plus_sim.slx |
Vran09_ex01till04_par.m | Four different plants: (1) 2 poles, (2) zero, pole and double pole , (3) negative zero, double pole, (4) 8-fold pole and dead time (= double time constant); all controllers with essential filter time constant for D-terms (much larger than Simulink default), application of bo_u_gen02 to optimize PID controllers, application of bo_d_gen to optimize PID controllers, application of bo_prefi_op to optimize pre-filters | Vran09_ex01_optprefi_sim.slx Vran09_ex02_optprefi_sim.slx Vran09_ex03_optprefi_sim.slx Vran09_ex04_optprefi_sim.slx |
Vran09_ex05_par.m | Plant with gain and denominator polynomial of 2nd order, controller with filter time constant for D-terms, application of bo_u_gen02 for optimization of PID controller, application of bo_d_gen02 for optimization of PID controller, application of bo_prefi_op for optimization of prefilter | Vran09_ex05_sim.slx |
cv_PI_1till4_par.m cv_PI_5till8_par.m cv_PI_1_2and5_6_par.m |
Four plants each from eight different plants: (1) dead time and first-order delay-element, (2) two first-order delay-elements, (3),(4),(6),(7) dead time and structure of an oscillating element - various parameters, (5) oscillating element and first-order delay-element, (8) second order oscillating element and first-order delay-element; PI controller optimization using bo_u_gen and bo_d_gen, application of bo_prefi_op for pre-filter optimization | cv_PI_1till4_sim.slx cv_PI_5till8_sim.slx cv_PI_1_2and5_6_sim.slx |
cv_PID_1till4_par.m cv_PID_5till8_par.m cv_PID_3_4and5_7_par.m |
Four plants each from eight different plants: (1) dead time and first-order delay-element, (2) two first-order delay-elements, (3),(4),(6),(7) dead time and structure of an oscillating element - various parameters, (5) oscillating element and first-order delay-element, (8) second order oscillating element and first-order delay-element; PID controller optimization using bo_u_gen and bo_d_gen, application of bo_prefi_op for pre-filter optimization | cv_PID_1till4_sim.slx cv_PID_5till8_sim.slx cv_PID_3_4and5_7_sim.slx |
case1_bo_d_par.m | Plant with 2 first-order time-delay elements and 1 integrator; comparison of the optimization of a PID controller based on the Magnitude Optimum for delayed inputs using bo_d_speso with the optimization based on the Naslin Polynomial Method (double ratios) using dr_d_wedz | case1_bo_d_sim.slx |
case2_bo_d_par.m | Plant with 3 first-order time-delay elements; comparison of the optimization of a PID controller using bo_d_gen, bo_d_speso and dr_d_wedz; example for pre-filter optimization of different order using bo_prefi_op | case2_bo_d_sim.slx |
case5_bo_d_par.m | Plant with 1 first-order time-delay element and 2 integrators; comparison of the optimization of a PID controller based on the Magnitude Optimum for delayed inputs using bo_d_gen with the optimization based on the Naslin Polynomial Method (double ratios) using dr_d_wedz in two variants: without and with double zero of the controller | case5_bo_d_sim.slx |
bo_d_case0_01_par.m | Plant: 2 first-order time-delay elements; controller: PI; optimization: Magnitude Optimum for delayed inputs, variation of time constants, comparison of the results of bo_d_gen and bo_d_PI | bo_d_case0_01_sim.slx |
bo_d_case1_01_par.m | Plant: 2 first-order time-delay elements and 1 integrator; controller: PID; optimization: Magnitude Optimum for delayed inputs, variation of time constants, comparison of the results of bo_d_gen and bo_d_speso | bo_d_case1_01_sim.slx |
bo_d_case2_01_par.m | Plant: 3 first-order time-delay elements; controller: PID; optimization: Magnitude Optimum for delayed inputs, variation of time constants, comparison of the results of bo_d_gen and bo_d_speso | bo_d_case2_01_sim.slx |
bo_d_case3_01_par.m | Plant: 1 oscillation element and 1 first-order time-delay element; controller: PID; optimization: Magnitude Optimum for delayed inputs, variation of the two time constants, comparison of the results of bo_d_gen and bo_d_speso | bo_d_case3_01_sim.slx |
bo_d_case4_01_par.m | Plant: 1 oscillation element and 1 integrator; controller: PID and 1 first-order time-delay element; optimization: Magnitude Optimum for delayed inputs, variation of integrator time constant, calculation with bo_d_gen | bo_d_case4_01_sim.slx |
bo_d_case4_02nae_par.m | Plant: 1 oscillation element and 1 integrator; controller: PID and 1 first-order time-delay element; optimization: Magnitude Optimum for delayed inputs, variation of integrator time constant, approximation for the product of oscillation element and first-order time-delay element in the controller, comparison of the results of bo_d_gen and bo_d_speso | bo_d_case4_02nae_sim.slx |
bo_check_01_par.m | Plant: dead time and 3 first-order time-delay elements; controller: PID; optimization: Magnitude Optimum for undelayed (bo_u_gen)and delayed (bo_d_gen) inputs; verification of the fulfilment of the first 3 basic equations of the Magnitude Optimum for both optimizations (bo_check), for comparison additionally simulation with optimized pre-filter (bo_prefi_op) | bo_check_01_sim.slx |
bo_d_pltgen_01_par.m | Plant: 1 third-order time-delay element and 1 first-order time-delay element; controller: PID and PID2; optimization: Magnitude Optimum for undelayed inputs using bo_u_gen and for delayed inputs with LTI definition of the transfer functions using bo_d_pltgen, pre-filter optimization using bo_prefi_op | bo_d_pltgen_01_sim.slx |
bo_prefi_op02_01_par.m | Plant: 3 first-order time-delay elements; controller: PID; optimization: Magnitude Optimum for undelayed inputs using bo_u_gen, Magnitude Optimum for delayed inputs with LTI definition of the transfer functions using bo_d_pltgen and Naslin Polynomial Methode (double ratio) using dr_d_wedz; pre-filter optimization inclusive of a pre-filter for the reference system using bo_prefi_op02 | bo_prefi_op02_01_sim.slx |
Pp_t1ex4_par.m | Plant: 1 first-order time-delay element of 5th order with 2 of them non-minimum phase; controller: PID; optimization: Magnitude Optimum for undelayed inputs using bo_u_gen and Magnitude Optimum for delayed inputs using bo_d_gen; parameter variant | Pp_t1ex4_sim.slx |
Pp_t1ex5_par.m | Plant: 5 first-order time-delay elements, 2 large zeros; controller: I, PI and PID; optimization: Magnitude Optimum for undelayed inputs using bo_u_gen and Magnitude Optimum for delayed inputs using bo_d_gen | Pp_t1ex5_sim.slx |
Pp_t2ex3_par.m | Plant: 1 integrator, 1 first-order time-delay element of 5th order with 2 of them non-minimum phase; controller: PI and PID; optimization: Magnitude Optimum for delayed inputs using bo_d_gen | Pp_t2ex3_sim.slx |
Pp_t2ex4_par.m Pp_t2ex4_par_WithCheck.m |
Plant: 1 integrator, 1 first-order time-delay element of 5th order, dead-time; controller: PID; optimization: Magnitude Optimum for delayed inputs using bo_d_gen; variant applying accuracy check bo_check | Pp_t2ex4_sim.slx |
Pp_t2ex5_par.m | Plant: 1 integrator, 5 first-order time-delay elements, 1 large zero; controller: PI and PID; optimization: Magnitude Optimum for delayed inputs using bo_d_gen | Pp_t2ex5_sim.slx |
Pp_t3ex1plus_par.m | Plant: 1 or 2 integrators, 1 first-order time-delay element of 5th order; controller: PID and PID2; optimization: Magnitude Optimum for delayed inputs using bo_d_gen | Pp_t3ex1plus_sim.slx |
Pp_t3ex2plus_par.m | Plant: 1 or 2 integrators, 5 first-order time-delay elements, dead time; controller: PID and PID2; optimization: Magnitude Optimum for delayed inputs using bo_d_gen | Pp_t3ex2plus_sim.slx |
Pp_t3ex3plus_par.m | Plant: 1 or 2 integrators, 5 first-order time-delay elements with 2 of them non-minimal phase; controller: PID and PID2; optimization: Magnitude Optimum for delayed inputs using bo_d_gen | Pp_t3ex3plus_sim.slx |
LK_ex071_par.m | Plant: 1 first-order time-delay element, 1 large dead time; controller: PI and PID; optimization: Magnitude Optimum for undelayed inputs using bo_u_gen and Magnitude Optimum for delayed inputs using bo_d_gen; comparison to YOULA parametrization | LK_ex071_sim.slx |
LK_ex072_par.m | Plant: 2 first-order time-delay elements, 2 large zeros; controller: PI and PID; optimization: Magnitude Optimum for undelayed inputs using bo_u_gen and Magnitude Optimum for delayed inputs using bo_d_gen; comparison to YOULA parametrization | LK_ex072_sim.slx |