В общем, есть такая софтина как femm - программа рассчёта всяких магнитных явлений. Она поддерживает выполнение lua-скриптов, в том числе в сети гуляет скрипт для рассчёта гаусс-пушек. Всё бы хорошо, но этот скрипт считает скорость и другие параметры при заранее известных значениях ёмкости и напряжения батарей, параметров катушки и прочего, а (лично мне) более интересна обратная задача - получить наибольшую скорость/КПД/баланс (когда как :-) ) исходя из того, какие есть ресурсы.
Итак, за ночь был написан скрипт для femm4.0 на ранее незнакомом мне языке, разбирающий все комбинации параметров из конфига и кидающий результат в csv-файл для дальнейшего разгребания.
Таким образом, скрипт был переделан так чтобы выбирать возможные комбинации параметров из конфига такого вида :
Ёмкости батарей (мкф) [/] Напряжения (В) [/] Диаметры провода катушки (мм) [/] Удвоенные толщины изоляции (мм) [/] Длины катушки (мм) [/] Внешние диаметры катушки (мм) [/] Толщины магнитопровода (мм) [/] Коды материалов магнитопровода [/] Коды материалов пули [/] Длины пули (мм) [/] Диаметры пули (мм) [/] Расстояния вдвига пули (мм) [/] Внешние диаметры ствола (мм) [/] Начальная скорость (м/с) - если равна 0, то пишите 0.01 Приращение времени (мкС) - "обратно пропорционально" точности и времени рассчёта
Как видим, последние 2 параметра - одинаковы всегда (для чистоты эксперимента) Также, номера выбираемых в каждой комбинации ёмкостей и напряжений совпадают.
Например, у нас есть 2 конденсатора : 900мкф x 400В и 1000мкф x 350В Тогда начало конфига будет таким :
Code
900 1000 1900 473.7 [/] 400 350 350 750
чему соответствуют :
1-й конденсатор (900x400)
2-й конденсатор (1000x350)
параллельное соединение (1900x350)
последовательное соединение(473.7x750)
Далее. Пусть мы хотим менять диаметр провода от 0.5 до 1 мм с шагом 0.1.Тогда соответствующая часть конфига выглядит как :
Code
0.5 0.6 0.7 0.8 0.9 1 [/]
Таблица материалов приведена в текстовом файле. Например, "гвоздевому" железу соответствует код 154
Инструкция : запускаем femm (прекрасно работает в wine под xubuntu 11.10), далее - "File" -> "Open Lua Script", потом вводим имя файла-конфига (без .txt)