Пакет: FunctionApproximation
Объект, задающий функцию, чтобы аппроксимировать, или интерполяционная таблица, чтобы оптимизировать
FunctionApproximation.Problem
объект задает функцию, чтобы аппроксимировать интерполяционной таблицей или блоком интерполяционной таблицы, чтобы оптимизировать. После описывания задачи используйте solve
метод, чтобы сгенерировать FunctionApproximation.LUTSolution
объект, который содержит приближение.
создает approximationProblem
= FunctionApproximation.Problem()FunctionApproximation.Problem
объект со значениями свойств по умолчанию. Когда никакой function
вход обеспечивается, FunctionToApproximate
свойство установлено в 'sin'
.
создает approximationProblem
= FunctionApproximation.Problem(function
)FunctionApproximation.Problem
возразите, чтобы аппроксимировать функцию, блок Math Function или интерполяционную таблицу, заданную function
.
function
— Функция или блок, чтобы аппроксимировать, или интерполяционная таблица блокируются, чтобы оптимизировать'sin'
(значение по умолчанию) | математическая функция | указатель на функцию | блок Math Function | блок Lookup Table | блок SubsystemФункция или блок, чтобы аппроксимировать, или интерполяционная таблица блокируются, чтобы оптимизировать, определенный функцией указатель, математическая функция, блок Simulink® или подсистема или один из блоков интерполяционной таблицы (например, 1-D Lookup Table, n-D Lookup Table).
Если вы задаете один из блоков интерполяционной таблицы, solve
метод генерирует оптимизированную интерполяционную таблицу.
Если вы задаете математическую функцию, указатель на функцию, или блок, solve
метод генерирует приближение интерполяционной таблицы функции ввода.
Указатели на функцию должны быть на пути поиска файлов MATLAB® или сбоях приближения.
Математические функции MATLAB, поддержанные для приближения:
1/.x
10.^x
2.^x
acos
acosh
asin
asinh
atan
atan2
atanh
cos
cosh
exp
log
log10
log2
sin
sinh
sqrt
tan
tanh
x.^2
Функции и указатели на функцию, которые вы аппроксимируете, должны быть векторизованы, означая что для каждого входа, существует точно один выход. Для получения дополнительной информации смотрите Векторизацию (MATLAB).
Процесс генерации приближения интерполяционной таблицы быстрее для указателя на функцию, чем для подсистемы. Если подсистема может быть представлена указателем на функцию, это быстрее, чтобы аппроксимировать указатель на функцию.
Типы данных: char |
function_handle
FunctionToApproximate
— Функция, чтобы аппроксимировать, или интерполяционная таблица блокируется, чтобы оптимизировать'sin'
(значение по умолчанию) | математическая функция | указатель на функцию | блок Math Function | блок Lookup Table | блок SubsystemФункция или блок, чтобы аппроксимировать, или интерполяционная таблица блокируются, чтобы оптимизировать, определенный функцией указатель, математическая функция, блок Simulink или подсистема или один из блоков интерполяционной таблицы (например, 1-D Lookup Table, n-D Lookup Table).
Если вы задаете один из блоков интерполяционной таблицы, solve
метод генерирует оптимизированную интерполяционную таблицу.
Если вы задаете математическую функцию, указатель на функцию, или блок, solve
метод генерирует приближение интерполяционной таблицы функции ввода.
Указатели на функцию должны быть на пути поиска файлов MATLAB или сбоях приближения.
Математические функции MATLAB, поддержанные для приближения:
1/.x
10.^x
2.^x
acos
acosh
asin
asinh
atan
atan2
atanh
cos
cosh
exp
log
log10
log2
sin
sinh
sqrt
tan
tanh
x.^2
Функции и указатели на функцию, которые вы аппроксимируете, должны быть векторизованы, означая что для каждого входа, существует точно один выход. Для получения дополнительной информации смотрите Векторизацию (MATLAB).
Процесс генерации приближения интерполяционной таблицы быстрее для указателя на функцию, чем для подсистемы. Если подсистема может быть представлена указателем на функцию, это быстрее, чтобы аппроксимировать указатель на функцию.
Типы данных: char |
function_handle
NumberOfInputs
— Количество входных параметров к приближению функцийКоличество входных параметров к аппроксимированной функции. Это свойство выведено из FunctionToApproximate
свойство, поэтому это не перезаписываемое свойство.
Если вы генерируете Direct Lookup Table, функция, чтобы аппроксимировать может иметь не больше, чем два входных параметров.
Типы данных: double
InputTypes
— Желаемые типы данных входных параметров к приближению функцийnumerictype
возразите | вектор numerictype
объекты | Simulink.Numerictype
возразите | вектор Simulink.Numerictype
объектыЖелаемые типы данных входных параметров к аппроксимированной функции, заданной как numerictype
, Simulink.Numerictype
, или вектор numerictype
или Simulink.Numerictype
объекты. Количество InputTypes
заданный должен совпадать с NumberOfInputs
.
Пример: problem.InputTypes = ["numerictype(1,16,13)", "numerictype(1,16,10)"];
InputLowerBounds
— Нижний предел области значений входных параметров, чтобы функционировать, чтобы аппроксимироватьНижний предел области значений входных параметров, чтобы функционировать, чтобы аппроксимировать, заданный как скаляр или вектор. Если вы задаете inf
, InputLowerBounds
используемый во время приближения выведен из InputTypes
свойство. Размерности InputLowerBounds
должен совпадать с NumberOfInputs
.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fi
InputUpperBounds
— Верхний предел области значений входных параметров, чтобы функционировать, чтобы аппроксимироватьВерхний предел области значений входных параметров, чтобы функционировать, чтобы аппроксимировать, заданный как скаляр или вектор. Если вы задаете inf
, InputUpperBounds
используемый во время приближения выведен из InputTypes
свойство. Размерности InputUpperBounds
должен совпадать с NumberOfInputs
.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fi
OutputType
— Желаемый тип данных приближения функций выводитсяnumerictype
| Simulink.Numerictype
Желаемый тип данных приближения функций выход, заданный как numerictype
или Simulink.Numerictype
. Например, чтобы указать, что вы хотите, чтобы выход был типом данных с фиксированной точкой со знаком с 16-битным размером слова и длиной части лучшей точности, установите OutputType
свойство к "numerictype(1,16)"
.
Пример: problem.OutputType = "numerictype(1,16)";
Options
— Дополнительные опции и ограничения, чтобы использовать в приближенииFunctionApproximation.Options
объектДополнительные опции и ограничения, чтобы использовать в приближении, заданном как FunctionApproximation.Options
объект.
решить | Решите для оптимизированного решения проблемы приближения функций |
Указатель. Чтобы изучить, как классы Handle влияют на операции копии, смотрите Копирование Объектов (MATLAB).
Создайте FunctionApproximation.Problem
объект, задавая указатель на функцию, который вы хотите аппроксимировать.
problem = FunctionApproximation.Problem(@(x,y) sin(x)+cos(y))
problem = FunctionApproximation.Problem with properties FunctionToApproximate: @(x,y)sin(x)+cos(y) NumberOfInputs: 2 InputTypes: ["numerictype('double')" "numerictype('double')"] InputLowerBounds: [-Inf -Inf] InputUpperBounds: [Inf Inf] OutputType: "numerictype('double')" Options: [1×1 FunctionApproximation.Options]
FunctionApproximation.Problem
объект, problem, использует значения свойств по умолчанию.
Установите область значений входных параметров функции быть между нулем и 2*pi
.
problem.InputLowerBounds = [0,0]; problem.InputUpperBounds = [2*pi, 2*pi]
problem = FunctionApproximation.Problem with properties FunctionToApproximate: @(x,y)sin(x)+cos(y) NumberOfInputs: 2 InputTypes: ["numerictype('double')" "numerictype('double')"] InputLowerBounds: [0 0] InputUpperBounds: [6.2832 6.2832] OutputType: "numerictype('double')" Options: [1×1 FunctionApproximation.Options]
Создайте FunctionApproximation.Problem
объект, задавая математическую функцию, чтобы аппроксимировать.
problem = FunctionApproximation.Problem('log')
problem = FunctionApproximation.Problem with properties FunctionToApproximate: @(x)log(x) NumberOfInputs: 1 InputTypes: "numerictype(1,16,10)" InputLowerBounds: 0.6250 InputUpperBounds: 15.6250 OutputType: "numerictype(1,16,13)" Options: [1×1 FunctionApproximation.Options]
Математические функции имеют соответствующий входной диапазон, тип входных данных, и выходные данные вводят значения по умолчанию свойства.
Создайте FunctionApproximation.Problem
объект оптимизировать существующую интерполяционную таблицу.
load_system('sldemo_fuelsys'); problem = FunctionApproximation.Problem('sldemo_fuelsys/fuel_rate_control/airflow_calc/Pumping Constant')
problem = FunctionApproximation.Problem with properties FunctionToApproximate: 'sldemo_fuelsys/fuel_rate_control/airflow_calc/Pumping Constant' NumberOfInputs: 2 InputTypes: ["numerictype('single')" "numerictype('single')"] InputLowerBounds: [50 0.0500] InputUpperBounds: [1000 0.9500] OutputType: "numerictype('single')" Options: [1×1 FunctionApproximation.Options]
Программное обеспечение выводит свойства Problem
объект из модели.
Функции и указатели на функцию, которые вы аппроксимируете, должны соответствовать следующим критериям.
Функция должна быть независима от времени.
Функция должна действовать поэтапно, означая для каждого входа существует тот выход.
Функция не должна содержать состояния.
Для получения дополнительной информации смотрите Векторизацию (MATLAB).
Когда Problem
объект задает бесконечные входные диапазоны, и входной тип нес плавающей точкой, во время приближения, программное обеспечение выводит верхние и более низкие области значений на основе области значений типа входных данных. Получившийся FunctionApproximation.LUTSolution
объект задает границы, которые алгоритм использовал во время приближения, не первоначально заданных бесконечных границ.
Если InputLowerBounds
или InputUpperBounds
заданный для Problem
объект выходит за пределы области значений заданного InputTypes
, алгоритм использует область значений типа данных, заданного InputTypes
для приближения.
В случаях, где BreakpointSpecification
свойство FunctionApproximation.Options
объект установлен в 'EvenSpacing'
, но InputUpperBounds
или InputLowerBounds
свойство FunctionApproximation.Problem
объект равен области значений InputTypes
, алгоритм не пытается найти решение с помощью 'EvenPow2Spacing'
.
FunctionApproximation.LUTMemoryUsageCalculator
| FunctionApproximation.LUTSolution
| FunctionApproximation.Options
approximate
| compare
| solve
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.