fxpopt

Оптимизируйте типы данных системы

Синтаксис

result = fxpopt(model, sud, options)

Описание

пример

result = fxpopt(model, sud, options) оптимизирует типы данных в модели или подсистеме, заданной sud в модели, model, с дополнительными опциями, заданными в объекте fxpOptimizationOptions, options.

Примеры

свернуть все

Этот пример показывает, как оптимизировать типы данных, используемые системой на основе заданных допусков.

Чтобы начаться, откройте систему, для которой вы хотите оптимизировать типы данных.

model = 'ex_auto_gain_controller';
sud = 'ex_auto_gain_controller/sud';
open_system(model)

Создайте объект fxpOptimizationOptions задать ограничения и допуски, чтобы удовлетворить вашим целям проекта. Установите свойство UseParallel объекта fxpOptimizationOptions к true запускать итерации оптимизации параллельно. Можно также задать размеры слова, чтобы позволить в проекте через свойство AllowableWordLengths.

opt = fxpOptimizationOptions('AllowableWordLengths', 10:24, 'UseParallel', true)
opt = 

  fxpOptimizationOptions with properties:

           MaxIterations: 50
                 MaxTime: 600
                Patience: 10
               Verbosity: High
    AllowableWordLengths: [10 11 12 13 14 15 16 17 18 19 20 21 22 23 24]

   Advanced Options
         AdvancedOptions: [1×1 struct]

Используйте метод addTolerance, чтобы задать допуски к различиям между исходным поведением системы и поведением с помощью оптимизированных типов данных с фиксированной точкой.

tol = 10e-2;
addTolerance(opt, [model '/output_signal'], 1, 'AbsTol', tol);

Используйте функцию fxpopt, чтобы запустить оптимизацию. Программное обеспечение анализирует области значений объектов в вашей системе в соответствии с проектом и ограничениями, заданными в объекте fxpOptimizationOptions применить типы гетерогенных данных к вашей системе при минимизации общей битной ширины.

