jrive

210 Reputation

6 Badges

5 years, 327 days

MaplePrimes Activity


These are replies submitted by jrive

@acer following your previous example, I tried the following: 
 

(C1+C2)^(1/2)/(C1^(1/2)*C2^(1/2)*L1^(1/2))

(16)
> 

``

> 

S1 := sqrt(Ceq) = sqrt(C1)*sqrt(C2)/sqrt(C1+C2)

Ceq^(1/2) = C1^(1/2)*C2^(1/2)/(C1+C2)^(1/2)

(17)
> 

S2 := (1/rhs = 1/lhs)(S1)

(C1+C2)^(1/2)/(C1^(1/2)*C2^(1/2)) = 1/Ceq^(1/2)

(18)
> 

tmp := subs(S2, `ωres`)

(C1+C2)^(1/2)/(C1^(1/2)*C2^(1/2)*L1^(1/2))

(19)
> 

rationalize(tmp)

(C1+C2)^(1/2)/(C1^(1/2)*C2^(1/2)*L1^(1/2))

(20)
>  
 

  I was expecting to be able to get the answer down to  1/(sqrt(Ceq) sqrt(L1)) per the substitutions above.  It would be better still if I could get the final answer to display 1/(sqrt(Ceq L1)).

 

Thanks again!
 

Download new_filter_solution.mw

 

@acer  -- perfect, thank you!!!

@acer thank you.

There's something I don't get...I have three unknowns (assuming C1=C2), so not sure why I can't use the inequality.  I occurs to me I could instead use C1=C2 in the system of equations (restricting the gain to 1)  - maybe that'll work. 

I still need to look at this further, though.   The solution for  R1 results in an imaginary value which shouldn't be the case....

 

Thank you for your help!

@acer what you're seeing are typos when I entered the data on here, since I could not cut and paste it directly from my Maple doc.

Currently, I get this error and have not been able to resolve it, no matter what I try:

sys := {`&omega;res` = 0.1635*10^8*2*Pi, simplify(z3res) = 9 + 0.000150*I, 1 <= abs(vores/vin)}

sol2 := solve(sys, {C1, C2, L1, R1})

Warning, solve may be ignoring assumptions on the input variables.
Error, (in unknown) invalid input: SolveTools:-Inequality expects its 1st argument, eqns, to be of type ({list, set})({`<`, `<=`, `=`}), but received [C2 < 0, And(-(-1+signum(0, C1+C2, 1))*Pi <= Pi, -Pi < -(-1+signum(0, C1+C2, 1))*Pi)]

