astrgan

Помогите Просимулировать Проэкт В Vmlab

18 сообщений в этой теме

astrgan    0

Если есть у кого нибудь свободное время пожалуйста наберите в VMLAB.

Proteus что-то не хочет, как работать с VMLAB я не как не врублюсь.

Когда запускаю симуляцию в протеусе, то видно что программа как-то работает (порты мигают) но когда подключаю к ним осцилогроф с фнч сигнал перестает изменятся.

P.S. пробую сделать трехфазный генератор синуса на atmega 128 методом шим.

b61af8e70c0007ee3b3b1d89df313594.jpg

ШИМ.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Rhime    143

А порт "E" на выход я за вас настраивать буду?

А у вас на нем сейчас неопределенное состояние вот и нет шима.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

  А что именно в VMLab не получается? Регистры index_1(2,3) не инициализированы при старте и содержат неопределенные состояния. Кол-во тактов в каждом канале, для построения синусоиды различны. Нет проверки регистров счетчика приращения (index_1,2,3) и сброса их для создания цикличности, что приводит к смещению Z за пределы массивов. 

Изменено пользователем Геннадий

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alexeyslav    631

Ты вводишь в цифровую схему анаоговые элементы, ясное дело что симуляция в реальном времени требует слишком больших ресурсов, поэтому протеус замедляет процесс, он идет медленно, возможно у тебя не хватает терпения? Там внизу есть счетчик времени симуляции, если он крутистя - значит симуляция идет. Обрати внимание насколько он быстро крутится - если секунда-в-секунду, значит симуляция в реальном времени а если за секунду реального времени проходит 1мс виртуального... ну понял, да?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
UTSource

Найдите миллионы труднодоступных

электронных компонентов

astrgan    0

А порт "E" на выход я за вас настраивать буду?

А у вас на нем сейчас неопределенное состояние вот и нет шима.

Если настраивать аппаратный шим, то инициализацию порта на вывод все равно надо делать?

  А что именно в VMLab не получается? Регистры index_1(2,3) не инициализированы при старте и содержат неопределенные состояния. Кол-во тактов в каждом канале, для построения синусоиды различны. Нет проверки регистров счетчика приращения (index_1,2,3) и сброса их для создания цикличности, что приводит к смещению Z за пределы массивов. 

Командой cls подойдет для инициализации? Сделал так:

.include "m128def.inc"

.def index_1 = R8
.def index_2 = R9
.def index_3 = R10

CLR index_1
CLR index_2
CLR index_3

Эээ про Кол-во тактов в каждом канале не понял, объясните пожалуйста?

Сброс для создания цикличности был:

R14 = 100

	CP index_1, R14
BREQ POWT1
RETI
POWT1:
CLR index_1
RETI

Ты вводишь в цифровую схему анаоговые элементы, ясное дело что симуляция в реальном времени требует слишком больших ресурсов, поэтому протеус замедляет процесс, он идет медленно, возможно у тебя не хватает терпения? Там внизу есть счетчик времени симуляции, если он крутистя - значит симуляция идет. Обрати внимание насколько он быстро крутится - если секунда-в-секунду, значит симуляция в реальном времени а если за секунду реального времени проходит 1мс виртуального... ну понял, да?

Идет секунду в секунду.

Сделал все что сказали, заработало :rolleyes:

