LINUX.ORG.RU

Нужны советы, эл. схема на реле


0

0

добрый вечер. у меня задача - смоделировать электрическую схему на релюшках. точных rules пока что нет, но общую модель я начал обдумывать:

реле(как и собственно любые другие лог. элементы, если понадобится) я думаю задавать с помощью вот такого простого списка -

(тип_реле (входы) (выходы)) 
где модель реле будет добавляться специальной ф-цией, вот псевдокод -
function add_type_rele (count_input count_output lambda)
{ поместить информацию о реле в общий ассоциативный список, где номер по счёту будет ключом
}
count_input _output - количество входов, выходов соответсвенно
lambda - ф-ция, вычисляющая выходы реле в зависимости от входов и, возможно, предыдущего состояния

схема будет формироваться в массив, состоящий из реле, к примеру-

#( (1 (2 2) (1))    ;реле типа 1 с входами соединёными с выходом второго реле
   (1 (1 3) (2))    ;реле типа 1 с входами соединёными с выходом первого реле и 1-ым выходом 3 реле
   (2 (1 2) (3 4))) ;реле типа 2 ...

работа схемы будет в цикле и выполняться пошагово. как это реализовать я ещё не до конца обдумал, но, наверное, что-то типа -

1. создаём новые переменные для хранения текущих значений на выходах
2. вычисляем ф-ции и пишем новые значения переменных
3. goto 2

вот вроде и всё, что пока есть. сделать это задание желательно в течение недели. Вопросы у меня такие - что надо изменить в этом алгоритме? что делать с временными параметрами реле? т.е. не все реле могут переключиться за 1 такт

p.s. это не лаба, не курсовик, так что надеюсь не будете пинать как студента) просто опыта в таком деле нет и специализированных алгоритмов мне не известно :D

>специализированных алгоритмов мне не известно :D

Зато есть специализированные языки типа VHDL.

imhotep
()

>что делать с временными параметрами реле? т.е. не все реле могут переключиться за 1 такт

имеется ввиду, что для перехода реле из одного состояния в другое требуется больше одного такта с одинаковыми входными параметрами? если так - наплоди промежуточных внутренних состояний, чтобы на каждом такте происходил переход, ведущий к итоговому состоянию. т.е. если на переход A->B требуется два такта, получаем переходы A->A1->B, причём различие между A и A1 должно быть явно только внутри реле, для остальных компонентов A==A1.

а вообще, тебе обязательно изобретать свой велосипед для этой задачи или просто альтернативы неизвестны? ибо для таких вещей существуют специализированные языки и среды для эмуляции моделей.

shuthdar ★★★
()
Ответ на: комментарий от anonymous

Зато есть специализированные языки типа VHDL.

не подходит мне

Сети Петри вспоминаются почему-то.

мне кажется так только сложнее будет

а вообще, тебе обязательно изобретать свой велосипед для этой задачи или просто альтернативы неизвестны? ибо для таких вещей существуют специализированные языки и среды для эмуляции моделей.

человек, которому это надо, не доволен существующими проектами

pseudo-cat ★★★
() автор топика

По синтезу релейных схем точно есть литература из замшелых лет. Держал в руках, был поражен, но боюсь вот так не найду. Там просто задавался вход и результат необходимый и строилась соответственно схема оптимально удовлетворяющая условиям.

psv1967 ★★★★★
()
Ответ на: комментарий от pseudo-cat

дребезг контактов тоже надо эмулировать?

wfrr ★★☆
()

Что мешает использовать существующие пакеты моделирования из матлаба( симулинк), правда он будет стоить где-то 6-8 штук у.е.? Или бесплатную(свободную?) scilab, модуль scicos. Там просто в гуе добавляешь блоки, задаёшь параметры и связи - состояния можно смотреть на графике.

что делать с временными параметрами реле?

Ничего. Просто всю схему нужно моделировать с много меньшим промежутком. Вроде этого: на каждом реле есть состояние, которое нужно вычислять в каждый промежуток.

Вопросы у меня такие - что надо изменить в этом алгоритме?

Гистерезис, возможно коммутацию.

где модель реле будет добавляться специальной ф-цией, вот псевдокод

уверен, что всякие обратные связи не будут мешать?

и специализированных алгоритмов мне не известно

они есть.

anonymous
()
Ответ на: комментарий от pseudo-cat

>человек, которому это надо, не доволен существующими проектами

И за неделю ему нужно сделать «лучше» без конкретного ТЗ? Походу тут феерическая неадекватность.

anonymous
()
Ответ на: комментарий от anonymous

Что мешает использовать существующие пакеты моделирования из матлаба( симулинк), правда он будет стоить где-то 6-8 штук у.е.? Или бесплатную(свободную?) scilab, модуль scicos. Там просто в гуе добавляешь блоки, задаёшь параметры и связи - состояния можно смотреть на графике.

