Модель асинхронного двигателя
Автор
"""___________________________________________________________________________________
___________________________________________________________________________________"""
function get_sim_results(источник::String, example_path::String)
if occursin(".engee", источник)
name = filter(x->occursin(".engee", x), readdir(example_path))[1]
try
engee.close(split(name, '.')[1], force=true) # закрытие модели
catch err # в случае, если нет модели, которую нужно закрыть и engee.close() не выполняется, то будет выполнена её загрузка после catch
m = engee.load(joinpath(example_path, name)) # загрузка модели
end;
try
engee.run(m) # запуск модели
catch err # в случае, если модель не загружена и engee.run() не выполняется, то будут выполнены две нижние строки после catch
m = engee.load(joinpath(example_path, name)) # загрузка модели
engee.run(m) # запуск модели
end
else
name = filter(x->occursin(".jld2", x), readdir(example_path))[1]
return load(name)["simout"]
end
end
"""___________________________________________________________________________________
`get_sim_data(simout::SimulationResult, signal::String, pos::Int64, data::String)::Vector{Float64}`
Извлекает заданный параметр из `simout`
Параметры
- `signal`: имя записываемого сигнала
- `pos`: его местонахождение в векторе
- `data`: тип возвращаемых данных time или value
Возвращает вектор значений из `simout`
___________________________________________________________________________________"""
function get_sim_data(simout::SimulationResult, signal::String, pos::Int64, data::String)::Vector{Float64}
sim_data::Vector{Float64}=[]
if data=="value"
for i in collect(simout[signal]).value
push!(sim_data, i[pos])
end
return sim_data
elseif data=="time"
sim_data = collect(simout[signal]).time
return sim_data
else
println("Допустимые значения параметра data: value, time")
end
end