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

MRRACLinearFullOrder

Guides

  • Guide to ZigangPan`MRRACLinearFullOrder`

Symbols

  • costtocomefunctionLTIMIMO1
  • robustMRACdesignMIMOFullOrder0
  • robustMRACdesignMIMOFullOrder1
ZigangPan`MRRACLinearFullOrder`
robustMRACdesignMIMOFullOrder1
​
{controller,controllerIS}=robustMRACdesignMIMOFullOrder1[m,r,a1,achk,b,bchkb,dchk,d1,a2111,a2112,a2113,a212,e1,θ,pθ,γ,referencemodel,θchk0,xchk0,q0,Φ0,ρo,Δbar1i,βΔ,kccoeff,xd0,Yi,γs,βs]
m
: is output dimension.
r
: is the uniform vector relative degree of the design model.
a1
: is the
nn
-dimensional system matrix.
achk
: is the
nmm
-dimensional matrix
b
: is the
nmm
-dimensional matrix.
bchkb
: is the
nm(p-m)
-dimensional matrix.
dchk
: is the
nmqchk
-dimensional matrix.
d1
: is the
nqb
-dimensional matrix.
a2111
: is the
nmσm
-dimensional tensor.
a2112
: is the
nmσ(p-m)
-dimensional tensor.
a2113
: is the
nmσqchk
-dimensional tensor.
a212
: is the
nmσm
-dimensional tensor.
e1
: is the
1qb
-dimensional matrix.
θ
: is the vector of unknown parameters.
pθ
: is a pure function such that Apply[pθ,θ]≤1 for true values
θ
.
γ
: is the desired disturbance attenuation level.
referencemodel
: is a NLsystem model describing the reference model of the system.
θchk0
: is the initial estimate for
θ
.
xchk0
: is the initial estimate for the system states (in the design model).
q0
: is the positive definite weighting matrix for the initial parameter estimation error:
θ-θchk0
.
Φ0
: is the initial value for the matrix Φ.
ρo
: is a real value that is greater than 1.
Δbar1i
: is the initial value for Δbar1. (The program will yield all rational number coefficients in the controller, there is no approximation in the controller.) βΔ: is a nonnegative real value.
kccoeff
: is a real value that is greater than or equal to 1, and sets
Kc=kccoeff*γ^2*
Tr
[q0
]. When
kccoeff=1
, then
Σn
and
sΣ
are constant matrix and constant scalar, respectively.
xd0
: is the initial state for the reference model.
Yi
: is the initial value for
Y
. (The program will yield all rational number coefficients in the controller, there is no approximation in the controller.)
γs
: is a list of length
r
of positive definite matrices (formula that may depend on
θ
) used in the backstepping design as the additive value function.
βs
: is a list of length
r
of positive definite matrices (formula that may depend on
θ
) used in the backstepping design as the negative drift. Returned variables:
controller
: is the NLsystem model for the robust adaptive controller.
controllerIS
: is the initial condition for the robust adaptive controller. If the inputs are of rational coefficients, then the returned variables are of rational coefficients. Design is guaranteed to work for minimum phase MIMO systems with additional measured disturbance as additional measurement outputs and additional control inputs in addition to the ones with uniform vector relative degree
r
.
​
Examples  
(1)
Basic Examples  
(1)
In[1]:=
Needs["ZigangPan`Examples`"]
In[2]:=
θbar={θ1};
In[3]:=
mimosystem={{x1,x2,x3},{u1,u2,w1,w2},{y1,y2,z1,z2},{{0,0,1,1,θ1,0,0},{0,0,0,-θ1,-θ1^2,0,0},​​{0,0,0,1,0,0,0},{1,0,0,0,0,1,0},{θ1,1,0,0,0,0,1},{1,0,0,0,0,0,0},{θ1,1,0,0,0,0,0}},{1,2},{1,2},​​{1,2},{3,4},{1,2},{3,4}};systemcheck[mimosystem]
Out[3]=
True
In[4]:=
$Assumptions=$Assumptions&&assumePositive[θbar]&&assumeReal[Join[mimosystem〚1〛,mimosystem〚2〛,mimosystem〚3〛]];
In[5]:=
{r,highfrequencygain,systemaddI,systemaddO,transformation,zerodynamics}=EZDCFAD[mimosystem,θbar]
System already has uniform vector relative degree!
State transformation is xold = transformation.xnew
Out[5]=
2,{{1,θ1},{θ1,0}},default,{{x4},{u3,u4},{y3,y4},{{0,1,0},{1,0,0},{0,0,1}},{1,2},{1,2},{1,2},{},{1,2},{}},0,1,
1
θ1
,0,{0,-θ1,0,0},0,0,0,
1
θ1
,{1,0,0,0},{x11,x21,x31,x41},{u1,u2,w1,w2},{y1,y2,z1,z2,y3,y4},0,1,
1
θ1
,0,0,0,1,0,{0,0,0,0,1,θ1,0,0},{0,0,0,1,0,0,0,0},{0,0,0,0,θ1,0,0,0},0,1,
1
θ1
,0,0,0,1,0,{0,0,1,0,0,0,0,1},0,1,
1
θ1
,0,0,0,0,0,{0,0,1,0,0,0,0,0},{1,0,0,0,0,0,0,0},{0,0,1,0,0,0,0,1},{1,2},{5,6},{1,2},{3,4},{1,2,5,6},{3,4}
In[6]:=
systemoperation[zerodynamics,{"View"}];
Active
a1
a2
Type
s1
s2
s3
s4
c1
c2
d1
d2
names
x11
x21
x31
x41
u1
u2
w1
w2
s1
x11
0
1
1
θ1
0
0
0
1
0
s2
x21
0
0
0
0
1
θ1
0
0
s3
x31
0
0
0
1
0
0
0
0
s4
x41
0
0
0
0
θ1
0
0
0
m1
y1
0
1
1
θ1
0
0
0
1
0
m2
y2
0
0
1
0
0
0
0
1
c1
z1
0
1
1
θ1
0
0
0
0
0
c2
z2
0
0
1
0
0
0
0
0
a1
m3
y3
1
0
0
0
0
0
0
0
a2
m4
y4
0
0
1
0
0
0
0
1
In[7]:=
{systemobservable,nO,observabilityindices,transformation1,systemextended}=uniformobservabilityindices[zerodynamics];
State transformation is xold = transformation.xnew
System already has uniform observability indices!
In[8]:=
systemextended=FullSimplify[systemextended];
In[9]:=
systemoperation[systemextended,{"View"}];
Active
a1
a2
Type
s1
s2
s3
s4
c1
c2
d1
d2
names
x1
x2
x3
x4
u1
u2
w1
w2
s1
x1
0
1
1
θ1
0
0
0
1
0
s2
x2
0
0
0
0
1
θ1
0
0
s3
x3
0
0
0
1
0
0
0
0
s4
x4
0
0
0
0
θ1
0
0
0
m1
y1
0
1
1
θ1
0
0
0
1
0
m2
y2
0
0
1
0
0
0
0
1
c1
z1
0
1
1
θ1
0
0
0
0
0
c2
z2
0
0
1
0
0
0
0
0
a1
m3
y3
1
0
0
0
0
0
0
0
a2
m4
y4
0
0
1
0
0
0
0
1
In[10]:=
designmodel=systemoperation[systemoperation[systemextended,{"Drop outputs",{y1,y2}}],{"View"}];
Active
a1
a2
Type
s1
s2
s3
s4
c1
c2
d1
d2
names
x1
x2
x3
x4
u1
u2
w1
w2
s1
x1
0
1
1
θ1
0
0
0
1
0
s2
x2
0
0
0
0
1
θ1
0
0
s3
x3
0
0
0
1
0
0
0
0
s4
x4
0
0
0
0
θ1
0
0
0
c1
z1
0
1
1
θ1
0
0
0
0
0
c2
z2
0
0
1
0
0
0
0
0
a1
m1
y3
1
0
0
0
0
0
0
0
a2
m2
y4
0
0
1
0
0
0
0
1
In[11]:=
designmodelr=systemoperation[designmodel,{"State transformation",Inverse[{{1,0,0,0},{0,0,1,0},{0,1,0,0},{0,0,0,1}}]}]
State transformation is xold = transformation.xnew
Out[11]=
{x11,x21,x31,x41},{u1,u2,w1,w2},{z1,z2,y3,y4},0,
1
θ1
,1,0,0,0,1,0,{0,0,0,1,0,0,0,0},{0,0,0,0,1,θ1,0,0},{0,0,0,0,θ1,0,0,0},0,
1
θ1
,1,0,0,0,0,0,{0,1,0,0,0,0,0,0},{1,0,0,0,0,0,0,0},{0,1,0,0,0,0,0,1},{1,2},{3,4},{1,2},{3,4},{3,4},{1,2}
In[12]:=
systemoperation[designmodelr,{"View"}];
Active
a1
a2
Type
s1
s2
s3
s4
c1
c2
d1
d2
names
x11
x21
x31
x41
u1
u2
w1
w2
s1
x11
0
1
θ1
1
0
0
0
1
0
s2
x21
0
0
0
1
0
0
0
0
s3
x31
0
0
0
0
1
θ1
0
0
s4
x41
0
0
0
0
θ1
0
0
0
c1
z1
0
1
θ1
1
0
0
0
0
0
c2
z2
0
1
0
0
0
0
0
0
a1
m1
y3
1
0
0
0
0
0
0
0
a2
m2
y4
0
1
0
0
0
0
0
1
In[13]:=
θ=Table[ToExpression[StringJoin["θ",ToString[i]]],{i,1,2}];
In[14]:=
θrules={θ21/θ1}
Out[14]=
θ2
1
θ1

In[15]:=
θbarvalue={θ11}
Out[15]=
{θ11}
In[16]:=
θvalues=θ/.θrules/.θbarvalue

© 2025 Wolfram. All rights reserved.

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