Только на выходе не синус :(

PWM.zip

Изменено пользователем astrgan

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Извиняюсь, не заметил про сброс. Однако, кол-во тактов равно 100 (R14=100), а сколько данных в массивах?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
astrgan    0

Извиняюсь, не заметил про сброс. Однако, кол-во тактов равно 100 (R14=100), а сколько данных в массивах?

Хотел сто, щас посчитаю и подкорректирую.

И вот, кажется похоже но только какая та дерганная осциллограмма.

PWM.rar

Изменено пользователем astrgan

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 Mas1 - 92байта, mas2 - 97байт, mas3 - 100байт. Считай. Верхние значения из первых двух массивов берутся за пределами своих областей ("наезжают" на чужие данные). Отсюда и рвачка синуса. 

Изменено пользователем Геннадий

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
astrgan    0

Здравствуйте.

Вот сделал.

Кажется теперь больше подходит, но все равно не синусойда.

LC - фильтр странно дергается

RC - немного не такой рисунок.

Проверьте пожалуйста.

e96061eeceaeea2cbd7aa45e8dfb0128.jpg

PWM.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alexeyslav    631

Такой "рисунок" не может получится из-за неправильного фильтра, это у тебя программный глюк.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
astrgan    0

Считаю вот так:

bdb2c6d32b894085dad3a72804f26173.jpg

Nf = 100 (сто точек вот и делю на сто)

k = 1..100 (номер элемента)

Как же посчитать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 Дело не в расчетах, а в программе. Думаю, нет смысла "гонять три совпадения", а взять одно "переполнение", как квантование (все равно частота одна). Тогда достаточно одного массива синуса, а сдвиг фаз осуществлять выборкой данных. Вот попробуй. ШИМ.rar

Кстати, проект создан в VMLAB. Если откроешь в VMLAB (View - Project File), то сможешь посмотреть, как симулируются некоторые процессы. Остальное ищи в Help-е.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
astrgan    0

Геннадий

Спасибо большое. Это мне очень поможет.

Только почему та N3 на осциллографе синусоиду не выдает.

P.S. я пока плохо знаю язык программирования, не подскажите что значит "<<1" в

ldi ZL,low(MAS1<<1)
ldi ZH,high(MAS1<<1)

Чтобы мне не искать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это глюк VMLAB. К сожалению, проект "застыл" и поддержка новых МК хромает (пока). <<1 означает сдвиг и равносильно *2.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ADDYKON    0

А не подскажете, как сигналы ШИМ вывести не на эти выводы, а на 15,16,17 . Что нужно изменить в коде? И как можно сделать регулировку на выходе сразу по трём выводам?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

  • Похожие публикации

    • Автор: 5670721
      Доброго времени!
      Для Ардуино мне необходимо написать программу управления тремя сервоприводами и выводом на дисплей абсолютного угла наклона по одной оси.
      Два сервопривода должны управляться потенциометрами, третий кнопкой (два положения сервопривода).
      Ну и помочь мне все это спаять ) Поэтому желательно, чтобы Вы находились в Москве или Подмосковье.
      Так же я слышал про накопление ошибки при работе гироскопа-акселерометра, очень желательно убрать эту проблему.
      Если, конечно, Вы не предложите более подходящий прибор для измерения угла наклона.
      Компоненты все куплены.
    • Автор: dbokov
      Всем привет.
      С учётом разрастающейся мастерской всё труднее искать нужные детали, а также помнить, что в ней есть, а чего нет.
      Задумался о системе учёта деталей, материалов, инструментов.
      На просторах интернета нашёл программу учета деталей (начинайте с 10стр) http://monitor.espec.ws/section13/topic25350.html
      Мне очень понравилась - нет ничего лишнего, не перегружена, всё понятно, бесплатна (ну по желанию можно отблагодарить). Разработчик очень адекватно реагирует на пожелания пользователей.
      Давно пользуюсь данной программой, очень доволен.
    • Автор: Zimmer
      Проблема: При открытии файла появляется диалоговое окно с сообщением о несовместимости версий: «Невозможно открыть файл чертежа, так как он создан в более ранней версии AutoCAD». Но главное то, что он создан в этой самой версии и программе уже скоро будет 3 года. Некоторые моменты уже проверены, и испробованы. Пишу сразу на нескольких формах, т.к файл надо запустить. Подойдут все методы и способы исправить .dwg файл AutoCAD. Спасибо. У меня уже кипит...
    • Автор: Alexander07
      Здравствуйте, есть такой вопрос. Мне нужна программа, в которой я могу создавать электрические цепи и проводить расчёты. Желательно, чтобы программа представляла из себя лабораторный стенд как в кабинетах. Есть какие-нибудь программы?
    • Автор: soulmare
      Может, кому-то пригодится простой онлайн конструктор шкалы прибора, позволяющий в браузере по заданным параметрам сгенерировать шкалу с делениями и цифровыми метками. Собственно, вот он: http://shopcms-moduli.com/scale_constructor/scale_constructor.php
      Чтобы сохранить шкалу как рисунок, можно сделать скриншот, и потом в графическом редакторе дорисовать или подправить что нужно.
      Программа делалась за вечер, для собственных небольших потребностей, ради которых не хотелось устанавливать профессиональные векторные пакеты вроде CorelDraw. Скрипт полусырой, но может быть при желании и умении пользователя доработан - исходник прилагаю.
      Лично у меня остались такие нерешенные в скрипте проблемы:
      шкалы с нелинейным изменением точная подгонка делений под снятый с показателей прибора шаблон Это все реализуемо, но простого способа не придумал, а сложные займут слишком много времени, которое неизвестно когда появится.

      scale_constructor.source.zip