Hello, I try to optimization of boost converter. Goal function is sum of losses of all materials in boost converter circuit. Although I made effort too much. But I did’nt solve the problem : Disciplined convex programming error:
Cannot perform the operation: {real affine} .* {log-convex}
Before I had this problem, I applied monomial approximation to goal function.
Goal Function:
minimize(fs2/1000000 + (2361183241434823Vcfs)/47223664828696452136960 + (9Io)/(2Vc) + (375Io^2 + 60Io + 13)^2/(7200000fs^2) + (375Io2^2 + 60Io2 + 13)^2/(720000fs2^2) + (89Io^2Vc^2)/25000 + (178Io2^2)/(5Vc^2) + 89/(480L2^2fs2^2) + (9Io2Vc)/200 + (89Vc^2)/(192000L^2fs^2) + (191Io2fs2)/(25000000Vc) + (417743823682484117IoVc^(191/91)fs)/144115188075855872000000000 + (13exp(-((50000log(Vc) - 7911622136533237/68719476736)(144Io2^2L2^2fs2^2 + 25))/(50000(48Io2^2L2^2fs2^2 + 25)))(48Io2^2L2^2fs2^2 + 25))/(60000L2^2fs2^2) + (13Vc^3*(192Io^2L^2fs^2 + 25))/(240000000L^2fs^2)) %simplified
subject to:
0.110^-6<=L<=1010^-3; % Lmin<=L<=Lmax
0.110^-6<=C<=10010^-6; % Cmin<=C<=Cmax
1010^3<=fs<=800*10^3; % FSmin<=FS<=FSmax
Can you please provide a complete reproducible example, with no missing lines of code (I don’t even see cvx_begin). Use the Preformnatted text icon to apply to the entire code. Indicate which line of code the error message occurs at.
@Mark_L_Stone from now on I am going to mark as “Nonconvex” any question involving DCP errors that make no attempt at all to show that the problem is actually convex and/or could satisfy the rules outlined in the FAQ—even if it is (and I doubt it is in this case).
@myazagan please read the FAQ. You would not attempted to enter the problem as written if you had.
The whole program ran for me without warning message or error message, with the result that the problem is infeasible. (For the technically inclined, I got the same result both with and without CVXQUAD’s version of exponential.m)
Program has already run in this case. But the problematic part of the purpose function is given below:
(13exp(-((50000log(10) - 7911622136533237/68719476736)
Could you convert inside of logaritmic function to Vc. That is ,Could you run in this case ?(13exp(-((50000log(Vc) - 7911622136533237/68719476736)
What are you trying to do with this? The parentheses don’t balance, but if they did, perhaps it would be log-affine. In any event, please read the Geometric Programming section of the CVX User’s Guide http://cvxr.com/cvx/doc/gp.html as well as the CVX FAQ Why isn’t CVX accepting my model? READ THIS FIRST! to make sure you are following CVX’s rules.
Edit: I found another post by you, waiting for moderator approval, which now immediately precedes this post. The objective function in that post violates CVX’s DCP rules, as described in the CVX Users’ Guide, and so I will presume it is non-convex.
The minimized objective function is the sum of the circuit of all losses. “minimize(Pboost)” The parameters that make up the Pboost : Pboost=Pcapacitor+Pinductor+Pswitching+Pdiode
On the advice of an instructor, I apply the following steps to make this stage convex as far as I’m concerned:
I calculated all the losses myself. I wrote numerically in total form as minimize (…) for side by side two stage boost converter. My variables: Io,Io2,Vc,fs,L,L2,C,C2,fs2
I had erro message like log-affine*log-convex
I simpified all numeric values inside minimize(…) by using “syms”, “simplify”. But I didn’t run.
I applied monomial approximation. But I didn’t. And, I have error message: real-affine*log-convex.
I wanted to explain. I will read link that you sent.