2 sonuçtan 1 ile 2 arası
  1. #1
    Junior Member aallper - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    25.06.2011
    Mesajlar
    9
    Konular
    6
    Tecrübe Puanı
    0

    C ile deve ölçme programı

    //7 farklı RLC devresini cok tetaylı bir şekilde analiz edebilir....
    #include<stdio.h>
    #include<conio.h>
    #include<math.h>
    #define PI 3.141593
    double R1,C1,L1,R2,C2,L2,R3,C3,L3;
    double Z1x,Z2x,Z3x,Z1y,Z2y,Z3y,Z12x,Z12y,Z1,Z2,Z3,Z1xZ2,Z 123x,Z123y;
    double Z23x,Z23y,Z23A,Z13x,Z13y,Z13sonuc,Z13A,Z23sonuc;
    double Z1A,Z2A,Z3A,Z12A1,Z12A2,Z12Asonuc,Z123A,VZ1A,VZ2A, VZ3A,IZ1A,IZ2A,IZ3A;
    double Z12b,Z12sonuc,Z123sonuc,x,y;
    double f,Q,V;
    double I,Ia,IZ1,IZ2,IZ3;
    double VZ1,VZ2,VZ3;
    main() {

    printf("birinci devre[Z1] icin...=>\n");
    printf("'R,L,C'degerlerini aralarinda bosluk birakarak sirasi ile girin...=>\n");
    scanf("%lf%lf%lf",&R1,&L1,&C1);
    printf("ikinci devre[Z2] icin...=>\n");
    printf("'R,L,C' degerlerini aralarinda bosluk birakarak sirasi ile girin...=>\n");
    scanf("%lf%lf%lf",&R2,&L2,&C2);
    printf("ucuncu devre[Z3] icin...=>\n");
    printf("'R,L,C' degerlerini aralarinda bosluk birakarak sirasi ile girin...=>\n");
    scanf("%lf%lf%lf",&R3,&L3,&C3);
    printf("kaynagin gerilim ve faz acisi degerlerini \n aralarinda bosluk birakarak sirasi ile girin...=>\n");
    scanf("%lf%lf",&V,&Q);
    printf("kaynagin frekansini girin...=>\n");
    scanf("%lf",&f);
    printf("devre gozlerinde ki elemanlarin ohm cevrilmis halleri...\n");
    Q*=PI/180;//acıyı radyana cevirir
    L1*=2*PI*f;L2*=2*PI*f;L3*=2*PI*f;//l degerlerini ohm a cevirir...
    if(C1!=0&&C2!=0&&C3!=0)
    { C1=1/(2*PI*f*C1);C2=1/(2*PI*f*C2); C3=1/(2*PI*f*C3);}
    if(C1==0&&C2!=0&&C3!=0)
    {C1=0;C2=1/(2*PI*f*C2);C3=1/(2*PI*f*C3);}
    if(C1!=0&&C2==0&&C3!=0)
    {C1=1/(2*PI*f*C1);C2=0;C3=1/(2*PI*f*C3);}
    if(C1!=0&&C2!=0&&C3==0)
    {C1=1/(2*PI*f*C1);C2=1/(2*PI*f*C2);C3=0;}
    if(C1==0&&C2==0&&C3!=0)
    {C1=0;C2=0;C3=1/(2*PI*f*C3);}
    if(C1==0&&C2!=0&&C3==0)
    {C1=0;C2=1/(2*PI*f*C2);C3=0; }
    if(C1!=0&&C2==0&&C3==0)
    {C1=1/(2*PI*f*C1);C2=0;C3=0;}
    if(C1==0&&C2==0&&C3==0)
    {C1=0;C2=0;C3=0; }
    //yukarıdaki if ler C=0 ihtimaline karsi hesaplama yapar...

    printf("\nR1=%0.5lf .... L1=%0.5lfj .... C1=-%0.5lfj \n",R1,L1,C1);
    printf("R2=%lf .... L2=%lfj .... C2=-%0.5lfj \n",R2,L2,C2);
    printf("R3=%0.5lf .... L3=%0.5lfj .... C3=-%0.5lfj \n",R3,L3,C3);
    if((R1!=0||L1!=0||C1!=0)&&(R2!=0||L2!=0||C2!=0)&&( R3!=0||L3!=0||C3!=0))// (Z1//Z2) seiri Z3 ihtimaline göre hesap yapar
    {//if ve else ler R=0 olma ihtimaline göre acı hesaplar...
    Z1x=R1;Z1y=L1-C1;Z1=sqrt(R1*R1+Z1y*Z1y);if(Z1x==0){Z1A=atan2(Z1y ,1);}else Z1A=atan2(Z1y,Z1x);printf("\nbuyukluk ve aci Z1=%0.5lf , Z1A=%0.5lf\n",Z1,(Z1A*180)/PI);
    Z2x=R2;Z2y=L2-C2;Z2=sqrt(R2*R2+Z2y*Z2y);if(Z2x==0){Z2A=atan2(Z2y ,1);}else Z2A=atan2(Z2y,Z2x);printf("buyukluk ve aci Z2=%0.3lf , Z2A=%0.5lf\n",Z2,(Z2A*180)/PI);
    Z3x=R3;Z3y=L3-C3;Z3=sqrt(R3*R3+Z3y*Z3y);if(Z3x==0){Z3A=atan2(Z3y ,1);}else Z3A=atan2(Z3y,Z3x);printf("buyukluk ve aci Z3=%0.5lf , Z3A=%0.5lf\n",Z3,(Z3A*180)/PI);
    // yukarda ki 3 satır acı ve büyüklük hesaplar...
    Z1xZ2=Z1*Z2;Z12A1=Z1A+Z2A;
    Z12x=Z1x+Z2x; Z12y=Z1y+Z2y;Z12b=sqrt(Z12x*Z12x + Z12y*Z12y);if(Z12x==0){Z12A2=atan2(Z12y,1);}else Z12A2=atan2(Z12y,Z12x);
    //Z1+Z2 durumunu bulur ,Z12A Z1//Z2 durumunun faz acısıdır...
    Z12sonuc=Z1xZ2/Z12b;Z12Asonuc=Z12A1-Z12A2;//Z1//Z2 durumunun sonucu...ve acısı
    // üstteki 3 satır Z1//Z2 durumunu inceler...
    Z123x=Z12sonuc*cos(Z12Asonuc)+Z3*cos(Z3A);Z123y=Z1 2sonuc*sin(Z12Asonuc)+Z3*sin(Z3A);
    Z123sonuc=sqrt(Z123x*Z123x+Z123y*Z123y);if(Z123x== 0){Z123A=atan2(Z123y,1);}else Z123A=atan2(Z123y,Z123x);
    //üstte ki iki satır Z1//Z2 + Z3 ün X ve y sini büyüklüğünü ve acısını bulur...

    I=V/Z123sonuc;Ia=Q-Z123A;
    IZ1=(I*Z2)/(Z1+Z2);IZ1A=(Ia+Z2A)-Z12A2;VZ1=IZ1*Z1;VZ1A=Z1A+IZ1A;
    IZ2=(I*Z1)/(Z1+Z2);IZ2A=(Ia+Z1A)-Z12A2;VZ2=IZ2*Z2;VZ2A=Z2A+IZ2A;
    IZ3=I;IZ3A=Ia;VZ3=IZ3*Z3;VZ3A=Z3A+IZ3A; // bura yı incele
    //üstte ki 4 satır devre özlerinde ki akım ,gerilim ve faz acılarını bulur...
    }
    if((R1==0&&L1==0&&C1==0)&&(R2!=0||L2!=0||C2!=0)&&( R3!=0||L3!=0||C3!=0))//burası Z2 seri Z3 kısmını inceler...Z1 boş
    {
    Z2x=R2;Z2y=L2-C2;Z2=sqrt(R2*R2+Z2y*Z2y);if(Z2x==0){Z2A=atan2(Z2y ,1);}else Z2A=atan2(Z2y,Z2x);printf("\nbuyukluk ve aci Z2=%0.5lf , Z2A=%0.5lf\n",Z2,(Z2A*180)/PI);
    Z3x=R3;Z3y=L3-C3;Z3=sqrt(R3*R3+Z3y*Z3y);if(Z3x==0){Z3A=atan2(Z3y ,1);}else Z3A=atan2(Z3y,Z3x);printf("buyukluk ve aci Z3=%0.5lf , Z3A=%0.5lf\n",Z3,(Z3A*180)/PI);
    // yukarıda ki 2 satır acı ve büyüklük bulur....
    //aşağıdaki 4 satır akım erilim ve acılarını bulur...
    Z23x=Z2x+Z3x; Z23y=Z2y+Z3y;Z23sonuc=sqrt(Z23x*Z23x + Z23y*Z23y);if(Z23x==0){Z23A=atan2(Z23y,1);}else Z23A=atan2(Z23y,Z23x);
    I=V/Z23sonuc;Ia=Q-Z23A;
    IZ2=I;IZ2A=Ia;IZ3=I;IZ3A=Ia;
    VZ2=I*Z2;VZ2A=Ia+Z2A;VZ3=I*Z3; VZ3A=Ia+Z3A;
    }
    if((R1!=0||L1!=0||C1!=0)&&(R2==0&&L2==0&&C2==0)&&( R3!=0||L3!=0||C3!=0))//Z1 seri Z3 durumu nu incelr...Z2 boş
    {
    Z1x=R1;Z1y=L1-C1;Z1=sqrt(R1*R1+Z1y*Z1y);if(Z1x==0){Z1A=atan2(Z1y ,1);}else Z1A=atan2(Z1y,Z1x);printf("\nbuyukluk ve aci Z1=%0.5lf , Z1A=%0.5lf\n",Z1,(Z1A*180)/PI);
    Z3x=R3;Z3y=L3-C3;Z3=sqrt(R3*R3+Z3y*Z3y);if(Z3x==0){Z3A=atan2(Z3y ,1);}else Z3A=atan2(Z3y,Z3x);printf("buyukluk ve aci Z3=%0.5lf , Z3A=%0.5lf\n",Z3,(Z3A*180)/PI);
    // üstte ki 2 satır acı ve buyüklük bulur...
    //aşağıdaki 4 satır akım erilim ve acılarını bulur...
    Z13x=Z1x+Z3x; Z13y=Z1y+Z3y;Z13sonuc=sqrt(Z13x*Z13x + Z13y*Z13y);if(Z13x==0){Z13A=atan2(Z13y,1);}else Z13A=atan2(Z13y,Z13x);
    I=V/Z13sonuc;Ia=Q-Z13A;
    IZ1=I;IZ1A=Ia;IZ3=I;IZ3A=Ia;
    VZ1=I*Z1;VZ1A=Ia+Z1A;VZ3=I*Z3; VZ3A=Ia+Z3A;
    }
    if((R1!=0||L1!=0||C1!=0)&&(R2!=0||L2!=0||C2!=0)&&( R3==0&&L3==0&&C3==0)) //Z1//Z2 yi hesaplar
    {
    Z1x=R1;Z1y=L1-C1;Z1=sqrt(R1*R1+Z1y*Z1y);if(Z1x==0){Z1A=atan2(Z1y ,1);}else Z1A=atan2(Z1y,Z1x);printf("\nbuyukluk ve aci Z1=%0.5lf , Z1A=%0.5lf\n",Z1,(Z1A*180)/PI);
    Z2x=R2;Z2y=L2-C2;Z2=sqrt(R2*R2+Z2y*Z2y);if(Z2x==0){Z2A=atan2(Z2y ,1);}else Z2A=atan2(Z2y,Z2x);printf("buyukluk ve aci Z2=%0.5lf , Z2A=%0.5lf\n",Z2,(Z2A*180)/PI);
    Z1xZ2=Z1*Z2;Z12A1=Z1A+Z2A;
    Z12x=Z1x+Z2x; Z12y=Z1y+Z2y;Z12b=sqrt(Z12x*Z12x + Z12y*Z12y);if(Z12x==0){Z12A2=atan2(Z12y,1);}else Z12A2=atan2(Z12y,Z12x);
    //Z1+Z2 durumunu bulur ,Z12A Z1//Z2 durumunun faz acısıdır...
    Z12sonuc=Z1xZ2/Z12b;Z12Asonuc=Z12A1-Z12A2;
    I=V/Z12sonuc;Ia=Q-Z12Asonuc;
    IZ1=(I*Z2)/(Z1+Z2);IZ1A=(Ia+Z2A)-Z12A2;VZ1=IZ1*Z1;VZ1A=Z1A+IZ1A;
    IZ2=(I*Z1)/(Z1+Z2);IZ2A=(Ia+Z1A)-Z12A2;VZ2=IZ2*Z2;VZ2A=Z2A+IZ2A;
    }
    if((R1==0&&L1==0&&C1==0)&&(R2==0&&L2==0&&C2==0)&&( R3!=0||L3!=0||C3!=0))//sadece Z3 varken hesap yaapar
    {
    Z3x=R3;Z3y=L3-C3;Z3=sqrt(R3*R3+Z3y*Z3y);if(Z3x==0){Z3A=atan2(Z3y ,1);}else Z3A=atan2(Z3y,Z3x);printf("\nbuyukluk ve aci Z3=%0.5lf , Z3A=%0.5lf\n",Z3,(Z3A*180)/PI);
    I=V/Z3;Ia=Q+Z3A;
    VZ3=I*Z3;VZ3A=Ia+Z3A;IZ3=V/Z3;IZ3A=Q-Z3A;
    }
    if((R1!=0||L1!=0||C1!=0)&&(R2==0&&L2==0&&C2==0)&&( R3==0&&L3==0&&C3==0)) //sadece Z1 varken
    {
    Z1x=R1;Z1y=L1-C1;Z1=sqrt(R1*R1+Z1y*Z1y);if(Z1x==0){Z1A=atan2(Z1y ,1);}else Z1A=atan2(Z1y,Z1x);printf("\nbuyukluk ve aci Z1=%0.5lf , Z1A=%0.5lf\n",Z1,(Z1A*180)/PI);
    I=V/Z1;IZ1=I;Ia=Q+Z1A;
    VZ1=I*Z1;VZ1A=Ia+Z1A;IZ1=V/Z1;IZ1A=Q-Z1A;
    }
    if((R1==0&&L1==0&&C1==0)&&(R2!=0||L2!=0||C2!=0)&&( R3==0&&L3==0&&C3==0)) //sadece Z2 varken...
    {
    Z2x=R2;Z2y=L2-C2;Z2=sqrt(R2*R2+Z2y*Z2y);if(Z2x==0){Z2A=atan2(Z2y ,1);}else Z2A=atan2(Z2y,Z2x);printf("\n buyukluk ve aci Z2=%0.5lf , Z2A=%0.5lf\n",Z2,(Z2A*180)/PI);
    I=V/Z2;IZ2=I;Ia=Q+Z2A;
    VZ2=I*Z2;VZ2A=Ia+Z2A;IZ2=V/Z2;IZ2A=Q-Z2A;
    }
    printf("\nZ12sonuc=%0.5lf , Z12Asonuc=%0.5lf\n",Z12sonuc,Z12Asonuc);
    printf("Z123x=%0.5lf,,,Z123y=%0.5lf\n",Z123x,Z123y );//Z1//Z2 +Z3 fozörel gösterimi
    printf("(Z1//Z2 + Z3)durumunun sonucu buyukluk ve acisi:> %0.5lf...%0.5lf\n",Z123sonuc,Z123A);
    printf("\nI=%0.5lf,Ia=%0.5lf\n",I,(Ia*180)/PI);
    printf("\nIZ1=%0.5lf,IZ1A=%0.5lf\n",IZ1,(IZ1A*180)/PI);//X*1180/Pi radyanı dereceye cevirir...
    printf("IZ2=%0.5lf,IZ2A=%0.5lf\n",IZ2,(IZ2A*180)/PI);
    printf("IZ3=%0.5lf,IZ3A=%0.5lf\n",IZ3,(IZ3A*180)/PI);
    printf("\nVZ1=%0.5lf,VZ1A=%0.5lf\n",VZ1,(VZ1A*180)/PI);
    printf("VZ2=%0.5lf,VZ2A=%0.5lf\n",VZ2,(VZ2A*180)/PI);
    printf("VZ3=%0.5lf,VZ3A=%0.5lf\n",VZ3,(VZ3A*180)/PI);

    getch();
    return 0;
    }

  2. #2
    Junior Member grozni - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    10.01.2012
    Mesajlar
    1
    Konular
    0
    Tecrübe Puanı
    0

    Ynt: C ile deve ölçme programı

    saolasın

 

 

Konu Bilgileri

Users Browsing this Thread

Şu an 1 kullanıcı var. (0 üye ve 1 konuk)

Konuyu Favori Sayfanıza Ekleyin

Konuyu Favori Sayfanıza Ekleyin

Yetkileriniz

  • Konu Acma Yetkiniz Yok
  • Cevap Yazma Yetkiniz Yok
  • Eklenti Yükleme Yetkiniz Yok
  • Mesajınızı Değiştirme Yetkiniz Yok
  •