Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра електронних
обчислювальних машин
Звіт
про виконання лабораторної роботи № 4
з курсу „ Моделювання ”
Тема:
Обробка результатів вимірювань
за допомогою методів регуляризації.
Виконав:
студент групи КІ-3
Львів – 2005
Мета роботи:
Відновити форму вхідного сигналу за його виміряними дискретними значеннями, отриманими на виході лінійної системи.
Завдання до роботи:
Знайти часову залежність для вхідного сигналу EMBED Equation.DSMT4 , якщо відомо, що графік сигналу із виходу аналого-цифрового перетворювача має наступний вигляд:
EMBED Origin50.Graph
Файл експериментальних даних знаходиться в таблиці. Кожен рядок файлу вимірювань складається із 2 числових значень – значення часу і відповідне йому значення напруги, виміряне за допомогою аналого-цифрового перетворювача. Як видно із графіка, сигнал дещо спотворений шумами вхідного підсилювача і перетворювача.
В якості регуляризуючого функціоналу можна взяти наступні функції:
а) EMBED Equation.DSMT4 б) EMBED Equation.DSMT4
За комплексний частотний коефіцієнт передачі підсилювача взяти наступне співвідношення: EMBED Equation.DSMT4 MACROBUTTON MTPlaceRef \* MERGEFORMAT SEQ MTEqn \h \* MERGEFORMAT ( SEQ MTEqn \c \* ARABIC \* MERGEFORMAT 1)
Дана характеристика відповідає підсилювачу, який має лише один полюс частотної характеристики. Реальні підсилювачі, як правило, описуються значно складнішими співвідношеннями.
При виконанні роботи необхідно визначити оптимальні значення параметрів регуляризації EMBED Equation.DSMT4 , враховуючи, що в вхідний сигнал підсилювача складається із суми прямокутних імпульсів.
При застосуванні регуляризуючої функції типу 2б необхідно обчислити числові значення інтегралу нев’язки за наступними співвідношенням:
EMBED Equation.DSMT4 MACROBUTTON MTPlaceRef \* MERGEFORMAT SEQ MTEqn \h \* MERGEFORMAT ( SEQ MTEqn \c \* ARABIC \* MERGEFORMAT 2)
Для обчислення інтегралу можна скористатись формулами прямокутників або трапецій.
Як приклад, наведемо залежність значень вхідного сигналу від часу без використання методів регуляризації (шляхом прямого застосування формули (4)) та відповідну залежність, знайдену із використанням регуляризуючого множника.
Текст програмної реалізації
unit Main;
interface
uses
Math,Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, TeEngine, Series, ExtCtrls, TeeProcs, Chart;
type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
Image1: TImage;
BitBtn2: TBitBtn;
Memo1: TMemo;
Button1: TButton;
Edit1: TEdit;
Image2: TImage;
Label1: TLabel;
Label2: TLabel;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const Np=76;
type ArrMatr=array[1..Np,1..Np] of Extended;
var
Form1: TForm1;
VAH:array[1..2,1..Np] of Double=(
{Ud,V}(1.0E-03,0.10101,0.20202,0.30303,0.40404,0.50505,0.60606,0.70707,0.80808,0.90909,1.0101,1.11111,1.21212,1.31313,1.41414,1.51515,1.61616,1.71717,1.81818,1.91919,2.0202,2.12121,2.22222,2.32323,2.42424,2.52525,2.62626,2.72727,2.82828,2.92929,3.0303,3.13131,3.23232,3.33333,3.43434,3.53535,3.63636,3.73737,3.83838,3.93939,4.0404,4.14141,4.24242,4.34343,4.44445,4.54545,4.64647,4.74747,4.84849,4.94949,5.05051,5.15151,5.25253,5.35353,5.45455,5.55556,5.65657,5.75758,5.85859,5.95960,6.06061,6.16162,6.26263,6.36364,6.46465,6.56566,6.66667,6.76768,6.86869,6.96970,7.07071,7.17172,7.27273,7.37374,7.47475,7.57576),
{Id,A}(7.45457E-6,2.43832E-4,4.68852E-4,6.84301E-4,8.77114E-4,0.00108,0.00126,0.00144,0.0016,0.00176,0.0019,0.00204,0.00217,0.00228,0.00239,0.00249,0.00259,0.00267,0.00274,0.0028,0.00284,0.00289,0.00292,0.00295,0.00297,0.00298,0.00298,0.00297,0.00295,0.00292,0.00289,0.00284,0.00279,0.00273,0.00267,0.0026,0.00251,0.00243,0.00235,0.00225,0.00216,0.00207,0.00197,0.00187,0.00178,0.00167,0.00158,0.00149,0.00139,0.0013,0.00121,0.00112,0.00103,9.40321E-4,8.66034E-4,7.89536E-4,7.16527E-4,6.44088E-4,5.70496E-4,5.04513E-4,4.40479E-4,3.77542E-4,3.20819E-4,2.66671E-4,2.18542E-4,1.74533E-4,1.33869E-4,1.00213E-4,7.03066E-5,4.73798E-5,2.93464E-5,1.61997E-5,7.90947E-6,2.0467E-6,1.00E-09,1.00E-10));
(*VAH:array[1..2,1..Np] of Double=((1,2,3,4,5,6,7)
,(0.00087,0.00100,0.002,0.00290,0.00230,0.001,0.00050));*)
B:ArrMatr;
Y:array[1..Np] of Extended;
A:array[1..Np] of Extended;
L:ArrMatr;
Z:array[1..Np] of Extended;
Ub:Double;
implementation
procedure LUDecomposition(var A : ArrMatr;
N : Integer;
var L : ArrMatr);forward;
{procedure LUDecomposition(var A : ArrMatr;
N : Integer;
var L : ArrMatr);
var
i : Integer;
j : Integer;
k : Integer;
begin
i:=1;