Записи с меткой «определения»
Аналого-цифровой интерфейс
Аналого-цифровой интерфейс
Аналого-цифровые интерфейсы предназначены для преобразования аналогового напряжения в логический уровень. Они имитируют входные каскады цифровых ИС. Их схема замещения показана, а. Информация о логическом уровне сигнала на выходе интерфейса А/Ц может направляться двояко:
- в модуль логического моделирования программы PSpice;
- в файл (позднее он может быть просмотрен визуально или использован в качестве источника цифрового сигнала в следующем сеансе моделирования).
При взаимодействии аналоговых и цифровых компонентов в процессе моделирования описание интерфейса А/Ц (digital output: analog-to-digital) имеет формат
Оххх <+узел интерфейса> <-узел интерфейса> <имя модели А/Ц> + DGTNET =<ижя цифрового узла> <имя модели. вход/выход>
При записи логических уровней в файл описание интерфейса А/Ц имеет формат
Оххх <+узел интерфейса> <-узел интерфейса> <имя модели А/Ц> + [SIGNAME=<имя цифрового сигнала>]
Приведем примеры:
О12 ANALOG_NODE DIGITAL_GND DOUTJ33 DGTLNET=DIG_NODE IO_STD OVCO 17 0 TO_TTL SIGNAME=VCO_OUT; передача данных в файл
Модель аналого-цифрового интерфейса описывается предложением .MODEL <имя модели А/Ц> DOUTPUT [<параметры модели>] Параметры модели аналого-цифрового интерфейса приведены в табл. 4.25.
Параметры аналого-цифрового интерфейса
Идентификатор |
Параметр |
Значение по умолчанию |
Единица измерения |
||
RLOAD |
Сопротивление нагрузки |
1/GMIN |
Ом |
||
CLOAD |
Емкость нагрузки |
0 |
Ф |
||
CHGONLY |
Флаг преобразования: 0 — преобразование на каждом шаге по времени; 1 — преобразование при наличии изменения входного напряжения (только при записи в файл) |
||||
SONAME |
Имя логического состояния «0» |
— |
— |
||
SOVLO |
Нижний уровень напряжения логического «0» |
— |
В |
||
SOVHI |
Верхний уровень напряжения логического |
«0» |
— |
||
S1NAME |
Имя логического состояния «1» |
— |
— |
||
S1VLO |
Нижний уровень напряжения логической «1» |
— |
В |
||
S1VHI |
Верхний уровень напряжения логической «1» |
— |
в |
||
S19NAME |
Имя логического состояния «19» |
— |
— |
||
S19VLO |
Нижний уровень напряжения логического состояния «19» |
— |
в |
||
S19VHI |
Верхний уровень напряжения логического состояния «19» |
— |
в |
||
SXNAME |
Имя логического состояния, когда напряжение на узле интерфейса находится вне заданных границ |
? |
— |
||
FILE |
Имя файла цифрового сигнала (только при записи в файл) |
— |
— |
||
FORMAT |
Код формата входного файла цифровых сигналов (только при записи в файл) |
1 |
— |
||
TIMESTEP |
Интервал дискретизации по времени при записи в файл |
10- 9 |
с |
||
TIMESCALE |
Масштабный коэффициент при расчете интервала времени TIMESTEP (только при записи в файл) |
1 |
— |
||
Каждому i-му логическому состоянию соответствует определенный диапазон напряжений SiVL0…SiVH1. До тех пор пока входное напряжение интерфейса
А/Ц V ex не выходит за его границы, логическое состояние на выходе интерфейса А/Ц не изменяется. далее…
Макромодели
Макромодели
Отдельные фрагменты цепи или схемы замещения компонентов имеет смысл оформлять в виде макромоделей (подсхем). Описание макромодели начинается директивой .SUBCKT и заканчивается директивой .ENDS. Между ними помещаются описания компонентов, входящих в состав макромодели:
.SUBCKT <имя макромодели> <список узлов>
+ [OPTIONAL:<< узел интерфейса> = <значение по умолчанию>>*}
+ [PARAMS:<имя параметра>=<значение>*}
+ [ТЕХТ:<<имя текстовой переменной> — <текст>>*]
{описание компонентов}
.ENDS [имя макромодели]
Ключевое слово OPTIONAL используется для спецификации одного или более необязательных узлов макромодели — указываются имя узла и его значение по умолчанию. Если при вызове макромодели эти узлы не указываются, используются их значения по умолчанию, что удобно для задания источников питания цифровых устройств; после ключевого слова PARAMS приводится список параметров, значения которых передаются из основной цепи в макромодель. После ключевого слова TEXT — текстовая переменная, передаваемая из описания основной цепи в описание макромодели (используется только при моделировании цифровых устройств). Между директивами .SUBCKT и .ENDS можно помещать описания других макромоделей и другие директивы. Приведем пример:
* Макромодель ОУ К140УД11. далее…
Циклы for и while
Циклы for и while
Зачастую необходимо циклическое повторение выполнения выражения заданное число раз или до тех пор, пока выполняется определенное условие. Maple 15 имеет обобщенную конструкцию цикла, которая задается следующим образом:
| for <name>| |from <exprl>| |to <expr3>| |by <expr2>| (while <expr4>| do Statement sequence> od;
Здесь name — имя управляющей переменной цикла, exprl, ехрr2 и ехрrЗ — выражения, задающие начальное значение, конечное значение и шаг изменения переменной name, ехрr4 — выражение, задающее условие, пока цикл (набор объектов между словами do и od) будет выполняться.
В ходе выполнения цикла управляющая переменная меняется от значения exprl до значения ехрr2 с шагом, заданным ехрrЗ. Если блок by <ехрr2> отсутствует, то управляющая переменная будет меняться с шагом +1 при ехргКехрг2. Это наглядно поясняет следующий пример:
> for i front 1 to 5 do printd) od;
1
2
3
4
5
В нем выводятся значения переменной i в ходе выполнения цикла. Нетрудно заметить, что она и впрямь меняется от значения 1 до значения 5 с шагом +1. Следующий пример показывает, что границы изменения управляющей переменной можно задать арифметическими выражениями:
> for i from 7/(2+5) to 2+3 do printd) od:
1
2
3
4
5
А еще один пример показывает задание цикла, у которого переменная цикла меняется от значения 1 до 10 с шагом 2:
> for i from 1 to 10 by 2 do printd) od: 1 3 5 7 9
8 этом случае выводятся нечетные числа от 1 до 9. Шаг может быть и отрицательным:
> for i from 9 to 1 by -2 do print(i) od:
9
7
5
3
1
Следует отметить, что если exprl>expr2 задать заведомо невыполнимое условие, например, ехрr1>ехрг2 и положительное значение шага, то цикл выполняться не будет. Цикл можно прервать с помощью дополнительного блока while <ехрr4>. Цикл с таким блоком выполняется до конца или до тех пор, пока условие ехрг4 истинно.
> for i from 1 to 10 by 2 while i<6 do print(i) od:
1
3
5
Таким образом, конструкция цикла в Maple-языке программирования вобрала в себя основные конструкции циклов for и while. Есть еще одна, более специфическая конструкция цикла:
|for <name>| |in <exprl>| |whi1e <expr2>| do statement sequence> od:
Здесь exprl задает список значений, которые будет принимать управляющая переменная name. далее…
Типовые средства программирования
Типовые средства программирования.
Функции пользователя
Упрощенные функции пользователя
Хотя ядро Maple 15, библиотека и пакеты содержат свыше 3000 функций, всегда может оказаться, что именно нужной пользователю (и порою довольно простой) функции все же нет. Тогда возникает необходимость в создании собственной функции, именуемой функцией пользователя. Начнем описание с обычных функций пользователя, задающих некоторую зависимость от одной или ряда переменных в явном виде.
Основным средством расширения Maple-языка являются модули — процедуры. Однако на первый взгляд они довольно сложны. Есть и более простые способы задания функций пользователя. Один из таких способов заключается просто в присваивании введенной функции (в виде выражения) некоторой переменной: Name:-выражение
Этот прием фактически означает просто операцию присваивания. Следующие примеры иллюстрируют технику работы с такими функциями:
Заданный таким образом объект все же не является полноценной функцией пользователя, и прежде всего потому, что в нем используются только глобальные переменные (х и у) и нет объявленного списка параметров, от которых зависит значение функции. далее…
Операции с векторами
Операции с векторами
Важное достоинство систем компьютерной алгебры, к которым относится и Maple 15, заключается в возможности выполнения аналитических (символьных) операций над векторами и матрицами.
Приведем примеры операций над векторами:
В этих примерах используется функция evalm(M), осуществляющая вычисление матрицы или вектора М.
ПРИМЕЧАНИЕ
Рекомендуется перед проведением символьных операций с векторами и матрицами очистить память от предшествующих определений с помощью команды restart. Если какие-то элементы векторов или матриц были ранее определены, это может привести к очень сильным искажениям вида конечных результатов. Очистка памяти устраняет возможность ошибок такого рода.
Операции над матрицами с численными элементами
Над матрицами с численными элементами можно выполнять разнообразные операции. Ниже приведены основные из них:
ПРИМЕЧАНИЕ
Рекомендуется внимательно изучить эти примеры и попробовать свои силы в реализации простых матричных операций. далее…
Обратные тригонометрические функции
Обратные тригонометрические функции
К обратным тригонометрическим относятся следующие функции:
- arcsin — арксинус;
- arccos — арккосинус;
- arctan — арктангенс;
- arcsec — арксеканс;
- arccsc — арккосеканс;
- arccot — арккотангенс.
Примеры вычислений:
К этому классу функций принадлежит еще одна полезная функция: arctan(y.x) = argument(x+I*y)
Она возвращает угол радиус-вектора в интервале от -Pi до Pi при координатах конца радиус-вектора х и у (см. пример ниже):
Графики ряда обратных тригонометрических функций показаны.
Гиперболические функции
Гиперболические функции представлены следующим набором:
- sinh — гиперболический синус;
- cosh — гиперболический косинус;
- tanh — гиперболический тангенс;
- sech — гиперболический секанс;
- csch — гиперболический косеканс;
- coth — гиперболический котангенс.
Примеры применения гиперболических функций представлены ниже:
На сверху представлены графики гиперболического синуса, косинуса и тангенса. По ним можно судить о поведении этих функций.
ПРИМЕЧАНИЕ
В отличие от тригонометрических гиперболические функции не являются периодическими. Функция гиперболического тангенса имеет симметричную кривую с характерными ограничениями. Поэтому она широко используется для моделирования передаточных характеристик нелинейных систем с ограничением выходного параметра при больших значениях входного параметра.
Обратные гиперболические функции
Как и тригонометрические функции, гиперболические имеют свои обратные функции:
- arcsinh — гиперболический арксинус;
- arccosh — гиперболический арккосинус;
- arctanh — гиперболический арктангенс;
- arcsech — гиперболический арксеканс:
- arccsch — гиперболический арккосеканс:
- arccoth — гиперболический арккотангенс.
Примеры применения:
Графики обратных гиперболических синуса, косинуса и тангенса представлены снизу. далее…