# Mu synthesis with RobustAndOptimalControl?

**URL:** <https://discourse.julialang.org/t/mu-synthesis-with-robustandoptimalcontrol/94427>\
**Category:** Modelling & Simulations\
**Tags:** controlsystems\
**Created:** [February 10, 2023, 7:33pm UTC](https://discourse.julialang.org/t/mu-synthesis-with-robustandoptimalcontrol/94427 "2023-02-10T19:33:42Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [February 10, 2023, 7:33pm UTC](https://discourse.julialang.org/t/mu-synthesis-with-robustandoptimalcontrol/94427/1 "2023-02-10T19:33:42Z")

</div>

µ synthesis is a generalization of the controller design done using H infinity control. Is there a way to do µ synthesis using the [RobustAndOptimalControl](https://juliacontrol.github.io/RobustAndOptimalControl.jl/dev/) package?

---

<div class="post-metadata">

**Author:** ![baggepinnen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/baggepinnen/32/693_2.png) [@baggepinnen](https://discourse.julialang.org/u/baggepinnen)\
**Post date:** [February 10, 2023, 7:43pm UTC](https://discourse.julialang.org/t/mu-synthesis-with-robustandoptimalcontrol/94427/2 "2023-02-10T19:43:03Z")

</div>

Currently not, no. We support limited forms of mu analysis, in particular with complex structured uncertainties.

Mu synthesis using the DK iteration appears a bit finnecky to implement, in particular the fitting of the scaling functions. If anyone is aware of another approach I’d be interested in learning!

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [February 10, 2023, 7:45pm UTC](https://discourse.julialang.org/t/mu-synthesis-with-robustandoptimalcontrol/94427/3 "2023-02-10T19:45:29Z")

</div>

> [@baggepinnen](#):
>
> finnecky to implement

Not so clear to me what you mean. Do you mean difficult?

---

<div class="post-metadata">

**Author:** ![baggepinnen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/baggepinnen/32/693_2.png) [@baggepinnen](https://discourse.julialang.org/u/baggepinnen)\
**Post date:** [February 10, 2023, 7:47pm UTC](https://discourse.julialang.org/t/mu-synthesis-with-robustandoptimalcontrol/94427/4 "2023-02-10T19:47:10Z")

</div>

Yeah, easy in theory, but likely to require a lot of engineering and tweaking to get to work well.

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [February 10, 2023, 7:49pm UTC](https://discourse.julialang.org/t/mu-synthesis-with-robustandoptimalcontrol/94427/5 "2023-02-10T19:49:33Z")

</div>

There are some papers that describe how to do it…  
[https://www.researchgate.net/publication/286976986\_D-K\_iteration\_algorithm\_for\_m-synthesis](https://www.researchgate.net/publication/286976986_D-K_iteration_algorithm_for_m-synthesis)

> **[061.pdf](https://folk.ntnu.no/skoge/prost/proceedings/ecc03/pdfs/061.pdf)**
>
> 409.81 KB

[https://vbn.aau.dk/ws/portalfiles/portal/140575/fulltext](https://vbn.aau.dk/ws/portalfiles/portal/140575/fulltext)

---

<div class="post-metadata">

**Author:** ![baggepinnen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/baggepinnen/32/693_2.png) [@baggepinnen](https://discourse.julialang.org/u/baggepinnen)\
**Post date:** [February 10, 2023, 7:51pm UTC](https://discourse.julialang.org/t/mu-synthesis-with-robustandoptimalcontrol/94427/6 "2023-02-10T19:51:37Z")

</div>

I’m well aware of these papers, but I still don’t find the method particularly attractive. I’d be happy for you to prove me wrong 😊

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [February 10, 2023, 7:57pm UTC](https://discourse.julialang.org/t/mu-synthesis-with-robustandoptimalcontrol/94427/7 "2023-02-10T19:57:49Z")

</div>

My collegues in Delft (NL) seam to like it a lot: [https://www.researchgate.net/publication/224782520\_Design\_of\_Robust\_Autoland\_Control\_Laws\_Using\_Mu-Synthesis/link/546b017f0cf2397f783031db/download](https://www.researchgate.net/publication/224782520_Design_of_Robust_Autoland_Control_Laws_Using_Mu-Synthesis/link/546b017f0cf2397f783031db/download)  
I will discuss it with Jan-Willem van Wingerden from Delft Center for Systems and Control…

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [February 11, 2023, 1:57pm UTC](https://discourse.julialang.org/t/mu-synthesis-with-robustandoptimalcontrol/94427/8 "2023-02-11T13:57:17Z")

</div>

Created an issue: [Please add mu syntesis · Issue #76 · JuliaControl/RobustAndOptimalControl.jl · GitHub](https://github.com/JuliaControl/RobustAndOptimalControl.jl/issues/76)

I think this cannot be too difficult, because Hinfinity calculation is already included in the package, and optimizing some parameters to minimize the robust H∞ performance of the closed-loop system can also not be too difficult because a lot of optimizers are already available in Julia.

---

<div class="post-metadata">

**Author:** ![baggepinnen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/baggepinnen/32/693_2.png) [@baggepinnen](https://discourse.julialang.org/u/baggepinnen)\
**Post date:** [February 11, 2023, 2:12pm UTC](https://discourse.julialang.org/t/mu-synthesis-with-robustandoptimalcontrol/94427/9 "2023-02-11T14:12:41Z")

</div>

> [@ufechner7](#):
>
> I think this cannot be too difficult

I am unlikely to be spending time on this any time soon, but I would be warmly welcoming your contribution!

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [February 11, 2023, 2:23pm UTC](https://discourse.julialang.org/t/mu-synthesis-with-robustandoptimalcontrol/94427/10 "2023-02-11T14:23:18Z")

</div>

I double checked, and there is no open source implementation of this algorithm yet, not in scilab, octave or python-control. I start to work at the control department of TU Delft soon, perhaps this gives me the opportunity to work on this topic.
