The data provided by PowerModels.jl is inconsistent with my local raw Matpower file.
The latter is all zero (seems to mean that there is no limit), but the former has a vector of numbers that I can’t tell where they come from. (Moreover, what is its unit (in MVA? or in p.u. (which is unlikely)))
import PowerModels
R = let
PowerModels.silence()
t = PowerModels.make_basic_network(PowerModels.parse_file("data/case118.m"))
A = PowerModels.calc_basic_incidence_matrix(t)
B = size(A, 1)
[t["branch"]["$b"]["rate_a"] for b in 1:B]
end
So, it is not an honest rate_a in physical sense, but rather an inference conditional on other related data (e.g. voltage, angles).
(will this calculated data be useful in practice? I wonder.)
See Basic Data Utilities · PowerModels, in particular “all branches have explicit thermal limits” and “users requiring any of the features listed above for their analysis should use the non-basic PowerModels routines.”
PowerModels is designed around some very specific formulations. They’re not for everyone.
You are correct, in that the derived rate_a will never be a binding constraint in this model, but it is a valid upper bound on the amount of apparent power that can flow across the line. That still provides some useful information I think.
@oscar gives good advise. make_basic_network was intended primarily as a tool for teaching. If you don’t want the properties that it enforces then work with the data output by parse_file.
To answer your original question, “Where is the “rate_a” in PowerModels.jl from” if you do not call, PowerModels.silence() then you should see some logging messages about how rate_a values were missing so they were replaced with different ones.
Side note - Are you familiar with PGLib-OPF and PGLib.jl? These datasets have been cleaned up, so you should not see as many warnings during data reading process.
I can understand the first thermal limit, but not the other one.
Why is small phase angle difference considered “binding”? (I thought large is binding?)
What is meant by “phase angle difference constraint”?