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`
RobustBackSteppingArztan
​
{V,α,x}=RobustBackSteppingArztan[Vo,αo,fo,ho,fa,ga,ha,xo,xa,xd,γ,Φfun,Δfun,Rfun,ϱ3,ϱ4,{ϱ1,ϱ2}]
This is an implementation of the backstepping Lemma with Arztan's formula and direct cancellation 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[τ]]-γ^2|w[τ]|^2)τ
≤
Vo
[xo[0]]
; ∀t≥0 and for any waveform of
w
. This backstepping command computes a value function
V
, a control law
α[xo,xa,xd]
for
u
, and the state vector
x=
Join
[xo,xa,xd]
.
Vo
: is a value function designed for
xo
system.
αo
: the virtual control law for
xa
γ
: desired disturbance attenuation level
Φfun
: The additional negative drift in the design, function of
xo,xa,xd
Δfun
: The additional quadratic kernel in the value function
V
, function of
xo,xa
Rfun
: The desired 'weighting' function of control effort among all channels of control input, function of
xo,xa,xd
,
V=Vo+(xa-αo[xo])'Δfun(xa-αo[xo])
ϱ3
: positive constant
ϱ4
: positive constant
ϱ1,ϱ2
positive constant that are less than 1, and
(1+ϱ2)ϱ1<1
Then, the design achieves
t
∫
0
(l[xo[τ],xa[τ],xd[τ]]-γ^2|w[τ]|^2)τ
≤
V
[xo[0],xa[0]]
; ∀t≥0 and for any waveorm of
w
, where
l[xo,xa,xd]≥lo[xo,xd]+(xa-αo[xo])'Φfun[xo,xa,xd]
.
V,α,Vo,αo,fo,ho,fa,ga,ha,Φfun,Δfun,Rfun
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];rbar={{3,1},{1,2}};
In[8]:=
{V1,α1,x}=
RobustBackSteppingCancellation
[V0,α0,{},{},f〚1;;2〛/.{x30,x40},D[f〚1;;2〛,{{x3,x4}}],h〚1;;2,All〛,{},{x1,x2},{},γ,{x1,x2},IdentityMatrix[2]/2]
Out[8]=

2
x1
2
+
2
x2
2
,-x1-
2
x1
+
1
64
(-x1+x2),-x2-x1x2+
1
64
(x1-(1+
2
x1
)x2),{x1,x2}
In[9]:=
{V,α,x}=
RobustBackSteppingArztan
[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,{x1,x2}-α1,1/2*IdentityMatrix[2],rbar,0.7,0.8,{0.4,0.5}];
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.
100% completed.
In[12]:=
Plot[sol[t],{t,0,20},PlotRangeAll]
Out[12]=
SeeAlso
RobustBackSteppingArztanG
 
▪
RobustBackSteppingCancellation
 
▪
RobustBackSteppingCancellationG
""

© 2025 Wolfram. All rights reserved.

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