Определение токов в ветвях электрической цепи 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.
Заключение
Результаты помогли убедится, что пользоваться методом Гаусса для решения СЛАУ очень удобно, а также даёт правильный результат.
Полученные значения токов показало, что не везде ток в цепи одинаковый, он зависит от составных электрической цепи.
Эта работа помогла освоить тему Линейные электрические цепи и научится применять теоретические сведения на практике.
А Также закрепить знания курса Введение в информатику и применить их при программировании реальной задачи на основе электрической цепи.
Использование ЭВМ очень помогает точно рассчитать информацию любого уровня, используя при этом малый период времени, что сильно облегчает работу людей.