Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

neural_network_trained_kanal1

.m
Скачиваний:
0
Добавлен:
20.12.2021
Размер:
4.53 Кб
Скачать
function y1 = myNeuralNetworkFunction(x1)
%MYNEURALNETWORKFUNCTION neural network simulation function.
%
% Auto-generated by MATLAB, 20-Dec-2021 03:23:21.
%
% [y1] = myNeuralNetworkFunction(x1) takes these arguments:
% x = 2xQ matrix, input #1
% and returns:
% y = 3xQ matrix, output #1
% where Q is the number of samples.

%#ok<*RPMT0>

% ===== NEURAL NETWORK CONSTANTS =====

% Input 1
x1_step1.xoffset = [-0.0523718722387201;-4.37816445306822];
x1_step1.gain = [1.90046888629338;0.436615707358621];
x1_step1.ymin = -1;

% Layer 1
b1 = [6.1484461992722696522;-5.8196895854590797725;-4.8600339792422815322;-3.9747510593910617693;3.2627921304954035087;2.7763476944448819417;2.3210619369297895709;-1.5747403540357158835;0.73521803556021536608;-0.16254858255971826875;0.52010294960229919159;1.0532077317817616358;-1.7293373732404209164;-2.2582405018742011116;-3.3156020266393424478;3.8224457524467423397;-4.5300465512760794695;4.6508585715401054017;5.71719993785573255;6.5777469478244228185];
IW1_1 = [-3.2032135886288242155 -5.4889111010812676739;5.1249554944199999795 -3.1960317688648864909;4.012703257112170796 -4.9676250478517918197;4.3101398668970798411 4.7768335830086519067;-2.7803494456432953363 -5.8898132178935291847;-4.4680906429026583382 4.4619598389900989588;-3.715345266040127381 -5.3116521183130291917;5.2540246085000905651 -3.3506314495853826152;-4.5405477939723697389 -4.6560070887601208156;4.4345283066441751885 -4.3050676540198233866;0.20166174197686642655 6.2645762156041975288;6.2008743483695258902 0.90897172067896070402;-6.1886348388375793661 0.79891543935349174088;-1.1318202910431089947 -6.1727724022125221026;-4.3595633291016193667 4.1225077043358329121;6.0478017811132289694 1.3916719384989737485;-6.0312406246600556159 -1.9066168796624116677;6.5209493307179577926 0.22301928015808622496;5.8902940944359807318 -1.6575946146139215465;3.8144098087432731781 -4.4723146750467668298];

% Layer 2
b2 = [0.46095059712519736994;1.1596342351621349298;0.1925964811804455612];
LW2_1 = [-0.32325779834176004979 -0.15373791795094421397 0.79285718334119770212 -0.10642330942403574467 -0.014742428423668560433 -0.1787091246530995714 -0.39858970836265911197 0.51311257431151202635 -0.25455885956760515576 -0.45923279511041897871 -0.047194903432542463506 -0.45838643518702965052 0.54939670267049633967 -0.15193646400567623056 0.50585934625324835423 0.84475829552192438499 -0.053765627997319105635 0.36897388079983689524 0.40518734694211289149 0.23812755474914629183;0.18982808611005833055 -0.69874458843415032661 0.99296352123322828565 -1.2309038490302544044 -0.79489013165002209149 0.095994373346009978509 -0.82833738320292926716 -0.20974146962764567137 -0.47415692300856576713 -0.08374992067437725396 0.0094723490971001939043 -0.67349209574829560498 -0.6781371990110530712 0.075198874812105076515 0.022723586691435336549 0.24683296387324613064 1.5836750856822701117 0.4333109117551550149 0.34227832782941702838 0.084433120423059171422;-0.68306050424949893429 -0.84877794951745066943 0.0298690122617270154 0.85149984715981086314 0.51240576272519278156 -0.23712318447797803289 0.84345231084653760067 -0.83647303835448894027 0.60491465531229948738 -0.62518124976637545753 0.27410942706017638049 -0.3598966747997671134 0.33336465184374131088 0.27838015679378608214 0.83660534923829898979 -0.1121717530576178401 0.031425126855284327143 0.6065711766526266091 0.63463792186729539591 0.88716100860917312954];

% Output 1
y1_step1.ymin = -1;
y1_step1.gain = [0.0536323697169743;0.0128741997715181;1.71155391807072];
y1_step1.xoffset = [3.78981345280034;128.221986732287;0.58147122688696];

% ===== SIMULATION ========

% Dimensions
Q = size(x1,2); % samples

% Input 1
xp1 = mapminmax_apply(x1,x1_step1);

% Layer 1
a1 = tansig_apply(repmat(b1,1,Q) + IW1_1*xp1);

% Layer 2
a2 = repmat(b2,1,Q) + LW2_1*a1;

% Output 1
y1 = mapminmax_reverse(a2,y1_step1);
y1 = abs(y1);
end

% ===== MODULE FUNCTIONS ========

% Map Minimum and Maximum Input Processing Function
function y = mapminmax_apply(x,settings)
y = bsxfun(@minus,x,settings.xoffset);
y = bsxfun(@times,y,settings.gain);
y = bsxfun(@plus,y,settings.ymin);
end

% Sigmoid Symmetric Transfer Function
function a = tansig_apply(n,~)
a = 2 ./ (1 + exp(-2*n)) - 1;
end

% Map Minimum and Maximum Output Reverse-Processing Function
function x = mapminmax_reverse(y,settings)
x = bsxfun(@minus,y,settings.ymin);
x = bsxfun(@rdivide,x,settings.gain);
x = bsxfun(@plus,x,settings.xoffset);
end



Соседние файлы в предмете Теория автоматического управления