diff --git a/figs/detail_control_cf_arch.pdf b/figs/detail_control_cf_arch.pdf index 845f6aa..43073c3 100644 Binary files a/figs/detail_control_cf_arch.pdf and b/figs/detail_control_cf_arch.pdf differ diff --git a/figs/detail_control_cf_arch.png b/figs/detail_control_cf_arch.png index cbd536e..c9caed0 100644 Binary files a/figs/detail_control_cf_arch.png and b/figs/detail_control_cf_arch.png differ diff --git a/figs/detail_control_cf_arch.svg b/figs/detail_control_cf_arch.svg index 9fb33db..ae012f2 100644 --- a/figs/detail_control_cf_arch.svg +++ b/figs/detail_control_cf_arch.svg @@ -1,5 +1,5 @@ - + @@ -76,169 +76,175 @@ - + - + - + - + - + - + - + + + + - + - + - + - + - - - + + + - - - - - - - + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - + - - - - - - - - - + + + + + + + + + - + - - - - - - + + + + + + - + - + - - + + - + - + - - - - - - - - - - + + + + + - + - + + + + + + - - - - - - + - + + + + + + + + + diff --git a/figs/detail_control_cf_arch_class.pdf b/figs/detail_control_cf_arch_class.pdf index af7b501..893f466 100644 Binary files a/figs/detail_control_cf_arch_class.pdf and b/figs/detail_control_cf_arch_class.pdf differ diff --git a/figs/detail_control_cf_arch_class_prefilter.pdf b/figs/detail_control_cf_arch_class_prefilter.pdf index 8d5b5a5..a37e7a3 100644 Binary files a/figs/detail_control_cf_arch_class_prefilter.pdf and b/figs/detail_control_cf_arch_class_prefilter.pdf differ diff --git a/figs/detail_control_cf_arch_eq.pdf b/figs/detail_control_cf_arch_eq.pdf index dc7a296..e7891fb 100644 Binary files a/figs/detail_control_cf_arch_eq.pdf and b/figs/detail_control_cf_arch_eq.pdf differ diff --git a/figs/detail_control_cf_arch_eq.png b/figs/detail_control_cf_arch_eq.png index a54599c..74b9cd9 100644 Binary files a/figs/detail_control_cf_arch_eq.png and b/figs/detail_control_cf_arch_eq.png differ diff --git a/figs/detail_control_cf_arch_eq.svg b/figs/detail_control_cf_arch_eq.svg index 730ce0a..fc7ae13 100644 --- a/figs/detail_control_cf_arch_eq.svg +++ b/figs/detail_control_cf_arch_eq.svg @@ -1,177 +1,246 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - + + - - + + + + + - + - + - + + + + + + + + + + + + + - + - - - - - - + - - - - - + - - - - - - - - - + - - - - - - - - - - - - - + + + - + + + + + + + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - + + + + + + - + - - - - - - - - - - - - - - - - + + + + + + + + + - + + + + + - + - - - - - - - - - - - - + + + + - + - - - - + + + + + + + - + - - + + + + + + + + + + + + + + + + + + + + + diff --git a/figs/detail_control_cf_arch_tunable_params.pdf b/figs/detail_control_cf_arch_tunable_params.pdf index 8da358b..b0e0dc7 100644 Binary files a/figs/detail_control_cf_arch_tunable_params.pdf and b/figs/detail_control_cf_arch_tunable_params.pdf differ diff --git a/figs/detail_control_cf_input_uncertainty.pdf b/figs/detail_control_cf_input_uncertainty.pdf index be43538..b21e825 100644 Binary files a/figs/detail_control_cf_input_uncertainty.pdf and b/figs/detail_control_cf_input_uncertainty.pdf differ diff --git a/nass-control.bib b/nass-control.bib index 12266cb..8b5a9e3 100644 --- a/nass-control.bib +++ b/nass-control.bib @@ -1,49 +1,3 @@ -@inproceedings{mahony05_compl_filter_desig_special_orthog, - author = {R. Mahony and T. Hamel and J.-M. Pflimlin}, - title = {Complementary Filter Design on the Special Orthogonal Group - SO(3)}, - booktitle = {Proceedings of the 44th IEEE Conference on Decision and - Control}, - year = 2005, - doi = {10.1109/cdc.2005.1582367}, - url = {https://doi.org/10.1109/cdc.2005.1582367}, - keywords = {complementary filters}, -} - - - -@article{plummer06_optim_compl_filter_their_applic_motion_measur, - author = {A. R. Plummer}, - title = {Optimal Complementary Filters and Their Application in - Motion Measurement}, - journal = {Proceedings of the Institution of Mechanical Engineers, - Part I: Journal of Systems and Control Engineering}, - volume = 220, - number = 6, - pages = {489-507}, - year = 2006, - doi = {10.1243/09596518JSCE229}, - url = {https://doi.org/10.1243/09596518JSCE229}, - keywords = {complementary filters}, -} - - - -@inproceedings{jensen13_basic_uas, - author = {Austin Jensen and Cal Coopmans and YangQuan Chen}, - title = {Basics and guidelines of complementary filters for small - UAS navigation}, - booktitle = {2013 International Conference on Unmanned Aircraft Systems - (ICUAS)}, - year = 2013, - doi = {10.1109/icuas.2013.6564726}, - url = {https://doi.org/10.1109/icuas.2013.6564726}, - keywords = {complementary filters}, - month = 5, -} - - - @article{geng95_intel_contr_system_multip_degree, author = {Z. Jason Geng and George G. Pan and Leonard S. Haynes and Ben K. Wada and John A. Garba}, @@ -61,38 +15,6 @@ -@book{preumont18_vibrat_contr_activ_struc_fourt_edition, - author = {Andre Preumont}, - title = {Vibration Control of Active Structures - Fourth Edition}, - year = 2018, - publisher = {Springer International Publishing}, - url = {https://doi.org/10.1007/978-3-319-72296-2}, - doi = {10.1007/978-3-319-72296-2}, - keywords = {favorite, parallel robot}, - series = {Solid Mechanics and Its Applications}, -} - - - -@article{wang16_inves_activ_vibrat_isolat_stewar, - author = {Wang, Chaoxin and Xie, Xiling and Chen, Yanhao and Zhang, - Zhiyi}, - title = {Investigation on Active Vibration Isolation of a Stewart - Platform With Piezoelectric Actuators}, - journal = {Journal of Sound and Vibration}, - volume = 383, - pages = {1-19}, - year = 2016, - doi = {10.1016/j.jsv.2016.07.021}, - url = {https://doi.org/10.1016/j.jsv.2016.07.021}, - issn = {0022-460X}, - keywords = {parallel robot}, - month = {Nov}, - publisher = {Elsevier BV}, -} - - - @inproceedings{li01_simul_vibrat_isolat_point_contr, author = {Xiaochun Li and Jerry C. Hamann and John E. McInroy}, title = {Simultaneous Vibration Isolation and Pointing Control of @@ -125,6 +47,25 @@ +@article{wang16_inves_activ_vibrat_isolat_stewar, + author = {Wang, Chaoxin and Xie, Xiling and Chen, Yanhao and Zhang, + Zhiyi}, + title = {Investigation on Active Vibration Isolation of a Stewart + Platform With Piezoelectric Actuators}, + journal = {Journal of Sound and Vibration}, + volume = 383, + pages = {1-19}, + year = 2016, + doi = {10.1016/j.jsv.2016.07.021}, + url = {https://doi.org/10.1016/j.jsv.2016.07.021}, + issn = {0022-460X}, + keywords = {parallel robot}, + month = {Nov}, + publisher = {Elsevier BV}, +} + + + @inproceedings{xie17_model_contr_hybrid_passiv_activ, author = {Xie, Xiling and Wang, Chaoxin and Zhang, Zhiyi}, title = {Modeling and Control of A Hybrid Passive/Active Stewart @@ -183,56 +124,6 @@ -@article{beijen14_two_sensor_contr_activ_vibrat, - author = {Michiel A. Beijen and Dirk Tjepkema and Johannes van Dijk}, - title = {Two-Sensor Control in Active Vibration Isolation Using Hard - Mounts}, - journal = {Control Engineering Practice}, - volume = 26, - pages = {82-90}, - year = 2014, - doi = {10.1016/j.conengprac.2013.12.015}, - url = {https://doi.org/10.1016/j.conengprac.2013.12.015}, - keywords = {complementary filters}, -} - - - -@article{yong16_high_speed_vertic_posit_stage, - author = "Yuen K. Yong and Andrew J. Fleming", - title = {High-Speed Vertical Positioning Stage With Integrated - Dual-Sensor Arrangement}, - journal = "Sensors and Actuators A: Physical", - volume = 248, - pages = "184 - 192", - year = 2016, - doi = {10.1016/j.sna.2016.06.042}, - url = {https://doi.org/https://doi.org/10.1016/j.sna.2016.06.042}, - issn = "0924-4247", - keywords = {sesnsor fusion, complementary filters}, -} - - - -@article{yang19_dynam_model_decoup_contr_flexib, - author = {Yang, XiaoLong and Wu, HongTao and Chen, Bai and Kang, - ShengZheng and Cheng, ShiLi}, - title = {Dynamic Modeling and Decoupled Control of a Flexible - Stewart Platform for Vibration Isolation}, - journal = {Journal of Sound and Vibration}, - volume = 439, - pages = {398-412}, - year = 2019, - doi = {10.1016/j.jsv.2018.10.007}, - url = {https://doi.org/10.1016/j.jsv.2018.10.007}, - issn = {0022-460X}, - keywords = {parallel robot, flexure, decoupled control}, - month = 1, - publisher = {Elsevier BV}, -} - - - @inproceedings{thayer98_stewar, author = {D. Thayer and J. Vagners}, title = {A look at the pole/zero structure of a Stewart platform @@ -264,6 +155,25 @@ +@article{yang19_dynam_model_decoup_contr_flexib, + author = {Yang, XiaoLong and Wu, HongTao and Chen, Bai and Kang, + ShengZheng and Cheng, ShiLi}, + title = {Dynamic Modeling and Decoupled Control of a Flexible + Stewart Platform for Vibration Isolation}, + journal = {Journal of Sound and Vibration}, + volume = 439, + pages = {398-412}, + year = 2019, + doi = {10.1016/j.jsv.2018.10.007}, + url = {https://doi.org/10.1016/j.jsv.2018.10.007}, + issn = {0022-460X}, + keywords = {parallel robot, flexure, decoupled control}, + month = 1, + publisher = {Elsevier BV}, +} + + + @inproceedings{mcinroy99_dynam, author = {J.E. McInroy}, title = {Dynamic modeling of flexure jointed hexapods for control @@ -308,6 +218,180 @@ +@article{furutani04_nanom_cuttin_machin_using_stewar, + author = {Katsushi Furutani and Michio Suzuki and Ryusei Kudoh}, + title = {Nanometre-Cutting Machine Using a Stewart-Platform Parallel + Mechanism}, + journal = {Measurement Science and Technology}, + volume = 15, + number = 2, + pages = {467-474}, + year = 2004, + doi = {10.1088/0957-0233/15/2/022}, + url = {https://doi.org/10.1088/0957-0233/15/2/022}, + keywords = {parallel robot, cubic configuration}, +} + + + +@article{du14_piezo_actuat_high_precis_flexib, + author = {Zhijiang Du and Ruochong Shi and Wei Dong}, + title = {A Piezo-Actuated High-Precision Flexible Parallel Pointing + Mechanism: Conceptual Design, Development, and Experiments}, + journal = {IEEE Transactions on Robotics}, + volume = 30, + number = 1, + pages = {131-137}, + year = 2014, + doi = {10.1109/tro.2013.2288800}, + url = {https://doi.org/10.1109/tro.2013.2288800}, + keywords = {parallel robot}, +} + + + +@inproceedings{obrien98_lesson, + author = {J.F. O'Brien and J.E. McInroy and D. Bodtke and M. Bruch + and J.C. Hamann}, + title = {Lessons learned in nonlinear systems and flexible robots + through experiments on a 6 legged platform}, + booktitle = {Proceedings of the 1998 American Control Conference. ACC + (IEEE Cat. No.98CH36207)}, + year = 1998, + doi = {10.1109/acc.1998.703532}, + url = {https://doi.org/10.1109/acc.1998.703532}, + keywords = {parallel robot}, +} + + + +@article{kim00_robus_track_contr_desig_dof_paral_manip, + author = {Dong Hwan Kim and Ji-Yoon Kang and Kyo-Il Lee}, + title = {Robust Tracking Control Design for a 6 Dof Parallel + Manipulator}, + journal = {Journal of Robotic Systems}, + volume = 17, + number = 10, + pages = {527-547}, + year = 2000, + doi = {10.1002/1097-4563(200010)17:10$<$527::AID-ROB2>3.0.CO;2-A}, + url = + {https://doi.org/10.1002/1097-4563(200010)17:10$<$527::AID-ROB2>3.0.CO;2-A}, + keywords = {parallel robot}, +} + + + +@inproceedings{abbas14_vibrat_stewar_platf, + author = {Hussain Abbas and Huang Hai}, + title = {Vibration isolation concepts for non-cubic Stewart Platform + using modal control}, + booktitle = {Proceedings of 2014 11th International Bhurban Conference + on Applied Sciences \& Technology (IBCAST) Islamabad, + Pakistan, 14th - 18th January, 2014}, + year = 2014, + doi = {10.1109/ibcast.2014.6778139}, + url = {https://doi.org/10.1109/ibcast.2014.6778139}, + keywords = {parallel robot}, + month = 1, +} + + + +@article{lei08_multi_objec_robus_activ_vibrat, + author = {Liu Lei and Wang Benli}, + title = {Multi Objective Robust Active Vibration Control for Flexure + Jointed Struts of Stewart Platforms Via $H_\infty$ and $\mu$ + Synthesis}, + journal = {Chinese Journal of Aeronautics}, + volume = 21, + number = 2, + pages = {125-133}, + year = 2008, + doi = {10.1016/s1000-9361(08)60016-3}, + url = {https://doi.org/10.1016/s1000-9361(08)60016-3}, + keywords = {parallel robot}, +} + + + +@article{jiao18_dynam_model_exper_analy_stewar, + author = {Jian Jiao and Ying Wu and Kaiping Yu and Rui Zhao}, + title = {Dynamic Modeling and Experimental Analyses of Stewart + Platform With Flexible Hinges}, + journal = {Journal of Vibration and Control}, + volume = 25, + number = 1, + pages = {151-171}, + year = 2018, + doi = {10.1177/1077546318772474}, + url = {https://doi.org/10.1177/1077546318772474}, + keywords = {parallel robot, flexure}, +} + + + +@inproceedings{mahony05_compl_filter_desig_special_orthog, + author = {R. Mahony and T. Hamel and J.-M. Pflimlin}, + title = {Complementary Filter Design on the Special Orthogonal Group + SO(3)}, + booktitle = {Proceedings of the 44th IEEE Conference on Decision and + Control}, + year = 2005, + doi = {10.1109/cdc.2005.1582367}, + url = {https://doi.org/10.1109/cdc.2005.1582367}, + keywords = {complementary filters}, +} + + + +@article{plummer06_optim_compl_filter_their_applic_motion_measur, + author = {A. R. Plummer}, + title = {Optimal Complementary Filters and Their Application in + Motion Measurement}, + journal = {Proceedings of the Institution of Mechanical Engineers, + Part I: Journal of Systems and Control Engineering}, + volume = 220, + number = 6, + pages = {489-507}, + year = 2006, + doi = {10.1243/09596518JSCE229}, + url = {https://doi.org/10.1243/09596518JSCE229}, + keywords = {complementary filters}, +} + + + +@inproceedings{jensen13_basic_uas, + author = {Austin Jensen and Cal Coopmans and YangQuan Chen}, + title = {Basics and guidelines of complementary filters for small + UAS navigation}, + booktitle = {2013 International Conference on Unmanned Aircraft Systems + (ICUAS)}, + year = 2013, + doi = {10.1109/icuas.2013.6564726}, + url = {https://doi.org/10.1109/icuas.2013.6564726}, + keywords = {complementary filters}, + month = 5, +} + + + +@article{beijen14_two_sensor_contr_activ_vibrat, + author = {Michiel A. Beijen and Dirk Tjepkema and Johannes van Dijk}, + title = {Two-Sensor Control in Active Vibration Isolation Using Hard + Mounts}, + journal = {Control Engineering Practice}, + volume = 26, + pages = {82-90}, + year = 2014, + doi = {10.1016/j.conengprac.2013.12.015}, + url = {https://doi.org/10.1016/j.conengprac.2013.12.015}, + keywords = {complementary filters}, +} + + + @article{bendat57_optim_filter_indep_measur_two, author = {J. Bendat}, title = {Optimum Filters for Independent Measurements of Two Related @@ -416,6 +500,22 @@ +@article{yong16_high_speed_vertic_posit_stage, + author = "Yuen K. Yong and Andrew J. Fleming", + title = {High-Speed Vertical Positioning Stage With Integrated + Dual-Sensor Arrangement}, + journal = "Sensors and Actuators A: Physical", + volume = 248, + pages = "184 - 192", + year = 2016, + doi = {10.1016/j.sna.2016.06.042}, + url = {https://doi.org/https://doi.org/10.1016/j.sna.2016.06.042}, + issn = "0924-4247", + keywords = {sesnsor fusion, complementary filters}, +} + + + @inproceedings{baerveldt97_low_cost_low_weigh_attit, author = {A.-J. Baerveldt and R. Klang}, title = {A Low-Cost and Low-Weight Attitude Estimation System for an @@ -643,153 +743,6 @@ -@article{furutani04_nanom_cuttin_machin_using_stewar, - author = {Katsushi Furutani and Michio Suzuki and Ryusei Kudoh}, - title = {Nanometre-Cutting Machine Using a Stewart-Platform Parallel - Mechanism}, - journal = {Measurement Science and Technology}, - volume = 15, - number = 2, - pages = {467-474}, - year = 2004, - doi = {10.1088/0957-0233/15/2/022}, - url = {https://doi.org/10.1088/0957-0233/15/2/022}, - keywords = {parallel robot, cubic configuration}, -} - - - -@article{du14_piezo_actuat_high_precis_flexib, - author = {Zhijiang Du and Ruochong Shi and Wei Dong}, - title = {A Piezo-Actuated High-Precision Flexible Parallel Pointing - Mechanism: Conceptual Design, Development, and Experiments}, - journal = {IEEE Transactions on Robotics}, - volume = 30, - number = 1, - pages = {131-137}, - year = 2014, - doi = {10.1109/tro.2013.2288800}, - url = {https://doi.org/10.1109/tro.2013.2288800}, - keywords = {parallel robot}, -} - - - -@inproceedings{obrien98_lesson, - author = {J.F. O'Brien and J.E. McInroy and D. Bodtke and M. Bruch - and J.C. Hamann}, - title = {Lessons learned in nonlinear systems and flexible robots - through experiments on a 6 legged platform}, - booktitle = {Proceedings of the 1998 American Control Conference. ACC - (IEEE Cat. No.98CH36207)}, - year = 1998, - doi = {10.1109/acc.1998.703532}, - url = {https://doi.org/10.1109/acc.1998.703532}, - keywords = {parallel robot}, -} - - - -@article{kim00_robus_track_contr_desig_dof_paral_manip, - author = {Dong Hwan Kim and Ji-Yoon Kang and Kyo-Il Lee}, - title = {Robust Tracking Control Design for a 6 Dof Parallel - Manipulator}, - journal = {Journal of Robotic Systems}, - volume = 17, - number = 10, - pages = {527-547}, - year = 2000, - doi = {10.1002/1097-4563(200010)17:10$<$527::AID-ROB2>3.0.CO;2-A}, - url = - {https://doi.org/10.1002/1097-4563(200010)17:10$<$527::AID-ROB2>3.0.CO;2-A}, - keywords = {parallel robot}, -} - - - -@inproceedings{abbas14_vibrat_stewar_platf, - author = {Hussain Abbas and Huang Hai}, - title = {Vibration isolation concepts for non-cubic Stewart Platform - using modal control}, - booktitle = {Proceedings of 2014 11th International Bhurban Conference - on Applied Sciences \& Technology (IBCAST) Islamabad, - Pakistan, 14th - 18th January, 2014}, - year = 2014, - doi = {10.1109/ibcast.2014.6778139}, - url = {https://doi.org/10.1109/ibcast.2014.6778139}, - keywords = {parallel robot}, - month = 1, -} - - - -@article{lei08_multi_objec_robus_activ_vibrat, - author = {Liu Lei and Wang Benli}, - title = {Multi Objective Robust Active Vibration Control for Flexure - Jointed Struts of Stewart Platforms Via $H_\infty$ and $\mu$ - Synthesis}, - journal = {Chinese Journal of Aeronautics}, - volume = 21, - number = 2, - pages = {125-133}, - year = 2008, - doi = {10.1016/s1000-9361(08)60016-3}, - url = {https://doi.org/10.1016/s1000-9361(08)60016-3}, - keywords = {parallel robot}, -} - - - -@article{jiao18_dynam_model_exper_analy_stewar, - author = {Jian Jiao and Ying Wu and Kaiping Yu and Rui Zhao}, - title = {Dynamic Modeling and Experimental Analyses of Stewart - Platform With Flexible Hinges}, - journal = {Journal of Vibration and Control}, - volume = 25, - number = 1, - pages = {151-171}, - year = 2018, - doi = {10.1177/1077546318772474}, - url = {https://doi.org/10.1177/1077546318772474}, - keywords = {parallel robot, flexure}, -} - - - -@phdthesis{rankers98_machin, - author = {Rankers, Adrian Mathias}, - keywords = {favorite}, - school = {University of Twente}, - title = {Machine dynamics in mechatronic systems: An engineering - approach.}, - year = 1998, -} - - - -@book{preumont94_random_vibrat_spect_analy, - author = {Andr{\'e} Preumont}, - title = {Random Vibration and Spectral Analysis}, - year = 1994, - publisher = {Springer Netherlands}, - url = {https://doi.org/10.1007/978-94-017-2840-9}, - doi = {10.1007/978-94-017-2840-9}, - series = {Solid Mechanics and Its Applications}, -} - - - -@article{heertjes05_activ_vibrat_isolat_metrol_frames, - author = {Heertjes, Marcel and de Graaff, Koen and van der Toorn, - Jan-Gerard}, - title = {Active Vibration Isolation of Metrology Frames; a Modal - Decoupled Control Design}, - year = {2005}, - keywords = {Decoupled Control}, -} - - - @article{holterman05_activ_dampin_based_decoup_colloc_contr, author = {J. Holterman and T.J.A. deVries}, title = {Active Damping Based on Decoupled Collocated Control}, @@ -805,6 +758,31 @@ +@article{butler11_posit_contr_lithog_equip, + author = {Hans Butler}, + title = {Position Control in Lithographic Equipment}, + journal = {IEEE Control Systems}, + volume = 31, + number = 5, + pages = {28-47}, + year = 2011, + doi = {10.1109/mcs.2011.941882}, + url = {https://doi.org/10.1109/mcs.2011.941882}, +} + + + +@phdthesis{rankers98_machin, + author = {Rankers, Adrian Mathias}, + keywords = {favorite}, + school = {University of Twente}, + title = {Machine dynamics in mechatronic systems: An engineering + approach.}, + year = 1998, +} + + + @inbook{lang17_under, author = {Lang, George Fox}, booktitle = {Topics in Modal Analysis \& Testing, Volume 10}, @@ -817,6 +795,19 @@ +@book{preumont18_vibrat_contr_activ_struc_fourt_edition, + author = {Andre Preumont}, + title = {Vibration Control of Active Structures - Fourth Edition}, + year = 2018, + publisher = {Springer International Publishing}, + url = {https://doi.org/10.1007/978-3-319-72296-2}, + doi = {10.1007/978-3-319-72296-2}, + keywords = {favorite, parallel robot}, + series = {Solid Mechanics and Its Applications}, +} + + + @book{brunton22_data, author = {Brunton, Steven L and Kutz, J Nathan}, title = {Data-driven science and engineering: Machine learning, @@ -857,33 +848,23 @@ -@article{oomen18_advan_motion_contr_precis_mechat, - author = {Tom Oomen}, - title = {Advanced Motion Control for Precision Mechatronics: - Control, Identification, and Learning of Complex Systems}, - journal = {IEEJ Journal of Industry Applications}, - volume = 7, - number = 2, - pages = {127-140}, - year = 2018, - doi = {10.1541/ieejjia.7.127}, - url = {https://doi.org/10.1541/ieejjia.7.127}, +@book{schmidt20_desig_high_perfor_mechat_third_revis_edition, + author = {Schmidt, R Munnig and Schitter, Georg and Rankers, Adrian}, + title = {The Design of High Performance Mechatronics - Third Revised + Edition}, + year = 2020, + publisher = {Ios Press}, keywords = {favorite}, } -@article{lurie02_system_archit_trades_using_bode, - author = {Boris J. Lurie and Ali Ghavimi and Fred Y. Hadaegh and - Edward Mettler}, - title = {System Architecture Trades Using Bode-Step Control Design}, - journal = {Journal of Guidance, Control, and Dynamics}, - volume = 25, - number = 2, - pages = {309-315}, - year = 2002, - doi = {10.2514/2.4883}, - url = {https://doi.org/10.2514/2.4883}, +@techreport{bibel92_guidel_h, + author = {Bibel, John E and Malyevac, D Stephen}, + institution = {NAVAL SURFACE WARFARE CENTER DAHLGREN DIV VA}, + title = {Guidelines for the selection of weighting functions for + H-infinity control}, + year = 1992, } @@ -900,11 +881,31 @@ -@techreport{bibel92_guidel_h, - author = {Bibel, John E and Malyevac, D Stephen}, - institution = {NAVAL SURFACE WARFARE CENTER DAHLGREN DIV VA}, - title = {Guidelines for the selection of weighting functions for - H-infinity control}, - year = 1992, +@article{verma20_virtual_sensor_fusion_high_precis_contr, + author = {Mohit Verma and Thomas Dehaeze and Guoying Zhao and + Jennifer Watchi and Christophe Collette}, + title = {Virtual Sensor Fusion for High Precision Control}, + journal = {Mechanical Systems and Signal Processing}, + volume = 150, + pages = 107241, + year = 2020, + doi = {10.1016/j.ymssp.2020.107241}, + url = {https://doi.org/10.1016/j.ymssp.2020.107241}, + keywords = {complementary filters}, +} + + + +@article{saxena12_advan_inter_model_contr_techn, + author = {Sahaj Saxena and YogeshV Hote}, + title = {Advances in Internal Model Control Technique: a Review and + Future Prospects}, + journal = {IETE Technical Review}, + volume = 29, + number = 6, + pages = 461, + year = 2012, + doi = {10.4103/0256-4602.105001}, + url = {https://doi.org/10.4103/0256-4602.105001}, } diff --git a/nass-control.org b/nass-control.org index 7332608..b8d5f8a 100644 --- a/nass-control.org +++ b/nass-control.org @@ -1,4 +1,4 @@ -#+TITLE: Control Optimization +#+TITLE: Control of Parallel Manipulators :DRAWER: #+LANGUAGE: en #+EMAIL: dehaeze.thomas@gmail.com @@ -104,6 +104,9 @@ Discussion about: - *Decoupling strategies* - file:~/Cloud/research/matlab/decoupling-strategies/svd-control.org - *Control optimization* + - file:~/Cloud/research/papers/published/verma19_virtu_senso_fusio_high_preci_contr/elsarticle-template-harv.pdf + - file:~/Cloud/research/papers/dehaeze20_virtu_senso_fusio/index.org + ** Unused *** Table with multi sensor control @@ -804,6 +807,61 @@ sprintf('Hh: num = (%s) + (%s) * z^-1', num(2), num(1)) sprintf('Hh: den = (%s) + (%s) * z^-1', den(2), den(1)) #+end_src +*** Response time to change of reference signal +For the nominal system, the model is accurate and the transfer function from reference signal $r$ to output $y$ is $1$ eqref:eq:detail_control_cf_cl_performance_y and does not depends of the complementary filters. + +However, one can add a pre-filter as shown in Figure ref:fig:detail_control_cf_arch_class_prefilter. + +#+begin_src latex :file detail_control_cf_arch_class_prefilter.pdf +\tikzset{block/.default={0.8cm}{0.6cm}} +\tikzset{addb/.append style={scale=0.7}} +\tikzset{node distance=0.6} +\def\cdist{0.7} + +\begin{tikzpicture} + \node[addb={+}{}{}{}{-}] (addfb) at (0, 0){}; + \node[block, left=of addfb] (Kr){$K_r$}; + \node[block, right=of addfb] (K){$K$}; + \node[block, right=of K] (G){$G^\prime$}; + \node[addb={+}{}{}{}{}, right=of G] (adddy){}; + \node[addb={+}{}{}{}{}, below right=0.7 and 0.3 of adddy] (addn) {}; + \node[block, left=of addn] (Hl) {$H_L$}; + + \draw[->] (addfb.east) -- (K.west) node[above left]{}; + \draw[->] (K.east) -- (G.west) node[above left]{$u$}; + \draw[->] (G.east) -- (adddy.west); + \draw[<-] (addn.east) -- ++(\cdist, 0) coordinate[](endpos) node[above left]{$n$}; + \draw[->] (G-|addn)node[branch]{} -- (addn.north); + \draw[->] (adddy.east) -- (G-|endpos) node[above left]{$y$}; + \draw[<-] (Kr.west) -- ++(-\cdist, 0) node[above right]{$r$}; + \draw[->] (Kr.east) -- (addfb.west); + \draw[->] (addn.west) -- (Hl.east); + \draw[->] (Hl.west) -| (addfb.south); + \draw[<-] (adddy.north) -- ++(0, \cdist) node[below right]{$d_y$}; +\end{tikzpicture} +#+end_src + +#+name: fig:detail_control_cf_arch_class_prefilter +#+caption: Prefilter used to limit input usage +#+RESULTS: +[[file:figs/detail_control_cf_arch_class_prefilter.png]] + +The transfer function from $y$ to $r$ becomes $\frac{y}{r} = K_r$ and $K_r$ can we chosen to obtain acceptable response to change of the reference signal. +Typically, $K_r$ is a low pass filter of the form +\begin{equation} + K_r(s) = \frac{1}{1 + \tau s} +\end{equation} +with $\tau$ corresponding to the desired response time. + +*** Input usage +Input usage due to disturbances $d_y$ and measurement noise $n$ is determined by $\big|\frac{u}{d_y}\big| = \big|\frac{u}{n}\big| = \big|G^{-1}H_L\big|$. +Thus it can be limited by setting an upper bound on $|H_L|$. + + +Input usage due to reference signal $r$ is determined by $\big|\frac{u}{r}\big| = \big|G^{-1} K_r\big|$ when using a pre-filter (Figure ref:fig:detail_control_cf_arch_class_prefilter) and $\big|\frac{u}{r}\big| = \big|G^{-1}\big|$ otherwise. + +Proper choice of $|K_r|$ is then useful to limit input usage due to change of reference signal. + ** DONE [#A] Fix the outline CLOSED: [2025-04-03 Thu 12:01] @@ -3206,60 +3264,35 @@ SVD decoupling can be implemented using measured data without requiring a model, :END: <> -# file:~/Cloud/research/papers/published/verma19_virtu_senso_fusio_high_preci_contr/elsarticle-template-harv.pdf -# file:~/Cloud/research/papers/dehaeze20_virtu_senso_fusio/index.org - ** Introduction :ignore: -Once the system is properly decoupled using one of the approaches described in Section ref:sec:detail_control_decoupling, a diagonal controller can be tuned. -This consists in tuning several SISO controllers. -There are several ways to design a controller to obtain a given performance while ensuring good robustness properties. +Once the system is properly decoupled using one of the approaches described in Section ref:sec:detail_control_decoupling, SISO controllers can be individually tuned for each decoupled "directions". +Several ways to design a controller to obtain a given performance while ensuring good robustness properties can be implemented. -Performances of a feedback system (such as response time, disturbance rejection, ) depends on the obtained closed-loop transfer functions. -For instance sensitivity, transmissibility, etc... Gang of Four. -The specifications can usually be expressed in terms of the shape of these closed-loop transfer functions [[cite:&skogestad07_multiv_feedb_contr, chapt. 3]]. +# Add reference +In some cases, "fixed" controller structures are utilized, such as PI and PID controllers [[cite:&furutani04_nanom_cuttin_machin_using_stewar;&du14_piezo_actuat_high_precis_flexib;&yang19_dynam_model_decoup_contr_flexib]]. +In such cases, the controller coefficients are manually tuned to obtain acceptable performance and robustness. -In some cases, "fixed" controller structures are used, with as PI and PID controllers. -In such case the controller coefficients are manually tuned to obtain acceptable performance and robustness. -In many cases, PID+LPF can already lead to performances close to optimal, depending on the plant. +Another popular method is Open-Loop shaping, that was used during the conceptual phase after the plan was decoupled in the frame of the struts. +The idea of open-loop shaping is to tune the controller (using a series of standard leads, lags, notches, low pass filters) such that the open-loop transfer function $G(s)K(s)$ is made according to specification (i.e. +bandwidth, gain and phase margins, gain at a specific frequency, etc...) [[cite:&schmidt20_desig_high_perfor_mechat_third_revis_edition, chapt. 4.4.7]]. +Open-Loop shaping is very popular because the open-loop transfer function depends linearly on the controller, making it relatively straightforward to tune the controller to achieve desired open-loop characteristics. +Another key advantage is that controllers can be tuned directly from measured frequency response functions without requiring an explicit plant model. +However, the behavior (i.e. performance) of a feedback system is a function of closed-loop transfer functions [[cite:&skogestad07_multiv_feedb_contr, chapt. 3]]. +Specifications can therefore be expressed in terms of the magnitude of closed-loop transfer functions, such as the sensitivity, plant sensitivity, and complementary sensitivity transfer functions. +With open-loop shaping, closed-loop transfer functions are changed only indirectly, which may make it difficult to directly address the specifications that are in terms of the closed-loop transfer functions. -Decoupled Open-Loop Shaping: -- Explain procedure when applying open-loop shaping [[cite:&schmidt20_desig_high_perfor_mechat_third_revis_edition, chapt. 4.4.7]] - [[cite:&steinbuch16_model_based]] - #+begin_quote - The key idea of loop-shaping is the modification of the controller such that the open- -loop is made according to specifications. The reason this works so well, is that the controller -enters linearly into the open-loop transfer l(j!) = g(j!)k(j!), so that it is fast and easy -to reason what is to be changed in the controller. However, in practice all specifications are -of course given in terms of the final system performance, i.e. as closed-loop specifications. -So we should convert the closed loop specs into specs on the open-loop. - #+end_quote -- The controller is usually manually tuned using a series of Integrators, Leads, Lags, Notches, low pass filters -- There are lots of tools to check stability, robustness margins and performances -- Open-Loop shaping is very popular as the open-loop gain depends linearly on the controller. - So the open-loop transfer function can easily be shaped by modifying the controller response. -- Different techniques for open loop shaping (choice of optimal open-loop gain shape) [[cite:&lurie02_system_archit_trades_using_bode]] -- But this is open-loop shaping, and it does not directly work on the closed loop transfer functions -- The huge advantage of this technique, is that one can tune the controllers based on the measured FRF of the system. - No plant model is required. -- This is what was done during the conceptual phase after the plan was decoupled in the frame of the struts. +In order to synthesize a controller that directly shapes the closed-loop transfer functions (and therefore the performance metric), $\mathcal{H}_\infty$ loop-shaping may be used [[cite:&skogestad07_multiv_feedb_contr]]. +This approach requires a good model of the plant and expertise in selecting weighting functions that will define the wanted shape of different closed-loop transfer functions [[cite:&bibel92_guidel_h]]. +$\mathcal{H}_{\infty}$ synthesis has been applied for the Stewart platform [[cite:&jiao18_dynam_model_exper_analy_stewar]], but comparative studies with more simple decentralized controllers did not show large improvements [[cite:&thayer02_six_axis_vibrat_isolat_system;&hauge04_sensor_contr_space_based_six]]. +In this section, an alternative controller synthesis scheme is proposed in which complementary filters are used for directly shaping the closed-loop transfer functions (i.e., directly addressing the closed-loop performances). -Model based control: -- Review of model based design (LQG, H-Infinity) applied to Stewart platform [[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/bibliography.org::*Multivariable Control][Multivariable Control]] - $\hinf$ loop-shaping [[cite:&skogestad07_multiv_feedb_contr]]. -- Difficulty to specify robustness to change of payload mass -- Requires high level of expertise. - Far from standard in industry. - Application to Stewart platforms is not demonstrated (or performance increased compared to decoupled control and manual loop shaping). - - -In this section, an alternative controller synthesis scheme is proposed in which complementary filters are used for directly shaping the closed-loop transfer functions. -In this paper, we propose a new controller synthesis method -- based on the use of complementary high pass and low pass filters -- inverse based control -- direct translation of requirements such as disturbance rejection and robustness to plant uncertainty +In Section ref:ssec:detail_control_cf_control_arch, the proposed control architecture including the complementary filters is presented. +In Section ref:ssec:detail_control_cf_trans_perf, typical performance requirements are translated into the shape of the complementary filters. +The design of the complementary filters is briefly discussed in Section ref:ssec:detail_control_cf_analytical_complementary_filters, and analytical formulas are proposed such that it is possible to change the closed-loop behavior of the system in real time. +Finally, in Section ref:ssec:detail_control_cf_simulations, a numerical example is used to show how the proposed control architecture can be implemented in practice. ** Matlab Init :noexport:ignore: #+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) @@ -3289,8 +3322,11 @@ freqs = logspace(-1, 3, 1000); <> **** Virtual Sensor Fusion -Let's consider the control architecture represented in Figure ref:fig:detail_control_cf_arch where $G^\prime$ is the physical plant to control, $G$ is a model of the plant, $k$ is a gain, $H_L$ and $H_H$ are complementary filters ($H_L(s) + H_H(s) = 1$). -The signals are the reference signal $r$, the output perturbation $d_y$, the measurement noise $n$ and the control input $u$. +The concept of using complementary filters in control architecture originates from sensor fusion techniques [[cite:&collette15_sensor_fusion_method_high_perfor]], where two sensors are combined using complementary filters. +Building upon this concept, "virtual sensor fusion" [[cite:&verma20_virtual_sensor_fusion_high_precis_contr]] replaces one physical sensor with a model $G$ of the plant. + +The control architecture is illustrated in Figure ref:fig:detail_control_cf_arch, where $G^\prime$ represents the physical plant to be controlled, $G$ is a model of the plant, $k$ is the controller, and $H_L$ and $H_H$ are complementary filters satisfying $H_L(s) + H_H(s) = 1$. +In this arrangement, the physical plant is controlled at low frequencies, while the plant model is utilized at high frequencies to enhance robustness. #+begin_src latex :file detail_control_cf_arch.pdf \tikzset{block/.default={0.8cm}{0.6cm}} @@ -3300,15 +3336,15 @@ The signals are the reference signal $r$, the output perturbation $d_y$, the mea \begin{tikzpicture} \node[addb={+}{}{}{}{-}] (addfb) at (0, 0){}; - \node[block, right=of addfb] (K){$k$}; - \node[block, right=2.5 of K] (G){$G^\prime$}; - \node[addb={+}{}{}{}{}, right=of G] (adddy){}; + \node[block, right=0.3 of addfb] (K){$k$}; + \node[block, right=2.2 of K] (G){$G^\prime$}; + \node[addb={+}{}{}{}{}, right=0.3 of G] (adddy){}; \coordinate[] (KG) at ($(K.east)+(0.3, 0)$); \node[block, below=of KG] (Gm){$G$}; \node[block, below=0.4 of Gm] (Hh){$H_H$}; \node[addb={+}{}{}{}{}, below=0.4 of Hh] (addcf){}; - \node[block, right= of addcf] (Hl) {$H_L$}; - \node[addb={+}{}{}{}{}, right=2.5 of Hl] (addn) {}; + \node[block, right=0.3 of addcf] (Hl) {$H_L$}; + \node[addb={+}{}{}{}{}, right=2.1 of Hl] (addn) {}; \draw[->] (addfb.east) -- (K.west) node[above left]{}; @@ -3319,12 +3355,12 @@ The signals are the reference signal $r$, the output perturbation $d_y$, the mea \draw[->] (Hl.west) -- (addcf.east); \draw[->] (addcf.west) -| (addfb.south) node[below right]{}; \draw[->] (G.east) -- (adddy.west); - \draw[<-] (addn.east) -- ++(\cdist, 0) coordinate[](endpos) node[above left]{$n$}; + \draw[<-] (addn.east) -- ++(0.5, 0) coordinate[](endpos) node[above left]{$n$}; \draw[->] (adddy.east) -- (G-|endpos) node[above left]{$y$}; \draw[->] (adddy-|addn) node[branch]{} -- (addn.north); - \draw[<-] (addfb.west) -- ++(-\cdist, 0) node[above right](r){$r$}; + \draw[<-] (addfb.west) -- ++(-0.5, 0) node[above right](r){$r$}; \draw[->] (addn.west) -- (Hl.east) node[above right]{$y_m$}; - \draw[<-] (adddy.north) -- ++(0, \cdist) node[below right]{$d_y$}; + \draw[<-] (adddy.north) -- ++(0, 0.5) node[below right]{$d_y$}; \begin{scope}[on background layer] \node[fit={(Hl.south east) (r.north west)}, inner sep=4pt, draw, fill=black!20!white, dashed, label={RT controller}] (Kfb) {}; @@ -3332,29 +3368,6 @@ The signals are the reference signal $r$, the output perturbation $d_y$, the mea \end{tikzpicture} #+end_src -#+name: fig:detail_control_cf_arch -#+caption: Sensor Fusion Architecture -#+RESULTS: -[[file:figs/detail_control_cf_arch.png]] - -The dynamics of the closed-loop system is described by eqref:eq:detail_control_cf_sf_cl_tf with $L = k(G H_H + G^\prime H_L)$. - -\begin{subequations}\label{eq:detail_control_cf_sf_cl_tf} - \begin{alignat}{5} - y &= \frac{1+kGH_H}{1+L} dy &&+ \frac{kG^{\prime}}{1+L} r &&- \frac{kG^{\prime}H_L}{1+L} n \\ - u &= -\frac{kH_L}{1+L} dy &&+ \frac{k}{1+L} r &&- \frac{kH_L}{1+L} n - \end{alignat} -\end{subequations} - -The idea of using such architecture comes from sensor fusion [[cite:&collette14_vibrat;&collette15_sensor_fusion_method_high_perfor]] where two sensors are used. -One is measuring the quantity that is required to control, the other is collocated with the actuator in such a way that stability is guaranteed. -The first one is low pass filtered in order to obtain good performance at low frequencies and the second one is high pass filtered to benefits from its good dynamical properties. - -Here, the second sensor is replaced by a model $G$ of the plant which is assumed to be stable and minimum phase. -This lead to the idea of virtual sensor fusion presented in [[cite:&verma20_virtual_sensor_fusion_high_precis_contr]]. - -One may think that the control architecture shown in Figure ref:fig:detail_control_cf_arch is a multi-loop system, but because no non-linear saturation-type element is present in the inner-loop (containing $k$, $G$ and $H_H$ which are all numerically implemented), the structure is equivalent to the architecture shown in Figure ref:fig:detail_control_cf_arch_eq. - #+begin_src latex :file detail_control_cf_arch_eq.pdf \tikzset{block/.default={0.8cm}{0.6cm}} \tikzset{addb/.append style={scale=0.7}} @@ -3363,68 +3376,70 @@ One may think that the control architecture shown in Figure ref:fig:detail_contr \begin{tikzpicture} \node[addb={+}{}{}{}{-}] (addfb) at (0, 0){}; - \node[addb={+}{}{}{}{-}, right=of addfb] (addK){}; - \node[block, right=of addK] (K){$k$}; - \node[block, right=1.8 of K] (G){$G^\prime$}; - \node[addb={+}{}{}{}{}, right=of G] (adddy){}; - \node[block, below right=0.5 and -0.2 of K] (Gm){$G$}; - \node[block, below left =0.5 and -0.2 of K] (Hh){$H_H$}; + \node[addb={+}{}{}{}{-}, right=0.3 of addfb] (addK){}; + \node[block, right=0.6 of addK] (K){$k$}; + \node[block, right=1.5 of K] (G){$G^\prime$}; + \node[addb={+}{}{}{}{}, right=0.3 of G] (adddy){}; + \node[block, below right=0.5 and -0.15 of K] (Gm){$G$}; + \node[block, below left =0.5 and -0.15 of K] (Hh){$H_H$}; \node[block, below=1.5 of K] (Hl) {$H_L$}; - \node[addb={+}{}{}{}{}, right=3.8 of Hl] (addn) {}; + \node[addb={+}{}{}{}{}, right=3.0 of Hl] (addn) {}; \draw[->] (addfb.east) -- (addK.west); \draw[->] (addK.east) -- (K.west); \draw[->] (K.east) -- (G.west) node[above left]{$u$}; \draw[->] (G.east) -- (adddy.west); - \draw[->] ($(G.west)+(-0.8, 0)$) node[branch](cffb){} |- (Gm.east); + \draw[->] ($(G.west)+(-0.5, 0)$) node[branch](cffb){} |- (Gm.east); \draw[->] (Gm.west) -- (Hh.east); \draw[->] (Hh.west) -| (addK.south); - \draw[<-] (addn.east) -- ++(\cdist, 0) coordinate[](endpos) node[above left]{$n$}; + \draw[<-] (addn.east) -- ++(0.5, 0) coordinate[](endpos) node[above left]{$n$}; \draw[->] (adddy.east) -- (G-|endpos) node[above left]{$y$}; \draw[->] (adddy-|addn) node[branch]{} -- (addn.north); - \draw[<-] (addfb.west) -- ++(-\cdist, 0) node[above right](r){$r$}; + \draw[<-] (addfb.west) -- ++(-0.5, 0) node[above right](r){$r$}; \draw[->] (addn.west) -- (Hl.east) node[above right]{$y_m$}; - \draw[<-] (adddy.north) -- ++(0, \cdist) node[below right]{$d_y$}; + \draw[<-] (adddy.north) -- ++(0, 0.5) node[below right]{$d_y$}; \draw[->] (Hl.west) -| (addfb.south) node[below right]{}; \begin{scope}[on background layer] - \node[fit={(Hl.south -| cffb) (r.north west)}, inner sep=8pt, draw, fill=black!20!white, dashed] (Kfb) {}; - \end{scope} - - \begin{scope}[on background layer] - \node[fit={($(addK.west|-Hh.south)+(-0.1, 0)$) (K.north-|cffb)}, inner sep=4pt, fill=colorblue!20!white, dashed] (Kfb) {}; + \node[fit={(Hl.south -| cffb) (r.north west)}, inner sep=4pt, draw, fill=black!20!white, dashed, label={RT controller}] (Kfb) {}; \end{scope} \end{tikzpicture} #+end_src -#+name: fig:detail_control_cf_arch_eq -#+caption: Equivalent feedback architecture -#+RESULTS: +#+name: fig:detail_control_cf_arch_and_eq +#+caption: Control architecture for virtual sensor fusion (\subref{fig:detail_control_cf_arch}). An equivalent architecture is shown in (\subref{fig:detail_control_cf_arch_eq}). The signals are the reference signal $r$, the output perturbation $d_y$, the measurement noise $n$ and the control input $u$. +#+attr_latex: :options [htbp] +#+begin_figure +#+attr_latex: :caption \subcaption{\label{fig:detail_control_cf_arch}Virtual Sensor Fusion} +#+attr_latex: :options {0.48\textwidth} +#+begin_subfigure +#+attr_latex: :scale 0.9 +[[file:figs/detail_control_cf_arch.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:detail_control_cf_arch_eq}Equivalent Architecture} +#+attr_latex: :options {0.48\textwidth} +#+begin_subfigure +#+attr_latex: :scale 0.9 [[file:figs/detail_control_cf_arch_eq.png]] +#+end_subfigure +#+end_figure -The dynamics of the system can be rewritten eqref:eq:detail_control_cf_sf_cl_tf_K with $K = \frac{k}{1 + H_H G k}$. - -\begin{subequations}\label{eq:detail_control_cf_sf_cl_tf_K} - \begin{alignat}{5} - y &= \frac{1}{1+G^{\prime} K H_L} dy &&+ \frac{G^{\prime} K}{1+G^{\prime} K H_L} r &&- \frac{G^{\prime} K H_L}{1+G^{\prime} K H_L} n \\ - u &= \frac{-K H_L}{1+G^{\prime} K H_L} dy &&+ \frac{K}{1+G^{\prime} K H_L} r &&- \frac{K H_L}{1+G^{\prime} K H_L} n - \end{alignat} -\end{subequations} +Although the control architecture shown in Figure ref:fig:detail_control_cf_arch appears to be a multi-loop system, it should be noted that no non-linear saturation-type elements are present in the inner loop (containing $k$, $G$, and $H_H$, all numerically implemented). +Consequently, this structure is mathematically equivalent to the single-loop architecture illustrated in Figure ref:fig:detail_control_cf_arch_eq. **** Asymptotic behavior -Let's take the extreme case of very high values for $k$. -In that case $K(s)$ converges to plant inverse multiply by the inverse of the high pass filter eqref:eq:detail_control_cf_high_k. +When considering the extreme case of very high values for $k$, the effective controller $K(s)$ converges to the inverse of the plant model multiplied by the inverse of the high-pass filter, as expressed in eqref:eq:detail_control_cf_high_k. \begin{equation}\label{eq:detail_control_cf_high_k} \lim_{k\to\infty} K(s) = \lim_{k\to\infty} \frac{k}{1+H_H(s) G(s) k} = \left( H_H(s) G(s) \right)^{-1} \end{equation} -If the obtained $K$ is improper, a low pass filter can be added to have its causal realization. -Also, we want $K$ to be stable, so $G$ and $H_H$ must be minimum phase transfer functions. +If the resulting $K$ is improper, a low-pass filter with sufficiently high corner frequency can be added to ensure its causal realization. +Furthermore, for $K$ to be stable, both $G$ and $H_H$ must be minimum phase transfer functions. -With this assumptions, the resulting control architecture is shown on Figure ref:fig:detail_control_cf_arch_class. -The only "tuning parameters" are the complementary filters $H_L$ and $H_H$. +With these assumptions, the resulting control architecture is illustrated in Figure ref:fig:detail_control_cf_arch_class, where the complementary filters $H_L$ and $H_H$ remain the only tuning parameters. +The dynamics of this closed-loop system are described by eqref:eq:detail_control_cf_sf_cl_tf_K_inf. #+begin_src latex :file detail_control_cf_arch_class.pdf \tikzset{block/.default={0.8cm}{0.6cm}} @@ -3462,46 +3477,44 @@ The only "tuning parameters" are the complementary filters $H_L$ and $H_H$. #+RESULTS: [[file:figs/detail_control_cf_arch_class.png]] -The equations describing the dynamics of the closed-loop system of Figure ref:fig:detail_control_cf_arch_class - -\begin{subequations} +\begin{subequations}\label{eq:detail_control_cf_sf_cl_tf_K_inf} \begin{align} y &= \frac{ H_H dy + G^{\prime} G^{-1} r - G^{\prime} G^{-1} H_L n }{H_H + G^\prime G^{-1} H_L} \label{eq:detail_control_cf_cl_system_y}\\ u &= \frac{ -G^{-1} H_L dy + G^{-1} r - G^{-1} H_L n }{H_H + G^\prime G^{-1} H_L} \label{eq:detail_control_cf_cl_system_u} \end{align} \end{subequations} -At frequencies where the model is accurate: $G^{-1} G^{\prime} \approx 1$, $H_H + G^\prime G^{-1} H_L \approx H_H + H_L = 1$ and the closed loop transfer functions are described by eqref:eq:detail_control_cf_sf_cl_tf_K_inf. +At frequencies where the model accurately represents the physical plant ($G^{-1} G^{\prime} \approx 1$), the denominator simplifies to $H_H + G^\prime G^{-1} H_L \approx H_H + H_L = 1$, and the closed-loop transfer functions are described by eqref:eq:detail_control_cf_sf_cl_tf_K_inf_perfect. -\begin{subequations}\label{eq:detail_control_cf_sf_cl_tf_K_inf} +\begin{subequations}\label{eq:detail_control_cf_sf_cl_tf_K_inf_perfect} \begin{alignat}{5} y &= H_H dy &&+ r &&- H_L n \label{eq:detail_control_cf_cl_performance_y} \\ u &= -G^{-1} H_L dy &&+ G^{-1} r &&- G^{-1} H_L n \label{eq:detail_control_cf_cl_performance_u} \end{alignat} \end{subequations} -The obtained sensitivity transfer function equals to the high pass filter $S = \frac{y}{dy} = H_H$ and the transmissibility transfer function equals to the low pass filter $T = \frac{y}{n} = H_L$. - -Assuming that we have a good model of the plant, we have then that the closed-loop behavior of the system converges to the designed complementary filters. +The sensitivity transfer function equals the high-pass filter $S = \frac{y}{dy} = H_H$, and the complementary sensitivity transfer function equals the low-pass filter $T = \frac{y}{n} = H_L$. +Hence, when the plant model closely approximates the actual system, the closed-loop behavior becomes fully determined by the designed complementary filters, enabling direct translation of performance requirements into filter design. ** Translating the performance requirements into the shapes of the complementary filters <> **** Introduction :ignore: -The required performance specifications in a feedback system can usually be translated into requirements on the upper bounds of $|S(j\omega)|$ and $|T(j\omega)|$ [[cite:&bibel92_guidel_h]]. -The process of designing a controller $K(s)$ in order to obtain the desired shapes of $|S(j\omega)|$ and $|T(j\omega)|$ is called closed-loop shaping. +Performance specifications in feedback systems can be expressed as upper bounds on the magnitudes of closed-loop transfer functions such that the sensitivity $|S(j\omega)|$ and complementary sensitivity $|T(j\omega)|$ transfer functions [[cite:&bibel92_guidel_h]]. +The design of a controller $K(s)$ to achieve desired shapes of these closed-loop transfer functions is known as closed-loop shaping. -The equations eqref:eq:detail_control_cf_cl_system_y and eqref:eq:detail_control_cf_cl_system_u describing the dynamics of the studied feedback architecture are not written in terms of the controller $K(s)$ but in terms of the complementary filters $H_L(s)$ and $H_H(s)$. -The typical specifications are then translated into the desired shapes of the complementary filters. +In the proposed control architecture, the closed-loop transfer functions eqref:eq:detail_control_cf_sf_cl_tf_K_inf are expressed in terms of the complementary filters $H_L(s)$ and $H_H(s)$ rather than directly through the controller $K(s)$. +Therefore, performance requirements must be translated into constraints on the shapes of these complementary filters. **** Nominal Stability (NS) -The closed-loop system is stable if all its elements are stable ($K$, $G^\prime$ and $H_L$) and if the sensitivity function ($S = \frac{1}{1 + G^\prime K H_L}$) is stable. -For the nominal system ($G^\prime = G$), the sensitivity transfer function is equal to the high pass filter: $S(s) = H_H(s)$. +A closed-loop system is stable when all its elements (here $K$, $G^\prime$, and $H_L$) are stable and the sensitivity function $S = \frac{1}{1 + G^\prime K H_L}$ is stable. +For the nominal system ($G^\prime = G$), the sensitivity transfer function equals the high-pass filter: $S(s) = H_H(s)$. -Nominal stability is then guaranteed if $H_L$, $H_H$ and $G$ are stable and if $G$ and $H_H$ are minimum phase (to have $K$ stable). -Therefore stable and minimum phase complementary filters need to be used. +Nominal stability is therefore guaranteed when $H_L$, $H_H$, and $G$ are stable, and both $G$ and $H_H$ are minimum phase (ensuring $K$ is stable). +Consequently, stable and minimum phase complementary filters must be employed. **** Nominal Performance (NP) -Two performance weights $w_H$ and $w_L$ are here defined in such a way that performance specifications are satisfied is eqref:eq:detail_control_cf_weights is satisfied. + +Performance specifications can be formalized using weighting functions $w_H$ and $w_L$, where performance is achieved when eqref:eq:detail_control_cf_weights is satisfied. \begin{subequations}\label{eq:detail_control_cf_weights} \begin{align} @@ -3510,89 +3523,32 @@ Two performance weights $w_H$ and $w_L$ are here defined in such a way that perf \end{align} \end{subequations} -For the nominal system, we have $S = H_H$ and $T = H_L$, and then nominal performance is ensured by requiring eqref:eq:detail_control_cf_nominal_performance. +For the nominal system, where $S = H_H$ and $T = H_L$, nominal performance is ensured by satisfying eqref:eq:detail_control_cf_nominal_performance. -\begin{empheq}[box=\fbox,left=\text{NP} \Longleftrightarrow \empheqlbrace]{align} \label{eq:detail_control_cf_nominal_performance} - &|w_H(j\omega) H_H(j\omega)| \le 1 \quad \forall\omega \label{eq:detail_control_cf_nominal_perf_hh}\\ - &|w_L(j\omega) H_L(j\omega)| \le 1 \quad \forall\omega \label{eq:detail_control_cf_nominal_perf_hl} -\end{empheq} - -The translation of typical performance requirements on the shapes of the complementary filters is discussed below: -- for disturbance rejections, make $|S| = |H_H|$ small -- for noise attenuation, make $|T| = |H_L|$ small -- closed-loop bandwidth can be limited by requiring that $|T|$ is less than $\frac{1}{\sqrt{2}}$ above the maximum wanted bandwidth - -Therefore, by properly choosing the shape of the complementary filters, the nominal performance specifications can be addressed. - -Classical stability margins (gain and phase margins) can also be linked to the maximum amplitude of the sensitivity transfer function. -- [ ] Add reference - -Typically, having $|S|_{\infty} \le 2$ guarantees a gain margin of at least $2$ and a phase margin of at least $\SI{29}{\degree}$. - -**** TODO Response time to change of reference signal -For the nominal system, the model is accurate and the transfer function from reference signal $r$ to output $y$ is $1$ eqref:eq:detail_control_cf_cl_performance_y and does not depends of the complementary filters. - -However, one can add a pre-filter as shown in Figure ref:fig:detail_control_cf_arch_class_prefilter. - -#+begin_src latex :file detail_control_cf_arch_class_prefilter.pdf -\tikzset{block/.default={0.8cm}{0.6cm}} -\tikzset{addb/.append style={scale=0.7}} -\tikzset{node distance=0.6} -\def\cdist{0.7} - -\begin{tikzpicture} - \node[addb={+}{}{}{}{-}] (addfb) at (0, 0){}; - \node[block, left=of addfb] (Kr){$K_r$}; - \node[block, right=of addfb] (K){$K$}; - \node[block, right=of K] (G){$G^\prime$}; - \node[addb={+}{}{}{}{}, right=of G] (adddy){}; - \node[addb={+}{}{}{}{}, below right=0.7 and 0.3 of adddy] (addn) {}; - \node[block, left=of addn] (Hl) {$H_L$}; - - \draw[->] (addfb.east) -- (K.west) node[above left]{}; - \draw[->] (K.east) -- (G.west) node[above left]{$u$}; - \draw[->] (G.east) -- (adddy.west); - \draw[<-] (addn.east) -- ++(\cdist, 0) coordinate[](endpos) node[above left]{$n$}; - \draw[->] (G-|addn)node[branch]{} -- (addn.north); - \draw[->] (adddy.east) -- (G-|endpos) node[above left]{$y$}; - \draw[<-] (Kr.west) -- ++(-\cdist, 0) node[above right]{$r$}; - \draw[->] (Kr.east) -- (addfb.west); - \draw[->] (addn.west) -- (Hl.east); - \draw[->] (Hl.west) -| (addfb.south); - \draw[<-] (adddy.north) -- ++(0, \cdist) node[below right]{$d_y$}; -\end{tikzpicture} -#+end_src - -#+name: fig:detail_control_cf_arch_class_prefilter -#+caption: Prefilter used to limit input usage -#+RESULTS: -[[file:figs/detail_control_cf_arch_class_prefilter.png]] - -The transfer function from $y$ to $r$ becomes $\frac{y}{r} = K_r$ and $K_r$ can we chosen to obtain acceptable response to change of the reference signal. -Typically, $K_r$ is a low pass filter of the form -\begin{equation} - K_r(s) = \frac{1}{1 + \tau s} +\begin{equation}\label{eq:detail_control_cf_nominal_performance} +\Aboxed{\text{NP} \Longleftrightarrow {\begin{cases*} + |w_H(j\omega) H_H(j\omega)| \le 1 & \forall\omega \\ + |w_L(j\omega) H_L(j\omega)| \le 1 & \forall\omega + \end{cases*}}} \end{equation} -with $\tau$ corresponding to the desired response time. -**** TODO Input usage -Input usage due to disturbances $d_y$ and measurement noise $n$ is determined by $\big|\frac{u}{d_y}\big| = \big|\frac{u}{n}\big| = \big|G^{-1}H_L\big|$. -Thus it can be limited by setting an upper bound on $|H_L|$. +Typical performance requirements can therefore be translated into constraints on the complementary filters. +For disturbance rejection, the magnitude of the sensitivity function $|S(j\omega)| = |H_H(j\omega)|$ should be minimized, particularly at low frequencies where disturbances are usually most prominent. +Similarly, for noise attenuation, the magnitude of the complementary sensitivity function $|T(j\omega)| = |H_L(j\omega)|$ should be minimized, especially at high frequencies where measurement noise typically dominates. +The closed-loop bandwidth can be effectively limited by ensuring that $|T(j\omega)|$ remains below $\frac{1}{\sqrt{2}}$ at frequencies above the maximum desired bandwidth. +By carefully selecting the shapes of these complementary filters, nominal performance specifications can be directly addressed in an intuitive manner. - -Input usage due to reference signal $r$ is determined by $\big|\frac{u}{r}\big| = \big|G^{-1} K_r\big|$ when using a pre-filter (Figure ref:fig:detail_control_cf_arch_class_prefilter) and $\big|\frac{u}{r}\big| = \big|G^{-1}\big|$ otherwise. - -Proper choice of $|K_r|$ is then useful to limit input usage due to change of reference signal. +Classical stability margins (gain and phase margins) are also related to the maximum amplitude of the sensitivity transfer function. +Typically, maintaining $|S|_{\infty} \le 2$ ensures a gain margin of at least 2 and a phase margin of at least $\SI{29}{\degree}$. **** Robust Stability (RS) -Robustness stability represents the ability of the control system to remain stable even though there are differences between the actual system $G^\prime$ and the model $G$ that was used for the design of the controller. -These differences can have various origins such as unmodelled dynamics or non-linearities. +Robust stability refers to a control system's ability to maintain stability despite discrepancies between the actual system $G^\prime$ and the model $G$ used for controller design. +These discrepancies may arise from unmodeled dynamics or nonlinearities. -To represent the differences between the model and the actual system, the input multiplicative uncertainty as represented in Figure ref:fig:detail_control_cf_input_uncertainty is used. - -Then, the set of possible plant is described by eqref:eq:detail_control_cf_multiplicative_uncertainty. -$w_I$ should be chosen such that all possible plants $G^\prime$ are contained in the set $\Pi_i$. +To represent these model-plant differences, input multiplicative uncertainty as illustrated in Figure ref:fig:detail_control_cf_input_uncertainty is employed. +The set of possible plants $\Pi_i$ is described by eqref:eq:detail_control_cf_multiplicative_uncertainty. +With the weighting function $w_I$ selected such that all possible plants $G^\prime$ are contained within the set $\Pi_i$. \begin{equation}\label{eq:detail_control_cf_multiplicative_uncertainty} \Pi_i: \quad G^\prime(s) = G(s)\big(1 + w_I(s)\Delta_I(s)\big); \quad |\Delta_I(j\omega)| \le 1 \ \forall\omega @@ -3646,47 +3602,45 @@ $w_I$ should be chosen such that all possible plants $G^\prime$ are contained in #+end_subfigure #+end_figure -Considering input multiplicative uncertainty, the robust stability property can be derived graphically from the Nyquist plot (Figure ref:fig:detail_control_cf_nyquist_uncertainty), and eqref:eq:detail_control_cf_robust_stability_graphically is obtained, as proposed in [[cite:&skogestad07_multiv_feedb_contr, chapt. 7.5.1]]. - +When considering input multiplicative uncertainty, robust stability can be derived graphically from the Nyquist plot (illustrated in Figure ref:fig:detail_control_cf_nyquist_uncertainty), yielding to eqref:eq:detail_control_cf_robust_stability_graphically, as demonstrated in [[cite:&skogestad07_multiv_feedb_contr, chapt. 7.5.1]]. \begin{equation}\label{eq:detail_control_cf_robust_stability_graphically} \text{RS} \Longleftrightarrow \left|w_I(j\omega) L(j\omega) \right| \le \left| 1 + L(j\omega) \right| \quad \forall\omega \end{equation} -After some algebraic manipulations, robust stability is then guaranteed by having the low pass filter $H_L$ satisfying eqref:eq:detail_control_cf_condition_robust_stability. +After algebraic manipulation, robust stability is guaranteed when the low-pass complementary filter $H_L$ satisfies eqref:eq:detail_control_cf_condition_robust_stability. \begin{equation}\label{eq:detail_control_cf_condition_robust_stability} \boxed{\text{RS} \Longleftrightarrow |w_I(j\omega) H_L(j\omega)| \le 1 \quad \forall \omega} \end{equation} **** Robust Performance (RP) -Robust performance is a property for a controlled system to have its performance guaranteed even though the dynamics of the plant is changing within specified bounds. -For robust performance, we then require to have the performance condition valid for all possible plants in the defined uncertainty set eqref:eq:detail_control_cf_robust_perf_S. +Robust performance ensures that performance specifications eqref:eq:detail_control_cf_weights are met even as plant dynamics varies within specified bounds. +This requires the performance condition to be valid for all possible plants in the defined uncertainty set $\Pi_i$: \begin{equation}\label{eq:detail_control_cf_robust_perf_S} \text{RP} \Longleftrightarrow |w_H(j\omega) S(j\omega)| \le 1 \quad \forall G^\prime \in \Pi_I, \ \forall\omega \end{equation} -Let's transform condition eqref:eq:detail_control_cf_robust_perf_S into a condition on the complementary filters eqref:eq:detail_control_cf_robust_performance. +Transforming this condition into constraints on the complementary filters yields: \begin{equation}\label{eq:detail_control_cf_robust_performance} \boxed{\text{RP} \Longleftrightarrow | w_H(j\omega) H_H(j\omega) | + | w_I(j\omega) H_L(j\omega) | \le 1, \ \forall\omega} \end{equation} -Obtained condition for robust performance combines both the NP and RS conditions. -If both NP and RS conditions are fulfilled, the robust performance will be fulfilled with a factor 2 [[cite:&skogestad07_multiv_feedb_contr, chapt. 7.6]]. -Therefore, for SISO systems, robust stability and nominal performance are usually sufficient. +The robust performance condition effectively combines both nominal performance eqref:eq:detail_control_cf_nominal_performance and robust stability conditions eqref:eq:detail_control_cf_condition_robust_stability. +If both NP and RS conditions are satisfied, robust performance will be achieved within a factor of 2 [[cite:&skogestad07_multiv_feedb_contr, chapt. 7.6]]. +Therefore, for SISO systems, ensuring robust stability and nominal performance is typically sufficient. ** Complementary filter design <> -As was explained in Section ref:sec:detail_control_sensor, complementary filters can easily be shaped with the standard $\mathcal{H}_{\infty}$ synthesis. -As requirements can usually be expressed as upper bounds on the complementary filters' magnitude, this method is very well suited. +As proposed in Section ref:sec:detail_control_sensor, complementary filters can be shaped using standard $\mathcal{H}_{\infty}$ synthesis techniques. +This approach is particularly well-suited since performance requirements were expressed as upper bounds on the magnitude of the complementary filters (Section ref:ssec:detail_control_cf_trans_perf). -However, analytical formulas for complementary filters may also be used. - -For some applications, first order complementary filters eqref:eq:detail_control_cf_1st_order are sufficient. +Alternatively, analytical formulas for complementary filters may be employed. +For some applications, first-order complementary filters as shown in Equation eqref:eq:detail_control_cf_1st_order are sufficient. \begin{subequations}\label{eq:detail_control_cf_1st_order} \begin{align} @@ -3695,8 +3649,7 @@ For some applications, first order complementary filters eqref:eq:detail_control \end{align} \end{subequations} -They can be expressed analytically in the digital domain using the Bilinear transformation. -In such case, digital filters eqref:eq:detail_control_cf_1st_order_z are obtained. +These filters can be transformed into the digital domain using the Bilinear transformation, resulting in the digital filter representations shown in Equation eqref:eq:detail_control_cf_1st_order_z. \begin{subequations}\label{eq:detail_control_cf_1st_order_z} \begin{align} @@ -3705,9 +3658,8 @@ In such case, digital filters eqref:eq:detail_control_cf_1st_order_z are obtaine \end{align} \end{subequations} -The main advantage of having analytical formulas for the complementary filters is that the parameter $\omega_0$ may be modified in real time. -This is illustrated in Figure ref:fig:detail_control_cf_arch_tunable_params. -Therefore, the performance and robustness of different control bandwidth can be tested very quickly. +A significant advantage of using analytical formulas for complementary filters is that key parameters such as $\omega_0$ can be modified in real-time, as illustrated in Figure ref:fig:detail_control_cf_arch_tunable_params. +This real-time tunability allows rapid testing of different control bandwidths to evaluate performance and robustness characteristics. #+begin_src latex :file detail_control_cf_arch_tunable_params.pdf \tikzset{block/.default={0.8cm}{0.6cm}} @@ -3752,8 +3704,9 @@ Therefore, the performance and robustness of different control bandwidth can be #+RESULTS: [[file:figs/detail_control_cf_arch_tunable_params.png]] -For many applications, slope of $+2$ is wanted at low frequency for the sensitivity transfer function (to follow ramp inputs for instance), and a slope of $-2$ for the complementary sensitivity transfer function. -In that case, complementary filters shown in equation eqref:eq:detail_control_cf_2nd_order are proposed. +For many practical applications, first order complementary filters are not sufficient. +Specifically, a slope of $+2$ at low frequencies for the sensitivity transfer function (enabling accurate tracking of ramp inputs) and a slope of $-2$ for the complementary sensitivity transfer function are often desired. +For these cases, the second-order complementary filters presented in Equation eqref:eq:detail_control_cf_2nd_order are proposed. \begin{subequations}\label{eq:detail_control_cf_2nd_order} \begin{align} @@ -3762,8 +3715,12 @@ In that case, complementary filters shown in equation eqref:eq:detail_control_cf \end{align} \end{subequations} -The effect of $\alpha$ and $\omega_0$ and the obtained shape of the complementary filters is shown in Figure ref:fig:detail_control_cf_analytical_effect. -Such filters can also be implemented in the digital domain with analytical formulas, such as $\alpha$ and $\omega_0$ can be changed in real time. +The influence of parameters $\alpha$ and $\omega_0$ on the frequency response of these complementary filters is illustrated in Figure ref:fig:detail_control_cf_analytical_effect. +The parameter $\alpha$ primarily affects the damping characteristics near the crossover frequency, while $\omega_0$ determines the frequency at which the transition between high-pass and low-pass behavior occurs. +These filters can also be implemented in the digital domain with analytical formulas, preserving the ability to adjust $\alpha$ and $\omega_0$ in real-time. + +The presented analytical formulations offer an attractive balance between design simplicity and performance. +This capability to tune parameters in real-time is particularly valuable during commissioning of the controller. #+begin_src matlab :exports none :results none %% Analytical Complementary Filters - Effect of alpha @@ -3841,43 +3798,45 @@ exportFig('figs/detail_control_cf_analytical_effect_w0.pdf', 'width', 'half', 'h ** Numerical Example <> -**** Procedure +**** Procedure :ignore: -In order to apply this control technique, we propose the following procedure: -1. Identify the plant to be controlled in order to obtain the plant model $G$ -2. Design the weighting function $w_I$ such that all possible plants $G^\prime$ are contained in the set $\Pi_i$ -3. Translate the performance requirements into upper bounds on the complementary filters (as explained in Section ref:ssec:detail_control_cf_trans_perf) -4. Design the weighting functions $w_H$ and $w_L$ and generate the complementary filters using $\mathcal{H}_{\infty}\text{-synthesis}$ (as was explained in Section ref:ssec:detail_control_sensor_hinf_method). - If the synthesis fails to give filters satisfying the upper bounds previously defined, either the requirements have to be reworked or a better model $G$ that will permits to have a smaller $w_I$ should be obtained. - For simple cases, analytical formulas of complementary filters given in Section ref:ssec:detail_control_cf_analytical_complementary_filters can be used. -6. If $K(s) = \left( G(s) H_H(s) \right)^{-1}$ is not proper, low pass filters should be added high a high corner frequency +To systematically apply the proposed control technique, the following procedure is recommended: + +1. Identify the plant to be controlled to obtain the plant model $G$. +2. Design the weighting function $w_I$ such that all possible plants $G^\prime$ are contained in the uncertainty set $\Pi_i$. +3. Translate performance requirements into upper bounds on the complementary filters as explained in Section ref:ssec:detail_control_cf_trans_perf. +4. Design the weighting functions $w_H$ and $w_L$ and generate the complementary filters using $\mathcal{H}_{\infty}\text{-synthesis}$ as described in Section ref:ssec:detail_control_sensor_hinf_method. + If the synthesis fails to produce filters satisfying the defined upper bounds, either revise the requirements or develop a more accurate model $G$ that will allow for a smaller $w_I$. + For simpler cases, the analytical formulas for complementary filters presented in Section ref:ssec:detail_control_cf_analytical_complementary_filters can be employed. +5. If $K(s) = H_H^{-1}(s) G^{-1}(s)$ is not proper, add low-pass filters with sufficiently high corner frequencies to ensure realizability. **** Plant -- To test this control architecture, a simple test model is used (Figure ref:fig:detail_control_cf_test_model). -- This model is quite similar to many positioning stages for Synchrotrons. - A payload (i.e. sample) with mass $m = 5$ is positioned on top of the stage. - The goal is to position the sample with respect to the x-ray. - It is supposed that the relative position $y$ between the payload an the x-ray is measured (typically the relative position between the focusing optics and the sample is performed). - There are some disturbance forces acting on the positioning stability, such as stage vibration $d_w$ and direct forces applied on the sample $d_F$ (for instance cable forces). - The positioning stage itself has a stiffness $k$, an internal damping $c$ and the force $F$ can be controlled. +To evaluate this control architecture, a simple test model representative of many synchrotron positioning stages is utilized (Figure ref:fig:detail_control_cf_test_model). +In this model, a payload with mass $m$ is positioned on top of a stage. +The objective is to accurately position the sample relative to the X-ray beam. -The model of the plant $G(s)$ from actuator force $F$ to displacement $y$ is then +The relative position $y$ between the payload and the X-ray is measured, which typically involves measuring the relative position between the focusing optics and the sample. +Various disturbance forces affect positioning stability, including stage vibrations $d_w$ and direct forces applied to the sample $d_F$ (such as cable forces). +The positioning stage itself is characterized by stiffness $k$, internal damping $c$, and a controllable force $F$. + +The model of the plant $G(s)$ from actuator force $F$ to displacement $y$ is described by Equation eqref:eq:detail_control_cf_test_plant_tf. \begin{equation}\label{eq:detail_control_cf_test_plant_tf} G(s) = \frac{1}{m s^2 + c s + k} \end{equation} -The values for the parameters of the models are $m = \SI{20}{\kg}$, $k = 1\si{\N/\mu\m}$ and $c = 10^2\si{\N\per(\m\per\s)}$. +The parameter values are set to $m = \SI{20}{\kg}$, $k = 1\si{\N/\mu\m}$, and $c = 10^2\si{\N\per(\m\per\s)}$. -The plant dynamics has some uncertainty related to the limited support compliance, unmodeled flexible dynamics, dynamics of the payload, etc. -A multiplicative input uncertainty weight $w_I(s)$ is used to specify the amount of uncertainty as a function of frequency eqref:eq:detail_control_cf_test_plant_uncertainty. +The plant dynamics include uncertainties related to limited support compliance, unmodeled flexible dynamics, payload dynamics, and other factors. +These uncertainties are represented using a multiplicative input uncertainty weight eqref:eq:detail_control_cf_test_plant_uncertainty., which specifies the magnitude of uncertainty as a function of frequency: \begin{equation}\label{eq:detail_control_cf_test_plant_uncertainty} w_I(s) = 10 \cdot \frac{(s+100)^2}{(s+1000)^2} \end{equation} -The nominal plant dynamics as well as the entire set of possible plants $\Pi_i$ are shown in Figure ref:fig:detail_control_cf_bode_plot_mech_sys. +Figure ref:fig:detail_control_cf_bode_plot_mech_sys illustrates both the nominal plant dynamics and the complete set of possible plants $\Pi_i$ encompassed by the uncertainty model. + #+begin_src matlab %% Test model freqs = logspace(0, 3, 1000); % Frequency Vector [Hz] @@ -3949,18 +3908,20 @@ exportFig('figs/detail_control_cf_bode_plot_mech_sys.pdf', 'width', 'half', 'hei **** Requirements and choice of complementary filters -As explained in Section ref:ssec:detail_control_cf_trans_perf, nominal performance requirements can be expressed as upper bounds on the complementary filter shapes. -- Be able to follow ramp inputs (i.e. constant velocity scans) with no steady-state tracking error. - This requires to have a $+2$ slope at low frequency for $|S(j\omega)|$ -- Filter the measurement noise above 300Hz as the sensor noise is high (say a filtering factor of 100 is needed above that frequency). -- As much disturbance rejection as possible. +As discussed in Section ref:ssec:detail_control_cf_trans_perf, nominal performance requirements can be expressed as upper bounds on the shapes of the complementary filters. +For this example, the requirements are: +- to track ramp inputs (constant velocity scans) with zero steady-state error, which necessitates a $+2$ slope at low frequencies for the magnitude of the sensitivity function $|S(j\omega)|$ +- filtering of measurement noise above $\SI{300}{Hz}$, where sensor noise is significant (requiring a filtering factor of approximately 100 above this frequency) +- maximizing disturbance rejection -The second requirement is to have robust stability meaning that the plant should remain stable while considering the dynamical uncertainties modelled with $w_I$ -- The low-pass complementary filter magnitude $|H_L(j\omega)|$ should be bellow the inverse magnitude of the uncertainty weight magnitude $|w_I(j\omega)|$ eqref:eq:detail_control_cf_condition_robust_stability +Additionally, robust stability must be ensured, requiring the closed-loop system to remain stable despite the dynamic uncertainties modeled by $w_I$. +This condition is satisfied when the magnitude of the low-pass complementary filter $|H_L(j\omega)|$ remains below the inverse of the uncertainty weight magnitude $|w_I(j\omega)|$, as expressed in Equation eqref:eq:detail_control_cf_condition_robust_stability. -Robust performance is ensured by simultaneous NP and RS. +Robust performance is achieved when both nominal performance and robust stability conditions are simultaneously satisfied. -All the requirements on $H_L$ and $H_H$ are represented on Figure ref:fig:detail_control_cf_specs_S_T. +All requirements imposed on $H_L$ and $H_H$ are visualized in Figure ref:fig:detail_control_cf_specs_S_T. +While $\mathcal{H}_\infty$ synthesis could be employed to design the complementary filters, analytical formulas were used for this relatively simple example. +Specifically, the second-order complementary filters from Equation eqref:eq:detail_control_cf_2nd_order were selected, providing the desired $+2$ and $-2$ slopes, with parameters $\alpha = 1$ and $\omega_0 = 2\pi \cdot 20$ Hz. #+name: fig:detail_control_cf_specs_S_T_obtained_filters #+caption: Performance requirement and complementary filters used (\subref{fig:detail_control_cf_specs_S_T}). Obtained controller from the complementary filters and the plant inverse is shown in (\subref{fig:detail_control_cf_bode_Kfb}). @@ -3980,11 +3941,6 @@ All the requirements on $H_L$ and $H_H$ are represented on Figure ref:fig:detail #+end_subfigure #+end_figure -While the $\mathcal{H}_\infty$ synthesis of complementary filters could be used, for this simple examples with simple requirements, analytical formulas of complementary filters were used. - -For this simple example, analytical formulas proposed to have +2 and -2 slopes eqref:eq:detail_control_cf_2nd_order were used. -$\alpha = 1$ and $\omega_0 = 2\pi \cdot 20$ were used. - #+begin_src matlab %% Analytical Complementary Filters w0 = 2*pi*20; @@ -4017,17 +3973,18 @@ xticks([0.1, 1, 10, 100, 1000]); **** Controller analysis -The controller to be implemented is $K(s) = \tilde{G}^{-1}(s) H_H^{-1}(s)$, with $\tilde{G}^{-1}(s)$ is the plant inverse which needs to be stable and proper. -Therefore, some low pass filters are added at high frequency eqref:eq:detail_control_cf_test_plant_inverse. +The controller to be implemented takes the form $K(s) = \tilde{G}^{-1}(s) H_H^{-1}(s)$, where $\tilde{G}^{-1}(s)$ represents the plant inverse, which must be both stable and proper. +To ensure properness, low-pass filters with high corner frequencies are added as shown in Equation eqref:eq:detail_control_cf_test_plant_inverse. \begin{equation}\label{eq:detail_control_cf_test_plant_inverse} \tilde{G}^{-1}(s) = \frac{m s^2 + c s + k}{1 + \frac{s}{2\pi \cdot 1000} + \left( \frac{s}{2\pi \cdot 1000} \right)^2} \end{equation} -The obtained bode plot of the controller times the complementary high pass filter is shown in Figure ref:fig:detail_control_cf_bode_Kfb. -- two integrators are present at low frequency to be able to follow ramp inputs -- a notch is located at the plant resonance (inverse) -- a lead is added near the bandwidth around $\SI{20}{Hz}$ +The Bode plot of the controller multiplied by the complementary low-pass filter, $K(s) \cdot H_L(s)$, is presented in Figure ref:fig:detail_control_cf_bode_Kfb. +The frequency response reveals several important characteristics: +- The presence of two integrators at low frequencies, enabling accurate tracking of ramp inputs +- A notch at the plant resonance frequency (arising from the plant inverse) +- A lead component near the control bandwidth of approximately 20 Hz, enhancing stability margins #+begin_src matlab %% Obtained controller @@ -4066,10 +4023,12 @@ exportFig('figs/detail_control_cf_bode_Kfb.pdf', 'width', 'half', 'height', 500) #+end_src **** Robustness and Performance analysis -The robust stability can be access on the Nyquist plot (Figure ref:fig:detail_control_cf_nyquist_robustness). -Even when considering all the possible plants in the uncertainty set, the nyquist plot stays away from the unstable point, indicating good robustness. -The performance is evaluated by looking at the closed-loop sensitivity and complementary sensitivity transfer functions (Figure ref:fig:detail_control_cf_robust_perf). +Robust stability is assessed using the Nyquist plot shown in Figure ref:fig:detail_control_cf_nyquist_robustness. +Even when considering all possible plants within the uncertainty set, the Nyquist plot remains sufficiently distant from the critical point $(-1,0)$, indicating robust stability with adequate margins. + +Performance is evaluated by examining the closed-loop sensitivity and complementary sensitivity transfer functions, as illustrated in Figure ref:fig:detail_control_cf_robust_perf. +It is shown that the sensitivity transfer function achieves the desired $+2$ slope at low frequencies and that the complementary sensitivity transfer function nominally provides the wanted noise filtering. #+begin_src matlab num_delta_points = 50; @@ -4195,20 +4154,18 @@ exportFig('figs/detail_control_cf_robust_perf.pdf', 'width', 'half', 'height', ' :UNNUMBERED: t :END: -- [ ] Say that the presented control architecture in this section - No ambition to overcome fundamental limitations of current architectures. - Very similar to Internal Model Control [[cite:&saxena12_advan_inter_model_contr_techn]] - Had no time to proceed to an extensive literature review to find similar control architecture and to compare them. - Whether the propose architecture has advantages compared to already excising architecture in the literature is not clear. -- [ ] The control architecture was presented for a SISO system, but can be applied to MIMO if decoupling is sufficient. - It will be experimentally demonstrated with the NASS. -- [ ] Discuss how useful it is as the bandwidth can be changed in real time with analytical formulas of second order complementary filters. - Maybe make a section about that. - Maybe give analytical formulas of second order complementary filters in the digital domain? -- [ ] Disadvantages: - - not optimal - - computationally intensive? - - lead to inverse control which may not be wanted in many cases. Add reference. +In this section, a control architecture in which complementary filters are used for closed-loop shaping has been presented. +This approach differs from traditional open-loop shaping in that no controller is manually designed; rather, appropriate complementary filters are selected to achieve the desired closed-loop behavior. +The method shares conceptual similarities with mixed-sensitivity $\mathcal{H}_{\infty}\text{-synthesis}$, as both approaches aim to shape closed-loop transfer functions, but with notable distinctions in implementation and complexity. + +While $\mathcal{H}_{\infty}\text{-synthesis}$ synthesis offers greater flexibility and can be readily generalized to MIMO plants, the presented approach provides a simpler alternative that requires minimal design effort. +Implementation only necessitates extracting a model of the plant and selecting appropriate analytical complementary filters, making it particularly interesting for applications where simplicity and intuitive parameter tuning are valued. + +Due to time constraints, an extensive literature review comparing this approach with similar existing architectures, such as Internal Model Control [[cite:&saxena12_advan_inter_model_contr_techn]], was not conducted. +Consequently, it remains unclear whether the proposed architecture offers significant advantages over existing methods in the literature. + +The control architecture has been presented for SISO systems, but can be applied to MIMO systems when sufficient decoupling is achieved. +It will be experimentally validated with the NASS during the experimental phase. * Conclusion :PROPERTIES: diff --git a/nass-control.pdf b/nass-control.pdf index 69502c5..5c96d20 100644 Binary files a/nass-control.pdf and b/nass-control.pdf differ diff --git a/nass-control.tex b/nass-control.tex index 8cbf909..4325592 100644 --- a/nass-control.tex +++ b/nass-control.tex @@ -1,4 +1,4 @@ -% Created 2025-04-09 Wed 14:50 +% Created 2025-04-11 Fri 14:30 % Intended LaTeX compiler: pdflatex \documentclass[a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]{scrreprt} @@ -7,10 +7,10 @@ \bibliography{nass-control.bib} \author{Dehaeze Thomas} \date{\today} -\title{Control Optimization} +\title{Control of Parallel Manipulators} \hypersetup{ pdfauthor={Dehaeze Thomas}, - pdftitle={Control Optimization}, + pdftitle={Control of Parallel Manipulators}, pdfkeywords={}, pdfsubject={}, pdfcreator={Emacs 30.1 (Org mode 9.7.26)}, @@ -177,7 +177,7 @@ The complementary property of filters \(H_1(s)\) and \(H_2(s)\) requires that th \begin{equation}\label{eq:detail_control_sensor_comp_filter} H_1(s) + H_2(s) = 1 \end{equation} -\subsubsection{Sensor Models and Sensor Normalization} +\paragraph{Sensor Models and Sensor Normalization} To analyze sensor fusion architectures, appropriate sensor models are required. The model shown in Figure \ref{fig:detail_control_sensor_model} consists of a linear time invariant (LTI) system \(G_i(s)\) representing the sensor dynamics and an input \(n_i\) representing sensor noise. @@ -219,7 +219,7 @@ The super sensor output \(\hat{x}\) is therefore described by \eqref{eq:detail_c \includegraphics[scale=1]{figs/detail_control_sensor_fusion_super_sensor.png} \caption{\label{fig:detail_control_sensor_fusion_super_sensor}Sensor fusion architecture with two normalized sensors.} \end{figure} -\subsubsection{Noise Sensor Filtering} +\paragraph{Noise Sensor Filtering} First, consider the case where all sensors are perfectly normalized \eqref{eq:detail_control_sensor_perfect_dynamics}. The effects of imperfect normalization will be addressed subsequently. @@ -255,7 +255,7 @@ This represents the simplest form of sensor fusion using complementary filters. However, sensors typically exhibit high noise levels in different frequency regions. In such cases, to reduce the noise of the super sensor, the norm \(|H_1(j\omega)|\) should be minimized when \(\Phi_{n_1}(\omega)\) exceeds \(\Phi_{n_2}(\omega)\), and the norm \(|H_2(j\omega)|\) should be minimized when \(\Phi_{n_2}(\omega)\) exceeds \(\Phi_{n_1}(\omega)\). Therefore, by appropriately shaping the norm of the complementary filters, the noise of the super sensor can be minimized. -\subsubsection{Sensor Fusion Robustness} +\paragraph{Sensor Fusion Robustness} In practical systems, sensor normalization is rarely perfect, and condition \eqref{eq:detail_control_sensor_perfect_dynamics} is not fully satisfied. @@ -318,7 +318,7 @@ As established in Section \ref{ssec:detail_control_sensor_fusion_requirements}, A synthesis method enabling precise shaping of these norms would therefore offer substantial practical benefits. This section develops such an approach by formulating the design objective as a standard \(\mathcal{H}_\infty\) optimization problem. The methodology for designing appropriate weighting functions (which specify desired complementary filter shapes during synthesis) is examined in detail, and the efficacy of the proposed method is validated with a simple example. -\subsubsection{Synthesis Objective} +\paragraph{Synthesis Objective} The primary objective is to shape the norms of two filters \(H_1(s)\) and \(H_2(s)\) while ensuring they maintain their complementary property as defined in \eqref{eq:detail_control_sensor_comp_filter}. This is equivalent to finding proper and stable transfer functions \(H_1(s)\) and \(H_2(s)\) that satisfy conditions \eqref{eq:detail_control_sensor_hinf_cond_complementarity}, \eqref{eq:detail_control_sensor_hinf_cond_h1}, and \eqref{eq:detail_control_sensor_hinf_cond_h2}. @@ -331,7 +331,7 @@ Weighting transfer functions \(W_1(s)\) and \(W_2(s)\) are strategically selecte & |H_2(j\omega)| \le \frac{1}{|W_2(j\omega)|} \quad \forall\omega \label{eq:detail_control_sensor_hinf_cond_h2} \end{align} \end{subequations} -\subsubsection{Shaping of Complementary Filters using \(\mathcal{H}_\infty\) synthesis} +\paragraph{Shaping of Complementary Filters using \(\mathcal{H}_\infty\) synthesis} The synthesis objective can be readily expressed as a standard \(\mathcal{H}_\infty\) optimization problem and solved using widely available computational tools. Consider the generalized plant \(P(s)\) illustrated in Figure \ref{fig:detail_control_sensor_h_infinity_robust_fusion_plant} and mathematically described by \eqref{eq:detail_control_sensor_generalized_plant}. @@ -376,7 +376,7 @@ Therefore, applying \(\mathcal{H}_\infty\) synthesis to the standard plant \(P(s It should be noted that there exists only an implication (not an equivalence) between the \(\mathcal{H}_\infty\) norm condition in \eqref{eq:detail_control_sensor_hinf_problem} and the initial synthesis objectives in \eqref{eq:detail_control_sensor_hinf_cond_h1} and \eqref{eq:detail_control_sensor_hinf_cond_h2}. Consequently, the optimization may be somewhat conservative with respect to the set of filters on which it operates (see \cite[,Chap. 2.8.3]{skogestad07_multiv_feedb_contr}). -\subsubsection{Weighting Functions Design} +\paragraph{Weighting Functions Design} Weighting functions play a crucial role during synthesis by specifying the maximum allowable norms for the complementary filters. The proper design of these weighting functions is essential for the successful implementation of the proposed \(\mathcal{H}_\infty\) synthesis approach. @@ -407,7 +407,7 @@ The typical magnitude response of a weighting function generated using \eqref{eq }\right)^n \end{equation} \end{minipage} -\subsubsection{Validation of the proposed synthesis method} +\paragraph{Validation of the proposed synthesis method} The proposed methodology for designing complementary filters is now applied to a simple example. Consider the design of two complementary filters \(H_1(s)\) and \(H_2(s)\) with the following requirements: @@ -711,7 +711,7 @@ Depending on the symmetry present in the system, certain diagonal elements may e \end{figure} \section{Jacobian Decoupling} \label{ssec:detail_control_decoupling_jacobian} -\subsubsection{Jacobian Matrix} +\paragraph{Jacobian Matrix} The Jacobian matrix serves a dual purpose in the decoupling process: it converts strut velocity \(\dot{\mathcal{L}}\) to payload velocity and angular velocity \(\dot{\bm{\mathcal{X}}}_{\{O\}}\), and it transforms actuator forces \(\bm{\tau}\) to forces/torque applied on the payload \(\bm{\mathcal{F}}_{\{O\}}\), as expressed in equation \eqref{eq:detail_control_decoupling_jacobian}. @@ -742,7 +742,7 @@ The transfer function from \(\bm{\mathcal{F}}_{\{O\}\) to \(\bm{\mathcal{X}}_{\{ The frame \(\{O\}\) can be selected according to specific requirements, but the decoupling properties are significantly influenced by this choice. Two natural reference frames are particularly relevant: the center of mass and the center of stiffness. -\subsubsection{Center Of Mass} +\paragraph{Center Of Mass} When the decoupling frame is located at the center of mass (frame \(\{M\}\) in Figure \ref{fig:detail_control_decoupling_model_test}), the Jacobian matrix and its inverse are expressed as in \eqref{eq:detail_control_decoupling_jacobian_CoM_inverse}. @@ -797,7 +797,7 @@ This phenomenon is illustrated in Figure \ref{fig:detail_control_decoupling_mode \end{subfigure} \caption{\label{fig:detail_control_jacobian_decoupling_plant_CoM_results}Plant decoupled using the Jacobian matrix expresssed at the center of mass (\subref{fig:detail_control_decoupling_jacobian_plant_CoM}). The physical reason for low frequency coupling is illustrated in (\subref{fig:detail_control_decoupling_model_test_CoM}).} \end{figure} -\subsubsection{Center Of Stiffness} +\paragraph{Center Of Stiffness} When the decoupling frame is located at the center of stiffness, the Jacobian matrix and its inverse are expressed as in \eqref{eq:detail_control_decoupling_jacobian_CoK_inverse}. @@ -933,7 +933,7 @@ Each of these diagonal elements corresponds to a specific mode, as shown in Figu \end{figure} \section{SVD Decoupling} \label{ssec:detail_control_decoupling_svd} -\subsubsection{Singular Value Decomposition} +\paragraph{Singular Value Decomposition} Singular Value Decomposition (SVD) represents a powerful mathematical tool with extensive applications in data analysis \cite[, chapt. 1]{brunton22_data} and multivariable control systems \cite{skogestad07_multiv_feedb_contr}, where it is particularly valuable for analyzing directional properties in multivariable systems. @@ -945,7 +945,7 @@ The SVD constitutes a unique matrix decomposition applicable to any complex matr where \(\bm{U} \in \mathbb{C}^{n \times n}\) and \(\bm{V} \in \mathbb{C}^{m \times m}\) are unitary matrices with orthonormal columns, and \(\bm{\Sigma} \in \mathbb{R}^{n \times n}\) is a diagonal matrix with real, non-negative entries. For real matrices \(\bm{X}\), the resulting \(\bm{U}\) and \(\bm{V}\) matrices are also real, making them suitable for decoupling applications. -\subsubsection{Decoupling using the SVD} +\paragraph{Decoupling using the SVD} The procedure for SVD-based decoupling begins with identifying the system dynamics from inputs to outputs, typically represented as a Frequency Response Function (FRF), which yields a complex matrix \(\bm{G}(\omega_i)\) for multiple frequency points \(\omega_i\). A specific frequency is then selected for optimal decoupling, with the targeted crossover frequency \(\omega_c\) often serving as an appropriate choice. @@ -971,7 +971,7 @@ Implementation of SVD decoupling requires access to the system's FRF, at least i This information can be obtained either experimentally or derived from a model. While this approach ensures effective decoupling near the chosen frequency, it provides no guarantees regarding decoupling performance away from this frequency. Furthermore, the quality of decoupling depends significantly on the accuracy of the real approximation, potentially limiting its effectiveness for plants with high damping. -\subsubsection{Example} +\paragraph{Example} Plant decoupling using the Singular Value Decomposition was then applied on the test model. A decoupling frequency of \(\SI{100}{Hz}\) was used. @@ -1101,120 +1101,73 @@ SVD decoupling can be implemented using measured data without requiring a model, \chapter{Closed-Loop Shaping using Complementary Filters} \label{sec:detail_control_cf} -Once the system is properly decoupled using one of the approaches described in Section \ref{sec:detail_control_decoupling}, a diagonal controller can be tuned. -This consists in tuning several SISO controllers. -There are several ways to design a controller to obtain a given performance while ensuring good robustness properties. +Once the system is properly decoupled using one of the approaches described in Section \ref{sec:detail_control_decoupling}, SISO controllers can be individually tuned for each decoupled ``directions''. +Several ways to design a controller to obtain a given performance while ensuring good robustness properties can be implemented. -Performances of a feedback system (such as response time, disturbance rejection, ) depends on the obtained closed-loop transfer functions. -For instance sensitivity, transmissibility, etc\ldots{} Gang of Four. -The specifications can usually be expressed in terms of the shape of these closed-loop transfer functions \cite[, chapt. 3]{skogestad07_multiv_feedb_contr}. +In some cases, ``fixed'' controller structures are utilized, such as PI and PID controllers \cite{furutani04_nanom_cuttin_machin_using_stewar,du14_piezo_actuat_high_precis_flexib,yang19_dynam_model_decoup_contr_flexib}. +In such cases, the controller coefficients are manually tuned to obtain acceptable performance and robustness. -In some cases, ``fixed'' controller structures are used, with as PI and PID controllers. -In such case the controller coefficients are manually tuned to obtain acceptable performance and robustness. -In many cases, PID+LPF can already lead to performances close to optimal, depending on the plant. +Another popular method is Open-Loop shaping, that was used during the conceptual phase after the plan was decoupled in the frame of the struts. +The idea of open-loop shaping is to tune the controller (using a series of standard leads, lags, notches, low pass filters) such that the open-loop transfer function \(G(s)K(s)\) is made according to specification (i.e. +bandwidth, gain and phase margins, gain at a specific frequency, etc\ldots{}) \cite[, chapt. 4.4.7]{schmidt20_desig_high_perfor_mechat_third_revis_edition}. +Open-Loop shaping is very popular because the open-loop transfer function depends linearly on the controller, making it relatively straightforward to tune the controller to achieve desired open-loop characteristics. +Another key advantage is that controllers can be tuned directly from measured frequency response functions without requiring an explicit plant model. +However, the behavior (i.e. performance) of a feedback system is a function of closed-loop transfer functions \cite[, chapt. 3]{skogestad07_multiv_feedb_contr}. +Specifications can therefore be expressed in terms of the magnitude of closed-loop transfer functions, such as the sensitivity, plant sensitivity, and complementary sensitivity transfer functions. +With open-loop shaping, closed-loop transfer functions are changed only indirectly, which may make it difficult to directly address the specifications that are in terms of the closed-loop transfer functions. -Decoupled Open-Loop Shaping: -\begin{itemize} -\item Explain procedure when applying open-loop shaping \cite[, chapt. 4.4.7]{schmidt20_desig_high_perfor_mechat_third_revis_edition} -\cite{steinbuch16_model_based} -\begin{quote} - The key idea of loop-shaping is the modification of the controller such that the open- -loop is made according to specifications. The reason this works so well, is that the controller -enters linearly into the open-loop transfer l(j!) = g(j!)k(j!), so that it is fast and easy -to reason what is to be changed in the controller. However, in practice all specifications are -of course given in terms of the final system performance, i.e. as closed-loop specifications. -So we should convert the closed loop specs into specs on the open-loop. -\end{quote} -\item The controller is usually manually tuned using a series of Integrators, Leads, Lags, Notches, low pass filters -\item There are lots of tools to check stability, robustness margins and performances -\item Open-Loop shaping is very popular as the open-loop gain depends linearly on the controller. -So the open-loop transfer function can easily be shaped by modifying the controller response. -\item Different techniques for open loop shaping (choice of optimal open-loop gain shape) \cite{lurie02_system_archit_trades_using_bode} -\item But this is open-loop shaping, and it does not directly work on the closed loop transfer functions -\item The huge advantage of this technique, is that one can tune the controllers based on the measured FRF of the system. -No plant model is required. -\item This is what was done during the conceptual phase after the plan was decoupled in the frame of the struts. -\end{itemize} +In order to synthesize a controller that directly shapes the closed-loop transfer functions (and therefore the performance metric), \(\mathcal{H}_\infty\) loop-shaping may be used \cite{skogestad07_multiv_feedb_contr}. +This approach requires a good model of the plant and expertise in selecting weighting functions that will define the wanted shape of different closed-loop transfer functions \cite{bibel92_guidel_h}. +\(\mathcal{H}_{\infty}\) synthesis has been applied for the Stewart platform \cite{jiao18_dynam_model_exper_analy_stewar}, but comparative studies with more simple decentralized controllers did not show large improvements \cite{thayer02_six_axis_vibrat_isolat_system,hauge04_sensor_contr_space_based_six}. +In this section, an alternative controller synthesis scheme is proposed in which complementary filters are used for directly shaping the closed-loop transfer functions (i.e., directly addressing the closed-loop performances). -Model based control: -\begin{itemize} -\item Review of model based design (LQG, H-Infinity) applied to Stewart platform \href{file:///home/thomas/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/bibliography.org}{Multivariable Control} -\(\hinf\) loop-shaping \cite{skogestad07_multiv_feedb_contr}. -\item Difficulty to specify robustness to change of payload mass -\item Requires high level of expertise. -Far from standard in industry. -Application to Stewart platforms is not demonstrated (or performance increased compared to decoupled control and manual loop shaping). -\end{itemize} - - -In this section, an alternative controller synthesis scheme is proposed in which complementary filters are used for directly shaping the closed-loop transfer functions. -In this paper, we propose a new controller synthesis method -\begin{itemize} -\item based on the use of complementary high pass and low pass filters -\item inverse based control -\item direct translation of requirements such as disturbance rejection and robustness to plant uncertainty -\end{itemize} +In Section \ref{ssec:detail_control_cf_control_arch}, the proposed control architecture including the complementary filters is presented. +In Section \ref{ssec:detail_control_cf_trans_perf}, typical performance requirements are translated into the shape of the complementary filters. +The design of the complementary filters is briefly discussed in Section \ref{ssec:detail_control_cf_analytical_complementary_filters}, and analytical formulas are proposed such that it is possible to change the closed-loop behavior of the system in real time. +Finally, in Section \ref{ssec:detail_control_cf_simulations}, a numerical example is used to show how the proposed control architecture can be implemented in practice. \section{Control Architecture} \label{ssec:detail_control_cf_control_arch} -\subsubsection{Virtual Sensor Fusion} +\paragraph{Virtual Sensor Fusion} -Let's consider the control architecture represented in Figure \ref{fig:detail_control_cf_arch} where \(G^\prime\) is the physical plant to control, \(G\) is a model of the plant, \(k\) is a gain, \(H_L\) and \(H_H\) are complementary filters (\(H_L(s) + H_H(s) = 1\)). -The signals are the reference signal \(r\), the output perturbation \(d_y\), the measurement noise \(n\) and the control input \(u\). +The concept of using complementary filters in control architecture originates from sensor fusion techniques \cite{collette15_sensor_fusion_method_high_perfor}, where two sensors are combined using complementary filters. +Building upon this concept, ``virtual sensor fusion'' \cite{verma20_virtual_sensor_fusion_high_precis_contr} replaces one physical sensor with a model \(G\) of the plant. + +The control architecture is illustrated in Figure \ref{fig:detail_control_cf_arch}, where \(G^\prime\) represents the physical plant to be controlled, \(G\) is a model of the plant, \(k\) is the controller, and \(H_L\) and \(H_H\) are complementary filters satisfying \(H_L(s) + H_H(s) = 1\). +In this arrangement, the physical plant is controlled at low frequencies, while the plant model is utilized at high frequencies to enhance robustness. \begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/detail_control_cf_arch.png} -\caption{\label{fig:detail_control_cf_arch}Sensor Fusion Architecture} +\begin{subfigure}{0.48\textwidth} +\begin{center} +\includegraphics[scale=1,scale=0.9]{figs/detail_control_cf_arch.png} +\end{center} +\subcaption{\label{fig:detail_control_cf_arch}Virtual Sensor Fusion} +\end{subfigure} +\begin{subfigure}{0.48\textwidth} +\begin{center} +\includegraphics[scale=1,scale=0.9]{figs/detail_control_cf_arch_eq.png} +\end{center} +\subcaption{\label{fig:detail_control_cf_arch_eq}Equivalent Architecture} +\end{subfigure} +\caption{\label{fig:detail_control_cf_arch_and_eq}Control architecture for virtual sensor fusion (\subref{fig:detail_control_cf_arch}). An equivalent architecture is shown in (\subref{fig:detail_control_cf_arch_eq}). The signals are the reference signal \(r\), the output perturbation \(d_y\), the measurement noise \(n\) and the control input \(u\).} \end{figure} -The dynamics of the closed-loop system is described by \eqref{eq:detail_control_cf_sf_cl_tf} with \(L = k(G H_H + G^\prime H_L)\). +Although the control architecture shown in Figure \ref{fig:detail_control_cf_arch} appears to be a multi-loop system, it should be noted that no non-linear saturation-type elements are present in the inner loop (containing \(k\), \(G\), and \(H_H\), all numerically implemented). +Consequently, this structure is mathematically equivalent to the single-loop architecture illustrated in Figure \ref{fig:detail_control_cf_arch_eq}. +\paragraph{Asymptotic behavior} -\begin{subequations}\label{eq:detail_control_cf_sf_cl_tf} - \begin{alignat}{5} - y &= \frac{1+kGH_H}{1+L} dy &&+ \frac{kG^{\prime}}{1+L} r &&- \frac{kG^{\prime}H_L}{1+L} n \\ - u &= -\frac{kH_L}{1+L} dy &&+ \frac{k}{1+L} r &&- \frac{kH_L}{1+L} n - \end{alignat} -\end{subequations} - -The idea of using such architecture comes from sensor fusion \cite{collette14_vibrat,collette15_sensor_fusion_method_high_perfor} where two sensors are used. -One is measuring the quantity that is required to control, the other is collocated with the actuator in such a way that stability is guaranteed. -The first one is low pass filtered in order to obtain good performance at low frequencies and the second one is high pass filtered to benefits from its good dynamical properties. - -Here, the second sensor is replaced by a model \(G\) of the plant which is assumed to be stable and minimum phase. -This lead to the idea of virtual sensor fusion presented in \cite{verma20_virtual_sensor_fusion_high_precis_contr}. - -One may think that the control architecture shown in Figure \ref{fig:detail_control_cf_arch} is a multi-loop system, but because no non-linear saturation-type element is present in the inner-loop (containing \(k\), \(G\) and \(H_H\) which are all numerically implemented), the structure is equivalent to the architecture shown in Figure \ref{fig:detail_control_cf_arch_eq}. - -\begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/detail_control_cf_arch_eq.png} -\caption{\label{fig:detail_control_cf_arch_eq}Equivalent feedback architecture} -\end{figure} - -The dynamics of the system can be rewritten \eqref{eq:detail_control_cf_sf_cl_tf_K} with \(K = \frac{k}{1 + H_H G k}\). - -\begin{subequations}\label{eq:detail_control_cf_sf_cl_tf_K} - \begin{alignat}{5} - y &= \frac{1}{1+G^{\prime} K H_L} dy &&+ \frac{G^{\prime} K}{1+G^{\prime} K H_L} r &&- \frac{G^{\prime} K H_L}{1+G^{\prime} K H_L} n \\ - u &= \frac{-K H_L}{1+G^{\prime} K H_L} dy &&+ \frac{K}{1+G^{\prime} K H_L} r &&- \frac{K H_L}{1+G^{\prime} K H_L} n - \end{alignat} -\end{subequations} -\subsubsection{Asymptotic behavior} - -Let's take the extreme case of very high values for \(k\). -In that case \(K(s)\) converges to plant inverse multiply by the inverse of the high pass filter \eqref{eq:detail_control_cf_high_k}. +When considering the extreme case of very high values for \(k\), the effective controller \(K(s)\) converges to the inverse of the plant model multiplied by the inverse of the high-pass filter, as expressed in \eqref{eq:detail_control_cf_high_k}. \begin{equation}\label{eq:detail_control_cf_high_k} \lim_{k\to\infty} K(s) = \lim_{k\to\infty} \frac{k}{1+H_H(s) G(s) k} = \left( H_H(s) G(s) \right)^{-1} \end{equation} -If the obtained \(K\) is improper, a low pass filter can be added to have its causal realization. -Also, we want \(K\) to be stable, so \(G\) and \(H_H\) must be minimum phase transfer functions. +If the resulting \(K\) is improper, a low-pass filter with sufficiently high corner frequency can be added to ensure its causal realization. +Furthermore, for \(K\) to be stable, both \(G\) and \(H_H\) must be minimum phase transfer functions. -With this assumptions, the resulting control architecture is shown on Figure \ref{fig:detail_control_cf_arch_class}. -The only ``tuning parameters'' are the complementary filters \(H_L\) and \(H_H\). +With these assumptions, the resulting control architecture is illustrated in Figure \ref{fig:detail_control_cf_arch_class}, where the complementary filters \(H_L\) and \(H_H\) remain the only tuning parameters. +The dynamics of this closed-loop system are described by \eqref{eq:detail_control_cf_sf_cl_tf_K_inf}. \begin{figure}[htbp] \centering @@ -1222,42 +1175,40 @@ The only ``tuning parameters'' are the complementary filters \(H_L\) and \(H_H\) \caption{\label{fig:detail_control_cf_arch_class}Equivalent classical feedback control architecture} \end{figure} -The equations describing the dynamics of the closed-loop system of Figure \ref{fig:detail_control_cf_arch_class} - -\begin{subequations} +\begin{subequations}\label{eq:detail_control_cf_sf_cl_tf_K_inf} \begin{align} y &= \frac{ H_H dy + G^{\prime} G^{-1} r - G^{\prime} G^{-1} H_L n }{H_H + G^\prime G^{-1} H_L} \label{eq:detail_control_cf_cl_system_y}\\ u &= \frac{ -G^{-1} H_L dy + G^{-1} r - G^{-1} H_L n }{H_H + G^\prime G^{-1} H_L} \label{eq:detail_control_cf_cl_system_u} \end{align} \end{subequations} -At frequencies where the model is accurate: \(G^{-1} G^{\prime} \approx 1\), \(H_H + G^\prime G^{-1} H_L \approx H_H + H_L = 1\) and the closed loop transfer functions are described by \eqref{eq:detail_control_cf_sf_cl_tf_K_inf}. +At frequencies where the model accurately represents the physical plant (\(G^{-1} G^{\prime} \approx 1\)), the denominator simplifies to \(H_H + G^\prime G^{-1} H_L \approx H_H + H_L = 1\), and the closed-loop transfer functions are described by \eqref{eq:detail_control_cf_sf_cl_tf_K_inf_perfect}. -\begin{subequations}\label{eq:detail_control_cf_sf_cl_tf_K_inf} +\begin{subequations}\label{eq:detail_control_cf_sf_cl_tf_K_inf_perfect} \begin{alignat}{5} y &= H_H dy &&+ r &&- H_L n \label{eq:detail_control_cf_cl_performance_y} \\ u &= -G^{-1} H_L dy &&+ G^{-1} r &&- G^{-1} H_L n \label{eq:detail_control_cf_cl_performance_u} \end{alignat} \end{subequations} -The obtained sensitivity transfer function equals to the high pass filter \(S = \frac{y}{dy} = H_H\) and the transmissibility transfer function equals to the low pass filter \(T = \frac{y}{n} = H_L\). - -Assuming that we have a good model of the plant, we have then that the closed-loop behavior of the system converges to the designed complementary filters. +The sensitivity transfer function equals the high-pass filter \(S = \frac{y}{dy} = H_H\), and the complementary sensitivity transfer function equals the low-pass filter \(T = \frac{y}{n} = H_L\). +Hence, when the plant model closely approximates the actual system, the closed-loop behavior becomes fully determined by the designed complementary filters, enabling direct translation of performance requirements into filter design. \section{Translating the performance requirements into the shapes of the complementary filters} \label{ssec:detail_control_cf_trans_perf} -The required performance specifications in a feedback system can usually be translated into requirements on the upper bounds of \(|S(j\omega)|\) and \(|T(j\omega)|\) \cite{bibel92_guidel_h}. -The process of designing a controller \(K(s)\) in order to obtain the desired shapes of \(|S(j\omega)|\) and \(|T(j\omega)|\) is called closed-loop shaping. +Performance specifications in feedback systems can be expressed as upper bounds on the magnitudes of closed-loop transfer functions such that the sensitivity \(|S(j\omega)|\) and complementary sensitivity \(|T(j\omega)|\) transfer functions \cite{bibel92_guidel_h}. +The design of a controller \(K(s)\) to achieve desired shapes of these closed-loop transfer functions is known as closed-loop shaping. -The equations \eqref{eq:detail_control_cf_cl_system_y} and \eqref{eq:detail_control_cf_cl_system_u} describing the dynamics of the studied feedback architecture are not written in terms of the controller \(K(s)\) but in terms of the complementary filters \(H_L(s)\) and \(H_H(s)\). -The typical specifications are then translated into the desired shapes of the complementary filters. -\subsubsection{Nominal Stability (NS)} -The closed-loop system is stable if all its elements are stable (\(K\), \(G^\prime\) and \(H_L\)) and if the sensitivity function (\(S = \frac{1}{1 + G^\prime K H_L}\)) is stable. -For the nominal system (\(G^\prime = G\)), the sensitivity transfer function is equal to the high pass filter: \(S(s) = H_H(s)\). +In the proposed control architecture, the closed-loop transfer functions \eqref{eq:detail_control_cf_sf_cl_tf_K_inf} are expressed in terms of the complementary filters \(H_L(s)\) and \(H_H(s)\) rather than directly through the controller \(K(s)\). +Therefore, performance requirements must be translated into constraints on the shapes of these complementary filters. +\paragraph{Nominal Stability (NS)} +A closed-loop system is stable when all its elements (here \(K\), \(G^\prime\), and \(H_L\)) are stable and the sensitivity function \(S = \frac{1}{1 + G^\prime K H_L}\) is stable. +For the nominal system (\(G^\prime = G\)), the sensitivity transfer function equals the high-pass filter: \(S(s) = H_H(s)\). -Nominal stability is then guaranteed if \(H_L\), \(H_H\) and \(G\) are stable and if \(G\) and \(H_H\) are minimum phase (to have \(K\) stable). -Therefore stable and minimum phase complementary filters need to be used. -\subsubsection{Nominal Performance (NP)} -Two performance weights \(w_H\) and \(w_L\) are here defined in such a way that performance specifications are satisfied is \eqref{eq:detail_control_cf_weights} is satisfied. +Nominal stability is therefore guaranteed when \(H_L\), \(H_H\), and \(G\) are stable, and both \(G\) and \(H_H\) are minimum phase (ensuring \(K\) is stable). +Consequently, stable and minimum phase complementary filters must be employed. +\paragraph{Nominal Performance (NP)} + +Performance specifications can be formalized using weighting functions \(w_H\) and \(w_L\), where performance is achieved when \eqref{eq:detail_control_cf_weights} is satisfied. \begin{subequations}\label{eq:detail_control_cf_weights} \begin{align} @@ -1266,62 +1217,31 @@ Two performance weights \(w_H\) and \(w_L\) are here defined in such a way that \end{align} \end{subequations} -For the nominal system, we have \(S = H_H\) and \(T = H_L\), and then nominal performance is ensured by requiring \eqref{eq:detail_control_cf_nominal_performance}. +For the nominal system, where \(S = H_H\) and \(T = H_L\), nominal performance is ensured by satisfying \eqref{eq:detail_control_cf_nominal_performance}. -\begin{empheq}[box=\fbox,left=\text{NP} \Longleftrightarrow \empheqlbrace]{align} \label{eq:detail_control_cf_nominal_performance} - &|w_H(j\omega) H_H(j\omega)| \le 1 \quad \forall\omega \label{eq:detail_control_cf_nominal_perf_hh}\\ - &|w_L(j\omega) H_L(j\omega)| \le 1 \quad \forall\omega \label{eq:detail_control_cf_nominal_perf_hl} -\end{empheq} - -The translation of typical performance requirements on the shapes of the complementary filters is discussed below: -\begin{itemize} -\item for disturbance rejections, make \(|S| = |H_H|\) small -\item for noise attenuation, make \(|T| = |H_L|\) small -\item closed-loop bandwidth can be limited by requiring that \(|T|\) is less than \(\frac{1}{\sqrt{2}}\) above the maximum wanted bandwidth -\end{itemize} - -Therefore, by properly choosing the shape of the complementary filters, the nominal performance specifications can be addressed. - -Classical stability margins (gain and phase margins) can also be linked to the maximum amplitude of the sensitivity transfer function. -\begin{itemize} -\item[{$\square$}] Add reference -\end{itemize} - -Typically, having \(|S|_{\infty} \le 2\) guarantees a gain margin of at least \(2\) and a phase margin of at least \(\SI{29}{\degree}\). -\subsubsection{Response time to change of reference signal} -For the nominal system, the model is accurate and the transfer function from reference signal \(r\) to output \(y\) is \(1\) \eqref{eq:detail_control_cf_cl_performance_y} and does not depends of the complementary filters. - -However, one can add a pre-filter as shown in Figure \ref{fig:detail_control_cf_arch_class_prefilter}. - -\begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/detail_control_cf_arch_class_prefilter.png} -\caption{\label{fig:detail_control_cf_arch_class_prefilter}Prefilter used to limit input usage} -\end{figure} - -The transfer function from \(y\) to \(r\) becomes \(\frac{y}{r} = K_r\) and \(K_r\) can we chosen to obtain acceptable response to change of the reference signal. -Typically, \(K_r\) is a low pass filter of the form -\begin{equation} - K_r(s) = \frac{1}{1 + \tau s} +\begin{equation}\label{eq:detail_control_cf_nominal_performance} +\Aboxed{\text{NP} \Longleftrightarrow {\begin{cases*} + |w_H(j\omega) H_H(j\omega)| \le 1 & \forall\omega \\ + |w_L(j\omega) H_L(j\omega)| \le 1 & \forall\omega + \end{cases*}}} \end{equation} -with \(\tau\) corresponding to the desired response time. -\subsubsection{Input usage} -Input usage due to disturbances \(d_y\) and measurement noise \(n\) is determined by \(\big|\frac{u}{d_y}\big| = \big|\frac{u}{n}\big| = \big|G^{-1}H_L\big|\). -Thus it can be limited by setting an upper bound on \(|H_L|\). +Typical performance requirements can therefore be translated into constraints on the complementary filters. +For disturbance rejection, the magnitude of the sensitivity function \(|S(j\omega)| = |H_H(j\omega)|\) should be minimized, particularly at low frequencies where disturbances are usually most prominent. +Similarly, for noise attenuation, the magnitude of the complementary sensitivity function \(|T(j\omega)| = |H_L(j\omega)|\) should be minimized, especially at high frequencies where measurement noise typically dominates. +The closed-loop bandwidth can be effectively limited by ensuring that \(|T(j\omega)|\) remains below \(\frac{1}{\sqrt{2}}\) at frequencies above the maximum desired bandwidth. +By carefully selecting the shapes of these complementary filters, nominal performance specifications can be directly addressed in an intuitive manner. -Input usage due to reference signal \(r\) is determined by \(\big|\frac{u}{r}\big| = \big|G^{-1} K_r\big|\) when using a pre-filter (Figure \ref{fig:detail_control_cf_arch_class_prefilter}) and \(\big|\frac{u}{r}\big| = \big|G^{-1}\big|\) otherwise. +Classical stability margins (gain and phase margins) are also related to the maximum amplitude of the sensitivity transfer function. +Typically, maintaining \(|S|_{\infty} \le 2\) ensures a gain margin of at least 2 and a phase margin of at least \(\SI{29}{\degree}\). +\paragraph{Robust Stability (RS)} -Proper choice of \(|K_r|\) is then useful to limit input usage due to change of reference signal. -\subsubsection{Robust Stability (RS)} +Robust stability refers to a control system's ability to maintain stability despite discrepancies between the actual system \(G^\prime\) and the model \(G\) used for controller design. +These discrepancies may arise from unmodeled dynamics or nonlinearities. -Robustness stability represents the ability of the control system to remain stable even though there are differences between the actual system \(G^\prime\) and the model \(G\) that was used for the design of the controller. -These differences can have various origins such as unmodelled dynamics or non-linearities. - -To represent the differences between the model and the actual system, the input multiplicative uncertainty as represented in Figure \ref{fig:detail_control_cf_input_uncertainty} is used. - -Then, the set of possible plant is described by \eqref{eq:detail_control_cf_multiplicative_uncertainty}. -\(w_I\) should be chosen such that all possible plants \(G^\prime\) are contained in the set \(\Pi_i\). +To represent these model-plant differences, input multiplicative uncertainty as illustrated in Figure \ref{fig:detail_control_cf_input_uncertainty} is employed. +The set of possible plants \(\Pi_i\) is described by \eqref{eq:detail_control_cf_multiplicative_uncertainty}. +With the weighting function \(w_I\) selected such that all possible plants \(G^\prime\) are contained within the set \(\Pi_i\). \begin{equation}\label{eq:detail_control_cf_multiplicative_uncertainty} \Pi_i: \quad G^\prime(s) = G(s)\big(1 + w_I(s)\Delta_I(s)\big); \quad |\Delta_I(j\omega)| \le 1 \ \forall\omega @@ -1343,45 +1263,43 @@ Then, the set of possible plant is described by \eqref{eq:detail_control_cf_mult \caption{\label{fig:detail_control_cf_input_uncertainty_nyquist}Input multiplicative uncertainty to model the differences between the model and the physical plant (\subref{fig:detail_control_cf_input_uncertainty}). Effect of this uncertainty is displayed on the Nyquist plot (\subref{fig:detail_control_cf_nyquist_uncertainty})} \end{figure} -Considering input multiplicative uncertainty, the robust stability property can be derived graphically from the Nyquist plot (Figure \ref{fig:detail_control_cf_nyquist_uncertainty}), and \eqref{eq:detail_control_cf_robust_stability_graphically} is obtained, as proposed in \cite[, chapt. 7.5.1]{skogestad07_multiv_feedb_contr}. - +When considering input multiplicative uncertainty, robust stability can be derived graphically from the Nyquist plot (illustrated in Figure \ref{fig:detail_control_cf_nyquist_uncertainty}), yielding to \eqref{eq:detail_control_cf_robust_stability_graphically}, as demonstrated in \cite[, chapt. 7.5.1]{skogestad07_multiv_feedb_contr}. \begin{equation}\label{eq:detail_control_cf_robust_stability_graphically} \text{RS} \Longleftrightarrow \left|w_I(j\omega) L(j\omega) \right| \le \left| 1 + L(j\omega) \right| \quad \forall\omega \end{equation} -After some algebraic manipulations, robust stability is then guaranteed by having the low pass filter \(H_L\) satisfying \eqref{eq:detail_control_cf_condition_robust_stability}. +After algebraic manipulation, robust stability is guaranteed when the low-pass complementary filter \(H_L\) satisfies \eqref{eq:detail_control_cf_condition_robust_stability}. \begin{equation}\label{eq:detail_control_cf_condition_robust_stability} \boxed{\text{RS} \Longleftrightarrow |w_I(j\omega) H_L(j\omega)| \le 1 \quad \forall \omega} \end{equation} -\subsubsection{Robust Performance (RP)} -Robust performance is a property for a controlled system to have its performance guaranteed even though the dynamics of the plant is changing within specified bounds. +\paragraph{Robust Performance (RP)} -For robust performance, we then require to have the performance condition valid for all possible plants in the defined uncertainty set \eqref{eq:detail_control_cf_robust_perf_S}. +Robust performance ensures that performance specifications \eqref{eq:detail_control_cf_weights} are met even as plant dynamics varies within specified bounds. +This requires the performance condition to be valid for all possible plants in the defined uncertainty set \(\Pi_i\): \begin{equation}\label{eq:detail_control_cf_robust_perf_S} \text{RP} \Longleftrightarrow |w_H(j\omega) S(j\omega)| \le 1 \quad \forall G^\prime \in \Pi_I, \ \forall\omega \end{equation} -Let's transform condition \eqref{eq:detail_control_cf_robust_perf_S} into a condition on the complementary filters \eqref{eq:detail_control_cf_robust_performance}. +Transforming this condition into constraints on the complementary filters yields: \begin{equation}\label{eq:detail_control_cf_robust_performance} \boxed{\text{RP} \Longleftrightarrow | w_H(j\omega) H_H(j\omega) | + | w_I(j\omega) H_L(j\omega) | \le 1, \ \forall\omega} \end{equation} -Obtained condition for robust performance combines both the NP and RS conditions. -If both NP and RS conditions are fulfilled, the robust performance will be fulfilled with a factor 2 \cite[, chapt. 7.6]{skogestad07_multiv_feedb_contr}. -Therefore, for SISO systems, robust stability and nominal performance are usually sufficient. +The robust performance condition effectively combines both nominal performance \eqref{eq:detail_control_cf_nominal_performance} and robust stability conditions \eqref{eq:detail_control_cf_condition_robust_stability}. +If both NP and RS conditions are satisfied, robust performance will be achieved within a factor of 2 \cite[, chapt. 7.6]{skogestad07_multiv_feedb_contr}. +Therefore, for SISO systems, ensuring robust stability and nominal performance is typically sufficient. \section{Complementary filter design} \label{ssec:detail_control_cf_analytical_complementary_filters} -As was explained in Section \ref{sec:detail_control_sensor}, complementary filters can easily be shaped with the standard \(\mathcal{H}_{\infty}\) synthesis. -As requirements can usually be expressed as upper bounds on the complementary filters' magnitude, this method is very well suited. +As proposed in Section \ref{sec:detail_control_sensor}, complementary filters can be shaped using standard \(\mathcal{H}_{\infty}\) synthesis techniques. +This approach is particularly well-suited since performance requirements were expressed as upper bounds on the magnitude of the complementary filters (Section \ref{ssec:detail_control_cf_trans_perf}). -However, analytical formulas for complementary filters may also be used. - -For some applications, first order complementary filters \eqref{eq:detail_control_cf_1st_order} are sufficient. +Alternatively, analytical formulas for complementary filters may be employed. +For some applications, first-order complementary filters as shown in Equation \eqref{eq:detail_control_cf_1st_order} are sufficient. \begin{subequations}\label{eq:detail_control_cf_1st_order} \begin{align} @@ -1390,8 +1308,7 @@ For some applications, first order complementary filters \eqref{eq:detail_contro \end{align} \end{subequations} -They can be expressed analytically in the digital domain using the Bilinear transformation. -In such case, digital filters \eqref{eq:detail_control_cf_1st_order_z} are obtained. +These filters can be transformed into the digital domain using the Bilinear transformation, resulting in the digital filter representations shown in Equation \eqref{eq:detail_control_cf_1st_order_z}. \begin{subequations}\label{eq:detail_control_cf_1st_order_z} \begin{align} @@ -1400,9 +1317,8 @@ In such case, digital filters \eqref{eq:detail_control_cf_1st_order_z} are obtai \end{align} \end{subequations} -The main advantage of having analytical formulas for the complementary filters is that the parameter \(\omega_0\) may be modified in real time. -This is illustrated in Figure \ref{fig:detail_control_cf_arch_tunable_params}. -Therefore, the performance and robustness of different control bandwidth can be tested very quickly. +A significant advantage of using analytical formulas for complementary filters is that key parameters such as \(\omega_0\) can be modified in real-time, as illustrated in Figure \ref{fig:detail_control_cf_arch_tunable_params}. +This real-time tunability allows rapid testing of different control bandwidths to evaluate performance and robustness characteristics. \begin{figure}[htbp] \centering @@ -1410,8 +1326,9 @@ Therefore, the performance and robustness of different control bandwidth can be \caption{\label{fig:detail_control_cf_arch_tunable_params}Implemented digital complementary filters with parameter \(\omega_0\) that can be changed in real time} \end{figure} -For many applications, slope of \(+2\) is wanted at low frequency for the sensitivity transfer function (to follow ramp inputs for instance), and a slope of \(-2\) for the complementary sensitivity transfer function. -In that case, complementary filters shown in equation \eqref{eq:detail_control_cf_2nd_order} are proposed. +For many practical applications, first order complementary filters are not sufficient. +Specifically, a slope of \(+2\) at low frequencies for the sensitivity transfer function (enabling accurate tracking of ramp inputs) and a slope of \(-2\) for the complementary sensitivity transfer function are often desired. +For these cases, the second-order complementary filters presented in Equation \eqref{eq:detail_control_cf_2nd_order} are proposed. \begin{subequations}\label{eq:detail_control_cf_2nd_order} \begin{align} @@ -1420,8 +1337,12 @@ In that case, complementary filters shown in equation \eqref{eq:detail_control_c \end{align} \end{subequations} -The effect of \(\alpha\) and \(\omega_0\) and the obtained shape of the complementary filters is shown in Figure \ref{fig:detail_control_cf_analytical_effect}. -Such filters can also be implemented in the digital domain with analytical formulas, such as \(\alpha\) and \(\omega_0\) can be changed in real time. +The influence of parameters \(\alpha\) and \(\omega_0\) on the frequency response of these complementary filters is illustrated in Figure \ref{fig:detail_control_cf_analytical_effect}. +The parameter \(\alpha\) primarily affects the damping characteristics near the crossover frequency, while \(\omega_0\) determines the frequency at which the transition between high-pass and low-pass behavior occurs. +These filters can also be implemented in the digital domain with analytical formulas, preserving the ability to adjust \(\alpha\) and \(\omega_0\) in real-time. + +The presented analytical formulations offer an attractive balance between design simplicity and performance. +This capability to tune parameters in real-time is particularly valuable during commissioning of the controller. \begin{figure}[htbp] \begin{subfigure}{0.48\textwidth} @@ -1440,46 +1361,44 @@ Such filters can also be implemented in the digital domain with analytical formu \end{figure} \section{Numerical Example} \label{ssec:detail_control_cf_simulations} -\subsubsection{Procedure} +To systematically apply the proposed control technique, the following procedure is recommended: -In order to apply this control technique, we propose the following procedure: \begin{enumerate} -\item Identify the plant to be controlled in order to obtain the plant model \(G\) -\item Design the weighting function \(w_I\) such that all possible plants \(G^\prime\) are contained in the set \(\Pi_i\) -\item Translate the performance requirements into upper bounds on the complementary filters (as explained in Section \ref{ssec:detail_control_cf_trans_perf}) -\item Design the weighting functions \(w_H\) and \(w_L\) and generate the complementary filters using \(\mathcal{H}_{\infty}\text{-synthesis}\) (as was explained in Section \ref{ssec:detail_control_sensor_hinf_method}). -If the synthesis fails to give filters satisfying the upper bounds previously defined, either the requirements have to be reworked or a better model \(G\) that will permits to have a smaller \(w_I\) should be obtained. -For simple cases, analytical formulas of complementary filters given in Section \ref{ssec:detail_control_cf_analytical_complementary_filters} can be used. -\item If \(K(s) = \left( G(s) H_H(s) \right)^{-1}\) is not proper, low pass filters should be added high a high corner frequency +\item Identify the plant to be controlled to obtain the plant model \(G\). +\item Design the weighting function \(w_I\) such that all possible plants \(G^\prime\) are contained in the uncertainty set \(\Pi_i\). +\item Translate performance requirements into upper bounds on the complementary filters as explained in Section \ref{ssec:detail_control_cf_trans_perf}. +\item Design the weighting functions \(w_H\) and \(w_L\) and generate the complementary filters using \(\mathcal{H}_{\infty}\text{-synthesis}\) as described in Section \ref{ssec:detail_control_sensor_hinf_method}. +If the synthesis fails to produce filters satisfying the defined upper bounds, either revise the requirements or develop a more accurate model \(G\) that will allow for a smaller \(w_I\). +For simpler cases, the analytical formulas for complementary filters presented in Section \ref{ssec:detail_control_cf_analytical_complementary_filters} can be employed. +\item If \(K(s) = H_H^{-1}(s) G^{-1}(s)\) is not proper, add low-pass filters with sufficiently high corner frequencies to ensure realizability. \end{enumerate} -\subsubsection{Plant} +\paragraph{Plant} -\begin{itemize} -\item To test this control architecture, a simple test model is used (Figure \ref{fig:detail_control_cf_test_model}). -\item This model is quite similar to many positioning stages for Synchrotrons. -A payload (i.e. sample) with mass \(m = 5\) is positioned on top of the stage. -The goal is to position the sample with respect to the x-ray. -It is supposed that the relative position \(y\) between the payload an the x-ray is measured (typically the relative position between the focusing optics and the sample is performed). -There are some disturbance forces acting on the positioning stability, such as stage vibration \(d_w\) and direct forces applied on the sample \(d_F\) (for instance cable forces). -The positioning stage itself has a stiffness \(k\), an internal damping \(c\) and the force \(F\) can be controlled. -\end{itemize} +To evaluate this control architecture, a simple test model representative of many synchrotron positioning stages is utilized (Figure \ref{fig:detail_control_cf_test_model}). +In this model, a payload with mass \(m\) is positioned on top of a stage. +The objective is to accurately position the sample relative to the X-ray beam. -The model of the plant \(G(s)\) from actuator force \(F\) to displacement \(y\) is then +The relative position \(y\) between the payload and the X-ray is measured, which typically involves measuring the relative position between the focusing optics and the sample. +Various disturbance forces affect positioning stability, including stage vibrations \(d_w\) and direct forces applied to the sample \(d_F\) (such as cable forces). +The positioning stage itself is characterized by stiffness \(k\), internal damping \(c\), and a controllable force \(F\). + +The model of the plant \(G(s)\) from actuator force \(F\) to displacement \(y\) is described by Equation \eqref{eq:detail_control_cf_test_plant_tf}. \begin{equation}\label{eq:detail_control_cf_test_plant_tf} G(s) = \frac{1}{m s^2 + c s + k} \end{equation} -The values for the parameters of the models are \(m = \SI{20}{\kg}\), \(k = 1\si{\N/\mu\m}\) and \(c = 10^2\si{\N\per(\m\per\s)}\). +The parameter values are set to \(m = \SI{20}{\kg}\), \(k = 1\si{\N/\mu\m}\), and \(c = 10^2\si{\N\per(\m\per\s)}\). -The plant dynamics has some uncertainty related to the limited support compliance, unmodeled flexible dynamics, dynamics of the payload, etc. -A multiplicative input uncertainty weight \(w_I(s)\) is used to specify the amount of uncertainty as a function of frequency \eqref{eq:detail_control_cf_test_plant_uncertainty}. +The plant dynamics include uncertainties related to limited support compliance, unmodeled flexible dynamics, payload dynamics, and other factors. +These uncertainties are represented using a multiplicative input uncertainty weight \eqref{eq:detail_control_cf_test_plant_uncertainty}., which specifies the magnitude of uncertainty as a function of frequency: \begin{equation}\label{eq:detail_control_cf_test_plant_uncertainty} w_I(s) = 10 \cdot \frac{(s+100)^2}{(s+1000)^2} \end{equation} -The nominal plant dynamics as well as the entire set of possible plants \(\Pi_i\) are shown in Figure \ref{fig:detail_control_cf_bode_plot_mech_sys}. +Figure \ref{fig:detail_control_cf_bode_plot_mech_sys} illustrates both the nominal plant dynamics and the complete set of possible plants \(\Pi_i\) encompassed by the uncertainty model. + \begin{figure}[htbp] \begin{subfigure}{0.3\textwidth} \begin{center} @@ -1495,24 +1414,24 @@ The nominal plant dynamics as well as the entire set of possible plants \(\Pi_i\ \end{subfigure} \caption{\label{fig:detail_control_cf_test_model_plant}Schematic of the test system (\subref{fig:detail_control_cf_test_model}). Bode plot of the transfer function \(G(s)\) from \(F\) to \(y\) and the associated uncertainty set (\subref{fig:detail_control_cf_bode_plot_mech_sys}).} \end{figure} -\subsubsection{Requirements and choice of complementary filters} +\paragraph{Requirements and choice of complementary filters} -As explained in Section \ref{ssec:detail_control_cf_trans_perf}, nominal performance requirements can be expressed as upper bounds on the complementary filter shapes. +As discussed in Section \ref{ssec:detail_control_cf_trans_perf}, nominal performance requirements can be expressed as upper bounds on the shapes of the complementary filters. +For this example, the requirements are: \begin{itemize} -\item Be able to follow ramp inputs (i.e. constant velocity scans) with no steady-state tracking error. -This requires to have a \(+2\) slope at low frequency for \(|S(j\omega)|\) -\item Filter the measurement noise above 300Hz as the sensor noise is high (say a filtering factor of 100 is needed above that frequency). -\item As much disturbance rejection as possible. +\item to track ramp inputs (constant velocity scans) with zero steady-state error, which necessitates a \(+2\) slope at low frequencies for the magnitude of the sensitivity function \(|S(j\omega)|\) +\item filtering of measurement noise above \(\SI{300}{Hz}\), where sensor noise is significant (requiring a filtering factor of approximately 100 above this frequency) +\item maximizing disturbance rejection \end{itemize} -The second requirement is to have robust stability meaning that the plant should remain stable while considering the dynamical uncertainties modelled with \(w_I\) -\begin{itemize} -\item The low-pass complementary filter magnitude \(|H_L(j\omega)|\) should be bellow the inverse magnitude of the uncertainty weight magnitude \(|w_I(j\omega)|\) \eqref{eq:detail_control_cf_condition_robust_stability} -\end{itemize} +Additionally, robust stability must be ensured, requiring the closed-loop system to remain stable despite the dynamic uncertainties modeled by \(w_I\). +This condition is satisfied when the magnitude of the low-pass complementary filter \(|H_L(j\omega)|\) remains below the inverse of the uncertainty weight magnitude \(|w_I(j\omega)|\), as expressed in Equation \eqref{eq:detail_control_cf_condition_robust_stability}. -Robust performance is ensured by simultaneous NP and RS. +Robust performance is achieved when both nominal performance and robust stability conditions are simultaneously satisfied. -All the requirements on \(H_L\) and \(H_H\) are represented on Figure \ref{fig:detail_control_cf_specs_S_T}. +All requirements imposed on \(H_L\) and \(H_H\) are visualized in Figure \ref{fig:detail_control_cf_specs_S_T}. +While \(\mathcal{H}_\infty\) synthesis could be employed to design the complementary filters, analytical formulas were used for this relatively simple example. +Specifically, the second-order complementary filters from Equation \eqref{eq:detail_control_cf_2nd_order} were selected, providing the desired \(+2\) and \(-2\) slopes, with parameters \(\alpha = 1\) and \(\omega_0 = 2\pi \cdot 20\) Hz. \begin{figure}[htbp] \begin{subfigure}{0.48\textwidth} @@ -1529,31 +1448,29 @@ All the requirements on \(H_L\) and \(H_H\) are represented on Figure \ref{fig:d \end{subfigure} \caption{\label{fig:detail_control_cf_specs_S_T_obtained_filters}Performance requirement and complementary filters used (\subref{fig:detail_control_cf_specs_S_T}). Obtained controller from the complementary filters and the plant inverse is shown in (\subref{fig:detail_control_cf_bode_Kfb}).} \end{figure} +\paragraph{Controller analysis} -While the \(\mathcal{H}_\infty\) synthesis of complementary filters could be used, for this simple examples with simple requirements, analytical formulas of complementary filters were used. - -For this simple example, analytical formulas proposed to have +2 and -2 slopes \eqref{eq:detail_control_cf_2nd_order} were used. -\(\alpha = 1\) and \(\omega_0 = 2\pi \cdot 20\) were used. -\subsubsection{Controller analysis} - -The controller to be implemented is \(K(s) = \tilde{G}^{-1}(s) H_H^{-1}(s)\), with \(\tilde{G}^{-1}(s)\) is the plant inverse which needs to be stable and proper. -Therefore, some low pass filters are added at high frequency \eqref{eq:detail_control_cf_test_plant_inverse}. +The controller to be implemented takes the form \(K(s) = \tilde{G}^{-1}(s) H_H^{-1}(s)\), where \(\tilde{G}^{-1}(s)\) represents the plant inverse, which must be both stable and proper. +To ensure properness, low-pass filters with high corner frequencies are added as shown in Equation \eqref{eq:detail_control_cf_test_plant_inverse}. \begin{equation}\label{eq:detail_control_cf_test_plant_inverse} \tilde{G}^{-1}(s) = \frac{m s^2 + c s + k}{1 + \frac{s}{2\pi \cdot 1000} + \left( \frac{s}{2\pi \cdot 1000} \right)^2} \end{equation} -The obtained bode plot of the controller times the complementary high pass filter is shown in Figure \ref{fig:detail_control_cf_bode_Kfb}. +The Bode plot of the controller multiplied by the complementary low-pass filter, \(K(s) \cdot H_L(s)\), is presented in Figure \ref{fig:detail_control_cf_bode_Kfb}. +The frequency response reveals several important characteristics: \begin{itemize} -\item two integrators are present at low frequency to be able to follow ramp inputs -\item a notch is located at the plant resonance (inverse) -\item a lead is added near the bandwidth around \(\SI{20}{Hz}\) +\item The presence of two integrators at low frequencies, enabling accurate tracking of ramp inputs +\item A notch at the plant resonance frequency (arising from the plant inverse) +\item A lead component near the control bandwidth of approximately 20 Hz, enhancing stability margins \end{itemize} -\subsubsection{Robustness and Performance analysis} -The robust stability can be access on the Nyquist plot (Figure \ref{fig:detail_control_cf_nyquist_robustness}). -Even when considering all the possible plants in the uncertainty set, the nyquist plot stays away from the unstable point, indicating good robustness. +\paragraph{Robustness and Performance analysis} -The performance is evaluated by looking at the closed-loop sensitivity and complementary sensitivity transfer functions (Figure \ref{fig:detail_control_cf_robust_perf}). +Robust stability is assessed using the Nyquist plot shown in Figure \ref{fig:detail_control_cf_nyquist_robustness}. +Even when considering all possible plants within the uncertainty set, the Nyquist plot remains sufficiently distant from the critical point \((-1,0)\), indicating robust stability with adequate margins. + +Performance is evaluated by examining the closed-loop sensitivity and complementary sensitivity transfer functions, as illustrated in Figure \ref{fig:detail_control_cf_robust_perf}. +It is shown that the sensitivity transfer function achieves the desired \(+2\) slope at low frequencies and that the complementary sensitivity transfer function nominally provides the wanted noise filtering. \begin{figure}[htbp] \begin{subfigure}{0.49\textwidth} @@ -1571,24 +1488,18 @@ The performance is evaluated by looking at the closed-loop sensitivity and compl \caption{\label{fig:detail_control_cf_simulation_results}Validation of Robust stability with the Nyquist plot (\subref{fig:detail_control_cf_nyquist_robustness}) and validation of the nominal and robust performance with the magnitude of the closed-loop transfer functions (\subref{fig:detail_control_cf_robust_perf})} \end{figure} \section*{Conclusion} -\begin{itemize} -\item[{$\square$}] Say that the presented control architecture in this section -No ambition to overcome fundamental limitations of current architectures. -Very similar to Internal Model Control \cite{saxena12_advan_inter_model_contr_techn} -Had no time to proceed to an extensive literature review to find similar control architecture and to compare them. -Whether the propose architecture has advantages compared to already excising architecture in the literature is not clear. -\item[{$\square$}] The control architecture was presented for a SISO system, but can be applied to MIMO if decoupling is sufficient. -It will be experimentally demonstrated with the NASS. -\item[{$\square$}] Discuss how useful it is as the bandwidth can be changed in real time with analytical formulas of second order complementary filters. -Maybe make a section about that. -Maybe give analytical formulas of second order complementary filters in the digital domain? -\item[{$\square$}] Disadvantages: -\begin{itemize} -\item not optimal -\item computationally intensive? -\item lead to inverse control which may not be wanted in many cases. Add reference. -\end{itemize} -\end{itemize} +In this section, a control architecture in which complementary filters are used for closed-loop shaping has been presented. +This approach differs from traditional open-loop shaping in that no controller is manually designed; rather, appropriate complementary filters are selected to achieve the desired closed-loop behavior. +The method shares conceptual similarities with mixed-sensitivity \(\mathcal{H}_{\infty}\text{-synthesis}\), as both approaches aim to shape closed-loop transfer functions, but with notable distinctions in implementation and complexity. + +While \(\mathcal{H}_{\infty}\text{-synthesis}\) synthesis offers greater flexibility and can be readily generalized to MIMO plants, the presented approach provides a simpler alternative that requires minimal design effort. +Implementation only necessitates extracting a model of the plant and selecting appropriate analytical complementary filters, making it particularly interesting for applications where simplicity and intuitive parameter tuning are valued. + +Due to time constraints, an extensive literature review comparing this approach with similar existing architectures, such as Internal Model Control \cite{saxena12_advan_inter_model_contr_techn}, was not conducted. +Consequently, it remains unclear whether the proposed architecture offers significant advantages over existing methods in the literature. + +The control architecture has been presented for SISO systems, but can be applied to MIMO systems when sufficient decoupling is achieved. +It will be experimentally validated with the NASS during the experimental phase. \chapter*{Conclusion} \label{sec:detail_control_conclusion} \printbibliography[heading=bibintoc,title={Bibliography}]