Получите диагностическую информацию для линеаризации блока
Когда вы линеаризуете модель Simulink®, можно создать объект LinearizationAdvisor, который содержит диагностическую информацию об отдельной линеаризации блока. Можно диагностировать результаты линеаризации путем рассмотрения этой диагностической информации. Чтобы получить доступ к диагностической информации, используйте функцию getBlockInfo.
blockInfo = getBlockInfo(advisor)blockInfo = getBlockInfo(advisor,block)blockInfo = getBlockInfo(advisor,index)Модель Load Simulink.
mdl = 'scdpendulum';
load_system(mdl)Линеаризуйте модель и получите объект LinearizationAdvisor.
io = getlinio(mdl);
opt = linearizeOptions('StoreAdvisor',true);
[linsys,~,info] = linearize(mdl,io,opt);
advisor = info.Advisor;Найдите блоки, которые потенциально проблематичны для линеаризации.
blocks = advise(advisor);
Получите диагностику для этих блоков.
diags = getBlockInfo(blocks)
diags = Linearization Diagnostics for the Blocks: Block Info: ----------- Index BlockPath Is On Path Contributes To Linearization Linearization Method 1. scdpendulum/pendulum/Saturation Yes No Exact 2. scdpendulum/angle_wrap/Trigonometric Function1 Yes No Perturbation 3. scdpendulum/pendulum/Trigonometric Function Yes No Perturbation
Модель Load Simulink.
mdl = 'scdpendulum';
load_system(mdl)Линеаризуйте модель и получите объект LinearizationAdvisor.
io = getlinio(mdl);
opt = linearizeOptions('StoreAdvisor',true);
[linsys,~,info] = linearize(mdl,io,opt);
advisor = info.Advisor;Получите диагностическую информацию для блока насыщения.
satDiag = getBlockInfo(advisor,'scdpendulum/pendulum/Saturation')satDiag =
Linearization Diagnostics for scdpendulum/pendulum/Saturation with properties:
IsOnPath: 'Yes'
ContributesToLinearization: 'No'
LinearizationMethod: 'Exact'
Linearization: [1x1 ss]
OperatingPoint: [1x1 linearize.advisor.BlockOperatingPoint]
Можно также получить диагностическую информацию для нескольких блоков целиком. Получите диагностику для блоков sin в модели.
sinBlocks = {'scdpendulum/pendulum/Trigonometric Function';
'scdpendulum/angle_wrap/Trigonometric Function1'};
sinDiag = getBlockInfo(advisor,sinBlocks)sinDiag = Linearization Diagnostics for the Blocks: Block Info: ----------- Index BlockPath Is On Path Contributes To Linearization Linearization Method 1. scdpendulum/angle_wrap/Trigonometric Function1 Yes No Perturbation 2. scdpendulum/pendulum/Trigonometric Function Yes No Perturbation
Модель Load Simulink.
mdl = 'scdpendulum';
load_system(mdl)Линеаризуйте модель и получите объект LinearizationAdvisor.
io = getlinio(mdl);
opt = linearizeOptions('StoreAdvisor',true);
[linsys,~,info] = linearize(mdl,io,opt);
advisor = info.Advisor;Получите диагностическую информацию для первого элемента advisor.BlockDiagnostics.
diag = getBlockInfo(advisor,1)
diag =
Linearization Diagnostics for scdpendulum/pendulum/Saturation with properties:
IsOnPath: 'Yes'
ContributesToLinearization: 'No'
LinearizationMethod: 'Exact'
Linearization: [1x1 ss]
OperatingPoint: [1x1 linearize.advisor.BlockOperatingPoint]
Можно также получить диагностику для нескольких блоков. Например, получите диагностику для вторых и третьих блоков, перечисленных в advisor.
diags = getBlockInfo(advisor,[2 3])
diags = Linearization Diagnostics for the Blocks: Block Info: ----------- Index BlockPath Is On Path Contributes To Linearization Linearization Method 1. scdpendulum/pendulum/Integrator, Second-Order Yes No Exact 2. scdpendulum/angle_wrap/Trigonometric Function1 Yes No Perturbation
Модель Load Simulink.
mdl = 'scdpendulum';
load_system(mdl)Линеаризуйте модель и получите объект LinearizationAdvisor.
io = getlinio(mdl);
opt = linearizeOptions('StoreAdvisor',true);
[linsys,~,info] = linearize(mdl,io,opt);
advisor = info.Advisor;Получите пути к блоку линеаризовавших блоков.
paths = getBlockPaths(advisor);
Создайте логический массив, указывающий, какие блоки находятся в подсистеме angle_wrap.
index = contains(paths,'angle_wrap');Получите диагностическую информацию для этих блоков.
diags = getBlockInfo(advisor,index)
diags = Linearization Diagnostics for the Blocks: Block Info: ----------- Index BlockPath Is On Path Contributes To Linearization Linearization Method 1. scdpendulum/angle_wrap/Trigonometric Function1 Yes No Perturbation 2. scdpendulum/angle_wrap/Trigonometric Function2 Yes No Perturbation 3. scdpendulum/angle_wrap/Trigonometric Function Yes No Perturbation
advisor — Диагностическая информация для линеаризации блокаLinearizationAdvisor | массив объектов LinearizationAdvisorДиагностическая информация для линеаризации блока, заданной как объект LinearizationAdvisor или массив объектов LinearizationAdvisor.
block — Блокируйте путиБлокируйте пути в модели Simulink, заданной как одно из следующего:
Вектор символов — Получает диагностическую информацию для одного блока.
Массив ячеек из символьных векторов Получите диагностическую информацию для нескольких блоков.
index — Блокируйте индексыБлокируйте индексы, заданные как одно из следующего:
Положительное целое число — Получает диагностическую информацию для указанного элемента Advisor.BlockDiagnostics
Массив положительных целых чисел — Получает диагностическую информацию для нескольких элементов Advisor.BlockDiagnostics.
Булев массив — Для каждого элемента index, который является true, возвратите диагностику для соответствующего элемента Advisor.BlockDiagnostics.
blockInfo — Диагностическая информация для линеаризации блокаBlockDiagnostic | вектор BlockDiagnostic возражает | массив ячеекДиагностическая информация для линеаризации блока, обозначенной index, возвращенным как объект BlockDiagnostic или вектор BlockDiagnostic, возражает, является ли advisor одним объектом LinearizationAdvisor.
Если advisor является массивом объектов LinearizationAdvisor, то blockInfo является массивом ячеек с теми же размерностями как advisor, в котором каждый элемент является вектором объектов BlockDiagnostic.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.