Интернет-журнал "Домашняя лаборатория", 2007 №9 - Журнал «Домашняя лаборатория»
Шрифт:
Интервал:
Закладка:
а0, a1, а2: double;
end;
var buffer_x, buffer_y: array [0..1] of double;
c, help_y: double;
{/*** базовая процедура в DLL ****/}
{/*** Вызывается VisSim-ом на каждом шаге моделирования ***/}
procedure zW(var zTF: Global; var x: InVector; var у: OutVector); export; stdcall;
var help: double;
begin
if (x[0]=l)and(c=0) then
begin
{Непосредственный алгоритм с двумя буферами}
help_y:=(zTF.k*(х[1]*zTF.b0+buffer_x[0]*zTF.b1+buffer_x[1]*zTF.Ь2)
— (buffer_y[0]*zTF.a1+buffer_y[1]*zTF.a2))/zTF.a0;
buffer_x[1]:=buffer_x[0]; buffer_x[0]:=x[l];
buffer_y[1]:=buffer_y[0]; buffer_y[0]:=help_y;{}
{Непосредственный алгоритм с одним буфером}
{help:=(x[1]-(buffer_x[0]*zTF.a1+buffer_x[1]*zTF.a2))/zTF.a0;
help_y:=(help*zTF.b0+buffer_x[0]*zTF.b1+buffer_x[1]*zTF.b2)*zTF.k;
buffer_x[1]:=buffer_x[0]; buffer_x[0]: =help;{}
end;
У[0]:=help_y;
с: =x [0]; {организованна синхронизация блока no фронту}
end;
{/***функция размещения параметров***/}
{/*** Вызывается VisSim-ом при создании блока ***/}
function zWPA(var pCount: integer):Longint; export; stdcall;
begin
pCount: = 7; {число записываемых в файл параметров диалогового окна}
zWPA:= sizeof (Global); {размер памяти необходимый под параметры}
end;
{/*** Процедура инициализации параметров***/}
{/*** Вызывается VisSim-ом после РА функции ***/}
procedure zWPI(var zTF: Global); export; stdcall;
begin
zTF.k:=31.9016459416667;
zTF.b0:=1;
zTF.b1:=-1.9894401341982;
zTF.b2:=0.98945592544195;
zTF.a0:=1;
zTF.a1:=-1.3333333333333;
zTF.a2:=0.33333333333333;
end;
{/*** функция изменения параметров ***/}
{/*** Вызывается VisSim-ом при нажатии правой клавиши мыши ***/}
function zWPC(var zTF: Global):Pchar; export; stdcall;
begin
zWPC: ='k; b0; b1; b2; a0; a1; a2'; {названия могут быть любые}
end;
{/*** Процедура Simulation Start ***/}
{/*** Вызывается VisSim-ом на первом шаге моделирования ***/}
procedure zWSS(var zTF: Global; var runCount: longint); export; stdcall;
begin buffer_x[0]:=0; buffer_x[1]:=0;
buffer_y[0]:=0; buffer_y[1]:=0;
help_y:=0; с:=0;
end;
{/*** Процедура Simulation End ***/}
{/*** Вызывается VisSim-ом на последнем шаге моделирования ***/}
procedure zWSE(var zTF: Global; var runCount: longint); export; stdcall;
begin
end;
exports
zW index 1, {Имя базовой процедуры в DLL Его нужно будет указать в блоке user Function }
zWPA index 2, {Список вспомогательных процедур и функций для экспорта. Они будут}
zWPI index 3, {вызываться Vissint-ом по окончаниям PA,PI,PC,SS,SE для базового имени.}
zWPC index 4,
zWSS index 5,
zWSE index 6;
begin
end.
ЭТАП 5 — Проверка работоспособности спроектированного цифрового ПИД-регулятора
Успех любого проекта основан на проверке технических решений. На этом этапе сказывается нехватка инструментария пакета VisSim. Для моделей пользователя недоступны все выды анализа (возможна только симуляция движения). Можно включить дискретный ПИД-регулятор (рис. 7) в контур модели и проверить схожесть переходного процесса с исходным, но этого не достаточно. В опыте будет подтверждено относительное соответствие высокочастотной части ЛAЧX, те работоспособность П & Д-каналов регулятора, но не интегрального, который при наличии в системе статических звеньев с большими коэффициентами усиления не определяет заметные глазу изменения вида переходного процесса. Можно конечно проверить, как регулятор отрабатывает ошибку в установившихся режимах движения при изменении задания с постоянной скоростью, ускорением, приращением ускорения, но мы поступим иначе — используем возможность пакета VisSim включать в модель блоки пользователя. Библиотека AzFqRsp.dll позволяет выполнить виртуальные измерения ЧХ систем (блоки "PGL01" & "Lfi021" на рис. 8). Частотные характеристики разработанной программы ПИД-регулятора (блок "pid.dll.zW") приведены на верхних графиках. ЛAЧX & ЛФЧХ исходного непрерывного ПИД-регулятора получены с помощью инструментария программы VisSim и демонстрируются на нижних графиках. Результаты вполне удовлетворительны.
КОМПЬЮТЕР ДЛЯ НАЧИНАЮЩИХ
Локальная сеть из двух компьютеров
Многие пользователи Windows 95/98 считают проведение локальной сети мероприятием дорогостоящим и крайне сложным, и при этом обеспечивающим не такие уж большие преимущества перед традиционной трехдюймовой дискетой. Однако даже дома все чаще поселяется второй компьютер (скажем, ноутбук или игровой), и возникает необходимость использовать общие ресурсы в двух системах (например, привод CD-ROM, принтер, жесткий диск или внешние носители информации). Неужели вы предпочтете дублировать дорогостоящие внешние устройства или мучиться с крайне ненадежными и "тощими" дискетами? Кстати, флоппи-дисковод тоже можно оставить только один, если, конечно, вы не боитесь частых "падений" системы.
Не пугайтесь! Простые смертные тоже могут объединить в сеть два компьютера, причем с минимальными усилиями.
Непосредственное кабельное соединение
Если вы не желаете приобретать сетевые карты (которые, между прочим, в последнее время часто встраивают непосредственно в материнские платы) или вас пугают слова типа NETBEUI, IPX/SPX, TCP/IP или DNS, то совершенно бесплатный вариант, встроенный в Windows 95/98, — DCC (или Direct Cable Connection — прямое кабельное соединение) — предоставит вам нужные сетевые возможности и не потребует для этого особых технических знаний. Единственная вещь, на которую вам придется потратиться, это специальный нуль-модемный параллельный или последовательный кабель. Их можно купить примерно за 20 долл. в любом компьютерном магазине или спаять самому. В DCC реализована так называемая идеология "гость/хозяин" (guest/host) (или "ведущий/ведомый" в русской версии), которая позволит вам работать с обеими системами одновременно, с одной клавиатуры. Вы можете определить как "ведомый" и еще один дисковод в гостевой системе. А вот хост-система ("ведомая") не имеет доступа к гостевой ("ведущей"), то есть полученная сеть будет иметь только одностороннее управление.
Программное обеспечение для непосредственного кабельного соединения не устанавливается в ходе типового (Typical) процесса инсталляции (доступ к нему можно получить в разделе Communications — средства связи из меню Add/Remove Programs — установка и удаление программ). Только после этого вы сможете временно подключать какой-либо компьютер (например, портативный) в качестве клиента к другой машине.
Итак, в период действия соединения "ведомый" компьютер разделяет свои каталоги и ресурсы с "ведущим". Используя стандартные графические инструменты, такие как Explorer (Проводник) и Network Neighborhood (Сетевое окружение), вы можете работать с разделяемыми каталогами и ресурсами со своего компьютера-клиента так, как будто они находятся на его собственном жестком диске. Если при этом "ведомая" машина подключена к сети, то клиент имеет доступ и к сетевым ресурсам. DCC-соединение осуществляется по четырехразрядному кабелю, подобному тому, что применялся для соединений типа LapLink, по специальному нуль-модемному кабелю для последовательного или параллельного (ЕРС) порта (о распайке см. рисунки).