Wolfram Language Paclet Repository

Community-contributed installable additions to the Wolfram Language

Primary Navigation

    • Cloud & Deployment
    • Core Language & Structure
    • Data Manipulation & Analysis
    • Engineering Data & Computation
    • External Interfaces & Connections
    • Financial Data & Computation
    • Geographic Data & Computation
    • Geometry
    • Graphs & Networks
    • Higher Mathematical Computation
    • Images
    • Knowledge Representation & Natural Language
    • Machine Learning
    • Notebook Documents & Presentation
    • Scientific and Medical Data & Computation
    • Social, Cultural & Linguistic Data
    • Strings & Text
    • Symbolic & Numeric Computation
    • System Operation & Setup
    • Time-Related Computation
    • User Interface Construction
    • Visualization & Graphics
    • Random Paclet
    • Alphabetical List
  • Using Paclets
    • Get Started
    • Download Definition Notebook
  • Learn More about Wolfram Language

RobustBackSteppingCancellation

Guides

  • Guide to ZigangPan`RobustBackSteppingCancellation`

Symbols

  • linearFactorConvex
  • RobustBackSteppingArztanG
  • RobustBackSteppingArztan
  • RobustBackSteppingCancellationG
  • RobustBackSteppingCancellation
ZigangPan`RobustBackSteppingCancellation`
RobustBackSteppingCancellationG
​
{V,α,x,σ}=RobustBackSteppingCancellationG[Vo,αo,fo,ho,fa,ga,ha,xo,xa,xd,Γ,Φfun,Δfun]
This is an implementation of the backstepping Lemma with direct cancellation and with a more general cost structure on the disturbance inputs and the assumption that
fo[xo,xa,xd]
and
ho[xo,xa,xd]
are linear in
xa
. Notation:
xo
: state vector for previous subsystem (vector)
xa
: the attatched state (virtual control) (vector)
xd
: additional variables in dynamics (vector) System: d
xo
/dt
=fo[xo,xa,xd]+ho[xo,xa,xd]w
d
xa
/dt
=fa[xo,xa,xd]+ga[xo,xa,xd]u+ha[xo,xa,xd]w
fo
is a vector,
ho
is a matrix,
fa
is a vector,
ga
is a square matrix,
ha
is a matrix. We assume that a value function
Vo[xo]
(scalar) and a control law
xa=αo[xo]
(vector) have been computed for the
xo
dynamics that achieves
t
∫
0
(lo[xo[τ],xd[τ]]-w[τ].Γ[xo[τ]].w[τ])τ
≤
Vo[x0[0]]
; ∀t≥0 and for any waveform of
w
. This backstepping command computes a value function
V
, a control law
α
for
u
, the state vector is
x=
Flatten
[{xo,xa,xd}]
, and the corresponding worst case disturbance law
σ
for
w
.
Vo
: is a value function designed for
xo
system.
αo
: the virtual control law for
xa
Γ
: desired disturbance attenuation level (a matrix)
Φfun
: The additional negative drift in the design.
Δfun
: The additional quadratic kernel in the value function
V
:
V=Vo+(xa-αo[xo])'Δfun(xa-αo[xo])
Then, the design achieves
t
∫
0
(lo[xo[τ],xd[τ]]+(xa[τ]-αo[xo[τ]])'Φfun[xo[τ],xa[τ],xd[τ]]-w[τ].Γ[xo[τ]].w[τ])τ≤V[xo〚0〛,xa〚0〛]
​ ∀t≥0 and for any waveorm of
w
.
V,α,σ,Vo,αo,fo,ho,fa,ga,ha,Γ,Φfun,Δfun
are formulas rather than functions.
​
Examples  
(1)
Basic Examples  
(1)
In[1]:=
Needs["ZigangPan`Examples`"]
In[2]:=
Needs["ZigangPan`DifferentialEquationSolver`"]
In[3]:=
xc={x1,x2,x3,x4};$Assumptions=assumeReal[xc]
Out[3]=
x1∈&&x2∈&&x3∈&&x4∈
In[4]:=
fe[x1_,x2_,x3_,x4_]:={x3+x1^2,x1*x2+x4,x1*x3,x2*x4}
In[5]:=
ge[x1_,x2_,x3_,x4_]:={{0,0},{0,0},{1,0},{0,-1}}
In[6]:=
he[x1_,x2_,x3_,x4_]:={{1,0},{-1,x1},{0,0},{1,1}}
In[7]:=
V0=0;α0={0,0};γ=4;f=Apply[fe,xc];g=Apply[ge,xc];h=Apply[he,xc];
In[8]:=
{V1,α1,x,σ}=
RobustBackSteppingCancellationG
[V0,α0,{},{},f〚1;;2〛/.{x30,x40},D[f〚1;;2〛,{{x3,x4}}],h〚1;;2,All〛,{},{x1,x2},{},γ^2*{{1,1/2},{1/2,2}},{x1,x2},IdentityMatrix[2]/2]
Out[8]=

2
x1
2
+
2
x2
2
,-x1-
2
x1
+
1
4
-
x1
14
--
1
14
-
x1
56
x2,-x2-x1x2+
1
4
--
1
14
-
x1
56
x1-
1
14
+
x1
56
+
1
56
+
x1
28
x1x2,{x1,x2},
1
2
x1
14
+-
1
14
-
x1
56
x2,
1
2
-
x1
56
+
1
56
+
x1
28
x2
In[9]:=
{V,α,x,σ}=
RobustBackSteppingCancellationG
[V1,α1,f〚1;;2〛,h〚1;;2,All〛,f〚3;;4〛,g〚3;;4,All〛,h〚3;;4,All〛,{x1,x2},{x3,x4},{},γ^2*{{1,1/2},{1/2,2}},{x1,x2}-α1,1/2*IdentityMatrix[2]];
In[10]:=
closedloopdynamics=FormulaToFunction[xc,f+g.α+h.{0,0}];
In[11]:=
sol=RungeKutta45[closedloopdynamics,0,{-2,2.,1,0},20,1/10];
10% completed.
20% completed.
30% completed.
40% completed.
50% completed.
60% completed.
70% completed.
80% completed.
90% completed.
100% completed.
In[12]:=
Plot[sol[t],{t,0,20},PlotRangeAll]
Out[12]=
In[13]:=
Plot[Apply[FormulaToFunction[xc,α],sol[t]],{t,0,20},PlotRangeAll]
Out[13]=
SeeAlso
RobustBackSteppingCancellation
 
▪
RobustBackSteppingArztan
 
▪
RobustBackSteppingArztanG
""

© 2025 Wolfram. All rights reserved.

  • Legal & Privacy Policy
  • Contact Us
  • WolframAlpha.com
  • WolframCloud.com