By default, when solving a unit commitment problem, MOST solves the mixed-integer problem first, then re-solves the continuous variable problem to get the prices, setting the integer variables to their solved values. For some reason, under MATLAB R2016a your problem is failing on the price computation phase. Unfortunately, these things sometimes happen with numerical optimization packages. I’m not sure what the cause is in this case.
I suppose you have two options … 1. If you don’t need the prices, simply turn off the price computation phase by setting the 'most.skip_prices' option to 1. 2. Try a different solver. Either try a different algorithm in linprog (e.g. set the 'linprog.Algorithm' option to something like 'dual-simplex' or 'interior-point') or, if you can, install something like Gurobi. Best, Ray > On May 31, 2017, at 5:56 AM, Ammar Raza <[email protected]> wrote: > > hi, > > I am wondering in the MATLAB R2015a version my code is running fine but in > MATLAB R2016a version I am getting error of the same code. The error is > > Error using miqps_ot (line 346) > miqps_ot: EXITFLAG from price computation stage = 0 > > Error in miqps_matpower (line 220) > miqps_ot(H, c, A, l, u, xmin, xmax, x0, vtype, opt); > > Error in most (line 2072) > mdo.QP.lambda ] = miqps_matpower( mdi.QP.H, mdi.QP.C, ... > > Error in ammar1 (line 111) > mdo = most(mdi, mpopt); > > Kind Regard, > > Mohammad Ammar Raza > > > > > On 22 May 2017 at 15:04, Ammar Raza <[email protected] > <mailto:[email protected]>> wrote: > Hi Ray, > > Thank you for your email. > > Kind Regard, > > Mohammad Ammar Raza > > > > > On 17 May 2017 at 14:51, Ray Zimmerman <[email protected] > <mailto:[email protected]>> wrote: > Hi Mohammad, > > A unit commitment problem with quadratic generator costs or ramping costs > requires a solver that can handle Mixed Integer Quadratic Programming (MIQP) > problems. The only MATPOWER-compatible solvers that handle MIQP are Gurobi, > CPLEX and MOSEK, as stated in the System Requirements section of the MOST > User’s Manual. > > So, you will either need to install one of these solvers, or modify your > problem so that in does not include any quadratic costs. > > Ray > > >> On May 16, 2017, at 5:30 PM, Ammar Raza <[email protected] >> <mailto:[email protected]>> wrote: >> >> Hi >> >> I am trying to do example 6 of the MOST user manual with Bus 118 and I got >> this error. >> >> Error using mpopt2qpopt (line 92) >> mpopt2qpopt: Sorry, no solver available for MIQP models >> >> Error in most (line 2065) >> mdo.QP.opt = mpopt2qpopt(mpopt, model, 'most'); >> >> Error in most_ammar6 (line 108) >> mdo = most(mdi, mpopt); >> >> >> Kind Regard, >> >> Mohammad Ammar Raza >> >> >> >> >> On 15 May 2017 at 20:14, Ray Zimmerman <[email protected] >> <mailto:[email protected]>> wrote: >> In a deterministic problem, transmat can simply be a scalar with the number >> of periods. See the description of transmat in the help for loadmd() >> <http://www.pserc.cornell.edu/matpower/docs/ref/matpower6.0/most/loadmd.html>. >> >> Ray >> >> >> >>> On May 15, 2017, at 7:37 AM, Ammar Raza <[email protected] >>> <mailto:[email protected]>> wrote: >>> >>> Thank you Ray >>> >>> Therefore, Transmat should be like that? >>> >>> transmat = cell(1, nt); >>> T = [ 1x 99]; >>> [transmat{:}] = deal(T * ones(1,1)); >>> transmat{1} = T; >>> >>> Kind Regard, >>> >>> Mohammad Ammar Raza >>> >>> >>> >>> >>> On 11 May 2017 at 13:42, Ray Zimmerman <[email protected] >>> <mailto:[email protected]>> wrote: >>> Just to clarify, if loadprofile.rows = 0, then loadprofile.values(:, 1, :) >>> = [24 x 1] and all loads are scaled together. Otherwise, the number of >>> columns in loadprofile.values(:, 1, :) must equal the length of >>> loadprofile.rows and each of the specified loads is scaled separately. >>> >>> Ray >>> >>> >>>> On May 9, 2017, at 10:29 AM, Ammar Raza <[email protected] >>>> <mailto:[email protected]>> wrote: >>>> >>>> Its means >>>> >>>> loadprofile.rows= [1 x 99 ] >>>> >>>> Thanks Stephanie for your help. >>>> >>>> Kind Regard, >>>> >>>> Mohammad Ammar Raza >>>> >>>> >>>> >>>> >>>> On 9 May 2017 at 15:25, Stephanie <[email protected] >>>> <mailto:[email protected]>> wrote: >>>> Yes, and the value of rows, 0 means the load is applied to the all buses, >>>> so you should also change the value of the rows by >>>> loadprofile.rows=load_index (e.g. loadprofile.rows=[2 3 5]), if there are >>>> three loads located in bus 2, 3 and 5, respectively) >>>> >>>> Best Regards, >>>> Stephanie >>>> >>>> 2017-05-09 22:09 GMT+08:00 Ammar Raza <[email protected] >>>> <mailto:[email protected]>>: >>>> that means >>>> >>>> loadprofile = struct( ... >>>> 'type', 'mpcData', ... >>>> 'table', CT_TLOAD, ... >>>> 'rows', 0, ... >>>> 'col', CT_LOAD_ALL_PQ, ... >>>> 'chgtype', CT_REP, ... >>>> 'values', [] ); >>>> >>>> loadprofile.values(:, 1, :) = [ 24 x 99 ] >>>> >>>> >>>> Kind Regard, >>>> >>>> Mohammad Ammar Raza >>>> >>>> >>>> >>>> >>>> On 9 May 2017 at 14:55, Stephanie <[email protected] >>>> <mailto:[email protected]>> wrote: >>>> Hi, >>>> >>>> I tried it a few days before, what I did is: >>>> >>>> loadprofile.rows=load_index; %which applies the load to the bus it locates >>>> loadprofile.value (:,1,:) = [24 x 99]; >>>> >>>> And it works in my situation >>>> >>>> Hope it will help you >>>> Best Regards >>>> Stephanie >>>> >>>> From: Ammar Raza <mailto:[email protected]> >>>> Date: 2017-05-09 21:43 >>>> To: MATPOWER discussion forum <mailto:[email protected]> >>>> Subject: MOST >>>> Hi all, >>>> >>>> I am working on bus 118 with 54 generator and 99 loads. >>>> >>>> I would like to ask you for the multi period problem i.e. 24 hours, how I >>>> will make the load profile function. Can I do like that >>>> >>>> loadprofile.value (:,1,1) = [24 x 99]; >>>> >>>> >>>> >>>> As in case3a in the MOST manual there is only one load therefore, load >>>> profile matrix is [12 x 1] >>>> >>>> loadprofile.value(:,1,1)=[ >>>> 440; >>>> 480; >>>> .. >>>> .. >>>> .. ]; >>>> >>>> >>>> Kind Regard, >>>> >>>> Mohammad Ammar Raza >>>> >>>> >>>> >>>> >>>> >>>> >>> >>> >> >> > > >
