Показать сообщение отдельно
Непрочитано 27.07.2009, 15:13  
Halex07
Супер-модератор
 
Аватар для Halex07
 
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,508 раз(а) в 956 сообщении(ях)
Halex07 на пути к лучшему
По умолчанию

  • 2.15. Первый неудачный запуск симуляции. Пляски с бубном или анализ возможных причин неработоспособности в симуляторе реально работающей схемы.
    Для запуска симуляции созданного нами проекта осталось нажать кнопку Play внизу слева в трее окна ISIS. Результат первого запуска на рисунке 26. Я уменьшил окно программы, чтобы разместить его целиком на рисунке, поэтому расположение панелей внизу немного отличается от полноэкранного режима, где они расположены горизонтально в ряд.
    О старте симуляции свидетельствует зеленая подсветка кнопки Play. Зеленый кружок с символом i свидетельствует о том, что запуск прошел без ошибок. Лог симулятора содержит 7 сообщений (Messages). При желании его можно открыть не останавливая симуляции щелкну по нему левой кнопкой мыши. Если бы были какие то отклонения при запуске симулятора, то вместо зеленого круга был бы желтый треугольник с восклицательным знаком, а при наличии критического сбоя симулятора - красный. В последнем случае окно лога открывается автоматически, т.к. симуляция не работает вообще. Но и наличие желтых "горчичников" тоже свидетельствует о том, что результат симуляции подлежит сомнению и дополнительной проверке. В таймере ANIMATING: происходит отсчет времени с начала запуска и показана загрузка процессора (CPU ) компьютера. Еще раз хочу обратить внимание на этот показатель. Математика симулятора PROSPICE, на котором базируется ISIS, отнимает значительные ресурсы компьютера, особенно при расчете работы аналоговых схем, где требуется провести очень большое количество расчетов как по времени, так и по уровням сигналов. Поэтому при загрузке CPU load 100% или близко к этому имитация работы схемы в реальном времени практически невозможна. Обычно Протеус предупреждает об этом наличием "горчичника" и сообщением в логе:
    Simulation is not running in real time due to excessive CPU load
    В этом случае необходимо либо прибегнуть к упрощению схемы за счет сокращения входящих в нее аналоговых компонентов, либо - попробовать проанализировать необходимые нам параметры с помощью графиков (Graph Mode), которые позволяют просчитать и получить результаты за счет более длительного но распределенного по времени вычисления, снимая при этом загрузку с ЦП компьютера. Этим мы чуть ниже и займемся, но совсем по другим причинам.
    Итак, мы видим, что даже при отжатой кнопке на входе частотомера вместо нормального показания 00.00000 уже несоответствие показаний, а если кнопку нажать, то показания индикатора пропадают совсем и лишь изредка на нем мелькает непонятная информация. Немного отвлекусь на управление активным элементом Button (Кнопка) в процессе симуляции (Рис.27). Дело в том, что модели активных компонентов коммутации Button (Кнопка) и некоторые Switch (Переключатели), входящие в стандартные библиотеки Протеуса могут управляться двумя способами. В первом случае управление происходит щелчком левой кнопкой мыши по нужному элементу управления черный кружок со стрелкой, а во втором при наведении курсора на само изображение управляемой части компонента. Если у переключателей положение после воздействия фиксируется, то единственный в ISIS компонент Button ведет себя иначе. При щелчке по элементу управления - кнопка ведет себя как кнопка с фиксацией (выключатель), а при наведении курсора на саму кнопку - нажатие левой кнопки мышки вызывает нажатие кнопки, а отпускание мышки - возврат в исходное состояние - т.е. имеем нефиксируемую кнопку. Кнопку SB4 в нашей схеме мы будем использовать как фиксируемый выключатель входа. Еще один нюанс - все активные элементы управления в Протеусе функционируют даже при выключенной симуляции, что позволяет провести предустановку параметров схемы перед выполнением симуляции. Например, установив в проект активную модель термопары (Thermocouple) или One-Wire температурного датчика DS18B20, Вы можете до начала симуляции установить им температуру на нужное значение.
    На этом закончим лирическое отступление вернемся к нашей схеме и попробуем понять почему индикация погасла при подаче на вход измеряемого сигнала. Первая причина - низкая частота подаваемого сигнала - в нашем случае 100Гц. Я не буду полностью расписывать принцип работы частотомера Денисова, а только напомню, что такая структура прибора предусматривает измерение по переполнению счетчика/таймера микроконтроллера. Поскольку входную частоту мы выбрали очень низкой, переполнение происходит редко, а индикация жестко завязана с циклом измерения - отсюда и редкие мерцания. Тот же эффект будет и в реальном устройстве. Остановим симуляцию и увеличим измеряемую частоту генератора CLOCK до 10кГц, тем более, что низкая загрузка CPU (в моем случае 7%) позволяет это сделать. Снова запустим симуляцию. При подключенном генераторе картинка изменилась - вместо редко мерцающих хаотичных сегментов - появились постоянно горящие, но от этого нам не легче.
    Исполним второе па "мармезонского балета" на этот раз с индикатором. Войдем в его свойства и найдем там параметр Minimum Trigger Time. По умолчанию там стоит значение 1ms (милисекунда). Что он означает? Согласно Help на данный компонент - это минимальное время присутствия сигнала на выводе индикатора при котором сегмент засвечивается. Правда в Help почему то указано по умолчанию 1us, но оставим эту очепятку разработчикам, а сами действительно установим такое значение. Снова запустим симуляцию. Картинка опять изменилась. Теперь при подключенном генераторе горит непотребное значение, явно отличающееся от подаваемого, а при отключенном - все нули, но в обоих случаях висят лишние десятичные точки, хотя должна быть только одна. Это уже "теплее", но не соответствует реальности. Дальнейшее уменьшение Trigger Time желаемого эффекта уже не дает, так что пляски с бубном придется прекратить и перейти к более детальному исследованию поведения динамической индикации в симуляторе ISIS PROSPICE. Для этого нам придется прибегнуть к помощи графиков (Graph).
Рисунок 26
Рисунок 27
Миниатюры:
Нажмите на изображение для увеличения
Название: Pic26.gif
Просмотров: 2115
Размер:	48.9 Кб
ID:	1700   Нажмите на изображение для увеличения
Название: Pic27.gif
Просмотров: 1271
Размер:	5.8 Кб
ID:	1701  

Последний раз редактировалось Halex07; 04.11.2009 в 06:08.
Halex07 вне форума  
Эти 28 пользователя(ей) сказали Спасибо Halex07 за это сообщение:
A-Soft (31.05.2016), ABrej (06.04.2010), alexandr156 (16.03.2011), bi_max (27.09.2011), bz1100 (24.02.2012), downkazus (13.07.2010), fmp (30.12.2010), garimas (17.09.2012), igor7779 (16.12.2009), leoblp (01.12.2009), lisergin (23.09.2010), MihailoMihalych (23.01.2023), MUR2 (13.12.2009), Paulwasw (27.11.2012), rw54 (02.07.2010), sa502 (18.12.2009), seltec (29.05.2011), Sergei751 (14.11.2010), Space-r (04.05.2010), switch0 (03.12.2012), Tatarin_nsk (10.11.2009), Tischon (21.01.2011), Traan (16.09.2013), Vladim00 (10.12.2014), wct_sniaper (29.01.2010), ДимаК (21.06.2011)