спасибо, первый вариант не устраивает из-за своей цены. во втором можно управлять тем как выглядит реле(нужно именно избежать чёрного ящика)?

дребезг контактов тоже надо эмулировать?

не волнуйтесь, с этим я и сам справлюсь, как два пальца

Там просто задавался вход и результат необходимый и строилась соответственно схема оптимально удовлетворяющая условиям.

строилась сама? вот это уже интересено, но в задании этого не требуют. У меня всё проще, надо составить работающую модель, затем прикрутить гуй, чтобы было удобно контактики расставлять

и специализированных алгоритмов мне не известно

они есть

замечательно

Ничего. Просто всю схему нужно моделировать с много меньшим промежутком. Вроде этого: на каждом реле есть состояние, которое нужно вычислять в каждый промежуток.

первая часть предложения не зависит от второй. Состояние то да, его надо вычислять на каждом такте, но это состояние может быть внутренним (предыдущим)

Гистерезис, возможно коммутацию.

что извините, гистерезис? если звук контактов ещё забавно было(хотя по нему можно слышать работу небольшой схемы, к примеру тактового генератора), то гистерезис тут нафиг не нужен)

уверен, что всякие обратные связи не будут мешать?

я не уверен что это вообще работать будет и не знаю как задавать начальный импульс в этой цепочке, а вы спрашиваете про обратные связи. хотя какая разница, обратные связи будут вычисляться на следующем такте просто

pseudo-cat ★★★
() автор топика
Ответ на: комментарий от anonymous

И за неделю ему нужно сделать «лучше» без конкретного ТЗ? Походу тут феерическая неадекватность

за неделю не, это я хочу за неделю. а сделать надо не лучше по всем возможностям, а по отдельным, т.е. только по реле и гую. типа, как я уже говорил, чтобы реле было не чёрным ящиком, а набором контактов

pseudo-cat ★★★
() автор топика
Ответ на: комментарий от pseudo-cat

Вот этого автора книгу (достоинство — очень «тонкая» :) я читал:

http://nasb.gov.by/rus/publications/vestift/vth98_2b.php

Закревский, Аркадий Дмитриевич Логический синтез каскадных схем

также более теоретично, но и вопросы «реальности» схем поднимаются (главное текст доступен для скачивания :) http://gen.lib.rus.ec/get?md5=BCB7913AD541E92C8343AE8AF9FA1A96

о реферат содержащий все ключевые слова http://www.5ka.ru/69/16521/1.html

psv1967 ★★★★★
()

Вам нужны ленивые структуры данных. Читайте соответствующую главу в SICP, там рассматривается как раз язык описания схем.

anonymous
()
Ответ на: комментарий от psv1967

Вот этого автора книгу (достоинство — очень «тонкая» :) я читал:

http://nasb.gov.by/rus/publications/vestift/vth98_2b.php

ссылка мертва

http://www.5ka.ru/69/16521/1.html

не, это я понимаю, я вообще немного разбираюсь в схемотехники, меня сейчас интересует как это на компе реализовать

Вам нужны ленивые структуры данных. Читайте соответствующую главу в SICP, там рассматривается как раз язык описания схем.

зачем. структуру я уже описал, а в СИКПе, припоминаю что-то наподобие, там вроде расчёт резисторов, описаных использованием парами

насчёт представления реле пока вопросов нет, интересуют советы пореализации цикла работы. пока ничего лучшего, описанного выше(ну или использования дискретного или детерминированного(если захочется странностей) автомата) ничего в голову не пришло

pseudo-cat ★★★
() автор топика
Ответ на: комментарий от pseudo-cat

ленивые структуры данных

ой, слово не заметил, да, спасибо, попытаюсь разобраться в ленивости, правда раньше никогда не работал с этим термином. приминительно к программированию))

pseudo-cat ★★★
() автор топика

Во втором номере fprog [http://fprog.ru] есть статья «Прототипирование с помощью функциональных языков. Применение функциональных языков для моделирования цифровых электронных схем». Только я не знаю, насколько она подходит к схеме на реле, потому что в теме совершенно не разбираюсь.

dave ★★★★★
()
Ответ на: комментарий от pseudo-cat

>Вам нужны ленивые структуры данных. Читайте соответствующую главу в SICP, там рассматривается как раз язык описания схем.

да, вы были прав, потоки мне подходят, наверное

pseudo-cat ★★★
() автор топика
Ответ на: комментарий от pseudo-cat

Ещё есть «Programming with Arrows» (естественно, для дефолт языка), там есть разные примерчики моделирования схем, с детальным расжёвыванием. Буду дома - пороюсь в распечатках и скажу название/автора точно.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.