Определение токов в ветвях электрической цепи c помощью ЭВМ и системы линейных уравнений

Контрольная работа - Компьютеры, программирование

Другие контрольные работы по предмету Компьютеры, программирование

тое сопротивлениеR4double*08Пятое сопротивлениеR5double*09Шестое сопротивлениеR6double*10Первый токI1 Idouble*11Второй токI2double*12Третий токI3double*13Четвёртый токI4double*14Пятый токI5double*15Шестой токI6double*16НапряжениеE2E2double17напряжениеE4E4double18ТокIk1Ik1double19Мощность источниковPnagrPnagrdouble20Мощность нагрузокPistPistdouble21СуммаsSdouble22Переменнаяccdouble23КоэффициентMMdouble24Максимальный элементmaxmaxdouble25Количество элементовnNint26Количество элементовmMint27Входной потокFFПоток28Выходной потокffПоток

6. Текст программы

 

Текст программы на Microsoft Visual C++ 6.0:

#include "stdafx.h"

#include

#include

#include

#include SLAU(double **matrica_a,int n,double *massiv_b,double *x)

{i,j,k,r;c,M,max,s, **a, *b;=new double *[n];(i=0;i<n;i++)[i]=new double[n];=new double [n];(i=0;i<n;i++)(j=0;j<n;j++)[i][j]=matrica_a[i][j];(i=0;i<n;i++)[i]=massiv_b[i];(k=0;k<n;k++)

{=fabs(a[k][k]);=k;(i=k+1;imax)

{=fabs(a[i][k]);=i;

}(j=0;j<n;j++)

{=a[k][j];[k][j]=a[r][j];[r][j]=c;

}=b[k];[k]=b[r];[r]=c;(i=k+1;i<n;i++)

{(M=a[i][k]/a[k][k],j=k;j<n;j++)[i][j]-=M*a[k][j];[i]-=M*b[k];

}

}(a[n-1][n-1]==0)(b[n-1]==0)-1;return -2;

{(i=n-1;i>=0;i--)

{(s=0,j=i+1;j<n;j++)+=a[i][j]*x[j];[i]=(b[i]-s)/a[i][i];

}0;

}(i=0;i<n;i++)[] a[i];[] a;[] b;

}main()

{F;f;result,i,N=3,M=5,p;**a,*b,*x,*R,E2,E4,Ik1,*I,S,Pist,Pnagr;=new double *[N];=new double [M];(i=0;ip;(p==1)

{Ik1;

}

>R[0]>>R[1]>>R[2]>>R[3]>>R[4]>>R[5]>>E2>>E4>>Ik1;.close();">{.open("D:\\111\\123.txt");>>R[0]>>R[1]>>R[2]>>R[3]>>R[4]>>R[5]>>E2>>E4>>Ik1;.close();

}[0][0]=1/R[0]+1/R[1]+1/R[3];[0][1]=-1/R[1];[0][2]=-1/R[3];[1][0]=-1/R[1];[1][1]=1/R[1]+1/R[2]+1/R[5];[1][2]=-1/R[2];[2][0]=-1/R[3];[2][1]=-1/R[2];[2][2]=1/R[2]+1/R[3]+1/R[4];[0]=-E2/R[1]+E4/R[3]+Ik1;[1]=E2/R[1];[2]=-E4/R[3];=SLAU(a,N,b,x);.open("D:\\111\\rezult.txt");(result==0)

{(i=0;i<N;i++)[i]=-x[i];<<"Massiv X"<<endl;(i=0;i<N;i++)<<x[i]<<"\t";<<endl;<<"x[i]=";(i=0;i<N;i++)(i<N-1) f<<x[i]<<"\t";f<<x[i];[0]=0-x[0]/R[0];[1]=x[0]-x[1]+E2/R[1];[2]=x[2]-x[1]/R[2];[3]=x[2]-x[0]+E4/R[3];[4]=0-x[2]/R[4];[5]=x[1]-0/R[5];=E2*I[1]+E4*I[3]-Ik1*I[0]*R[0];<<endl;(i=0,S=0;i<=M;i++)+=I[i]*I[i]*R[i];=S;<<"I[i]=";<<"I[i]=";(i=0;i<=M;i++)

{<<I[i]<<"\t";(i<M-1) f<<I[i]<<"\t";f<<I[i];

}<<endl;<<"Pist="<<Pist<<endl;<<"Pnagr="<<Pnagr<<endl;<<endl;<<"Pist="<<Pist<<endl;<<"Pnagr="<<Pnagr<<endl;(Pist==Pnagr)<<"Balance mojnocteu covnadatt"<<endl;cout<<"Balance mojnocteu ne covnadatt"<<endl;.close();

}if(result==-1)

{<<"beckone4noe mnojectvo rewenii";<<"beckone4noe mnojectvo rewenii";

}if(result==-2)

{<<"net rewenii";<<"net rewenii";

}(i=0;i<N;i++)[] a[i];[] a; [] b; [] x;0;

}

 

7. Анализ результатов

 

По условию нам были даны: значения сопротивлений элементов цепи, напряжение в двух ветвях цепи и силу тока в данной точке; схематическая и математическая модель цепи.

Находим корни уравнения системы линейных уравнений, которые является потенциалами во всех ветвях цепи. С помощью которых находим значения токов в ветвях цепи. Проверяем баланс мощностей в цепи по найденным значениям мощностей источников и нагрузок.

Значения токов на ветвях везде разные, это говорит нам о том, что либо напряжения разные, либо сопротивления, по закону Ома .

Подтвердилось, что работать с файлами удобно и просто. А так же, что использование различных математических пакетов и языков программирования для решения различных задач очень удобно и компактно, быстрая переработка информации и максимально точные результаты.

Результаты в MS VC++ 6.0:

X[0]=-4.27091; X[1]=-33.6117; X[2]=0.560234; - корни системы линейных алгебраических уравнений, значения потенциалов в ветвях цепи.

I[0]=0.0569455; I[1]=30.5908; I[2]=0.996749; I[3]=5.34397; I[4]=-0.00709157; I[5]=-33.6117; - значения токов в ветвях цепи.

Pist=3117.87; - значение мощности источников.

Pnagr=163804.51; - значение мощности нагрузок.

Результаты проверки в Scilab:

X[0]=-4.27091; X[1]=-33.6117; X[2]=0.560234; [0]=0.0569455; I[1]=30.5908; I[2]=0.996749; I[3]=5.34397; [4]=-0.00709157; I[5]=-33.6117;=3117.87;=163804.51;

Все результаты совпадают и в MS VC++ и в Scalab.

 

Заключение

 

Результаты помогли убедится, что пользоваться методом Гаусса для решения СЛАУ очень удобно, а также даёт правильный результат.

Полученные значения токов показало, что не везде ток в цепи одинаковый, он зависит от составных электрической цепи.

Эта работа помогла освоить тему Линейные электрические цепи и научится применять теоретические сведения на практике.

А Также закрепить знания курса Введение в информатику и применить их при программировании реальной задачи на основе электрической цепи.

Использование ЭВМ очень помогает точно рассчитать информацию любого уровня, используя при этом малый период времени, что сильно облегчает работу людей.