function estimated_current = current_estimator(lambda_data,current_data,max_current,desired_lambda) % % Copyright (c) 2014 by Plexim GmbH All rights reserved. % % A free license is granted to anyone to use this software for any legal % non safety-critical purpose, including commercial applications, % provided that: 1) IT IS NOT USED TO DIRECTLY OR INDIRECTLY COMPETE % WITH PLEXIM, and 2) THIS COPYRIGHT NOTICE IS PRESERVED in its % entirety. % % THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, % EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF % MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. % IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY % CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, % TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE % SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. % % This function takes in real data of flux linkage and current, % designated as inputs lambda_data and current_data. The function is used % to estimate the value of the currents at a desired value of flux % linkage, designated as input desired_lambda. % % The model first employs a linear estimator on a a linear range of flux % linkage values. This is done in order to produce a better and smoother % fit when using a spline fit in order to produce the estimated current % values at the desired flux linkage values. % % The user also needs to provide the maximum allowable current value that % will be estimated. This parameter is used to cap the estimated current % values. % % Inputs: % % lambda_data: Monotonically increasing column vector. Must be the same % length as the current_data input. % % current_data: Column vector of current values. It is assumed that each % entry in this vector corresponds to the flux linkage value in the input % lambda_data. Must be the same length as lambda_data. % % max_current: This is a scalar value that is used to cap the estimated % current values. % % desired_lambda: Column vector of the desired flux linkage values that % the current needs to be estimated. Can be a vector of different length % than lambda_data. Must be monotonically increasing. % % Outputs: % % estimated_current: Vector of estimated current values corresponding to % the input vector desired flux linkage values. Returns a column vector of % the same size as desired_lambda. % % Plexim, Inc. % Author: Munadir A. Ahmed % Date: 07/17/2014