Skip to content

Commit

Permalink
modified: CHANGELOG.md
Browse files Browse the repository at this point in the history
	modified:   Project.toml
	modified:   src/AutomationLabsSystems.jl
	modified:   src/main/main_systems.jl
	deleted:    src/sub/design_models.jl
	modified:   src/types/types.jl
	modified:   test/system_evaluation_test.jl
  • Loading branch information
Pierre BLAUD committed Apr 2, 2023
1 parent 17c825e commit 7a33904
Show file tree
Hide file tree
Showing 7 changed files with 166 additions and 143 deletions.
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# AutomationLabsSystems Changelog

## v0.1.8

* Remove dependencies AutomationLabsIdentification, MLJ, MLJMultivariateStatsInterface.
* Remove design_models.jl.
* Add type models for removing the AutomationLabsIdentification dependency.
* proceed_system_model_evaluation types modifications.

## v0.1.7

* Add dict for return for _extract_model_from_machine functions.
Expand Down
13 changes: 5 additions & 8 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -1,33 +1,30 @@
name = "AutomationLabsSystems"
uuid = "6d3dfdf0-e107-48c6-a6ff-eced1a5a9334"
authors = ["Pierre BLAUD <pierre.blaud@ikmail.com> and contributors"]
version = "0.1.7"
version = "0.1.8"

[deps]
AutomationLabsIdentification = "48ff5a6f-d08b-4053-9585-6a9e3e078386"
ControlSystems = "a6e380b2-a6ca-5380-bf3e-84a91bcd477e"
Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c"
ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210"
LazySets = "b4f0291d-fe17-52bc-9479-3d1a343d9043"
MLJ = "add582a8-e3ab-11e8-2d5e-e98b27df1bc7"
MLJMultivariateStatsInterface = "1b6a4a23-ba22-4f51-9698-8599985d3728"
MathematicalSystems = "d14a8603-c872-5ed3-9ece-53e0e82e39da"
NNlib = "872c559c-99b0-510c-b3b7-b6c96a88d5cd"

[compat]
AutomationLabsIdentification = "0.2"
ControlSystems = "1.6"
Flux = "0.13"
ForwardDiff = "0.10"
LazySets = "2"
MLJ = "0.19"
MLJMultivariateStatsInterface = "0.5"
MathematicalSystems = "0.13"
NNlib = "0.8"
julia = "1"

[extras]
AutomationLabsIdentification = "48ff5a6f-d08b-4053-9585-6a9e3e078386"
MLJ = "add582a8-e3ab-11e8-2d5e-e98b27df1bc7"
MLJMultivariateStatsInterface = "1b6a4a23-ba22-4f51-9698-8599985d3728"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[targets]
test = ["Test"]
test = ["Test", "AutomationLabsIdentification", "MLJ", "MLJMultivariateStatsInterface"]
5 changes: 1 addition & 4 deletions src/AutomationLabsSystems.jl
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,13 @@
module AutomationLabsSystems

import MathematicalSystems
import AutomationLabsIdentification
import MLJ
import MLJMultivariateStatsInterface
import LazySets
import Flux
import ForwardDiff
import NNlib
import ControlSystems

# Export methods
export proceed_system
export proceed_system_linearization

Expand All @@ -26,7 +24,6 @@ export proceed_system_model_evaluation

# Load files
include("types/types.jl")
include("sub/design_models.jl")
include("sub/design_systems.jl")
include("main/main_systems.jl")

