MATLAB仿真拉盖尔螺旋谱

MATLAB仿真拉盖尔螺旋谱,第1张

LG.m文件:

function y = LG( params, rho, phi )

m = abs(params(1))

p = params(2)

w = params(3)

t = rho./w

y = sqrt(2*factorial(p)/pi/factorial(m+p)) / w ...

    .* (sqrt(2)*t).^m ...

    .* L([p m], 2*t.^2) ...

    .* exp(-t.^2 + 1i*m*phi)

function y = L(params, x)

    fact = @(x)arrayfun(@factorial, x)

    n = params(1)

    k = params(2)

    m = 0:n

    a = factorial(n+k)*ones(1,length(m))

    b = fact(n-m)

    c = fact(k+m)

    d = fact(m)

    e = (-1).^m

    y = zeros(size(x))

    for s = 1:n+1

        y  =  y + a(s) ./ b(s) ./ c(s) ./ d(s) .* e(s) .* x.^m(s)

    end

end

end

主敏搭雀程序:

clear all

close all clc

[X, Y] = meshgrid(linspace(-4, 4, 100))

Rho = sqrt(X.^2 + Y.^2)

Phi = atan(Y./X)

params = [0 0 1]

Z = LG([0 0 1], Rho, Phi)

surf(X, Y, Z)

shading interp

% 你没告诉我u怎么设置

u = @(rho, phi)exp(-rho.^2)        % 待修改

a = @(n, rho)quadv(@(phi)u(rho, phi)*exp(-1i*n*phi), 0, 2*pi)/sqrt(2*pi)

C = @(n)quadgk(@(rho)a(n, rho).^2.*rho, 0, inf)

t = -20:20

Cs = arrayfun(C, 枝誉t)

P = Cs/sum(Cs)

P = P(t>=-10 &桥早 t<=10)

plot(-10:10, P, 'o-')

一种举磨态量化的方式,轨道不平顺的正源测量是以几种弦长来进行的,比如10m弦、20m弦、30m弦、70m弦、300m弦等,也就是楼主说的波长,每种波长有对应的轨道不平顺允许偏差,在一定范围内,短波长游中的偏差对于低速行车影响较大


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8249140.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存