Как исправить эту ошибку переключения типа в Python?Python

Программы на Python
Ответить
Anonymous
 Как исправить эту ошибку переключения типа в Python?

Сообщение Anonymous »

Итак, я получил этот код. Я хочу, чтобы он выполнил переключение на pq, если напряжение выходит за пределы, и переключился обратно на pv, если напряжение находится в пределах пределов на следующей итерации. Последнее время где-то ошибка. Я хочу, чтобы он просто переключал шину один раз за итерацию, и когда это происходит, он обновляет указанное значение шины, а не значение, используемое для вычислений в этой итерации.
Это это файл классов, в котором я создал переключатели

Код: Выделить всё

class Bus:
idx:int
u:complex
i_inj: complex
bus_type: int #define 0 slack, 1 pv, 2 pq
#y: complex # ?
p: float
q: float
q_min: float
q_max: float

def __init__(self, idx, bus_type, voltage_mag, voltage_ang, p, q, q_min, q_max):
self.idx = idx
self.bus_type = bus_type
self.u=complex(voltage_mag*np.cos(voltage_ang),voltage_mag*np.sin(voltage_ang))
self.voltage_mag = voltage_mag
self.voltage_ang = voltage_ang
self.p = p
self.q = q
#self.y=y # maybe
self.q_min = q_min
self.q_max = q_max

def set_to_pv(self):  # , voltage_mag, active_power
#self.voltage_mag = voltage_mag
self.bus_type = 1
#self.p = active_power  # Changed from "active_power" to p
print("Bus switched to PV")

def set_to_pq(self):  # , active_power, reactive_power
self.bus_type = 2
#self.p = active_power  # Changed from "active_power" to p
#self.q = reactive_power # Changed from "reactive power" to q
print("Bus switched to PQ")

def switch_pq (self):
if self.bus_type!=2:
if self.q < self.q_min:
self.q = self.q_min
self.set_to_pq() # Added self first
print("Reactive power inside limits, switch to pq")
return 1
elif self.q > self.q_max:
self.q = self.q_max
self.set_to_pq()
print("Reactive power outside limits, switch to pq")
return 1
else:
return 0

def switch_back(self):
if self.q_min 

Подробнее здесь: [url]https://stackoverflow.com/questions/79166797/how-to-fix-this-type-switch-error-in-python[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»