Помощь с символическим набором инструментов Matlab - PullRequest
0 голосов
/ 21 августа 2011

Попытка спроектировать фильтр ключей Sallen 3-го порядка с помощью matlab:

[B,A]=cheby1(3,1,10*10^6*2*pi,'s');

%3rd order sallen key
syms R1 R2 R3 R4 R5 C1 C2 C3
M=1+R4/R5;
num=[M/(R1*R2*R3*C1*C2*C3)];
den=[1 (1/(R1*C1)+1/(R2*C1)+1/(R2*C2)+(1-M)/(R3*C3)+1/(R3*C2)) ((C3*R3+R1*C3+R2*C3+C1*R1+(1-M)*(R1+R2)*C2)/(R1*R2*R3*C1*C2*C3)) (1/(R1*R2*R3*C1*C2*C3))];

solve('B=num','A=den','M=5','R1','R2','R3','R4','R5')

Он говорит мне:

Warning: 3 equations in 5 variables. New variables might be introduced.  
Warning: Explicit solution could not be found. 

cheby1 дает вам функцию передачи (числитель и знаменатель)для чебышевского фильтра типа 1;Затем я пытаюсь приравнять его к форме передаточной функции фильтра Sallen-ключа 3-го порядка;и получить Matlab для определения значений резисторов в терминах значений конденсаторов.

==> Как получить решение, которое я хочу?

Примечание: это не имеет ничего общего сфактический расчет выполняется, и все, что связано с использованием Matlab.

1 Ответ

0 голосов
/ 21 августа 2011

возможно я что-то упускаю, но B - это векторы 1x4, а num - скаляр, так что вы никак не получите ответ. Кроме того, ( edit ) вы не можете решать косвенные уравнения из командного окна (то есть solve('M=5','R1','R2') не будет работать, но solve('1 + R1/R2=5','R1','R2') будет)

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

Лучше всего использовать fsolve , чтобы найти численное решение

...