A servo
system can be described by the following second order differential equation:
(d2y/dt2)
= P (1-y2)*(dy/dt) – Qy
Where P and Q are positive constants, y is the position coordinate which is a function of the time t.
This differential equation is the
well-known Van der Pol non-linear equation.
To simulate this system , this second order differential equation is to
be written as a set of two simultaneous equations of first order as follows:
By using the
variable y1 in place of y, we get
dy1/dt
= y2
dy2/dt
= P(1- y12)* y2 - Qy1
Assuming
constants P to be 0.1 and Q =1.0 and the initial conditions to be y1(0)=1.0 and
y2(0)=0, our equation becomes:
dy1/dt
= y2
dy2/dt
= 0.1(1- y12)*y2- y1
The system has been simulated for 20 seconds with a step size of 0.001 seconds. That is, 20000 computations have been done. The output is printed once for every 100 integration steps and the same has been plotted on graph.
-----------------------------------------------------------------------------------------------
#include < stdio.h >
#include < conio.h >
#include < math.h >
#include < stdlib.h >
void main()
{
clrscr();
float t=0,y1=1,y2=0,h=0.001,u11,u12,u21,u22,u31,u32,u41,u42;
long i;
for(i=1;i<=20000;i++)
{
u11=h*y2;
u12=h*(0.1*(1-y1*y1)*y2-y1);
u21=h*(y2+0.5*u12);
u22=h*(0.1*(1-(y1+0.5*u11)*(y1+0.5*u11))*(y2+0.5*u12)-(y1+0.5*u11));
u31=h*(y2+0.5*u22);
u32=h*(0.1*(1-(y1+0.5*u21)*(y1+0.5*u21))*(y2+0.5*u22)-(y1+0.5*u21));
u41=h*(y2+u32);
u42=h*(0.1*(1-(y1+u31)*(y1+u31))*(y2+u32)-(y1+u31));
y1=y1+(u11+2*u21+2*u31+u41)/6;
y2=y2+(u12+2*u22+2*u32+u42)/6;
t=t+h;
if(i%100==0)
printf("%f %f %f \n", t,y1,y2)
}
getch();
}
-----------------------------------------------------------------------------------------------
#include < stdio.h >
#include < conio.h >
#include < math.h >
#include < stdlib.h >
void main()
{
clrscr();
float t=0,y1=1,y2=0,h=0.001,u11,u12,u21,u22,u31,u32,u41,u42;
long i;
for(i=1;i<=20000;i++)
{
u11=h*y2;
u12=h*(0.1*(1-y1*y1)*y2-y1);
u21=h*(y2+0.5*u12);
u22=h*(0.1*(1-(y1+0.5*u11)*(y1+0.5*u11))*(y2+0.5*u12)-(y1+0.5*u11));
u31=h*(y2+0.5*u22);
u32=h*(0.1*(1-(y1+0.5*u21)*(y1+0.5*u21))*(y2+0.5*u22)-(y1+0.5*u21));
u41=h*(y2+u32);
u42=h*(0.1*(1-(y1+u31)*(y1+u31))*(y2+u32)-(y1+u31));
y1=y1+(u11+2*u21+2*u31+u41)/6;
y2=y2+(u12+2*u22+2*u32+u42)/6;
t=t+h;
if(i%100==0)
printf("%f %f %f \n", t,y1,y2)
}
getch();
}
t | y1 | y2 | t | y1 | y2 | t | y1 | y2 | t | y1 | y2 | |||
0.1 | 0.995 | -0.09984 | 3.7 | -0.94681 | 0.59661 | 7.3 | 0.64308 | -1.06776 | 10.901 | -0.10418 | 1.40049 | |||
0.2 | 0.98007 | -0.19871 | 3.8 | -0.88247 | 0.6892 | 7.4 | 0.53293 | -1.13381 | 11.001 | 0.03686 | 1.41794 | |||
0.3 | 0.95532 | -0.29572 | 3.9 | -0.80916 | 0.77593 | 7.5 | 0.41664 | -1.19033 | 11.101 | 0.17893 | 1.42117 | |||
0.4 | 0.92101 | -0.39002 | 4 | -0.7275 | 0.85618 | 7.6 | 0.2952 | -1.23656 | 11.201 | 0.32059 | 1.40944 | |||
0.5 | 0.87744 | -0.48085 | 4.1 | -0.63817 | 0.92928 | 7.7 | 0.1697 | -1.27169 | 11.301 | 0.4603 | 1.38219 | |||
0.6 | 0.82498 | -0.56749 | 4.2 | -0.5419 | 0.99461 | 7.8 | 0.04126 | -1.29494 | 11.401 | 0.5965 | 1.33911 | |||
0.7 | 0.7641 | -0.64926 | 4.3 | -0.43953 | 1.05149 | 7.9 | -0.08887 | -1.30555 | 11.501 | 0.7276 | 1.2802 | |||
0.8 | 0.69531 | -0.7255 | 4.4 | -0.33191 | 1.09925 | 8 | -0.2194 | -1.30286 | 11.601 | 0.85203 | 1.20582 | |||
0.9 | 0.6192 | -0.79561 | 4.5 | -0.22 | 1.13721 | 8.1 | -0.34898 | -1.28632 | 11.701 | 0.96827 | 1.11672 | |||
1 | 0.53642 | -0.85895 | 4.6 | -0.10482 | 1.16467 | 8.2 | -0.47619 | -1.25557 | 11.801 | 1.07492 | 1.014 | |||
1.1 | 0.44766 | -0.91492 | 4.7 | 0.01256 | 1.181 | 8.3 | -0.59962 | -1.2105 | 11.901 | 1.17067 | 0.89912 | |||
1.2 | 0.3537 | -0.96291 | 4.8 | 0.13099 | 1.18559 | 8.4 | -0.71782 | -1.15126 | 12.001 | 1.25439 | 0.77382 | |||
1.3 | 0.25536 | -1.00231 | 4.9 | 0.24927 | 1.17796 | 8.5 | -0.82941 | -1.0783 | 12.101 | 1.32515 | 0.64003 | |||
1.4 | 0.15354 | -1.03253 | 5 | 0.36616 | 1.15774 | 8.6 | -0.93305 | -0.99242 | 12.201 | 1.38218 | 0.4998 | |||
1.5 | 0.04918 | -1.053 | 5.1 | 0.48039 | 1.12475 | 8.7 | -1.0275 | -0.89467 | 12.301 | 1.42496 | 0.35517 | |||
1.6 | -0.05672 | -1.06321 | 5.2 | 0.59068 | 1.07901 | 8.8 | -1.11163 | -0.78641 | 12.401 | 1.45314 | 0.20813 | |||
1.7 | -0.1631 | -1.06272 | 5.3 | 0.69578 | 1.02079 | 8.9 | -1.18448 | -0.66918 | 12.501 | 1.46657 | 0.0605 | |||
1.8 | -0.26889 | -1.05119 | 5.4 | 0.79444 | 0.9506 | 9 | -1.24523 | -0.5447 | 12.601 | 1.46527 | -0.08607 | |||
1.9 | -0.37297 | -1.0284 | 5.5 | 0.88552 | 0.86921 | 9.1 | -1.29324 | -0.41473 | 12.702 | 1.44944 | -0.23014 | |||
2 | -0.4742 | -0.99432 | 5.6 | 0.96795 | 0.77762 | 9.2 | -1.32805 | -0.28106 | 12.802 | 1.41937 | -0.37052 | |||
2.1 | -0.57146 | -0.94905 | 5.7 | 1.04075 | 0.67704 | 9.3 | -1.34938 | -0.14538 | 12.902 | 1.37549 | -0.50619 | |||
2.2 | -0.66365 | -0.89295 | 5.8 | 1.1031 | 0.56882 | 9.4 | -1.35712 | -0.0093 | 13.002 | 1.31831 | -0.63634 | |||
2.3 | -0.7497 | -0.82653 | 5.9 | 1.15431 | 0.45445 | 9.5 | -1.35128 | 0.12574 | 13.102 | 1.24843 | -0.76025 | |||
2.4 | -0.82863 | -0.75052 | 6 | 1.19383 | 0.33545 | 9.6 | -1.33204 | 0.25848 | 13.202 | 1.16649 | -0.87734 | |||
2.5 | -0.89952 | -0.66584 | 6.1 | 1.22129 | 0.21333 | 9.7 | -1.2997 | 0.38781 | 13.302 | 1.07321 | -0.98704 | |||
2.6 | -0.96155 | -0.57354 | 6.2 | 1.23645 | 0.08957 | 9.8 | -1.25463 | 0.51278 | 13.402 | 0.96935 | -1.08879 | |||
2.7 | -1.01401 | -0.4748 | 6.3 | 1.2392 | -0.03446 | 9.9 | -1.19731 | 0.6326 | 13.502 | 0.85574 | -1.18201 | |||
2.8 | -1.05633 | -0.3709 | 6.4 | 1.22959 | -0.1575 | 10 | -1.1283 | 0.74654 | 13.602 | 0.73325 | -1.26603 | |||
2.9 | -1.08806 | -0.26311 | 6.5 | 1.20777 | -0.27841 | 10.1 | -1.04822 | 0.85397 | 13.702 | 0.60286 | -1.3401 | |||
3 | -1.10887 | -0.15274 | 6.6 | 1.17401 | -0.39619 | 10.2 | -0.95774 | 0.9543 | 13.802 | 0.46559 | -1.40337 | |||
3.1 | -1.11856 | -0.04105 | 6.7 | 1.12867 | -0.50994 | 10.301 | -0.85762 | 1.0469 | 13.902 | 0.32258 | -1.45487 | |||
3.2 | -1.11707 | 0.07079 | 6.8 | 1.07218 | -0.61888 | 10.401 | -0.74864 | 1.13114 | 14.002 | 0.17504 | -1.4936 | |||
3.3 | -1.10444 | 0.18166 | 6.9 | 1.00507 | -0.7223 | 10.501 | -0.63169 | 1.20633 | 14.102 | 0.02432 | -1.51848 | |||
3.4 | -1.08081 | 0.29056 | 7 | 0.92793 | -0.81953 | 10.601 | -0.50771 | 1.27171 | 14.202 | -0.12816 | -1.52848 | |||
3.5 | -1.04642 | 0.39656 | 7.1 | 0.84139 | -0.90995 | 10.701 | -0.3777 | 1.32646 | 14.302 | -0.28085 | -1.52262 | |||
3.6 | -1.00162 | 0.49883 | 7.2 | 0.74619 | -0.99291 | 10.801 | -0.2428 | 1.3697 | 14.402 | -0.43213 | -1.50013 | |||
t | y1 | y2 | t | y1 | y2 | |||||||||
14.502 | -0.5803 | -1.46047 | 18.402 | 1.51587 | 0.68195 | |||||||||
14.602 | -0.72364 | -1.40344 | 18.501 | 1.57595 | 0.51887 | |||||||||
14.702 | -0.86042 | -1.32926 | 18.601 | 1.61952 | 0.3522 | |||||||||
14.802 | -0.98894 | -1.23856 | 18.701 | 1.64635 | 0.18429 | |||||||||
14.902 | -1.10761 | -1.13245 | 18.801 | 1.65641 | 0.01728 | |||||||||
15.002 | -1.21497 | -1.01247 | 18.901 | 1.64989 | -0.14705 | |||||||||
15.102 | -1.30971 | -0.8805 | 19.001 | 1.62714 | -0.3072 | |||||||||
15.203 | -1.39074 | -0.73868 | 19.101 | 1.58863 | -0.46201 | |||||||||
15.303 | -1.45719 | -0.58933 | 19.201 | 1.53495 | -0.61059 | |||||||||
15.403 | -1.50843 | -0.43478 | 19.301 | 1.46675 | -0.75224 | |||||||||
15.503 | -1.54405 | -0.27729 | 19.401 | 1.38475 | -0.88646 | |||||||||
15.603 | -1.56386 | -0.11896 | 19.501 | 1.28972 | -1.01279 | |||||||||
15.703 | -1.56788 | 0.03834 | 19.601 | 1.18247 | -1.13082 | |||||||||
15.803 | -1.55628 | 0.19301 | 19.701 | 1.06384 | -1.24011 | |||||||||
15.903 | -1.52941 | 0.34371 | 19.801 | 0.93475 | -1.34013 | |||||||||
16.003 | -1.48771 | 0.48937 | 19.901 | 0.79615 | -1.4302 | |||||||||
16.103 | -1.43173 | 0.62913 | 20.001 | 0.64907 | -1.50953 | |||||||||
16.203 | -1.3621 | 0.7623 | ||||||||||||
16.303 | -1.27951 | 0.88833 | ||||||||||||
16.403 | -1.18469 | 1.00672 | ||||||||||||
16.503 | -1.07844 | 1.11698 | ||||||||||||
16.603 | -0.96158 | 1.21858 | ||||||||||||
16.702 | -0.83503 | 1.31091 | ||||||||||||
16.802 | -0.69973 | 1.39326 | ||||||||||||
16.902 | -0.55674 | 1.46478 | ||||||||||||
17.002 | -0.40717 | 1.52448 | ||||||||||||
17.102 | -0.25227 | 1.57126 | ||||||||||||
17.202 | -0.09339 | 1.60395 | ||||||||||||
17.302 | 0.06801 | 1.62134 | ||||||||||||
17.402 | 0.23033 | 1.62226 | ||||||||||||
17.502 | 0.39188 | 1.60569 | ||||||||||||
17.602 | 0.55086 | 1.57086 | ||||||||||||
17.702 | 0.70542 | 1.51733 | ||||||||||||
17.802 | 0.8537 | 1.4451 | ||||||||||||
17.902 | 0.99384 | 1.35468 | ||||||||||||
18.002 | 1.12406 | 1.24709 | ||||||||||||
18.102 | 1.24274 | 1.12389 | ||||||||||||
18.202 | 1.34839 | 0.98704 | ||||||||||||
18.302 | 1.43977 | 0.83888 |