%This Example for using users m-function Optimization_subroutine.m was created automatically by PSG Toolbox. %Function description: %minimize %0.5*linear(matrix_cosobj) %+0.5*linear(matrix_sinobj) %Constraint: <= vector_multilinconstrcosright %linearmulti(matrix_multilinconstrcosright) %Constraint: <= vector_multilinconstrsinright %linearmulti(matrix_multilinconstrsinright) %Constraint: >= vector_multilinconstrcosleft %linearmulti(matrix_multilinconstrcosleft) %Constraint: >= vector_multilinconstrsinleft %linearmulti(matrix_multilinconstrsinleft) %Constraint: <= parameter_bound %linearmulti(matrix_multilinconstrboundcosright) %Constraint: <= parameter_bound_1 %linearmulti(matrix_multilinconstrboundsinright) %Constraint: >= parameter_bound_2 %linearmulti(matrix_multilinconstrboundcosleft) %Constraint: >= parameter_bound_3 %linearmulti(matrix_multilinconstrboundsinleft) %Constraint: == parameter_bound_4 %linear(matrix_indicconstr) %Constraint: == parameter_bound_5 %linearmulti(matrix_symcosconstr) %Constraint: == parameter_bound_6 %linearmulti(matrix_asymsinconstr) %Box_of_variables: types = point_types %Solver: precision = parameter_precision, stages = 30, init_point = point_init % %Input variables: % %Inputs PSG Type PSG Object Location in Problem Statement Class %matrix_cosobj_benchmark bench matrix_cosobj 0.5*linear(matrix_cosobj) double %matrix_cosobj_data data matrix_cosobj 0.5*linear(matrix_cosobj) double %matrix_cosobj_vars vars matrix_cosobj 0.5*linear(matrix_cosobj) cell %matrix_sinobj_benchmark bench matrix_sinobj +0.5*linear(matrix_sinobj) double %matrix_sinobj_data data matrix_sinobj +0.5*linear(matrix_sinobj) double %matrix_sinobj_vars vars matrix_sinobj +0.5*linear(matrix_sinobj) cell %matrix_multilinconstrcosright_data data matrix_multilinconstrcosright linearmulti(matrix_multilinconstrcosright) double %matrix_multilinconstrcosright_vars vars matrix_multilinconstrcosright linearmulti(matrix_multilinconstrcosright) cell %matrix_multilinconstrsinright_data data matrix_multilinconstrsinright linearmulti(matrix_multilinconstrsinright) double %matrix_multilinconstrsinright_vars vars matrix_multilinconstrsinright linearmulti(matrix_multilinconstrsinright) cell %matrix_multilinconstrcosleft_data data matrix_multilinconstrcosleft linearmulti(matrix_multilinconstrcosleft) double %matrix_multilinconstrcosleft_vars vars matrix_multilinconstrcosleft linearmulti(matrix_multilinconstrcosleft) cell %matrix_multilinconstrsinleft_data data matrix_multilinconstrsinleft linearmulti(matrix_multilinconstrsinleft) double %matrix_multilinconstrsinleft_vars vars matrix_multilinconstrsinleft linearmulti(matrix_multilinconstrsinleft) cell %matrix_multilinconstrboundcosright_data data matrix_multilinconstrboundcosright linearmulti(matrix_multilinconstrboundcosright) double %matrix_multilinconstrboundcosright_vars vars matrix_multilinconstrboundcosright linearmulti(matrix_multilinconstrboundcosright) cell %matrix_multilinconstrboundsinright_data data matrix_multilinconstrboundsinright linearmulti(matrix_multilinconstrboundsinright) double %matrix_multilinconstrboundsinright_vars vars matrix_multilinconstrboundsinright linearmulti(matrix_multilinconstrboundsinright) cell %matrix_multilinconstrboundcosleft_data data matrix_multilinconstrboundcosleft linearmulti(matrix_multilinconstrboundcosleft) double %matrix_multilinconstrboundcosleft_vars vars matrix_multilinconstrboundcosleft linearmulti(matrix_multilinconstrboundcosleft) cell %matrix_multilinconstrboundsinleft_data data matrix_multilinconstrboundsinleft linearmulti(matrix_multilinconstrboundsinleft) double %matrix_multilinconstrboundsinleft_vars vars matrix_multilinconstrboundsinleft linearmulti(matrix_multilinconstrboundsinleft) cell %matrix_indicconstr_data data matrix_indicconstr linear(matrix_indicconstr) double %matrix_indicconstr_vars vars matrix_indicconstr linear(matrix_indicconstr) cell %matrix_symcosconstr_data data matrix_symcosconstr linearmulti(matrix_symcosconstr) double %matrix_symcosconstr_vars vars matrix_symcosconstr linearmulti(matrix_symcosconstr) cell %matrix_asymsinconstr_data data matrix_asymsinconstr linearmulti(matrix_asymsinconstr) double %matrix_asymsinconstr_vars vars matrix_asymsinconstr linearmulti(matrix_asymsinconstr) cell %point_types_data data point_types Box_of_variables: types = point_types double %point_types_vars vars point_types Box_of_variables: types = point_types cell %point_init_data data point_init Solver: precision = parameter_precision, stages = 30, init_point = point_init double %point_init_vars vars point_init Solver: precision = parameter_precision, stages = 30, init_point = point_init cell %vector_multilinconstrcosright_data data vector_multilinconstrcosright Constraint: <= vector_multilinconstrcosright double %vector_multilinconstrsinright_data data vector_multilinconstrsinright Constraint: <= vector_multilinconstrsinright double %vector_multilinconstrcosleft_data data vector_multilinconstrcosleft Constraint: >= vector_multilinconstrcosleft double %vector_multilinconstrsinleft_data data vector_multilinconstrsinleft Constraint: >= vector_multilinconstrsinleft double %parameter_bound_data data parameter_bound Constraint: <= parameter_bound double %parameter_bound_1_data data parameter_bound_1 Constraint: <= parameter_bound_1 double %parameter_bound_2_data data parameter_bound_2 Constraint: >= parameter_bound_2 double %parameter_bound_3_data data parameter_bound_3 Constraint: >= parameter_bound_3 double %parameter_bound_4_data data parameter_bound_4 Constraint: == parameter_bound_4 double %parameter_bound_5_data data parameter_bound_5 Constraint: == parameter_bound_5 double %parameter_bound_6_data data parameter_bound_6 Constraint: == parameter_bound_6 double %parameter_precision_data data parameter_precision Solver: precision = parameter_precision, stages = 30, init_point = point_init char % %Output variables: % %solution_str = string with solution of problem; %outargstruc_arr = array of output PSG data structures; %Load data from mat-file: load('D:\American Optimal Decisions\PSG\MATLAB_Stan\ready\Optimization of Parameters of Beam Excitation Waveform\data_problem_beam_i_2_short\Optimization_subroutine_data.mat') %Save variables from mat-file to Workspace: tbpsg_export_to_workspace(toolboxstruc_arr) %Run users m-function Optimization_subroutine: [solution_str,outargstruc_arr] = Optimization_subroutine(matrix_cosobj_benchmark,matrix_cosobj_data,matrix_cosobj_vars,matrix_sinobj_benchmark,matrix_sinobj_data,matrix_sinobj_vars,matrix_multilinconstrcosright_data,matrix_multilinconstrcosright_vars,matrix_multilinconstrsinright_data,matrix_multilinconstrsinright_vars,matrix_multilinconstrcosleft_data,matrix_multilinconstrcosleft_vars,matrix_multilinconstrsinleft_data,matrix_multilinconstrsinleft_vars,matrix_multilinconstrboundcosright_data,matrix_multilinconstrboundcosright_vars,matrix_multilinconstrboundsinright_data,matrix_multilinconstrboundsinright_vars,matrix_multilinconstrboundcosleft_data,matrix_multilinconstrboundcosleft_vars,matrix_multilinconstrboundsinleft_data,matrix_multilinconstrboundsinleft_vars,matrix_indicconstr_data,matrix_indicconstr_vars,matrix_symcosconstr_data,matrix_symcosconstr_vars,matrix_asymsinconstr_data,matrix_asymsinconstr_vars,point_types_data,point_types_vars,point_init_data,point_init_vars,vector_multilinconstrcosright_data,vector_multilinconstrsinright_data,vector_multilinconstrcosleft_data,vector_multilinconstrsinleft_data,parameter_bound_data,parameter_bound_1_data,parameter_bound_2_data,parameter_bound_3_data,parameter_bound_4_data,parameter_bound_5_data,parameter_bound_6_data,parameter_precision_data); %Extract Objective: val_obj = tbpsg_objective(solution_str, outargstruc_arr); disp(' '); disp('Objective = '); disp(val_obj); %Extract optimal solution: point_data = tbpsg_optimal_point_data(solution_str, outargstruc_arr); disp(' '); disp('Optimal point = '); disp(point_data); %Extract structure containing PSG solution reports: output_structure = tbpsg_solution_struct(solution_str, outargstruc_arr); disp(' '); disp('Structure with PSG solution = '); disp(output_structure); %Uncomment the following lines to extract solutions details: %output = tbpsg_isoptimal(solution_str, outargstruc_arr); %output = tbpsg_function_data(solution_str, outargstruc_arr); %output = tbpsg_function_names(solution_str, outargstruc_arr); %output = tbpsg_time(solution_str, outargstruc_arr); %output = tbpsg_optimal_point_vars(solution_str, outargstruc_arr); %output = tbpsg_constraints_vars(solution_str, outargstruc_arr); %output = tbpsg_slack_data(solution_str, outargstruc_arr); %output = tbpsg_dual_data(solution_str, outargstruc_arr); %output = tbpsg_vector_constraint_data(solution_str, outargstruc_arr); %output = tbpsg_vector_dual_data(solution_str, outargstruc_arr); %output = tbpsg_vector_slack_data(solution_str, outargstruc_arr); %output = tbpsg_matrix_data(solution_str, outargstruc_arr); %output = tbpsg_matrix_vars(solution_str, outargstruc_arr); %output = tbpsg_vector_data(solution_str, outargstruc_arr);