Code covered by the BSD License

# Moving Horizon Estimation

### John Hedengren (view profile)

Simulink and MATLAB Toolbox for Moving Horizon Estimation and Model Predictive Control

apm_sol(server,app)
```% APM Retrieve Solution in Structure Format
%
% y = apm_sol(server,app)
%
% Function apm_sol retrieves the solution from the APM server
%   with the following arguments:
%
% Input:  server   = server web-address to retrieve the solution
%         app      = application name
%
% Output: y.names  = names of all variables
%         y.values = tables of values corresponding to y.names
%         y.nvar   = number of variables
%         y.x      = combined variables and values but variable
%                      names may be modified to make them valid MATLAB
%                      characters (e.g. replace '[' with '_')
function [y] = apm_sol(server,app)
filename = ['solution_' app '.csv'];
url = [deblank(server) '/online/' ip '_' app '/results.csv'];
% write solution.csv file
fid = fopen(filename,'w');
fwrite(fid,response);
fclose(fid);
% tranfer solution to local array
% load data from csv file with header on the right column
fid = fopen(filename, 'r');
% Parse and read rest of file
ctr = 0;
while(~feof(fid))
aline = fgetl(fid);
if ischar(aline)
ctr = ctr + 1;
A(ctr,:) = parse(aline, ',');
else
break;
end
end
fclose(fid);
[n,m] = size(A);
for i = 1:n,
for j = 2:m,
A{i,j} = str2num(A{i,j});
end
end
raw = A';

% extract names
y.names = raw(1,:);
% extract values
y.values = cell2mat(raw(2:end,:));
% number of variables
y.nvar = size(y.values,2);
% remove the following characters
c = '[],().';
nc = size(c,2);
% generate variable names as a structure
for i = 1:y.nvar;
% remove some offending characters for MATLAB that
%   are allowed in APM including: "[],()."
var_name = y.names(i);
for j = 1:nc,
var_name = strrep(var_name, c(j), '');
end
str = ['y.x.' var_name{1} '= y.values(:,' int2str(i) ');'];
eval(str);
end
```