Потратил целый вечер на проверку новых возможностей SimOne. Вот что получилось:
Новые функции расчёта БПФ и расчёта децибелов по заданному опорному уровню реально удобны.
НО, к сожалению, не обошлось без "ложки дёгтя", и весьма немалой.
Исходные данные: схема каскада Тейлора, на входе - генератор синуса 10кГц, на выходе активная нагрузка, задание на моделирование через блок SPICE прямо на схеме (вид моделирования - .pss, после него команды plot, fftn, thd).
1) Как-то неадекватно срабатывает отображение результата, конкретно - функций fftn, db(fftn(...),...), а именно: шкала абсцисс остаётся по времени и на ней прямая линия графика. Долго мучал программу, пока методом "научного тыка" не нажал на списке графиков кнопку изменения шкалы с линейной на логарифмическую - график поменялся вместе со шкалой абсцисс, и это странно, ведь эта кнопка изменяет шкалу ординат. Но, что самое интересное, после повторного нажатия на эту кнопку наконец-то появился ожидаемый вид графика FFT! Почему не настраивается график при его первоначальном отображении после окончании расчёта - вопрос программистам. Кнопки включения/выключения отображения графика в окне списка графиков такого эффекта, как кнопка изменения шкалы, не дают.
2) Очень неудобно пользоваться графиком: во-первых - очень большой "хвост" из высших гармоник, постоянно приходится масштабировать его при перерасчёте - всё-таки желательно иметь возможность задавать нужный диапазон частот FFT (по крайней мере верхнюю границу). Во-вторых, неадекватная работа масштабирования графика на логарифмической шкале (на линейной проблем нет) - особенно оси ординат - буквально один шаг колёсиком мышки при нажатой SHIFT - и масштаб оси ординат "уезжает" в никуда, либо в очень малые шаги с одними и теми же цифрами на оси ординат с несуразными значениями экспоненты, либо в очень большие шаги и цифры оси ординат наезжают друг на друга вместе с сильно "полосатым" графиком из горизонтальных линий. Считаю, что алгоритм масштабирования логарифмической шкалы следует пересмотреть.
3) Ну и самое удивительное и неожиданное, лично для меня, были значения THD. Имея опыт "танцев с бубном" на OrCADе, я решил проверить и SimOne: замерил THD (и THD_R) на выходе каскада и на входе (генераторе синуса) - неожиданно они оказались очень близкими, а именно - на выходе значение 3.724m, а на входе - 3.723m (!!!). Разница минимальная. Даже изменяя значения точности FFT в широких пределах (от стандартных 1024 до 32768) конечные значения не сильно поменялись относительно друг-друга. Данные результаты могу интерпретировать так, что источник сигнала не совсем "чистый", конкретно у меня 2-я гармоника сигнала прямо на контакте генератора напряжения получилась -79дБ при шаге расчёта по умолчанию (и -97дБ при шаге 32768). В таких условиях пока даже не представляю, как рассчитать THD схемы - при ручной оценке получились значения первой десятки гармоник вплоть до -130...-140дБ, для этого нужен чистый сигнал с уровнем неосновных гармоник не выше -180...-190дБ. Понятно, что это всё теория, но все-же. В данном случае получается, что математические модели компонентов гораздо точнее источника сигнала, и поэтому хочу предложить проверить алгоритм генерации сигнала источника напряжения.
Соглашусь, наверно в большинстве программ моделирования такого тоже нет, с тем-же OrCADом я долго провозился по этому вопросу. Можно, конечно, также как в нём, написать в документации рекомендации для более точного расчёта FFT обращаться к специализированным программам, но в данном случае, так как сам занимаюсь программированием, думаю не сложно будет сделать хотя бы более точную модель источника напряжения, может и новый, специализированный.
И, кстати, раз уж снова коснулся вопроса преобразования Фурье, я уже спрашивал, какой именно алгоритм БПФ используется в SimOne, - предлагаю подумать о реализации полноценного алгоритма ДПФ, для расширения функциональности.
В целом-же, SimOne продолжает лично меня радовать, на данный момент из всего я пробовал, это лучший симулятор. Спасибо!