Определение значений резисторов в моем синтезаторе с помощью программы - PullRequest
0 голосов
/ 21 апреля 2020

В настоящее время я работаю над проектом электроники (синтезатор, использующий суммирующий операционный усилитель и XR2206 для тех, кто заинтересован). Я наткнулся на интересную проблему, которую, я думал, можно решить с помощью машинного обучения или чего-то подобного. Я никоим образом не прошу окончательного решения моей проблемы, просто некоторые общие рекомендации.

У меня есть три входа, которые я могу включить или выключить. Каждый вход подключен к одному резистору R1, R_2, R_3. Включая / выключая входы по-разному, я могу с помощью моей установки генерировать разные напряжения. Например, допустим, входы 1 и 3 включены. Генерируемое напряжение будет рассчитываться следующим образом: Link . Таким образом, сумма инверсии двух резисторов, которые включены, делится на сумму инверсии всех трех резисторов. Поскольку каждый вход может быть включен или выключен, я могу генерировать 2 ^ 3 = 8 уникальных напряжений, комбинируя резисторы по-разному. Я написал короткий фрагмент кода i Python, который может рассчитать все возможные напряжения для трех резисторов. Пока все довольно просто.

Вот в чем проблема: мне нужно, чтобы 8 генерируемых напряжений были как можно ближе к 8 напряжениям, заданным этой формулой , где n равно от 1 до 8. Константы от k_1 до k_4 и R_1, R_2, R_4 могут быть изменены по желанию. Как я могу написать программу (возможно, с использованием некоторого машинного обучения), которая будет определять значения k_1-k_4 и R_1-R_3, чтобы сгенерированные напряжения были максимально приближены к напряжениям, генерируемым по формуле?

Возможно, я должен отметить, что я пытался решить уравнения, но кажется, что нет никаких возможных решений. Написав какую-то программу, я надеялся найти значения k_1-k_4 и R_1-R_3, которые, по крайней мере, приблизятся.

...