Ограничения для проблемы балансировки ротора с CVXPY

Я инженер-механик с минимальным опытом в математике. У меня возникло искушение использовать CVXPY, чтобы написать простой код о проблеме балансировки ротора. Удивительно, насколько просто и надежно это работает. Моя проблема заключалась в следующем:


После получения пользовательского ввода для матрицы ALPHA(M,N) и A(M,1)

W=cvxpy.Variable((N,1),complex=True)    
objective2=cvxpy.Minimize(cvxpy.norm((ALPHA*W+A),"inf"))
prob2.solve()

W является комплексным, поскольку возвращает веса и их угол для каждой N плоскости, которая уравновешивает ротор.

Мой вопрос в том, как наложить ограничение на W. Например, как убедиться, что W меньше определенного значения для каждой N плоскости?


person Maged Eltorkoman    schedule 29.01.2020    source источник


Ответы (1)


После получения пользовательского ввода для матрицы масс ограничений wc(N,1) следующий код, похоже, сработал:

const=[]
const +=   [cp.norm(W2[i])<=wc[i]for i in range (N) ]
prob3=cp.Problem(objective2,const)
prob3.solve()
person Maged Eltorkoman    schedule 04.02.2020