| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- package dataStruct
- type MeterCalcParam struct {
- Id string //电表编码
- Time int64 //计算日期
- PowerRate CalcPowerRate //负荷率
- TotalEnergy CalcDataEnergy //总电能
- DayTotalEnergy CalcDataEnergy //日总电能
- isClean bool
- }
- // CalcPowerRate 负荷率
- type CalcPowerRate struct {
- SumPower float32 //有功功率总和
- MaxPower float32 //最大有功功率
- Count int //有功功率个数
- }
- // CalcDataEnergy 电能
- type CalcDataEnergy struct {
- Tp float32
- Tq float32
- Fp float32
- Fq float32
- }
- // CalcAndSetPowerRate 计算负荷率
- func (m *MeterCalcParam) CalcAndSetPowerRate(colData *CollectData) float32 {
- m.PowerRate.Count++
- m.PowerRate.SumPower += colData.P
- if m.PowerRate.MaxPower < colData.P {
- m.PowerRate.MaxPower = colData.P
- }
- return m.CalcRate()
- }
- // CalcRate 计算负荷率
- func (m *MeterCalcParam) CalcRate() float32 {
- pv := float32(0)
- if m.PowerRate.MaxPower > float32(0.0001) && m.PowerRate.Count > 0 {
- pv = m.PowerRate.SumPower / (float32(m.PowerRate.Count) * m.PowerRate.MaxPower)
- }
- return pv
- }
- // ClearDayEnergy 日总电能清零
- func (m *MeterCalcParam) ClearDayEnergy() {
- m.DayTotalEnergy.Tp = 0
- m.DayTotalEnergy.Tq = 0
- m.DayTotalEnergy.Fp = 0
- m.DayTotalEnergy.Fq = 0
- m.PowerRate.Count = 0
- m.PowerRate.MaxPower = 0
- m.PowerRate.SumPower = 0
- m.isClean = true
- }
- // CalcAndSetDayEnergy 计算并设置日电能
- func (m *MeterCalcParam) CalcAndSetDayEnergy(colData *CollectData) {
- if m.isClean {
- m.isClean = false
- return
- }
- m.DayTotalEnergy.Tp += colData.Tps - m.TotalEnergy.Tp
- m.DayTotalEnergy.Tq += colData.Tqs - m.TotalEnergy.Tq
- m.DayTotalEnergy.Fp += colData.Fps - m.TotalEnergy.Fp
- m.DayTotalEnergy.Fq += colData.Fqs - m.TotalEnergy.Fq
- }
- // SetTotalEnergy 设置总电能
- func (m *MeterCalcParam) SetTotalEnergy(colData *CollectData) {
- m.TotalEnergy.Tp = colData.Tps
- m.TotalEnergy.Tq = colData.Tqs
- m.TotalEnergy.Fp = colData.Fps
- m.TotalEnergy.Fq = colData.Fqs
- }
|