Skip to content

Commit e2f3ac3

Browse files
committed
mention LPV in nonlinear docs
1 parent 86f913f commit e2f3ac3

1 file changed

Lines changed: 23 additions & 1 deletion

File tree

‎docs/src/nonlinear.md‎

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@ using DisplayAs
77

88
# Identification of nonlinear models
99

10-
This package supports two forms of nonlinear system identification.
10+
This package supports three forms of nonlinear system identification.
1111
- Parameter estimation in a known model structure (linear or nonlinear) ``x⁺ = f(x, u, p)`` where `p` is a vector of parameters to be estimated.
1212
- Estimation of Hammerstein-Wiener models, i.e., linear systems with static nonlinear functions on the input and/or output.
13+
- Estimation of Linear Parameter-Varying (LPV) state-space models, i.e., systems whose ``A,B,C,D`` matrices depend on a measured scheduling variable ``\lambda(t)``. This captures operating-point–dependent behavior of a nonlinear plant by interpolating between locally linear models.
1314

1415
## Parameter estimation in a known model structure
1516
Parameter estimation in differential equations can be performed by forming a one-step ahead predictor of the output, and minimizing the prediction error. This procedure is packaged in the function [`ControlSystemIdentification.nonlinear_pem`](@ref) which is available as a package extension, available if the user manually installs and loads [LeastSquaresOptim.jl](https://github.com/matthieugomez/LeastSquaresOptim.jl).
@@ -250,6 +251,27 @@ DisplayAs.PNG(current()) # hide
250251
```
251252

252253

254+
## Linear Parameter-Varying (LPV) identification
255+
256+
!!! warning "Experimental"
257+
LPV identification in this package is considered experimental and may
258+
change in the future without respecting semantic versioning.
259+
260+
[`lpv_pem`](@ref) fits a state-space model whose matrices depend on a measured
261+
scheduling variable ``\lambda(t)`` through a user-supplied basis expansion,
262+
``A(\lambda) = \sum_k \theta^A_k\, \varphi_k(\lambda)`` and likewise for
263+
``B,C,D``. The returned [`LPVStateSpace`](@ref) is callable: `sys(λ)` returns
264+
a plain `StateSpace` frozen at that operating point.
265+
266+
```@docs
267+
ControlSystemIdentification.lpv_pem
268+
ControlSystemIdentification.LPVStateSpace
269+
ControlSystemIdentification.lpv_warmstart
270+
```
271+
272+
See [LPV identification](@ref) for a worked example.
273+
274+
253275
# Video tutorials
254276

255277
Relevant video tutorials are available here:

0 commit comments

Comments
 (0)