|
|
|||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||
| Вход | |||||||||||||||||||||||||||||||||
|
Раздел "Simulink Blocksets\Fixed-Point Blockset"
К.Г.Жуков,"Справочное руководство пользователя Fixed-Point Blockset": Содержание В оглавление \ К следующему разделу \ К предыдущему разделу 3. Метод почленного масштабирования 3.1. Понятие масштаба Решению задач с помощью Simulink (Fixed Point- Blockset) предшествует подготовительная работа, называемая программированием. Программирование в Simulink имеет много общего с программированием на аналоговых вычислительных машинах (АВМ). В процессе программирования по заданным мате-матическим зависимостям определяются необходимые функциональные (решающие) блоки и способ их соединения для воспроизведения решения исходной задачи. Кроме того, при программировании устанавливается соответствие между математическими переменными и машинными переменными Simulink. Окончательный результат программирования (программа) представляет собой функциональную блок-диаг-раму (в АВМ структурная схема аналогового набора), которая при подготовки Simulink к работе использу-ется для соединения и установки параметров функциональных блоков. Представление числовых данных в Simulink осуществляется в форме с плавающей точкой и поэтому не требует выполнения операции масштабирования. Математические переменные в Fixed -Point Blockset с помощью масштабов представляют в виде физических величин - машинных переменных. Зависимым мате-матическим переменным в Fixed - Point Blockset соответствуют машинные переменные - переменные представленные в форме с фиксированной точкой. Масштабирование зависимых математических переменных - один из наиболее ответственных и сложных этапов программирования из-за противоречивости требований, предъявляемых к выбору масштабов. Главнейших требований три. Первое - ни одна машинная переменная не должна выходить из рабочего диапазона, ограниченного разрядностью слова. Второе - машинные переменные должны быть "наблюдаемы". Это значит, что они не должны быть малы, иначе их нельзя будет с достаточной точностью зафиксировать "измерительными средствами" Fixed - Point Blockset (Display, Scope, XYGraph). Значение машинной переменной считается малым, если оно соизмеримо с погрешностью функциональных блоков Fixed - Point Blockset. Третье - машинная переменная не должна оставаться малой в течение значительного промежутка времени, ибо это может привести к отсутствию повторяемости результатов при повторном решении той же задачи из-за случайного характера погрешностей блоков Fixed - Point Blockset. Зависимые математические переменные x, y, z в Fixed - Point Blockset представляются машинными переменными xf=mx*x, yf=my*y, zf=mz*z с помощью масштабов mx, my, mz. Масштабы не имеют размерности. Масштаб математической (физической) переменной x представляет собой отношение машинной переменной xf к математической x, т.е.
Первые два требования (наблюдаемость машинных переменных и изменения их в пределах разрядной сетки) почти всегда выполняются автоматически, когда масштабы вычисляются по формуле
где Величины максимальных значений обычно известны при постановке задачи. Когда же они неизвестны и не могут быть определены заранее даже ориентировочно, прибегают к введению единичных масштабов и функциональная блок - диаграмма формируется по физическому уравнению. Выбор масштабов согласно выражению (3.1) обеспечивает приведение в соответствие максимально - допустистимого значения машинной переменной значению физической переменной. В противном случае величина машинной переменной, соответствующая максимальному значению физической переменной будет либо превышать максимально - допустимое значение (переполнение), либо будет меньше этого значения, что приведет к уменьшению точности вычисления. Зависимость текущего значения машинной переменной xf от текущего значения физической переменной x можно записать в виде
и обратно - связь между физической и машинной переменными может быть записана как
Выбор масштабов для всех зависимых математических переменных в соответствии с выражением (3.1) по их максимальным значениям требует последующего согласования масштабов. Основная причина этого в том, что масштабы представления переменных при выполнении операций над машинными переменными должны удовлетворять определенным соотношениям, зависящим от вида операции и способа ее реализации функциональными блоками Fixed - Point Blockset. Для согласования масштабов используются блоки Gain. Проиллюстрируем методику согласования масштабов на примерах реализации арифметических операций.
Основу методики составляет известный в математике способ неопределенных коэффициентов. Применительно к рассматриваемым вопросам способ сводится к приравниванию коэффициентов исходного математического выражения коэффициентам математического выражения, отражающего работу функционального блока. В этом последнем математическом выражении фигурируют машинные переменные, выраженные через известные масштабы и через подлежащие определению параметры функциональных блоков. 3.2 Умножение на постоянный коэффициент с помощью блока FixPt Gain Пусть требуется реализовать операцию
Масштабы представления переменных x, y выбраны по xmax, ymax и соответственно равны mx, my . На рис.3.2 показана функциональная блок - диаграмма для машинных переменных, поэтому коэффициент
После деления правой и левой части выражения (3.5) на масштаб my получаем
Сравнивая теперь коэффициенты при переменной x в выражениях (3.4) и (3.6), находим
отсюда искомый коэффициент
Коэффициент
Рассмотрим использование блока Gain при различных вариантах значений Пример 1. Реализовать вычисление по формуле y=0.5x . Переменные xf , yf и постоянный коэффициент должны быть представлены 16-ти разрядными беззнаковыми дробными числами. Математическая переменная изменяется в диапазоне Масштаб переменной x определяется по формуле (3.1) и равен:
Максимальное значение машинной переменной отличается от 1 на величину веса младшего значимого разряда 2-16 (1-2-16). Замена его на 1 не вносит значительной погрешности при вычислении mx . Выбор масштаба переменной зависит от значения структурного коэффициента. В данном случае ( Sim - модель, реализующая пример1, представлена на рис.3.3. Для задания значений переменной x используется блок Constant . Четыре значения xf из диапазона изменения x заданы в виде 1D массива и равны [0.25 0.5 0.75 1]. Результаты вычислений отображаются функциональными блоками Display. Блоки MinMax введены в модель для оценки погрешности. Абсолютная погрешность вычислений не превышает 10-5. Поля окна установки параметров блока Gain(рис.3.1) заполнены следующим образом: Gain: 0.25
Пример 2. Вычислить длину окружности по формуле
Умножение радиуса r на 10 приведет к изменению заданного диапазона и увеличению максимального значения в 10 раз. Масштаб переменной r определяется выражением:
Значение масштаба выходной переменной l принимается равным значению mr . При этом масштабный коэффициент 3.3. Выполнение операции сложения двух переменных с помощью блока FixPt Sum Необходимо воспроизвести линейную комбинацию двух переменных x и y :
где Пусть масштабы представления переменных x , y, z уже выбраны по максимальным значениям xmax , ymax , zmax соответственно равны mx , my , mz . Блок - диаграмма, воспроизводящая переменную zf ,представлена на рис.3.4. Блоки Gain1 и Gain2 на входах сумматора Sum осуществляют умножение переменных xf и yf на масштабные коэффициенты
После деления (3.13) на mz получаем:
Сравнивая коэффициенты при одинаковых переменных в выражениях (3.12) и (3.14), находим:
отсюда находим
Пример 3. Вычислить по формуле (3.12) значение z при На рис.3.5 представлена функциональная блок-диаграмма, реализующая данный пример. Моделирование подтверждает правильность выполненных расчетов. При максимальных значениях входных переменных отсутствует переполнение разрядной сетки, возникающее при выполнении операции сложения.
Замечание В состав арифметических блоков Fixed-Point Blockset входит специальный блок Subtract. На практике нет необходимости использования этого блока, так как операция вычитания заменятся операцией сложения с представлением отрицательного слагаемого в дополнительном коде. Для реализации выражения z=x-y его преобразуют к виду z=x+(-y). 3.4. Выполнение операции умножения с помощью блока FixPt Product Необходимо выполнить операцию умножения
где Запишем уравнение, связывающее машинные переменные
Пример 4. Реализовать выражение (3.16) с помощью блоков Fixed-Point Blockset. Переменные и константу представить 16-ти разрядными беззнаковыми дробными числами в формате ufix(16). Значение коэффициента
3.5. Выполнение операции деления Операция деления не играет обычно той решающей роли, которая при аппаратной реализации устройств цифровой обработки сигналов принадлежит сложению, вычитанию, умножению и умножению с накоплением результата. Если деление не реализуется отдельным операционным блоком, то оно может осуществляться путем итерационного процесса, включающего сложения, вычитания и умножения, по специальной процедуре. Такая процедура, может содержать 15-20 операций (в зависимости от необходимой точности, системы команд и других обстоятельств). Полагая, что деление будет встречаться в среднем один раз на 20 операций (5% делений из общего числа операций) найдем, что отсутствие деления снизило бы быстродействие системы примерно вдвое. С другой стороны, программисты, долго работающие с процессорами без операции деления, утверждают, что деление в действительности необходимо значительно реже. Набор арифметических команд DSP обусловлен спецификой алгоритмов ЦОС, в которых основными операциями являются сложение (вычитание), умножение и их комбинация - умножение с накоплением (MAC). Операция деления (DIV) реализуется итерационной процедурой. В Fixed - Point Blockset операцию деления выполняет арифметический блок Product в результате определенной настройки параметров. |
|
Всероссийская научная конференция "Проектирование научных и инженерных приложений в среде MATLAB" (май 2002 г.)
|
||
| На первую страницу \ Сотрудничество \ MathWorks \ SoftLine \ Exponenta.ru \ Exponenta Pro | ||
| E-mail: | ||
| Информация на сайте была обновлена 11.05.2004 |
Copyright 2001-2004 SoftLine Co Наши баннеры |
|