Расчеты на ЭВМ характеристик выходных сигналов электрических цепей
Скачать 99.5 Kb.
|
Федераьное агенство связи ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧЕРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ им. проф. М.А. БОНЧ-БРУЕВИЧА»курсовая работапо курсу "Информатика" на тему: «Расчеты на ЭВМ характеристик выходных сигналов электрических цепей» Выполнил: студент Санкт-Петербург 2011 Курсовая работа по информатике «Расчет на ЭВМ характеристик входных и выходных сигналов электрических цепей» Задание: На основании номера билета №1402 получаем коды и исходные данные.
Настоящая курсовая работа посвящена решению задачи машинного анализа электрических цепей.В курсовой работе необходимо для заданной электрической цепи (см. рис. 1) по известному входному сигналу Uвх(t) построить выходной сигнал Uвых(t), а затем определить некоторые его характеристики W. Вычисления величин Uвх(t) и Uвых(t) выполнить для N-равноотстоящих моментов времени t, где t [tнач, tкон]. Организовать массивы для хранения Uвх(t) и Uвых(t). Произвести вычисление характеристики W выходного сигнала согласно заданию. Массивы входных и выходных отсчетов записать в текстовые файлы с расширением prn. Содержимое этих файлов использовать для построения графиков в интегрированной математической системе MathCAD. Дана нелинейная безынерционная цепь: Рис.1 Задание входного сигнала в виде аналитических выражений
Задание передаточной характеристики в виде аналитических выражений
Задание вариантов вычисляемых характеристик выходного сигнала.
Предложенная для решения задача разбита на четыре основные части (подзадачи). Каждая из этих частей реализована в виде подпрограммы (функции). Ввод исходных данных, необходимых для решения задачи, выделен также в самостоятельную функцию под именем DATA. В программе предусмотрен вывод результатов решения задачи на экран монитора по желанию пользователя (функция REZULT). Все подпрограммы-функции разработаны с использованием глобальных переменных . Полный листинг программы, решающей поставленную задачу приведен ниже: 2. Таблица идентификаторов.
3. Таблица описания пользовательских подпрограмм.
4. Текст программы. #include #include #include #include using namespace std; void DATA(int &n,float &tn,float &tk,int &a,int &b,int &t1,float &av,float &bv,int &uvh1,int &uvh2) { printf("Vvedite kolihestvo otshetov signala n="); scanf("%i",&n); printf("Vvedite tn:\n "); scanf("%f",&tn); printf("Vvedite tk:\n "); scanf("%f",&tk); printf("Vvedite a:\n "); scanf("%i",&a); printf("Vvedite b:\n "); scanf("%i",&b); printf("Vvedite t1:\n "); scanf("%i",&t1); printf("Vvedite av:\n "); scanf("%f",&av); printf("Vvedite bv:\n "); scanf("%f",&bv); printf("Vvedite uvh1:\n "); scanf("%i",&uvh1); printf("Vvedite uvh2:\n "); scanf("%i",&uvh2); } void UIN1(float tn,float tk,int n,int t1,float *uin,int a,int b) { float t,del; t=tn; del=(tk-tn)/(n-1); for(int i=0;i { if(t<=t1) uin[i]=a*(t-tn); else uin[i]=a*(t1-tn)-b*(t-t1); t=t+del; } } void UOUT1(float *uout, int n, float *uin, int &uvh1, int &uvh2,float &bv, float &av,int b) { for(int i=0;i { if(uin[i]<=uvh1) uout[i]=av*uvh1+bv; if(uin[i]>uvh2) uout[i]=av*uvh2+b; if(uin[i]>uvh1 && uin[i]<=uvh2) uout[i]=av*uin[i]+b; } } void WRITEINFO(float*uin,float*uout,int n) { FILE *f1; FILE *f2; f1=fopen("1.prn","w"); f2=fopen("2.prn","w"); for(int i=0;i fprintf(f1,"%f",uin[i]); fprintf(f1,"\n"); fprintf(f2,"%f",uout[i]); fprintf(f2,"\n"); } fclose(f1); fclose(f2); } void MAXI(float*uout,int n) { float max; max=uout[0]; for(int m=1;m printf("\nMaksimalnoe znahenie vyhodnogo signala: %f",max); } void REZULT(float*uin,float*uout,int &n) { float kl; printf("vvedite kl:1-monitor,other-file:\n"); scanf("%f",&kl); if(kl==1) { printf("\nOtshety vhodnogo signala\n"); for(int i=0;i printf("Uin[%i]=",i+1); printf("%f\n",uin[i]); } printf("===========================\n"); printf("Otshety vyhodnogo signala\n"); for(int j=0;j printf("Uout[%i]=",j+1); printf("%f\n",uout[j]); } MAXI(uout,n); } else WRITEINFO(uin,uout,n); printf("===============================\nMassivi otshetov zapisani v faily 1.prn i 2.prn. Rabota zavershena"); } int main() { int n,kl,a,b,t1,uvh1,uvh2; float tn,tk,bv,av; float uin[100]; float uout[100]; DATA(n,tn,tk,a,b,t1,av,bv,uvh1,uvh2); UIN1(tn,tk,n,t1,uin,a,b); UOUT1(uout,n,uin,uvh1,uvh2,bv,av,b); REZULT(uin,uout,n); } 5. Контрольный расчет
Заключение В данной работе решаются задачи машинного анализа электрических цепей. В курсовой работе необходимо для заданной электрической цепи по известному входному сигналу Uвх(t) построить выходной сигнал Uвых(t) , а затем определить некоторую его характеристику W. В данном варианте курсовой работы при составлении схемы алгоритма использовали принцип пошаговой детализации. Сущность этого метода состоит в следующем: вначале разработали головной модуль, а затем перешли к разработке других подпрограмм. Вычисление W реализовали с помощью обращения к трем подпрограммам: формирование массива Uвх, формирование массива Uвых, обработка массива Uвых в целях получения значения величины W. В данной курсовой работе величиной W является максимальное значение выходного сигнала. Благодаря данной курсовой работе были приобретены навыки расчета на ЭВМ характеристик выходных сигналов электрических цепей, составления подпрограмм и программ на языке С, а также выполнения их отладки. |