www.gusucode.com > rf 工具箱matlab源码程序 > rf/+rfckt/@parallelplate/parallelplate.m

    classdef (CaseInsensitiveProperties,TruncatedProperties)                ...
        parallelplate < rfckt.basetxline
%rfckt.parallelplate class
%   rfckt.parallelplate extends rfckt.basetxline.
%
%    rfckt.parallelplate properties:
%       Name - Property is of type 'string' (read only)
%       nPort - Property is of type 'int32' (read only)
%       AnalyzedResult - Property is of type 'handle' (read only)
%       LineLength - Property is of type 'MATLAB array' 
%       StubMode - Property is of type 'StubModeTypeDATATYPE enumeration:
%                  {'NotAStub','Series','Shunt','None'}' 
%       Termination - Property is of type 'TerminationTypeDATATYPE
%                     enumeration: {'NotApplicable','Open','Short','None'}' 
%       Width - Property is of type 'MATLAB array' 
%       Separation - Property is of type 'MATLAB array' 
%       MuR - Property is of type 'MATLAB array' 
%       EpsilonR - Property is of type 'MATLAB array' 
%       LossTangent - Property is of type 'MATLAB array' 
%       SigmaCond - Property is of type 'MATLAB array' 
%
%    rfckt.parallelplate methods:
%       calckl - H, FREQ) returns e^(-kl)
%       checkproperty - Check the properties of the object.


    properties
        %WIDTH Property is of type 'MATLAB array' 
        Width = 5e-3;
    end
    methods 
        function set.Width(obj,value)
            if ~isequal(obj.Width,value)
                % DataType = 'MATLAB array'
                obj.Width = setpositive(obj,value,'Width',              ...
                    false,false,false);
            end
        end
    end   % set and get functions for Width

    properties
        %SEPARATION Property is of type 'MATLAB array' 
        Separation = 1e-3;
    end
    methods 
        function set.Separation(obj,value)
            if ~isequal(obj.Separation,value)
                % DataType = 'MATLAB array'
                obj.Separation = setpositive(obj,value,'Separation',    ...
                    false,false,false);
            end
        end
    end   % set and get functions for Separation

    properties
        %MUR Property is of type 'MATLAB array' 
        MuR = 1;
    end
    methods 
        function set.MuR(obj,value)
            if ~isequal(obj.MuR,value)
                % DataType = 'MATLAB array'
                obj.MuR = setpositive(obj,value,'MuR',false,false,false);
            end
        end
    end   % set and get functions for MuR

    properties
        %EPSILONR Property is of type 'MATLAB array' 
        EpsilonR = 2.3;
    end
    methods 
        function set.EpsilonR(obj,value)
            if ~isequal(obj.EpsilonR,value)
                % DataType = 'MATLAB array'
                obj.EpsilonR = setpositive(obj,value,'EpsilonR',        ...
                    false,false,false);
            end
        end
    end   % set and get functions for EpsilonR

    properties
        %LOSSTANGENT Property is of type 'MATLAB array' 
        LossTangent = 0;
    end
    methods 
        function set.LossTangent(obj,value)
            if ~isequal(obj.LossTangent,value)
                % DataType = 'MATLAB array'
                obj.LossTangent = setpositive(obj,value,'LossTangent',  ...
                    true,false,false);
            end
        end
    end   % set and get functions for LossTangent

    properties
        %SIGMACOND Property is of type 'MATLAB array' 
        SigmaCond = inf;
    end
    methods 
        function set.SigmaCond(obj,value)
            if ~isequal(obj.SigmaCond,value)
                % DataType = 'MATLAB array'
                obj.SigmaCond = setpositive(obj,value,'SigmaCond',      ...
                    false,true,false);
            end
        end
    end   % set and get functions for SigmaCond

    properties (Hidden)
        %SIGMADIEL Property is of type 'MATLAB array' 
        SigmaDiel = 0;
    end
    methods 
        function set.SigmaDiel(obj,value)
            if ~isequal(obj.SigmaDiel,value)
                % DataType = 'MATLAB array'
                obj.SigmaDiel = setsigmadiel(obj,value,'SigmaDiel');
            end
        end
    end   % set and get functions for SigmaDiel

    properties (Hidden)
        %ISSUEWARNINGFORNONZEROSIGMADIEL Property is of type 'bool' 
        IssueWarningforNonzeroSigmaDiel = true;
    end


    methods  % constructor block
        function h = parallelplate(varargin)
        %PARALLELPLATE Constructor.
        %   H = RFCKT.PARALLELPLATE('PROPERTY1', VALUE1, 'PROPERTY2',   ...
        %   VALUE2, ...)
        %   returns a parallel-plate transmission line object, H, based on
        %   the properties specified by the input arguments in the
        %   PROPERTY/VALUE pairs. Any properties you do not specify retain
        %   their default values, which can be viewed by typing
        %   'h = rfckt.parallelplate'. 
        %
        %   A parallel-plate object has the following properties. All the
        %   properties are writable except for the ones explicitly noted
        %   otherwise.
        %
        %   Property Name    Description
        %   ---------------------------------------------------------------
        %   Name           - Object name. (read only)
        %   nPort          - Number of ports. (read only)
        %   AnalyzedResult - Analyzed result. It is generated during
        %                    analysis (read only)
        %   LineLength     - Line length (m)
        %   StubMode       - 'NotAStub', 'Series' or 'Shunt'
        %   Termination    - 'NotApplicable', 'Open' or 'Short'
        %   Width          - Plate width (m)
        %   Separation     - Plate separation (m)
        %   MuR            - Relative permeability constant
        %   EpsilonR       - Relative permittivity constant
        %   LossTangent    - Loss tangent of dielectric
        %   SigmaCond      - Conductivity of conductor (S/m)
        % 
        %   rfckt.parallelplate methods:   
        %
        %     Analysis
        %       analyze    - Analyze an RFCKT object in frequency domain
        %
        %     Plots and Charts   
        %       circle     - Draw circles on a Smith chart
        %       loglog     - Plot the specified parameters on the X-Y plane
        %                    with logarithmic scales for both the
        %                    X- and Y- axes
        %       plot       - Plot the specified parameters on the X-Y plane
        %       plotyy     - Plot the specified parameters on the X-Y plane
        %                    with y tick labels on the left and right
        %       polar      - Plot the specified parameters on a
        %                    polar plane chart
        %       semilogx   - Plot the specified parameters on the X-Y plane
        %                    with logarithmic scale for the X-axis
        %       semilogy   - Plot the specified parameters on the X-Y plane
        %                    with logarithmic scale for the Y-axis
        %       smith      - Plot the specified parameters on a Smith chart
        %       table      - Display the specified parameters in a table
        %
        %     Parameters and Formats   
        %       listformat - List the valid formats for a parameter
        %       listparam  - List the valid parameters that can be
        %                    visualized
        %
        %     Data Access and Restoration  
        %       calculate  - Calculate the specified parameters
        %       getz0      - Get the characteristic impedance of
        %                    transmission line object
        %       extract    - Extract the specified network parameters   
        %
        %   To get detailed help on a method from the command line, type
        %   'help rfckt.parallelplate/<METHOD>', where METHOD is one of the
        %   methods listed above. For instance,
        %   'help rfckt.parallelplate/plot'.
        %
        %   Example:
        %
        %      % Create a parallel-plate transmission line
        %        h = rfckt.parallelplate('LineLength',0.045)
        %      % Do frequency domain analysis at the given frequency
        %        f = .9e9:1e8:3e9;             % Simulation frequency
        %        analyze(h,f);                 % Do frequency domain
        %                                        analysis
        %      % List valid parameters and formats for visualization
        %        listparam(h)       
        %        listformat(h, 'S21') 
        %      % Get the txline characteristic impedance
        %        z0 = getz0(h)
        %      % Visualize the analyzed results
        %        figure(1)
        %        plot(h, 'S21', 'dB');         % Plot S21 in dB on the
        %                                        X-Y plane
        %        figure(2)
        %        smith(h, 'GammaIN', 'zy');    % Plot GAMMAIN on a
        %                                        ZY Smith chart
        %
        %   See also RFCKT, RFCKT.TXLINE, RFCKT.RLCGLINE, RFCKT.TWOWIRE,
        %   RFCKT.COAXIAL, RFCKT.MICROSTRIP, RFCKT.CPW, RFDATA 
        
        %   Copyright 2003-2010 The MathWorks, Inc.

        %UDD % h = rfckt.parallelplate;
        set(h, 'Name', 'Parallel-Plate Transmission Line');

        % Check the read only properties
        checkreadonlyproperty(h, varargin, {'Name', 'nPort', 'RFdata',  ...
            'AnalyzedResult', 'Z0', 'PV', 'Loss'});

        % Set the values for the properties
        if nargin    % If nargin is zero, next statement will print
            set(h, varargin{:});
        end
        checkproperty(h);
        end   % parallelplate
        
    end  % constructor block

    methods  % method signatures
        y = calckl(h,freq)
        checkproperty(h)
    end  % method signatures

end  % classdef