Expand Down
41 changes: 27 additions & 14 deletions src/main/main_systems.jl
Original file line number Diff line number Diff line change
Expand Up @@ -202,44 +202,57 @@ function proceed_system_model_evaluation(
sublayers_name = collect(keys(system.f))

if sublayers_name[1] == :fnn_input
model_type = AutomationLabsIdentification.Fnn()
#model_type = AutomationLabsIdentification.Fnn()
model_type = Fnn()

elseif sublayers_name[1] == :icnn_input
model_type = AutomationLabsIdentification.Icnn()
#model_type = AutomationLabsIdentification.Icnn()
model_type = Icnn()


elseif sublayers_name[1] == :resnet_input
model_type = AutomationLabsIdentification.ResNet()
#model_type = AutomationLabsIdentification.ResNet()
model_type = ResNet()

elseif sublayers_name[1] == :polynet_input
model_type = AutomationLabsIdentification.PolyNet()
#model_type = AutomationLabsIdentification.PolyNet()
model_type = PolyNet()

elseif sublayers_name[1] == :densenet_input
model_type = AutomationLabsIdentification.DenseNet()
#model_type = AutomationLabsIdentification.DenseNet()
model_type = DenseNet()

elseif sublayers_name[1] == :rbf_input
model_type = AutomationLabsIdentification.Rbf()
#model_type = AutomationLabsIdentification.Rbf()
model_type = Rbf()

elseif sublayers_name[1] == :neuralode_inner
model_type = AutomationLabsIdentification.NeuralODE()
#model_type = AutomationLabsIdentification.NeuralODE()
model_type = NeuralODE()

elseif sublayers_name[1] == :rknn1_identity
model_type = AutomationLabsIdentification.Rknn1()
#model_type = AutomationLabsIdentification.Rknn1()
model_type = Rknn1()

elseif sublayers_name[1] == :rknn2_identity
model_type = AutomationLabsIdentification.Rknn2()
#model_type = AutomationLabsIdentification.Rknn2()
model_type = Rknn2()

elseif sublayers_name[1] == :rknn4_identity
model_type = AutomationLabsIdentification.Rknn4()
#model_type = AutomationLabsIdentification.Rknn4()
model_type = Rknn4()

elseif sublayers_name[1] == :rnn_input
model_type = AutomationLabsIdentification.Rnn()
#model_type = AutomationLabsIdentification.Rnn()
model_type = Rnn()

elseif sublayers_name[1] == :lstm_input
model_type = AutomationLabsIdentification.Lstm()
#model_type = AutomationLabsIdentification.Lstm()
model_type = Lstm()

elseif sublayers_name[1] == :gru_input
model_type = AutomationLabsIdentification.Gru()

#model_type = AutomationLabsIdentification.Gru()
model_type = Gru()
end

return model_type
Expand Down
73 changes: 0 additions & 73 deletions src/sub/design_models.jl

This file was deleted.

85 changes: 85 additions & 0 deletions src/types/types.jl
Original file line number Diff line number Diff line change
Expand Up @@ -71,3 +71,88 @@ struct DiscreteNonLinearModel <: AbstractModel
nbr_state::Int
nbr_input::Int
end

#This is a type reformulation to avoid AutomationLabsIdentification types deps
"""
Fnn
An feedforward neural network architecture type for dynamical system identification problem [ref].
"""
struct Fnn <: AbstractModel end

"""
Rbf
An radial basis neural network architecture type for dynamical system identification problem [ref].
"""
struct Rbf <: AbstractModel end

"""
Icnn
An input convex neural network architecture type for dynamical system identification problem [ref].
"""
struct Icnn <: AbstractModel end

"""
ResNet
An residual layer network architecture type for dynamical system identification problem [ref].
"""
struct ResNet <: AbstractModel end

"""
PolyNet
An poly-inception network architecture type for dynamical system identification problem [ref].
"""
struct PolyNet <: AbstractModel end

"""
DenseNet
An densely connected network architecture type for dynamical system identification problem [ref].
"""
struct DenseNet <: AbstractModel end

"""
NeuralODE
An neural neural network ODE architecture type for dynamical system identification problem [ref].
"""
struct NeuralODE <: AbstractModel end

"""
Rknn1
A runge-kutta neural neural network 1 architecture type for dynamical system identification problem [ref].
"""
struct Rknn1 <: AbstractModel end

"""
Rknn2
A runge-kutta neural neural network 2 architecture type for dynamical system identification problem [ref].
"""
struct Rknn2 <: AbstractModel end

"""
Rknn4
A runge-kutta neural neural network 4 architecture type for dynamical system identification problem [ref].
"""
struct Rknn4 <: AbstractModel end

"""
linear
An linear (Wv --> Ax + Bu) architecture type for dynamical system identification problem [ref].
"""
struct Linear <: AbstractModel end

"""
Rnn
A recurrent neural network architecture type for dynamical system identification problem [ref].
"""
struct Rnn <: AbstractModel end

"""
lstm
A long short-term memory recurrent neural network architecture type for dynamical system identification problem [ref].
"""
struct Lstm <: AbstractModel end

"""
gru
A gated recurrent unit recurrent neural network architecture type for dynamical system identification problem [ref].
"""
struct Gru <: AbstractModel end
Loading

0 comments on commit 7a33904

Please sign in to comment.