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