diff --git a/.github/workflows/run-tests-dev.yml b/.github/workflows/run-tests-dev.yml index f12067f9..8ba0104b 100644 --- a/.github/workflows/run-tests-dev.yml +++ b/.github/workflows/run-tests-dev.yml @@ -23,21 +23,21 @@ jobs: strategy: fail-fast: false matrix: - release: [R2020b, latest] + release: [latest] folder: [Body-to-Body_Interactions, Cable, Controls, + Desalination, End_Stops, Free_Decay, Generalized_Body_Modes, Mean_Drift, - Mooring, Morison_Element, MOST, Multiple_Condition_Runs, + Multiple_Wave_Headings, Nonhydro_Body, Nonlinear_Hydro, - Paraview_Visualization, Passive_Yaw, PTO-Sim, Radiation_Force_Options, @@ -46,14 +46,13 @@ jobs: Write_Custom_h5] include: - products: Simulink Simscape Simscape_Multibody - - release: latest - folder: Desalination + - folder: Desalination products: Simulink Simscape Simscape_Multibody Simscape_Fluids - folder: Controls products: Simulink Simscape Simscape_Multibody Control_System_Toolbox Optimization_Toolbox System_Identification_Toolbox Statistics_and_Machine_Learning_Toolbox Symbolic_Math_Toolbox - folder: WECCCOMP products: Simulink Simscape Simscape_Multibody Control_System_Toolbox Optimization_Toolbox System_Identification_Toolbox Statistics_and_Machine_Learning_Toolbox - name: ${{ matrix.folder }} on MATLAB ${{ matrix.release }} + name: ${{ matrix.folder }} MATLAB ${{ matrix.release }} on Linux steps: - name: Check out repository (repository dispatch) uses: actions/checkout@v2 @@ -104,4 +103,4 @@ jobs: - name: Run tests and generate artifacts uses: matlab-actions/run-command@v1 with: - command: results = wecSimAppTest("${{ matrix.folder }}"), assertSuccess(results); + command: results = wecSimAppTest("${{ matrix.folder }}"), assertSuccess(results); \ No newline at end of file diff --git a/MOST/hydroData/bemio.m b/MOST/hydroData/bemio.m index 8f1bd25b..928a9893 100644 --- a/MOST/hydroData/bemio.m +++ b/MOST/hydroData/bemio.m @@ -1,11 +1,7 @@ -clear all -close all -clc -foldernemoh = 'VolturnUS15MW_nemoh'; hydro = struct(); -hydro = readNEMOH(hydro,[pwd,filesep,foldernemoh,filesep]); +hydro = readNEMOH(hydro,fullfile('VolturnUS15MW_nemoh')); hydro = radiationIRF(hydro,90,201,201,[],[]); hydro = radiationIRFSS(hydro,[],[]); hydro = excitationIRF(hydro,90,[],[],[],[]); -writeBEMIOH5(hydro) \ No newline at end of file +writeBEMIOH5(hydro) diff --git a/MOST/mostData/mooring/Create_Mooring_Matrix.m b/MOST/mostData/mooring/Create_Mooring_Matrix.m index 54e90a98..60d469da 100644 --- a/MOST/mostData/mooring/Create_Mooring_Matrix.m +++ b/MOST/mostData/mooring/Create_Mooring_Matrix.m @@ -1,9 +1,5 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Script to compute mooring look-up table %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% INITIALIZATION -close all -clearvars -except testCase +function moor_matrix = Create_Mooring_Matrix() +%% Function to compute mooring look-up table %% SETTINGS if 1 %% Line @@ -73,8 +69,9 @@ %% SAVE save('Mooring_VolturnUS15MW','moor_matrix'); -%% FUNCTIONS +end +%% FUNCTIONS function moor_matrix = moor_matrix_6dof(moor_matrix,Data_moor) HV_out=zeros(Data_moor.number_lines,2); diff --git a/MOST/mostData/mostIO.m b/MOST/mostData/mostIO.m index 34b7aff3..95ec8977 100644 --- a/MOST/mostData/mostIO.m +++ b/MOST/mostData/mostIO.m @@ -1,31 +1,27 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Script to pre-process all required inputs for WEC-Sim+MOST %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Initialization -clearvars -except testCase -close all -clc %% TurbSim Data cd turbSim -run_turbsim +Wind = run_turbsim(); cd .. %% Mooring Data cd mooring -Create_Mooring_Matrix +moor_matrix = Create_Mooring_Matrix(); cd .. %% Turbine Data cd windTurbine cd turbine_properties -WTproperties -BladeData +WTcomponents = WTproperties(); +bladedata = BladeData(); cd .. cd control -Steady_States -Controller +[BEM_data, SS] = Steady_States(); +[BEM_data, Ctrl] = Controller(); cd .. cd aeroloads -AeroLoads +[BEM_data, aeroloads] = AeroLoads(); cd .. cd .. diff --git a/MOST/mostData/turbSim/TurbSim64.exe b/MOST/mostData/turbSim/TurbSim64.exe deleted file mode 100644 index a642000e..00000000 Binary files a/MOST/mostData/turbSim/TurbSim64.exe and /dev/null differ diff --git a/MOST/mostData/turbSim/WIND_11mps.mat b/MOST/mostData/turbSim/WIND_11mps.mat deleted file mode 100644 index 31dbfc58..00000000 Binary files a/MOST/mostData/turbSim/WIND_11mps.mat and /dev/null differ diff --git a/MOST/mostData/turbSim/run_turbsim.m b/MOST/mostData/turbSim/run_turbsim.m index a498a8d9..761c7ec4 100644 --- a/MOST/mostData/turbSim/run_turbsim.m +++ b/MOST/mostData/turbSim/run_turbsim.m @@ -1,21 +1,23 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Script to create wind input file %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% INITIALIZATION -clearvars -except testCase +function Wind = run_turbsim() +%% Function to create wind input file + %% SETTINGS -WINDvector=[11]; % how many velocities of the wind to put -filename_Turbsim='Turbsim_inputfile.txt'; % name of the input file for turbsim -deleteOut=false; % check if temporary outputs of Turbsim must be deleted -%% TURBSIM -for V_i=1:length(WINDvector) - fileID = fopen(filename_Turbsim,'r'); - raw1 = textscan(fileID, '%s',Delimiter='%\n'); - raw1 = raw1{1,1}; - raw1{37,1} = [num2str(WINDvector(V_i)) ' URef - Mean (total) wind speed at the reference height [m/s] (or "default" for JET wind profile)']; - writecell((raw1),['WIND_' num2str(WINDvector(V_i)) 'mps.txt'],'QuoteStrings',false) - fclose('all'); - system(['.\TurbSim64.exe WIND_',num2str(WINDvector(V_i)),'mps.txt']); +WINDvector = [11]; % wind velocities to run in TurbSim +filename_Turbsim = 'Turbsim_inputfile.txt'; % name of the input file for turbsim +deleteOut = false; % check if temporary outputs of Turbsim must be deleted +turbSimInstalled = false; % Set to true if the TurbSim64.exe executable is installed in this directory + +%% TURBSIM - OPTIONAL +if isfile('TurbSim64.exe') + for V_i=1:length(WINDvector) + fileID = fopen(filename_Turbsim,'r'); + raw1 = textscan(fileID, '%s',Delimiter='%\n'); + raw1 = raw1{1,1}; + raw1{37,1} = [num2str(WINDvector(V_i)) ' URef - Mean (total) wind speed at the reference height [m/s] (or "default" for JET wind profile)']; + writecell((raw1),['WIND_' num2str(WINDvector(V_i)) 'mps.txt'],'QuoteStrings',false) + fclose('all'); + system(['./TurbSim64.exe WIND_',num2str(WINDvector(V_i)),'mps.txt']); + end end %% SAVE @@ -35,8 +37,4 @@ delete([FileName '.txt']); end end - - - - - +end diff --git a/MOST/mostData/windTurbine/aeroloads/AeroLoads.m b/MOST/mostData/windTurbine/aeroloads/AeroLoads.m index c2b3957c..79f1d0f3 100644 --- a/MOST/mostData/windTurbine/aeroloads/AeroLoads.m +++ b/MOST/mostData/windTurbine/aeroloads/AeroLoads.m @@ -1,8 +1,5 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Script to compute aeroloads look-up table %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% INITIALIZATION -clearvars -except testCase +function [BEM_data, aeroloads] = AeroLoads() +%% Function to compute aeroloads look-up table %% SETTINGS if 1 %% Look up table settings @@ -88,9 +85,9 @@ %% SAVE save('Aeroloads_IEA15MW','aeroloads') +end %% FUNCTIONS - function F_aero = BEM(v_wind_rel,omega,bladepitch,data) pntm=[0 0 0].*data.r; diff --git a/MOST/mostData/windTurbine/control/Controller.m b/MOST/mostData/windTurbine/control/Controller.m index 56461dd6..881b95d0 100644 --- a/MOST/mostData/windTurbine/control/Controller.m +++ b/MOST/mostData/windTurbine/control/Controller.m @@ -1,8 +1,5 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Script to compute controls data %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% INITIALIZATION -clearvars -except testCase +function [BEM_data, Ctrl] = Controller() +%% Function to compute controls data %% SETTINGS if 1 %% Plot @@ -242,8 +239,9 @@ %% SAVE save("Control_IEA15MW","Ctrl") -%% FUNCTIONS +end +%% FUNCTIONS function om_d = Omega_dot(C_gen,wind,omega,bladepitch,BEM_data,RotorInertia) F_aero = BEM(wind,omega,bladepitch,BEM_data); diff --git a/MOST/mostData/windTurbine/control/Steady_States.m b/MOST/mostData/windTurbine/control/Steady_States.m index 643ca525..d0606a03 100644 --- a/MOST/mostData/windTurbine/control/Steady_States.m +++ b/MOST/mostData/windTurbine/control/Steady_States.m @@ -1,9 +1,5 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Script to compute control steady states %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% INIT -clearvars -except testCase -close all +function [BEM_data, SS] = Steady_States() +%% Function to compute control steady states %% SETTINGS if 1 %% Plot @@ -29,8 +25,6 @@ BEM_data.maxit2=50; BEM_data.eps=1e-6; - - end %% DATA if 1 @@ -164,6 +158,8 @@ %% SAVE save('SteadyStates_IEA15MW','SteadyStates') +end + %% FUNCTIONS function diff=find_rated(x,omega_rated_try,v_rated_try) diff --git a/MOST/mostData/windTurbine/turbine_properties/BladeData.m b/MOST/mostData/windTurbine/turbine_properties/BladeData.m index 725fc5ef..3b991678 100644 --- a/MOST/mostData/windTurbine/turbine_properties/BladeData.m +++ b/MOST/mostData/windTurbine/turbine_properties/BladeData.m @@ -1,9 +1,7 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Script to create bladedata struct %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Initialization -clearvars -except testCase -load('Properties_IEA15MW') +function bladedata = BladeData() +%% Function to create bladedata struct +load('Properties_IEA15MW'); + %% Blade bladefile=importdata('BladeData/IEA-15-240-RWT_blade.dat',' ',6); bladedata.radius=bladefile.data(:,1)+WTcomponents.hub.Rhub; @@ -26,3 +24,4 @@ %% Save save('Bladedata_IEA_15MW.mat','bladedata') +end diff --git a/MOST/mostData/windTurbine/turbine_properties/WTproperties.m b/MOST/mostData/windTurbine/turbine_properties/WTproperties.m index b71f5918..e7ef4478 100644 --- a/MOST/mostData/windTurbine/turbine_properties/WTproperties.m +++ b/MOST/mostData/windTurbine/turbine_properties/WTproperties.m @@ -1,9 +1,5 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Script to create wind turbine properties struct %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Initialization -clearvars -except testCase -clc +function WTcomponents = WTproperties() +%% Function to create wind turbine properties struct WTcomponents=struct; %% Tower WTcomponents.tower.mass= 1.4667e+06; @@ -103,14 +99,16 @@ %% Geometry files -WTcomponents.geometryFileTower = 'geometry\IEA15MW_Tower.STEP'; -WTcomponents.geometryFileNacelle = 'geometry\IEA15MW_Nacelle.STEP'; -WTcomponents.geometryFileHub = 'geometry\IEA15MW_Hub.STEP'; -WTcomponents.geometryFileBlade = 'geometry\IEA15MW_Blade.STEP'; +WTcomponents.geometryFileTower = 'geometry/IEA15MW_Tower.STEP'; +WTcomponents.geometryFileNacelle = 'geometry/IEA15MW_Nacelle.STEP'; +WTcomponents.geometryFileHub = 'geometry/IEA15MW_Hub.STEP'; +WTcomponents.geometryFileBlade = 'geometry/IEA15MW_Blade.STEP'; %% Save save('Properties_IEA15MW','WTcomponents') -%% FUNCTIONS +end + +%% FUNCTIONS function [Rx] = Rx(phi) Rx=[1 0 0; diff --git a/MOST/tests/TestMOST.m b/MOST/tests/TestMOST.m index a380796a..84a8e4d2 100644 --- a/MOST/tests/TestMOST.m +++ b/MOST/tests/TestMOST.m @@ -69,13 +69,8 @@ function runTurbulentTest(testCase) function plotTests(testCase) % Plot Old vs. New Comparison if testCase.plotComparison == 1 - % Constant - load('constant/constant.mat','constant'); - plotTests(constant.newCase,constant.orgCase); - - % Turbulent - load('turbulent/turbulent.mat','turbulent'); - plotTests(turbulent.newCase,turbulent.orgCase); + plotTests(testCase.constant.newCase,testCase.constant.orgCase); + plotTests(testCase.turbulent.newCase,testCase.turbulent.orgCase); end end function checkVisibilityRestored(testCase) diff --git a/MOST/tests/constant/wecSimInputFile.m b/MOST/tests/constant/wecSimInputFile.m index f49fecf9..2162171b 100644 --- a/MOST/tests/constant/wecSimInputFile.m +++ b/MOST/tests/constant/wecSimInputFile.m @@ -29,8 +29,8 @@ %% Body class (Platform) -body(1) = bodyClass('..\..\hydroData\VolturnUS15MW_nemoh.h5'); % Initialize bodyClass (giving hydro data file as input) -body(1).geometryFile = '..\..\geometry\VolturnUS15MW.STEP'; % Geometry File +body(1) = bodyClass('../../hydroData/VolturnUS15MW_nemoh.h5'); % Initialize bodyClass (giving hydro data file as input) +body(1).geometryFile = '../../geometry/VolturnUS15MW.STEP'; % Geometry File body(1).mass = 17838000; % User-Defined mass [kg] body(1).inertia = 1.0e+10*[1.2507 1.2507 2.3667]; % Moment of Inertia [kg-m^2] body(1).quadDrag.drag = [9.23E+05 0.00E+00 0.00E+00 0.00E+00 -8.92E+06 0.00E+00 %AddBQuad - Additional quadratic drag(N/(m/s)^2, N/(rad/s)^2, N-m(m/s)^2, N-m/(rad/s)^2) @@ -49,7 +49,7 @@ windTurbine(1) = windTurbineClass('IEA15MW'); % Initialize turbine size and Specify Type windTurbine(1).control = 1; % Controltype: 0-->Baseline, 1-->ROSCO -windTurbine(1).aeroLoadsName = fullfile('..','..','mostData','windTurbine','aeroloads','aeroloads_IEA15MW.mat'); % Aeroloads filename +windTurbine(1).aeroLoadsName = fullfile('..','..','mostData','windTurbine','aeroloads','Aeroloads_IEA15MW.mat'); % Aeroloads filename windTurbine(1).turbineName = fullfile('Properties_IEA15MW.mat'); % Windturbine properties filename windTurbine(1).controlName = fullfile('..','..','mostData','windTurbine','control','Control_IEA15MW.mat'); % Controller filename windTurbine(1).omega0 = 7.55*pi/30; % Initial value for rotor speed diff --git a/MOST/tests/turbulent/wecSimInputFile.m b/MOST/tests/turbulent/wecSimInputFile.m index b89f6544..1034ae6e 100644 --- a/MOST/tests/turbulent/wecSimInputFile.m +++ b/MOST/tests/turbulent/wecSimInputFile.m @@ -29,8 +29,8 @@ %% Body class (Platform) -body(1) = bodyClass('..\..\hydroData\VolturnUS15MW_nemoh.h5'); % Initialize bodyClass (giving hydro data file as input) -body(1).geometryFile = '..\..\geometry\VolturnUS15MW.STEP'; % Geometry File +body(1) = bodyClass('../../hydroData/VolturnUS15MW_nemoh.h5'); % Initialize bodyClass (giving hydro data file as input) +body(1).geometryFile = '../../geometry/VolturnUS15MW.STEP'; % Geometry File body(1).mass = 17838000; % User-Defined mass [kg] body(1).inertia = 1.0e+10*[1.2507 1.2507 2.3667]; % Moment of Inertia [kg-m^2] body(1).quadDrag.drag = [9.23E+05 0.00E+00 0.00E+00 0.00E+00 -8.92E+06 0.00E+00 %AddBQuad - Additional quadratic drag(N/(m/s)^2, N/(rad/s)^2, N-m(m/s)^2, N-m/(rad/s)^2) @@ -49,7 +49,7 @@ windTurbine(1) = windTurbineClass('IEA15MW'); % Initialize turbine size and Specify Type windTurbine(1).control = 1; % Controltype: 0-->Baseline, 1-->ROSCO -windTurbine(1).aeroLoadsName = fullfile('..','..','mostData','windTurbine','aeroloads','aeroloads_IEA15MW.mat'); % Aeroloads filename +windTurbine(1).aeroLoadsName = fullfile('..','..','mostData','windTurbine','aeroloads','Aeroloads_IEA15MW.mat'); % Aeroloads filename windTurbine(1).turbineName = fullfile('Properties_IEA15MW.mat'); % Windturbine properties filename windTurbine(1).controlName = fullfile('..','..','mostData','windTurbine','control','Control_IEA15MW.mat'); % Controller filename windTurbine(1).omega0 = 7.55*pi/30; % Initial value for rotor speed diff --git a/MOST/wecSimInputFile.m b/MOST/wecSimInputFile.m index c168788a..9df207f8 100644 --- a/MOST/wecSimInputFile.m +++ b/MOST/wecSimInputFile.m @@ -31,8 +31,8 @@ %% Body class (Platform) -body(1) = bodyClass('hydroData\VolturnUS15MW_nemoh.h5'); % Initialize bodyClass (giving hydro data file as input) -body(1).geometryFile = 'geometry\VolturnUS15MW.STEP'; % Geometry File +body(1) = bodyClass('hydroData/VolturnUS15MW_nemoh.h5'); % Initialize bodyClass (giving hydro data file as input) +body(1).geometryFile = 'geometry/VolturnUS15MW.STEP'; % Geometry File body(1).mass = 17838000; % User-Defined mass [kg] body(1).inertia = 1.0e+10*[1.2507 1.2507 2.3667]; % Moment of Inertia [kg-m^2] body(1).quadDrag.drag = [9.23E+05 0.00E+00 0.00E+00 0.00E+00 -8.92E+06 0.00E+00 %AddBQuad - Additional quadratic drag(N/(m/s)^2, N/(rad/s)^2, N-m(m/s)^2, N-m/(rad/s)^2) diff --git a/Multiple_wave-headings/OSWEC.slx b/Multiple_Wave_Headings/OSWEC.slx similarity index 100% rename from Multiple_wave-headings/OSWEC.slx rename to Multiple_Wave_Headings/OSWEC.slx diff --git a/Multiple_wave-headings/README.md b/Multiple_Wave_Headings/README.md similarity index 100% rename from Multiple_wave-headings/README.md rename to Multiple_Wave_Headings/README.md diff --git a/Multiple_wave-headings/Test_NWaves.m b/Multiple_Wave_Headings/TestMultipleWaveHeadings.m similarity index 88% rename from Multiple_wave-headings/Test_NWaves.m rename to Multiple_Wave_Headings/TestMultipleWaveHeadings.m index dde6061c..ed6916d6 100644 --- a/Multiple_wave-headings/Test_NWaves.m +++ b/Multiple_Wave_Headings/TestMultipleWaveHeadings.m @@ -1,4 +1,4 @@ -classdef Test_NWaves < matlab.unittest.TestCase +classdef TestMultipleWaveHeadings < matlab.unittest.TestCase properties OriginalDefault @@ -10,7 +10,7 @@ methods (Access = 'public') - function obj = Test_NWaves + function obj = TestMultipleWaveHeadings obj.testDir = fileparts(mfilename('fullpath')); end end @@ -48,7 +48,7 @@ function checkVisibilityRestored(testCase) end methods(Test) - function TestNWaves(testCase) + function testMultiple_Wave_Headings(testCase) wecSim end end diff --git a/Multiple_wave-headings/geometry/base.stl b/Multiple_Wave_Headings/geometry/base.stl similarity index 100% rename from Multiple_wave-headings/geometry/base.stl rename to Multiple_Wave_Headings/geometry/base.stl diff --git a/Multiple_wave-headings/geometry/flap.stl b/Multiple_Wave_Headings/geometry/flap.stl similarity index 100% rename from Multiple_wave-headings/geometry/flap.stl rename to Multiple_Wave_Headings/geometry/flap.stl diff --git a/Multiple_wave-headings/hydroData/bemio.m b/Multiple_Wave_Headings/hydroData/bemio.m similarity index 100% rename from Multiple_wave-headings/hydroData/bemio.m rename to Multiple_Wave_Headings/hydroData/bemio.m diff --git a/Multiple_wave-headings/hydroData/oswec.out b/Multiple_Wave_Headings/hydroData/oswec.out similarity index 100% rename from Multiple_wave-headings/hydroData/oswec.out rename to Multiple_Wave_Headings/hydroData/oswec.out diff --git a/Multiple_wave-headings/wecSimInputFile.m b/Multiple_Wave_Headings/wecSimInputFile.m similarity index 100% rename from Multiple_wave-headings/wecSimInputFile.m rename to Multiple_Wave_Headings/wecSimInputFile.m diff --git a/WECCCOMP/WECCCOMP_Nonlinear_Model_Predictive/userDefinedFunctions.m b/WECCCOMP/WECCCOMP_Nonlinear_Model_Predictive/userDefinedFunctions.m index 84d65007..19cc7ec5 100644 --- a/WECCCOMP/WECCCOMP_Nonlinear_Model_Predictive/userDefinedFunctions.m +++ b/WECCCOMP/WECCCOMP_Nonlinear_Model_Predictive/userDefinedFunctions.m @@ -66,7 +66,7 @@ text(40,(uyl-10),txt1,'Color','blue','FontSize',18,'EdgeColor', 'blue','LineWidth',2, 'Margin', 10); % Control and instantaneous power -tL = tiledlayout(fig2,2,1,'TileSpacing','compact','TileIndexing','rowmajor'); +tL = tiledlayout(fig2,2,1,'TileSpacing','compact'); nexttile(tL,1) stairs( t, u,'-b','LineWidth',1); hold on; grid on; ylabel('Control input [Nm]'); @@ -76,7 +76,7 @@ yticklabels({'-15','-12', '-10', '-5', '0', '5', '10', '12','15' }) yline(Umax, 'r--', 'LineWidth', 2 ); yline(Umin, 'r--', 'LineWidth', 2 ); - title( "pto Moment", FontSize=16 ); + title( "pto Moment", 'FontSize', 16 ); nexttile(tL,2) plot( t, p,'-b','LineWidth',1); hold on; grid on; @@ -85,7 +85,7 @@ ylabel( 'Power [w]' ); ylim([1.2*min(p) 1.2*max(p)]); xlim([20 t_end+5]) - title( txtPower, FontSize=16); + title( txtPower, 'FontSize', 16); %% Calculate Evaluation Criteria (EC) pto_force = -output.ptos.forceActuation(ii:end,3); pto_displacement = motor_displacement.signals.values(ii:end);