result = fxpopt(model, sud, opt);
	+ Preprocessing
	+ Modeling the optimization problem
		- Constructing decision variables
		- Binding constraints
	+ Running the optimization solver
		- Evaluating new solution: cost 180, does not meet the tolerances.
		- Evaluating new solution: cost 198, does not meet the tolerances.
		- Evaluating new solution: cost 216, does not meet the tolerances.
		- Evaluating new solution: cost 234, does not meet the tolerances.
		- Evaluating new solution: cost 252, does not meet the tolerances.
		- Evaluating new solution: cost 270, does not meet the tolerances.
		- Evaluating new solution: cost 288, does not meet the tolerances.
		- Evaluating new solution: cost 306, meets the tolerances.
		- Updated best found solution, cost: 306
		- Evaluating new solution: cost 304, meets the tolerances.
		- Updated best found solution, cost: 304
		- Evaluating new solution: cost 300, meets the tolerances.
		- Updated best found solution, cost: 300
		- Evaluating new solution: cost 299, meets the tolerances.
		- Updated best found solution, cost: 299
		- Evaluating new solution: cost 298, meets the tolerances.
		- Updated best found solution, cost: 298
		- Evaluating new solution: cost 297, meets the tolerances.
		- Updated best found solution, cost: 297
		- Evaluating new solution: cost 296, meets the tolerances.
		- Updated best found solution, cost: 296
		- Evaluating new solution: cost 295, meets the tolerances.
		- Updated best found solution, cost: 295
		- Evaluating new solution: cost 294, does not meet the tolerances.
		- Evaluating new solution: cost 293, meets the tolerances.
		- Updated best found solution, cost: 293
		- Evaluating new solution: cost 292, meets the tolerances.
		- Updated best found solution, cost: 292
		- Evaluating new solution: cost 291, meets the tolerances.
		- Updated best found solution, cost: 291
		- Evaluating new solution: cost 290, meets the tolerances.
		- Updated best found solution, cost: 290
		- Evaluating new solution: cost 289, meets the tolerances.
		- Updated best found solution, cost: 289
		- Evaluating new solution: cost 287, meets the tolerances.
		- Updated best found solution, cost: 287
		- Evaluating new solution: cost 283, meets the tolerances.
		- Updated best found solution, cost: 283
		- Evaluating new solution: cost 282, meets the tolerances.
		- Updated best found solution, cost: 282
		- Evaluating new solution: cost 281, meets the tolerances.
		- Updated best found solution, cost: 281
		- Evaluating new solution: cost 280, meets the tolerances.
		- Updated best found solution, cost: 280
		- Evaluating new solution: cost 279, meets the tolerances.
		- Updated best found solution, cost: 279
		- Evaluating new solution: cost 278, meets the tolerances.
		- Updated best found solution, cost: 278
		- Evaluating new solution: cost 277, does not meet the tolerances.
		- Evaluating new solution: cost 276, meets the tolerances.
		- Updated best found solution, cost: 276
		- Evaluating new solution: cost 275, meets the tolerances.
		- Updated best found solution, cost: 275
		- Evaluating new solution: cost 274, meets the tolerances.
		- Updated best found solution, cost: 274
		- Evaluating new solution: cost 273, meets the tolerances.
		- Updated best found solution, cost: 273
		- Evaluating new solution: cost 272, meets the tolerances.
		- Updated best found solution, cost: 272
		- Evaluating new solution: cost 270, meets the tolerances.
		- Updated best found solution, cost: 270
		- Evaluating new solution: cost 266, meets the tolerances.
		- Updated best found solution, cost: 266
		- Evaluating new solution: cost 265, meets the tolerances.
		- Updated best found solution, cost: 265
		- Evaluating new solution: cost 264, meets the tolerances.
		- Updated best found solution, cost: 264
		- Evaluating new solution: cost 263, meets the tolerances.
		- Updated best found solution, cost: 263
		- Evaluating new solution: cost 262, meets the tolerances.
		- Updated best found solution, cost: 262
		- Evaluating new solution: cost 261, meets the tolerances.
		- Updated best found solution, cost: 261
		- Evaluating new solution: cost 260, does not meet the tolerances.
		- Evaluating new solution: cost 259, does not meet the tolerances.
		- Evaluating new solution: cost 260, meets the tolerances.
		- Updated best found solution, cost: 260
		- Evaluating new solution: cost 259, meets the tolerances.
		- Updated best found solution, cost: 259
		- Evaluating new solution: cost 258, meets the tolerances.
		- Updated best found solution, cost: 258
		- Evaluating new solution: cost 257, meets the tolerances.
		- Updated best found solution, cost: 257
		- Evaluating new solution: cost 255, meets the tolerances.
		- Updated best found solution, cost: 255
		- Evaluating new solution: cost 251, meets the tolerances.
		- Updated best found solution, cost: 251
		- Evaluating new solution: cost 250, meets the tolerances.
		- Updated best found solution, cost: 250
		- Evaluating new solution: cost 249, meets the tolerances.
		- Updated best found solution, cost: 249
		- Evaluating new solution: cost 248, meets the tolerances.
		- Updated best found solution, cost: 248
		- Evaluating new solution: cost 247, meets the tolerances.
		- Updated best found solution, cost: 247
		- Evaluating new solution: cost 246, meets the tolerances.
		- Updated best found solution, cost: 246
		- Evaluating new solution: cost 245, does not meet the tolerances.
		- Evaluating new solution: cost 244, does not meet the tolerances.
		- Evaluating new solution: cost 245, meets the tolerances.
		- Updated best found solution, cost: 245
		- Evaluating new solution: cost 244, meets the tolerances.
		- Updated best found solution, cost: 244
	+ Optimization has finished.
		- Neighborhood search complete.
		- Maximum number of iterations completed.
	+ Fixed-point implementation that met the tolerances found.
		- Total cost: 244
		- Maximum absolute difference: 0.077478
		- Use the explore method of the result to explore the implementation.

Используйте метод explore объекта OptimizationResult, result, чтобы запустить Инспектора Данных моделирования и исследовать проект, содержащий самое маленькое общее количество битов при поддержании числовых допусков, заданных в объекте opt.

 explore(result);

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

свернуть все

Имя модели, содержащей систему, которую вы хотите оптимизировать.

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

Модель или подсистема, типы данных которой вы хотите оптимизировать, заданный как вектор символов, содержащий путь к системе.

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

Объект fxpOptimizationOptions, задающий дополнительные опции использовать во время процесса оптимизации типа данных.

Выходные аргументы

свернуть все

Результат оптимизации, возвращенной как объект OptimizationResult. Используйте метод explore объекта открыть Инспектора Данных моделирования и просмотреть поведение оптимизированной системы. Можно также исследовать другие решения, найденные во время оптимизации, которая может или не может соответствовать ограничениям, заданным в объекте fxpOptimizationOptions, options.

Введенный в R2018a