Оптимизируйте типы данных системы
В этом примере показано, как оптимизировать типы данных, используемые системой на основе заданных допусков.
Чтобы начаться, откройте систему, для которой вы хотите оптимизировать типы данных.
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);
model
— Модель, содержащая систему в соответствии с проектом, sud
Имя модели, содержащей систему, которую вы хотите оптимизировать.
Типы данных: char
sud
— Модель или подсистема, типы данных которой вы хотите оптимизироватьМодель или подсистема, типы данных которой вы хотите оптимизировать, заданный как вектор символов, содержащий путь к системе.
Типы данных: char
options
— Дополнительные опции оптимизацииfxpOptimizationOptions
объектfxpOptimizationOptions
объект, задающий дополнительные опции использовать во время процесса оптимизации типа данных.
result
— Объект, содержащий оптимизированный проектOptimizationResult
объектРезультат оптимизации, возвращенной как OptimizationResult
объект. Используйте explore
метод объекта открыть Инспектора Данных моделирования и просмотреть поведение оптимизированной системы. Можно также исследовать другие решения, найденные во время оптимизации, которая может или не может соответствовать ограничениям, заданным в fxpOptimizationOptions
объект, options
.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.