(I can't figure out how to copy Maple input onto here --the formatting gets all messed up.)  Please see attached file.

Thanks for any pointers!  filter.mw

> 

restart

> 

assume(vin, real)

> 

assume(C1, real)

> 

assume(C2, real)

> 

assume(L1, real)

> 

assume(R1, real)

> 

assume(omega, real)

> 

assume(vin, real)

> 

z1 := R1/((I*omega*C1)*(R1+1/(I*omega*C1)))

-I*R1/(omega*C1*(R1-I/(omega*C1)))

(1)
> 

simplify(-I*R1/(omega*C1*(R1-I/(omega*C1))), 'size')

I*R1/(-R1*omega*C1+I)

(2)
> 

 

> 

 

> 

z2 := z1+I*omega*L1

-I*R1/(omega*C1*(R1-I/(omega*C1)))+I*omega*L1

(3)
> 

z3 := z2/((I*omega*C2)*(z2+1/(I*omega*C2)))

-I*(-I*R1/(omega*C1*(R1-I/(omega*C1)))+I*omega*L1)/(omega*C2*(-I*R1/(omega*C1*(R1-I/(omega*C1)))+I*omega*L1-I/(omega*C2)))

(4)
> 

simplify(-I*(-I*R1/(omega*C1*(R1-I/(omega*C1)))+I*omega*L1)/(omega*C2*(-I*R1/(omega*C1*(R1-I/(omega*C1)))+I*omega*L1-I/(omega*C2))))

(I*C1*L1*R1*omega^2+omega*L1-I*R1)/(-I-C1*C2*L1*R1*omega^3+I*C2*L1*omega^2+R1*(C1+C2)*omega)

(5)
> 

 

> 

voc := vin/((I*omega*C1)*(R1+1/(I*omega*C1)))

-I*vin/(omega*C1*(R1-I/(omega*C1)))

(6)
> 

simplify(-I*vin/(omega*C1*(R1-I/(omega*C1))))

I*vin/(-R1*omega*C1+I)

(7)
> 

zthev := simplify(z1)

I*R1/(-R1*omega*C1+I)

(8)
> 

vounloaded := voc/((I*omega*C2)*(zthev+I*omega*L1+1/(I*omega*C2)))

-vin/(omega^2*C1*(R1-I/(omega*C1))*C2*(I*R1/(-R1*omega*C1+I)+I*omega*L1-I/(omega*C2)))

(9)
> 

simplify(-vin/(omega^2*C1*(R1-I/(omega*C1))*C2*(I*R1/(-R1*omega*C1+I)+I*omega*L1-I/(omega*C2))))

-I*vin/(-I-C1*C2*L1*R1*omega^3+I*C2*L1*omega^2+R1*(C1+C2)*omega)

(10)
> 

simplify(-vin/(omega^2*C1*(R1-I/(omega*C1))*C2*(I*R1/(-R1*omega*C1+I)+I*omega*L1-I/(omega*C2))))

-I*vin/(-I-C1*C2*L1*R1*omega^3+I*C2*L1*omega^2+R1*(C1+C2)*omega)

(11)
> 

 

> 

 

> 

sol1 := solve(Im(vounloaded) = 0, omega)

Warning, solve may be ignoring assumptions on the input variables.

 

0, (C1*C2*L1*(C1+C2))^(1/2)/(C1*C2*L1), -(C1*C2*L1*(C1+C2))^(1/2)/(C1*C2*L1)

(12)
> 

> 

`&omega;res` := sol1[2]

(C1*C2*L1*(C1+C2))^(1/2)/(C1*C2*L1)

(13)
> 

vounloaded

-vin/(omega^2*C1*(R1-I/(omega*C1))*C2*(I*R1/(-R1*omega*C1+I)+I*omega*L1-I/(omega*C2)))

(14)
> 

vores := simplify(subs(omega = `&omega;res`, vounloaded))

-C1*vin/C2

(15)
> 

``

> 

NULL

> 

z3res := simplify(subs(omega = `&omega;res`, z3))

(C1^2*R1-I*(C1*C2*L1*(C1+C2))^(1/2))/C2^2

(16)
> 

simplify((C1^2*R1-I*(C1*C2*L1*(C1+C2))^(1/2))/C2^2)

(C1^2*R1-I*(C1*C2*L1*(C1+C2))^(1/2))/C2^2

(17)
> 

 

> 

sys := {abs(vores/vin) >= 1, `&omega;res` = (0.1356e8*2)*Pi, simplify(z3res) = 9+I*0.150e-3}

{(C1^2*R1-I*(C1*C2*L1*(C1+C2))^(1/2))/C2^2 = 9.+0.150e-3*I, (C1*C2*L1*(C1+C2))^(1/2)/(C1*C2*L1) = 85199992.78, 1 <= abs(C1/C2)}

(18)
> 

``

> 

sol2 := solve(sys, {C1, C2, L1, R1})

Warning, solve may be ignoring assumptions on the input variables.

 

Error, (in unknown) invalid input: SolveTools:-Inequality expects its 1st argument, eqns, to be of type ({list, set})({`<`, `<=`, `=`}), but received [C2 < 0, And(-(-1+signum(0, C1+C2, 1))*Pi <= Pi, -Pi < -(-1+signum(0, C1+C2, 1))*Pi)]

 
> 

sol := sol2[3]

sol2[3]

(19)
> 

R1sol := sol2[4]

sol2[4]

(20)
> 

C1sol := sol2[1]

sol2[1]

(21)
> 

``

Solution

> 

subs(C2 = 0.10e-10, L1sol)

sol2[3]

(22)
> 

subs(C2 = 0.10e-10, R1sol)

sol2[4]

(23)
> 

``

 

@Kitonum thank you.  What did you change to get it to solve for you?  I never was able to get the solution you got; is it because you entered the formulas into sys, as opposed to the variables to which they were assigned?  (eg. you entered 1<=abs(C1/C2, instead of abs(vores/vin)>=1? 

Thanks again

 

1 2 3 4 5 Page 5 of 5