Pemodelan waktu diskrit Pemodelan waktu kontiniu

Sebuah modul TDF mengandung unsur-unsur seperti port, sinyal, parameter dan fungsi member untuk time-domain transien dan domain frekuensi sinyal kecil AC analisis[7].

3.4.3 Pemodelan waktu diskrit

Perilaku waktu diskrit dapat didefinisikan dalam fungsi member processing. Dalam fungsi member, penjelasan algoritma atau prosedural murni dalam C++ dapat diberikan, yang dieksekusi pada setiap aktivasi modul. Pengaktifan modul didefinisikan oleh langkah waktu modul, yang dapat dilakukan user dengan fungsi member set_timestep atau diperoleh langkah waktu propagasi. Pada Gambar 3.5 diberikan untuk sumber sinusoidal 1 kHz. Dengan mendefinisikan langkah waktu modul 0.125ms, sinyal output sebenarnya akan over-sample dengan faktor 8[7]. Gambar 3.5 Modul primitive TDF yang mengimplementasikan sebuah sumber sinusoidal Sesuai kode sumber C++ diberikan di bawah ini. Konstruktor memiliki parameter dengan nilai default, yang menentukan amplitudo, frekuensi dan periode sampling dalam hal ini sama dengan langkah waktu modul dari gelombang sinus yang dihasilkan oleh sumber. Langkah waktu modul biasanya diatur dalam fungsi member set_attributes. Sinus fungsi sin, merupakan bagian dari perpustakaan C++, digunakan dalam fungsi member processing. Untuk menulis sampel ke port output, port fungsi member write yang digunakan[7]. Universitas Sumatera Utara SCA_TDF_MODULEsin_src { sca_tdf::sca_outdouble out; output port sin_src sc_core::sc_module_name nm, double ampl_= 1.0, double freq_ = 1.0e3, sca_core::sca_time Tm_ = sca_core::sca_time0.125, sc_core::SC_MS : outout, amplampl_, freqfreq_, TmTm_ {} void set_attributes { set_timestepTm; } void processing { double t = get_time.to_seconds; actual time out.write ampl std::sin 2.0 M_PI freq t ; } private: double ampl; amplitude double freq; frequency sca_core::sca_time Tm; module time step };

3.4.4 Pemodelan waktu kontiniu

Sebuah modul TDF dapat digunakan untuk persamaan dinamik linier dalam bentuk fungsi transfer linier dalam domain Laplace atau persamaan ruang status. Universitas Sumatera Utara Meskipun model TDF proses perhitungan sampel pada langkah waktu diskrit, persamaan fungsi ini tertanam akan diselesaikan dengan mempertimbangkan sampel input sebagai sinyal kontinu-waktu. Hasil dari sistem persamaan linier tertanam dinamis, yang juga terus menerus dalam waktu dan nilai, adalah sampel menjadi sinyal menggunakan time step yang sesuai dengan time step, di mana sampel ditulis[7]. Contoh di bawah ini menunjukkan aliran sinyal terkait saat menanamkan fungsi Laplace transfer LTF dalam modul TDF. Sinyal masukan merupakan fungsi langkah sampel. Sinyal diskrit-waktu diinterpretasikan oleh fungsi LTF sebagai sinyal kontinu-waktu. Penyaringan terus sinyal waktu ditulis ke port output. Selama operasi penulisan, sinyal kontinyu waktu sedang sampel menjadi sinyal discretetime menggunakan atribut port output. Modul TDF primitive tertanam sebuah waktu kontinius Laplace Transfer Function LTF ditunjukkan pada Gambar 3.6[7]. Gambar 3.6 Modul TDF primitive tertanam sebuah waktu kontinius Laplace Transfer Function LTF Transfer Laplace fungsi LTF dapat digunakan dalam denominator pembilang atau bentuk zero-pole. Kelas sca_tdf::sca_ltf_nd menerapkan fungsi transfer waktu kontiniu skala linier dari variabel Laplace domain dalam bentuk pembilang penyebut: . 1 1 . . . delay s N i i i M i i i e s den s num k s H         ………………………………………………………..3.1 Universitas Sumatera Utara di mana k adalah keuntungan konstan fungsi transfer, M dan N adalah jumlah koefisien pembilang dan penyebut masing-masing, dan num i dan den i adalah koefisien dinilai sebenarnya dari pembilang dan penyebut masing-masing. Koefisien harus dinyatakan sebagai obyek kelas sca_util::sca_vector dengan tipe data ganda. Penundaan parameter waktu tunda terus diterapkan pada nilai yang tersedia di input. Contoh di bawah ini menunjukkan orde pertama low-pass filter menggunakan Transfer Laplace fungsi sebagai berikut: s fc Ho s H  2 1 1   ………………………………………………………………...3.2 dimana H o keuntungan DC dan fc adalah filter cut-off frekuensi dalam Hz. Kode berikut mengimplementasikan seperti perilaku dalam modul TDF menggunakan kelas sca_tdf::sca_ltf_nd, yang dinyatakan dalam sistem persamaan yang sesuai. Koefisien pembilang dan penyebut dihitung dari keuntungan yang ditentukan user dan cut off frekuensi[7]. SCA_TDF_MODULEltf_nd_filter { sca_tdf::sca_indouble in; sca_tdf::sca_outdouble out; ltf_nd_filter sc_core::sc_module_name nm, double fc_, double h0_ = 1.0 : inin, outout, fcfc_, h0h0_ {} void initialize { num0 = 1.0; den0 = 1.0; den1 = 1.0 2.0 M_PI fc ; } Universitas Sumatera Utara void processing { out.write ltf_nd num, den, in.read, h0 ; } private: sca_tdf::sca_ltf_nd ltf_nd; Laplace transfer function sca_util::sca_vectordouble num, den; numerator and denominator coefficients double fc; 3dB cut-off frequency in Hz double h0; DC gain }

3.4.5 TDF eksekusi semantik