DPsim
Loading...
Searching...
No Matches
EMT_Ph3_PiecewiseLinearInductor.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 Institute for Automation of Complex Power Systems, EONERC, RWTH Aachen University
2// SPDX-License-Identifier: MPL-2.0
3
4#pragma once
5
6#include <vector>
7
9
10namespace CPS {
11namespace EMT {
12namespace Ph3 {
13
34 public SharedFactory<PiecewiseLinearInductor> {
35private:
36 std::vector<Real> mFluxBreakpoints;
37 std::vector<Real> mCurrentBreakpoints;
38
39 std::pair<Real, Real> slopeAndOffsetFromFlux(Real flux) const;
40
41protected:
42 Bool updateComponentParameters() override final;
43
44public:
46
48 Logger::Level logLevel = Logger::Level::off);
50 Logger::Level logLevel = Logger::Level::off)
51 : PiecewiseLinearInductor(name, name, logLevel) {}
52
54
55 void setParameters(const std::vector<Real> &fluxBreakpoints,
56 const std::vector<Real> &currentBreakpoints);
57};
58
59} // namespace Ph3
60} // namespace EMT
61} // namespace CPS
PiecewiseLinearInductor(String uid, String name, Logger::Level logLevel=Logger::Level::off)
PiecewiseLinearInductor(String name, Logger::Level logLevel=Logger::Level::off)
void setParameters(const std::vector< Real > &fluxBreakpoints, const std::vector< Real > &currentBreakpoints)
SimPowerComp< Real >::Ptr clone(String name) override final
Returns a modified copy of the component with the given suffix added to the name and without.
TwoTerminalVTypeVariableSSNComp(String uid, String name, Logger::Level logLevel=Logger::Level::off)
String uid()
Returns unique id.
spdlog::level::level_enum Level
Definition Logger.h:33
std::shared_ptr< SimPowerComp< VarType > > Ptr
static std::shared_ptr< PiecewiseLinearInductor > make(Args &&...args)
Definition PtrFactory.h:19
std::string String
Definition Definitions.h:65
double Real
Definition Definitions.h:62
bool Bool
Definition Definitions.h:64