Warning, cannot evaluate the solution further right of .40080160e-1, maxfun limit exceeded (see ?dsolve,maxfun for details)
Как видим, для заданных сложных параметров системы пакет не может получить решение далее точки t = .40080160e-1. Для поиска решения на всем интересующем временном интервале необходимо подбирать методы, изменять и при необходимости упрощать модель, решать по частям, уменьшать точность решения и применять другие доступные методы.
Попробуем уменьшить точность и задать большее число точек решения по сравнению с заданным в пакете "по умолчанию", а также, возможно, изменить условия задачи.
> restart: with (plots) :
Warning, the name changecoords has been redefined
> Ode := diff ( Uc ( t ) , t ) = ( U(t) - R1 * iL (t) - Uc (t) ) / (R1 * C) , L(t)*diff ( iL ( t ) , t ) = ( Uc ( t ) - R2 * iL (t) ) ;
> Nus1 := Uc ( 0 ) = 0 , iL ( 0 ) = 0 :
> OD1 := Uc ( t ) , iL ( t ) :
> U := (t) -> piecewise (t<0, 0, 0 <= t and t <= 0.03, sin(1047.197551*t), t > 0.03 and t < 0.05, 0, t>=0.05, 1):
> L := (t) -> piecewise (t<0.02, 0.02, 0.02 <= t and t <= 0.04, 0.001, t > 0.04 , 0.01*sin(2000*t) + 0.011 ):
> plot ( U(t) , t = -0.0 .. 0.08) ;
> plot ( L(t) , t = -0.0 .. 0.08) ;
> R1 := 100: R2 := 6: C := 0.0001:
> Rs1 := dsolve ( { Ode , Nus1 } , { OD1} , numeric, range=0..0.08, maxfun=10000000, abserr=1e-7, relerr=1e-7) ;
> odeplot(Rs1,[t,iL(t)], 0..0.08 , numpoints=500);
> odeplot(Rs1,[t,Uc(t)], 0..0.08 , numpoints=500);
Решения добились, лишь "приподняв" синусоиду над осью абсцисс. При этом нет уверенности в том, что решение получено точное, желательно его перепроверить каким-то доступным способом. Например, прорешав в другом мощном в вычислительном плане пакете.
Рекомендуется самостоятельно провести вычислительные эксперименты, в которых увеличить амплитуду колебаний индуктивности в два раза, а затем изменить частоты колебаний в несколько раз. Объяснить результаты экспериментов. Для получения решения следует, как и в последнем примере, к синосоиде добавить константу, чтобы она не пересекала ось абсцисс, в противном случае сложно добиться решения.
Увеличим в два раза амплитуду гармонических колебаний индуктивности.
> restart: with (plots) :
Warning, the name changecoords has been redefined
> Ode := diff ( Uc ( t ) , t ) = ( U(t) - R1 * iL (t) - Uc (t) ) / (R1 * C) , L(t)*diff ( iL ( t ) , t ) = ( Uc ( t ) - R2 * iL (t) ) ;
> Nus1 := Uc ( 0 ) = 0 , iL ( 0 ) = 0 :
> OD1 := Uc ( t ) , iL ( t ) :
> U := (t) -> piecewise (t<0, 0, 0 <= t and t <= 0.03, sin(1047.197551*t), t > 0.03 and t < 0.05, 0, t>=0.05, 1):
> L := (t) -> piecewise (t<0.02, 0.02, 0.02 <= t and t <= 0.04, 0.001, t > 0.04 , 0.02*sin(2000*t) + 0.021 ):
> plot ( U(t) , t = -0.0 .. 0.08) ;
> plot ( L(t) , t = -0.0 .. 0.08) ;
> R1 := 100: R2 := 6: C := 0.0001:
> Rs1 := dsolve ( { Ode , Nus1 } , { OD1} , numeric, maxfun=10000000, abserr=1e-7, relerr=1e-7) ;
> odeplot(Rs1,[t,iL(t)], 0..0.08 , numpoints=500);
> odeplot(Rs1,[t,Uc(t)], 0..0.08 , numpoints=500);
> odeplot(Rs1,[t,Uc(t)], 0. .. 0.2 , numpoints=500);
Как видим, амплитуда растет неограниченно.
А теперь гармоническое изменения индуктивности начнём после того, как подан сигнал на вход схемы.
> restart: with (plots) :
Warning, the name changecoords has been redefined
> Ode := diff ( Uc ( t ) , t ) = ( U(t) - R1 * iL (t) - Uc (t) ) / (R1 * C) , L(t)*diff ( iL ( t ) , t ) = ( Uc ( t ) - R2 * iL (t) ) ;
> Nus1 := Uc ( 0 ) = 0 , iL ( 0 ) = 0 :
> OD1 := Uc ( t ) , iL ( t ) :
> U := (t) -> piecewise (t<0, 0, 0 <= t and t <= 0.03, sin(1047.197551*t), t > 0.03 and t < 0.045, 0, t>=0.045, 1):
> L := (t) -> piecewise (t<0.02, 0.02, 0.02 <= t and t <= 0.05, 0.001, t > 0.05 , 0.02*sin(2000*t + .6250000000e-4) + 0.021 ):
> plot ( U(t) , t = -0.0 .. 0.08) ;
> plot ( L(t) , t = -0.0 .. 0.08) ;
> R1 := 100: R2 := 6: C := 0.0001:
> Rs1 := dsolve ( { Ode , Nus1 } , { OD1} , numeric, maxfun=10000000, abserr=1e-7, relerr=1e-7) ;
> odeplot(Rs1,[t,iL(t)], 0..0.08 , numpoints=500);
> odeplot(Rs1,[t,Uc(t)], 0..0.08 , numpoints=500);
Самостоятельно продолжить вычислительный эксперимент, меняя частоты и фазы входного сигнала и колебательного процесса индуктивности.
Объяснить результаты вычислительных экспериментов!
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.