save a training code using ANN in script and use it in a function in simulink Matlab.
5 views (last 30 days)
Show older comments
Hello,
so i have a code for prediction of the output power of solar pv panel in a script, i want to save the training model of the script, then i want to use this training model in a function block using simulink Matlab, but the problem is i don't know how to save the "net" of the training model, and after saving it, how to use it in the function?
%code for prediction
load Nndat.mat
% This script assumes these variables are defined:
% datas21 - input data.
% Solarenergy - target data.
x = datas21';
t = Solarenergy';
% Choose a Training Function
% For a list of all training functions type: help nntrain
% 'trainlm' is usually fastest.
% 'trainbr' takes longer but may be better for challenging problems.
% 'trainscg' uses less memory. Suitable in low memory situations.
trainFcn = 'trainlm'; % Levenberg-Marquardt backpropagation.
% Create a Fitting Network
hiddenLayerSize = 10;
net = fitnet(hiddenLayerSize,trainFcn);
% Setup Division of Data for Training, Validation, Testing
net.divideParam.trainRatio = 70/100;
net.divideParam.valRatio = 15/100;
net.divideParam.testRatio = 15/100;
% Train the Network
[net,tr] = train(net,x,t);
% Test the Network
y = net(x);
e = gsubtract(t,y);
performance = perform(net,t,y)
% View the Network
view(net)
% Plots
% Uncomment these lines to enable various plots.
plot(x(1,:),y,'o')
%function using simulink matlab:
function outputPower = predictPVOutput(inputData)
% Predict using the ANN
outputPower = net(inputData);
end
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1568339/image.png)
Accepted Answer
Ganesh
on 18 Dec 2023
Edited: Ganesh
on 18 Dec 2023
I understand that you are trying to save your ANN so as to use the model at a later point. You can achieve this by using the save and load commands.
In your case, the implementation will be as follows:
[net,tr] = train(net,x,t); % Training the model
save('net')
function outputPower = predictPVOutput(inputData)
load('net')
outputPower = net(inputData);
end
Please refer to the following documentation for more info on save() function. You may use it to name your saved file accordingly.
Thanks,
Ganesh
3 Comments
More Answers (0)
See Also
Categories
Find more on Modeling and Prediction with NARX and Time-Delay Networks in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!