Решение типовых инженерно-технических задач в среде программирования Delphi
Расчет трансформатора питания по приближенным зависимостям. Численное решение нелинейных уравнений с заданной точностью. Расчет числовых значений и построение графиков амплитудно-частотной характеристики колебательного контура по координатам точек.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 08.01.2016 |
Размер файла | 120,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Введение
Курсовая работа по информатике содержит 4 программных решения типовых инженерно-технических задач в среде программирования Delphi.
В первой задаче представлен расчет трансформатора питания по приближенным зависимостям.
Вторая задача представляет собой расчет числовых значений и построение графиков амплитудно-частотной характеристики колебательного контура по координатам точек.
В третьей задаче производится интегрировании функции на заданном интервале, а также представлено сравнение результатов вычислений для различных чисел разбиений интервала n.
Четвертая задача представляет собой расчет численных решений нелинейных уравнений с заданной точностью.
ЗАДАЧА 1. РАСЧЕТ ТРАНСФОРМАТОРА ПИТАНИЯ
численный контур координата нелинейный
Задание:
По заданным значениям напряжения сети, площади сечения выбранного сердечника, требуемому количеству вторичных обмоток, величинам их напряжения и тока рассчитать количество витков и диаметр провода в каждой обмотке.
Условия, в которых выполнялся расчет:
· габаритная мощность трансформатора не более 100 ватт;
· частота сети 50 Гц;
· магнитная индукция в стальном сердечнике 1200 Гс;
· максимальная плотность тока в обмотках 2,55 а/кв.мм;
· коэффициент полезного действия трансформатора 0,8 - 0,9.
Исходные данные:
№ вар. 9 |
U |
S |
n |
m |
U1 |
I1 |
U2 |
I2 |
U3 |
I3 |
|
в |
кв. см |
В |
а |
в |
а |
в |
a |
||||
09 |
220 |
10 |
0,89 |
1 |
6 |
5,0 |
- |
- |
- |
- |
Математическая модель:
Габаритная мощность трансформатора вычисляется по формуле
(ватт),
где m - количество вторичных обмоток,
n - коэффициент полезного действия;
U(i) - напряжение на i-ой вторичной обмотке (вольт);
I(i) - величина тока в i-ой вторичной обмотке (ампер).
Количество витков первичной обмотки трансформатора определяется зависимостью:
где: U - напряжение сети (вольт);
S - площадь сечения сердечника (кв. см).
Диаметр провода первичной обмотки определяется по формуле:
(мм).
Количество витков i-ой вторичной обмотки - по выражению:
.
Диаметр провода i - ой вторичной обмотки - по формуле:
(мм).
Ток первичной обмотки - по формуле:
(A).
Описание алгоритма:
Алгоритм Project1.
А. Начать исполнение:
1. Присваиваем переменным исходные данные.
2. Рассчитываем предельную мощность на вторичной обмотке: P1=U1*I1.
3. Из полученного результата вторичной обмотки находим мощность на первичной обмотке: P=P1/n.
4. Рассчитываем количество витков первичной обмотки трансформатора
5. Находим количество витков первой вторичной обмотки трансформатора по формуле
.
6. Рассчитываем диаметр провода первичной обмотки по формуле
7. Находим диаметр провода первой вторичной обмотки трансформатора по формуле
8. Рассчитаем ток первичной обмотки по формуле
.
9. Вывести сообщение “K0 : K1: D0 : D1 : I: “.
Б. Закончить исполнение.
Текст программы:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
U,I,U1,I0,I1,D0,D1,D2,K0,K1,n,m,P,P1,P2,P3,I3,I2,U2,U3,K2,S:real;
begin
U:=110; S:=1; n:=0.9; m:=2; U1:=9; I1:=5.0; U2:=6; I2:=5.0;
P1:=U1*I1; P2:=U2*I2;
P:=(P1+P2)/n;
K0:=1.83e6*0.95/(U*S);
K1:=38*U1*1.05/S;
K2:=38*U2*1.05/S;
D0:=sqrt(p/(U*2));
D1:=sqrt(I1/2);
D2:=sqrt(I2/2);
I0:=P/U;
writeln('K0:',K0,' D0: ',D0,' D1: ' ,D1,' D2 ',D2,' K1: ',K1,' K2: ',K2,' I0: ',I0);
readln;
end.
Результат программы:
Тип параметра |
Параметр |
Расчетное значение |
Принятое значение |
|
Количество витков |
Первичной обмотки, K0 |
15804,5 |
15805 |
|
Первой вторичной обмотки, K1 |
359,1 |
359 |
||
Второй вторичной обмотки, K2 |
239,4 |
240 |
||
Диаметр провода, мм |
Первичной обмотки, D0 |
0,615 |
0,63 |
|
Первой вторичной обмотки, D1 |
1,5811 |
1,6 |
||
Второй вторичной обмотки, D2 |
1,5811 |
1,6 |
||
Ток, А |
Первичной обмотки, I0 |
0,7575 |
0,75 |
ЗАДАЧА 2. РАСЧЕТ И ПОСТРОЕНИЕ АМПЛИТУДНО-ЧАСТОТНОЙ ХАРАКТЕРИСТИКИ КОЛЕБАТЕЛЬНОГО КОНТУРА
По заданному выражению для амплитудно-частотной характеристики резонансного контура
,
где K - коэффициент усиления,
WP - резонансная частота,
W - текущая частота,
Z - относительный коэффициент затухания,
рассчитать таблицу значений A(W) при изменении частоты W от 0 до Wкон с шагом DW=0,1*Wкон при различных значениях относительного коэффициента затухания Z, изменяющегося от Zнач до Zкон с шагом Zшаг.
По данным таблицы построить на осях координат A(W), W графики изменения амплитуды A(W) от частоты W для различных значений Z.
Исходные данные:
№ вар. |
K |
WP |
Wкон |
Zнач |
Zкон |
Zшаг |
|
10 |
6,0 |
7,0 |
14 |
0,2 |
0,5 |
0,15 |
Математическая модель:
Амплитудно-частотная характеристика резонансного контура:
.
Величина изменений частоты:
DW=0,1*Wкон.
Описание алгоритма:
Алгоритм Save:
А. Начать исполнение:
1. Открыть файл для записи;
2. Вывести в файл заголовок таблицы;
3. Применить вложенный цикл;
4. Вывести в файл значения двухмерного массива согласно циклу;
5. Закрыть файл;
Б. Закончить исполнение.
А. Начать исполнение:
1. Присваиваем переменным исходные данные.
2. Задаем двухмерный массив для таблицы значений амплитудно-частотной характеристики A(W) при различных Z.
3. Применим вложенный цикл (внешний - по Z, внутренний - по W).
4. Вызовем процедуру Save, для сохранения файла;
Б. Закончить исполнение.
Текст программы:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Image1: TImage;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
acAZW=array [0..11,0..3] of real;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure Save( aAZW:acAZW; const name: string);
var
F:text;
i,j:integer;
begin
assign (F,name);
Rewrite (F);
for i:=0 to 3 do
begin
for j:=0 to 11 do
write(F,aAZW[j,i]:2:4,#9);
write(F,#13#10);
end;
close(F);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
k,wp,aw,w,dw,z,wk,zs,zb:real;
i,j,km:integer;
azw:acAZW;
begin
with Image1.Picture.Bitmap do
begin
Width:=0;
Height:=0;
Width:=Image1.Width;
Height:=Image1.Height;
end;
km:=12;
k:=6;
wp:=7;
wk:=14;
zb:=0.2;
zs:=0.15;
dw:=0.1*wk;
z:=zb+i*zs;
for i:=0 to 2 do
begin
z:=zb+i*zs;
azw[0,i+1]:=z;
with Image1.Picture.Bitmap.Canvas do
begin
MoveTo(0,round(Image1.Height-k*km));
end;
for j:=0 to 10 do
begin
w:=j*dw;
azw[j+1,0]:=w;
aw:=(k*sqr(wp))/sqrt(sqr(sqr(wp)-sqr(w))+sqr(2*z*wp*w));
with Image1.Picture.Bitmap.Canvas do
begin
LineTo(Round(50*j),round(Image1.Height-aw*km));
end;
azw[j+1,i+1]:=aw;
end;
end;
save(azw,'Kate2.txt');
end;
end;
end.
Результат программы:
Таблица значений A(W)
Z |
W |
|||||||||||
0 |
1.4 |
2.8 |
4.2 |
5.6 |
7 |
8.4 |
9.8 |
11.2 |
12.6 |
14 |
||
0.2 |
6.0 |
6.2284 |
7.0167 |
8.7781 |
12.4568 |
15.0 |
9.2144 |
5.3986 |
3.5583 |
2.5501 |
1.9325 |
|
0.35 |
6.0 |
6.1846 |
6.7763 |
7.8379 |
9.0126 |
8.5714 |
6.3274 |
4.3736 |
3.1243 |
2.3346 |
1.8124 |
|
0.5 |
6.0 |
6.1186 |
6.4490 |
6.8394 |
6.8394 |
6.0 |
4.6944 |
3.5346 |
2.6850 |
2.0880 |
1.6641 |
ЗАДАЧА 3. ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ АНАЛИТИЧЕСКИ ЗАДАННОЙ ФУНКЦИИ
По заданному выражению аналитической функции f(x) вычислить приближенно определенный интеграл от этой функции на заданном интервале [a,b]:
,
Используя одну из трех квадратурных формул:
1. прямоугольников;
2. трапеций;
3. парабол.
Сравнить результаты вычислений для различных чисел разбиений интервала n.
Исходные данные:
Вариант |
Функция |
Интервал |
Формула |
Числа разбиений |
|||
№ |
f(x) |
a |
b |
№ |
n1 |
n2 |
|
10 |
1 |
2 |
2 |
16 |
32 |
Математическая модель:
1. Метод прямоугольников
.
2. Метод трапеций
.
3. Метод Симпсона
Описание алгоритма:
Алгоритм Sum:
А. Начать исполнение:
1. Рассчитываем: h=(b-a) /n.
2. Записываем в результате значение 0.
3. Для значений I от 1 до n повторяем:
А. Увеличиваем результат на:
4. Конец цикла.
Б. Закончить исполнение.
Алгоритм Project3:
А. Начать исполнение.
1. Присваиваем переменным исходные данные.
2. Вызываем результат функции Sum согласно переменным.
Б. Закончить исполнение.
Текст программы:
program Project3;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
Func=function (x:Real):Real;
var
a,b,h:real;
n1,n2:integer;
function f(x:Real):Real;
begin
// f:=Exp(x);
f:=sin(1+x/2)+sqr(x);
end;
function F2(fi:Func;a,b:Real;n:Integer):Real;
var
i:integer;
h,tmp:real;
begin
h:=(b-a)/n;
tmp:=0;
Result:=0;
for i:=1 to n-1 do
tmp:=tmp+2*fi(a+i*h);
Result:=(h/2)*(fi(a)+tmp+fi(b));
end;
begin
// a:=0;b:=pi;
a:=1;b:=2;
n1:=16;n2:=32;
writeln(F2(f,a,b,n1));
writeln(F2(f,a,b,n2));
readln;
end.
Результаты вычислений:
1) n1 = 3.30767320469093E+0000
2) n2 = 3.30724435873685E+0000
ЗАДАЧА 4. ЧИСЛЕННОЕ РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ С ЗАДАННОЙ ТОЧНОСТЬЮ
По заданному нелинейному уравнению
F(x) =0,
где F(x) - некоторое нелинейное аналитическое выражение, определенное на интервале [a, b], вычислить корни этого уравнения с требуемой точностью E одним из трех методов:
1. итераций;
2. половинного деления;
3. Ньютона.
Исходные данные для решения нелинейных уравнений
Вариант |
Выражение |
Интервал |
Метод |
Точность |
||
№ |
F(x) |
a |
b |
N |
E |
|
10 |
0 |
1 |
3 |
10-6 |
Заключение
По мере выполнения поставленного задания я хорошо освоил язык программирования Delphi и изучил программу Borland Delphi7, изучил поставленную задачу и принципы ее решения. Написал программу и исправил ошибки, возникшие в процессе выполнения работы.
Исходя из проделанной работы, можно сказать, что мне удалось справится с задачами поставленными в начале.
Список литературы
1. Архангельский А.Я. Программирование в Delphi 5. 2-е изд., перераб. и доп. М.: Бином, 2010.
2. Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. М.: Мир, 1979.
3. Бондарев В.М., Рублинецкий В.И., Качко Е.Г. Основы программирования. Харьков: Фолио; Ростов-на-Дону: Феникс, 2014.
4. Ершов А.П. Введение в теоретическое программирование. М.: Наука, 2007.
5. Кнут Д. Искусство программирования для ЭВМ. М., 2014.
7. Культин Н.Б. Программирование в Turbo Pascal 7.0 и Delphi: Самоучитель. 2-е изд. СПб; М.; Дюссельдорф; Киев: BHV, 2010.
8. Новиков Ф.А. Дискретная математика для программистов. СПб: Питер, 2012.
9. Фихтенгольц Г.М. Курс дифференциального и интегрального исчисления, т. 2. М.: Наука, 2007.
Размещено на Allbest.ur
Подобные документы
Расчет трансформатора питания. Численное решение нелинейных уравнений с заданной точностью и дифференциальных уравнений первого порядка. Разработка программы с использованием средств визуального программирования на алгоритмическом языке программирования.
курсовая работа [1,2 M], добавлен 17.08.2013Расчет подшипников на долговечность. Решение инженерно-технических задач программными методами с использованием среды прикладного программирования Dephi. Расчет параметров зубчатого зацепления. Расчет шпилечного и винтового резьбового соединения.
курсовая работа [366,3 K], добавлен 04.06.2013Методика и основные этапы построения ранжированных переменных, сферы и особенности их практического применения. Порядок построения графиков в декартовой системе. Приведение примеров решение нелинейных уравнений и их систем при помощи решающего блока.
контрольная работа [364,4 K], добавлен 27.03.2011История развития и функции линейного программирования. Исследование условий типовых задач и возможностей табличного процессора. Решение задач о рационе питания, плане производства, раскрое материалов и рациональной перевозке груза в среде MS Excel.
курсовая работа [3,3 M], добавлен 28.04.2014Решение в среде Microsoft Excel с помощью программной модели "Поиск решения" транспортной задачи, системы нелинейных уравнений, задачи о назначениях. Составление уравнения регрессии по заданным значениям. Математические и алгоритмические модели.
лабораторная работа [866,6 K], добавлен 23.07.2012Разработка проекта по вычислению корней нелинейных уравнений методом итераций, в среде программирования Delphi. Интерфейс программы и ее программный код, визуализация метода. Сравнение результатов решения, полученных в Mathcad 14 и методом итераций.
контрольная работа [1,9 M], добавлен 10.12.2010Математическая модель, описание теории, применяемой к задаче. Обсчет точек методом Рунге-Кутта, модифицированным методом Эйлера, схема и листинг программы. Решение дифференциальных уравнений и построение графиков, решение уравнений в среде Turbo Pascal.
курсовая работа [76,7 K], добавлен 18.11.2009Программирование нестандартных функций. Матрицы и операции над ними. Решение нелинейных уравнений и численное интегрирование. Оптимизация функции и численное дифференцирование. Аппроксимация функции: методы решения, описание программы, результаты.
курсовая работа [70,5 K], добавлен 12.08.2011Решение задач с помощью языка программирования Delphi: вычисление значения функции Y от X; систем двух уравнений; прогрессий; последовательностей; вычисление числа с определенной точностью; перевод числа из десятичной в восьмеричную систему счисления.
отчет по практике [83,8 K], добавлен 08.06.2010Точность вычислений, классификация погрешностей. Оценка апостериорной погрешности, численное дифференцирование. Численное решение систем линейных уравнений. Аппроксимация функций методом наименьших квадратов. Решение нелинейных уравнений с неизвестным.
методичка [611,8 K], добавлен 10.10.2010