Расчёт на ЭВМ характеристик выходных сигналов электрических цепей
Краткое сожержание материала:
Размещено на
Санкт-Петербургский Государственный университет телекоммуникаций им. проф. М.А. Бонч-Бруевича
ФАКУЛЬТЕТ ВЕЧЕРНЕГО И ЗАОЧНОГО ОБУЧЕНИЯ
КУРСОВАЯ РАБОТА НА ТЕМУ:
Расчет на ЭВМ характеристик выходных сигналов электрических цепей
по дисциплине «ИНФОРМАТИКА»
СОДЕРЖАНИЕ
1. Постановка задачи
2. Приведение выходного сигнала к аналитическому виду
3. Программа расчета характеристик выходного сигнала электрической цепи
4. Таблица идентификаторов
5. Таблица описаний пользовательских подпрограмм
6. Контрольный расчет
7. Построение графиков по полученным массивам входного и выходного сигналов в MathCAD
1. ПОСТАНОВКА ЗАДАЧИ
Дана нелинейная безынерционная цепь:
Входной сигнал задан в виде аналитического выражения (код А=23):
Рабочий набор исходных данных:
; ;
Передаточная характеристика задана в виде графика (код Б=10):
Рабочий набор исходных данных:
; ;
Вычислить:
- максимальное значение выходного сигнала (код В=00)
2. ПРИВЕДЕНИЕ ВЫХОДНОГО СИГНАЛА К АНАЛИТИЧЕСКОМУ ВИДУ
программа сигнал массив электрический
Выходной сигнал задан в виде графика. Перейдём к аналитическому выражению. Из графика видно, что имеет три линейных участка. Поэтому аналитическая запись будет иметь вид:
при
= при
при
Для определения составим систему из четырех уравнений для четырех значений аргумента и решим их.
при
при
Подставив во второе уравнение, получаем:
;
при
при
Подставив во второе уравнение, получим:
;
Подставив в , получим:
В итоге получаем:
при , где ,
= при ,где ,
при
3. ПРОГРАММА РАСЧЕТА ХАРАКТЕРИСТИК ВЫХОДНОГО СИГНАЛА ЭЛЕКТРИЧЕСКОЙ ЦЕПИ
program kurs_1;
uses crt;
const
maxind=160;
type
arraytype=array[1..maxind] of real; {описание глобальных параметров}
{-------------------------------------------------------------------------}
{Процедура ввода исходной информации}
procedure data (var kl:byte;
var tn,tk,uin2,uin3:real);
begin
writeln('Введите kl=1, если хотите вывести результаты на монитор');
writeln('Введите kl=0, если хотите записать результаты в файлы f1 и f2');
write('kl=');
readln(kl);
writeln('Введите ваши исходные данные:');
write('Начальный момент наблюдения ');
write('tn=');
readln(tn);
write('Конечный момент наблюдения ');
write('tk=');
readln(tk);
writeln('Введите Uвх1');
write('uin2=');
readln(uin2);
writeln('Введите Uвх2');
write('uin3=');
readln(uin3);
end;
{---------------------------------------------------------------------}
{Процедура формирования массива входных отсчетов}
procedure uin1(kl:byte;tn,tk:real;
var uin:arraytype); {список формальных параметров}
const
t1=2; k=4; u0=0;
var
t,s,del:real; {описание локальных переменных}
i:integer;
u:array[1..4]of integer;
begin
u[1]:=15;u[2]:=5;u[3]:=3;u[4]:=2;
t:=tn;
del:=(tk-tn)/(k-1);
s:=0;
for i:=1 to k do
begin
s:=s+u[i]*sin(i*2*Pi*t/t1);
t:=t+del;
uin[i]:=u0+s;
end;
end;
{---------------------------------------------------------------------}
{Процедура формирования массива выходных отсчетов}
procedure uout1(kl:byte;uin2,uin3:real;uin:arraytype;
var uout:arraytype);
const
u0=5; u1=10; u2=50;
var a1,a2,b1,b2:real;
i:integer;
begin
a1:=(u1-u0)/uin2;
b1:=u0;
a2:=(u2-u1)/(uin3-uin2);
b2:=u1-a2*uin2;
for i:=1 to 4 do
begin
if uin[i]>=uin3 then
uout[i]:=u2;
if (uin[i]>=uin2) and (uin[i]<uin3) then
uout[i]:=a2*uin[i]+b2;
if uin[i]<uin2 then
uout[i]:=a1*uin[i]+b1;
end;
end;
{---------------------------------------------------------------------}
{Процедура функции нахождения максимального значения выходного сигнала}
function maxi(uout:arraytype):real;
var max:real;
i:integer;
begin
max:=uout[i];
for i:=2 to 4 do
if uout[i]>max
then max:=uout[i];
maxi:=max;
end;
{---------------------------------------------------------------------------}
{процедура записи массивов входного и выходного сигналов на диск в файлы}
procedure writeinfo(uin,uout:arraytype);
var
f1,f2:text;
i:integer;
begin
assign(f1,'f1.prn'); {связывание и открытие файлов}
assign(f2,'f2.prn');
rewrite(f1); {открыть файл для записи}
rewrite(f2);
for i:=1 to 4 do
begin
writeln(f1,uin[i]:7:3); {запись в файл}
writeln(f2,uout[i]:7:3);
end;
close(f1); {закрытие файлов}
close(f2);
end;
{--------------------------------------------------------------------------}
{Процедура вывода на экран результатов программы}
procedure rezult(kl:byte;
uin,uout:arraytype);
var
i:integer;
begin
if kl=1 then {признак вывода результатов на экран монитора}
begin
writeln('отсчеты входного сигнала');
for i:=1 to 4 do
writeln('Uвх[',i,']',uin[i]:7:3); {вывод входных отчетов}
writeln('отсчеты выходного сигнала');
for i:=1 to 4 do
writeln('Uвых[',i,']=',uout[i]:7:3); {вывод выходных отчетов}
writeln('Макс.значение вых. сигнала=' ,maxi(uout):7:3);
end
else {kl - любое число, например 0}
begin
writeln;
writeln;
writeln('Программа закончила свою работу. Массивы');
writeln('входных и выходных отсчетов сформированы');
writeln('и записаны в файлы f1.prn и f2.prn соответственно');
end;
end;
{--------------------------------------------------------------------}
var
kl:byte; {глобальные параметры}
tn,tk,uin2,uin3:real;
uin,uout:arraytype;
{--------------------------------------------------------------------}
Begin {начало главной программы}
clrscr;
data(kl,tn,tk,uin2,uin3); {тело программы}
uin1(kl,tn,tk,uin);
uout1(kl,uin2,uin3,uin,uout);
writeinfo(uin,uout);
rezult(kl,uin,uout);
readln;
end. {конец программы}
4. ТАБЛИЦА ИДЕНТИФИКАТОРОВ
Обозначение в задаче |
Идентификатор |
Назначение |
|
k |
k |
Количество отсчетов входного сигнала |
|
kl |
Признак - ключ, определяющий режим работы kl=1, если вывод на монитор, kl - любое число,...
Другие файлы:
Расчет характеристик выходных сигналов электрических цепей Исследование переходных процессов и анализ частотных характеристик элементарных звеньев радиотехнических цепей Теория линейных электрических цепей Электрорадиоизмерения Электрорадиоизмерения |