funCyclone | R Documentation |
Calculate cyclone collection efficiency. A simple, physics-based optimization problem (potentially bi-objective). See the references [1,2].
funCyclone( x, deterministic = c(TRUE, TRUE, TRUE), cyclone = list(Da = 1.26, H = 2.5, Dt = 0.42, Ht = 0.65, He = 0.6, Be = 0.2), fluid = list(Mu = 1.85e-05, Ve = (50/36)/0.12, lambdag = 1/200, Rhop = 2000, Rhof = 1.2, Croh = 0.05), noiseLevel = list(Vp = 0.1, Rhop = 0.05), model = "Barth-Muschelknautz", intervals = c(0, 2, 4, 6, 8, 10, 15, 20, 30) * 1e-06, delta = c(0, 0.02, 0.03, 0.05, 0.1, 0.3, 0.3, 0.2) )
x |
vector of length at least one and up to six, specifying non-default geometrical parameters in [m]: Da, H, Dt, Ht, He, Be |
deterministic |
binary vector. First element specifies whether volume flow is deterministic or not. Second element specifies whether particle density is deterministic or not. Third element specifies whether particle diameters are deterministic or not. Default: All are deterministic (TRUE). |
cyclone |
list of a default cyclone's geometrical parameters: fluid$Da, fluid$H, fluid$Dt, fluid$Ht, fluid$He and fluid$Be |
fluid |
list of default fluid parameters: fluid$Mu, fluid$Vp, fluid$Rhop, fluid$Rhof and fluid$Croh |
noiseLevel |
list of noise levels for volume flow (noiseLevel$Vp) and particle density (noiseLevel$Rhop), only used if non-deterministic. |
model |
type of the model (collection efficiency only): either "Barth-Muschelknautz" or "Mothes" |
intervals |
vector specifying the particle size interval bounds. |
delta |
vector of densities in each interval (specified by intervals). Should have one element less than the intervals parameter. |
returns a function that calculates the fractional efficiency for the specified diameter, see example.
[1] Zaefferer, M.; Breiderhoff, B.; Naujoks, B.; Friese, M.; Stork, J.; Fischbach, A.; Flasch, O.; Bartz-Beielstein, T. Tuning Multi-objective Optimization Algorithms for Cyclone Dust Separators Proceedings of the 2014 Conference on Genetic and Evolutionary Computation, ACM, 2014, 1223-1230
[2] Breiderhoff, B.; Bartz-Beielstein, T.; Naujoks, B.; Zaefferer, M.; Fischbach, A.; Flasch, O.; Friese, M.; Mersmann, O.; Stork, J.; Simulation and Optimization of Cyclone Dust Separators Proceedings 23. Workshop Computational Intelligence, 2013, 177-196
## Call directly funCyclone(c(1.26,2.5)) ## create vectorized target funcion, vectorized, first objective only ## Also: negated, since SPOT always does minimization. tfunvecF1 <-function(x){-apply(x,1,funCyclone)[1,]} tfunvecF1(matrix(c(1.26,2.5,1,2),2,2,byrow=TRUE)) ## optimize with spot res <- spot(fun=tfunvecF1,lower=c(1,2),upper=c(2,3), control=list(modelControl=list(target="ei"), model=buildKriging,optimizer=optimLBFGSB,plots=TRUE)) ## best found solution ... res$xbest ## ... and its objective function value res$ybest
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.