approximate

Класс: FunctionApproximation.LUTSolution
Пакет: Функциональная аппроксимация

Сгенерируйте блок Lookup Table или интерполяционную таблицу как функция MATLAB от FunctionApproximation.LUTSolution

Описание

approximate(solution) генерирует любого Simulink® модель, содержащая подсистему, составленную из блока Lookup Table или интерполяционной таблицы как MATLAB® функция, в зависимости от ApproximateSolutionType свойство FunctionApproximation.Options объект. Данные и точки останова сгенерированной интерполяционной таблицы заданы FunctionApproximation.LUTSolution объект, solution. Сгенерированный блок Lookup Table окружается блоками Data Type Conversion.

approximate(solution,'Name',fileName) генерирует интерполяционную таблицу как функцию MATLAB с именем сгенерированного.m скрипта, заданного fileName. Эта опция только доступна когда ApproximateSolutionType свойство FunctionApproximation.Options установлен в MATLAB.

approximate(solution,'Name',fileName,'Path',filePath) генерирует интерполяционную таблицу как функцию MATLAB с путем к файлу для сгенерированного.m скрипта, заданного filePath. Эта опция только доступна когда ApproximateSolutionType свойство FunctionApproximation.Options установлен в MATLAB.

Входные параметры

развернуть все

Решение сгенерировать интерполяционную таблицу от в виде FunctionApproximation.LUTSolution объект.

Имя файла для сгенерированной функции MATLAB в виде символьного массива. Если никакое пользовательское имя файла не задано, метка времени используется, чтобы сгенерировать уникальное имя файла. Например, approximateFunction_20210617T111033122.m.

Пример: approximate(solution,'Name','myLUT')

Типы данных: char

Путь к файлу для сгенерированной функции MATLAB в виде символьного массива. Если никакое пользовательское имя пути к файлу не задано, текущая рабочая директория используется.

Пример: approximate(solution,'Name','myLUT','Path','C:\Users\myPath')

Типы данных: char

Примеры

развернуть все

Создайте FunctionApproximation.Problem объект, задающий функцию, вы хотите аппроксимировать.

problem = FunctionApproximation.Problem('tanh')
problem = 

  1x1 FunctionApproximation.Problem with properties:

    FunctionToApproximate: @(x)tanh(x)
           NumberOfInputs: 1
               InputTypes: "numerictype(1,16,12)"
         InputLowerBounds: -8
         InputUpperBounds: 8
               OutputType: "numerictype(1,16,15)"
                  Options: [1x1 FunctionApproximation.Options]

Используйте значения по умолчанию для всех других опций. Аппроксимируйте tanh функция с помощью solve метод.

solution = solve(problem)
|  ID |  Memory (bits) | Feasible | Table Size | Breakpoints WLs | TableData WL | BreakpointSpecification |             Error(Max,Current) | 
|   0 |             64 |        0 |          2 |              16 |           16 |             EvenSpacing |     7.812500e-03, 9.999998e-01 |
|   1 |           1248 |        1 |         76 |              16 |           16 |             EvenSpacing |     7.812500e-03, 4.368265e-03 |
|   2 |           1232 |        1 |         75 |              16 |           16 |             EvenSpacing |     7.812500e-03, 4.439035e-03 |
|   3 |            944 |        1 |         57 |              16 |           16 |             EvenSpacing |     7.812500e-03, 7.780470e-03 |
|   4 |            928 |        1 |         56 |              16 |           16 |             EvenSpacing |     7.812500e-03, 6.110240e-03 |
|   5 |            656 |        0 |         39 |              16 |           16 |             EvenSpacing |     7.812500e-03, 1.678519e-02 |
|   6 |            640 |        0 |         38 |              16 |           16 |             EvenSpacing |     7.812500e-03, 1.660649e-02 |
|   7 |            784 |        1 |         47 |              16 |           16 |             EvenSpacing |     7.812500e-03, 7.743777e-03 |
|   8 |            704 |        1 |         42 |              16 |           16 |             EvenSpacing |     7.812500e-03, 7.805676e-03 |
|   9 |            672 |        1 |         40 |              16 |           16 |             EvenSpacing |     7.812500e-03, 7.809550e-03 |
|  10 |            368 |        0 |         21 |              16 |           16 |             EvenSpacing |     7.812500e-03, 4.855583e-02 |
|  11 |            512 |        0 |         30 |              16 |           16 |             EvenSpacing |     7.812500e-03, 2.773526e-02 |
|  12 |            592 |        0 |         35 |              16 |           16 |             EvenSpacing |     7.812500e-03, 2.088471e-02 |
|  13 |            624 |        0 |         37 |              16 |           16 |             EvenSpacing |     7.812500e-03, 1.870074e-02 |
|  14 |            384 |        1 |         12 |              16 |           16 |          ExplicitValues |     7.812500e-03, 7.812317e-03 |
|  15 |            384 |        0 |         12 |              16 |           16 |          ExplicitValues |     7.812500e-03, 1.196141e-02 |
|  16 |            384 |        1 |         12 |              16 |           16 |          ExplicitValues |     7.812500e-03, 7.812317e-03 |

Best Solution
|  ID |  Memory (bits) | Feasible | Table Size | Breakpoints WLs | TableData WL | BreakpointSpecification |             Error(Max,Current) |
|  14 |            384 |        1 |         12 |              16 |           16 |          ExplicitValues |     7.812500e-03, 7.812317e-03 |


solution = 

  1x1 FunctionApproximation.LUTSolution with properties:

          ID: 14
    Feasible: "true"

Сгенерируйте подсистему Simulink™, содержащую блок Lookup Table, аппроксимирующий tanh функция.

approximate(solution)

Введенный в R2018a