Автор работы: Пользователь скрыл имя, 03 Июля 2013 в 16:14, курсовая работа
Программа предназначена для построения кубического сплайна зависимости тока ротора от коэффициента нагрузки. В программе исходные данные β и I. Исходные данные считываются из текстового файла aium225m4.txt, а записываются в файл rezult.txt. В результате исследований необходимо получить значение тока ротора при определенных коэффициентах нагрузки и влиянии тока холостого хода.
Данная программа разработана на зыке С++. С помощью математического пакета – Scilab строится график по исходным данням, а также строится график по полученным данным.
Аннотация…………………………………………………………………..................................……….4
Введение…………………………………………………………………………………………………..5
1. Постановка задачи 6
2. Описание математической модели решения задачи 7
3. Постановка задачи………………………………………………………………..............….…...7
2. Описание математической модели решения задачи…………….......................................….…….8
3. Блок-схема …………………………………………………………...............……….………….……11
4. Описание алгоритма ……………………………………………………….............……………..…13
5. Характеристика данных и их условные обозначения ………............…….……....14
6. Текст программы…………………………………………………………...........……………….…..16
7. Контрольный пример……………………………………………………………...........………..…..21
7.1. Контрольный расчет…………………………………………………………………...........…..22
7.2. Результаты расчета с помощью Scilab......……………………................…….…...23
7.3. График экспериментальной зависимости и подобранной функции, выполненный в Scilab23
8. Анализ результатов …………………………………………………………………...........….……23
Заключение…………………………………………………………………………………….........…..24
Списки используемой литературы……………………………………...........……………….….25
Таблица 5.1. Характеристика данных программы и их условные обозначения.
6. Текст программы.
#include <iostream.h>
#include <fstream.h>
#include <stdio.h>
#include <math.h>
float koeffizient_splaina(float*x,
{
int k;
float *h;
float *L,*D,*l;
h=new float[N+1]; // расширение памяти массиву h
l=new float[N+1]; // расширение памяти массиву l
D=new float[N+1]; // расширение памяти массиву D
L=new float[N+1]; // расширение памяти массиву L
for(k=1;k<=N;k++)
h[k]=x[k]-x[k-1];
for(k=1;k<=N;k++)
{
l[k]=(y[k]-y[k-1])/h[k]; // расчет значений элементов массивов h иl
}
D[1]=-h[2]/(2*(h[1]+h[2]));
L[1]=1,5*(l[2]-l[1])/(h[1]+h[
for(k=3;k<=N;k++)
{
D[k-1]=-h[k]/(2*h[k-1]+2*h[k]+
L[k-1]=(3*l[k]-3*l[k-1]-h[k-1]
}
c[N]=0;c[0]=0;
for(k=N;k>=2;k--)
c[k-1]=D[k-1]*c[k]+L[k-1];
for(k=1;k<=N;k++)
{d[k]=(c[k]-c[k-1])/(3*h[k]);
b[k]=l[k]+(2*c[k]*h[k]+h[k]*c[
delete []l;
delete []h;
delete []D;
delete []L;
return 0;
}
int main(int argc, char* argv[])
{int N;
FILE *g;
FILE *f;
f=fopen("E:\\rezult.txt","a+")
g=fopen("E:\\aium225m4.txt.
fscanf(g,"%d",&N);
cout<<"n="<<N<<"\t";
float *x,*y,*U,*a,*b,*c,*d,*P;
int i,j,m;
x=new float[N+1];
y=new float[N+1];
P=new float[N+1];
U=new float[N+1];
c=new float[N+1];
d=new float[N+1];
b=new float[N+1];
a=new float[N];
for(i=0;i<=N;i++)
{fscanf (g,"%f",&x[i]);
cout<<"x["<<i<<"]"<<"="<<x[i]<
cout<<"\n";
for(i=0;i<=N;i++)
{fscanf(g,"%f",&y[i]);
// f>>y[i];
cout<<"y["<<i<<"]"<<"="<<y[i]<
for(i=0;i<3;i++)
{fscanf(g,"%f",&U[i]);
//f>>U[i];
cout<<"U["<<i<<"]"<<"="<<U[i]<
koeffizient_splaina(x,y,N,b,c,
for(i=0;i<N;i++)
a[i]=y[i];
for(i=0;i<=N;i++)
{
cout<<"a("<<i<<")="<<a[i-1]<<"
cout<<"b("<<i<<")="<<b[i]<<"\
cout<<"c("<<i<<")="<<c[i]<<"\
cout<<"d("<<i<<")="<<d[i-1]<<"
}
for(m=0;m<3;m++)
{if(U[m]>x[N-1])
j=N-1;
else
{
for(i=1;i<N;i++)
if(x[i]>U[m])
{j=i;break;}}
P[m]=a[j]+b[j]*(U[m]-x[j])+c[
printf("P=%5.2f \n",P[m]); } for(i=0;i<3;i++)
{
fprintf(f,"P=%5.2f \t",P[m]);
fprintf(f,"U=%5.2f \t",U[m]);
}
delete []x;
delete []y;
delete []P;
delete []U;
fclose(g);
fclose(f);
return 0;
}
7. Контрольный пример.
7.1 Контрольный расчет
С помощью данной программы я получила ожидаемое значение тока при коэффициента нагрузки при значениях = 0.64; 0.9;1.2.
Ниже показан screenshot работы программы в среде Microsoft Visual C++ 6.0.
Рис. 7.1. Screenshot работы результата программы.
Как мы видим, что найдены значение пусковых токов при нагрузках U[0]=0.64, U[1]= 0.9, U[2]=1.2. Т.е. P[0]=39,92; P[1]=54,25; P[2]=70,64.
7.2. Результаты расчета с помощью Scilab
x=[0 0.2 0.5 0.7 0.8 1 1.1 1.3 1.5];
y=[20.6 22 34 43 49 60 65 77 91];
koeff=splin(x,y);
X=[0.64 1.2 0.9];
Y=interp(X,x,y,koeff)
Запуск программы:
загрузка исходного окружения
-->exec('E:\Документы\
-->x
x =
0. 0.2 0.5 0.7 0.8 1. 1.1 1.3 1.5
-->y
y =
20.6 22. 34. 43. 49. 60. 65. 77. 91.
-->X
X =
0.64 1.2 0.9
-->interp(X,x,y,koeff)
ans =
39.970661 70.648609 54.771506
7.3. График экспериментальной зависимости и подобранной функции, выполненный в Scilab
Рис. 7.3 График экспериментальной зависимости в Scilab
8. Анализ работы.
В результате работы программы я получила следующие значения пусковых токов I1=39,92; I2=54,25; I3=70,64. A в результате проверки работы программы в математическом пакете Scilab результаты были таковыми: I1= 39.970661 ; I2= 54.771506 ; I3=70.648609. Данные результаты свидетельствуют о правильности работы программы и вычислении данных с небольшой погрешностью.
Заключение
В данной курсовой работе я написала программу для вычисления тока ротора от коэффициента нагрузки предельной АД при номинальном напряжении и токе холостого хода с помощью методом кубической интерполяции. А также проверила правильность работы программы в математическом пакете Scilab и построила график экспериментальных зависимостей в ________ и подобранных функций.
Списки используемой литературы:
1. Алексеев Е.Р., Чеснокова О.В.,, Рудченко Е.А., Scilab: Решение инженерных и математических задач, М., 2008.-269с.
2. Алексеев Е.Р., Чеснокова О.В., Решение задача вычислительной математики в пакетах Mathcad 12, Matab 7, Maple 9, М., 2006.-496с.
Внизу показаны скриншоты работы программы. Приложение 1 – текстовый файл с начальными данными. Приложение 2 – текстовый файл с данными полученными программой.
Приложение 1
Приложение 2
Информация о работе Использование кубического сплайна при решении электротехнических задач