This has nothing to do with code generation. As I just said to another user in 
this same thread, please do not reply to a message regarding an unrelated 
issue. Use a new subject line when asking a question about a new topic.

See section 2.4.1 in the User’s 
Manual<https://matpower.org/docs/MATPOWER-manual-7.0.pdf>. Simply create a case 
file (e.g. case_3bus.m) with the data for your system, then use 
runpf('case_3bus.m’).

   Ray


On Apr 14, 2020, at 8:31 AM, Teshome Hambissa 
<tebiss...@gmail.com<mailto:tebiss...@gmail.com>> wrote:

Dear member,
I need run power flow calculation for three generator and four bus system.can 
you give me the way i understand the matlab code for this problem

kind regards,
Teshome Hambissa
Lecturer
Addis Ababa Universiy, AAiT, SECE
Addis Ababa, Ethiopia


On Mon, Apr 13, 2020 at 9:58 PM Ray Daniel Zimmerman 
<r...@cornell.edu<mailto:r...@cornell.edu>> wrote:
If I understand correctly, persistent should work if it appears at the 
top-level within the function (as opposed to inside if-then blocks like this 
particular case). So I think you should be able to fix this one by moving that 
line to the first line in the function. I don’t see any other persistent calls 
that should require changing. That is, I believe they are all already at the 
top level of their function.

As far as num2cell(),  my first idea is to try replacing all calls with a call 
to a new function, say mp_num2cell() that simply creates a cell array of the 
same dimensions as the input and copies the contents element by element, 
something like …

function c = mp_num2cell(num)
c = cell(size(num));
for k = 1:length(num(:))
    c{k} = num(k);
end

Let me know if that works and if anything else pops up.

   Ray



On Apr 13, 2020, at 9:58 AM, Lode De Herdt 
<lode.de.he...@gmail.com<mailto:lode.de.he...@gmail.com>> wrote:

Hi Ray,

Thank you for the reply. I've spent a little time trying to remove the things 
that are unsupported from the MATPOWER code but it looks like I'm opening a 
Pandora's box here; each error I solve just leads to the next errors so it's 
difficult to solve without good knowledge of MATLAB and the inner workings of 
MATPOWER.

The first error was:
PERSISTENT declarations may only appear at the top-level.
Function 'moption.m' (#57.41253.41263), line 697, column 9:
"persistent"

So I replaced persistent nsc_opt with nsc_opt = []; and did the same for other 
places where 'persistent' was used as was suggested in message 
05192<https://www.mail-archive.com/matpower-l@cornell.edu/msg05192.html> of 
this forum, but that then leads to this:
This assignment writes a 'struct' value into a 'double' type. Code generation 
does not support changing types through assignment. Check preceding assignments 
or input type specifications for type mismatches.
Function 'mpoption.m' (#34.71098.71101), line 1531, column 5:
"opt"

One of the other errors indicates that the num2cell function is not supported 
for code generation, but who knows what else will appear once that one is 
solved.

Let me know if you or anyone else has any other ideas, or experience with 
MATPOWER and code generation.

Best regards,
Lode



On Mon, Apr 13, 2020 at 4:36 PM Ray Daniel Zimmerman 
<r...@cornell.edu<mailto:r...@cornell.edu>> wrote:
I can’t think of another option. I’ve not personally worked with the C code 
generation in MATLAB, so I’m not familiar with the requirements. Do you know 
what specifically is used by MATPOWER that is not supported? If there are easy 
ways to avoid those things, it would certainly make sense to do so.

   Ray


On Apr 13, 2020, at 7:53 AM, Lode De Herdt 
<lode.de.he...@gmail.com<mailto:lode.de.he...@gmail.com>> wrote:

Dear Matpower users,

I am trying to run a simulation of a distribution grid on an OPAL-RT real-time 
digital simulator, using Matpower. The simulator requires a Simulink model, 
which it converts to C code in order to run the model on its hardware. Using 
the MATLAB Function block in Simulink, I can integrate a few lines of Matlab 
code into the model that run a power flow with Matpower.

Unfortunately it seems that not all of the code used for Matpower is supported 
for C code generation, so the Simulink model cannot run.

Other than manually re-writing the Matpower code to avoid everything that's 
unsupported for code generation, is there any easier way of running Matpower in 
Simulink? It must be compatible with code generation so using an extrinsic 
coder or something similar is unfortunately not an option.

Thank you for your help!

Best regards,
Lode




Reply via email to